我开发了一个基于 Beancount 的账本托管服务 HostedBeans,欢迎大家来了解纯文本复式记账并试用我的服务。

离开 HackPlan

整整两年过去了,我和团队中其他人走到了一起,参与了数十个项目,时薪翻了两番,然而两年前对未来的美好憧憬已经不在。

在 HackPlan 的工作让我学到了很多,软件开发并不是一个人的战斗,需要和同事一起分工合作来完成一个复杂的软件,相比于技术上的具体问题,协作则是更大的挑战。我们定期进行进行语音会议来保持沟通;使用 Trello 来管理任务进度;设计规范的 HTTP API 来隔离服务器与客户端的工作;添加自动化的测试来减少新代码引入的缺陷;引入 Code Review 来保证代码质量;通过自动化的方式规范部署流程等等。这些规则是随着团队的成长一点点建立起来的,我清楚地记得每一项规则出现的契机,以及执行过程中遇到的困难,因为这其中很多规则都是我参与建立起来的。

加入 HackPlan 也是我第一次离开家,到一个新的环境,因为我的年纪最小,在生活上得到了其他人非常多的帮助,使我逐步掌握了如何照顾好自己、如何与他人相处。和在学校时不同,在这里是一个大家互相信任的、平等相处的环境,我们都认为对方可以独立思考和决定、可以为自己的行为负责;每个人都有各自的专长,而不是以年龄或分数一概而论。

当然离开也是有原因的,我们一开始住在苏州的一个小别墅里,后来搬到上海,生活和工作都在一个房子里。因为很少出门,所以失去了很多认识新朋友的机会;因为独处的时间较少,博客日志的产量明显减少。于是我想体验一下「在大城市打拼的普通年轻人」的生活:租个房子一个人住,每天早上来到办公区上班,出行和娱乐则安排在周末。

我们是一个纯技术团队,但只是将产品做好是不够的,我们的产品是面向终端用户的,必须让尽可能多的用户了解到我们的产品,我们不懂如何营销,甚至不知道如何寻找擅长营销的人才。在这个问题上孙亮并没有表现出在面对开发任务时的执行力,而是一拖再拖,以至于我觉得在未来很长一段时间内都不会有显著改善。

我在沟通中发现团队中一些成员是认可现在「小作坊」式的公司的,因为这样的工作更加自由和灵活,为了能和互相信任、具有默契的伙伴一起工作,即使公司在商业上不成功、即使错失一些扩大公司规模的机会也是值得的。而我觉得我可能需要一个更大的舞台,所以我选择了离开。

下一篇日志我想向大家介绍一下我在面试新公司时的故事。

标准化商品构成的世界

在之前的几次面试中,孙亮喜欢问应聘者一个问题:假设你有非常多,接近无限的钱可供使用(例如一百亿美元或者更多),这意味着你可以用这笔钱去影响世界、改造世界,那么你最希望用这笔钱干些什么?

但实际上我们在面试中并没有收到非常有趣的答案,大概是因为很少有人曾严肃地想过这个问题吧。孙亮也问过我这个问题不止一次,前几次我也没想出太有趣的答案,毕竟突然给我一笔钱,还是有点迷茫的(即使是假设),直到最近一次面试后,我才想到了一个比较有趣的答案。

如果我有一百亿美元的话,我要在我生活可及的地方,创建一个由标准化商品构成的世界,并尽可能地向其他人推销我的观念。

比如我把玻璃杯不小心打碎了,我可以直接买到一个新的「蓝色圆形矮玻璃杯」,而不必挑来挑去找到和原来一样的杯子,再也不用担心打碎或丢失东西后就买不到一样的了!

当然我并不是说玻璃杯只能有一种,不同的人可能喜欢不同的杯子,但我们可以通过细致的设计和调查,设计出几十款杯子,每一款杯子有不同的定位,加在一起尽可能地覆盖到所有人的需求,而款式的数量则尽可能地少。每一款杯子都应当经过精心的设计、大量的实验确保它符合定位且足够好用,如果日后发现了设计上的缺陷,当然也要进行更新,但这种更新应该是慎重的。

