欢迎来到 Free Mind ,这是由 pluskid 所维护的 blog ,主要记录一些机器学习、程序设计以及各种技术和非技术的相关内容。如非特别指明,本站的文章遵循 Attribution-ShareAlike Creative Commons 协议。更多文章索引请浏览 Archive, Categories, 和 Tags。 部分文章前后有一定的关联,也可在 Series 中找到索引。早期的博客文章请参见 Free Mind 2009~2012Free Mind 2007~2009。博客内容仅代表个人观点,与雇主无关。

My First Keyboard PCB Design

今年入了焊板子这个好玩的坑,刚开始是用 Arduino 的 starter kit 学习一些入门教程,并用别人做的 PCB 和不太详细的组装指南成功组装了给 Procreate 用的遥控器,那个时候连 PCB 是什么都搞不清楚(我以为电路板里是有复杂集成电路自己实现一个完整芯片的功能)。之后又莫名入了定制键盘的坑,更加一发不可收拾,做了第一个手工焊接的键盘,然后又焊了分离式键盘,定制 OLED 显示屏之类的。其实在焊完第一个键盘对整个流程有了大致的了解之后就有意想要什么时候设计自己的键盘了。只是一直并没有动手去做的原因是并没有找到特别有说服力的理由,毕竟我也不想只是为了设计一个键盘而去设计一个键盘,而网上有各种各样的定制键盘的设计,有不少是开源的,基本上包含了各种你感兴趣的设计方案。

直到最近一个偶然的契机 N 对小键盘和 Colemak 布局产生兴趣,于是新键盘的想法很快成型了。刚才我说入了焊板子的坑其实并不准确,因为到目前为止我一个针脚都没有焊过,全靠首席焊接工 N 的鼎力支持这些项目才得以完成,所以突然有了回馈工人的一个好手段。下面分享一下我设计键盘的过程。

Split Keypoard and OLED Customization

九月十月似乎莫名变得很忙,十月份的 Inktober 就别说参加了,基本上是连看网上别人的作品都没太顾得上,感觉我入职以来还从来没有这么忙过,感觉居家令对我生活影响最大的似乎还是 work life balance 的改变,当然所有的事情也都纠缠在一起,也有可能是我现在参与的项目更多或者更麻烦的缘故,但那也难保和居家令没有关系,也许许多人宅家都会去做更多的事情,所以合作的项目才变多的呢?总之就是很忙,不过再忙也还是抽空组装了两个新键盘 XD,这里分享一下过程和经验。

这次的两个键盘都是日本人设计的,一个是 split 的 Corne,另一个是伪 split 的 Reviung41。Corne 可以安装 OLED 屏幕显示一些好玩的东西,我也会分享一下定制 OLED 显示的方法。

记一次有意义的熬夜

最近有一次特别好玩的经历,熬夜到半夜四点多,仿佛有种回到了大学时代做大作业的感觉。于是决定把整个事情记录下来。事情其实就是 build 一个定制键盘的过程,但是在最终快要完成的时候突然出现了一个小问题:在按下某一个键的时候整个一列键都被触发了,后面的故事就围绕着调试和修复这个问题展开,直到后面完全搞明白背后的原理和问题,感觉学到了挺多东西也很好玩。

本故事的中心人物就是图中这个小家伙。这是一个 5x12 的 ortho linear 键盘 kit 组装好了的样子。Kit 是在 boardsource.xyz 买的 5x12 kit,因为我想玩一玩根据已有的键盘 kit 组装的过程练练手,同时也想尝试一下比 4x12 多一排数字键的键盘布局是不是会更好用一些,于是就选了这样一个 kit。并且这个 kit 其实是相当“裸”的:它没有外壳,底板其实也是用一个(没有内嵌任何电路的)PCB 版做的,所以对于自己从头完全设计和定制键盘是比较有参考价值的(因为制造形状复杂的金属外壳是比较麻烦的事情,而打印 PCB 板子现在即使小批量也已经比较可行了)。当然还有一个更重要的原因就是大概目前类似的 kit 只有这个不是 sold out 的状态吧。¯\_(ツ)_/¯

Down the Rabbit Hole of Tiny Keyboards

