9
4
2019
32

关于称呼

总有一些人对我用一些不知道怎么来的称呼,所以我来写一下。以后不要不经过大脑乱用了啊。

不可接受的

✘ 老哥、大哥、兄弟、兄台、先生 ✘

使用以上称呼可能导致消息没有回复,或者相关消息被删除。

不建议的

大佬、老师、大大,等

建议

直接叫我「依云」就好啦,想那么多干嘛。

Category: 未分类 | Tags:
12
25
2018
7

Ant Design 彩蛋事件之我见

事情是这样的:一个叫「Ant Design」的大概有挺多人用的前端框架加入了一个彩蛋,在12月25日这天会更改按钮样式并修改提示文字为无意义的消息。

由于使用广泛,此事搞得比较严重,听说有程序员因此被开除,还有不少老板在跟甲方解释。事发之后,作者发布了道歉,并称「这完全是我个人的一意孤行且愚蠢的决定」。

确实很愚蠢,因为当事人似乎还没有意识到自己为什么「愚蠢」。在程序库中加入未预期的行为,是十分不负责任的表现。

库应当提供机制而非策略,并且具有良好定义的行为。软件中彩蛋这种东西由来已久,为什么这次影响这么大呢?其根本原因不在于它是开源软件,也不在于使用广泛,而是在于——它是库。库能不能提供彩蛋呢?是可以的,只要它是以 opt-in 的形式提供的,并且有文档明确其行为,使用方需要显式启用就没有任何问题。库的作者不需要知道圣诞节还可能在1月,也不需要知道代码是运行在哪个国家,他的职责应当是提供清晰明确的行为,而不是某天给你耍个花招。只有最终面向用户的应用才知道什么样的彩蛋对于它的用户是合适的,所以决定权在于应用。

至于那些在 issue 下边滥骂的人,真是给中国人丢脸唉。

PS: 关于「洋节」,shell909090 有篇文章《关于抵制洋节》。关于阿里巴巴,shell909090 还有篇《最近的阿里月饼事件》。

PPS: 每当国外发生这种令程序员们关注的事件的时候,Internet ArchiveArchive.is 上都有会很多的存档来保留历史,而国内发生这种事件,却并没有多少人去存档。大概有保存意思的人们也只是自私地本地截图保存了吧。

5
25
2018
77

这个博客要死了

很早的时候,那个时候我还在读大学,博客火了一阵。

那时候我刚拥有自己的计算机没多久。那时候我才开始在 Linux 系统里摸索着自学编程。犹犹豫豫地,我注册了一个 WordPress 账号。过了一两周的样子,我那个只有「Hello World」的博客随着众多 WordPress 博客一起被墙了。

那么就换一个地方吧。没过多久,我开通了 Google 提供的 blogger 博客。次日被墙。

那个时候,在国内的网站上发布内容还不需要提供手机号,位于国内的网站也不需要备案。所以我找了个国内的服务,也就是由当时我经常上的 Ubuntu 中文论坛所提供的博客服务。我在那里写过几篇不成熟的文章。过了挺长一段时间的。后来,他们宣布中止服务。

我后来就来到了这里,is-programmer.com。那时候这里还挺繁荣的,有好多人在这里写博客。那时候也没有多少垃圾评论。就这么安静地过了很长时间,站长突然联系不上了。再接着就是用户越来越少,垃圾评论越来越多。我挺担心哪天域名过期,然后自己的博客就消失了。还好我之前向站长申请过自定义域名,于是就用上了。使用 JavaScript 做了跳转和替换,Google 说这样子也是可以的,不过百度那边显然不认可这种做法。后来我又担心这VPS到期没人续费。还好这些都没有发生,域名和VPS都还活着。当然为了以防万一我写了个爬虫,把博客数据爬回来做了备份。

再后来,博客挂了差不多一天。我想方设法登录到了服务器上,删除了大量缓存和日志文件,腾出来些磁盘空间,这才又恢复。然后顺便把之前上传的文件也备份了回来,把域名跳转改成了通过301重定向的方式。不过很可惜,百度依旧不懂。

就这样勉强活着吧。我本来想自己写一个博客程序,可生活实在是太累了,就一直也没有写出来。也不太想用静态博客,因为不方便评论。特别是 Disqus 曾经用欺骗的方式拿了我的社交账号又要求注册 Disqus 账号,以及后来默认不允许匿名评论、匿名评论不显示头像,使得我对 Disqus 挺反感的。

而就在前几天,我这博客被入侵了。入侵者篡改了首页。虽然刷新缓存之后就恢复了,但我感觉很不好。

