PageSourceSearch

https://111586.xyz/about/

html 111586.xyz collected 2026-10-09 04:33:57 UTC 20,523 bytes, 695 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5    <meta charset="utf-8">
6    <meta http-equiv="X-UA-Compatible" content="IE=edge">
7    <meta name="google-site-verification" content="xBT4GhYoi5qRD5tr338pgPM5OWHHIDR6mNg1a3euekI" />
8    <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
9    <meta name="description" content="这里是 @OLDK 的个人博客,与你一起发现更大的世界 | 不断学习 無限進步">
10    <meta name="keywords" content=" oldk Blog, 博客, 个人网站, 互联网, Web, NAS, 软路由">
11    <meta name="theme-color" content="#000000">
12
13    <!-- Open Graph -->
14    <meta property="og:title"
15        content="About - 老K的博客 | OLDK Blog">
16    
17    <meta property="og:type" content="website">
18    <meta property="og:description"
19        content="「他单纯只想把日子过得不浪费」">
20    
21    <meta property="og:image" content="https://111586.xyz/https://github.com/KEVINJ1E.png">
22    <meta property="og:url" content="https://111586.xyz//about/">
23    <meta property="og:site_name" content="老K的博客 | OLDK Blog">
24
25    <title>About - 老K的博客 | OLDK Blog</title>
26
27    <!-- Web App Manifest -->
28    <link rel="manifest" href="/pwa/manifest.json">
29
30    <!-- Favicon -->
31    <link rel="shortcut icon" href="/img/favicon.ico">
32
33    <!-- Canonical URL -->
34    <link rel="canonical" href="https://111586.xyz//about/">
35
36    <!-- Bootstrap Core CSS -->
37    <link rel="stylesheet" href=" /css/bootstrap.min.css">
38
39    <!-- Custom CSS -->
40    <link rel="stylesheet" href=" /css/hux-blog.min.css">
41
42    <!-- Custom Fonts -->
43    <!-- <link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css"> -->
44    <!-- Hux change font-awesome CDN to qiniu -->
45    <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet"
46        type="text/css">
47
48
49    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
50    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
51    <!--[if lt IE 9]>
52        
52<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
52
53        
53<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
53
54    <![endif]-->
55
56    <!-- ga & ba script hoook -->
57    
57<script></script>
57
58
59    <!-- Google AdSense -->
60    
60<script data-ad-client="ca-pub-6487568398225121" async
61        src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
61
62</head>
63
64
65<!-- hack iOS CSS :active style -->
66<body ontouchstart="">
67
68    <!-- Navigation -->
69
70    <nav class="navbar navbar-default navbar-custom navbar-fixed-top">
71        
72        <div class="container-fluid">
73            <!-- Brand and toggle get grouped for better mobile display -->
74            <div class="navbar-header page-scroll">
75                <button type="button" class="navbar-toggle">
76                    <span class="sr-only">Toggle navigation</span>
77                    <span class="icon-bar"></span>
78                    <span class="icon-bar"></span>
79                    <span class="icon-bar"></span>
80                </button>
81                <a class="navbar-brand" href="/">OLDK Blog</a>
82            </div>
83
84            <!-- Collect the nav links, forms, and other content for toggling -->
85            <div id="huxblog_navbar">
86                <div class="navbar-collapse">
87                    <ul class="nav navbar-nav navbar-right">
88                        <li>
89                            <a href="/">Home</a>
90                        </li>
91                        
92                        
93                        
94                        
95                        <li>
96                            <a href="/about/">About</a>
97                        </li>
98                        
99                        
100                        
101                        <li>
102                            <a href="/archive/">Archive</a>
103                        </li>
104                        
105                        
106                        
107                        
108                        
109                        
110                        
111                        
112                        
113                        
114                        
115                        
116                        <li class="search-icon">
117                            <a href="javascript:void(0)">
118                                <i class="fa fa-search"></i>
119                            </a>
120                        </li>
121                    </ul>
122                </div>
123            </div>
124            <!-- /.navbar-collapse -->
125        </div>
126        <!-- /.container -->
127    </nav>
128
129    
129<script>
130        // Drop Bootstarp low-performance Navbar
131        // Use customize navbar with high-quality material design animation
132        // in high-perf jank-free CSS3 implementation
133        var $body = document.body;
134        var $toggle = document.querySelector('.navbar-toggle');
135        var $navbar = document.querySelector('#huxblog_navbar');
136        var $collapse = document.querySelector('.navbar-collapse');
137
138        var __HuxNav__ = {
139            close: function () {
140                $navbar.className = " ";
141                // wait until animation end.
142                setTimeout(function () {
143                    // prevent frequently toggle
144                    if ($navbar.className.indexOf('in') < 0) {
145                        $collapse.style.height = "0px"
146                    }
147                }, 400)
148            },
149            open: function () {
150                $collapse.style.height = "auto"
151                $navbar.className += " in";
152            }
153        }
154
155        // Bind Event
156        $toggle.addEventListener('click', function (e) {
157            if ($navbar.className.indexOf('in') > 0) {
158                __HuxNav__.close()
159            } else {
160                __HuxNav__.open()
161            }
162        })
163
164        /**
165         * Since Fastclick is used to delegate 'touchstart' globally
166         * to hack 300ms delay in iOS by performing a fake 'click',
167         * Using 'e.stopPropagation' to stop 'touchstart' event from 
168         * $toggle/$collapse will break global delegation.
169         * 
170         * Instead, we use a 'e.target' filter to prevent handler
171         * added to document close HuxNav.  
172         *
173         * Also, we use 'click' instead of 'touchstart' as compromise
174         */
175        document.addEventListener('click', function (e) {
176            if (e.target == $toggle) return;
177            if (e.target.className == 'icon-bar') return;
178            __HuxNav__.close();
179        })
180    </script>
180
181    <!-- Search -->
182<div class="search-page">
183  <div class="search-icon-close-container">
184    <span class="search-icon-close">
185      <i class="fa fa-chevron-down"></i>
186    </span>
187  </div>
188  <div class="search-main container">
189    <div class="row">
190      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
191        <form></form>
192        <input type="text" id="search-input" placeholder="$ grep...">
193        </form>
194        <div id="search-results" class="mini-post-list"></div>
195      </div>
196    </div>
197  </div>
198</div>
199
200    <!-- Page Header -->
201
202
203
204<style type="text/css">
205    header.intro-header{
206        position: relative;
207        background-image: url('/img/bg-me-2022.jpg');
208        background: ;
209    }
210
211    
212    header.intro-header .header-mask{
213        width: 100%;
214        height: 100%;
215        position: absolute;
216        background: rgba(0,0,0, 0.3);
217    }
218    
219</style>
220
221
222
223
224
225
226
227<header class="intro-header" style="background-image: url('/img/bg-me-2022.jpg')">
228  <div class="header-mask"></div>
229  <div class="container">
230    <div class="row">
231      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
232        
233        <div class="site-heading">
234        
235          <h1>About</h1>
236          <span class="subheading">「他单纯只想把日子过得不浪费」</span>
237        </div>
238      </div>
239    </div>
240  </div>
241</header>
242
243
244
245<!-- Main Content -->
246<div class="container">
247  <div class="row">
248    
249
250    <!-- USE SIDEBAR -->
251    <!-- PostList Container -->
252    <div class="col-lg-8 col-lg-offset-1 col-md-8 col-md-offset-1 col-sm-12
253      col-xs-12 postlist-container">
254                      <!-- Language Selector -->
255                <select class="sel-lang" onchange= "onLanChange(this.options[this.options.selectedIndex].value)">
256                    <option value="0" selected> 中文 | Chinese </option>
257                    <option value="1"> 英文 | English </option>
258                </select>
259
260
261
262<!-- Chinese Version -->
263<div class="zh post-container">
264    
265    <p>Hey,我是老K(a.k.a. OLDK)</p>
266
267</div>
268
269<!-- English Version -->
270<div class="en post-container">
271    
272    <p>Hey, I am K(a.k.a. OLDK)</p>
273
274</div>
275
276
277
278
279    </div>
280    <!-- Sidebar Container -->
281    <div class="col-lg-3 col-lg-offset-0 col-md-3 col-md-offset-0 col-sm-12
282      col-xs-12 sidebar-container">
283      <!-- Featured Tags -->
284      
285
286
287<section>
288    
289    <h5><a href="/archive/">FEATURED TAGS</a></h5>
290    <div class="tags">
291        
292        
293        
294        
295        
296        
297                <a data-sort="0002" 
298                    href="/archive/?tag=Meta"
299                    title="Meta"
300                    rel="1">Meta</a>
301        
302                <a data-sort="0001" 
303                    href="/archive/?tag=%E7%BD%91%E7%BB%9C%E6%8A%80%E6%9C%AF"
304                    title="网络技术"
305                    rel="2">网络技术</a>
306        
307                <a data-sort="0002" 
308                    href="/archive/?tag=Telnet"
309                    title="Telnet"
310                    rel="1">Telnet</a>
311        
312                <a data-sort="0002" 
313                    href="/archive/?tag=immortalwrt"
314                    title="immortalwrt"
315                    rel="1">immortalwrt</a>
316        
317                <a data-sort="0002" 
318                    href="/archive/?tag=modem"
319                    title="modem"
320                    rel="1">modem</a>
321        
322                <a data-sort="0002" 
323                    href="/archive/?tag=openwrt"
324                    title="openwrt"
325                    rel="1">openwrt</a>
326    </div>
327</section>
328
329
330      <!-- Short About -->
331      <section class="visible-md visible-lg">
332  <hr>
333  <h5><a href="/about/">ABOUT ME</a></h5>
334  <div class="short-about">
335    
336    <img src="https://github.com/KEVINJ1E.png" />
337    
338    
339    <p>不断学习 無限進步 <br> [Keep Learning, Infinite Progress]</p>
340    
341    <!-- SNS Link -->
342    
343
344
345<ul class="list-inline">
346
347
348  
349  
350  
351  
352  
353  
354  
355</ul>
356  </div>
357</section>
358
359      <!-- Friends Blog -->
360      
361<hr>
362<h5>FRIENDS</h5>
363<ul class="list-inline">
364  
365  <li><a href="https://github.com/huxpro">Hux pro</a></li>
366  
367</ul>
368
369
370      <!-- Ads -->
371      
371<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
371
372<!-- first shot -->
373<!-- <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6487568398225121" data-ad-slot="4814308751"
374     data-ad-format="auto" data-full-width-responsive="true"></ins> -->
375<script>
376     (adsbygoogle = window.adsbygoogle || []).push({});
377</script>
377
378
379    </div>
380    
381  </div>
382</div>
383
384
385
386
387    <!-- Footer -->
388<footer>
389    <div class="container">
390        <div class="row">
391            <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
392                <!-- SNS Link -->
393                
394
395
396<ul class="list-inline text-center">
397
398
399  
400  
401  
402  
403  
404  
405  
406</ul>
407
408                <p class="copyright text-muted">
409                    Copyright &copy; OLDK Blog 2026
410                    <br>
411                    <!-- Powered by <a href="http://huangxuan.me">Hux Blog</a> | -->
412                    <!-- <iframe style="margin-left: 2px; margin-bottom:-5px;" frameborder="0" scrolling="0" width="100px"
413                        height="20px"
414                        src="https://ghbtns.com/github-btn.html?user=huxpro&repo=huxpro.github.io&type=star&count=true"> -->
415                    </iframe>
416                </p>
417            </div>
418        </div>
419    </div>
420</footer>
421
422<!-- jQuery -->
423<script src="/js/jquery.min.js "></script>
423
424
425<!-- Bootstrap Core JavaScript -->
426<!-- Currently, only navbar scroll-down effect at desktop still depends on this -->
427<script src="/js/bootstrap.min.js "></script>
427
428
429<!-- Custom Theme JavaScript -->
430<script src="/js/hux-blog.min.js "></script>
430
431
432<!-- Simple Jekyll Search -->
433<script src="/js/simple-jekyll-search.min.js"></script>
433
434
435<!-- Service Worker -->
436
437<script src="/js/snackbar.js "></script>
vendor: 1 bytes, line 437
437
438<script src="/js/sw-registration.js "></script>
438
439
440
441<!-- async load function -->
442<script>
443    function async(u, c) {
444        var d = document, t = 'script',
445            o = d.createElement(t),
446            s = d.getElementsByTagName(t)[0];
447        o.src = u;
448        if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
449        s.parentNode.insertBefore(o, s);
450    }
451</script>
451
452
453<!--
454     Because of the native support for backtick-style fenced code blocks
455     right within the Markdown is landed in Github Pages,
456     From V1.6, There is no need for Highlight.js,
457     so Huxblog drops it officially.
458
459     - https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0
460     - https://help.github.com/articles/creating-and-highlighting-code-blocks/
461     - https://github.com/jneen/rouge/wiki/list-of-supported-languages-and-lexers
462-->
463<!--
464    
464<script>
465        async("http://cdn.bootcss.com/highlight.js/8.6/highlight.min.js", function(){
466            hljs.initHighlightingOnLoad();
467        })
468    </script>
468
469    <link href="http://cdn.bootcss.com/highlight.js/8.6/styles/github.min.css" rel="stylesheet">
470-->
471
472
473
474
475
476
477
478<!--fastClick.js -->
479<script>
480    async("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function () {
481        var $nav = document.querySelector("nav");
482        if ($nav) FastClick.attach($nav);
483    })
484</script>
484
485
486
487<!-- Google Analytics -->
488
489<script>
490    // dynamic User by Hux
491    var _gaId = 'G-90DP1D7ER8';
492    var _gaDomain = 'oldk.us.kg';
493
494    // Originial
495    (function (i, s, o, g, r, a, m) {
496        i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
497            (i[r].q = i[r].q || []).push(arguments)
498        }, i[r].l = 1 * new Date(); a = s.createElement(o),
499            m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
500    })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
501
502    ga('create', _gaId, _gaDomain);
503    ga('send', 'pageview');
504</script>
504
505
506
507
508<!-- Baidu Tongji -->
509
510
511
512<!-- Side Catalog -->
513
514<script type="text/javascript">
515    function generateCatalog(selector) {
516
517        // interop with multilangual 
518        if ('true' == 'true') {
519            _containerSelector = 'div.post-container.active'
520        } else {
521            _containerSelector = 'div.post-container'
522        }
523
524        // init
525        var P = $(_containerSelector), a, n, t, l, i, c;
526        a = P.find('h1,h2,h3,h4,h5,h6');
527
528        // clean
529        $(selector).html('')
530
531        // appending
532        a.each(function () {
533            n = $(this).prop('tagName').toLowerCase();
534            i = "#" + $(this).prop('id');
535            t = $(this).text();
536            c = $('<a href="' + i + '" rel="nofollow">' + t + '</a>');
537            l = $('<li class="' + n + '_nav"></li>').append(c);
538            $(selector).append(l);
539        });
540        return true;
541    }
542
543    generateCatalog(".catalog-body");
544
545    // toggle side catalog
546    $(".catalog-toggle").click((function (e) {
547        e.preventDefault();
548        $('.side-catalog').toggleClass("fold")
549    }))
550
551    /*
552     * Doc: https://github.com/davist11/jQuery-One-Page-Nav
553     * Fork by Hux to support padding
554     */
555    async("/js/jquery.nav.js", function () {
556        $('.catalog-body').onePageNav({
557            currentClass: "active",
558            changeHash: !1,
559            easing: "swing",
560            filter: "",
561            scrollSpeed: 700,
562            scrollOffset: 0,
563            scrollThreshold: .2,
564            begin: null,
565            end: null,
566            scrollChange: null,
567            padding: 80
568        });
569    });
570</script>
570
571
572
573
574<!-- Multi-Lingual -->
575
576<!-- Handle Language Change -->
577<script type="text/javascript">
578    // get nodes
579    var $zh = document.querySelector(".zh");
580    var $en = document.querySelector(".en");
581    var $select = document.querySelector("select");
582
583    // Changes at v1.8.1: include lang flag as a url query. This interop well with catalog hash anchors.
584    function getLang() { return new URLSearchParams(document.location.search).get("lang") }
585
586    function setLang(newLang) {
587        var params = new URLSearchParams(document.location.search)
588        params.set("lang", newLang)
589        document.location.search = params.toString()  // refresh.
590    }
591
592    // handle render
593    function _render() {
594        var lang = getLang()
595        // en
596        if (lang == "en") {
597            $select.selectedIndex = 1;
598            $en.style.display = "block";
599            $en.classList.add("active");
600            $zh.style.display = "none";
601            $zh.classList.remove("active");
602            // default to zh-cn
603        } else {
604            $select.selectedIndex = 0;
605            $zh.style.display = "block";
606            $zh.classList.add("active");
607            $en.style.display = "none";
608            $en.classList.remove("active");
609        }
610        // interop with catalog 
611        generateCatalog(".catalog-body");
612    }
613
614    // handle select change
615    function onLanChange(index) {
616        if (index == 0) {
617            lang = "zh"
618        } else {
619            lang = "en"
620        }
621        setLang(lang)
622    }
623
624    // init
625    _render();
626</script>
626
627
628
629<!-- Simple Jekyll Search -->
630<script>
631    // https://stackoverflow.com/questions/1912501/unescape-html-entities-in-javascript
632    function htmlDecode(input) {
633        var e = document.createElement('textarea');
634        e.innerHTML = input;
635        // handle case of empty input
636        return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
637    }
638
639    SimpleJekyllSearch({
640        searchInput: document.getElementById('search-input'),
641        resultsContainer: document.getElementById('search-results'),
642        json: '/search.json',
643        searchResultTemplate: '<div class="post-preview item"><a href="{url}"><h2 class="post-title">{title}</h2><h3 class="post-subtitle">{subtitle}</h3><hr></a></div>',
644        noResultsText: 'No results',
645        limit: 50,
646        fuzzy: false,
647        // a hack to get escaped subtitle unescaped. for some reason, 
648        // post.subtitle w/o escape filter nuke entire search.
649        templateMiddleware: function (prop, value, template) {
650            if (prop === 'subtitle' || prop === 'title') {
651                if (value.indexOf("code")) {
652                    return htmlDecode(value);
653                } else {
654                    return value;
655                }
656            }
657        }
658    });
659
660    $(document).ready(function () {
661        var $searchPage = $('.search-page');
662        var $searchOpen = $('.search-icon');
663        var $searchClose = $('.search-icon-close');
664        var $searchInput = $('#search-input');
665        var $body = $('body');
666
667        $searchOpen.on('click', function (e) {
668            e.preventDefault();
669            $searchPage.toggleClass('search-active');
670            var prevClasses = $body.attr('class') || '';
671            setTimeout(function () {
672                $body.addClass('no-scroll');
673            }, 400)
674
675            if ($searchPage.hasClass('search-active')) {
676                $searchClose.on('click', function (e) {
677                    e.preventDefault();
678                    $searchPage.removeClass('search-active');
679                    $body.attr('class', prevClasses);  // from closure 
680                });
681                $searchInput.focus();
682            }
683        });
684    });
685</script>
685
686
687
688<!-- Image to hack wechat -->
689<img src="/img/icon_wechat.png" width="0" height="0" />
690<!-- Migrate from head to bottom, no longer block render and still work -->
691
692<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"e9469b82953841bb8e96b9609e8e9efe","r":1,"spa":2}' crossorigin="anonymous"></script>
692
693</body>
694
695</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.