2023 新的开始

转眼间已经 2023 年了。

我的独立博客是从 2009 年开始的,在那之前使用的是百度空间(不知道还有多少人记得哈哈)。

回想起来 2009 年当时,我还在上小学五年级,在愿网认识了我人生中最早的一批网友(现在很多已经不限于网友了哈哈),那时候大家 QQ 虽然也不是像现在这样 24 小时在线的,但是群总是热闹非凡(还有群邮件,真是群魔乱舞)。

有幸结识了大家,走上了开发的不归路~

时隔 14 年,第一次彻彻底底的搬迁博客系统(从 Emlog 到 Hugo)。想在这篇文章流水账一下本站曲折的历程。

上古年代

买的第一个域名还是跟一起,当时是2009年吧,我们都是小学生没法开银行卡,还记得当时我搞了一个移动充值卡。当时支付宝也不用实名注册,猫想办法把钱搞进支付宝然后淘宝联系了一个雅虎域名的代购(零花钱嘛,需要留点钱买辣条,能省一块都是省),以第一年 15 块钱的价格搞到了 com 域名(921la.com 现在这个域名我还在续费,不过没想好做什么~)。

虽然买了 com 域名,但我自己的博客反而是最开始用了 tk 域名,我注册到了 lanyangyang.tk,拜托朋友申请到了 000webhost 的免费主机(好像现在 000webhost 还存在…),因为那个年代免费机性能比较差,用 WordPress 会非常卡,于是我用了 Emlog。没记错的话我搭建博客的时候是 Emlog 3.1.0,不能说丝般顺滑吧,但是访问挺顺的。

我还记得当年很多国外免费主机都是联通或者电信单线的,打不开是家常便饭。