这博客,已经老了。就算我通过各种打补丁的方式,支持 HTTPS,支持 IPv6,更换自己控制的域名,使用脚本更改页面中的旧链接,但是,它还是在一点一点、不可避免地衰老。

Category: 未分类 | Tags:
8
14
2017
0

我为什么离开新浪

时隔两年,终于还是来写这篇文章了。

其实之前已经想写过多次,但是部分内容写起来十分消耗精力,所以一直没动手。但现在无所谓了。

名字问题

每个人都有名字。大部分人的名字都不是自己的,因为那是父母起的。自己相信它是自己的,然后不知道是它真的变成了自己,还是自己变成了它

然而我不要变成它。

在自由之前,呃,也就是经济独立、远离父母之前,我其实对于我自己是没有太多感受的。只是不断地按照他们的要求或者自己的兴趣,学习科学知识,上学考试,吃饭睡觉。甚至给仇人下跪。

后来,我终于自由了。至少是在客观上自由了。我开始渐渐地觉察到自己的存在,自己的需求、自己的感受。我开始变成真正独立自主的人。

然而,那个人给起的名字,却总是提醒我,曾经的伤痛,曾经只能把自己的想法深深地埋藏在心底不敢说出来,曾经不怎么敢说话,怕稍一不小心,哪句话就会激怒那个人。曾经为了生存,我尽量降低自己的存在感,好不招惹麻烦。

那是我不愿意面对的过往。我宁愿永远忘记它们,当作一切没有发生过。但是,看到那个人给起的看似威武、实则俗气的名字,我经常会想起那个人,想起那个人的凶狠,想起那些黑暗的日子,想起那些我憎恶暴力的缘由。

所以我非常厌恶实名制。支付宝有个界面会显示身份证姓名,所以不管它说有多少多少优惠我都不去。招商银行 app 开始在主界面显示身份证姓名之后,我也开始尽量避免使用它。

我之前的工作,都不太需要用到身份证上的名字。其实同事之前不用很容易啦。但是在新浪,每天早上一到公司,各种登录名都是那个名字的拼音。而且密码是动态密码,必须手动输入,所以通过编程自动登录是行不通的。

想想看,每天一早,你就不得不面对自己最想遗忘的事情,你还能好好地工作吗?

我跟 HR 的人反映过登录名的问题,然而并没有得到明确的回复。

我当然考虑过改名的事情了。我之前已经在知乎上问过相关问题。我也在利用不多的机会探听父母目前对我改名字的意见。我在意父母的意见,不是因为我有多在乎他们,而是因为改名需要的户口本在他们手里,而且我得在他们附近去办手续。目前看来还好,但是惨痛的经验使我明白,那个人是完全不能以理智所理解和预测的,所以我还是得做好应对最坏的情况的准备。秋天回去改名吧,夏天太热,心力不足,我怕出事。也不知道拿到新身份证之前坐高铁会不会有问题。

跳板机

新浪使用跳板机,上边跑个 script 程序记录用户操作。设计者的意思是,你们只需要在服务器上手敲命令就可以了。但是我需要传文件啊!需要跑脚本啊!在新浪,想往服务器上传个文件,需要以下步骤:

  1. 使用一个脚本把文件上传到专门的服务器
  2. 在跳板机上使用另一个脚本下载文件
  3. 使用 scp 命令把文件传到目标服务器

多了两步。而且这些步骤没办法使用脚本处理,因为没办法从本地在跳板机上执行命令。script 程序的存在使得无法通过 ssh 命令直接执行命令。

有人说,把所有操作放服务器上操作就好了嘛。可是给我服务器的 root 权限来装各种工具吗?而且 CentOS 6 的软件都死旧死旧的,给我换成 Arch?还是自己装需要的版本,然后再也不升级,直到遇到CVE-2017-1000117然后被入侵?然后装好图形界面我 VNC 过去?不然我怎么让服务器里的 Vim 控制我本地的输入法呢?怎么给浏览器发 URL 呢?怎么复制粘贴大段文字呢?

当然了,这个跳板机是不支持密钥登录这么方便的方式的。也不支持普通密码登录。动态密码,看你还怎么用脚本!

这就像,明明你有架飞机可以很快抵达目的地,但是对方规定你必须在他们边境上滚下来,换上马车慢慢走到天荒地老。

不测试,直接上线

开发完毕,然后呢?上线!