上学的时候一直都使用笔记本键盘,后来工作之后开始大量使用台式机,而且 Macbook 的键盘还变成了 Touchbar + Butterfly 键的无敌难用组合,于是就渐渐开始关注一些机械键盘。特别是在今年开始尝试了许多不同的键盘,到现在感觉进入了一个定制键盘的大坑,不过借由组装键盘的机会也开始对比 CS 更底层的东西(电路之类的)开始更感兴趣一些了。

2020 书单:白露

白露是夏天的尾巴,从三月开始的居家令一下子竟过去了六个月,美国的疫情控制就不多说了,抛开政府和媒体的各种嘴炮和烟雾弹,从曲线上来看是成功做到了“flatten the curve”,问题只在于 flatten 到最高点上了。不过现在整个世界其他许多地方的情况也不容乐观,美国这边“在家办公”的状态大概是至少要持续到明年暑假,日本强行推迟一年的奥运会估计也无法指望了。其实居家令对心理状态并没有太多影响,反倒是身体上——虽然有尝试在家做一些运动,但是总觉得体力、肌肉各方面都在减弱中,所以这个月开始尝试每周戴上口罩出门往稍远的距离走一走,活动一下腿部肌肉,结果立刻又来了山火,空气质量警报,又出不了门了。在家办公之后住在离公司近(房租高)的地方的理由就没有了,在加上各种天灾人祸,似乎有不少人暂时或永久地搬离湾区,这会不会是硅谷历史的转折点呢?

总之先回到这次的书单,缓冲一下凝重的气氛,我们从轻松愉快的书开始介绍,正好有一本很应景的书,N 之前力荐给我,说是关于“男人的浪漫”的书,讲了一位沙俄前贵族在莫斯科大酒店软禁三十年的故事。

Climbing towards NLU: On Meaning, Form, and Understanding in the Age of Data

今天介绍一篇最近看到的论文,两位作者分别是华盛顿大学 Linguistics 系的 Emily M. Bender 和萨尔大学语言科学与技术(Language Science and Technology)系的 Alexander Koller。从作者的院系大概可以猜到这篇论文并不是跑很多实验提出很 fancy 的模型或者打破了很多 state-of-the-art 性能的论文,不过这篇论文得到了今年 ACL 的 Best Theme Paper,虽然不是很 technical 所以读起来比较容易,但是其实讨论的问题和观点都挺有意思的。

从标题可以看到,这篇论文主要探讨的问题是 NLU(自然语言理解),NLU 在最初 AI 开始作为一个问题研究时就具有重要地位,著名的图灵测试就是一种让人和算法进行“对话”的实验:看人是否能够意识到跟自己对话的另一端是机器而不是一个人,从而来断定机器是否具有了“智能”。取决于被测试的人是否是语言或者人工智能方面的专家,图灵测试有可能会很困难或者很容易,非常早期就有一些程序,例如 ELIZA,通过非常简单的语法变换来对你进行各种反问,成功地让一些人觉得和这个“心理医生”对话非常有帮助(Emacs 里也有一个类似的程序,通过 M-x doctor 可以访问到)。到今天,基于各种超大型神经网络的文本生成模型能做到各种比简单的语法词法替换复杂很多倍的事情。比如最近火遍大江南北的 GPT-3 在开放了 API 之后被大家玩出了各种新花样,有用 GPT-3 写诗歌文章的,有让 GPT-3 帮忙写代码的,当然还有让 GPT-3 做图灵测试的,更多的例子可以参见这个 awesome gpt-3 的列表。

如果早期基于简单规则变换的“心理医生”能骗过一些未经过专门训练的人并不会让我们认为这样的模型具备了真正的智能的话,那么今天能够让绝大多数人都感到惊叹的 GPT-3 这样的模型又如何呢?这大概是一时半会也争论不出结果的问题。这篇论文也没有尝试去跳通用智能这个大坑,而是探讨一个更加容易明确定义和论证的话题:在自然语言处理中什么是一个句子的“意思(meaning)”,以及怎么样算是对一个句子“理解”了。论文对这些概念给出了定义,并通过一些 thought experiment 来论证普通的语言模型的训练方法(例如 GPT-3 之类的)由于只使用语言的“form”,在原则上无法训练出能够掌握语言的“meaning”的模型来。

