9102年都已通过去好几天了,如今才来产出年终总结。html
在18年的总结中,我提到本身开发了一个名为cuckoo
的工具,用来代替macOS的提醒事项、日历,以及由crontab调用的shell脚本。这个目标在19年得以实现,cuckoo
已经彻底取代了它们。git
cuckoo
实现了如下功能:github
cuckoo
甚至能够在正确的二月最后一天弹出提醒——不论是平年仍是闰年;alerter
,cuckoo
能够在提醒弹出后推迟它(5分钟、10分钟),或推迟到指定的时刻;cuckoo
能够把提醒以微信消息推给手机;ControlPlane
,实现按场景提醒——好比10点钟若在公司就提醒本身开晨会,若在家则毫不弹出。我还提供了给Emacs用的minor mode和Alfred Workflow,以提升易用性:shell
C-c r
即可为光标所在的条目建立提醒;DONE
或CANCELLED
状态时,也会自动更改cuckoo
中任务的状态(感兴趣的读者能够移步以前的文章);在18年入手MBP后不久,我便入手了Alfred,并购买了Powerpack。平均天天使用Alfred 110次,大可能是Snippets(auto expansion真香)、Clipboard(临时存储文字和图片的绝佳位置)、Workflow。经常使用的Workflow都是我本身开发的:数据库
unit
用于快速输入不一样时间长度的秒数的,例如输入6天的秒数6 * 24 * 60 * 60 * 1000
;upload
用于上传图片到GitHub,把GitHub当图床用(感兴趣的读者能够移步这篇文章);gt
用于获取指定日期的UNIX时间戳、int
用于获取一些预设的时间戳(例如“昨天0点”);yl
用于精确设定macOS的音量;bqb
用于斗图(感兴趣的读者能够移步这里)。这些脚本都收集在名为wa的私有仓库中。因为需求比较稳定,这个仓库的迭代很少。npm
不害臊地说,jjcc
是一个用Common Lisp写就的编译器,运行在SLIME中,若是投喂它某种LISP方言代码,就能够编译出跑在macOS上的x64汇编代码。这是个人第一款生成汇编指令的编译器,为此还恶补了很多汇编语言知识,尤为是x64的calling convention。这款编译器的开发过程写成了文章发表在博客和知乎上,感兴趣的读者能够移步这个专栏。json
在完成了蹩脚的自定义函数特性后,我读了《An Incremental Approach to Compiler Construction》这篇论文,它按部就班地开发一个Scheme语言到x86汇编的编译器,而且阶段划分得更好,后来我也按照论文的思路从新实现了一遍。后端
19年10月份时RescueTime Premium到期,因为太鸡肋了便再也不续费。我仍然有time-tracking的需求,因而打算本身动手写一个代替品。皇天不负有心人,我找到了active-win
这个库,它能够获取当前有焦点的窗口的元信息。基于这个库我写了两个脚本:数组
savemoney.js
,每隔一秒调用active-win
获取当前激活窗口的元信息,而后写入到Redis中;accounting.js
,不停地从Redis中取出数据,运算后写入到MySQL中。目前仅仅是将数据记录在了MySQL中,没有作报表和统计。这两个脚本经过Launchd在每次登陆后自动运行。微信
19年在GitHub博客一共发表了28篇博文,数量差强人意,质量亟待提升。在读了利用金字塔原理写出好文章后,我逐渐改进本身的写做方法,以期写得更有条理。
除了GitHub博客和SegmentFault,我还在知乎上发表了一些文章,大可能是关于jjcc编译器的。刚才我说文章的质量亟待提升,若是你看过jjcc编译器系列的文章的话,必定会很赞成个人观点。
博客和SegmentFault的受众很小,因而我又开通了微信订阅号,但愿能够在技术圈子里更多的展现本身——有没有值得展现的内容另说。在订阅号上发表文章多了一种无形的压力,毕竟这些内容更容易被同窗、同事、同行看到(前提是人家乐意看)。万一写的很糟糕,可就糗大了。目前订阅号关注者寥寥,有兴趣的能够微信搜索“小打小闹写点bug”关注。
19年读完的书很少:
还有许多在读经典书籍,如《Clean Architecture》、《重构》。刚开始我会在上下班搭地铁时读这些书,后来将看书时间固定在了天天下午一点至一点半。这些在读的书像一条队列,我天天会读队头的书,而后放到队尾。这样一来,天天都在涉猎不一样领域的内容。
在18年9月,我闭门造车地整理了一份Web后端软件工程师的技能树,再据此来寻找要读的书。例如,上述的《MongoDB in Action》是依据“后端知识/文档数据库/MongoDB”找的,《Linux Shell Scripting Cookbook》是依据“后端知识/命令行操做”找的。技能树整理得好很差暂且按下不表,但渐渐地我忘记了看书的初衷,成了“为看而看”。看似天天中午都在学习,实际上因为目的性不强,收获不大。因为天天读不一样类型的书,同一个主题的学习过程也变得支离破碎。这个学习方法已经到了迫切须要优化的地步。
19年10月升级到macOS Catalina,而后问题便接踵而至。首当其冲的是alerter
和terminal-notifier
无法用了,没法在右上角弹出提醒。一番折腾后不见转机,只好先用AppleScript代替,让cuckoo
能够弹出提醒。AppleScript的display notification
功能远不及alerter
那么丰富,聊胜于无吧。
Firefox也开始闹别扭。只要打开Firefox稍微用两下,就会有一个名为FirefoxWebCP Extension的进程疯狂地使用CPU,Firefox内的各标签页也纷纷失灵转圈,几天下来都是如此。没办法,只好起用Chrome。稍微磨合后发现Chrome其实挺不错,各方面都今非昔比。之前之因此一直坚守在Firefox的阵营,主要是由于:
但愿Mozilla在2020年能够修复这个问题,让我重回Firefox的怀抱。
2019年的Common Lisp依然让人哀其不幸怒其不争,我也依然痴迷于这门古怪的语言。但痴迷不能当饭吃,要将CL投入到实际应用实在太难。且不说Quicklisp上库的数量远不及PyPI和NPM,质量也使人抓狂。这不,都9102年了,访问一个返回JSON数据的HTTP接口,还得先用drakma
发出请求(也许不支持HTTP/2),再用flexi-streams
将字节数组转换为UTF-8编码的字符串,再用cl-json
解析一番。拿到一个列表对象后,再用car
、cdr
、assoc
一顿操做猛如虎,才能拿到须要的数据。
2020年,MAKE CL GREAT AGAIN!
在年中的时候,萌生了换记帐软件的想法,由于挖财用起来愈来愈不爽了,并且成天记流水帐也没什么收获。一番摸索后,我决定尝试一下复式记帐法,并选择了GNU Cash——早年间用过一次,但没看入门手册就开始用,根本玩不转。这一次却是读了手册,但GNU Cash的UI和操做方式仍是没法让我心动;以后知道了beancount,却没法在个人系统中顺利运行;最终我选择了ledger,它是一个命令行程序,不负责记录,只负责读取手打显诚意的交易明细,而后产出报表。Emacs有一个ledger-mode插件,二者配合用来记帐超痛快。
在2020年我但愿至少能完成:
cuckoo
;wa
;alerter
的代替品;最后