bookmark_border太久没写日志了,写点记录

记录一下最近的工作收获

1. 去年用chrome devtool extension给公司的页游做了一个辅助开发工具,结果一年来除了我都没人用= =。直到最近被engineer leader重新挖了出来,组内推广了一波,用的人多了一些,给发了个月度最佳工程师提名奖励(没入选T_T),感觉很棒。
其实这东西本身超级方便我调试bug(我在组内主要任务就是追踪各种难以解决的bug),所以我一个人用我也挺满足的。但有别人也开始用我做的东西而且非常满意,这种感觉还是挺爽的,漫画家收到鼓励的读者来信时大概也就是这种心情了吧。

2. 我开发了大半年的一个 ios / android 照相机应用核心库上个月实际投入使用了。首次上线应用的晚上我负责去公司参与值守。虽然这种事主要是靠服务器端,我客户端开发在场也没法当场修补程序,但当晚还是有一些收获的。因为这个功能是在动画播放的时候让用户用app开摄像头拍摄动画,然后app判断你现在是不是在看动画首播直播,是的话就发个奖品,所以动画开始时twitter上有爆发式的关于本功能的留言。负责算法设计的顾问在里面挑了几个称赞我们黑科技的留言,我看了有点感动。这也是一种类似于收到读者来信时的心情吧。
从第一个hello world到现在,我写程序已经10多年了,但至今为止都是在享受一个人解题的乐趣。在第一家游戏公司,因为做的游戏比较小众,我自己也不玩,所以没有在意过玩家反馈。在现在这家公司,总算参与到了日本顶级手游项目,但这次是因为我一直在做的是偏底层的开发和疑难bug追踪,没做过什么大部分玩家能感受到我的存在的工作,所以也没有什么我的作品有读者(用户)的感觉。因为底层代码和bug追踪本身都是对我来说比较有趣的工作,所以我一度以为我是不在乎用户鼓励的冷面工程师。但经历过最近的几件事以后,我还是不得不承认,有人在使用、在期待着我的程序的感觉,真的很美好,令人沉迷。

3. 亲人离开研究机构独立创业,期间我除了帮忙写程序老本行以外,还有申请域名邮箱、关联主机、做简单的首页,上周又帮忙给他们买来放在家里的服务器设计内网拓扑结构(其实就是把这台服务器和家里自用的局域网分割开来,防止主机被黑导致家庭局域网沦陷),开机启动sshd,开端口,创建账号给合作创业者使用等等。虽然都是简单的基础设置,但对不懂这些的家人来说真的是帮助非常大。

4. 为了确认编译好的release版apk内的各种api网址用的是production而不是develop环境的,领导让我反编译了自家的apk看看里面。我说每次出新版apk都要找gui工具手动反编译apk然后搜索这些网址字符串是否存在,这种重复工作咱们还是写个脚本自动化吧(潜台词是不要让我们enginner做这种无聊的重复性体力劳动),于是我花了两天读了一下 zip 格式android 的 dex 文件的格式以后,用nodejs的zlib解压apk,找出classes.dex,再解析classes.dex ,找出所有的字符串,最后在这些字符串中查看给定的 production 环境的 api 的 url 字符串是否存在。要自己用 zlib 解压 apk的原因是如果想使用其他开源的解压zip的库的话要向上层层申请,非常麻烦,最后跟领导合计一下反正也就1天的工作量,干脆都自己实现好了。
这个工作中我最满意的是自己用第一手资料解决了问题。之前自己读HTTP的rfc徒手写 http proxy server 时也是,读文档能力是最重要的。不过当时我看的rfc是别人翻译的中文版… 毕竟原版300多页英文,考虑到开发效率,还是偷懒看中文了 =w=