|
2024 老 @ 2025-01-01, 15:18 |
按惯例,在此跨年之际,我应该写一篇年志。然而,几次动键盘写了一段,却又删了。此时此刻,周身弥漫着一种无力感,明明几乎所有人都在喊着辞旧迎新。甚至在试图回忆整理 2024 这一年做了些什么的时候,都懒得再去 git 库查一下记录了。突然就觉得,列出个 1、2、3 也并没有什么意义。
看过一个研究,说人的衰老不是线性的,而是在某几个年龄节点断崖式的,其中一个是44岁。但在我身上,似乎 2024 年,46 岁才是这个节点。往年头上冒出的白发,不会同时超过三根,而 2024 年却有了近十根,感觉拔不完了,便不拔了。
除了多冒出来的白发,衰老更多地体现在对事物把控上的无力感。无奈接受了很多现实的荒诞,没有了如年轻时般对未来充满信心和憧憬。虽然依旧对喜欢的事情保持热情去做,却不再相信一分耕耘一分收获。正反馈从来就不是这个世界的法则,不公才是常态。看着这些“领悟”,自己都能感受出其中的“老态龙钟”。
所以,根本就不会想去打开 git 库查自己一年里做了些什么了,但记得这一年伴随着很多的焦虑。简单回想一下这一年的时光吧。春天的时候,小区开始做“美丽家园”改造,搭了脚手架刷新外墙面,做了平改坡。因为身处顶楼,平改坡确实带来了一些好处。夏天,和老婆孩子去/回了一趟珠海,这也是我在老妈中风近六年来第一次真正意义上走出上海。秋天,可乐高三了。冬天,小区的改造继续,因为涉及更换下水管道,小区道路被挖得面目全非,尘土漫天。还有,12月底又感冒了,就像去年此时此刻。
当然,即便衰老是断崖式的,也并非一个节点就能一蹴而就的。真正的衰老还有更多节点。所以,生活还是要继续的。
2025年,我会先把《永恒的舞动》小说完结。已经近 22 万字了,但 2024 年只写了 8 万字,进度比原计划确实有些落后了。最初开始写作这部小说,是为了实际研究和体验 AI 的能力边界,但真正开始后,写作过程很快完全转变为自己的创作。虽然在小说写作方面我是完全的新手,有一些想法却也必然是稚嫩。但既然开始了,便也会尽力写到一个自认为精彩的高潮结局。这件事,应该是目前我唯一稍微有些掌控力的事情。无论实际水准如何,无论喜欢它的人有多少,对任何一个项目善始善终总是我最希望能达到的目标。
2024年,我时常会做一种思考,或者称之为想象体验。我不确定这是不是也是衰老的一种迹象——此时此刻,感到自己已经到达了生命旅程中后半段的一个节点。假设 20年前,当时年轻的自己设想过未来某一天到达这个节点时,回望 20 年前的自己,会感受到时间流逝如瞬间,曾经想象中遥远的那一天就已经是“现在”了。由此推向未来,20年后真正老年的自己,回望此时此刻,想起当时(也就是当下)在想象 20 年后自己已经到了老年,甚至是生命的最后一刻,回望今天,感受到同样的“当时看此刻似乎还很遥远,但现在真的到了这一刻”的体验。
某一天,当你睁开眼,那个节点已然是当下。一切恍如一梦。
|
农码生涯 | 1 个评论 | 507 次阅读 |
简短地址:http://ncblog.net/2220/
|
|
2023 AI 年 @ 2023-12-31, 22:52 |
无论是被裹挟进也好,还是主动跳入也好,总之已经身处 AI 浪潮中。
依旧记得年初天天刷推时面对时新日异 AI 相关最新动态时的焦虑心情,然后是各种玩得不亦乐乎:
自己搭好 Stable Diffusion 研究各种底模、Lora 只为画出更赏心悦目的美女;用自己照片训练模型画一个六十岁的自己;扒 Stable Diffusion 源码创建自己的 AI 绘画服务……
六月开了 ChatGPT Plus,开始能稳定地用上 GPT-4。然后启动了一部关于 AI 的科幻小说写作,目前已完成十三万字。
下半年陆续完成了 macOS、Windows、iOS/iPadOS 版的 Effie AI,终于将 AI 技术落地到了我们手中相对已经比较成熟的基础设施——Effie——中。目前的文本生成类 AI,最直接最擅长的应用场景,毫无疑问正是在文字处理方面。将 AI 技术通过我们的效率工具融入用户的生产力流程中,无疑是 Effie“把思想变成价值”这一初衷的更完美体现。
人生进入下半段,时间的流速快到时常让人怀疑其是否真的存在过。只有每年此时回顾一年来的成果,盘点增加的代码行数,才能让自己确信,这一年确实曾经经历过。
2023年最后一周,在感冒与失去味觉中度过。
|
农码生涯 | 评论已关闭 | 3,273 次阅读 |
简短地址:http://ncblog.net/2119/
|
|
网站被黑 @ 2023-08-02, 11:47 |
上周六下午,刷 https://nicrosoft.net/blog/ 时,突然刷出了 404。SSH 登录上服务器,才发现久未关注的服务器上,WordPress 网站目录下已经遍布了 wpconfig.bak.php 这样的黑客留下的恶意文件。
因为这台服务器上的网站一直运行良好,就很久没有关注过它了。所以,在备份了日志后,当即还是决定彻底重装整个系统。这台机器上主要都是我个人相关的网站,没有什么重要的在线服务,因此也就断断续续花了好几天,才把所有环境都恢复起来了。小说也断更了好几天了。
之后,还在 MySQL 数据库里,发现了黑客添加的几个 WordPress 管理员帐号。
所以,最后决定好好增强一下 WordPress 的安全性。WordPress 自身,以及因为支持各种良莠不齐的插件,安全性一直是被诟病的。之前觉得自己的网站没什么人关注,应该不值得成为黑客目标,当然也是对自身运维方面有一定的信心,尤其是一直稳定运行了超过十年,所以就真的大意了。
亡羊补牢,经过对被黑网站的日志的分析,黑客的行为大致还是有迹可循的。对于 WordPress 架设的网站,我建议:
- 尽量不安装,或者少安装第三方插件。并不是说,用的人越多,越流行的插件就没问题。流行度越高的插件,被黑客研究利用的可能性也越大。插件开发者水平参差,不见得每个插件都能在安全性上下足功夫。
- 自己配置 web 服务器,比如 nginx,要禁止在敏感目录(比如 /wp-content/uploads/)执行 php 文件。可以在 nginx 的网站配置中增加类似下面这段:
location /wp-content/uploads/ { location ~ .*\.(php|php5)?$ { deny all; } }
- 配置禁掉 /xmlrpc.php:
location = /xmlrpc.php { return 403; }
- 监控网站目录中文件的异常变动,比如增加了什么奇怪的文件。
- 监控网站的数据库中用户数量的异常变动,比如增加了奇怪的管理员权限的账号。
关于上面第4、第5两点,我准备写一个监控工具定时自动执行来完成。昨天已经在 github 开了新项目:https://github.com/shenmin/wpsec_mon
目前完成了监控数据库中用户数量的异常变动,发现增加了可疑账号时,发送邮件通知。定时执行则借助系统的 cron 服务即可。后续还会继续做下去,把文件监控完成。
|
农码生涯 | 1 个评论 | 13,168 次阅读 |
简短地址:http://ncblog.net/2032/
|
|
2022 乏善可陈 @ 2023-01-01, 14:32 |
2022年过得着实乏善可陈:春天被封城整两个月;夏天被40+摄氏度连续烘烤了近两个月;秋天被带状疱疹折磨了近一个月;冬天全家阳了一个星期。
如果非要找一些积极的:春天在封城中完成了 Effie 对图片的支持;夏天儿子考上了他理想的高中,我把家里的11年前配置的PC更新换代了;秋天完成了 Effie 的 Android 版本;冬天全家阳过了,始终令人惶惶不安的封控式防疫终于结束了。
时间已经踏入2023年,但又似乎并没有什么让人期待、令人兴奋的。
|
农码生涯 | 1 个评论 | 3,991 次阅读 |
简短地址:http://ncblog.net/1958/
|
|
返沪十年 @ 2022-10-09, 19:11 |
2012年10月长假后全家从珠海回到上海,至今已有十年。
十年前,可乐还是个幼儿园大班的小朋友,现在已然是人高马大的高一学生。这十年间,有过紧绷的创业,有过放松的生活,有过面临老人病倒的无措,也有安稳的苟且,以及面对疫情的无奈……
而不变的,是键耕不辍的敲代码。十年前,和李自然合作开启,以及合伙创业做 Mera,项目遗憾地失败了。最近的两年多,再次和李自然合作,全情投入了 Effie 这个项目。两年多写了四大平台(macOS、iOS、Windows、Android)的编辑器和思维导图,近30万行代码,如果要我再写一个平台的编辑器,真的会吐了吧。全部原生实现,就是会面对这样的境地,需要无比的耐心——面对时间、金钱以及精力的全方面考验。幸运的是,李自然给了足够的耐心,我也算不辱使命,Effie 全平台的里程碑基本达成了。
成功的合作,基础无非是互相成全。感谢。
疫情已经三年,今年实实在在地捶打到了上海。全城2500万人封控61天,以及全国大小城市、乡镇陆续的封控和所谓静默,已经彻底颠覆了人生前四十多年的认知——活久见。
无论是人到中年的自己,还是社会,似乎都已经告别了那个蒸蒸日上的年岁。叹息。
|
农码生涯 | 6 个评论 | 5,717 次阅读 |
简短地址:http://ncblog.net/1948/
|
|
为 Effie 工作两周年 @ 2022-02-03, 13:14 |
除夕(在家陪老婆孩子)、初一(早上送老婆孩子去机场回她老家)休息了两天。昨天初二,正好也是我为 Effie 工作两周年,我自己的虎年开工。
公司里只有我一个人,其实这样的环境对我来说还是挺舒服的,毫无干扰。正好这段开发工作也不太需要别人协作,可以一个人静静地码代码。只是已经连续一个多星期的阴雨天,让人阳光不起来。
|
农码生涯 | 评论已关闭 | 2,379 次阅读 |
简短地址:http://ncblog.net/1883/
|
|
马不停蹄的2021 @ 2022-01-01, 13:36 |
2021年1月6日 Effie 1.0 发布,5月2日完美适配 iPad,8月26日发布完全重写的原生 Windows 版,冬至日 Effie 海外版上线。这一整年,除了支持平台的增加,Effie 本身的功能也在不停完善。马不停蹄的这一年,同时也带来了用户数量、满意度的不断增长。Effie 的发展仍处于起步阶段,产品、平台层面仍然存在缺口,所以2022年的计划已经排满。
专心于开发能为自己带来成就感和收益的软件产品,无疑是快乐的。
2020年减重12+kg之后,2021年成功保持了减重成果,体重没有增加,维持在了 73kg 左右,达成了年初立下的 flag。
一定的自律加上喜欢的饮食、运动方式带来的比较理想的体重和能察觉的充沛精力,以及不油腻的中年,无疑也是快乐的。
2021,大学毕业整整20年的这一年,过得充实而简单。2022年的第一天,晴转多云,最高气温11摄氏度,希望新的一年能一样简单而充实。
|
农码生涯 | 1 个评论 | 6,585 次阅读 |
简短地址:http://ncblog.net/1875/
|
|
Free Pascal 的 bug 已修正 @ 2021-03-15, 13:01 |
周末把 fpjson 的 bug 提交给了 Free Pascal 的开发组,很快就得到响应并修复了。
|
农码生涯 | 评论已关闭 | 3,131 次阅读 |
简短地址:http://ncblog.net/1834/
|
|
Free Pascal 的 fpjson 的一个解码 bug @ 2021-03-13, 00:40 |
fpjson 单元是 Free Pascal 支持 JSON 的实现,今天使用它来解析服务器传回的结果时踩了它的一个解码 bug 的坑。
我写了一个演示程序,分别用 fpjson 以及另外两个第三方的开源 JSON 单元(LkJson 和 JsonTools)解析同一段非常简单的 JSON 字符串的结果。
uses fpjson, LkJSON, jsontools;
procedure TForm1.Button1Click(Sender : TObject);
var
str : String;
js1 : TJsonObject;
js2 : TlkJSONobject;
js3 : TJsonNode;
begin
str := '{"name":"\u95e8\u88ab\u8111\u5b50\u6324\u574f\u4e86"}';
js1 := GetJson(str) as TJsonObject;
js2 := TlkJSON.ParseText(str) as TlkJSONobject;
js3 := TJsonNode.Create;
js3.Parse(str);
ShowMessage(
js1.Get('name', '') + #13#10#13#10 +
js2.getString('name') + #13#10#13#10 +
js3.Find('name').AsString
);
js3.Free;
js2.Free;
js1.Free;
end;
运行结果如下图所示,第一行是 fpjson 解析的有问题的字符串,后两行是另外两个解析的结果——显然都正确处理了:
演示工程放在 Github 了,也附带了另外的那两个开源 JSON 单元,其中的 LkJson 单元我修改了一些 bug,与原始版本(超过 10年没有修改过了)有些微差异。
|
农码生涯 | 评论已关闭 | 3,394 次阅读 |
简短地址:http://ncblog.net/1832/
|
|
为 Effie 工作一周年 @ 2021-02-02, 12:19 |
减重卓有成效,目前为止瘦了 26 斤。
|
农码生涯 | 1 个评论 | 4,704 次阅读 |
简短地址:http://ncblog.net/1826/
|
|
|