没有测试环境。连本地测试环境都没有,因为没人知道那东西怎么搭。真真正正的 push to deploy。连编译期检查都难。颤抖吧,开发者!敲错了一个字符,直接影响到至少 1/3 的用户!

我喜欢 Rust。在 Rust 之前我喜欢 Haskell,虽然它很难。这两门语言的特点是,类型系统很强大,以至于很多时候,类型检查通过了,代码就是正确的。我更喜欢 Rust 的原因之一是,Haskell 有异常。有时候明明通过了类型检查,但是跑起来,BOOM!文件打不开,或者取了空列表里的元素,就崩掉了。在 Rust 里我不可能会忘记处理它们。

我喜欢有信心地开发。开发完成,测试通过,上线。回家安安稳稳地睡觉,休息日放心大胆地不想不看工作上的事情。甚至开发完成,我就可以忘记它的细节,因为我不需要不断地去修各种不小心导致的 bug。我喜欢把 bug 消灭在襁褓之中,而不是等着它潜伏下来,趁人不备狠咬我一口。

所以我讨厌 PHP 扩展的开发。没有文档,只能翻源码。然而我一时半会看不完近千万行的代码。所以我开发完之后根本没把握自己开发的东西能够一直正确地运行下去。我不知道换下一个版本的 PHP 它会不会崩掉。我用 valgrind 检查了,但是我仍然不知道我是不是正确地释放了内存,有没有遗漏,有没有释放了不该我释放的内存。

可是,连最基本简单的测试都没有,我有什么理由认为我的代码不会出问题呢?连 Rust 都要有测试,何况 C?我又不是高德纳,能够洋洋洒洒写一大段代码还没有问题。我刚写好的代码,有明显的错漏也是很正常的事情。软件项目是工程,又不是艺术。我只要在交付的时候保证质量就好了嘛,为什么要求一次就写对呢?

结语

当然,离开新浪还有其它一些因素,我就不说了。

本文关闭评论,因为有些事情,我不介意公开,但并不想持续被提及。

Category: 未分类 | Tags:
8
13
2017
19

师者不师,学生不学

忆往昔学生生涯,师者不师,学生不学。

小学二、三年级,数学老师、班主任刘静,年轻女性,脾气暴躁,喜欢用教鞭打讲台上的粉笔,也喜欢体罚。她女儿吴灿也在班上,经常被拖出来家暴。

五、六年级,微机课老师张攀,喜欢成绩优秀的小女生,不喜欢我。问问题当没听见,稍微犯点错就被吼。

四——六年级数学老师曺某,教书死板。试卷要求填空 1/7 < ___ < 1/6。标答是 13/84。而我填 2/13,被判错。然后曺某当着全班同学的面证明 a/b < (a+c)/(b+d) < c/d 不成立,怎么办呢?举例子算。然后算的时候给算成 (a+c) / bd,发现值太小了。于是成功证明 2/13 要么大于 1/6,要么小于 1/7。后来中学的时候,学了不等式,我还专门花时间证明过我的方案是普适的。可是有什么用呢?

初中数学老师兼主任,喜欢揪人耳朵,喜欢叫学生去批阅作业。白打工、没有好处。

初中语文老师、班主任,有次考试我没能按时起床,骑着摩托跑来接我,丝毫不顾我还没睡醒,对发生的事情完全不能理解。

高一英语老师,知识渊博、讲课旁征博引,高二时走了。理由是:眼睛总是红红的,被认为有红眼病;同时教高三太忙。

高二、三英语老师,经常被我质疑试卷的标答。为了维护标答的神圣性,扯各种牵强的理由。

高中语文老师,建议我们多看文学杂志。后来上复习、自习课我看杂志被她收走,看完了再还过来……

高三,学校对高三学生关闭图书馆借阅权限。理由是让学生专心读书备考。

高三,之前一起打乒乓球的伙伴都专心做习题去了。

大学,网页设计课,大作业。我做了纯 CSS3 菜单,以及几个 JavaScript 脚本网页,精心制作了页面内容。但可能因为主题仿照 WordPress 默认主题,又因为紧张讲解得不好,只得了85分。

大学,数据库课。老师心血来潮,在课堂上演示 SQL 查询,结果试了好多次,SQL Server 都报错,无法执行。

大学,网络课老师实践经验丰富、讲课趣味十足。唯一不足的是,网络课内容一展开就丰富无比,他讲课的时间不够用了……然后学生们不喜欢,因为他讲课内容丰富多彩,又不划重点,学生们不知道该为学分背诵哪些内容。