Work From Home Remote Connection Kit

随着美国 COVID-19 单日新增病例超过 66666 例,早日能够正常回到 office 上班的愿景就越来越渺茫了,于是把精力放在了改善在家工作的舒适程度上。这里记录和分享一些远程连接相关的工具和小 tip,希望对大家 work from home 也有一些帮助。

Github based Comment System, and the Death of Independent Blog?

之前收到一些关于 Disqus 在国内加载较慢或者有时干脆无法访问的反馈,于是抽空研究了一下一些其他评论系统,发现现在(unsurprisingly)类似的系统似乎也没几个了,调查过程中不禁有些感触,于是想顺便写下来。

我在 2012 年之前都是用 Wordpress 平台写博客的,之后为了更高的可定制性(显示数学公式、生成 PDF 文档)于是用 pandoc 等工具手工搭了现在这个博客系统,使用静态页面生成的方式,这样不仅在 host 博客页面的时候非常轻便简洁,需要对网站进行备份的时候也极其便利(比如更早年的博客我虽然没有再用了,但是即使只是想要保持一个只读的网站,也必须要在服务器上运行完整的 Wordpress 系统才行)。静态网页的主要弱点当然就是无法 host 动态内容——比如用户留言。好在早些年静态博客流行,出现了一批专门支持用户留言的第三方服务,我在博客里采用 Disqus 现在已经变成了一个比较老牌的服务提供商。不过据说 Disqus 在国内时常是出于无法访问的状态。

Arduino and Procreate Art Keyboard

疫情宅家琢磨好玩的东西改善自己的课余生活和心理健康的时候偶然发现了 Arduino 这个东西。作为软件出生的人来说比较常听到的是 Raspberry Pi,这个东西其实就是一个比较小比较便宜的电脑板子,里面有一个完整的 Linux 系统,一方面来讲它的功能更强大,就是电脑能做的它都能做,但另一方面似乎也让它觉得有点鸡肋,比如如果家里已经有电脑了,为啥要用它?也许做一些简易机器人或者小车子之类的时候会比较有用,但是我看网上介绍的一些常见的 Raspberry Pi 的 project,诸如做一个家庭的媒体服务器之类的,如果家里已经有台式机或者空余电脑的话,就比较牵强。当然,也许它的主要目的不是有多大的实用价值,而是让大家能动手去玩,起到学习、玩耍和提升兴趣之类的。

相比起来,Arduino 是一个更加底层的东西,并没有一个完整的操作系统跑在里面,所以做简单的事情 overhead 没有那么大,而且没有 USB 供电的时候用普通的 5V 电池就能驱动。此外定制的过程除了编程之外,还需要通过面包板用线把不同的针脚接起来,或者甚至直接用焊锡焊起来,对我来说是比 Linux 编程更加未知的领域,所以听起来更好玩一些。

2020 书单:谷雨

“清明断雪,谷雨断霜”,不知不觉 2020 年已经开始进入夏季。年初的时候就经常看到大家惊叹今年魔幻开局,新年伊始就在世界各地发生了各种话题性事件,不过大部分人估计都没有想到接下去的几个月会演变出一个全球性的大灾害级别的事件吧。COVID-19 在国内疫情肆虐高峰过去之后开始迅速席卷全球,现在美国检测出的感染人数马上就要超过一百万,而全球总感染人数也即将突破三百万。世界各地的居家令给各种行业和阶层的人生活带来了不同程度的影响——当然对于大自然和野生动物来说也许是个愉快的假期呢。

我自己非常幸运地在一个非常容易“在家办公”的行业,暂时没有失业的危险,也没有“家里有吵闹的小孩需要照顾”之类的情况,而且自己也是相对比较擅长宅家的类型,所以从日常生活上来讲并没有特别剧烈的变化。感觉最明显的一个是工作变累了(远程交流和合作通常更费力,而且少了通勤、楼间移动或者偶尔碰到同事闲扯之类的缓冲,一天工作下来几乎都没有什么自然的休息时间),另一个是时间的流逝似乎变快了——不知不觉一年已经过去了 1/3。突然想来列一下第一季度看过的书单,一方面可以给博客稍微增加一点烟火气,另一方面也避免每次一到年终,总结帖里就变得全是书评了。