Recent Posts

用 Ruby 实现飞机自动驾驶仪

3 minute read

krpc 是一个砍巴拉太空计划(Kerbel Space Program)中的插件。可以通过 RPC 来控制游戏。同时有第三方的 Ruby 客户端:krpc-rb。和真实飞机不同的是,在砍巴拉游戏中驾驶飞机是非常痛苦的,在没有插件辅助的情况下,你看不到具体的 GPS 坐标,很多时候看到的都是和飞机驾驶无关的轨道参...

真的存在没有反光的眼镜吗?

less than 1 minute read

前几天看某个 YouTuber 说因为眼镜反射很厉害,导致很难打光,想去眼睛店配一副新的眼镜,能减少反光。眼睛店老板号称富士的某款镜片可以「几乎」解决所有反光,花了好几万新台币,买回来发现除了反射从绿色变成了紫色,没有明显差异。

Ruby 3 Fiber 变化前瞻

2 minute read

随着 GitHub #3032 的合并,从 Feature #13618 开始的,关于 Ruby Fiber 调度器的讨论取得了实质性的进展。但相关的变化还没有结束。目前正在被讨论与还没有合并的 Issue 还包括 Feature #16786、Feature #16792。这些 Issue 正在围绕 Ruby ...

BCD、COBOL、千年虫和昭和 100 年问题

1 minute read

上篇文章 里我们讲到了定点数和浮点数的区别,我们认识到这两个数字在精度对待上的差异。但是这两个类型的数字都是二进制数,而有些数字本身就是很难用二进制表达的。

在我完成了「确定申告」后,讲讲日本的官僚

less than 1 minute read

我真的某种意义上很佩服日本的 paperwork。我原来以为像中国那么官僚的体制下,每次跑政府办点什么事都累得要命。结果我「确定申告」跑下来,真的见识到了更高水平的官僚,把我深深震撼到了。首先「确定申告」是日本的一个税务制度,用来修正一年的个人所得税情况。每个日本居民都需要在来年 3 月前完成,今年因为 COVI...

用 Ruby 学习基本乐理(二):音程

2 minute read

在上一篇文章里,我们认识了音高。这相当于学会了怎么数数。学完数数的小朋友就要学习加减法了,而音高之间的加减法就叫音程。说到「音程」,最类似的日常词语是「路程」。路程是两点间的距离,音程也是两个音高之间的距离。描述音程有两种方法,一种简单的,一种常用的。

用 Ruby 学习基本乐理(一):音高

2 minute read

音乐很有趣,理解音乐很难。但音乐背后的物理、数学原理并没有那么复杂,此所谓乐理。Ruby 是一门编程语言。编程编的是程序,所谓程序,是计算机执行的指令,是阐明计算过程的方式。我们在此使用 Ruby 语言描述乐理,以简单的例子提高自己对乐理的理解,也可以精进自己的 Ruby 编程技能。

一些关于音乐游戏的想法

less than 1 minute read

Stanley Parable 中通过对 Stanley 工作的描写,讽刺了一些电子游戏的本质。「屏幕上让 Stanley 按一个键,Stanley 就按下那个键」许多电子游戏事实上就是如此,本质上就是一些充满了 QTE 的播片。如果延伸到音乐游戏上,事实上就延展出了对于音乐游戏「音乐性 (musicality)...

6 小时重构一个字幕工具

less than 1 minute read

某位来自伊朗,现居住在加拿大温哥华的翻译人员曾说过:「ass 能解决所有问题,对于我来说。」

「Keyboard Moe」从零开始自制键盘(三):分区

less than 1 minute read

ESP32 的片上 Flash 应该有 4MB,但是我之前刷入 ROM 的时候,提示可用的空间只有 1280KB,这让我非常困扰。引入一个 BLE 库就已经吃掉了 75% 的 Flash 空间,我一度怀疑我是不是能在有限的空间里完成程序。ESP32 的一个很有意思的特性就是非常容易实现基于 WiFi 的 OTA ...

从 bopomofo 说起 —— 学习注音符号后对拼音系统的一些新体悟

less than 1 minute read

众所周知,我从小接受的用于标记现代标准汉语的系统是「汉语拼音」。两年前,我决定学习一下「注音符号」。注音符号是以章太炎编创的「纽文」、「韵文」为蓝本,设计的一套汉语拼音方案。其实最早决定去学的原因还是好奇好玩,用一套完全不熟悉的拼读系统来学习自己已经掌握的汉语发音,可以很好从另一个方面来认识汉语的发音系统。最后也...

日本語字形「关」字攷

less than 1 minute read

我的手機使用的是英文系統,Android 在漢字 fallback 的時候會優先 fallback 到日文字形上,這使得一些簡體漢字的顯示非常奇怪。其中一個特別突出的就是「关」U+5173 字。「关」在我的理解中一般作「関」U+95A2、「關」U+95DC 或「闗」U+95D7 的簡化字。但是在日文字形中,U+5...

推广方言正字的意义

less than 1 minute read

正字,也就是「正体字」,从正俗的角度来看,与「异体字」相对。虽然台湾的繁体中文常被标榜成「正体中文」,但实际上日常的使用中充斥了各种俗字。比如「群」字「《五經文字》羣,俗作群。」,其实是「羣」的异体字。对于繁体中文的正字化有很多人推动。但我今天有觉得,面对我们使用的方言,比如吴语、粤语、闽南话等正字化的推动是一个...

