1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="utf-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> 6<meta name="generator" content="Observable Framework v1.13.4"> 7<title>About | Yingyu Pages</title> 8<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 9<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap" crossorigin> 10<link rel="preload" as="style" href="./_observablehq/theme-air,near-midnight.b050d634.css"> 11<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap" crossorigin> 12<link rel="stylesheet" type="text/css" href="./_observablehq/theme-air,near-midnight.b050d634.css"> 13<link rel="modulepreload" href="./_observablehq/client.3724cce3.js"> 14<link rel="modulepreload" href="./_observablehq/runtime.607a8173.js"> 15<link rel="modulepreload" href="./_observablehq/stdlib.277aeab8.js"> 16 17 <link rel="icon" href="./_file/images/favicon.d88f8e9b.ico" type="image/ico" sizes="64x64"> 18 <link rel="stylesheet" type="text/css" href="./_file/style/default.f67a1631.css"> 19 <link rel="alternate" type="application/json" href="https://wingu.se/feed.json" title="Yingyu Pages JSON Feed"> 20 <link rel="alternate" type="application/atom+xml" href="https://wingu.se/atom.xml" title="Yingyu Pages Atom Feed"> 21 <link rel="alternate" type="application/rss+xml" href="https://wingu.se/rss.xml" title="Yingyu Pages RSS Feed"> 22 <link rel="alternate" type="application/json" href="https://wingu.se/feed-en.json" title="Yingyu Pages JSON Feed (English)"> 23 <link rel="alternate" type="application/atom+xml" href="https://wingu.se/atom-en.xml" title="Yingyu Pages Atom Feed (English)"> 24 <link rel="alternate" type="application/rss+xml" href="https://wingu.se/rss-en.xml" title="Yingyu Pages RSS Feed (English)"> 25
25<script> 26 window.translationMap = {"/2010/08/25/sudoku-poj-2676-cpp-html-javascript-css":{"en":"Me and Sudoku â Starting from POJ2676","zh":"æåæ°ç¬ââä»POJ2676说起"},"/2010/08/27/3-141592-pi-big-number-calculation":{"en":"A Small Program for Calculating Pi_Arbitrary-Precision Algorithm Practice","zh":"计ç®åå¨ççå°ç¨åº_é«ç²¾åº¦ç®æ³ç»ä¹ "},"/2010/08/28/internet-sharing-1-access":{"en":"Things About Network Sharing (1) â Shared Internet Access","zh":"ç½ç»å ±äº«é£äºäº(ä¸)ââå ±äº«ä¸ç½"},"/2010/09/11/number-of-stack-pop-catalan_number":{"en":"Stack Pop Count Problem (Catalan Numbers)","zh":"åºæ æ°éé®é¢ï¼å¡å¡å °æ°ï¼"},"/2010/12/01/the-maximum-bipartite-matching-problem-poj-1422":{"en":"Maximum Bipartite Matching Template","zh":"äºå徿大å¹é 模æ¿"},"/2011/10/20/cmd-help-generator":{"en":"Generating Help for CMD Commands","zh":"CMDå½ä»¤å¸®å©çæ"},"/2011/11/21/data-you-send-in-http-request":{"en":"From a Developer's Perspective, What Do You Submit When You Open a Web Page","zh":"ä»å¼åè çè§åº¦ï¼å½ä½ æå¼ç½é¡µçæ¶åï¼ä½ æäº¤äºä»ä¹"},"/2012/02/09/thoughts":{"en":"Some Thoughts","zh":"å°æè§¦"},"/2012/03/08/shortest-path":{"en":"Shortest Path Topic","zh":"æçè·¯ä¸é¢"},"/2012/05/19/Bipartite-graph":{"en":"Bipartite Graph Topic","zh":"äºåå¾ä¸é¢"},"/2012/06/22/genetic-algorithm":{"en":"A Small Experiment with Genetic Algorithms","zh":"å°è¯éä¼ ç®æ³"},"/2012/08/29/possibilities":{"en":"Obtaining a Uniform Probability Distribution from a Non-uniform Probability Distribution","zh":"ä»ä¸ä¸ªä¸å¹³åæ¦çåå¸è·å¾ä¸ä¸ªå¹³åçæ¦çåå¸"},"/2012/12/15/k-th":{"en":"The k-th Number Topic","zh":"第kæ°ä¸é¢"},"/2014/07/19/partition":{"en":"Number Theory and a Partition Strategy","zh":"æ°è®ºåPartitionçç¥"},"/2015/09/08/brain-storm":{"en":"Brainstorm","zh":"头è飿´"},"/2016/05/16/useless-social":{"en":"Ineffective Socializing","zh":"æ æç¤¾äº¤"},"/2016/10/07/trip-to-xinjiang":{"en":"A Hike in Xinjiang","zh":"æ°ç徿¥"},"/2016/11/13/trip-2-us":{"en":"Three Weeks in the Bay Area, 2016-10","zh":"2016-10 æ¹¾åºçä¸å¨"},"/2017/02/26/high-dimensional-to-low-dimensional":{"en":"Projection of a High-Dimensional World onto a Low-Dimensional Plane","zh":"é«ç»´ä¸ç对ä½ç»´å¹³é¢çæå½±"},"/2017/03/11/to-the-utopia":{"en":"To Utopia","zh":"è´ä¹æé¦"}
26,"/2017/03/25/information-should-goes-freely":{"en":"Information Should Flow Freely","zh":"ä¿¡æ¯å°±åºè¯¥èªç±æµå¨"},"/2017/03/27/solution-to-meg-cap-problem-3":{"en":"MegCup Geek Challenge Problem 3","zh":"MegCup æå®¢ææèµç¬¬ä¸é¢"},"/2017/04/22/free-of-charge-is-the-most-expensive":{"en":"What Is Free Is the Most Expensive; You Can't Rely on Commercial Companies","zh":"å è´¹çï¼ææ¯æè´µçï¼ä¸è½ä¾èµåä¸å ¬å¸"},"/2017/07/31/bathroom-thought":{"en":"Bathroom Thoughts","zh":"æµ´å®¤æ²æ"},"/2017/08/31/dependency-injection-in-scala":{"en":"Reflection-based Dependency Injection in Scala","zh":"Scala çåå°ä¾èµæ³¨å ¥"},"/2017/09/24/jimei-software-engineer-homework-1-summary":{"en":"Summary of the First Homework for Jimei University Software Engineering","zh":"éç¾å¤§å¦è½¯ä»¶å·¥ç¨å©æç¬¬ä¸æ¬¡ä½ä¸å°ç»"},"/2018/02/23/block-chain-learning":{"en":"Some Thoughts on Blockchain","zh":"åºåé¾ä¸ç¹æè"},"/2018/03/11/openwrt-usb-wifi-wireguard-ipset-dnsmasq-iptables-route":{"en":"Open WRT / Wireguard / IPSet / Route","zh":"Open WRT / Wireguard / IPSet / Route"},"/2018/03/11/wireguard":{"en":"Wireguard Configuration Guide","zh":"Wireguard é ç½®æå"},"/2018/10/30/economic-reasoning":{"en":"Economic Model Deduction","zh":"ç»æµæ¨¡åæ¼ç»"},"/2019/08/25/Hong_Kong_anti-extradition_bill_protests":{"en":"Hong Kong's Movement Against the Extradition Bill Amendment","zh":"馿¸¯çå对ãéç¯æ¡ä¾ãä¿®è®¢èæ¡è¿å¨"},"/2020/06/13/some-random-words":{"en":"Daily Rambling","zh":"æ¥å¸¸å å¨"},"/2021/02/06/clubhouse":{"en":"Trying Out Clubhouse","zh":"Clubhouse ä½éª"},"/2021/06/14/xiaomi":{"en":"Notes on Tinkering with the Xiaomi 11 Pro","zh":"å°ç±³ 11 Pro æè ¾ç¬è®°"},"/2021/07/18/da-tong":{"en":"A Weekend in Datong","zh":"大åç卿«"},"/2021/07/29/networking":{"en":"Misconceptions About Safe Internet Access","zh":"å®å ¨ä¸ç½çè¿·æ"},"/2023/04/21/dnat-source-in-source-out":{"en":"DNAT Preserving Client IP with Symmetric Routing","zh":"DNAT ä¿ç客æ·ç«¯ IP 䏿ºè¿æºåº"},"/2023/11/18/import-gpg-key-from-yubikey":{"en":"Import GPG Public Key from YubiKey","zh":"ä» YubiKey ä¸å¯¼å ¥ GPG public key"},"/2023/11/30/only-apple-can-do-allow-apps-tracking-users-location-without-consensus":{"en":"Apple allows applications to track user locations without authorization","zh":"è¹æå 许åºç¨ç¨åºå¨æªç»ææçæ åµä¸è¿½è¸ªç¨æ·ä½ç½®"},"/2024/10/16/podman-compose-bridge-network":{"en":"Setting Up a Podman Machine Bridge Network on macOS: A Step-by-Step Guide","zh":"å¨macOSä¸è®¾ç½®Podmanèææºæ¡¥æ¥ç½ç»ï¼éæ¥æå"},"/2026/01/02/location-tracking-solution":{"en":"Changed Location Timeline Tool","zh":"æ¢äºä½ç½®æ¶é´çº¿å·¥å ·"},"/2026/06/14/hawaii":{"en":"Hawaii Journal","zh":"å¤å¨å¤·æµæ°´è´¦"},"/about":{"en":"About","zh":"About"},"/index":{"en":"Yingyu Pages","zh":"Yingyu Pages"}}; 27 (function() { 28 const preferredLang = localStorage.getItem('lang') || (navigator.language.startsWith('zh') ? 'zh' : 'en'); 29 const currentPath = window.location.pathname.replace(/\.html$/, '').replace(/\/$/, ''); 30 const isEn = currentPath.endsWith('/en') || currentPath === '/en'; 31 const currentLang = isEn ? 'en' : 'zh'; 32 33 if (preferredLang !== currentLang) { 34 const basePath = isEn ? currentPath.slice(0, -3) : (currentPath === '' ? '/index' : currentPath); 35 const targetPath = preferredLang === 'en' ? (basePath + '/en') : (basePath === '/index' ? '/' : basePath); 36 if (window.translationMap[basePath] && window.translationMap[basePath][preferredLang]) { 37 window.location.href = (targetPath === '/' ? '/' : targetPath + '.html'); 38 } 39 } 40 41 function updateSidebar() { 42 const isEn = window.location.pathname.replace(/\.html$/, '').endsWith('/en'); 43 if (isEn) { 44 document.querySelectorAll('#observablehq-sidebar a').forEach(a => { 45 const href = a.pathname.replace(/\.html$/, ''); 46 const base = href.endsWith('/en') ? href.slice(0, -3) : href; 47 if (window.translationMap[base] && window.translationMap[base].en) { 48 a.innerText = window.translationMap[base].en; 49 if (!a.pathname.includes('/en.html')) { 50 a.setAttribute('href', base + '/en.html'); 51 } 52 } 53 }); 54 } 55 } 56 document.addEventListener('DOMContentLoaded', updateSidebar); 57 // Also observe for sidebar changes (Observable Framework might re-render) 58 const observer = new MutationObserver(updateSidebar); 59 document.addEventListener('DOMContentLoaded', () => { 60 const sidebar = document.querySelector('#observablehq-sidebar'); 61 if (sidebar) observer.observe(sidebar, { childList: true, subtree: true }); 62 }); 63 })(); 64 (function() { 65 let actions = []; 66 function handler(e) { 67 const now = Date.now(); 68 actions.push(now); 69 if (actions.length > 10) actions.shift(); 70 if (actions.length === 10) { 71 const pause = actions[5] - actions[4]; 72 if (pause >= 2000 && pause <= 5000) { 73 let valid = true; 74 for (let i = 1; i < 10; i++) { 75 if (i !== 5 && actions[i] - actions[i - 1] > 500) { 76 valid = false;
77 break; 78 } 79 } 80 if (valid) { 81 fetch('https://pv.wingu.se/?opt-out=tou-tpo', {credentials: 'include'}); 82 alert("Opt-out activated."); 83 actions = []; 84 } 85 } 86 } 87 } 88 document.addEventListener('click', handler, true); 89 document.addEventListener('touchstart', handler, {capture: true, passive: true}); 90 })(); 91 (function() { 92 function addImgCaptions() { 93 document.querySelectorAll('main img').forEach(img => { 94 if (img.dataset.captioned) return; 95 img.dataset.captioned = 'true'; 96 const alt = img.getAttribute('alt'); 97 if (alt && alt.trim()) { 98 const parent = img.parentElement; 99 if (parent && parent.tagName === 'P' && parent.children.length === 1 && parent.textContent.trim() === '') { 100 const figure = document.createElement('figure'); 101 const figcaption = document.createElement('figcaption'); 102 figcaption.textContent = alt; 103 parent.replaceWith(figure); 104 figure.appendChild(img); 105 figure.appendChild(figcaption); 106 } 107 } 108 }); 109 } 110 document.addEventListener('DOMContentLoaded', addImgCaptions); 111 const observer = new MutationObserver(addImgCaptions); 112 document.addEventListener('DOMContentLoaded', () => { 113 const main = document.querySelector('main'); 114 if (main) observer.observe(main, { childList: true, subtree: true }); 115 }); 116 })(); 117 </script>
117 118
119<script type="module"> 120 121import "./_observablehq/client.3724cce3.js"; 122 123</script>
123 124</head> 125<body> 126<input id="observablehq-sidebar-toggle" type="checkbox" title="Toggle sidebar"> 127<label id="observablehq-sidebar-backdrop" for="observablehq-sidebar-toggle"></label> 128<nav id="observablehq-sidebar"> 129 <ol> 130 <label id="observablehq-sidebar-close" for="observablehq-sidebar-toggle"></label> 131 <li class="observablehq-link"><a href="./">Yingyu Pages</a></li> 132 </ol> 133 <div id="observablehq-search"><input type="search" placeholder="Search"></div> 134 <div id="observablehq-search-results"></div> 135
135<script>{const o=document.querySelector("#observablehq-search");o.setAttribute("data-shortcut",`${/Mac|iPhone/.test(navigator.platform)?"\u2318":"Alt-"}K`);const t=o.querySelector("input"),r=()=>import("./_observablehq/search.434c4fef.js");t.addEventListener("focus",r,{once:!0}),t.addEventListener("keydown",r,{once:!0});const c=document.querySelector("#observablehq-sidebar-toggle");addEventListener("keydown",e=>{(e.code==="KeyK"&&e.metaKey&&!e.altKey&&!e.ctrlKey||e.key==="/"&&!e.metaKey&&!e.altKey&&!e.ctrlKey&&e.target===document.body)&&(c.checked?t.focus():(c.click(),t.focus(),c.click()),t.select(),e.preventDefault())});}</script>
135 136 <ol> 137 <li class="observablehq-link observablehq-link-active"><a href="./about.html">About</a></li> 138 </ol> 139 <details open> 140 <summary>2026</summary> 141 <ol> 142 <li class="observablehq-link"><a href="./2026/06/14/hawaii.html">å¤å¨å¤·æµæ°´è´¦</a></li> 143 <li class="observablehq-link"><a href="./2026/01/02/location-tracking-solution.html">æ¢äºä½ç½®æ¶é´çº¿å·¥å ·</a></li> 144 </ol> 145 </details> 146 <details> 147 <summary>2024</summary> 148 <ol> 149 <li class="observablehq-link"><a href="./2024/10/16/podman-compose-bridge-network.html">å¨macOSä¸è®¾ç½®Podmanèææºæ¡¥æ¥ç½ç»ï¼éæ¥æå</a></li> 150 </ol> 151 </details> 152 <details> 153 <summary>2023</summary> 154 <ol> 155 <li class="observablehq-link"><a href="./2023/11/30/only-apple-can-do-allow-apps-tracking-users-location-without-consensus.html">è¹æå 许åºç¨ç¨åºå¨æªç»ææçæ åµä¸è¿½è¸ªç¨æ·ä½ç½®</a></li> 156 <li class="observablehq-link"><a href="./2023/11/18/import-gpg-key-from-yubikey.html">ä» YubiKey ä¸å¯¼å ¥ GPG public key</a></li> 157 <li class="observablehq-link"><a href="./2023/04/21/dnat-source-in-source-out.html">DNAT ä¿ç客æ·ç«¯ IP 䏿ºè¿æºåº</a></li> 158 </ol> 159 </details> 160 <details> 161 <summary>2021</summary> 162 <ol> 163 <li class="observablehq-link"><a href="./2021/07/29/networking.html">å®å ¨ä¸ç½çè¿·æ</a></li> 164 <li class="observablehq-link"><a href="./2021/07/18/da-tong.html">大åç卿«</a></li> 165 <li class="observablehq-link"><a href="./2021/06/14/xiaomi.html">å°ç±³ 11 Pro æè ¾ç¬è®°</a></li> 166 <li class="observablehq-link"><a href="./2021/02/06/clubhouse.html">Clubhouse ä½éª</a></li> 167 </ol> 168 </details> 169 <details> 170 <summary>2020</summary> 171 <ol> 172 <li class="observablehq-link"><a href="./2020/06/13/some-random-words.html">æ¥å¸¸å å¨</a></li> 173 </ol> 174 </details> 175 <details> 176 <summary>2019</summary> 177 <ol> 178 <li class="observablehq-link"><a href="./2019/08/25/Hong_Kong_anti-extradition_bill_protests.html">馿¸¯çå对ãéç¯æ¡ä¾ãä¿®è®¢èæ¡è¿å¨</a></li> 179 </ol> 180 </details> 181 <details> 182 <summary>2018</summary> 183 <ol> 184 <li class="observablehq-link"><a href="./2018/10/30/economic-reasoning.html">ç»æµæ¨¡åæ¼ç»</a></li> 185 <li class="observablehq-link"><a href="./2018/03/11/wireguard.html">Wireguard é ç½®æå</a></li> 186 <li class="observablehq-link"><a href="./2018/03/11/openwrt-usb-wifi-wireguard-ipset-dnsmasq-iptables-route.html">Open WRT / Wireguard / IPSet / Route</a></li> 187 <li class="observablehq-link"><a href="./2018/02/23/block-chain-learning.html">åºåé¾ä¸ç¹æè</a></li> 188 </ol> 189 </details> 190 <details> 191 <summary>2017</summary> 192 <ol> 193 <li class="observablehq-link"><a href="./2017/09/24/jimei-software-engineer-homework-1-summary.html">éç¾å¤§å¦è½¯ä»¶å·¥ç¨å©æç¬¬ä¸æ¬¡ä½ä¸å°ç»</a></li> 194 <li class="observablehq-link"><a href="./2017/08/31/dependency-injection-in-scala.html">Scala çåå°ä¾èµæ³¨å ¥</a></li> 195 <li class="observablehq-link"><a href="./2017/07/31/bathroom-thought.html">æµ´å®¤æ²æ</a></li> 196 <li class="observablehq-link"><a href="./2017/04/22/free-of-charge-is-the-most-expensive.html">å è´¹çï¼ææ¯æè´µçï¼ä¸è½ä¾èµåä¸å ¬å¸</a></li> 197 <li class="observablehq-link"><a href="./2017/03/27/solution-to-meg-cap-problem-3.html">MegCup æå®¢ææèµç¬¬ä¸é¢</a></li> 198 <li class="observablehq-link"><a href="./2017/03/25/information-should-goes-freely.html">ä¿¡æ¯å°±åºè¯¥èªç±æµå¨</a></li> 199 <li class="observablehq-link"><a href="./2017/03/11/to-the-utopia.html">è´ä¹æé¦</a></li> 200 <li class="observablehq-link"><a href="./2017/02/26/high-dimensional-to-low-dimensional.html">é«ç»´ä¸ç对ä½ç»´å¹³é¢çæå½±</a></li> 201 </ol> 202 </details> 203 <details> 204 <summary>2016</summary> 205 <ol> 206 <li class="observablehq-link"><a href="./2016/11/13/trip-2-us.html">2016-10 æ¹¾åºçä¸å¨</a></li> 207 <li class="observablehq-link"><a href="./2016/10/07/trip-to-xinjiang.html">æ°ç徿¥</a></li> 208 <li class="observablehq-link"><a href="./2016/05/16/useless-social.html">æ æç¤¾äº¤</a></li> 209 </ol> 210 </details> 211 <details> 212 <summary>2015</summary> 213 <ol> 214 <li class="observablehq-link"><a href="./2015/09/08/brain-storm.html">头è飿´</a></li> 215 </ol> 216 </details> 217 <details> 218 <summary>2014</summary> 219 <ol> 220 <li class="observablehq-link"><a href="./2014/07/19/partition.html">æ°è®ºåPartitionçç¥</a></li> 221 </ol> 222 </details> 223 <details> 224 <summary>2012</summary> 225 <ol> 226 <li class="observablehq-link"><a href="./2012/12/15/k-th.html">第kæ°ä¸é¢</a></li> 227 <li class="observablehq-link"><a href="./2012/08/29/possibilities.html">ä»ä¸ä¸ªä¸å¹³åæ¦çåå¸è·å¾ä¸ä¸ªå¹³åçæ¦çåå¸</a></li> 228 <li class="observablehq-link"><a href="./2012/06/22/genetic-algorithm.html">å°è¯éä¼ ç®æ³</a></li> 229 <li class="observablehq-link"><a href="./2012/05/19/Bipartite-graph.html">äºåå¾ä¸é¢</a></li> 230 <li class="observablehq-link"><a href="./2012/03/08/shortest-path.html">æçè·¯ä¸é¢</a></li> 231 <li class="observablehq-link"><a href="./2012/02/09/thoughts.html">å°æè§¦</a></li> 232 </ol> 233 </details> 234 <details> 235 <summary>2011</summary> 236 <ol> 237 <li class="observablehq-link"><a href="./2011/11/21/data-you-send-in-http-request.html">ä»å¼åè çè§åº¦ï¼å½ä½ æå¼ç½é¡µçæ¶åï¼ä½ æäº¤äºä»ä¹</a></li> 238 <li class="observablehq-link"><a href="./2011/10/20/cmd-help-generator.html">CMDå½ä»¤å¸®å©çæ</a></li> 239 </ol> 240 </details> 241 <details> 242 <summary>2010</summary> 243 <ol> 244 <li class="observablehq-link"><a href="./2010/12/01/the-maximum-bipartite-matching-problem-poj-1422.html">äºå徿大å¹é 模æ¿</a></li> 245 <li class="observablehq-link"><a href="./2010/09/11/number-of-stack-pop-catalan_number.html">
245åºæ æ°éé®é¢ï¼å¡å¡å °æ°ï¼</a></li> 246 <li class="observablehq-link"><a href="./2010/08/28/internet-sharing-1-access.html">ç½ç»å ±äº«é£äºäº(ä¸)ââå ±äº«ä¸ç½</a></li> 247 <li class="observablehq-link"><a href="./2010/08/27/3-141592-pi-big-number-calculation.html">计ç®åå¨ççå°ç¨åº_é«ç²¾åº¦ç®æ³ç»ä¹ </a></li> 248 <li class="observablehq-link"><a href="./2010/08/25/sudoku-poj-2676-cpp-html-javascript-css.html">æåæ°ç¬ââä»POJ2676说起</a></li> 249 </ol> 250 </details> 251</nav>
252<script>{const e=document.querySelector("#observablehq-sidebar"),o=document.querySelector("#observablehq-sidebar-toggle"),r=sessionStorage.getItem("observablehq-sidebar");r?o.checked=r==="true":o.indeterminate=!0;for(const t of document.querySelectorAll("#observablehq-sidebar summary")){const s=t.parentElement;switch(sessionStorage.getItem(`observablehq-sidebar:${t.textContent}`)){case"true":s.open=!0;break;case"false":s.classList.contains("observablehq-section-active")||(s.open=!1);break}}addEventListener("beforeunload",()=>sessionStorage.setItem("observablehq-sidebar-scrolly",`${e.scrollTop}`));const a=sessionStorage.getItem("observablehq-sidebar-scrolly");a!=null&&(e.style.cssText="overflow: hidden;",e.scrollTop=+a,e.style.cssText="");}</script>
252 253<div id="observablehq-center"> 254<header id="observablehq-header"> 255<div style="position: absolute; top: 10px; right: 10px;"> 256 <a href="./about/en.html" onclick="localStorage.setItem('lang', 'en')">English</a> 257 </div><h1>About</h1><small>
257<script>document.write(new Date(1577836800000).toLocaleString())</script>
257 <img src="https://pv.wingu.se/?r=wingu.se/about" style="vertical-align: middle; height: 1em;"></small> 258</header> 259<aside id="observablehq-toc" data-selector="h1:not(:first-of-type)[id], h2:first-child[id], :not(h1) + h2[id]"> 260<nav> 261</nav> 262</aside> 263<main id="observablehq-main" class="observablehq"> 264<img style="max-height: 30vh" src="./_file/images/mypic.4954b063.jpg" alt="徿 "> 265<p>æçå¸¸ç¨ ID æ¯ winguseï¼90 åï¼è®¡ç®æºæ¬ç§ï¼ç°ä¾èäº <a href="https://tubitv.com" target="_blank" rel="noopener noreferrer">Tubi</a>ï¼æ¾èäº<a href="https://www.microsoft.com" target="_blank" rel="noopener noreferrer">微软</a>ã</p> 266<p>å¾å¤äººä¸ç¥éæä¹è¯»æç IDï¼å ¶å®ï¼å®æå¼å§åªæ¯ä¸ª IDï¼æä¹æ²¡æ³è¿æä¹å»è¯»ãææ¯å¹¿ä¸äººï¼åååçæ¶åæ¼å忝ï¼å°è¯ç¨ç²¤è¯ç¿»è¯æçååï¼åç¡®å°è¯´ï¼åºè¯¥æ¯ wing u ææ¯ææ¥è¿çåé³ãæç徿 æ¯ä¸ç¾¤ç½è´è¶ï¼è§ä¸å¾ï¼æºèªä¸å¼ å£çº¸ï¼æèªå·±éæ°ç»äºä¸ªé«æ¸ çï¼ï¼æä»¥åå ¶æå±ç¿ é£ç¿ï¼å±æ¯ä¸ªå¨è¯ï¼å§ä¸å« use å§ï¼æä»¥å°±æäºè¿ä¸ª IDãè¦æ¯ä½ æ§ææ³ç¥é读é³ï¼/wɪÅÉ¡Ês/ æè®¸æ¯ææ³è¦çå§ââ使¿æé³æ 没æå¼éåã</p> 267<p>è¿ä¸ªç«ç¹æ´æ°çå 容å¾å°ï¼çç¢çå¤ï¼ä¹æ²¡ä»ä¹å¹²è´§ï¼ä¸»è¦æ¯æç妿µ ï¼åä½è§ç¬å¦~</p> 268</main> 269<footer id="observablehq-footer"> 270<nav><a rel="prev" href="./"><span>Yingyu Pages</span></a><a rel="next" href="./2026/06/14/hawaii.html"><span>å¤å¨å¤·æµæ°´è´¦</span></a></nav> 271<div> 272<section id="isso-thread"> 273 <noscript>Javascript needs to be activated to view comments.</noscript> 274</section>
275<script data-isso="https://comments.wingu.se/" src="https://comments.wingu.se/js/embed.min.js" data-isso-css="false"></script>
275 276<div id="footer"> 277 © 2026 278 279 <a href="https://github.com/winguse" rel="me" target="_blank"> 280 <svg class="svg-icon"> 281 <use xlink:href="https://wingu.se/minima-social-icons.svg#github"></use> 282 </svg> 283 <span class="username">winguse</span> 284 </a> 285 286 <a href="https://m.wingu.se/@winguse" rel="me" target="_blank"> 287 <svg class="svg-icon"> 288 <use xlink:href="https://wingu.se/minima-social-icons.svg#mastodon"></use> 289 </svg> 290 <span class="username">winguse</span> 291 </a> 292 293 <a href="https://wingu.se/rss.xml" target="_blank" rel="noopener noreferrer"> 294 <svg class="svg-icon"> 295 <use xlink:href="https://wingu.se/minima-social-icons.svg#rss"></use> 296 </svg> 297 <span class="username">RSS</span> 298 </a> 299 300 <a href="https://wingu.se/atom.xml" target="_blank" rel="noopener noreferrer"> 301 <svg class="svg-icon"> 302 <use xlink:href="https://wingu.se/minima-social-icons.svg#rss"></use> 303 </svg> 304 <span class="username">Atom</span> 305 </a> 306 307<a href="https://comments.wingu.se:8443/about" style="width: 0; height: 0; display: block; overflow: hidden;" target="_blank" rel="noopener noreferrer">Honeypot</a> 308</div> 309 </div> 310</footer> 311</div> 312</body> 313</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.