大学,编译原理课,我准备好好学习。但一开始有一个重要的公式有印刷错误,因为没睡好所以去得晚坐后排,教室里闹哄哄的,我一不留神没听清老师说公式要怎么改。于是后边的内容都无法理解了。整个编译原理课就废掉了。

大四,面向对象课试听。老师的观点和讲解非常具有启发性。但是选课学生寥寥无几,因为大部分学生的学分已经够了。

师者不师,学生不学。悲矣。

Category: 未分类 | Tags: 随思 教育
6
27
2017
31

电脑被盗事件

半个多月前,6月9日下午,我正在公司奋力工作的时候,接到了自如管家的电话,告诉我家里被盗了。

我有点不敢相信,这样的事情竟然真的发生了?我还有只 mosh 连着家里的电脑呢。切过去一看,半个多小时没有消息了。是真的吗?会不会只是IP更新了?我又打开 GMail 的账号活动页面,确认我的 X250 已经离线半个小时了。看来是真的。

立即回家。大门还是锁得好好的,房门却是被撬过了,还夹着张纸片,是民警留下的。推开门,第一眼看向桌子。电脑果然没有了。第二眼看向旁边的移动硬盘,还好它还在。备份还在,损失就不会那么大了。刚好,我前一天刚备份过一次。

然后是报案什么的。刑警也来过了,尝试采了几个地方的指纹之后就离开了。也是,几万RMB的东西,又不是他们的,并不怎么尽力。

我被盗的除了那台陪伴了我两年的 X250 外,还有和它一起的电源线。连我的罗技无线鼠标和 USB hub 也没了。键盘倒是还在,大概是不好拿吧。合租的那户丢了两部手机、一个 iPad,和一些玉石之类的东西。

我想起我的备份历史。从一开始拥有电脑,我就一直担心电脑被盗、数据丢失。不,是从一开始全心全意地希望拥有电脑的时候就在幻想备份的事情了。

最初的备份只是简单的 tar 包。后来发现 tar 包备份起来慢,想要读取其中的某个文件得整个地解压一遍,也十分地慢,还占了不少磁盘空间,就放弃了。改用一系列脚本,只备份重要的文件。

后来,看到一篇讲 rsync 做增量备份的文章,btrfs 也比较稳定了,就做了个全系统备份方案。这个方案三四年前开始,一直使用至今。除了心安之外,也有过一些用处,比如比对和回滚部分文件,比如以此为模板安装新系统。

没想到,它最初设计的目的达到了。这么快。

被盗一周之后,警方什么消息也没有。我忍受了一周的空荡荡的房间。下单了 T470p。X250 偏向于移动性,然而我发现我并不怎么需要那么好的移动性。那么就买性能好的了。感谢 #archlinux-cn 里朋友的推荐。

设计了新的分区方案,使用 ZFS。折腾了很久,因为 Arch live iso 并不支持 ZFS,所以只好从备份启动。然而因为我很少从备份启动,缺少各种自动化的程序。调整分区,mount --bind 正确版本的内核模块目录,等等。总之是各种折腾,忙活了一天,终于弄好了!

结果只有一个字:卡!不管是用 bfq 还是 cfq,系统时不时在 I/O 量稍大时卡一下,所有执行 I/O 操作的进程都变成 D 状态……

尝试了一些调整,没什么用。后来放弃了,采纳了 ngkaho1234 的意见,换用 XFS。

于是又做了一次备份恢复。这次因为内核直接支持,没那么多麻烦,很快就恢复完毕。透明压缩没了,在线去重没了,磁盘空间使用量上去了,但终于不卡了!

当然还有好些设置要慢慢做。设置双显卡啊,适配 FHD 屏幕啊什么的。哦对了,因为发现在被盗的电脑上,有部分私人数据没有加密,所以这次我加密了除启动分区和备用系统分区(以及机器自带的 Windows)之外的数据,包括开源代码和 swap 分区。我把一块 dm-crypt 设备给 fdisk 分了区,在上边划出来一个 swap。然后写 mkinitcpio 的 hook 去执行 partprobe 命令来发现这些分区。有点复杂,但配置好就好,也并没有 ArchWiki 上说的那样复杂。

还是丢失了不少数据。一些还没来得及看的电影和视频。一些软件镜像,包括几个 Linux 发行版、Windows、Office 等。winetricks 缓存也没了,有些文件难再下到了。正在调试中的 wine commit 丢失,没有办法继续了。数个 LXC 虚拟机,其中的 Debian Sid 我还时不时会用到的。VirtualBox 虚拟机我备份得少,也不知道丢失了多少数据。已经下载的开源代码没了,花点时间重新下就好。一些手机系统镜像,刷机、root 软件没了。希望我不会再用得到它们。下载的交叉编译工具链、自己交叉编译的程序也没了,需要的时候只能再弄新的了。