平成最后的烂尾游戏——东京地下铁 2018 解谜游戏设计分析

less than 1 minute read

这个几年来久闻东京地下铁解谜游戏的大名,一支没有完整地体验一下这个游戏。终于在去年年底的时候尝试了一下这款游戏。体验下来的感觉褒贬不一,所以我打算从游戏设计的角度,系统地来聊一聊这款游戏。

Ant Design 错了吗?

less than 1 minute read

Ant Design 今天的圣诞门闹得沸沸扬扬,Ant Design 内建的圣诞彩蛋在各个使用 antd 的产品中被「强制」弹出,令许多人措手不及,造成了很大的社会影响。但事实上,Ant Design 使用的是 MIT LICENSE,完全是一个使用者「后果自负」的协议。然而,Issue 里哭天喊地要开发者「负责...

部署家中网络的流水帐

1 minute read

我今年 9 月搬家到了藤泽,签了一个非常恶心人的 Softbank 的网络合约之后,花了大半个月才搞清楚这个网络的状况。于是就基于自己的需求,在家中部署了多项服务。今天写这篇文章就是来分享一下部署过程中遇到的困难以及解决的方案。

使用字体,怎样不惹官司

less than 1 minute read

近来,知名 up 主敖厂长因为在视频中使用了「造字工房」家的某些字体,使得惹上了官司,被求偿十多万的赔偿费用。在字体行业内,其实这样的事情屡见不鲜。从 2011 年方正诉保洁的「飘柔」商标字体案,到 2015 年造字工房诉湖南卫视《歌手3》节目字体侵权案,字体公司的名字似乎和侵权官司脱不开关系。那么今天我们就来聊...

Ruby 内联私有方法与原理

3 minute read

孔乙己有一回对我说道,“你学过 Ruby 么?”我略略点一点头。他说,“学过 Ruby,……我便考你一考。private 私有方法,怎样写的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些字应该记着。将来做 CTO 的时候,写码要用。”我...

关于学习编程的一箩筐问题

less than 1 minute read

两个月前和 16 岁 JK 美少女 @-顾兮- 一起吃饭的时候聊到了计算机教育入门的话题。之前虽然我写过一些批判培训班的文章,但是所谓只破不立,至于到底怎么学习是对的,很难有个界定标准。想到今天睡不着觉,于是想到以后如果再有微博私信问计算机教育空洞而广泛的问题的话,这篇文章将是我想说的全部答案。

MySQL 惊险恢复记

less than 1 minute read

昨天接到朋友的一个电话,说服务器被攻击了。上去一看,Windows 主机弱密码,直接被远程登录中了勒索病毒,要价就是好几十比特币。所有文件都被加密。遇到这个问题,第一反应就是完蛋,直接恢复备份吧。然而这是台物理机,而不是云主机,备份没有那么方便,所以这台机器

程序员必看!中秋前后绝对不能做的 0x08 件事

less than 1 minute read

0x00. 开发中秋活动相关页面(时间太急,可能有 BUG) 0x01. 开发与现实货币直接相关的比如电商、抢购业务(后果严重,容易在假期前后被攻击) 0x02. 匿名表达对老员工,特别是对彭姓员工不满(大老板可能含沙射影地让你滚) 0x03. 草率入职某开曼群岛注册公司的北京分公司(公司可能不...

如何读文档?

less than 1 minute read

今天收到一份微博私信,问我之前 量产型炮灰工程师 中说一个良性的学习循环需要自己寻找线上资源学习、读文档等等,这些都没有在培训班中被学到。那怎样才能比较好的读文档呢?不分享一下的话,老说我是光破不立,光批评别人自己却没有任何解决。那么我来分享一下我读文档的思路吧。

口吐 bug

1 minute read

甲:我们借这个机会给大家拜个早年。

花了半个月捡垃圾

1 minute read

引 这半个月开源项目拖更,啥事没干成,主要要感谢我的 MacBook Pro。大年二十五,风扇异响;大年二十六,更换风扇;大年二十七,更换风扇后无法通过屏幕自检;大年二十九,更换主板;正月十二,主板短路,浓郁的线路烧焦的气味从风扇口传出;正月十三,机器第五次返厂维修,问题分类「安全性第一问题」,维修后需要返售前检...

关于 eval 是否 evil 的一些想法

4 minute read

对于大多数动态语言,都支持 eval 这个神奇的函数。这打他们太爷爷 Lisp 开始就支持这种方法。虽然写法(eg: (eval '(+ 1 2 3)) )有稍许不同,但语义是一样的,就是说 eval 函数接受一个字符串类型作为参数,将其解析成语句并混合在当前作用域内运行。但我想大家也都听过这么一句话:

从零开始 Ruby on PHP

1 minute read

关于什叶派 PHP 教徒 PHP 早期的设计意图下整个语言都是模板驱动的。也就是说主要就是写个静态页面,在适当的需要动态的场合插入一些短小的 CGI 代码。然而逊尼派 PHP 教徒确认为 PHP 可以变成一门大而全的语言,摇身一变,强行又是 MVC 又是 MVC 的。各种框架层出不穷,抄完 Spring 又抄 R...