2017年终
一座温暖的南方城市,新的开始。
我庆幸可以在年终看自己做过的事情觉得幼稚而可爱,解决的问题那么简陋却又自诩折腾精神。这毕竟也意味着,这两年没有白过。
渐渐发现最痛快事还是精研标准,名正言顺。慢慢脱离了个人博客等信息源,可以一眼看出信息源的段位和水平;慢慢觉得知乎许多内容都是媒体创作,因而越来越挑剔。
今年在 GitHub 有 801 个贡献,去年是 275 个,还有许多是业务代码。这是去年没有想象到的。给 node.js、angular、moment.js 都贡献了代码,也是去年没有想象到的。
要说生活上最重要的,我觉得是「取舍」二字。「取舍」不是说这里要多一些,那里要少一些;而是干脆利落,该「取」则要大力出奇迹,该「舍」则要一毛不拔。比如说买五件同样的衣服,买两斤同样的糖果;比如说不买什么。物事越少,留给自己支配的注意力就越多。
要说学习上最要紧事,便是明晰概念,建构体系。少年时代在大学课堂上,最记得老师说的便是「明晰概念」,到自己去学习 Unicode 的时候,便觉得概念清晰才能举一反三,触类旁通。「纸上得来终觉浅,绝知此事要躬行」说得就是它。
一段对自己冲击比较大的旅行确实受益匪浅。比如坐了53个小时的火车到拉萨,清晨的高原,深受婆罗米系文字影响的藏文,与汉语有同源关系的藏语,寺庙上已经变成装饰意义的兰扎文,无不款款向我展开了生活奇妙的小径。
许多软件开发工作必然会被人工智能所取代,趁现在,不如早日把人类的过去历史进行数字化,打通人机间的信息交互之门。越来越觉得时间不够用的时候,只能自省学习的过程,争取早日给 Unicode 做贡献。
最后,让我们永远为文明进步而热泪盈眶。
附录
此篇附录与正文毫无关系,只是作者偷懒牵强贴上来的。
Fact: Two compatibily equivalent Unicode string does NOT have to share same length of grapheme clusters.
Example:
1 | let a = "กํา"; // <0e01, 0e4d, 0e32> |
所以默认的 grapheme cluster boundary 算法才说
do not have to cover edge cases that will not occur in practice.
因此 maxlength/minlength 这种跟用户密切相关,却又使用 JavaScript 字符串长度来判断的 HTML 属性,注定充满了混乱。