有些商品选择很少,比如药品、电池,只要足够好用,没有人在乎它们长什么样。还有些商品则选择很多,比如食品、玩具、衣服,但市面上的这些商品终归有非常大的一部分是劣质的或重复的,也可以对它们进行适当的标准化,可以根据价格划分几个档次,在每个档次内的商品拥有着大致接近的质量和性价比。

我也看到一些公司在特定的领域以这种方式来销售商品。比如说苹果,同期只有两款手机,分别覆盖轻量级用户和重度用户。大概在这之前,大家都觉得手机是一个比较个人化的商品,但是苹果就实现了单款手机 10% 的市场份额。而且也表现出了标准化的优势:更好的软件兼容性、更多的预算来进行精心的设计、大量的第三方配件等等。

再比如说肯德基和麦当劳,在国内所有的城市都保持相同的菜单、相同的口味和大致相同的价格,相信对于很多人来讲肯德基和麦当劳是为数不多在陌生地方可以直接进去吃饭的店了。

再进一步,我希望能够有标准化的房子和家具(宜家的家具就比较标准化了),样搬家或旅行的时候就不用担心住得不习惯了 —— 到时候可能会有标准化的旅店,实现将房间和家具清单发过去,就能够按照标准布置得一模一样。

与精子同款的博客主题 Simple Block 现已发布!

今年年初,因为我已经很久不写 PHP 了,所以我将 我的博客 从 WordPress 换到了基于 Node.js 的 Hexo, 顺便自己编写了一个专用于我的博客的主题。

一周前我用 Github 开源的 Primer 重写了这个博客主题,将与我相关的个人信息修改为可配置项,然后将这个主题正式发布为了 Simple Block, 它实现了:

  • 支持使用 Jade 和 Markdown 向边栏添加小部件,或向正文前添加横幅。
  • 响应式设计,支持移动设备直接浏览,首次加载(gzip)仅 15k.
  • 为 Mac, Windows 以及 Linux 挑选了恰当的字体。
  • 正文使用 Github 开源的 Markdown 样式。

这个主题掺入了非常多我的个人偏好,比如我使用了 Jade 和 CoffeeScript, 使用了 Gulp, 以及页面中一些奇怪部分(链接到源文件什么的)。

在设计上,我参考了我原来使用的 WordPress 2012 默认主题 Twenty Twelve, 我将各个部分放到了单独的白色区块上,并使间隙透明,于是就有了 Simple Block.

我平时很少设计前端页面,自知设计水平很差,这款主题基本上代表了我近期前端设计的最高水平了。

实现细节

Hexo 支持用 Node.js 编写插件或者主题的 helper, 这是非常大的一个亮点。

我看了官网上列出的几个主题,它们都没有 npm 依赖,在说明中建议直接将 Git 仓库克隆下来,就算安装完成了。

而我的主题依赖了 coffee-script, jade 以及 marked, 所以需要一个安装依赖的过程,Hexo 并不会自动为主题安装依赖,所以需要用户自行运行 npm install.

另一方面我发现官网上的主题都直接将前端依赖放到了 Git 仓库中,我觉得这样是不恰当的,于是我使用 bower 和 gulp 来构建前端样式,然后将编译好的版本上传到 Github 的 Release 中,让用户下载编译好的版本,而不是直接克隆 Git 仓库。其实 Hexo 提供了对 CSS 方言的自动编译,但功能较弱,没有办法完全替代 gulp 等构建工具的功能。

以上是我在开发这个主题的过程中发现的 Hexo 主题机制的一些问题,我还没探索出合适的解决方案,各位在安装的过程中如果遇到问题,请向我提出。

精子生于 1995 年,英文 ID jysperm.

订阅推送

通过 Telegram Channel 订阅我的博客日志、产品和项目的动态:

王子亭的博客 @ Telegram


通过邮件订阅订阅我的博客日志、产品和项目的动态(历史邮件):

该博客使用基于  Hexo  的  simpleblock  主题。博客内容使用  CC BY-NC-ND  授权发布。最后生成于 2025-02-10.