然后到了2010年左右吧,就被猫安利了一个一年 1.68 元的免费空间(白手起家,http://www.168.sh/),这个空间访问速度和性能都挺好,不过当时 http 年代嘛,主机商会在 html 源码里注入一个广告浮窗,无伤大雅嘿嘿。

大概到了 2010 年底还是 2011 年吧,lanyangyang.tk 这个域名被 tk 域名机构回收了(好像访问量大都会被回收,很坑)。我又注册了 lanblog.tk,老博客的内容我也清空了(小学生时期喜欢分享一些段子啥的,当时上初中了感觉挺无聊遂重置之233~),用 emlog 3.5.0 重建了博客,现在这个博客我记得数据就是从当时继承下来的。

中古时期

后面就是 NtrQQ 时期了,通过研究 PCQQ 客户端认识了更多朋友,也得到了大家的帮忙。插件开发之初我啥也不懂,本身主要是山野哥(人也在日本)、Yonet(已退网)、shuax(前阵子出了点事)、童话等大哥帮忙,在这个期间把C语言写的比较熟练了,逐渐对内存和 OS(主要是 Win32)、x86asm 相关知识、C++ 的 vtbl 原理、各种 hook 技术(比如 inline hook、IATHook 之类)、二进制逆向等做了深入了解。后来还和颠沛流离搞出了一些奇怪功能,从 zd423 那里拿到了一些 DUP2 补丁我把它做成了内存补丁,从 Coxxs 那边了解了 QQ 的结构化消息受了一些启发才有了“后显 IP 时代”。要感谢的大哥很多,没他们的话我一个人也搞不出来那么多牛逼东西。

2012 年 7 月 14 日,NtrQQ 论坛(现 iya.app)开设,最开始是使用 Discuz 7.2 GBK 版本构建的。得到了小羊的帮助,白嫖了他的小羊云平台,2013 年中旬左右,论坛用户激增,访问速度比较慢,后面我在淘宝找代购,购置了安装有 CentOS 5.x 系(具体版本忘了,好像是 5.7 还是 5.8)的台湾大宽频 VPS,鸟枪换炮了,我的博客也挪了过去。

在此期间论坛也来了很多热心朋友来一起运营,帮忙维持 QQ 群和论坛的秩序,现在也很怀念当时比较热闹的时代。我自己从腾讯微博内测时期就在玩(最早一批需要邀请码制度的时候),虽然 Emlog 提供碎语功能,但是我更喜欢在腾讯微博玩,有意思的人很多,跟新浪微博不是一个用户群的感觉。后来腾讯微博关停,难民大部分人都跑推特上去了,我虽然也注册了(2011年左右吧,这号现在还在用),但是翻墙毕竟不方便,我大部分时间只看不说话。

因为之前用过 90it 家的免费主机,我之前的域名一直放在 36dns 上,也就是现在的主机壳(hostker)。有时候域名续费问题之类会去开工单,然后加了站长小新的 QQ 号,后来没想到小新也知道 NtrQQ。PHP 横行的年代嘛,大部分网站都是裸奔,也没有 HTTPS,也没有 CDN 防护。之前我也饱受 DDoS、SQL 注入、网站访问慢的苦恼,在那个年代自己维护服务器实在是过于繁琐,于是在小新的安利下我把论坛挪到了主机壳。顺便帮我把论坛从 GBK 给转到了 UTF8,主机壳自带 CDN,也帮忙配好了 HTTPS,图片资源走国内,文字节点走香港,在国内的访问速度非常快速。

2014 年左右吧,当时猫买了一些主机,装了 VPS Panel 可以分配资源,我的博客之类的小项目就比较厚颜无耻的白嫖他的资源了哈哈。没记错的话,后面就是高中时代了,中间这几年忙里抽闲,应各位用户姥爷要求 NtrQQ 也在有一搭无一搭更新。当然我高中也没咋好好写过作业,主要是应试考试啥的我也不擅长、也完全不感兴趣,到现在也是一样。比赛倒是去了几个(NOIP、NOC、还有什么小软件开发比赛啥的),挺有幸的跟同校的 chenhe 一起去组队参加 NOC,没去参加这个比赛我可能会错过一个重要的好朋友。比赛中间我们拆包逆向主办方开发版的蓝牙协议、临比赛之前搞出来开发版的源码做修改版的骚操作搞到半夜,到现在我还记忆深刻哈哈。

在国内就我当时那个状态,估计高中毕业也许我就会去上班了(确实也有一些公司已经联系我,当中还有某数字大厂,当年互联网还算火爆,不像最近两三年哈哈),但是我父母不让。在父母鼓励下,2016 年二三月份左右,我决定同年 7 月来日留学了,剩下几个月在家除了学日语之外也没啥事情,第一次感觉清闲。闲人的力量是强大的,有限的时间我都拿来研究 PCQQ 客户端了,那阵子还继续搞了搞安卓原生开发(但是不知道写点啥好,当时其实移动原生开发已经有点饱和了),当然还在 PC 上通关了两三遍 GTA5。

近代(来日)

2016 年来日之后,有一阵子啥也不想干,语校摸鱼,进大学之前啥都不想做,天天躺床上刷 YouTube,以及在 QQ 群跟全民 K 歌的朋友们打打手游啥的。2017 年留考结束,看了大学宣传,感觉新开的 INIAD 挺有意思,报了名,也许是 INIAD 的教授对我的经历感觉有意思,面试也聊得来,没想到合格了,我也没再去申请其他大学(现在感觉挺有缘的,INIAD 是个学习的好地方,老师教授们都是技术控,而且很有活力)。

直到 2018 年 4 月大学入学,那几个月可能是我人生到现在为止最没压力,最颓的一阵子。

博客这块,我所有服务就挪到了 linode 上,开了几个 1 核 1GB 内存的机器,一个跑 web,一个跑 mysql,一个跑 postgres。

大一时候跟 Kevin 组队参加了東京公共交通オープンデータチャレンジ 2nd,想了个自动规划行程的点子开发了“TOKYO 日程” App。不过我还没走出颓废期,我用 django 撸了个很土的 API 后端(都没上 DRF),客户端和主要算法都是 Kevin 扛着,不然有可能都提交不上去。结果发表,最后整了个特别奖,后来问评委好像是他们测试的时候没跑出规划结果(当时单核 1GB 的机器,算一个方案要等半分钟左右,我也没做列队…),略有遗憾吧,第二年学业太忙就没有参加。

2018 年底收到了来自企鹅大厂的律师函,NtrQQ 也不做了,我也打算慢慢脱离国产软件了。后面就慢慢泡在 Telegram 上了,啥都有,真香。

大学期间系统撸了一遍 CS。大部分时间都是在搞 Python 相关生态,从 Web 开发到 AI、编译器都有所涉猎。大学时候学校带着还搞了一年 Verilog HDL 数字电路硬件设计,自制汇编编译器、CPU 虚拟机,挺有意思。另外 React 和 React native 也是这个时候开始鼓捣,但是那个时候撸点 Web 小东西我还是首选老的技术栈,那样不需要前后端分离,自己一个人撸着快。

基本上这个时候博客就是个记事本了,有用的东西就记一下,大学时候哲学课的东西我也写在上面了…

现代(疫情)

2019 年春节之后我就没回过中国了。中间这几年除了忙学校的事情,就是找工作、还有副业的事情啦,博客基本上也没咋写。2021 年开始,我准备毕业设计和论文,我定了 Python JIT 编译器方向,想利用 Python 的 TypeHints 特性做一些改进,最后决定做一个支持从 JITed 代码和 Python 原生代码之间可以相互调用的 Python JIT 编译器。想着反正有一年时间,可以慢慢搞,但是大四这年就职活动还是挺忙的,最后还是比较顺利的把研究拿出来了,顺利拿了个优秀毕业生毕业。

我的博客用 Emlog 也十几年了,因为 Emlog 官方中间也好几年没有更新了,PHP 的东西维护起来也不方便,所以其实最近几年一直想着换一下,不过实在是太忙。中间我用 Django 自己写了一个系统,不过感觉自己造轮子后面如果没时间打理就会很难维护,所以还是想找个现成的系统。

最近几年流行静态博客,对 Markdown 支持比较好,而且打理方便,放到 GitHub Pages 或者 Cloudflare Pages 之类的 Serverless SaaS 上就能完全免费,而且几乎不用担心停机。研究了一波,最后选用了 Hugo,主题比较多,生成静态页面的速度也很快。不过静态博客的缺点是不支持评论,还是需要自己搞一个评论系统。看了一圈,最终参考了 chenhe 的方案,用 Artalk 搭了一个,因为数据都是放自己这边维护的,不用担心社交评论网站关站跑路,感觉还不错。

选好方案之后就是转换操作啦,我用 Jupyter Notebook 写了段 Python 脚本,用 Pandas 连上 Emlog 的 MySQL 数据库,然后从 DataFrame 里头把数据一行一行读出来就行了,还挺简单。不过比较蛋疼的是,Emlog 的文章是 Html 存储的,为了转成 Markdown 我试了好几个库,都不是太好使,反正最后还是批量凑合了一下,板式错的严重的文章只能手动修复一下了。手动修复倒是挺简单,直接把老博客页面打开,然后复制到 Typora 编辑器里面,效果意外的好。

评论区也是同样操作,用 Pandas 连上 Emlog 的 MySQL 数据库,后从 DataFrame 里头把数据一行一行读出来,处理下表情符号啥的,然后整理成 Artalk 的专用 JSON 格式,然后导入即可。

新的开始

现在我的博客已经迁移完毕,以后遇到想分享的事情会持续更新,主要还是技术向吧,去年我写了一些东西但是都放在自己的 Notion 上了,并没有公开,最近打算挑一些还能看的发出来。

另外,目前博客放在 GitHub Pages 上,外面用 Cloudflare 做了 CDN。后续可能考虑直接换用 Cloudflare Pages,我其他的前端服务都已经切换到 Cloudflare Pages 了。不过目前博客还是先这样吧,毕竟 GitHub Actions 上的 CI/CD 流程都是配好的,况且 GitHub Pages 也是免费的。

新的一年,大家一起努力吧~