偷电脑的贼最可恨了。这不是价值的转移,而是价值的灭失。偷了我的电脑,也不过能卖几千块,给我带来的麻烦又何止这些呢!也幸亏我有备份,要不然,数年的心血就会这么消失了。

Category: 未分类 | Tags:
6
1
2017
47

一个人

一个人吃饭,
一个人上下班
一个人睡觉。

一个人去面试,
一个人回家,
一个人去看病。

一个人在知乎上胡闹,扭曲是非,
一个人在SegmentFault上回答些同样无聊的问题;
一个人提交了一个又一个的 issue,
一个人贡献了一段又一段的开源代码。

一个人默默为喜欢的文章点赞,
一个人静静地写着博客。

一个人听着歌哼唱,
一个人一次次地尝试写诗。

一个人喜欢北岛,
一个人觉得舒婷太美好;
一个人捧着张小娴落泪,
一个人读着刘若英感慨。

一个人为改变世界贡献着微薄之力,
一个人被这个世界慢慢地改变。

一个人哭,
一个人笑,
一个人喜怒无常。

一个人生活,

Category: 未分类 | Tags:
2
28
2017
11

如果重回到学生时代,我想这样做

试题太多了做不完就挑喜欢的做。自习没意思就去图书馆里借书看。累了就休息,困了就睡觉。

老师要是有意见,就告诉TA,你别管我这么多,反正考试的时候给你拿年级前五。要是还不同意,每次考试时就这么干:

所有单选题,一律选正确答案后边那项。多选择题该全选的就选A,否则就只选错误的部分。数值填空题就把正确值加一再填上,解答题就只写上答案,然后解释说太困了就不写过程了,或者手写作业写酸了过程就省掉了。英文填空就填反义词。没反义词的就随便找个押韵的词填上好了。作文当然向现在网传的各种高考零分作文看齐。要不就写社论。社论太敏感就写相对论,或者总结一下微积分啊抽象代数啥的,也可以教教阅卷老师编程。

当然抗议完了,有意思的东西还是照学不误。除了高考这样的考试,分数都是老师家长的,但知识和思考能力是自己的。反正推掉了那么一大堆重复的试题,自己有的是时间把那么点儿知识学得融会贯通嘛。当然在此之前,要对自己好点,该吃就吃,慢慢吃,要吃得健康。到点就睡觉,休息好,精神爽,身体棒,才能够好好地生活。


我的学生时代,父母听信了 CCTV 和学校老师的谎言,为虎作伥,编织了一个美丽的谎言。在那时候,没有人关心我的感受,关注我的将来、我的命运。那是一个充满敌意的世界。那是一段灰暗无光的童年与青春。直到结束了他们制定的行程,走入社会多年,我才发现,那个美丽的未来不过是个谎言,是牢笼的围栏,也是那个充满敌意的世界里虚构的天堂。


To be who you are and become what you are capable of is the only goal worth living. —Alvin Ailey
Category: 未分类 | Tags: 生活 教育
8
17
2016
14

换域名了

如题。域名换成了 blog.lilydjwg.me,别的暂时不变。浏览器访问时会自动跳转到新域名。

请 RSS 订阅读者更新订阅地址。

请网站上有链接到本博客的读者也更新一下旧链接。

我不知道旧域名到底能存在多久。当然也不知道这个网站还会存在多久。总之先把入口拿回来。

Category: 未分类 | Tags:
4
30
2016
11

愛される花 愛されぬ花

很早就听过这首歌,但现在才知道这首歌讲的是什么。很喜欢这首歌的歌词,不过像《ひとり上手》一样,好悲伤啊。

找到正确的对照版歌词并不是那么容易的,因为大陆网站莫名其妙地对日文汉字进行了「简化」。标注读音的就更难得了,所以我专门制作了标注汉字读音的中日对照版歌词,有兴趣的朋友可以看看:愛される花 愛されぬ花.pdf。感谢 farseerfc 进行校对。

我没有在 YouTube 上找到中岛美雪演唱的版本,所以只好用网易云音乐这个歌词并不正确版本啦: http://music.163.com/song?id=624802

泱泱大国,连周边国家的文字都不能写对,我也是醉了……

Category: 未分类 | Tags: 音乐 日语 中国特色

Mastodon | Theme: Aeros 2.0 by TheBuckmaker.com