湾区日报 2016 年 4 季度汇总

2016/10/01 第 715 期

我与 12 个程序员挤在旧金山的非法 Airbnb 两居室,追逐我的淘金梦 (archive)

两居室上下铺,每间住 6 人,每人月租 $1200;衣帽间住一人,月租 $1400,那人在 Pinterest 上班。作者在编程学校学编程,不禁彷徨、怀疑自己的选择。这帮室友不乏名校毕业、早出晚归、缺乏生活能力。

这公寓在 Airbnb 上的广告是写着租给 4 个人住的,实际住了 13 人;他们没有公寓大楼正门的钥匙,得在门口等其他住户进出、然后他们趁机溜进大楼;公寓房门的钥匙藏在公寓门口某个隐蔽位置,租客开完门后要记得放回原处。

本文的可信度多少?我一刚大学毕业的同事的同学(某藤校毕业的)就住衣帽间,月租也是 $1400,不知是不是文中那位:)国内的读者可能不信,美国不是房子很便宜吗?看一下 Craigslist 上旧金山地区的行情吧。

随手搜一下 san francisco closet rent -- $1500 衣帽间,在住 60 人的 house 里,文中列出了租客们的工作单位,以及 Reddit 上求租衣帽间的帖子。对了,我还有个同事租过集装箱的,开 party 很给力……

当然了,就像在世界上任何房价高的城市一样,只要你愿意花时间做点研究、愿意住得远一点、愿意住破一点的房子、愿意住治安不好的区,在旧金山是可以用相对便宜价格租到面积相对较大的房子的。凡事没有绝对,你永远都能举出有人用极低价格租到极好房子的个别案例的。

Apple 在 Podcast 领域扮演的角色 (archive)

作者同时身为 podcast 播放器 app 开发者与 podcast 节目制作者,本文从 Apple 切入,分析了 podcast 现状以及 podcast 制作者们的需求。

这个类比不错:网页之于 podcast 的音频文件,浏览器之于 podcast 播放器;网页在浏览器上“播放”,podcast 音频在播放器上播放;网页是程序,开发网页的人可以加入各种 tracking,精确跟踪用户访问的情况;然而,podcast 音频文件不是程序,podcast 制作者们压根没法追踪用户收听的情况,所以 podcast 里即使放了广告,也难以得知到底用户听到广告了没。

给了陌生人 commit 权限后,我的开源项目竟然发展得不错 (archive)

作者的开源项目 django-money 收到一个巨大无比的 pull request,他不敢 merge,就直接给了那人 commit 权限。几年后,这个开源项目竟在他无人驾驶状态下发展得不错……

两种软件工程师与他们的工作态度 (archive)

production 上有个 bug,第一种工程师承诺尽力修复,若晚上 9 点以前没修好,回家,第二天再继续做;第二种工程师承诺不修复好就不回家。老板们会喜欢哪种工程师?

第二种工程师,看上去很卖力,但很多只是急于表现、讨好领导、争取升职加薪,这种工程师看上去能熬夜,但白天精神不好,接下来连续几天精神都不好,效率变得更低。多数情况下的 bug 其实都没必要在精神状态不佳深夜修复。

做公司、创业、工作、人生都是马拉松,太早冲刺了后来就没劲了、就想休息了 — 就像很多人这辈子最大的成就发生在高考结束的那一刹那、或者拿到某某名公司 offer 的那一刹那。

黑莓的成功导致了它的最终失败 (archive)

作为 10 年前逼格最高的手机,黑莓没有必要颠覆自己,没有必要冒险让(现在看来其实不是很多的)已有用户不开心。给没有 10 亿用户的公司的建议:不颠覆自己已有的业务,早晚别人会来颠覆你的。

"It's an instructive lesson to any company with less than a billion users of its products or services: no matter how good you may already be, there's always the potential to do better, and if you're not willing to change and do the scary new thing, someone else will. Adapt or die."

对于世界上任何互联网公司,非用户数量都比已有用户数要多。

2016/10/02 第 716 期

What I Wish I Had Known Before Scaling Uber to 1000 Services

Uber 现在有 2500 个工程师,一半是最近 6 个月加入的;今年 5 月份共有 8000 多个代码 repo,比 4 月份增加了 1000 个;共有 1000 个 microservice!

可以想象,Uber 内部重复造轮子的现象是很普遍的。根据 Conway's law,这 1000 个 microservice 分别有不同团队来维护,团队之间就有政治因素在里面;不同组的 service 互相依赖,service 之间以及人与人之间会有不和谐现象,出 bug 了谁来修?用什么技术来开发该听谁的?凭什么要用你们组的 service、为啥我们不自己重写一个更好的?等等。

Twitter 如何部署挂件的 JavaScript 代码 (archive)

在网站内嵌转推按钮、内嵌 tweet 的 js 代码,也就是这个文件:platform.twitter.com/widgets.js — 将该域名通过 DNS 解析指向新版本代码的 url,新旧两版代码共存,可瞬间 rollback。

训练让你注意力更集中的方法 (archive)

在这个碎片信息横行的时代,现在越来越多的人已经不具备集中精力连续读 10 分钟文字的能力了。本文讲了一些心理暗示的方法,让更注意力集中。

为什么 Linux 内核开发依然使用 email 来管理 (archive)

根据 Greg Kroah-Hartman 最近给的一个 talk 总结的笔记。GitHub 管理小型开源项目是很方便,但 Linux kernel 有分布在世界各地 4000 多个代码贡献者,其中很多人上网不方便,用邮件沟通与管理项目简单方便实用。

有效发 cold email 的指南 (archive)

给陌生人、尤其是给很忙的人发邮件:

  1. 定制文字内容,别群发;
  2. 自我介绍,拉近关系;
  3. 欲取之必先予之,你有什么可以先帮他 / 她的;
  4. 字数不多;
  5. 有礼貌;
  6. 别套用模板。

2016/10/03 第 717 期

为何深度学习突然之间改变了你的生活 (archive)

这是来自财富杂志关于深度学习的科普长文,用老百姓能听懂的语言解释什么是深度学习、如何运作的、有哪些应用、深度学习发展史上重要的一些里程碑。深度学习四巨头:谷歌,脸书,微软,百度。

The egoless programmer (archive)

讨论了程序员里颇为普遍的现象:充满 ego、自负、容不得别人批评自己的代码、容不得别人给自己代码挑错、同时又看不惯别人写的“垃圾”代码。软件开发是团队运动,个人的 egoless 对团队是有好处的

当一个人成为一个故事时 (archive)

当你听到一个人名的时候,你想起的是一些这个人名相关的故事,而不是具体的有血有肉、有喜怒哀乐、有优缺点的客观的人。名人的公关团队向公众兜售故事,而普通人精选自己的照片晒到社交网络上讲述自己最美好的故事。

在算法横行的时代,我们更需要人类来把关 (archive)

有一种东西叫“品味”,是目前人类比算法在行的。Amazon 推荐书、Spotify 推荐音乐、Apple 推荐新闻与音乐等,都有人工干预的部分;而且越来越多线上服务采用人工 curation 的模式了,比如湾区日报?纯手动推荐,哈哈

如何无障碍地学编程 (archive)

学新编程语言时,难的不是学基础的语法,难的是知道最佳实践、知道如何向搜索引擎问正确的问题。作者尝试了花钱请人通过 Skype 教他 Ruby on Rails,有点结对编程的意思。

2016/10/04 第 718 期

食材速递领域的独角兽 Blue Apron 内部一团糟 (archive)

现在做 Meal Kit 的创业公司不少,将一顿饭的食材按比例打包好快递给你让你自己做饭,号称比外卖健康、比自己从头准备一顿饭要省时间。Blue Apron 就是这类公司的佼佼者,但其实内部一团糟。

这类公司涉及食品安全,很多其实都不合格。号称是 Food Tech、科技公司,其实也是劳动密集型的,大笔融资后,租了巨大仓库,雇了数千劳动力准备食材、打包、送货,这些工人工作时间超长、工资极低、工作环境不安全、管理混乱。这篇 BuzzFeed 的长篇报道里提到,Blue Apron 就因为开了一些工人,他们怀恨在心、恐吓、扬言要放炸弹爆破仓库……

README 的艺术 (archive)

为什么 README 全大写?因为 UNIX 系统下 ls 会把文件名大写的文件排在前面;README 文件很重要,需要引起大家重视。好的开源项目只要看 README 就能方便使用了,不用去读代码。

我一个周末就能做出来了,为何这玩意儿需要这么多人做 (archive)

当提到某个网站、某个 app 时,很多人会不屑地说“我一个周末就能做出来”。本文以搜索引擎为例,纸上谈兵一番,试图用 Lucene 来做到 Google 的规模,反驳这种“一个周末就能做出来”的言论。

大家可以自己练习一下,当有不懂技术的人质疑为何“简单”的网站(如 140 字 Twitter、微博之类的)需要好几千个员工时,你该如何应答?在 Quora 上有很多类似的问题,我记得有个回答是:做一个饼很容易,难的是如何快速做 10 亿个饼。

研究人员们用 GitHub 共享数据与代码 (archive)

来自 Nature 的文章。以前写 paper 引用了 Wikipedia 的页面,被导师批评说不严谨,Wikipedia 的页面也能信?现在学术论文引用 GitHub 链接的数量越来越多了,时代变迁啊。

不要再用过去待过的公司的名字来抬高个人的身价了 (archive)

作者看不惯这种现象:社交网络上的个人名片流行用排比句式罗列自己待过的名公司的名字,媒体报道某某创业公司是由某某名公司前员工创立。这帮人因为过去的光环而盲目自信,没法脚踏实地,因而会错过很多机会。

哦,这些人这辈子最大的成就难道就是某某名公司前员工?刘备三顾茅庐的自我介绍:汉左将军、宜城亭侯、领豫州牧、皇叔刘备;龙妈的头衔:“of the House Targaryen, First of Her Name, the Unburnt, Queen of the Andals and the First Men, Khaleesi of the Great Grass Sea, Breaker of Chains, and Mother of Dragons.”哈哈

死后墓碑上刻着毕生最大成就:某大学校友、ex-googler、ex-facebooker、ex-xyz、ex-…… 生前死后都离不开组织,离开了组织都不知道怎么介绍自己了~ 这个句式的创意是来自我以前读研究生院时的一个同学,当时我们常一起八卦学术圈里的人,他觉得某个人这辈子最大的学术成就是“成为某教授的学生”。

2016/10/05 第 719 期

DevOps 并非只意味着自动化

讲得在理:不是写了一些自动化脚本就叫在实践 DevOps 了,自动化是 DevOps 最简单的部分;DevOps 核心是人与流程,能接受失败是常态、失败了能客观总结教训、公开透明地经验分享,自动化是为流程服务的。

制作半条命的日子 (archive)

本文写于半条命开始发售的第二天,1998 年 11 月 9 日。回顾了他在 Valve 做游戏设计师的经历,设计半条命的故事与关卡。文笔不错,因为他本身是作家。后来的反恐精英是半条命的一个 mod,引入多人对战模式,风靡全球。

上线 Hipmunk 的故事 (archive)

在美国的人应该都知道 Hipmunk,搜机票的网站,它的搜索结果展示的方式很不错。Hipmunk 的联合创始人与 Reddit 联合创始人几乎是同一拨人。

上线 Reddit 时他们都还是无名小卒,孜孜不倦地靠机器人发帖好几个月才有真正的用户;到了上线 Hipmunk 时,他们已经小有名气了,连 CNN 都主动联系要来报道他们。

Twitter 的数据中心 (archive)

讲了 Twitter 数据中心的进化史。最开始租别人的服务器,然后自建数据中心买整机,然后根据不同 workload 自己定制机器,然后 Mesos/Aurora 搭 PaaS。

虽然对大部分创业公司没啥借鉴的意义(既发展不到这规模,其实也没必要养那么一帮硬件工程师自己搭机器),了解一下也好。

2016 年学 JavaScript 是一种怎样的体验 (archive)

搞笑文章一篇。在 2016 年,为了使用 JavaScript 完成简单编程任务(如简单基本的 Ajax 操作),认知上你得大概知道五花八门各种新名词,实践上你很容易不小心使用了各种奇怪的 js 库。

一年不接触 JavaScript 的世界,一下就落伍许多了。本文是前不久推荐过的吐槽 microservice / docker 把简单任务复杂化的“It’s The Future”的姐妹篇。

2016/10/06 第 720 期

是时候取消 App 的版本更新日志了 (archive)

大部分 app 更新日志都是“修复 bug 以及其他改进”;app 的功能现在都用功能开关控制,不是每个用户都看到相同功能的;宣布新功能也不能在更新日志里宣布啊,很多人都开自动更新,压根就看不到你的更新日志。

湾区日报 app 的更新日志主要是写段子:)

竞争一点都不重要 (archive)

这是给想做 side project 赚点小钱的人的建议。不用太担心同一领域已有很多强大的竞争对手,他们已经帮你教育了市场,而且人的口味千差万别,并非每个人都觉得你的竞争对手的东西是好用的。

每次出来一个什么新东西,很多人都会评论“这东西某某公司已经做过了”;Google 出现的时候市面上已有无数个搜索引擎了,Slack 出现的时候市面上已有无数个群聊工具,Facebook 出现的时候已经是第 n 个社交网站了。竞争对手的用户数肯定远远少于世界上还没用过他们产品的人,你还是有很多很多机会的:)

蜂巢效应 (archive)

以蜜蜂 / 蜂巢为类比:蜂巢效应追求的是个体间互动的频繁,绝对数量未必多,但个体间互动多了就有生机有机会,如 Snapchat 让用户快速频繁地创造内容,如无人驾驶车时刻在动,高利用率,如 Slack 让员工们点对点频繁沟通

相比之下,网络效应追求的是绝对数量的多,如社交网络们追求尽量多的用户,但大部分用户之间互动不多,要嘛贫富差距大(Instagram 里 50% 的内容由少于 3% 的账号生生成),要嘛用户不活跃了(Facebook 里用户更新状态的数量以每年 21% 的速度递减)

MailChimp:不在硅谷的非典型创业公司 (archive)

俩创始人于 2000 年时被裁员,自费创业帮人做网站,发现小商家们对邮件营销挺有需求的,于是边做网站边做邮件营销的服务;07 年开始全力经营邮件营销服务。地处亚特兰大,不融资,不上市,早已盈利自给自足。

他们原来打算叫 ChimpMail,但域名被注册了,于是改叫 MailChimp。湾区日报的邮件订阅就是用 MailChimp 搭的,每个月花 $20 多,至今依然很满意,与我自己搭自己维护所要花的时间比,这钱花得太值得了。

2016/10/07 第 721 期

现在有太多工具与编程框架了 (archive)

看到标题,我还以为又是一篇吐槽 JavaScript 生态圈的文章。可惜不是。本文鼓励百花齐放、越多工具、越多编程框架,越好。大部分会失败,但最后胜出的就是好东西。

老程序员的反思 (archive)

知识、技能是会过期的,有的保质期短、有的保质期长。身为“老”程序员的作者认为,从长远来看,应该多投资一些不容易过期的知识,比如算法、信息安全、架构、性能优化等。文章开头从 React 的语法联想到 JSP,老程序员应该都能产生共鸣啊~

其实看到本文,我第一反应是想到重庆森林里的台词:秋刀鱼会过期,肉罐头会过期,连保鲜纸都会过期,我开始怀疑在这个世界上还有什么东西是不会过期的?如果记忆是一个罐头的话,我希望这一个罐头不会过期;如果一定要加一个日子的话,我希望是“一万年”

如何约到很忙的人与你见面 (archive)

作者 Steve Blank 是很忙的人,很多人想找他“喝咖啡”寻求他的管理与创业方面的建议,当然他是不理大部分这样的人的,但他会愿意见那种可以给他带来新知识、教会他新技能的人。

所以他觉得,欲取之必先予之。“I’d like to have coffee to bounce an idea off of you and in exchange I’ll tell you all about what we learned about xx.”

花 $12.8 万买下别人的 side project 是一种怎样的体验 (archive)

他们决定要经营一个 bug/ 任务追踪的 SaaS;他们没有从头自己做,而是选择买下别人做的、然后自己再慢慢改进。本文记录了他们与卖家讨价还价的过程。在讨价还价时,他们一点优势都没有,因为他们没更好的选择了。

硅谷礼仪 (archive)

守时;24 小时内回复邮件;征得双方同意后才能介绍他们互相认识;写简短有条理的邮件;乐于助人;开会不超时;外国人要练好英文但有口音是正常的;用数据说话;学会讲故事。

2016/10/08 第 722 期

科技改变了我曾经闭塞的家乡小镇 (archive)

作者家乡在 North Dakota 州的一个人口数百的小镇。在离家 25 年后,他回到家乡,让他妈找来几个“跟他当年相似”的高中生,他采访那几个高中生:用啥 app、听啥音乐、对外面世界了解多少、会不会因在小镇而感到不便等。

这个做法有意思,他本人、他妈、他妈眼中“跟儿子当年相似”的高中生,这些人应该都有兴趣做这种今昔对比、时代变迁的访谈的。姜文在 一部电影的诞生 书里讲到:当年 阳光灿烂的日子 选马小军扮演者时,姜文让他妈来挑,挑一个长得跟少年姜文相似的人来演,于是就选了夏雨。

如何在开头脑风暴的会议时装逼 (archive)

开会前去拿水喝,并问与会者要喝啥,显得体贴;开会时奋笔疾书;会上发言巧用似是而非的比喻弄晕众人;带领大家反问自己是不是问了正确的问题;巧用俚语;告诉众人如 CEO 在他会怎么说;当大家似乎都同意某想法了,大喝一声:ship it!

在没有融资的情况下,有没有可能运营一家基于开源软件的公司 (archive)

作者是华盛顿大学(UW)数学系教授,他自己的创业公司是基于自己之前的开源项目做的。本文记录了最近发生的一些事情和他的思考。下定决心不融资、坚持开源。

RethinkDB 项目完全开源,作为公司,他们靠风险投资撑了 7 年,前两天正式宣布过不下去了,关门。作者不禁怀疑,这种依靠开源项目的公司能存活吗?他本人与风投们聊过,得到的建议都是“要融资、市场要大、不惜一切代价快速发展、要能尽快上市尽快被收购、做产品是为了能下一轮融资、产品不要开源”。作者还是“死脑筋”地走上了“不融资、坚持开源、不考虑上市或被收购”的道路。

The Double Opt-In Introduction (archive)

基本礼貌:要介绍俩陌生人认识前,一定要先分别征得双方的同意,才能发那封 cc 了双方的介绍邮件。看起来很理所当然、似乎是个正常人都会这么做,但现实中并不是这样的。

很多介绍人在一方不知情的情况下,就发了 cc 双方的介绍邮件,搞得大家都很尴尬。

员工福利是好的公司文化的基石

Litmus 的创始人 CEO 写的文章,阐述了好的员工福利的重要性,以及如何实行清晰的、实在的、有用的员工福利。在创业初期,作为 CEO 的他会挨个员工问中午吃什么,由他来订餐;他们公司一年带薪假 28 天。

2016/10/09 第 723 期

Sam Altman 的宿命 (archive)

来自纽约客的关于 YC 现在的主席 Sam Altman 的长篇报道。此人成长于保守的中西部,是同性恋犹太人,8 岁学编程,16 岁出柜,20 岁从斯坦福辍学与男朋友一起创业,卖掉公司后分手。

接掌 YC 以来,逐渐把 YC 变成一个类似 Google 母公司 Alphabet 的庞然大物,做着一些常人无法理解的疯狂的项目。他两个弟弟鼓励他 2020 年时去竞选总统,那时候他将 35 岁,刚好达到美国总统候选人的法定最低年龄,同性恋犹太人选美国总统,绝对给力;他两个弟弟,一个在 YC 投资的公司 Zenefits 上班,另一个在创业、也是 YC 投资的公司。

创业时如何处理“竞争”所带来的心理压力 (archive)

创业初期,不管你做什么,肯定都有人做了,所以你肯定晚了;而且你做的东西如果真的好的话,肯定会被迅速抄袭的,担心也没用。与其跟竞争对手搞军备竞赛乱做乱加各种功能,不如服务好现有用户,稳健发展。

为什么 Apple 不把无线耳机 AirPods 作为 iPhone 的默认耳机 (archive)

既然 Apple 赌定无线耳机是未来趋势,为什么 iPhone 的默认耳机还是有线的?有线耳机对大部分人来说已经足够好了,而且无线耳机造价贵、免费赠送的话 iPhone 利润就下去了。

而且无线耳机可以作为提升逼格的工具,尤其是现在各种阶层的人都用 iPhone,想显摆一下自己品味的人只能从其他配件入手了,比如无线耳机:)

我该为哪个开源项目贡献代码 (archive)

作者的建议是:为你经常使用的项目(编程框架、小工具等)贡献代码。第一个 pull request 可以从改注释中的错别字开始,先熟悉一下流程。若要真改代码逻辑,最好先跟项目维护者沟通一下,避免做无用功

Facebook 的前端代码的性能回归测试的系统 (archive)

现在的网站把计算越来越多地挪到了前端浏览器上,各种花俏的前端 DOM 操作,渲染极慢。若要准确测量页面在浏览器端的加载时间,就要排除各种噪音,如服务器传来的每次都不同的动态数据、网络传输耗时等。

2016/10/10 第 724 期

黑莓们在坟墓中的冥想 (archive)

黑莓与诺基亚在 2010 年时各自的手机销量都达到顶峰,这是在 iPhone 推出 3 年后;然后黑莓与诺基亚迅速陨落,为啥?黑莓太晚意识到开发者生态的重要性;诺基亚倒是早有警觉,只是抱错了大腿:微软。

Twitter 能成为非营利性组织吗 (archive)

做为上市公司,尤其是上市的社交网络公司,你得不断追赶 Facebook,永无止境地增长用户与盈利。科技圈里有非营利性的机构?Mozilla 是一个例子,每年能赚几个亿,不图快速增长,旱涝保收可持续发展就行。

如何推测一家 SaaS 创业公司的年收入 (archive)

先到 LinkedIn 上去搜看看他们有多少个员工,然后用员工数乘以 $15 万一年(若融资超多)或者乘以 $20 万一年(若融资略少)。也就是假设平均每个员工每年能为公司带来十几二十万的收入。

平均每个员工给公司每年带来收入最多的公司是 Craigslist,现在 40 多个员工,年收入 $3.8 亿,净收入 $3.04 亿;但他们多数员工应该分不到这么多钱的。

Joel Spolsky:让你的工程师能专心工作,是给他们的最好福利 (archive)

StackOverflow 与 Trello 的创始人 Joel Spolsky 这个建议/吐槽不错:别整些没用的花俏的福利,开放办公环境下,工程师们能不被打断并能安安静静连续写几个小时代码也是很困难的事;给他们独立办公室或允许他们在家办公。

Google 收购 YouTube 十周年 (archive)

10 年前 YouTube 以 $16.5 亿“天价”卖了。创始人 CEO Chad Hurley 拿到 $4 亿,创始人 CTO 陈士骏拿到 $3 亿,另一打酱油创始人 Jawed Karim 拿到 $6 千万。

YouTube 一开始是婚恋网站。YouTube 与 Facebook 都是受到了那个时代来钱快一夜致富的 Hot or Not 的故事的启发。后来 YouTube 转型专注做视频了。正式上线的时候每天就有 800 万 page view。YouTube 去年收入 $90 亿。现在看来,当时 Google 那 $16 亿花得很值啊。

2016/10/11 第 725 期

功能单一、简单易用的硬件产品

最近的一系列硬件产品如 Amazon Echo、AirPods、Spectacles 所能做的事,智能手机也都能做。只是用手机的话要解锁、选 app 等几个步骤,不如专门的硬件简单方便。

以前使用硬件产品(如电视、90 年代的台式机),用完了要关机;下次使用得开机。而现在的硬件产品,尽管都有开机关机的概念,但大部分时候都是保持开机状态。

Unit Economics (archive)

感觉现在到哪都能看到 Unit Economics 这个词。从每个用户身上赚到的钱多于为争取一个用户所花的钱,看似简单的道理,但太多创业公司现在是“我们在每个用户身上都亏钱,但我们有很多用户”— 整体还是亏钱。

"Unfortunately, we all must accept the fact that some problems were just not meant to be solved."

What I’ve learned from seeing 20k company pitches (archive)

从事风险投资两年来,作者见过了 2 万份的 pitch email,站在风投的角度告诉创业者们,如何在发给风投的这么多封 pitch email 里脱颖而出。

文中提到一个有意思的点:由认识的人推荐的创业者未必比没人引荐的、主动送上门来的创业者要靠谱;认识的人之所以推荐,往往是碍于人情而说了好话,未必推荐的创业者就真的优秀。

The Pot-Belly of Ignorance (archive)

获取信息、知识,就像吃饭,吃什么拉什么;吃一顿两顿垃圾食品(用零散时间刷社交网络上没营养的标题党文章),问题不大,但长此以往,你的身体健康就差了(你就变得无知了)。

时间与空间(胃、记忆)都是有限的,长期吃垃圾食品(垃圾信息),你就没法吃有营养的东西(有思想有启发性的长文)。

程序员对人名的错误理解 (archive)

应用程序、网站、app 通常都要存储与显示人的真实姓名,这是一件看上去很简单、但却不容易做对的事情。First name 是名还是姓?每个人只有一个全名?可以改名吗?可以没有姓吗?可否用阿拉伯数字?

另一个看上去很简单、但很难做对的事:在代码里处理 时间。

2016/10/12 第 726 期

Fuck You Startup World (archive)

真是一篇读起来很酸爽的文章。吐槽了所谓创业圈的各种怪现象、各种邪教组织般的崇拜、仪式与术语。文中的“Fuck You”句式密度之高,都难以打马赛克了:)

Rocket Internet:挣扎中的山寨工厂 (archive)

总部在柏林,员工总数 3 万人分布在 120 个国家。运营模式:抄袭硅谷的创业公司;锁定抄袭对象后,总部分配人力资源在欧洲做市场调查,火速开发,几周内上线。大部分员工是不持股份的。上市至今公司股票一路狂跌。

Finding Twilio

作者在 Twilio 工作了 7 年,本文回忆了他如何发现 Twilio 的产品并为之吸引的故事:意外发现 Twilio 的电话 API,15 分钟做了个小 app,功能请求一周内被实现,被 Twilio 当做成功案例宣传。对很早期的招不到人的创业公司或许会有所启发。

巴菲特公式 (archive)

以巴菲特与他的老搭档查理芒格为例,他们如何一天天变得更聪明?答案是:大!量!阅!读!这是简单但不容易做的事。你总是借口找不到时间、找不到好内容来读。巴菲特一天工作时间 80% 用在阅读,一天能读几百甚至一千页。

“Develop into a lifelong self-learner through voracious reading; cultivate curiosity and strive to become a little wiser every day.”— Charlie Munger

公司如何才能招到牛逼工程师 (archive)

三种办法招到牛逼工程师:

  1. 去他们常去的技术会议上套近乎;
  2. 招实习生自己培养,他们还没见过市面,容易收买;
  3. 从你自己的社区中寻找,如你的博客的读者、贵公司 API 使用者等。

牛逼工程师一般不用主动找工作,也鲜有投简历的时候;在人才市场上投简历找工作的多数都已经是不合格了。

大牛工程师一般同一份工作都做很久,真牛的话,公司也会重用、把他们照顾得很好。

这观点与之前分享的“死海效应”正好相反:能力强的员工容易离职,因为他们对公司内愚蠢的行为的容忍度不高,他们也容易找到好工作;

能力差的员工倾向于留着不走,他们也不太好找工作。

好员工像死海的水一样蒸发掉,然后死海盐度就变得很高,正常生物不容易存活。

2016/10/13 第 727 期

每一个伟大的产品的背后都有一个伟大的产品经理 (archive)

讲了这 20 年来几个不错的产品及其背后的产品经理运筹帷幄的故事:90 年代的微软的 Word for Mac、90 年代末出租 DVD 的 Netflix、2000 年的 Google Adwords、08 年的 iTunes 等。

从管技术到管人的过渡 (archive)

总结了不少工程师如何管人的理论。不少话可以打印出来贴墙上的。“If you can’t lead yourself, how can you lead others?”(一屋不扫何以扫天下?)

还有这个:“If you want to go quickly, go alone. If you want to go far, go together.”

为什么会有 tech debt (archive)

可能原因:复制粘贴代码的时候,不理解“借”来的代码;决策者不理解代码质量的重要性,有千万种理由赶进度一味求快;偶尔在战术上故意走捷径,有时间了再回头“还债”,但通常都忘了。

如何搞好 all-hands (archive)

在美国科技公司工作的人应该都很熟悉 all hands:

每周或每两周全公司开会,主要做三件事:

  1. 介绍新人、表扬员工;
  2. 重申公司战略,打鸡血,确保上下一心;
  3. 员工向高层提问。

小公司的话搞 all hands 比较容易,所有人叫在一起,周一上午或者周五下午搞一下。

公司大了、有不同国家、不同时区的办公室了,选一个全体员工都合适的时间就比较难,很多就只能选在周四晚上,通过视频连线。

一个世纪以来,广告行业并没有增长 (archive)

从 1920 年到现在,美国每年的广告花费占 GDP 的 1% 到 1.4%,变化一直不大。也就是广告这个大饼并没有变大或变小,是零和游戏。电视、广播、报纸、杂志、互联网这几种媒介的广告,此消彼长。

当今世上市值最大的 5 家公司里,两家是广告公司:Google 与 Facebook,再用广告赚的钱顺便做点无人驾驶车、长生不老药、VR 之类的有趣的项目:)

2016/10/14 第 728 期

PayPal 早年如何招到最好的工程师 (archive)

PayPal 联合创始人 CTO Max Levchin 的经验:所有面试官里只要一人反对,就不招那人;错过牛人没事,但千万别招烂人;写下自己认识的最棒的且认为不可能加入你公司的人,这些人往往你最后都能招到。

创业早期千万别搞政治正确的 diversity,应大量招同一学校的、同一思考方式的、与自己相同的人,这样做决策才不会五花八门拖拖拉拉的;团队成员会什么就用什么,不要非得追求“最好”的工具。PayPal 最早 10 个工程师都是 UIUC 毕业,最早 5 个非技术人员都是 Peter Thiel 自己的斯坦福校友网络里的。

不再从事 Android 开发了 (archive)

作者同时做 iOS 与 Android app 的开发,后来选择放弃 Android,因为

  1. 这俩平台都进化很快,每年平台加了不少新功能,很难及时掌握,最后俩平台都不精通;
  2. Android 开发太多坑。

Amazon 只需要一分钟的人类手动操作就能配送一件商品 (archive)

Amazon 的配送中心高度自动化。人类员工(picker)站在原地,机器人送来货架、通知人类员工商品在哪,人类员工取出商品、扫描后放入指定盒中、自动传送给下一站的人类员工花 15 秒打包。最后人类员工把商品放入卡车。

文中的视频演示了整个流程怎么运作的,推荐看一下。很多人有误区,妄想一步到位就自动化整个流程的一切操作;其实现实往往是你一点一点地优化,先自动化一小部分,等技术成熟一点后,再自动化一点,最后大部分步骤都自动化了,剩下一点点仍需人类手动操作。湾区日报的运作也是遵循这个套路。

创业公司何时开始招产品经理 (archive)

创业初期,创始人把握产品方向,不用招产品经理;当团队里 makers(工程师、设计师)多了,产品复杂了,创始人不好使了,才开始招产品经理。大部分创业公司整个生命周期都很短,活不到招 PM 的那天~

来自付费用户与来自免费用户的反馈的区别 (archive)

付费用户的反馈一般比较有见地,他们花了钱做了投资,真的用上你的产品了,他们的反馈要听进去;免费用户还没做决定到底真正用不用你的产品,他们的反馈一般比较肤浅。

2016/10/15 第 729 期

为何 Google 没法做出 Instagram (archive)

本文也能回答很多类似的问题:为何(看似)有无限资源的 Google/ 微软等大公司无法派一两个工程师用一周时间做出这个或那个简单的 app、而非得最后花几十亿去收购、还往往买不着?

本文写于 2010 年 Instagram 上线一个月后、其下载量达到 50 万。大公司没法 move fast:做功能简单的 app 多丢脸啊;若要做,一定得力求完美,第一版一定要跨平台,一定要假设上线第一分钟就有数千万用户、所以得各种消防演习保证后台坚若磐石;优秀的工程师哪会去做这种没技术含量的 app、做了也不好升职啊;Picasa 团队的人得搞搞政治斗争、尽力阻止任何照片相关的 app 在公司内推出……

严肃对待 PHP (archive)

Slack 的 Chief Architect 作此文向不了解 PHP 的人们严肃地科普了一下 PHP 这个语言的好与坏、生态、当前流行趋势。为什么某某公司选用某某语言?取决于早期那帮人啥语言用得顺手。

商业上的成功与用什么编程语言关系不大。你用了世界上最好的编程语言(如果真有的话),也不一定做得出有人愿意用的产品。大量使用 PHP 的公司、项目:Facebook、Wikipedia、Wordpress、Etsy、Box、百度、Slack。

成为 CTO (archive)

如果你还在与人争论为何 PHP 是垃圾语言、如果你不喜欢开会、如果你无理由地瞧不起非技术人员、如果你想不通技术是为了业务服务的、如果你不能在出现技术问题时站出来承担责任,那么你不适合做 CTO。

关于 AMP 的十个误区 (archive)

AMP 到底是什么?是新的编程语言?是 Google 的产品?只能在 Chrome 上运行?只支持手机屏幕?只是为了争取到更多访客?本文对这一系列问题解释得还算清楚。AMP 其实更像是返璞归真版的网页编程最佳实践,比你想的要简单得多。

今年二月份我花了点时间为湾区日报网站做了 AMP 页面,这个时间投资算是很值得的。现在不少访客都是通过 Google 搜索、点击湾区日报的 AMP 页面进来的。

你能从你的产品里去掉哪些功能 (archive)

产品进化一段时间后,会有一些鸡肋功能:用户极少,但你又不舍得拿掉,结果每次加新功能后做回归测试,都要额外花时间看看这些鸡肋功能是否仍然能用。这种鸡肋功能就应该果断删掉。

2016/10/16 第 730 期

支持川普的这一半美国人难道是疯了吗 (archive)

神文一篇。选民的分化,是城乡的分化。川普支持者多是郊区、小镇、大农村的贫穷白人,文中描述的那种 hopelessness 的状态,正是他们支持川普的原因。主流文化渲染的是都市生活,政治正确地关怀黑人、同性恋,却放弃了这些乡下的贫穷白人。

川普个人作风有问题?美国影视作品中的超级英雄们哪个作风没问题?

"The rural folk with the Trump signs in their yards say their way of life is dying, and you smirk and say what they really mean is that blacks and gays are finally getting equal rights and they hate it. But I'm telling you, they say their way of life is dying because their way of life is dying. It's not their imagination."

运维人员的身份危机 (archive)

来自 Uber 的 SRE 工程师的文章。老一辈的公司往往是开发与运维泾渭分明,开发的人专心写代码,运维的人部署、监控、救火;比较新的公司现在多是让开发人员也做点运维工作,而传统意义上的运维的人做工具支持开发人员做运维。

开发人员一定要自己部署代码、自己做监控、自己 oncall,只有在半夜三点被自己写的 bug 吵醒了,你才有动力去写高质量代码:)

如何向你的 CEO 兜售你的 idea

创业公司员工都有头脑发热、充满各种绝世 idea 的时刻,那该如何向贵公司的 CEO 兜售你的绝世 idea 呢?本文教你如何“揣度圣意”:)

囤积代码者 (archive)

有那种喜欢在家里囤积各种用不到的东西的人,导致家里暗无天日、过道狭窄。囤积代码也是同样道理,并非功能越多越好,没用的代码若不删除,以后维护代码的人就得多杀一些脑细胞去理解这些代码,白白浪费时间。

一个月赚 $2 万的 affiliate 网站 (archive)

这就是所谓的 passive income:花时间做搜索引擎关键词研究,选择一个领域;用 WordPress 搭个网站,写几万字的产品对比、点评,放上 Amazon 的 affiliate 产品链接,然后躺着数钱了:)

作者花了几年达到如此境界?11 年。从青少年时期就开始研究与实践网上营销、网上赚钱,打怪练级 11 年。

2016/10/17 第 731 期

10 种 Over-Engineering 的错误 (archive)

在做产品的过程中,没经验的工程师们(或编程学校刚出来的)往往 Under-Engineering,而有一些经验的半吊子工程师们则往往 Over-Engineering,常常想太多了,把问题复杂化。

这个 GitHub repo 里的 Java 代码很具有代表性,用来讽刺现实世界中的“企业级”代码,咋看之下这些代码符合各种软件工程的最佳实践,具有接近 100% 的 test coverage,但实际上就是一坨过度复杂的狗屎。

替换 MongoDB 存储引擎的那几个不眠夜 (archive)

他们将 MongoDB 的存储引擎从 MMAPv1 换成 WiredTiger,当 WiredTiger 缓存用满后,MongoDB 变得无响应;花了几个不眠夜换回 MMAPv1,数据恢复就用了 36 小时。

这是“边开飞机边换引擎”的失败案例:)抛开吐槽 MongoDB 的种种不是,他们在 production 上对数据库进行这么关键的操作确实准备不充分,灾难恢复也没做好。本文最后他们自己也总结了经验教训,另一篇来自 Parse 前系统工程师的博文针对此次事件也做了很好的评价,也推荐读一下。

永远投资你的教育 (archive)

这里的教育并非单指在学校里拿学位的那种教育,而是自发地投入时间、投入金钱去大量阅读、终身学习,这能让你做更好的决策、见识到更多的机会,你自己的教育是唯一可以终身投资且终身受益的东西。

有的人读 4 年很好的大学,毕业后每天、每年都没再进步了;有的人没怎么读过大学,但每天、每年都在进步。10 年、20 年后来看,读好大学的可能人生的巅峰就发生在读大学的那一刹那,只有在那时才是同龄人中的佼佼者,以后就不是了。人生还很长,必须不断进步啊。

“If a man empties his purse into his head no one can take it away from him. An investment in knowledge always pays the best interest.”— Benjamin Franklin

如何决定该做哪个产品功能 (archive)

公司里每个人都有各种好的产品 idea,先做哪个好?文中给出了一个方法:用电子表格把各种产品 idea 列出来,从三个方面打分 Demand、Impact、Effort。最优先做的功能应该是需求高、影响力大、工程上容易做的。

这个电子表格给出了这种方法的使用范例。

On Writing Product Specs (archive)

公司发展到上百人后,给产品增加新功能以前写好 product specs 是很有必要的,因为上线一个产品功能都要不同部门一堆人协同工作,文档是唯一有效的、scalable 的沟通方式。

本文讨论了为什么要写 product specs、以及怎么写,还给出了 product spec 的范例。

2016/10/18 第 732 期

Google 如何备份整个互联网的 (archive)

使用磁带存储,在磁带上做 RAID4(4 个磁带做 XOR 放到第 5 个磁带上)。这个哲学好:备份数据的目的是为了数据恢复,宁可备份操作复杂耗时,也要争取数据恢复时的快速方便。

2011 年的时候,一个代码的 bug 让 Gmail 的 0.02% 的用户丢数据,Google 用了几天时间从磁带恢复了这 0.02% 的用户的数据,如果是其他公司的话,故居这些数据早就永远消失、或者需要恢复几个月了。

磁带?对,Oracle 与 IBM 都还在卖磁带存储系统。Amazon 的 Glacier 服务可能也是基于磁带的,但外界都只是猜测。

如何在网上吵架赢别人

互联网那么大,你要吵赢别人靠提高音量、靠飚眼泪都是没用的。网上一半的人智商是低于常人的,你可能也是属于这一半,吵也没用,没人在乎你的观点的。在网上晒娃、晒猫、晒吃的就好了,别吵。

循序渐进地代码重构 (archive)

项目做得越久,进度越慢,因为 tech debt 多了,自己挖的坑多了,自己都得小心翼翼地绕道走,当然慢了。与其在 backlog 里加一些需要大规模代码重构的 ticket,不如洗心革面边走边填坑,循序渐进地重构,时间久了,就好了。

这是你职业生涯的前十年 (archive)

讲述了在亚洲的曾经学业优秀“你”毕业进入跨国大公司前的喜悦,然后对现实中办公室政治感到失望;在社交网络上与朋友们暗自攀比出国旅游的数量;跳槽去了“更好”但“更累”的公司,不禁迷茫自己的选择;年龄渐长而意识到时间的重要,有无数创业想法却无时间与勇气。

职场 10 年,人近中年,在升职加薪与竞争对手公司重金挖人之间,何去何从?文笔很细腻,相信每个人或多或少能从文中找到自己的影子。本文是受了之前推荐过的“这是你在硅谷的生活”的启发而写的。

文中刷 Instagram 与朋友攀比旅游照片的桥段真是惟妙惟肖:“你并非真想在照片上打败他们,你只是想让他们知道自己也混得不错,你不是普通人!或许比不过 Sara,她旅游次数更多,但这贱人的男朋友很有钱,不算;也比不过 Dan,不过他是一家科技公司创始人,不能跟我们在同一系统里衡量,他也不算。”

2016/10/19 第 733 期

NoSQL Data Modeling Techniques (archive)

我来拟一个副标题:“如何用 NoSQL 来模拟 SQL”。文中第一张图概括了一切。除非你真的知道你在做什么,还是别用 NoSQL,老旧不酷的关系数据库足够用了。

报纸行业犯了个大错误吗 (archive)

本地报纸都争先恐后地做网站,只是读者们都不太去访问他们的网站。本地报纸做的网站充斥着免费的、半个屏幕都是广告的、低质量的内容;读者们既然都上网了,当然有更好的选择了。

技术圈的部落主义

作者是有近 20 年经验的资深 web 前端工程师。本文对技术领域、尤其是 JavaScript 领域山头林立的情况进行讨论,呼吁大家钻研一个技术但不要教条主义。

他以前在雅虎工作,内部使用雅虎自己做的 YUI 来做前端开发;后来他同事离职去一家使用 jQuery 的公司做 tech lead,这个同事就咬牙切齿非得用 YUI 替换 jQuery。刚加入一家公司就想说服公司里的每个人都用他主观喜欢的技术,似乎不是什么好兆头……

"Don't get so caught up in the tribe that you can no longer thing in terms outside of the hot technology right now and are actively hostile to anyone who doesn't belong. This isn't what our industry needs. On the contrary, we need more people who are willing to abandon their tribes to fully understand a problem and arriving at the correct solution rather than the popular one."

创业公司早期应该招什么样的人

最早期只有创始人的情况下,是招与创始人技能互补的(如工程师招销售)、还是招与创始人技能相似的(如工程师招工程师)?本文认为应该先招那些技能相似的,这样你才知道怎么面试、怎么识别好员工

然后你就能腾出手来去学其他技能(如工程师学销售),掌握了其他技能后,再去招具有那些技能的人。

"In general, though, consider hiring by cell division — bringing in a next person good at the same things you are good at, and handing her some of your work in that area — so that you can focus on practicing the next skill the company needs."

The Commoditization of Machine Learning

20 年前做动态网站用 perl、C++ 写 CGI,需要对网站、服务器等底层如何运作有足够了解;如今类似 Ruby on Rails 之类的编程框架让做网站变得极其容易。机器学习的“Ruby on Rails”时刻即将来临。

以后机器学习就是一些封装很好的黑盒,不用理解具体怎么实现的,很多情况下只要调一下 API 就能神奇地完成某个任务。

2016/10/20 第 734 期

硅谷如何对待这个川普的支持者:Peter Thiel (archive)

硅谷与 Peter Thiel 有生意往来的组织(如 Facebook、Y Combinator)都被逼着要“表态”、“站队”、“划清界限”。

小扎在给 Facebook 员工的内部帖子被员工截图外泄;Ruby on Rails 之父 DHH 与 Y Combinator 之父 Paul Graham 撕逼大战;著名播客、Tumblr 前 CTO 撰文“Shame on Y Combinator”。

如何有效地向开发者们报告 bug (archive)

我们使用的大部分软件(包括网站、手机 app 等)都是免费的(不考虑花时间看广告,不考虑时间就是金钱)。如何支持我们喜欢的软件的开发者们、并让软件变得更好?及时向他们报告 bug!

UI 设计里的文案 (archive)

很多人设计 UI 的时候,都会先随便敲几个字,反正等最后设计完了再回过头来写上比较正式的文案。其实文案本身就是 UI 设计的一部分,要重视。倒是可以先定下文案、画个草图,就能立刻做用户测试了。

摆脱“只是一个小小的程序员”的形象 (archive)

程序员们工作前以为自己将是“建筑师”,工作后发现自己只是“建筑工人”,别人叫你怎么做你就得怎么做,因为你“只是一个小小的程序员”。文中给的建议适合在还算理智、开明的公司里实践。

Our Need for Purpose and Recognition (archive)

想让团队里的成员干活给力,就得让他们知道为什么做(Purpose),做了后他们还能得到认可(Recognition,口头表扬、发奖金等)

对于交给手下的任务,很多领导其实都知道“为什么做”,但就是不告诉手下(可能觉得不值得花时间解释),如果手下问了,还得斥责他们“我叫你做你就做,别问那么多为什么”,这样手下干活怎么能给力?

"Employees want to know why they are doing something (how does it connect to the overall vision and mission of the company) and they want to be recognized for doing it (by others inside and outside of the company)."

2016/10/21 第 735 期

Each necessary, but only jointly sufficient (archive)

Etsy 现在的 CTO 前几年写的文章。production 出故障了,人们经常一厢情愿地想找出有且仅有一个 root cause,这样才好向上面交差。复杂的系统出故障了往往不止一个 root cause,有天灾当然也有人祸。

"…… failures in complex systems require multiple contributing causes, each necessary but only jointly sufficient."

"Finding the root cause of a failure is like finding a root cause of a success."

不同等级的管理岗位 (archive)

作者总结了她这几年在不同等级的管理岗位的工作心得、工作职责、新技能培养、遇到的困难等。从管工程师、到管一半工程师一半小经理、再到手下都是经理。

如何避免经常重写你的 JavaScript 代码 (archive)

网站前端编程就是写 UI。本文认为应向经得起时间考验的老旧 UI 编程套路学习,如用 Windows API 以及 SDL API 写的代码:main 函数与 event loop。

AI 技术的声音选择 (archive)

标榜人工智能小秘书的各种产品的声音都是听起来像是年轻、受过教育的白人女性,如 Siri、Alexa、Cortana;而那种要刻意突显出是机器人的情况,声音往往是男的。

连黑人开的公司做的 app 也要刻意弄成白人女性的声音,迎合市场:)

没有合伙人而且又结巴的创业者 (archive)

Commando.io 的创始人的文章。完全通过互联网与人沟通、通过互联网做生意,讲话结巴问题不大。但到了要融资、要与投资人讲电话、开会的时候,就麻烦了。

当年这篇文章在 Hacker News 上的讨论,底下评论大家帮他出谋划策。

2016/10/22 第 736 期

Spotify 这家公司是如何做产品设计的 (archive)

作者一行人拜访了 Spotify 在纽约的 office,看上去 Spotify 的工作环境不错啊。本文采访了他们的设计师,截取了若干工作场景,与其他工种的协同配合。文中有不少他们工作时(估计是摆拍)的照片。

本文可以搭配以前推荐过的介绍 Spotify 工程文化的视频来看。

Trello 这家公司是如何使用 Trello 这个产品的 (archive)

Trello 这家公司有 100 个员工,在公司的 Trello 里共用 150 个 boards(不包括个人使用的 boards),各个部门都灵活使用他们自己的产品安排任务、沟通、高效工作。

公司里重度使用自家产品的例子还有:Slack 这家公司如何使用 Slack 这个产品、Quip 这家公司是如何使用 Quip 这个产品的。

Design Due Diligence (archive)

可以作为“风投进城防骗指南”的一部分来看:)风投在考虑投资早期创业公司前,对该公司的设计方面该做怎样的考察?要向业界专家咨询,要采访该公司的设计师以及现有用户

我一个朋友是大学教授,a16z 每次要考察他那个领域相关的创业公司的时候,都会叫他过来一起把关。现在创业公司骗投资人的情况太多了,风投们要学会怎么防骗啊。

写给年轻程序员的建议 (archive)

关于编程、与同事相处、工作效率、个人成长等方面的一系列不错的建议。我想加一条:开始工作后要学会花钱买时间(如买工具),花钱买个人成长(如培训、开会),花钱买软件(对同行的劳动表示尊重)。

多人团队就是一个分布式系统 (archive)

一个人的想法都不可能在不同时间保持一致,更别说多人的了。分布系统之所以难,是因为节点间要分享资源、要通信;多人团队也一样,所以分布式系统的 CAP theorem 对团队管理也适用。

管人的领导们多读一下 Leslie Lamport 的那些分布式系统理论的论文是很有好处的:)

2016/10/23 第 737 期

一人一首成名曲 (archive)

你能创造什么内容(音乐、视频、文章、设计等)来改变你的人生轨迹?就像当年 12 岁的 Justin Bieber 那段 YouTube 视频让他被星探发掘。发掘自己的强项,选择合适的平台去创造内容。

你需要的是那么一个好的个人作品来打开局面。你的代表作是?

计算机科学里最难的事 (archive)

就是 naming things。文章举了各种代码中命名不当的而给开发带来难处的例子,如命名函数、函数参数、变量、类名等。代码之外的例子也很多:项目名称、服务器名、域名、命令行命令等。

其实原话是:“There are only two hard things in Computer Science: cache invalidation and naming things.”Cache invalidation 也是日常工作中让人头疼的一件事。

谈到给项目命名,现在不都在搞 microservice 吗,一堆的 microservice,该怎么称呼?有同事是 Game of Thrones 爱好者,经他手的几个 microservice 都是剧中人物的绰号,有同事是走日系卡通路线的,还有同事搞圣经这块的,五花八门。导致新人入职后都要用一上午熟悉各种专有名词……

我在互联网上保护个人隐私的策略

互联网上声称是“免费”的东西大多都不是真的免费,你不花钱,但你得花时间去看广告,同时你得在不知不觉的情况下贡献出个人隐私数据给那些互联网公司们、让他们更好地向你投递广告。

当然,大多数人并不会意识到时间和个人隐私数据是什么重要的东西,所以也无所谓。但有些人会觉得,干脆我交钱得了,每个月交一些“保护费”给互联网公司,别给我展示广告、也别收集我的隐私数据。遗憾的是,你想交钱也交不了,没这途径。作者就找了一些常用线上服务的更尊重用户隐私的替代品。

今年的 Startup School,YC 的 partners 与小创业公司创始人互动,模拟 office hour 时给的建议。其中有个创业公司做的事情是“买卖用户隐私数据”:他们掏钱跟网民们买(更详细的)隐私数据,然后再转手将数据卖给其他公司。会有网民愿意卖自己的隐私数据吗?会的,反正所有网民都已在不知不觉的情况下将个人隐私数据贡献给了那些互联网公司,现在我明确掏钱跟你买,你还不乐意?

NBA 球员到硅谷的科技公司实习 (archive)

运动员退役后该靠什么技能维持生计?NBA 搞了个项目帮球员们开拓球场之外的职业道路,他们与硅谷科技公司合作(如 Google、Facebook),让球员们无薪水去实习、见见世面。

2K 是制作 NBA 游戏的公司,去这家公司实习的 NBA 球员应该普遍对自己在游戏中的技能分数挺不满的:)去实习的多是职业生涯中不温不火的球员(其实大部分球员是这种类型的),在游戏中的技能点一般都不高;技能点高的都是天皇巨星,不用去搞这种无薪实习的。

最好的代码是没有代码 (archive)

每多写一坨代码,就多了一些产生 bug 的可能,就增加了未来维护代码的时间、也增加了未来读代码理解代码的时间。为了做到同样的功能,有没有可能不写代码、或少写代码?

2016/10/24 第 738 期

成功科技产品的三个支柱 (archive)

简称 GEM 框架:Growth、Engagement、Monetization。团队在做产品额时候应根据这三个方面合理分配各种资源(人力、金钱、时间)。

20 年后重写俄罗斯方块 (archive)

1996 年,作者用 QBasic 在 DOS 上写了个俄罗斯方块游戏。2016 年,在开完 PyCon UK 后,她用 Python 开发,用上了两块 BBC micro:bit 电路板来控制。20 年的间隔,编程体验有何不同?

你每天醒着的时候有 100 个 10 分钟 (archive)

一个人每天醒着的时间有大概 1000 分钟,也就是有 100 个 10 分钟。拿出一张纸花 10x10 的网格,每个格子是 10 分钟,这张纸就是你的一天。在这张纸上标注一天的活动,或许能敦促你更好地花时间。

以前推荐过另一篇 Wait but why 的文章 The Tail End:在一张 A4 纸上画网格表示你的余生,每个格子代表你的一周,如果你每周都会做同样一件事(比如看一本书、看一场球、回家见一次父母),那你这辈子能做这件事的次数其实不是很多了,在这 A4 纸上都能数出来了。

有一个 Chrome 插件叫 "The Last Sunday",能让你每打开一个空白 Chrome tab 的时候看到自己还能经历几个星期日,可能也就 2500 到 3500 个星期日吧。

2001 年的 iPod 发布会与 20 张正版 CD (archive)

15 年前的今天是 Apple 发布 iPod 的日子。发布会上 250 个观众,多是记者,每人拿到一台 iPod,以及 20 张正版 CD;那台 iPod 里就是装了这 20 张 CD 的内容。当时没有 iTunes,没地方下载正版歌曲,所以拷贝了几次,就相当于买几张相同 CD。

作者就是当年从日本去参加这次发布会的记者。15 年前的今天,911 刚过去没多久,很少人敢坐飞机去这个发布会,作者竟然从日本飞过太平洋赶过去了。他今年找出了这 20 张由 Steve Jobs 以及 iPod 团队挑选的 CD,CD 的封面贴在本文最后。当年发布会的场景在 YouTube 上能看到。

当年 iPod 的宣传口号是:1000 Songs in Your Pocket -- 相比之下,当时其他 MP3 播放器厂家宣传都是“好几 GB 超大存储空间、还能显示歌词、电池容量超大”等。

2016/10/25 第 739 期

JavaScript ES6 核心功能一览 (archive)

普及一下 ES6 的新语法,最新版主流浏览器多已支持了,可以当场打开浏览器的 Developer Console 敲一下练练手。

创业公司的 5 种竞争优势 (archive)

产品(技术先进,用户体验超好)、价格(规模化,超低价)、定位(针对高端用户,还是低端用户)、分发渠道(有办法让大量潜在用户看到并用上)、执行力(团队超牛逼,经验丰富)。

社交网络的祖先:BBS (archive)

80 年代的时候,美国这里的 BBS 比较火;而中国是在 90 年代后活跃起来:较早的惠多网上有马化腾、求伯君、丁磊等老网民;90 年代中期以后各高校 BBS 陆续出现,怀恋那个 telnet 灌水的年代啊。

很早以前比较常去的有母校的 BBS、水木、紫霞、一塌糊涂、ptt(我常去架空历史板和八卦板)。我在 iOS app 更新里有一则关于 BBS 的段子。

为什么 Tim Cook 是新时代的 Steve Ballmer (archive)

产品型、有远见的 CEO 离开公司后都传位给曾经执行力强但不懂做产品的下属,公司靠着前任 CEO 定下的牛逼的商业模式,再加上现任强执行力的 CEO,盈利还能增长几年,只是不创新了

Bill Gates 和 Steve Jobs 都是这种产品型、有远见的 CEO,他们都传位给了执行力牛逼的下属,Steve Ballmer(销售)以及 Tim Cook(供应链)。俩公司盈利似乎依然蒸蒸日上,都已难有前 CEO 在的时候带给用户的惊喜了。Steve Jobs 在世时都亲自 demo 产品的,但这五年来的唯一新产品 Watch 是谁 demo 的?

First Mover or Fast Follower (archive)

是做创新者、早起的鸟儿有虫吃(如 Amazon 电子书、AWS)?还是后来者居上、快速跟进、螳螂捕蝉黄雀在后(Google 已是第 N 个搜索引擎、Facebook 已是第 N 个社交网络)?

先跑还是后跑都不重要,先过终点线才是最重要的。

文中引用了俩数字:

  1. 创新者(first mover)一般最终市场占有率只有 7%;
  2. 产品的市场占有率 60% 是最理想的,既占了大头、又能依靠剩下的小竞争对手们争相做广告教育潜在用户、进而将市场做大。

2016/10/26 第 740 期

每天坚持五分钟日记:据说有助个人成长 (archive)

每天花 5 分钟在纸做的笔记本上回答几个问题。起床时:我感激啥?今天怎么做才会过得好?再确认一下我是谁?晚上睡觉:今天发生了啥好事?如再来一次,今天怎么过好?

这样的笔记本网上有卖……而且还有 app……

从学术圈到数据科学 (archive)

Airbnb 的三个数据科学家写的文章,指出了高学历、从象牙塔中走出来的人的坏毛病,以及怎么改变才能适应工业界这种需要真正的团队协作、快速发展的环境,写得很到位。

现实中接触过的很多刚毕业进入工业界的 PhD 都普遍存在眼高手低的情况,不屑于去做没技术含量的准备工作,只想做“有意思”的工作,而且善于钻牛角尖。文章里讲他们希望 PhD 毕业生要有 Beginner’s Mindset,你在学术圈的成功(发了顶级论文)并不能直接转化成工业界的成功(做出好产品、管理好团队等)。

一个风投自己的创业想法清单 (archive)

很多风投自己有很多创业 idea,然后创业者来 pitch 的时候碰巧撞大运与自己曾经的想法不谋而合,缘分啊,于是就投资了:)本文列出的这些创业 idea 都是解决他个人遇到的问题的。

Slack 桌面版是用什么写的 (archive)

最新版的 Slack 桌面程序是基于 GitHub 开源的 Electron 写的,而 Electron 是基于 Chromium 浏览器。Slack 桌面版的每个 team 就是一个 Chromium 的进程。

现代跨平台桌面程序越来越多地都是基于这种“本地服务器 + 浏览器 + web 前端 + 远程服务器通信”,Spotify 也是如此。

2016/10/27 第 741 期

Jeff Bezos 写给 Amazon 股东的信(2016 年与 1997 年) (archive)

谈到了备受争议的 Amazon 公司文化、客户至上的理念、勇于冒险不怕失败敢于下赌注的精神。对比今年(2016 年)与上市那年(1997 年)的两封信,近 20 年,Amazon 其实没变。

很长,写得真好,逻辑清晰,见解独到。推荐大家有时间真的要好好读一下。

敢于说出“我不懂” (archive)

年龄越大、地位越高的人越不敢说 I don’t know;每个人都有许多不知道的东西,但就是死要面子不敢承认。因为不敢说“我不懂”而造成的麻烦实在太多了,你要撒谎、要胡扯、要产生误会来掩盖自己的不懂。

我刚到美国的时候,有次跟导师 meeting,我一个问题其实不知道答案但硬要瞎掰,他就跟我说:生活不是在考试;考试时如果你不懂,你就瞎猜一个答案。但现实生活中,it’s okay to say“I don’t know”; sometimes“I don’t know”is a good answer.

Family-friendly 的创业公司是存在的 (archive)

管理层都有小孩、公司 1/4 员工有小孩、男女比例 1:1、产假有几个月之长,管理层做表率在某些时候提早回家。19 个月内,从 50 个员工增长到 240+ 个员工。

暴利的鹦鹉:抄袭至少与创新同等重要 (archive)

来自 The Economist 的文章。创新的产品最终平均只能占到市场份额 7%。抄袭者直接进入一个已受到检验的市场,省却了花在研究上的大量时间与金钱。

可能善于抄袭还不够:)"Good Artists Copy; Great Artists Steal."

创建并运营基于开源软件的公司 (archive)

sentry 的创始人 CEO 的文章。sentry 是实时捕获 web app 抛出的异常的系统,一直都是开源的。去年他们基于这个开源项目成立了公司,提供付费 SaaS 版。本文阐述了他们开源的态度。

既然 sentry 有开源版的,为什么会有公司愿意掏钱用他们的 SaaS 版、而不是选择自己搭建?因为成功的公司知道搭建与维护这种收集分析程序异常的系统不是他们的主要业务,成功的公司懂得做算术,自己搭建、自己维护这种系统所耗费的人力成本(程序员的工资)十倍、百倍地高于花在 SaaS 的钱,而且术业有专攻,别人是专门做这个的,肯定做得比你自己搭要好。

2016/10/28 第 742 期

Cognitive bias cheat sheet (archive)

将维基百科上的 list of cognitive biases 归为四大类,为何人会有认知偏误?

  1. 信息过载,人脑要对信息过滤,但留住了不好的信息;
  2. 信息模糊模棱两可,人脑要填补空白、要弄明白,却填了错的东西进去;
  3. 需要尽快做决策,时间不够、信息不够情况下仓促做决定;
  4. 选择性地记住了错的东西。

代码依赖是恶魔 (deleted)

在自己的代码中引入新的 dependency 要十分慎重,要评估一下这些第三方库的成熟程度、是否有活跃的开发社区、是否有重要商业项目也在用。这些第三方库的开发者随时都可能撒手不管,或不声不响地改了编程接口就等着你入坑。

被裁员了的你应该立刻做这件事 (archive)

那就是立刻买一张去发展中国家的单程机票,去旅游 6 到 9 个月,然后再回来找工作。刚被裁员的话,有一笔抚恤金,正好拿去旅游、散散心;而且去发展中国家的话,每个月花费不到 $1000。

没有比被裁后去旅游见世面更好的机会了。但出去玩了几个月后,回来还能找到工作吗?猪牵到北京还是猪,你本身就烂的话,去不去旅游都找不到工作:)

游戏“文明”的对与错 (archive)

“文明”系列游戏已有 25 年历史,卖了 3300 万套。第一款“文明”上线之时正好是苏联解体美国成为世界霸主,游戏里最终胜利就是达到美国的自由主义;而且第一款“文明”有超厚的说明书,让游戏包装看起来很沉、很有分量,老百姓愿意掏钱买看得见摸得着的东西,而买看不见摸不着的软件就会犹豫。

最近“文明”6 开卖了,Mark Zuckerberg 是“文明”迷,他已经玩上“文明”6 了。当年我也靠“文明”4 打发了在研究生院的许多苦闷时光:)

如何与员工“分手”

作者从业 20 多年以来,作为管理者他经历或参与了几百个员工提交辞呈或被开除;从一开始的愤怒、关系恶化、从此成为陌生人,到后来学会和平分手、保持联系、共同进步。甚至还为离职创业的员工提供办公室。

尤其在科技行业,2、3 年跳槽一次很正常,只是一份工作而已,人生还很长,别过河拆桥、把关系弄僵了。

2016/10/29 第 743 期

GitHub 的一个 bug 让少数 private repo 外泄了 (archive)

此次故障是由于一行关闭数据库连接的代码有 bug,持续了 10 分钟,导致有些用户 pull 了别人的 private repo,共 156 个 private repo 受影响。

但得承认 GitHub 是一家良心企业,估计很多公司遇到这种情况直接就睁一只眼闭一只眼糊弄过去了,而不会这么坦诚地公开这么多细节。

从用户的角度讲,即使是 private repo,也并非 100% 是 private 的。类似这种 bug 可能以后还会发生,毕竟运营 GitHub 的人跟我们一样也是人,也会犯错误。所以千万不要把用户名密码、AWS key 之类的 commit 到 git repo 里,一次外泄可能你整个公司就灭顶之灾了。

WordPress 的缔造者 CEO 指控 Wix 盗取 WordPress 代码 (archive)

WordPress 是开源的,使用 GPL。Wix 的手机 app 的文本编辑器用了 WordPress 的手机 app 的代码,按照 GPL,他们的 app 必须也采用 GPL 并且开源,但他们非但没开源而且没提到 WordPress,仿佛是原创的似得。

WordPress 的 CEO 呼吁 Wix:把你们的手机 app 开源了吧,放到 GitHub 上,咱就揭过这一页,大家一起共同进步。(注:程序员朋友们,你们使用别人开源项目的时候,千万要睁大眼睛把 license 看清楚了。)

年轻、有才华但十分沮丧的科学家们讲述自己的故事 (archive)

学术圈的“年轻”与科技圈的“年轻”不是同一代人。刚成为“独立的研究人员”(如刚拿到教职),拖家带口,工作时间超长,时间都用在了融资(哦,不,是申请研究经费,其实是一个道理啦),根本没时间做真正的研究。

所做的一切事情都为了融资,融资后招人干活,招学生、博士后,发论文,然后再融资,再招人,再发论文,再融资。若想看更多这类故事,他们其实有一个专门的网站。

“There’s work that is clearly beautifully done, but there’s also work that is done sloppily, overhyped, even fabricated. Current pressures and incentives mean that being first but wrong pays off better than being second and right.”

微软与苹果角色互换 (archive)

这一周微软与苹果都发布了新硬件产品。微软的超大触屏 The Surface Studio 设计定价都很大胆,但好评如潮,微软在创新了;而苹果推出新的 Macbook Pro 只是小改进,大家对新的 MBP 一片吐槽,苹果成了前几年的微软了。

苹果坚信触屏不适合桌面电脑,但把“触屏”放到键盘上就没问题。

采访 MailChimp 创始人 CEO (archive)

相当风趣幽默的采访。最后悔的事?10 年前他将所有积蓄买了 Apple 股票,一股 $17;但他看了不知道哪个王八蛋写的投资的书,说是要分散风险,于是他买了一堆看似安全、但最后都亏钱的股票;还不如把钱拿出来投资自己的公司。

有什么目标还未达到?还没写商业计划书(尽管 MailChimp 已运营那么多年了)。你希望十年前的自己应该知道的事?你的公司必须用 10 年时间才能做起来。

2016/10/30 第 744 期

Pull to Refresh UI Pattern

对 App 设计里的 Pull to Refresh 样式总结得很全面。什么时候该用、什么时候不该用、在设计方面应注意哪些细节等。Yelp 的 app 里的 pull to refresh 设计得不错。

从 2001 年 10 月份的邮件回顾当年 iPod 上线的历史

他当时在 Newsweek 工作。2001 年 10 月,911 刚发生,他虽收到邀请但没从纽约飞往加州参加 iPod 发布会;Apple 派人亲手送了一台给他评测;随后与 Steve Jobs 通话。

2001 年 iPod 发布的那个月底,微软发布 Windows XP,这当然也是具有一定历史地位的产品。他在这个发布会上与 Bill Gates 吃饭,他向 Gates 展示了一下 iPod,Gates 把玩许久。文章结尾贴出了 Steve Jobs 给他发邮件解释如何将多台电脑的歌曲导入 iPod,很少有大公司的 CEO 对自家产品这么熟悉的。

这场秘密会议改变了 Vine 的命运 (archive)

去年秋天,近 20 个 Vine 上的网红集体向 Vine 提议:支付他们每人 $120 万现金并实现他们提议的新功能,他们才定期在 Vine 上更新内容,不然的话,他们就离开 Vine 投入其他视频平台的怀抱。

Twitter 在 2012 年收购 Vine,但 Vine 第一版直到 2013 年才上线,现在 Twitter 即将关掉 Vine 了;类似的故事,Twitter 在 2015 年初买下视频直播服务 Periscope,收购两个月后 Periscope 第一版才上线,可以预想 Periscope 的结局了。

在对待平台上的网红的态度上,YouTube 就做得很好,把那些网红照顾得服服帖帖的;文中提到 YouTube 常会给他们这些网红“小惊喜”,比如给你 $1000 的 gift card 让你去买一些比较好的摄影设备。作为平台,你想要有优质内容,就得舍得花钱、花时间、花感情去投资,想空手套白狼是不行的,走不远。

我的 $4 万的 DIY MBA

9 年前他的投资账户有 $13 万(由于 04 年买了 GOOG 和 AAPL),在考虑去学校拿个 MBA 或者自学时,他选择了自学一个 MBA。于是卖了 $4 万的股票来投资自己。自己看许许多多的书、组织一帮志同道合的人一起吃 brunch、邀请商界精英来给讲座,自己 DIY 一个 MBA。

拿钱投资自己。

ESPN 一个月内失去了 62 万个有线电视订阅用户 (archive)

这是 ESPN 公司历史上最糟糕的一个月。预计 ESPN 明年要花 $73 亿向各大体育联盟买内容版权,其中 $19 亿给 NFL、$14.7 亿给 NBA。对比一下:Netflix 花 $60 亿,Amazon 花 $32 亿。

看有线电视的越来越少了。互联网公司也都在砸钱买(或自己做)优质内容。

2016/10/31 第 745 期

你应该迁怒于自己,而不是 Apple (archive)

上周 Apple 发布了新的 Macbook Pro,主力使用 MBP 的开发者、创意工作者群体很失望。本文觉得,这怪不得 Apple,谁叫你自己选择 Apple 的产品用了这么多年?作为成年人,别抱怨,你完全可以选用其他生态系统的。

让我想起了以前有一个读者给我发信:“你要是再发那些我打不开的链接,我就取关你了!”hmm ……

走出创业过程中的悲伤的低谷 (archive)

近 10 年前,YC 的一次晚宴上 Paul Graham 画了个创业过程中创业者的情绪曲线:被 TechCrunch 报道后关注度倍增信心爆棚,火爆一时之后就是漫长的“悲伤的低谷”,公司半死不活,是继续做下去还是放弃?

本文为正在经历“悲伤的低谷”的创业者们支招:找出本质问题所在;没必要做 90% 的创新,找一个已有产品进行 20% 的创新就够了;简化产品、去掉冗余无用的功能(如 Instagram 就是他们最初产品的简化版);用钱买时间,有时间才能多迭代几次;做不 scalable 的事;保持小团队。

马云也说过类似的话:今天很残酷,明天很残酷,后天很美好。很多人死在了明天的夜里。(没走出悲伤的低谷)

公司如何搞好工程博客

公司官方的博客、产品类的博客主要是用来宣传、忽悠用户,由 PR 的人把关。而工程类的博客也很重要,对招聘有帮助;但涉及到技术,就只能由工程师来写了。问题来了,工程师的工作是写代码,哪有人愿意写英文?

写一篇博文是很花时间的,至少几小时、甚至 1、2 个工作日;如果上层领导有远见、能意识到经营好的工程博客的益处,就得鼓励工程师在平时开发过程中写下心得体会、分享经验教训,这样或许就让工程师比较不会因为“写英文”而没“写代码”而感到“内疚”。而且这种工程类的博文对语言的要求不用太高,可以用术语、可以不用经过 PR 审批,尽量减少障碍。

有朋友在工作中发表论文,我就问他是不是利用白天工作的 8 小时写论文的、还是下班回家后额外花时间写的;毕竟“写论文”不在工作要求内,工作要求是“写代码”。他说是在白天工作的 8 小时内写的,公司领导支持,觉得这很重要,是公司对外宣传的窗口,比“写代码”重要。

产品开发的过程教我们如何做人

软件、硬件产品不断迭代,每隔一段时间就发布一个新版本,增加新功能或修复了 bug。人的成长也是一样,从婴儿到会走路、读大学、结婚、生小孩都是重大的版本升级。

自我提高也与做产品类似,要听取用户反馈、要设定 deadline、要找好自己的个人定位、要能快速迭代修复自身坏毛病并增加新技能。

桌面电脑的未来就一个字:贵 (archive)

普通百姓以及非脑力劳动者们根本用不到桌面电脑,手机与平板就够了。桌面电脑销量不好了,厂商怎么赚钱?提供更好的软件集成然后提高每台电脑的售价。

从上周微软发布 Surface Studio 与苹果发布新 Macbook Pro 就看到这个趋势了。这两家都做操作系统,可以与硬件集成得很好,可以放心提价。而其他传统买电脑的厂商很难控制软件的部分,很难找到理由提价。

2016/11/01 第 746 期

对于新的社交网络平台,光有大量用户是不够的

从最近 Twitter 关掉 Vine 得到的启发:光有大量用户是不行的,你还得能留住网红,别让网红因为在你平台赚不到钱而跑到竞争对手的平台去了。网红是社交平台蓬勃发展的保障。

Too Many Startups Like Playing Startup (archive)

创业公司假装很忙形势大好的假象:开很多会、一人就能做的事让很多人来做、追求无用的指标如员工数、同行聚会太频繁、赞助会议、花大钱装修办公室、与创始人创业导师们喝咖啡次数太多了。

两种 API 平台

反面教材:Twitter,第三方开发者做的客户端与 Twitter 本身有竞争关系,抢了用户、伤了盈利。正面教材:Slack,第三方 bot 对 Slack 核心功能是互补的,皆大欢喜。

招 Growth Hacker 的面试题集锦

仿佛所有很酷的公司都在招 growth hacker。本文给出了几个业内专家在面试 growth hacker 人选的时候问的问题、以及他们主要考察的点。有不少脑筋急转弯式的问题。

GPL 的代价

使用开源项目的时候一定要看清 license,如果你不想开源自己的代码,那就千万别用那些用了 GPL 的项目。GPL 是传染性的 license,哪怕用了 GPL 项目代码的一丁点,你几百万行代码的项目都得开源。

2016/11/02 第 747 期

给即将面试 Y Combinator 的创业者的建议 (archive)

来自 YC 前 partner Garry Tan 的建议。这些建议也普遍使用于各种 pitch。有一个很烂的大公司竞争对手其实是一件好事,证明你做的东西是有市场的。

他以前就是 YC 面试创业者的,我一朋友 2011 年申请 YC 时,他是面试官之一。

别逼我注册新账号 (deleted)

吐槽了现在手机 app 的恶习:在刚下载完 app、第一次打开 app、啥都还没看到时候弹出对话框逼用户注册账号,可能都在进行 KPI 大跃进吧。

High-Expectation Customer (archive)

她的咨询公司帮早期的 YouTube、Dropbox、Airbnb 等公司进行品牌定位。她认为最重要的是要找出产品的 High-Expectation Customer:那些能让普通用户仰望并争相模仿的、有眼光的超级用户。

有点像在做 Persona,要找出“模范用户”的特征。Dropbox 的模范用户是尽量让生活变得简单的高效率人士;Airbnb 的模范用户是世界公民,热衷旅行,乐于融入、体验当地文化,而不是走马观花地旅游。

大屏手机对用户使用习惯的影响 (archive)

这是 2014 年 Pocket 团队的老博文:手机屏幕越大,用户阅读文章的时间、看视频的时间就越长,而且也会把原先花在平板电脑的时间挪到大屏手机上。

Phablet 这个名字真是取得妙极了,屏幕介于“小屏”手机(Phone)与平板(Tablet)之间的“大屏”手机。

在 git 的 commit message 里解释“为什么”

不能同意更多了:系统出故障后总要 git blame 引起故障的那个 git commit(及其作者),但很多人的 commit message 有写跟没写一样,你至少得解释一下这个 commit 的动机吧?

2016/11/03 第 748 期

给员工股份的正确姿势 (archive)

每年创造四份新股份:

  1. 给新员工的;
  2. 给升职的员工的;
  3. 给表现好的;
  4. “常青”股份,就是一个员工待满 2.5 年后,每年固定增发给 ta 的股份。

创造的这些股份哪来?稀释所有股东的股份。

现在科技公司员工跳槽频繁,公司如果非得等到员工待满 4 年才考虑给员工加股份,那就太晚了;

一般都得 2 年、2 年半的时候开始发新股份,开启另一个 4 年 vesting 周期,温水煮青蛙,让他们不断尝到甜头:)

阴谋论:iMac 为何不支持软盘(1998) (archive)

Apple 发布第一款 iMac,大胆地拿掉了软驱、并首次引入 USB 接口。没了软驱就没了移动存储的媒介,将激发其他厂商争先去做基于 USB 的移动硬盘,商场货架上将满满都是 iMac 的外设,一派欣欣向荣的景象。

本文写于 1998 年,那一年法国世界杯、长江松花江发大水、还珠格格、印尼反华暴乱、Windows 98、Google 成立公司、AOL 收购网景。我记得那一年我拿着 KV300 的软盘去镇上唯一一家电脑店升级病毒库的情形。

如何做一个刚好够用的网站

本文写于 2007 年,也适用于现在做 app。不管网站还是 app,改设计的话都得改代码,很麻烦;可以参考小有成功的网站的设计,让设计师替换图标、颜色等,整个团队都同意后就开始实现,避免反复来回修改。

UI 设计没必要完全原创;原创的 UI 用户需要时间去学习、去适应,反而用不习惯。经时间检验过的 UI 就足够用了。

员工的水平提升 (deleted)

对于同一个职位,创业公司在不同阶段对技能水平的需求不同。理想情况下,早期招来的员工能随着时间推移而不断提升自己的业务水平;实际情况下,往往成长都会遇到瓶颈,那就只能招更有经验的人了。

华尔街有些大佬们避免使用电子邮件 (archive)

他们尽可能地面对面交谈,而不留下文字记录;如果非得用邮件沟通,尽量用一两个单词回复“yes”、“no”、“thank you”。为啥?君不见希拉里的电邮门……

2016/11/04 第 749 期

Basecamp 这家公司是如何使用 Basecamp 这个产品的

Basecamp 是一站式的项目管理的 SaaS。本文举了 Basecamp 公司内使用自家产品的各种用例,又一个 dogfooding 典范,开发自己每天都使用的工具就是爽。

姐妹篇:Trello 这家公司是如何使用 Trello 这个产品的、Slack 这家公司如何使用 Slack 这个产品、Quip 这家公司是如何使用 Quip 这个产品的。

科技公司价格不菲的人才争夺战 (archive)

上市了的大的科技公司花几十万、上百万刀去留住好的工程师、或花上亿去留住高管,都已不是新闻。在人才争夺战里,小公司根本无力反击。最终结果会不会像韩国一样,只剩下少数几家巨无霸公司垄断人才市场?

创业成本似乎更高了,因为现在即使是会写 CRUD 应用程序的胶水浆糊工程师们要价也都很高。大公司可以在招人方面不断加价,间接消耗创业公司们的钱、让他们烧钱速度更快 -- 这一点有点类似大公司去状告创业公司,目的不是为了打赢官司,目的是为了让创业公司花钱请律师、尽快把钱烧完。

如何做一个好的 podcast

采访了一些知名 podcaster。“做 podcast 不难,难的是让人去听”;“制作一集 podcast 需要 30 到 40 小时,包括查资料、计划、写稿、录音、后期制作、上线”;“Just do it”。

浏览器才是移动互联网的未来 (archive)

这里的浏览器指的是内嵌在原生 app 里的浏览器,而不是单独的 Chrome 或 Safari。人们在聊天、社交网络等 app 里间接打开并浏览网页,app 是一种发现与分享网页的机制,看看微信就知道了。

你不需要大数据,你需要的是正确的数据 (archive)

问三个问题去挖掘你做决策所需要的正确数据:

  1. 为何会浪费资源(时间、金钱、人力、原料等)?
  2. 如何自动化地减少浪费?
  3. 针对 1 与 2,需要哪些数据?

2016/11/06 第 750 期

写可读性强的 SQL (archive)

很少人喜欢写 SQL,尤其是各种内嵌一大坨的那种。本文介绍了一些对 SQL 代码风格进行美容的小技巧,或许能让写 SQL 的过程变得更愉快一点。

继上次我教 marketing 与 PM 写 SQL 后,最近再将本文介绍给他们,他们就能自己写复杂点的 SQL 了,间接节省了工程师们的时间(不用再来求工程师帮忙了)。

Error Handling in Node.js (archive)

两种异常:Operational errors,程序员预期的、可以正确恢复的异常,catch 之;Programmer errors,程序中的 bug,程序员没料到的,没法正常恢复的异常,没必要 catch,fail hard、fail fast。

这两种异常在 Java 里也被称作 Checked Exceptions 与 Unchecked Exceptions(包括 RuntimeException 与 Error 两类与其子类)。

Google 重做 Android 的那天 (archive)

Android 公司在 03 年成立;05 年卖给 Google 后假想敌是微软的 Windows Mobile、模仿对象是黑莓、使用物理键盘;07 年 iPhone 推出,Android 推倒重做;08 年秋正式推出。

现在 Android 是全球装机量做大的操作系统。90 年代、21 世纪初的所有软件公司都怕微软;谷歌怕微软的手机操作系统垄断后,也会顺便垄断手机上的搜索引擎,谷歌就没戏唱了。07 年 iPhone 发布会之时,Android 创始人 Andy Rubin 正在拉斯维加斯的计程车上看发布会视频,他急忙让司机停车,好让他把视频看完;他那时候知道,iPhone 才是真正的敌人。

Getting beyond MVP (archive)

上线了外观看似精美、实际上是胶水浆糊做的 MVP 并检验了 idea 后,下一步该怎么让后台代码变得更好维护、更好地快速迭代?先搭 CI,有简单的测试,开发新功能时随手逐步重构底层代码。

手写编程日志让你成为更好的程序员

准备纸介质的笔记本,用笔写。修补 bug 时,描述一下症状、帮助自己理解;设计算法时,记下各个步骤;记下小小成就、记下心得体会。手写让你放慢速度,有思考的空间。

又是一个 writing is thinking 的例子。

2016/11/07 第 751 期

The Most Expensive Anti-Pattern (archive)

文章描述的这种 anti-pattern 就是通过操作字符串来构建结构化的数据格式,比如 html、SQL 等都是有结构化的,但都可以通过操作字符串来构建,带来 XSS 与 SQL 注入等风险。

如何做高质量的软件 (archive)

讲到了开发团队的种种实践、以及做这些事情所需的投资大小以及人们的接受程度:态度、各种自动化测试、版本控制、monorepo、production 的监控、code review、文档、避免加班、团队文化等。

提升网页加载速度最佳实践 (archive)

问题:贵公司将上电视直播,贵公司的网站能否抵挡住电视观众排山倒海般的突然访问、并且网页加载速度足够快?本文从前端渲染速度、网络延迟、后台性能提升三方面讲解,文章后面的那些参考资料都很不错。

Chrome 的安全团队想让网站们都采用 https (archive)

Google 在下一盘很大的棋:主要盈利来自网站广告;要更好地做广告,就得拿到更多用户数据;网站安全至关重要,不然用户数据得遭殃。为逼迫网站们都采用 https,Chrome 浏览器得教育用户哪些是安全网站、哪些是不安全的网站,然后得公开羞辱不安全的网站。

除了通过浏览器对没有用 https 的网站进行批斗外,Google 的搜索结果排序算法也早已将 https 考虑进去,使用 https 的网页排序会比较靠前。

为 LinkedIn 的 Bullshit Metrics 辩护

LinkedIn 的注册用户很多,但活跃用户的比例不大。本文认为,除非你这个社交网站主要收入来源是广告,否则没必要在乎活跃用户数;LinkedIn 收入的大头是来自 recruiter 的付费订阅。

在 LinkedIn 上,只要注册用户足够多,而且他们挂着简历、有个联系方式让 recruiter 们去骚扰,这样就够了;recruiter 们活跃就行了,普通用户活跃不活跃其实无所谓。其实普通用户的数据就是 LinkedIn 的主要产品。

2016/11/08 第 752 期

UX 是矿井中的金丝雀

判断一家公司产品设计水平可以从两方面看:

  1. 设计师是否开心,这是 leading indicator;
  2. 产品设计的质量,这是 lagging indicator。

有四种情况:

  • 开心 / 质量好;
  • 不开心 / 质量好;
  • 开心 / 质量差;
  • 不开心 / 质量差。

本文针对这四种情况分析公司的产品设计水平,并给公司的 CEO 支招。

本文标题中的 Canary in a Coal Mine(矿井中的金丝雀)是指危险将至的标志;

矿井中的工人带金丝雀下矿井,金丝雀对危险气体敏感,如果有毒气泄漏,金丝雀比人先死,矿工一见金丝雀死了,就知道该撤出矿井了。

科技圈里使用 canary 作为比喻的还有 "Canary server" 或 "Canary deployment",指的是部署代码时先部署到一台或几台服务器上,如果监控发现问题了,就可以立刻 rollback,就像比喻中的金丝雀一样,吸进毒气(发现代码有问题)先死了。

如何写好代码里的出错消息

尽管产品 UI 的文案精雕细琢,但代码里的出错消息往往都是不经大脑模棱两可的字符串。

半夜三点网站挂了,查看 log 时一头雾水,这时才后悔:如果当时出错消息写得清楚一点就好了。

好的出错消息得包含:出了啥问题、是啥触发的、哪行代码(当代编程环境里的 stack trace 一般就够用了)。

远程办公需要 Overcommunication

远程办公时,同事间以异步通讯为主;

团队成员最好都得清楚其他人此刻都在做啥工作,可以及时帮忙或避免重复劳动,每个人都有责任找机会重复向团队其他人广播自己在做啥。

Twitter 应该成为一个网络协议 (archive)

吃瓜群众都很愿意指点江山,人人都是 Twitter 的产品经理:)既然 Twitter 让投资人与用户都操碎了心,不如就变成一个 pub/sub 的网络协议,有程序发布消息,也有程序订阅消息。

例子:新闻,媒体发布 tweets,各种客户端订阅并接受 tweets;电子商务,结账后用 tweet 的形式发布收据(可以是 private 的),各种客户端订阅这些 tweets,可以用来公司报销、消费分析等。

创始人股份被稀释到多少才算合理

创业之初公司价值为零,创始人占公司股份 100%。招聘新员工要给股份、融资也要让出股份给投资人,若干年之后公司上市或被收购了,创始人股份如果还剩 20% 就算不错的了。

Google 上市时,俩创始人分别占 15.6%;Facebook 上市时,小扎占 28.2%;Atlassian 上市时,俩创始人共占 75.4%,他们没怎么融资。

2016/11/09 第 753 期

The Process Myth (archive)

工程师尤其看不惯公司里的各种规章制度、各种条条框框,所谓的 process;工程师们老爱问为什么,为什么会有这样那样的规定。公司里指定规章制度的人又都不给你解释为什么,“历来就如此,别问那么多为什么”。

"It’s a myth, but healthy process is awesome if it not only documents what we care about, but is willing to defend itself. It is required to stand up to scrutiny and when a process fails to do so, it must change."

在 production 使用 docker 的失败史 (archive)

每次升级 docker 的版本都是那么戏剧性,总有这样那样的不兼容的问题;docker 开发者那帮人总爱重写代码,且不向后兼容;数据库、以及一切需要超级无敌稳定的 service 千万别放在 container 里。

如何做伟大的产品 (archive)

产品功能归为三类:gamechanger,人们就冲着这个功能买这个产品;showstopper,没这功能人们不会买产品,但加了也对销量帮助不大;distraction,可有可无。

做任何功能前先归类,再考虑做还是不做。distraction 的功能尽量别做,浪费时间浪费资源;showstopper 的功能要有几个,但别太多;gamechanger 的功能也尽量别做太多,你没那么多资源去做,要做就把少数几个做到极致。

电子游戏很无聊 (archive)

作者是游戏开发者,她的工作、她所在的圈子都是游戏爱好者,就错以为全世界每个人都是游戏爱好者。实际上,大部分人生活都不容易、生活都很忙,游戏里的角色也没啥代入感(如游戏里英雄都是男的,女玩家就偏少)。

本文借着电子游戏,似乎是在讲一个什么道理。今晚美国总统大选基本就这么回事了;下午在公司的会议室里,在场 10 几个人都说自己认识的所有人都投了希拉里,似乎没有认识的人投川普,看上去似乎希拉里胜券在握的样子。生活中我们都在盲人摸象,都只看到局部,还都以为自己看到了全部。

坚持每天找时间做 Side Projects

每天都做,就算一天只花 15 分钟 也行;每天用的时间不多,期望也不用太高,压力也不会大,养成一种每天的习惯;半年、一年积累下来,side project 就初具规模了。

我的经验是,做 side project 的话,家里的电脑永远不关机,永远开着 IDE、开发用的虚拟机、浏览器的 DevTools、iTerm2 等,每天有时间就做个 1、2 小时,没时间弄个 10 分钟、15 分钟改个字体大小、颜色啥的也行,保持开发环境不变,第二天一有空闲就能接下去写、很快进入状态。

2016/11/10 第 754 期

忘了无人机和太空船吧,Snapchat 的狗脸滤镜才是未来

摄像头是手机(又名:口袋里的超级计算机)的输入工具,滤镜是 AR、是对现实世界的注释、是一种自我表达的形式、是一种很赚钱的广告形式。谁家滤镜做最棒?谁家滤镜老被抄袭?上市在即的 Snapchat(2017 年 3 月 16 日注:已上市了)。

避免招到垃圾程序员的面试流程 (archive)

流程如下:应聘者周五到公司领取编程任务,周末做完,周一到公司面对一群人展示,有点类似论文答辩,不管应聘者有没有被录取,都给他们钱,感谢他们周末的劳动。这样很人性化。

57 条创业经验教训 (archive)

已关门了的 RethinkDB 的创始人在 2013 年总结的经验,涵盖了人事、融资、市场、产品、营销、销售、开发、创业者身心健康等方面。总结得不错,但创业也是谋事在人成事在天,运气也很重要。

Manager 有责任确保员工有工作之外自己的时间 (archive)

两种团队:互相信任、互相尊敬、鼓励独立思考、每周 40 小时工作时间 VS 互相不信任、领导靠制造恐惧统治员工、一言堂、每周 80 小时工作时间。

Freelancing 的秘密

作者是前 Spotify 的设计师,自学成才。他出道时做 freelancer 接私活,客户问他会做网站吗?会。会设计杂志吗?会。其实他当时啥也不会,先把活接下来,边学边做还有钱拿。

Fake it till you make it.

2016/11/11 第 755 期

八卦,谣言,与谎言

本文描述了公司里不同小团队的小领导们一起开的一种会议,俗称 staff meeting,每周一次,一次一小时。

主要干三件事:

  1. 就几个关键指标进行讨论;
  2. 专题讨论;
  3. 讨论八卦、澄清流言。

每个人对待开会的心理都是很矛盾的:参加了无关紧要的会,就觉得浪费时间,就要开骂;

但若是开会不邀请你参加的话,你心理也不爽,觉得自己不被重视。

我的 Chrome 插件开始收钱后学到的经验教训 (archive)

这是作者的一个 side project,2011 年开始做,一直免费,一直开源。最近开始收费了。一开始采取免费试用,用爽了再交钱的策略,但发现很多用户试用完后直接删了,大大影响下载排名。经验教训:别采取免费试用。

领导不要做编辑

有些领导自诩是首席编辑,尽管不是控制狂,但也乐于插手员工的具体业务;员工们在一个项目里花了几个月,而领导对该项目只了解了几分钟就要指手画脚了。

我不知道领导爱当编辑的典故是从何而来,文中也没提及;但我记得曾经看过一个视频,这个视频里的领导就自诩是首席编辑,该领导身兼两家公司 CEO,其中一家公司以 140 字而闻名于世,他的名字以 J 开头,剩下的大家自己看吧:)

Dockerizing MySQL at Uber Engineering (archive)

看来 Uber 内部已经把 docker 玩得很溜了,在 dockerize 了大量 stateless 的 service 后,他们把 MySQL 集群也 dockerize 了。1500 多台服务器上跑了 2300 个 MySQL 数据库。

Container 里跑 MySQL 进程,而数据则是放在 host os 的文件系统上再 mount 到 container 里。

邮件订阅的商业模式

很多主流新闻媒体仍然经营着邮件订阅这种“古老”的内容分发渠道。本文列举了 8 种直接或间接利用邮件订阅赚钱的方式,比如直接做广告、付费订阅、引流到自家网站再通过网站上的广告赚钱等。

2016/11/12 第 756 期

I Don't Know

在面试程序员的时候,不少面试官会试图问到应聘者说“I don’t know”为止,美其名曰试探应聘者的能力极限之所在。作者在本文中自我检讨,非白人、小时候非电脑神童的应聘者往往缺乏自信,这种面试对他们不公平。

比较好的做法应该是在面试中让应聘者知道,他们是有权利说 I don’t know 的,这并不是失败的征兆,要给他们信心。我一直坚信你要求别人做某事的时候,一定要说明白为什么,面试也是如此;一般我面试人的时候问问题,都会解释一番为什么问这个问题、这个问题与现实工作有什么关联、这个问题考察的点是什么,让应聘者放松一些

保护你的日程表

Facebook 的 VP Design 对工作时高效利用时间的很好的建议。在日程表上,Makers 每周必须要有至少 6 个不间断的 3 小时时间段,这样才能在不加班的情况下真正做出东西。

AWS:Amazon 产品开发方法论 Working Backwards 的案例

所谓 Working Backwards:开发新产品前先写发布产品的新闻稿,迫使自己想明白值不值得做这个产品。本文以 2006 年上线 AWS 的 S3 新闻稿为例,10 年来始终如一。

当年这个新闻稿在交给 Jeff Bezos 审阅前已修改过 31 个版本。搭配阅读以前推荐过的先写发布产品的新闻稿,再开发产品。

The commoditisation of the coder (archive)

软件开发可以在外包工厂里流水线作业?程序员已经是无差异商品?本文主要是写给什么都不缺就缺程序员的“管理者”看的。一分钱一分货,靠增加人手来赶进度是不可行的。

软件不是像做看得见摸得着的东西(如啤酒、雨伞)那样,有“做完”、“完工”的时候。“交货”的那一刻,只是软件生命周期的开始,以后的维护成本才是大头。贪便宜省开发成本的结果往往是极其高昂的后续维护成本。

Hamburger menu 的替代方案

手机屏幕小,导航菜单没法都显示出来;几年前一度流行的 Hamburger menu 现在被广泛弃用了,因为隐藏太深,用户不知道后面还有按钮。本文列出了几种常见替代方案。

可以搭配以前推荐过的 The Hamburger Menu Doesn't Work 来阅读。

2016/11/13 第 757 期

为何我整个十月份都没自愿贡献开源代码 (archive)

作者是 Python 的核心开发人员,从 2002 年开始,十四年来自愿用业余时间为 Python 语言添砖加瓦。但这种活雷锋行为并没有得到开发者们的理解,很多人甚至用命令的口吻要求活雷锋们再苦再累也得免费为自己劳动。

很多人会命令开源项目维护者赶紧修复这个或那个 bug、逼迫维护者们要满足自己不合理的功能请求、稍有不顺就要对开源项目维护者们进行人身攻击。要求别人为自己免费劳动,就是在剥夺别人的时间,就是谋财害命啊。作者休息一个月,在本文中思考了开源社区人与人的协作关系、基本礼貌等问题。

在经营湾区日报这两年多来:要 android app、要支持 kindle、要支持黑莓、要翻译全文、别分享那些我打不开的链接、是中国人就得看中文别整崇洋媚外的东西、开源整个网站、app 不要收费、别放广告、网速慢、手机慢、没钱、不懂英文。让我很长见识也很锻炼心理素质~

风投们该如何收拾送餐类创业的残局 (account suspended)

人们愿意花 $30 叫 Uber,但很少人愿意花 $30 叫外卖。文中提到的送餐公司为了赚 $12,得先花 $32。Webvan 是上一轮互联网泡沫失败的典型,它的三个投资人也是送餐准独角兽 DoorDash 的投资人。

分析 400 万个 Facebook 上关于川普与希拉里的帖子

本文做的这个分析,过去三个月里关于川普的新闻报道是希拉里的 2 倍,川普的页面里的帖子的平均评论数比希拉里的多 57%。与娱乐圈里的人一样,没新闻比坏新闻更糟糕。

社交媒体的算法会把你喜欢看的东西推给你;支持希拉里的人会看到更多关于希拉里的正面报道,所以很容易产生希拉里胜券在握的假象。

破窗效应在产品设计与开发中的应用

每次项目进展不顺利的时候,或者整个团队对项目很不爽的时候,拿出一两天时间清理一些看似无关紧要的小事,如重构代码、美化代码,让开发环境更整洁,大家的斗志可能就会回来了。

以前有介绍过破窗效应:环境中的不良现象如果被放任存在(如社区中某些建筑的窗户破了而没被修复),就会诱使人们仿效(人们就认为破窗户是正常的,就会破坏更多窗户),甚至变本加厉。修复破窗、让环境变好,人们就会减少模仿不良行为。

不舒服的 1 on 1 的艺术 (archive)

领导跟下属进行每周一次的关起门来的会议,俗称 1 on 1。

好的 1 on 1 是要让双方都感到不舒服的:

  1. 公开场合能讲的话没必要在 1 on 1 讲;
  2. 每次 1 on 1 至少要讲一件不太舒服的事,如批评与自我批评。

2016/11/14 第 758 期

一小时内加密你的数字生活 (archive)

我们的数字生活其实是半公开的;政府告诉我们,如果你没做错事,那就没啥可担心的;但还有其他人觊觎着我们的数据。本文讲了一些网络安全小技能,(自以为)懂电脑的和不太懂电脑的都应该看看。

最新的 iPhone 的用户普遍都用指纹解锁;如果你被捕了、被控制了,你的手指是可以用来解锁的(现实与电影都出现过的桥段);本文建议:在被捕那一刹那,尽快把手机关机;再开机的话指纹是解锁不了的,需要输入密码。或者干脆就别用指纹解锁。

算法时代的媒体

本次美国大选出现这样的结果,很多人都在谴责 Facebook 上假消息满天飞。如今人们接受什么消息都是算法决定的,Newsfeed 排序算法、搜索结果排序算法。从信息真实可靠性来说,谷歌做得比较好。

这句话说得好:“The essence of algorithm design is not to eliminate all error, but to make results robust in the face of error.”

本文结尾附上了 Google 的前 head of spam 的话,很有道理:Facebook 的目标是让用户尽量留在平台上,所谓的 engagement,所以他们做得一切事情就是投用户所好,即使是不实消息,但用户爱看,那就给他们看呗。Google 长期以来与虚假消息、垃圾网站做斗争,当年弄出了 Panda 排序算法大大改进了搜索结果的质量,尽管这让广告收入大打折扣,看上去相当伟光正啊

尖叫的架构 (archive)

这是 Uncle Bob 很经典的一篇文章。好的架构是按 use case 来组织代码的,扫一眼代码目录结构,就知道它“尖叫”着告诉你“我是博客网站、或者我是视频播放器”,而非实现细节的“我是 Rails 程序、我是 Django 程序”。

例子:按产品功能组织代码,顶级目录名则是诸如 playlist、player 等,一眼就知道有哪些功能,“尖叫”着产品功能的名字;若按具体实现的技术组织代码,则 views、models、controllers 等是顶级目录,“尖叫”着具体实现的技术的名字,既不好测试相应产品功能以后又不容易替换掉这些技术(framework)。

Build a product that fits your runway

创业早期在做第一个产品时要尽量砍需求,毕竟资源有限;从现有复杂的产品里抽取一个功能来做,做到极致;尽管很多投资人或业内名人都会不屑地说:你只做功能,而不是产品,没前(钱)途。

Steve Jobs 也曾经说过 Dropbox 只是一个功能、不配做一个产品这样的话。

从哪里去找产品(功能)的 idea?操作系统上自带的程序是一个创业 idea、Unix 命令很容易成为 SaaS 创业 idea、Craigslist 上的每个子论坛也都是 Uber for X 的 idea。

Runway 这个词真是绝了,原意是飞机跑道的意思。创业圈总喜欢说 runway,指银行里的钱还能撑多长时间;就像飞机跑道一样,飞机得在触及跑道尽头以前起飞;创业公司也得在 runway 完了前起飞:)

设计更好的按钮 (archive)

软件(网站、app、桌面程序)UI 里的按钮设计的最佳实践。要把按钮做得像按钮,文字说明要说人话,重要的按钮放在显眼的位置,符合各平台的设计规范等。

2016/11/15 第 759 期

让我感到羞耻的代码 (archive)

作者年轻时为一药厂做了个网站,误导网站访问者去买药厂的药;结果有少女吃了后抑郁而自杀,他妹妹也吃了后来被他及时制止。这么多年过去了,他很愧疚。代码越来越强大,便利了生活,但也可能危害生命;程序员往往是不道德的商业行为的最后一道屏障(代码实现者),要对得起良心。

Google 的关于搜索结果质量的评分的官方指南里特别提到一类网页 You Money or Your Life(简称 YMYL),这类 YMYL 网页在搜索质量上的把关要非常严格,因为弄不好是谋财害命的(比如卖假药、虚假医疗广告、盗刷信用卡骗钱等)。

辞职一年之后 (archive)

作者原来在 Yelp 上班,日益感到为别人打工之无趣;去年 28 岁,辞职;这一年来在家写博客、画画、编程、写游戏,各种收入总和(包括网友每月累计捐款近 $800)比上班时要少,但更快乐了。

他辞职时的经济条件其实还行,在 Yelp 拿的股票让他买了房(要还房贷就是了),另一半有点收入。

为何 30 岁后朋友们开始消失了 (archive)

每年失去的朋友比交到的朋友要多。以前亲密的好友们现在多存在于虚拟世界里,靠社交网络维持联系,感情日益淡了;结婚、生子,人生角色转换后,交的朋友再也没以前的那么亲密了。

Yammer 的 iOS app 代码升级到 Swift 3 的经验

2 个工程师结对编程,用了两星期,靠肉眼与做笔记、纯手工将 180 个 Swift 2.3 代码文件升级到 3.0。要不赶紧升级,Swift 4.0 出来后就更难办了!

互联网产品营销与管理的五个指标:AARRR (archive)

Acquisition(用户从何而来)、Activation(会一见钟情吗)、Retention(有人再回来用)、Referral(会推荐朋友用吗)、Revenue(可从哪些用户行为上赚钱),缩写为 AARRR。

2016/11/16 第 760 期

Stack Overflow 是如何赚钱的 (archive)

来自 Stack Overflow 的工程师言辞恳切的博文。赚钱的途径有品牌展示广告、招聘广告、SO Enterprise 等。文章最后讲述他们发邮件给用户的道德准则,真是一家良心公司啊。

文章开头回答了“为什么 Stack Overflow 需要赚钱”的问题:赚钱不仅是为了公司可持续发展地运营下去,也是为了做更好的产品来帮助开发者们,赚钱越多,帮助到的人就越多、为开发者社区创造的价值就越大。

我想起也曾经有读者发信过来问:“为什么你需要赚钱、为什么你不能无私奉献靠情怀与毅力做一辈子湾区日报”,hmm,我当然也希望我不需要钱就能很好地生活在这个世界上啊,但现实是我得养家糊口啊,抱歉啊~

关于建立个人品牌的建议

所谓的 personal branding:热衷于在社交网络上装逼、修图、晒这个晒那个,在网上造成一种自己名声在外的假象。这些都没用,真正有用的只有 Do great work. Treat people well.

ICQ 二十周年 (archive)

20 年前的今天(1996 年),四个以色列高中生上线了 ICQ 的第一个版本。1998 年 ICQ 以 $4 亿卖给 AOL。本文描述了 20 年来 ICQ 各个版本的功能演化;现代 ICQ 与其他聊天软件没啥区别了,能视频直播,也有酷炫深度学习的滤镜。

顺便提一句,1999 年,遥远的东方也出现了一个神奇的聊天工具,叫 OICQ……

通过 A /B 测试延长婴儿的睡眠时间

作者在 Amazon 旗下的有声书公司 Audible 上班。他将互联网公司擅长使用的 A/B 测试思想用在了自己 10 周大的双胞胎身上,要改进的关键指标是睡眠时间,变量包括睡前喂食量、醒着的时间等。

也得生到双胞胎才能这么 A/B 测试啊……

Oncall 的时候接到警报该怎么应对 (archive)

文章分享了他们 oncall 时候接到警报后的三个动作:Communicate,及时分享警报的情况给团队,发邮件或在群聊工具上发出;Learn,搜集尽可能多得信息,log、metrics、各种有助于诊断与恢复系统的蛛丝马迹;Act,行动起来解决问题,如有必要,安排相关人员开会讨论如何在未来避免这种事故。

互联网公司里的工程师一般都要轮班 oncall,24 小时任何时候系统出故障了都得第一时间处理。公开、透明、诚实地沟通是很关键的;如果是人为犯错了,要对事不对人,不然以后出故障了,大家都不敢承认自己犯的错误,遮遮掩掩的,反而耽误了修复故障的时机。

2016/11/17 第 761 期

假新闻 (archive)

本次美国大选出现这样的结果,很多人指责以 Facebook 为首的社交网络的算法没有遏制假新闻而误导了选民。本文认为要是引入“权威”人类编辑,危害说不定比算法更大。

算法推荐网民看喜闻乐见的假新闻,这是 Confirmation bias,只是网民们加深了自己固以为的“错误”观点;而“权威”人类编辑要是推荐了“假新闻”,网民们会因为他们是“权威”,更坚信不疑,“权威”推一篇假新闻比算法推几十上百篇带来的危害更大。

Typography Handbook (archive)

精练地总结了网页字体选择、排版、样式的理论与实践;虽名为 handbook,但文章不长。Typography 这个词有没有一个让大家都能接受的中文翻译?

创业公司做营销的好途径:做 Side Project (archive)

做营销常用方法:写博客与做广告。但写博客贵在坚持,时间投入太大;而做广告花钱又让人嫌弃。那就做 side project 吧,免费让人用,说不定就火了。

营销往往是以自我为中心的事,嘶声力竭地吆喝,博眼球、求关注。但如果能先帮助别人,让别人见识到你的能力、欣赏你创造的价值,进而就能关注到你的其他方面(如主打的产品)。将欲取之必先予之。

Inversion of Control (archive)

Library 提供一堆的函数,你能自由地安排函数调用的顺序;Framework 具有扩展性,它让你提供回调函数,你没法控制函数调用的顺序,这就是所谓的 inversion of control。

Inversion of Control 又名 Hollywood Principle,这跟好莱坞有什么关系?因为在好莱坞,"Don't call us, we'll call you”— 好冷。

创业公司能否融资成功是不可预测的 (archive)

将 Parametric insurance 与投资创业公司做对比。Parametric insurance 根据已发生的客观事件(如地震等级)进行理赔,而创业公司投资的是未来,未来不可预测,创业公司能否融到钱也不可预测。

"Investing in startups isn't about what has happened. Investing in startups is about what will happen. Investors are trying to find small companies that will become multibillion dollar ones. They use past performance as an indication of the quality of the founders and the idea, but no metric is a perfect predictor of the future."

2016/11/18 第 762 期

伊戈达拉学做科技圈投资人

他加入金州勇士队还有个目的:在旧金山湾区,遍地都是可以投资的科技公司。他看不惯一些 NBA 球员只会投资什么理发店、音乐公司之类的。他三年来投资了 15 家公司。

NBA 现役或退役球星投资创业公司的很多,还记得与打篮球一样刻苦执着的投资人 Kobe Bryant 吗?

Don't make it perfect, make it work and refine (archive)

这个标题说明了一切。现在代码都是版本控制的,第一个 commit 不用完美,大不了 revert 就行了;关键是不断迭代、改进。代码质量不是最初的那个 commit 决定的,而是你何时停止迭代决定的。

数学差的人想成为程序员,是不是在浪费时间

“要学计算机的话,数学得学得很好”,这个谣言是从指导填写高考志愿的语文老师那里传出来的吗?可能我做的事情没啥技术含量吧,我觉得只要会加减乘除,甚至只要会数数,编程一点障碍都没有

读研究生的时候呆过的实验室擅长灌水(又名“在国际顶级学术会议发论文”),许多看上去玄而又玄的公式其实都是数数(counting)。

Taco Bell Programming (archive)

Taco Bell 里的快餐就只有少数几种原料,不同组合搭配就能一年卖 $20 亿。编程的最高境界是不编程,用 Unix 命令行工具排列组合足以解决工作中许多“大数据”问题。

其实,“大数据”对于大多数公司来说根本就不存在。活用 xargs,其乐无穷。

如何在没时间的情况下创业

游戏进入困难模式:小孩几个月大,老公查出癌症,她在创业。拒绝各种“出来喝咖啡”的请求;每周将要做的事划分成十几分钟到几小时不等的小任务;招聘很重要;不要追求事事做到完美。

文中提到,当有朋友说“我能怎么帮你”的时候,你一定要提出 actionable 的事让他们来帮。比如你让朋友们“给我做的 app 提意见”,一般都不会有下文;你可以具体一点:“到这个链接下载 app,并留下使用的痕迹(在 app 里发帖之类的)”。

2016/11/19 第 763 期

采访假新闻写手:我把川普送进了白宫 (archive)

他写假新闻是为了赚钱,每月光靠 AdSense 能赚 $1 万。其实他是讨厌川普的,他以为他写的假新闻能戏弄川普支持者们,哪知道人们往往不加判断就胡乱转载、还信以为真。

Uber app 的新设计 (archive)

Uber 的 Design Director 对 Uber app 新设计的解释。极简化的设计背后是无数的用户调查、prototype、迭代。他们那么大一个公司,当然有对各个 UI 设计元素进行标准化。

The Abundance Economy (deleted)

网站用户数达到一定规模后,只要少数用户愿意掏钱,网站就能运营下去。例子:Craigslist 只有 0.1% 的用户掏钱,年赚 $4 亿;Wikipedia 的运营依赖于少数访客的捐款。

世界第二大国际象棋对战网站 lichess 每月运营成本才几百刀、只有一个开发者业余时间做,靠少数用户捐款捐款维持运营。

上市了的 SaaS 公司每年从每个用户身上收多少钱

由于研究的是上市公司,所以公司年收入与用户数都很容易查到;简单除一下可以知道个大概。从每年每个用户收费 $100 多、到 $100 多万不等。可以用户很多,每人收很少的钱;也可以用户很少,每人收很多的钱。

用户的电脑技能 (archive)

很多 makers 在看到用户对自己做的软件产品的反馈的时候,都要骂用户怎么这么蠢、这么直白的东西都操作不好。实际上,大部分用户的电脑技能远远低于各位 makers。

用户与你太不像了,没你读那么多书,电脑技能没你厉害,没有你那么聪明,没有你在这个界面上花的时间多,他们家里的网速也远没有你办公室里的网速快,他们当然用不惯你在办公室里设计的东西了。

2016/11/20 第 764 期

最有效的学习方法:费曼技术 (archive)

来自诺贝尔奖获得者 Richard Feynman 的经验:新学了一个东西,用简单的语言解释给小孩听,如果不能解释清楚,回头再学再简化再解释,如此反复。

"There are two types of knowledge and most of us focus on the wrong one. The first type of knowledge focuses on knowing the name of something. The second focuses on knowing something. These are not the same thing."

弃用 Node.js 而改用 Golang (archive)

这是她在 Digg 做后台工程师的时候写的(现在 Datadog 工作)。Node.js 单线程的 event loop 很容易堆积太多的 callback 拖垮整个进程,他们某个 Node 写的微服务每隔一段时间都得手动重启一次。

文中的 Flame Graph 如何生成的?以前推荐的 Netflix 用 Flame graph 调试 Node.js 性能里有介绍。

想在另一个城市找工作,就得先搬去那个城市

主要针对高管的岗位而说的。最好的工作都是网上找不到的,搬到那个城市,参加各种聚会、结交各种人。同样一份工作,两个资历差不多的,一个在外地、一个在本地,当然先给本地的。

Snap 是值 $250 亿 的

Snapchat 的母公司 Snap 将在 2017 年上市,本文将 Snapchat 与各大社交网络进行对比,尤其是与 Pinterest 进行对比,得出结论,Snap 是完全值这个价的。

TL;DR 的一代人

TL;DR = Too Long; Didn’t Read. 太长了,没法读下去。

我们对世界的认知被标题党与假新闻给控制了,并且失去了读长文章的能力,变得容易被忽悠、容易不加思考就二次传播假新闻。

文章建议:

  1. 看到标题党或劲爆新闻的时候,最好先简单地用搜索引擎做一下调查,往往就能识别假新闻;
  2. 多读书,多读长文,我知道这很难,大家都在抱怨没时间。

2016/11/21 第 765 期

Immutable Infrastructure 让系统更安全 (archive)

来自 Docker 公司的安全专家的博文,展示了使用 container 在系统安全上的优势:使用 - - read-only 将 container 的文件系统变成只读,可以有效阻止一大类安全漏洞。

采访 Wait But Why 创始人 Tim Urban (archive)

这是来自 Pocket 的营销文章,但采访的内容很有意思。Wait But Why 是非常高质量的博客,他每次选题材的时候都假定自己就是读者,然后在写博文前花至少一周甚至超过一个月做研究该题材。

在这个采访中,他也透露了他获得灵感的一些方式,比如他起床的时候会打开 iOS 的 News app 随便读个 45 分钟;在采访中他反复提到阅读品味,人是有阅读品味的,他希望他的读者与他的阅读品味接近(当然,这也是我运营湾区日报时的假设)。他甚至开玩笑说希望犯重罪后被抓去关在监狱禁闭室里一年,只要给他 iPad 和能上网,他想尽情阅读、看电影!

编程改变了我 (archive)

作者青春期的时候叛逆、牛脾气、固执己见;读大学后开始学编程,编程语言是与电脑对话的语言,电脑很傻,你叫他做什么他就做什么;你的代码不 work 的唯一原因是你这个人想错了,要让自己接受“我错了”这个事实是很难的,但慢慢地他脾气变好了:)

因为对电脑大吼大叫、拒绝承认是你自己的错误,这是没用的;那就只能承认是自己的错误了,乖乖地 debug;整个人的性格、脾气就变好了起来。

反垃圾邮件技术与 end-to-end 加密的讨论 (archive)

他曾在 Gmail 反垃圾邮件组工作了四年半。在这封邮件里,他简述了 Gmail 反垃圾邮件技术的进化史,谈了如果采用 end-to-end 加密后完全依赖客户端来识别垃圾邮件的难处,以及其他通讯协议如短信、聊天 app 的反垃圾消息技术的现状。

电子邮件是古老的、分布式的系统,不同邮箱分属于不同机构(gmail、yahoo 邮箱、各大学邮箱),只能设计“民主”的系统来识别垃圾邮件,在各个发信机构、各邮箱地址维持一个 reputation system;而聊天 app 就容易得多了,属于中央集权,有足够的信息来识别垃圾消息,还随时可以砍用户账号。

Vine insiders: Twitter never liked what Vine became

采访了两个 Vine 前员工以及一个 Vine 重度用户。Twitter 管理层想把 Vine 搞成分享比较艺术的视频的地方,不料本届用户不听话,净上传搞笑视频了。

“their vision was art, but it became personal and entertainment, and it was an uphill battle to fight for the creators and the comedians …… You definitely didn’t feel a lot of support from above in that direction.”

成人网站 Pornhub 还开玩笑地说想收购 Vine。

文中贴了一条 tweet,上面有国外网红在各个社交渠道做广告的价位表;如果有 5 万到 50 万粉丝的话,发一个贴,在 YouTube 上收 $2500,在 Instagram 或 Snapchat 上收 $1000,在 Twitter 上收 $400。

2016/11/22 第 766 期

用户界面之争 (archive)

“Uber 是最大的出租车公司,但并不拥有任何车;FB 是最大的媒体公司,但不自己生产内容;阿里巴巴是最大的零售商,但没库存;Airbnb 是最大的旅馆,但不拥有房产”。本文就是这被无数人转载了的话的出处。

互联网成就了这些公司,让他们有能力提供一层看似非常简单的用户界面,大规模地连接供需双方。

为什么风投有时会敦促创业公司加速烧钱 (archive)

风投是用别人的钱来做投资的,所以他们也有自己的投资人;风投赚的钱主要来自帮别人投资而收的管理费,他们自己也要不断融资。为了让自己的投资成绩单漂亮点,他们就拔苗助长,鼓励创业公司烧钱买增长。

创业公司失败了也没事,只要他们能继续“帮别人投资”,就能继续收管理费。那么,“别人”是谁?风投的钱是哪来的?大学校友会基金,公司的非营利性机构,政府或公司的养老金,富人家庭的信托基金,保险公司等。这些机构被叫做 Limited Partners,简称 LP。

设计手机 App 的最佳实践 (archive)

每个屏幕最多只做一件事;内容就是 UI,如地图 app 全屏就是地图;优化单手操作,尤其是把重要的按钮放在拇指够得着的地方;让 app 看上去很快,比如抢跑(抢先在后台上传、下载数据)。

这篇文章的每条建议湾区日报以前都有推荐过相关的文章(如拇指区域、如何让用户误以为你的 app 加载速度很快 ),可以把本文当做一篇总结吧。

替换掉 Twitter (archive)

用 WordPress + RSS 搭建一个快糙猛的社交网络,可以发布消息、可以订阅、可以评论,最好还能根据你的兴趣推荐新账号给你关注。难道就是已故的 Google Reader?

其实 WordPress 很万金油的,玩得好的话能做 CMS、论坛、Product Hunt、社交网络等等。可以到 Bluehost 上搭一个 WordPress 玩玩,一个月才一杯普通咖啡的钱($3.95)。

比 To-Do lists 更有效的计划任务的手段 (archive)

那就是把要做的事都放到电子日历上(Google Calendar 之类的)。用 To-Do lists 做计划,没有时间观念,多数事情加了而没去做;用日历的话,要加一个任务就稍微繁琐点,加之前能三思一下,而且能让你意识到人的时间是有限的这个事实。

2016/11/23 第 767 期

The Myth of Invisible Design (archive)

Making something beautiful, making something easier, and making something possible. 最好的设计同时具备这三个特点。

"The best products are as visible as they need to be to make the activity better."

Webhooks 最佳实践 (archive)

越来越多的线上服务都提供 webhook:当某事件发生时,自动发 http 请求到开发者提供的 url 上,有点类似推送消息。Don’t call us, we’ll call you!

本文举了几个对 webhook 的支持做得比较好的服务为例,如 GitHub、Stripe、MailChimp、Slack 等。

湾区日报的运营中也用了不少 webhook:每天太平洋时间 2 点 MailChimp 自动发出邮件后调用我的网站的 webhook 然后自动发微博与 Twitter、读者在湾区日报网站使用 Stripe 请我喝咖啡后调用我网站的 webhook 发 Slack 消息通知我、还有微信公众号的消息自动回复也是 webhook:)

如何搞好 Meetup

选 topic、要有几个组织者、找场地、网站社交账号、线上或线下宣传、联系演讲嘉宾;当然找到赞助商也很重要,折腾这么一圈要花钱又要花时间(间接在花钱),没有赞助商的话自己也很难有动力坚持做下去。

如何提高编程技能 (archive)

三个字:Code,Code,Code。不断地写代码,一有机会就写;精通少数 1、2 个编程语言,没必要赶潮流去学很多语言;不要害怕问别人问题;专注掌握好一种 IDE 就够了。

本文的作者正是 Two Scoops of Django 的作者,讲 Django 最佳实践的书籍,是目前我唯一放在办公桌上的纸介质书:)

1 万小时定律并不是对每种技能都适用,但对编程来说是很合理的;不断练习、不断写代码是很有必要的。“某某编程语言 7 天从入门到精通”?做梦吧!

Slack 创始人分享他们上线 Slack 的策略 (archive)

大家都知道 Facebook 早年的“让用户 10 天内加至少 7 个朋友”的关键指标;

Slack 也有这么一个关键指标:让团队发 2000 条信息;

凡是能发 2000 条信息的,93% 概率会一直将 Slack 用下去。

这种简单易懂的关键指标很重要,对统一公司所有员工的思想至关重要,大家就能想方设法去为这个明确的目标去奋斗。

2016/11/24 第 768 期

Sidekiq:月赚 $8 万的基于开源项目的一个人的公司 (archive)

Ruby 程序员应该都知道 sidekiq。

免费付出劳动进行开源项目的开发与维护是很难持久的,所以作者早就决定从他的开源项目上面赚钱。

2012 年开始做,18 个月后每月能赚到 $1 万;

2014 年辞职,全职从事这个开源项目,并经营这个一个人的公司。

到今年年底,他能从这个项目累计赚 $155 万。

预计明年一年就能赚 $100 万了。

如果再来一次他会怎么做?

  1. 会尽早进行做 email newsletter,用邮件通知用户(或潜在用户)比用 Twitter 有效得多;
  2. 尽早进行定期的付费订阅,而不是一次性收费然后终身技术支持。

用 debugging 角色扮演来电话面试工程师

工程师时间是很宝贵的,一小时至少 $50、60;尽量要在电话面试时刷掉不合格的人,不然 onsite 了一下子就得耗费 5、6 小时工程师时间来面试。本文提出的面试题不错:模拟真实工作的 debug 任务,考察直觉、查错能力、知识广度、深度等。

与比你自己都对你更严格要求的人在一起

鸡汤文一篇,讲了类似“孟母三迁”、“You are the average of the five people you spend the most time with.”的道理。

所以你常在一起玩或一起共事的人都是什么样的人,你大概也就是那样的人了,很难变得更好,但也差不到哪去。

一条链接就是一个承诺

除了社交网络上广泛流传的标题党外,很多网站上的链接或按钮的文字描述与实际打开的页面完全不符合,用户们一次、两次上当后就对网站失去了信任,失去了信任就留不住用户、赚不到钱了。

使用 Django 达到每个月 80 亿的 page views(2013)

一听到 Django 很多人就皱眉头,这么慢的框架,怎么 scalable?Disqus 的答案是:优化开发速度;运行时的性能问题多是 I/O 慢,而非编程框架;他们使用 Varnish 做缓存。

今年正好是 Varnish 十周年。湾区日报网站的评论部分就是用 Disqus 弄的;而湾区日报的整个后台都是 Django 写的,每月 $10 的服务器的 cpu 使用率一直在 3% 以下,快糙猛地用到 2020 年(甚至 2025 年)都没问题。

2016/11/25 第 769 期

Basecamp 这家公司是如何做项目的 (archive)

每六周为一个开发周期;每两人或三人为一个开发团队,每个团队有一个设计师,没有产品经理。在六周的开发周期里,每个团队要嘛只做一个大功能,要嘛做一堆小改进。

若一个功能需要超过六周做完,那这个功能的 scope 太大了,需要简化简化再简化。每个开发周期结束后,在下个开发周期开始前,他们有一两周时间来修 bug、清理 tech debt、做 side project 之类的。

她的代码把人类送上了月球 (archive)

1960 年她 24 岁的时候在 MIT 做程序员,因为她要赚钱支持她丈夫在哈佛法学院读书,打算等她丈夫毕业了换她去读研究生。不料她一直工作下去,领导了阿波罗登月计划的软件开发团队。

做 SEO 很关键的一个实践是 link building,也就是你的网站的 url 出现在其他信誉好的网页里,搜索引擎排序算法给予这种外链很大的权重。本文教你如何搜到其他提到你网站的网页,如何发信让他们放上你网站的链接。

别自建数据中心 (archive)

作者以过来人的经历告诉大家自建数据中心有各种坑,除非贵公司需要用到分布在不同地理位置的 20 多万台服务器,或者贵公司所属的行业需要特殊技术。

很多人在算成本的时候只考虑了看得见摸得着的东西的成本(如硬件的价格),而没有考虑人工成本;纸面上看,自建数据中心在硬件上的开销或许比用 cloud 要便宜一些,但宝贵的工程师时间(换算成工资)都搭在了自己用胶水浆糊做的简易版的数据中心上,实在不值得。

巧用 microinteractions

“microinteractions”这个词很好,“微互动”,在 UX 设计里引入小小的动画效果,对用户操作进行反馈、及时地逗用户开心、给用户带来惊喜。

2016/11/26 第 770 期

硬盘简史 (archive)

2016 年是硬盘诞生 60 周年,一甲子了。1956 年 IBM 推出第一个硬盘产品,容量少于 5 MB,每月租金 $3200(换成现在的钱是 $28000)。这里的硬盘是特指机械硬盘(HDD),而非 SSD。

尽管 SSD 是潮流,但机械硬盘在短时间内还不会消失;连磁带都仍被大量使用呢。

风投从 enterprise-facing 的公司赚的钱比 consumer-facing 的要多

分析了 1995 年以来的 exits(上市或被收购),enterprise-facing 的公司给投资人带来回报 $8250 亿,其中最大的五家公司总和 $900 亿;而 consumer-facing 的则是 $5820 亿,最大五家公司总和 $2110 亿。

Enterprise-facing 的公司旱涝保收,而 consumer-facing 的贫富差距大。

Incremental Swift

Etsy 的 iOS app 有 28 万行 Obj-C 代码、2500 个源文件,他们循序渐进地引入 Swift。先花了 3、4 个月用 Swift 写测试,然后用 Swift 写真的 class 但要 A/B 测试一段时间确保代码稳定。

董事会如何挑选 CEO (archive)

明确公司此刻急需的 CEO 应有的少数几个特质,侧重考察候选人的强项是否匹配,没必要挑选完美的没有瑕疵的人(实际上这样的人也不存在)。举了 IBM、Apple 等公司在生死存亡关头挑选 CEO 的例子。

当年作者受 Apple 董事会的委托去咨询 Dell 是否想收购 Apple,得到的答复是坚定的 no;Michael Dell 甚至公开场合呼吁 Apple 趁早关门然后把钱还给股东。不久后,Steve Jobs 回归 Apple,以后的事大家都知道了。

Your Best Work Will Be Invisible (deleted)

讲了一个类似“台上三分钟,台下三年功”的道理。好的 UI 设计往往很简洁,外行看起来似乎很简单、任何懂电脑操作的都能做;但好的设计背后的繁琐工作是外人看不见的:用户调查、与同事争辩、无数候选版本的对比、无数的迭代。

“The actual pixels behind a design are only as good as the reasoning behind them.”

“Sometimes magic is just someone spending more time on something than anyone else might reasonably expect.”

2016/11/27 第 771 期

响应式的电子邮件设计 (archive)

电子邮件仍是重要的沟通、营销手段。超过一半的人使用手机读邮件。所以漂亮的、响应式的、HTML 邮件设计是至关重要的。本文讲解了响应式邮件设计的一些基本手段。邮件的设计比网页设计要困难得多。

世界上有许许多多不同的千奇百怪的邮件客户端,它们渲染 HTML 的方式各有不同。邮件里的 HTML 不能用 javascript,只能 inline style,排版布局得用 <table>,邮件 HTML 的代码看起来像是 上个世纪用 DreamWeaver、FrontPage 之类的工具生成的一样。

如果你从没设计、开发过那种发给数以百万、千万用户的邮件,最好看一下此文,然后对这些邮件工程师、设计师们表达崇高的敬意:)即使你是 web 工程师,你可能也从没想过你每天收到的那些邮件是如何做出来的吧?

当然,比起邮件设计,邮件的 deliverability 是令人头疼的问题。

假新闻制造厂:这一切全是为了赚钱 (archive)

批量做网站、到处复制粘贴拼凑哗众取宠的新闻;支持希拉里的新闻没啥人看,但支持川普的就很容易爆红,所以全力做川普相关的报道。没啥政治立场,纯粹为了赚广告费。对了,最近还有哪个国家在选总统吗?

代码复用的危险境地

如果公司内有几百上千个 microservices 都共享了某些库,升级这些库时,是否几百上千个服务都得同时升级、不然会有奇怪的 bug?microservice 带来的独立开发、独立运维的好处是不是就没了?

每个 microservice 最好真的是“micro”,很少的代码、很少的依赖。

作为 manager,我是如何与团队成员分享信息的

他在 Netflix 做 manager,一周下来开了很多会,他需要把了解到的各种相关信息传达给手下的工程师们。他有一个 Google Docs 文档,每周五在上面写本周了解到的项目、产品、招聘情况等各种信息。

团队的成员在周一上班第一件事就是看他写的这个文档,然后可以在上面直接评论。文档是唯一能 scalable 的、异步的沟通手段。如果是通过开会的形式传达这些信息,那太浪费工程师时间了,开一次会相当于得花公司至少几百美金(平均时薪 x 时间 x 人数)。

设计师需要多写作

继设计师需要学编程、学营销以及工程师需要多写作后,来一篇“设计师需要写作”的文章:)写作能帮你赚钱(出书)、建立读者群体(博客)、带来各种工作机会。Makers 都好忙啊~

其实还有一点文中没提到:坚持写作,提高写作水平、表达能力、遣词造句的能力;这对设计师很重要。在创业公司里,设计师常常还要兼做文案工作,或者针对 PM 或者其他人提出的文案给出修改意见(可能文字太长,而 UI 空间不够,放不下)。

2016/11/28 第 772 期

做自己喜欢的事并且赚钱

这是夫妻二人从一个 side project 开始做到成为两人现在全职的事业的故事,没有融资,小生意,自给自足。把自己喜欢做的事变成事业,并能赚钱养家糊口,真是不错。

采访 John Lilly (archive)

他是 Mozilla 前 CEO、现在是 Greylock 的 partner。学生时代领导能力的培养、父亲的影响、作为风投你如何评估创业公司 CEO 的能力、尤其是给大学毕业生的建议:多与 makers 在一起,未来是 makers 的。

"…… stay close to professions that create and make things, and stay away from derivative professions like finance. I think makers increasingly have the power in our society."

检测 YouTube 视频是否违反版权的方法

只是酒后胡言,尚未实现:用户有虚拟货币,可以买某个视频的股份;低价买入浏览量低的视频,等浏览量高了就能高价卖出;但某视频若违反版权,股价立即为 0;若用户一眼识别出某视频违反版权,就不会去买股份。

这相当于投票机制,股份卖不出的视频则很可能是违反版权,YouTube 方面最后确认一下就能删视频了。这种方式鼓励用户参与,发动人民群众;不然视频那么多,YouTube 方面忙不过来。文章建议 Facebook 检测假新闻也可以用类似这种机制。

拉扯一支士气高昂的工程团队 (archive)

三个要素:Money,别玩虚的,给足工资,正常人都爱钱;Purpose,让工程师一起做产品决策;Respect,像对待成年人一样对待工程师,尊敬他们,把他们当合伙人,而不是把他们当小孩、哄他们开心、让他们听话。

如何向你的数据科学家提出好问题

向公司里的数据科学家提问,然后他们通过数据来解答。怎么提问、问什么问题?你当然不能问他们非常模糊的问题,他们又不是算命先生;最好是问那种具体且有 actionable 的问题,并且与他们一起确认一下需要哪些数据、如何获得数据、数据是否已经结构化等事情。

2016/11/29 第 773 期

Silicon Valley Has an Empathy Vacuum (archive)

从本次美国大选谈起,在硅谷科技公司工作的有资格投票的人普遍仇视川普,不理解怎么美国其他地方的人会做出这么蠢的决定。硅谷科技公司的员工都被宠坏了,缺乏同理心。

硅谷酷炫科技公司工作的人不理解为什么世界上会有公司不提供免费午餐和晚饭,不理解为什么在很多地方饮料和零食竟然不是免费的,不理解年薪低于 $10 万的人怎么能生存下去,不理解为什么会有人会跟自己的想法不同。

Content-First Prototyping (archive)

不用后端编程的快速 prototype 的方法:用 Excel 文件做数据库 /CMS,当 Excel 文件保存之后,Gulp 会生成 json,然后 Jekyll 将 json 渲染并生成静态页面;拿着这堆静态页面就能进行用户测试了。

要更新数据?在 Excel 文件里改数据,然后点保存,html 页面自动生成。具体怎么实现的?请看这个 GitHub repo。

从卖冰激凌到创办 ZeroCater (archive)

ZeroCater 创始人 CEO 的励志自述:21 岁时,没学位、只有读了一堆 Paul Graham 的文章以及一腔创业热血只身来到旧金山湾区,身无分文,挨家挨户敲门找工作;在冰激凌店工作,然后去 Justin.tv 打杂。

在 Justin.tv 工作的时候,为了敦促自己早日辞职创业,把密码改成“SixMonthsQuit”,每天输入几次以便提醒自己;然后辞职后的创业 idea 是为其他公司订餐;没有自动化,500 列的电子表格纯手工快糙猛地操作了一年后,说服了个程序员来做技术合伙人,然后加入 YC。文章最后颇为煽情,在自己困难的时候,想到了曾经同样落难的科技圈名人们,他们的伟大事迹激励了自己:)

把车卖了,出行全靠 Uber 与 Zipcar

他住在西雅图市区,去年把车卖了后,全靠 Uber 或偶尔用 Zipcar 租车,一年省 $4000。省去了停车费、车保险、各种养车花费;也省下了大量找停车位的时间。这种生活方式当然不适合每个人,未婚 20 多岁住城里的年轻人倒是可以试一试。

以前有分享过一篇 megan quinn 写的“我没车,我 Uber”,是旧金山城里的体验:旧金山市区养车的费用($10281),而坐 Uber 一年的费用($4655.79),比在西雅图省更多。对了,据说 megan quinn 就是 Silicon Valley 里的女风投 Monica 的原型:)

1000 个真粉丝的真实案例 (archive)

艺术家或各种 makers 只需要 1000 个真粉丝愿意掏钱,就能不为生计发愁专心创作。这是童话故事还是事实?作者在他那篇著名的“1000 个真粉丝”博文发表后,有真实的、靠 1000 真粉丝生活并创作的音乐人来信。

2016/11/30 第 774 期

Jeff Bezos:每天保证 8 小时的睡眠

Amazon CEO 关于睡眠、生活、工作的看法:充足的睡眠才能让他精力充沛,做决策的质量比数量要重要得多,工作与生活必须是和谐的,快乐工作快乐生活,反之亦然。

然而,Amazon 恶劣的工作环境闻名于世:Amazon 老员工给实习生的建议,以及最近才发生的事。所以,还是要自己当老板比较好~

The Measured Worker (archive)

人在工作中的表现越来越可以被量化,这是不是造成收入不平等的一个因素?量化的工作表现能做到公平公开公正吗?量化的结果与实际情况会有很大误差吗?

从在 Kickstarter 上筹款 $14 万到负债 $4 万再到收支平衡 (archive)

他们做了个棋牌类游戏(看得见摸得着的、纸介质的,不是软件),在 Kickstarter 上筹款后做了几次错误的判断、走了些弯路,经过一年努力终于收支平衡。

做东西容易,但推销出去很难;他们进行了许多营销上的尝试,在 Facebook 上花了 $1000 做广告只买来 20 个点击量且一份也没卖出、在会议现场摆摊、华尔街日报有文章报道、免费寄给知名博客与媒体记者等。从老客户身上反复赚钱比争取新客户要容易,他们推出扩展包让老客户买,效果不错。

可持续的竞争优势来源 (archive)

商业上的成功并不是来自昙花一现的竞争优势;竞争优势得持久。弄出了一个创新的东西,然后瞬间被一堆公司成功抄袭,那也百搭了。

可持续的竞争优势有几个来源:比竞争对手学得快(高智商但不懂变通的也不行)、对用户有同理心(麦当劳高管不见得天天吃麦当劳,43% 基金经理不买自己的基金)、能讲人话做宣传、愿意多做实验多失败几次、有耐心。

“能讲人话做宣传”是很重要的,There’s a bias called“the curse of knowledge,”which is the inability to realize that other people with less experience than you have don’t see the world through the same lens you do.

The Guardian 网站全面支持 https (archive)

讲了众所周知的使用 https 的一些好处,解释了为什么拖了这么久直到最近才全面迁移到 https,以及概述了迁移的流程。先从访问量低的页面做起,发现问题解决问题;用了近 5 个月的时间完成迁移工作。

以前推荐过的全面迁移到 https 的案例:Yelp、yell.com

2016/12/01 第 775 期

Font Awesome 5 是如何成为 Kickstarter 上融资最多的软件项目的 (archive)

著名的图标字体库 Font Awesome 背后是一家 YC 公司,他们探索了不少盈利模式、进行了用户调查,得出结论:用户想要的是更多图标,所以他们进行众筹然后做更多图标。

他们花了大量钱与时间准备宣传视频。现在他们在 Kickstarter 上筹得的钱刚刚破 $100 万。硬件产品比软件产品容易众筹,因为老百姓对看得见摸得着的东西比较愿意掏钱;比如 YC 的另一个公司 Pebble 就是众筹达人,筹得的钱都是千万量级的,然而 Pebble 即将被 Fitbit 收购了。

文中还有一小节讲 trolls(键盘侠、网络暴力)的。作为 maker,如果你做的东西真的有一定影响力的话,肯定得面对网络暴力、被攻击、被喷、被无端辱骂的。“And believe it or not, trolls are a sign you’re onto something. You’ve upgraded from indifference to dislike (or outright hate). On the internet, sometimes the noise is the signal.”

Google 是如何挑战 AWS 的霸主地位的 (archive)

第一波云计算热潮中,作为产品公司的 Google 做了方便使用但不灵活的 App Engine,而作为平台的 AWS 提供不是很好用但很灵活的各种云计算服务,占得先机;现在的 Google 靠开源的 Kubernetes 与提供各种 AI 服务能否扳回一局?

这篇文章很应景,因为现在 AWS Re: Invent 正在开会,今天也宣布了一系列 Amazon AI 服务。

创业公司 CEO 的第二份工作 (archive)

第一份工作是创业初期亲力亲为地 build product,而第二份工作则是在公司员工数达到 20、30 人的时候开始把精力转移到 build company。要花大量时间招高管、确保公司上下统一思想、建设公司文化。

怎样才算能统一思想?看 SpaceX 的员工是怎么描述自己的工作的:SpaceX 的使命是殖民火星,为了殖民火星,我们必须能回收再利用火箭,这样来回火星的成本才不会太高,我的工作是做能让火箭返回并安全在地球着陆的 steering system;要知道我工作做得好不好,只需看一下我们的火箭能否在大西洋的平台上顺利着陆。

与 CDN 外链的斗争 (archive)

网页中可以很方便地外链那些放在 CDN 上的 javascript、字体、css 等资源,但也带来很多麻烦:提供 CDN 的公司可以收集你的网页的访问情况、如果 CDN 挂了或被墙你网页也加载不了。

去年有段时间湾区日报的网站外链了 Google CDN 上的东西,结果国内很多读者都无法加载湾区日报的网站。

Hype Driven Development (archive)

讲述了当前互联网行业普遍存在的现象:盲目采用各种酷炫的、不成熟的技术,决定采用什么技术的依据仅仅是看了一篇博文、或者比谁的声音大。酷炫新技术演化的几个阶段:出现、流行、狂热、失望、回归现实,然后另一个酷炫新技术出现了。

2016/12/03 第 776 期

How I Burned 10 Million Dollars So You Don’t Have To

来自 Twenty20 的创始人的很诚恳的创业经验教训总结。扩张太快、烧钱太快、裁员、愧对员工、做艰难的决定。

我们不需要 tech lead (archive)

本文认为团队里不该有 tech lead:团队成员不平等,凭啥他能 lead 而我不能;tech lead 责任太重,要被车撞了,团队还能运作吗;tech lead 做的事太多,需要不断 context switching,没一样能做好的。

作者认为应该搞“分布式”的 tech lead,团队里每个人都 lead 一个小领域,有共同的责任感。btw,最近一段时间的观察 -- 头衔通货膨胀很严重,随便一个本科毕业工作两三个月的人敢能在简历上写自己是 tech lead。

当别人“盗取”了你的绝世 idea 的时候,你该怎么办

当你看到与你类似的 idea 的时候,会立刻恨得咬牙切齿、一口断定别人抄袭?还是你会觉得“历史发展到某个阶段,同样的 idea 会在不同地方同时出现,为英雄所见略同而感到高兴”?

Product Hunt 卖的不是产品,而是社区

Product Hunt 的界面很容易被抄袭,但它所经营的高质量的社区(风投、创业者、优质 makers 等)是很难被复制的,看看每个推荐的产品底下有深度的讨论就知道了。

世界各地都有山寨 Product Hunt 的杂牌社区,界面都模仿得惟妙惟肖、甚至界面做得更漂亮、功能更多、更花俏,但没有一个能达到 Product Hunt 的高度的。本质原因?人不行。

一个 Instagram 新晋网红的自白 (archive)

他是 Bloomberg 的记者,在网红制造工厂的帮助下体验了一番如何成为 Instagram 网红的套路:租借服装、找装逼场所,专业摄影师跟拍,短时间内批量拍一堆照,每天发三张,靠机器人涨粉。

机器人涨粉是怎么回事?就是有个程序能用你的 Instagram 账号去指定的标签下给大量照片点赞、留言,然后期望那些照片的账号能够回过头来粉你;这样争取来的粉丝就不会都是僵死粉了。有了小几万粉丝后,就能接广告了,发一张照片就能收个几百刀了。

2016/12/04 第 777 期

2016 年面试亚马逊实习生工程师的经历 (archive)

这个“面试”其实是很荒谬的在线测试:安装一个 Chrome 插件,它全程开摄像头、录音,监控地理位置、你头部与眼睛的移动,记录你访问过的网站。是要被逼到多走投无路了才会去进行这样的面试?

前两天 Hacker News 为这篇文章进行了激烈的讨论:)大家的普遍反映是:WTF?!

The Disclosure Indicator (archive)

相当喜欢这种不卑不亢的 maker 与非 maker 正面交锋的文章:)他们是帮人做 app 的公司;很多客户都觉得自己的 idea 宇宙无敌好,都要他们签 NDA、把事情弄得很复杂。尽量远离这种基于不信任的合作。

逼着要签 NDA、事儿特多的客户,一般也都不会按时付钱的。

Mark Cuban 的高效工作与养生之道

上世纪互联网泡沫中真的发了财的小牛队的老板 Mark Cuban 是个有意思的人。避免开会与打电话(同步通讯),尽量靠电子邮件(异步通讯);半夜绝不看手机也不查邮件。

采访 Kickstarter 第一号员工 (archive)

如何加入 Kickstarter 的?她 08 年在纽约的第一个月与前同事去看 show,该前同事的新上司也在那,他们一起聊得不错;2 年后,前同事的新上司要创办一家叫 Kickstarter 的公司,发了邮件邀她见面,然后就加入了。

在真实的网速下进行测试 (archive)

在办公室里工作的工程师是在超快的网速下进行开发的,而真实的用户往往是在网速极慢的情况下用手机访问你做的网站 /app。本文介绍了各操作系统上限制网速的工具。

Chrome 上的 DevTools network emulator 可以很方便地模拟慢网速,测试网站访问的体验还算够用。

我也感到很内疚,因为我在做湾区日报的时候是在旧金山测试,访问超快、也没有“墙”的问题,所以我很难体会到在中国、使用手机、行走状态下或在地铁里访问湾区日报网站或 app 的用户的体验的。等我回一趟国就能比较有动力去改进了吧:)

2016/12/05 第 778 期

如何给同事批评建议 (archive)

年底了,大家又得做 performance review 了。给同事写好的、表扬形式的 review 是很容易的,但写实质性的批评建议却不容易,怕得罪人。本文给了一些正面例子与反面例子。

给同事 feedback 的 OFNR 框架:Observation(对方做了啥事)、Feeling(你对这件事的感受)、Need(你觉得怎样才是对的)、Request(对方应怎么改进)。

Estimation for Fun and Profit

可以花大量时间把后端写好、再写前端、再整合,所谓的横行切片;也可以花少量时间做一点后端、再做一点前端,让一小部分功能可以给用户把玩了,再迭代,这就是纵向切片。

纵向切片做对估计软件工程的工期比较有帮助,有一个个完整的 user story。类比吃蛋糕,多层的蛋糕:可以横行切片,一层一层吃,先吃最上层的奶油;也能纵向切片,每层都吃到一小块:)

运营 Merriam-Webster 社交账号的人是谁 (archive)

英语学习爱好者都知道 Merriam-Webster 是出版英文字典的老牌出版商。他们的 Twitter 帐号经营得不错,常常妙语连珠、与粉丝互动也很有意思,是能学到东西的社交账号。

他们的 Twitter 账号主要是一个“几乎拿到 PhD”、在大学教英语的人在管理的,但素材多是集体劳动的结果,如引用其他编辑写的文章的妙语等;这个人就是通过 Twitter 找到这份工作的:)他们对社交账号的定位不是用来营销,而是真诚地表达“who we really are”,所以能做好。

不要写 for loop (deleted)

为什么要挑战自己在代码里不写 for loop?因为这样可以迫使你去学习使用比较高级、比较地道的语法或 library。文中以 python 为例子,讲了不少大家其实在别人的代码里都见过、但自己很少用的语法。

Bring in the "Adults"

很多创业公司已开始都是有由二十出头的年轻人弄起来的,而到了某阶段,投资人不放心、一般都得引入所谓的 adult supervision,找几个读过 MBA 的中年人高管来帮忙管公司。

年轻的去创业者会想,尼玛我们自己做得不错了为啥还要引入这些老古董?创业圈是有那么一种仇视“大人”、仇视“老古董”、仇视 MBA 的情绪在;但如果要做大,最后都得引入 adult supervision 的,谷歌、fb 等都不例外,只是大部分创业公司在需要引入 adult supervision 前都已经挂了。

有个笑话:如何给一家创业公司估值?一个工程师值 $100 万,但一个 MBA 值负的 $25 万,哈。

2016/12/06 第 779 期

Python 在电影制作中的作用 (archive)

本文是为了宣传他的 Python for Maya 在线课程的,描述了在做电影特效、动画效果的 pipeline 的各主要步骤,以及 Python 在这些步骤中的用处。

超大的平板电脑来了 (archive)

桌面电脑的屏幕越大、工作效率越高?未必。使用大屏幕桌面电脑的人都有这么一个体会:鼠标哪去了?而且点击菜单得长途跋涉,很费劲。大屏幕下用触屏就快得多了。

16 Things to Get IPO Ready (archive)

来自 a16z 的文章。判断一家(科技)公司是否够得着上市的标准的 16 个方面。是不是也能用来炒股、分析某支股票该不该买?

Scarcity Principle (archive)

很多网站,尤其是电商网站,都喜欢在 UI 上造成一种“快卖光了”、“限时打折”的假象;即使时间到了后,往往打折还在继续。在避免亏钱与直接去赚钱之间,人们往往选择避免亏钱。

一家公司面试工程师的流程也反映了其工程团队的水平 (archive)

面试是双向的,公司面试求职者、求职者也挑公司。面试流程拖拖拉拉、找来不相干的人做面试官、面试官傲慢无理等,直接反映了这家公司做事的风格。

从公司的角度看,招人是很难的;很多年轻的工程师对面试人很反感,觉得写代码才是正经工作,面试、写文档、开会等都不是正经工作,对面试很抱着一种应付的态度,草草了事;如果是已经上市了几千亿市值的混吃等死的大公司那倒无所谓,但公司还很早期就以这种态度做事,这样就不好了。

2016/12/07 第 780 期

Inside (The) Information

The Information 是目前硅谷逼格比较高的付费订阅的科技新闻媒体,每年 $399 订阅,每个工作日推送 1、2 篇高质量深度文章,常有独家报道,我也是订阅用户。为何逼格高?这与创始人的背景有关。

创始人今年 33 岁,她与她老公都是哈佛毕业的,与 Mark Zuckerberg 私交很好,婚礼是小扎当伴郎的;她老公的公司被 Facebook 收购,财务自由。拿自己的钱创业,不拉风投、不放广告、不看别人脸色,但与科技圈名流私交甚好,新闻报道如何公正?

前几周我去过他们的 office;他们有 3 个工程师,工程师里的老大之前在 Google 上班,他们的 CMS 用 Ruby on Rails 写的,跑在 Google Cloud 上。他们办公室有一面墙,贴满了抢在所有主流媒体之前独家报道的文章。

三种软件自由 (archive)

自由软件的三个标准:

  1. 使用软件的人可以自由学习、研究该软件如何运作的;
  2. 使用软件的人可以修改软件的代码;
  3. 使用软件的人可以发布修改过的软件代码。

不懂得如何招聘的 VP 们

创业公司发展不错了,就要考虑招几个 VP 级别的人。怎么考察 VP 候选人?看他们擅长不擅长招聘好的人才,去考察 VP 候选人曾经亲自招来的人是否真的厉害。

代码的半生与忒修斯悖论 (archive)

忒修斯悖论(The Ship of Theseus):一艘船的零部件都被换掉了,船还是原来的那艘船吗?本文分析了知名开源项目的代码,看替换掉一半的代码需要多长时间。

代码是不断进化的,现在写的代码几年后都会被替换掉;越新的项目进化得越快、代码越容易被替换掉(如各种酷炫 JavaScript 开源库),老的项目相对稳定(如 Linux,一直在加新代码,但老代码被替换掉的几率比较小一点)。

Uber 这家公司真的能赚到钱吗 (archive)

唱衰 Uber 的分析文章一篇,赞同还是不赞同的都可以读一下,过几年真相大白后再回过头来看看是不是分析对了。Uber 规模做大了,但亏损也不见缩小多少。

2016/12/08 第 781 期

如何尽量压低你的程序员的工资 (archive)

搞笑文章一篇,当老板的要好好研究一下啊~ 随机涨工资、制造恐惧、把公司变成他们的第二个家(最好是第一个家)、监控他们的邮件与电脑使用记录、给他们非常牛逼的头衔。

VP 的头衔给完了、就给高级架构师的头衔。尽量洗脑:个人的工资多少不重要,公司的荣誉最重要。文章底下的评论也给了各位黑心老板一些不错的建议:在周末组织“Happy Coding Day/Hackathon”,无止境地通宵工作,压低时薪;告诉他们今年公司效益不好,全公司上下要齐心协力共渡难关,让他们羞于提出涨工资的龌蹉想法。

How to Ship Side Projects (archive)

本文给出了一些做 side project 的好建议。比如自己要有一套方便的做笔记的方法,一有好想法就快速记下来;不要做完美主义者,代码乱、界面难看、功能简单都没关系,只要能做下去就能继续改进的。

在 Indie Hackers 的采访里,我有提到:湾区日报能做这么久,有一点很重要的原因是我这个人不是完美主义者;我可以上线半成品,界面难看也没事,前 8 个月不编程、纯粹做没技术含量的事情也 ok。

Shareable Design (archive)

来自知名风投、产品专家 Josh Elman 的不错的观察:手机屏幕小,app 的 UX 设计为节省空间大量采用手势(长按、滑动),用户觉得难用?不会的,你看到别人用一次你就记住了。

It’s a physical memory(手势、触屏)combined with a social memory(朋友手把手地教学、互动), so it stays. 这就是所谓的 Shareable Design,人是乐于分享、好为人师的,同时也乐于学习。

独角兽饲养员 (deleted)

美国还未上市的、估值超过 $10 亿的创业公司的创始人都读哪些学校?按人数排名的前几名:斯坦福、哈佛、伯克利、斯坦福商学院、MIT、哈佛商学院等。但为何把商学院单独列出来?

Slack 公司内部的 data pipeline 长啥样的 (archive)

用 S3 做数据仓库,将 MySQL 数据库的备份以及各种 log 导入 S3,然后用 EMR 配置 Hive、Spark、Presto 来进行数据查询、分析。也讲了做这套系统的各种坑。

2016/12/09 第 782 期

GitHub 是如何防治网络暴力的 (archive)

任何火爆的线上社区都有网络暴力问题,人身攻击、侮辱谩骂的成本非常低,注册一个匿名账号就行了。身为程序员社交网络的 GitHub 在处理网络暴力方面都做了哪些工作?

Pebble:从拒绝以 $7.4 亿被收购到最终以低于 $4 千万卖身 (archive)

2015 年,西铁城出价 $7.4 亿想收购智能手表公司 Pebble,被拒;前几天,Pebble 被 Fitbit 以低于 $4 千万收购。以后这类“拒绝高价被收购、最终以低价卖身”的案例又多了一个。

拒绝被收购、然后蒸蒸日上的案例有 Google、Facebook、Snap;而拒绝被收购、最后以更低价格卖身的案例有 Yahoo、Groupon、Pebble,欢迎补充。创始人与投资人们总是雄心勃勃、信心满满。

我是靠写代码、而不是靠写测试赚钱的 (archive)

这句话要是出自普通无名程序员之口,必然会被 TDD 爱好者们口诛笔伐。但这是提出极限编程 /TDD 的 Kent Beck 在 Stack Overflow 上说的。只要有足够的测试能给你一定的信心,就够了。

Amazon Echo 之类的智能语音助手时刻监听,那些语音数据哪去了 (archive)

在喊出所谓的 "wake words”(如 Echo 的 Alexa、Google Home 的 Ok Google)之前,这些设备监听的语音不被储存也不会被传到数据中心。

而在 wake words 之后的语音会被加密、然后传到数据中心,就像你使用搜索引擎的记录、你上网的记录也时时刻刻被传到那些大公司,也只能祈祷这些大公司不作恶了。

2016 年上传到 Flickr 的照片都是哪些品牌的相机拍的

2016 年 Flickr 上的第一照相机品牌是 Apple,47% 的用户用 Apple 的设备拍照;第二品牌是佳能,占 24%;第三品牌是尼康,占 18%。

Android 用户不用 Flickr 吗?前 10 大的 Flickr 相机型号里,iPhone 竟然占了 8 个,前三名是 iPhone 6、iPhone 5s、iPhone 6s。

2016/12/10 第 783 期

公司里的程序员的 side project (archive)

来自 Stack Overflow 与 Trello 创始人 Joel Spolsky 的颇有争议的文章。程序员在工作时间以外(晚上或节假日)做的 side project 的版权是不是归雇主所有?

不同国家地区的法律不同,不同公司与不同人的猥琐程度,不同人的运气不同,所以 side project 的版权归不归雇主所有的结果(结论)也不同 -- 废话!雇主也会担心:如果员工离职了后声称公司里的项目是他业余时间做的,版权应该归个人,怎么办?

作为员工,只要你别太过分,雇主一般不会纠结于你的 side project 的;除非你的 side project 每个月赚几十上百万,或者你真的窃取了公司知识产品或做了竞争产品。Zynga 员工离职后很多都去成立游戏公司,结果都被 Zynga 告得一塌糊涂。

一向做恶的 Google 也常常给离职去开公司的员工发警告信:你给我注意点,小心我告你。大公司状告小公司或个人的主要目的不是从法律上消灭你,而是为了分散你的注意力,消耗你的时间你的金钱,让你油尽灯枯。

以前也谈过一些在工作之余做 side project 的案例:dropbox,youtube 等。

在科技圈里变老的感受 (archive)

结合自己的经历,给老程序员或者正在变老的程序员们一些建议(提示:本文不是叫你去整容啊)。文中一观点我很认同:我们这个行业不适合吃老本,你的能力永远只体现在你最近两年的成就,之前做得再好都不相关了。

为何音频内容无法病毒式传播 (deleted)

社交网络上视频、图片、文字都能被疯传,为何音频内容不行?

  1. 人们听音频内容(广播、播客、有声书)时一般是在做其他事(开车、运动)的时候,没法进行分享;
  2. 音频不方便“速读”,很少人有耐心听懂即将分享的内容。

失去控制的自动化营销邮件 (archive)

很多营销邮件看上去像是真人发给你的:称呼你的名字,邮件格式像人用键盘敲出来的。但实际上都是在模版里替换变量自动化生成几十万几百万封邮件群发出去,十分烦人,十分不真诚。

Service Worker,你到底是什么 (archive)

图文并茂地介绍 Service Worker 的文章。使用 Service Worker 的网站也有一个类似原生 app 的“下载安装”的步骤,在浏览器上装一个 JavaScript 文件,所以能进行离线操作与接收消息推送。

2016/12/12 第 784 期

为何真正幸福恩爱的人很少在社交网络秀恩爱

现实中幸福、恩爱的人会把时间更多地用在现实世界中,所以在网上花的时间就相对少一点;而且真正幸福、恩爱的人也不需要得到别人的认可(比如点赞),也无需向别人证明什么。

我的创业公司是如何失败的

很诙谐的文章。他在斯坦福读了 MBA,他创业是去卖“避孕套钥匙扣”,成本 5 毛钱、可卖 $1.25。创业两年后,个人资产比创业前还少 1 万。现实中有太多商学院没教的事了:)

Start-up culture is corrupting our youth and killing real entrepreneurship (archive)

创业文化变成一种大众通俗文化,似乎是看上去很酷的事情。本文表达了对创业年轻化、娱乐化、泡沫化的担忧(主要针对英国,但也适用于世界各地)。

断路器设计模式 (archive)

现实中用电过猛、漏电或短路的话,断路器(Circuit Breaker)会跳闸来保护电路。这种断路器的机制广泛用在写程序中:若某个 service 挂了,客户端总不能无止境地不断去连接吧?

拥有被遗忘的权利 (archive)

欧洲国家对数据、个人隐私的保护法规非常严格。个人有权利要求 Google 在欧洲国家不显示那些不利于自己的搜索结果;那么,欧洲那些国家的人能不能要求在欧洲以外的国家也不显示那些搜索结果?

Google 给出的回答是:不能;要平衡“言论自由”与“个人隐私”,你的国家有这种尊重个人隐私的法规,但其他国家没有。不过,有些神奇的地方是可以贿赂搜索引擎公司的员工对搜索结果进行干涉的:)

2016/12/13 第 785 期

Dropbox 的国际化之路

非常详尽地讲了 Dropbox 如何有计划地、一步一步扩张到海外市场的经验。2007 年创业,2011 年以前只有英文版,但当时已有 30% 到 40% 的海外用户;现在 5 亿多用户里 75% 来自美国以外的国家。

创业失败,转身加入其它公司做高管

他今年 32 岁;过去十年,创业三次;他的最后一家创业公司 Circa 失败后,在 Twitter 上私信 Postmates 的创始人 CEO 探索一下加入其公司的可能性;最后他加入了 Postmates。

在硅谷创业失败的话,如果失败得有点名气,工作其实也不难找:)

在 Pebble 被收购后,采访其创始人 CEO (archive)

他今年 30 岁,这是他在合法喝酒的年龄后第一次不当 CEO。Pebble 太晚意识到智能手表的主要用途是运动、健康方面的数据收集;CEO 本人到处游说也没融到钱,只能卖给股价创新低的 Fitbit。

当你不再关注新闻的时候 (archive)

编辑们选的新闻多是负面新闻;为了吸引眼球,他们就得报道现实生活中不太可能碰到的奇闻异事,最好能引起读者、观众情绪波动并感到不舒服的事。关注那么多新闻,你除了心情变得更糟外,没啥好处。

怎么判断一个人是不是高级软件工程师 (archive)

如果你能完全信任一个工程师,他 / 她办事你放心,那他 / 她就是高级工程师。

2016/12/14 第 786 期

Steve Wozniak 是我小学五年级时的电脑老师 (archive)

作者的小学同学的父亲就是 Steve Woz,Apple 的联合创始人。Woz 自费购买一批电脑去给小学生上电脑课;当年 30 个小学生里有至少 8 人长大后在科技圈工作。

这种不带功利目的、没有应试任务的教育能很好地激发学生的兴趣,甚至影响学生们终身学习的一生。教的内容其实不那么重要,很多知识都会过时;但兴趣培养起来了、学习态度端正了,终身学习才是关键。

我也希望湾区日报能起到类似的作用:若能有年轻的读者受到启发、坚持阅读、坚持学习、选择了工程师的职业道路、热爱上了动手做 project、最终真的改变世界了,那我真是功德无量了:)

PR 101 for Engineers (archive)

工程师自己做了 side project 或创业了,就得开始联系以前一直看不起的媒体、记者、小编们,去“寻求报道”、为自己做的东西寻求曝光度。对工程师来说,与人打交道比敲代码要难多了:)

Prolific Engineers Take Small Bites (archive)

分析了数百万个 commit,发现效率高的、最终写了很多代码的工程师其实提交代码很频繁、而且每个 commit 通常都很小,而不是花大量时间折腾一个几百行几千行代码的 commit。

提交小的 commit(最多几十行代码),比较容易发现 bug,code review 的时候同事也会比较上心地去挑毛病,出问题了 revert 也比较方便,别人 merge 代码的时候比较不会有 conflict;方便自己方便他人,请尽量提交小的 commit。

Gusto 公司里的数据分析的服务器架构 (archive)

做 HR SaaS 的公司 Gusto 改名字前叫做 ZenPayroll,2011 年成立,直到 2015 年初才开始严肃认真地做 data engineering。

他们的 data engineering 团队有 10 人。这还是发展很不错的独角兽公司,大部分公司发展 4 年后要嘛已经倒了、要嘛仍没有大数据问题,没必要过早操心这些 data infra 的事:)

$10 的 VPS 大比拼:Linode、DigitalOcean 与 Amazon Lightsail (archive)

使用 sysbench 测试了这三家 VPS 的同价格产品的性能:Linode 各项指标都完胜 DigitalOcean 与 Amazon Lightsail。

2016/12/15 第 787 期

他们有必要去吗

今天,科技圈大佬们觐见川普准总统及其子女们。一向骄傲、看不起川普的科技圈精英们有必要去向川普屈膝吗?当你做到 CEO 的位置,你就得担心这个准总统发一条 Twitter 就能让贵公司股价大跌;你是去还是不去?

程序员值不值得在旧金山湾区工作 (archive)

这是来自找工作网站 Triplebyte 的营销文章,引用了一些数字对比了在湾区与西雅图工作的收入、租房的租金以及房价。湾区高收入、但高房价,值不值得在此工作?

有点野心的、对事业有点追求的可以到湾区赌一把;对事业没啥追求了、生活想早点安定下来的话,去西雅图。

开源 Kickstarter 的 Android 与 iOS app (archive)

这可是真实的公司的真实的 app 的源代码!公司开源几个小的 UI 组件是挺多的,但开源整个 app 的案例倒是很少。本文也讲述了他们 app 开发的发展史。

他们一年半以前有 iOS app,Objective C 写的,2 个 iOS 工程师前后做了 4 年;然后一个后端工程师转型做 Android 工程师、陆续有了个 4 人团队,花了 8 个月从无到有上线了 Android app;然后用 Swift 重写了 iOS app。最后开源了这两个 app,在 GitHub repos 里,还有他们设计用的 Sketch 源文件,整个代码库是很不错的学习案例。

CTO 与 VP Engineering 有何不同 (archive)

CTO 是技术牛人,管技术,把握公司的技术方向;VP Eng 管人,管项目,协调与其他部门的合作。创业初期 CTO 主力动手干活,公司有 10 几 20 人后,就得考虑设 VP Eng 这个职位了。

Medium 的 2016 年成绩单

现在的 Medium 每个月有 6 千万独立访客(去年是每月 2 千 5 百万),每周新增文章 14 万篇,新增了不少名人写手。2016 年最热门的文章多是政治类的,美国大选与英国脱欧。

2016/12/16 第 788 期

“沉默是金”法则 (archive)

Unix 命令的设计遵循“沉默是金”法则(就像做人一样,哈):一个命令若没啥有意思的信息需要通知用户的,那就啥也别说,别输出一堆让用户迷惑的文字、增加用户的思想负担。

为啥“沉默是金”?输出过多信息会占用屏幕空间,会让用户迷惑;而且命令常常靠 pipe 串在一起使用,一个命令的输出就是另一个命令的输入,不必要的输出就是下一个命令的不必要的输入。命令行程序的设计要“沉默是金”,很多 GUI 程序的设计其实也很需要“沉默”:)

采访 Zapier 的创始人 CEO

Zapier 集成了各种 SaaS,被集成的 SaaS 公司们(MailChimp、Slack 之类的)免费为 Zapier 做宣传,用户注册数一夜之间增加 70% - 80%。真是不错的营销策略

The Dangers Of Being Too Early

最早做的往往不是后来最成功。文中举了 Pseudo Programs 为例,1993 年开始做在线广播、视频,2000 年破产。但作为投资人早点进入某个领域也不是坏事,至少可以打怪练级、积累人脉,最终才能找到下一个 YouTube。

How to Use Thought Experiments to De-Risk Your Startup (archive)

一系列值得思考的问题:竞争对手会怎么客观评价你?一年后回头看,你的 MVP 是否太复杂了?若贵公司某高管单飞去创业,成为对你知根知底的可怕的竞争对手,怎么办?

GitHub 公司的财政状况 (archive)

在过去九个月里,GitHub 收入 $9800 万,但开销太大,整体还是亏了 $6600 万。过去十八个月员工数翻倍,达到 600 人;这九个月花在员工身上的钱共 $1.08 亿。

GitHub 在程序员群体中口碑不错,但与 Dropbox 类似,要让一个个普通用户为这种看不见摸不着的“线上服务”掏钱,难。所以 GitHub 和 Dropbox 都在加大力度去向人傻钱多的大企业兜售,这才能赚钱。

工程师在 GitHub 公司里是一等公民,许多工程师对 GitHub 讨好企业用户颇为不爽 — 但是,不赚钱的话怎么付你工资啊?养一个正式的、全职员工很贵的,一般要把工资乘以 1.5。

2016/12/17 第 789 期

UI 上的卡片设计最佳实践 (archive)

一个卡片只做一件事;整个卡片都要是可以被点击的;图片、字体、阴影;卡片上别装太多内容;巧用动画效果。

Emoji:a wordless tongue (archive)

当代网民喜欢用纯文本交流(短信、聊天工具),若没了 emoji,很多人都不会说话了。这篇长文应该包含了你能了解到的 emoji 的方方面面了。

如何知道某人是不是真有钱 (archive)

判断某人是否真有钱,往往不是看他 / 她做了什么,而是看他 / 她没做什么。真有钱的人没必要做一些证明自己存在的事,如到处说认识谁谁谁、穿戴大家都认得的奢侈品牌等。

Who said what inside the Trump tech meeting (archive)

Kara Swisher 真是神通广大,关起门来的会议谈话内容都能搞到。微软 CEO:H1B;苹果 CEO:STEM;脸书 COO:STEM 加女性权益;Elon Musk:气候。

最搞的是这个:Schmidt then suggested to Trump that he be the“software president,”a phrase Trump misheard as“soft”president. Trump was not going to be soft! Laughs all around!

使用 iPad Pro 做任何事 (archive)

非常非常长的文章,作者是 Apple 产品相关的科技网站创始人兼主编,iPad Pro 已经能满足他工作与娱乐的大部分需求了。本文详细描述了他在 Pro 上的工作流程以及 app 与周边硬件的推荐。

2016/12/18 第 790 期

When everything's important, nothing is (archive)

文章标题就颇具哲理:)这是探讨网页加载速度,是在服务器端渲染好呢、还是在浏览器端渲染好?答案是:混搭,对不同部件、不同资源排优先级,有的部分要快,有的可以等待。

你愿意花多少钱投资知识 (deleted)

很多情况下花钱都是在做投资。短时间内你没法立刻看到你买的东西的价值,比如买书、上课,但很可能就是这 $10、$20 买的书改变了你的一生。

匯豐食品公司:世界上最酷的辣椒酱背后的公司 (archive)

在美国生活过的人应该都吃过他们家的辣椒酱吧。创始人是越南华侨,1980 年在洛杉矶白手起家,一直没有做广告,纯粹口口相传,只做一件事:做好辣椒酱。

本文写于 2013 年,那时候他们公司还没有社交账号。现在是 2016 年底了,他们网站做得不错,也有社交账号了,甚至还有微博。

不使用 TDD 与 code review 的代价 (archive)

本质是关于投资时间的讨论;现在花时间来为将来节省时间。写测试或 code review 确实让开发速度变慢了一些,但提高代码质量后可以避免以后耗费更多时间修 bug。

因为代码质量差而导致将来 production 出了故障,这将让开发任务很重的工程师们分心;从写代码过程里抽出几十分钟甚至几个小时去修复故障,再回过头来继续写代码,得花更多时间才能回到之前的状态。context switch 相当浪费时间。花时间来为将来省时间。在开发过程中通过测试、code review 来发现 bug,比在 production 中发现 bug 要好得多。

关于 microservices 的几个认知误区

主要是与所谓的 monolithic app 做对比。采用 microservice 就一定代码整洁、方便管理、性能好、方便开发、保证 scalable?人能力不行,这些都白搭

2016/12/19 第 791 期

Google 的 moonshot projects (archive)

Google 收入里 89% 来自广告,这是一家著名广告公司。在主营广告业务之外,他们还有一堆烧钱的 side projects,软件、硬件、长生不老药、热气球、无人驾驶车等,无所不有

警惕那些产生负价值的开发者们 (archive)

在我们职业生涯的某几个时间点,不管在多么酷炫、多么牛逼的公司,我们总能遇到那么几个自负的垃圾程序员,他们提交垃圾代码严重降低整个团队生产力而且还死不悔改。

靠点击为生的人 (archive)

Amazon 在 2005 年推出 Mechanical Turk 平台,人类可以在上面接活赚取微薄的收入,比如点几下鼠标肉眼识别图片内容之类的任务。这样的平台也可用来发动廉价劳动力训练 AI。

Mechanical Turk 上的廉价劳工 75% 来自美国,15% - 20% 来自印度。文中有个例子:一女的靠 Mechanical Turk 养家糊口,老公失业在家带小孩;一天工作 17 小时,一周工作 7 天;8 小时赚个 $25 算是不错的了;进行图片识别任务的时候,常常能看到血腥恶心的图片。

从电子游戏到人工智能:Nvidia 的进化之路 (archive)

Nvidia 创始人 CEO 黄仁勋出生于台湾,9 岁随家人移民美国,15 岁全美少年乒乓球赛双打第三名,30 岁时与其他俩合伙人创立 Nvidia,股价在过去 5 年翻了 5 倍多。

"I always think we're 30 days from going out of business," Huang says. 曾经也有一位中国的 CEO 说过类似的话……

对于 YC 创业公司来说,早期快速增长并非好兆头 (archive)

YC 流派的创业追求快速增长(盈利、用户数等),每周至少增长 5%-7%。作者观察了 8 月份 YC demo day 的 22 家公司的数据,平均每月增长 60%。面对如此漂亮完美的数据,风投进城如何防骗?

"As investors, we should be focused on whether a company has impressive engagement and retention metrics. We should examine its early unit economics closely. We should see if its users absolutely love the product. If these foundational elements are in place, I for one am usually willing to bet that growth will come, and that it will come sooner rather than later."

尽管盈利、活跃用户数等有一些第三方机构在 audit,给造假制造了一定的门槛;但道高一尺魔高一丈,类似国内这家公司的案例其实是很普遍的。

2016/12/20 第 792 期

在神秘兮兮的 Snapchat 里工作是一种怎样的体验 (archive)

新员工培训三令五申对外啥能说啥不能说;不鼓励员工与同公司其他组交流;新产品也对员工保密;CEO 办公室有密码锁;有专车配司机接送 CEO 穿梭各个办公楼开会。

"Employees are urged not post their title or job description on social media, or to discuss the company in bars and public settings.”我好友里就有几个在 Snapchat 工作的 title 都写出来了,不知道算不算违反公司规定;或者这篇报道是假新闻?

The Epic Guide to Bootstrapping a SaaS Startup from Scratch (archive)

这一系列文章真是工程师自力更生进行 SaaS 创业的 Epic Guide。从找 idea、验证 idea,到做 landing page、上线 MVP 开始收钱等,一步步教育工程师们:做 SaaS 创业,编程是最不重要的技能。

一种提高编程能力的有效办法 (archive)

那就是去读别人写的代码。读那些你常用的库、编程框架的源代码,读那些你景仰的大牛的源代码,读代码里的测试(测试本身就是一种有效的文档);读代码、改代码、运行代码。

其实,所谓写程序,大部分的时间都是花在读代码上,“写”的部分耗时极少;所以把“读”的技能训练好了,是很有好处的。

语音是下一个大平台,而 Alexa 即将占有它 (archive)

Siri 推出时定位成“像人一样的智能语音助手”,期望越大失望越大,人们发现 Siri 一点也不智能;Alexa(Echo)推出时定位成“能回复几个简单命令的智能音箱”,大受好评。

但 Echo 有个问题,很难发现新的 skill(app),而且用户也没有动力去探索新的 skill(app)。

Facebook 删帖的依据 (archive)

任何成熟的社交网络都有一堆人类在背后负责删帖。本文内容来自泄漏出来的 Facebook 内部培训的文档,这些管理员心理素质要很强啊,他们天天浏览挑战人类生理与心理极限的图片视频:)

2016/12/21 第 793 期

人工智能入门知识 (archive)

啥是 AI?Deep learning 原理?为啥 AI 很重要?为啥 AI 最近火了起来?AI 下一步如何发展?

各位 AI 专家们:如果有人(很聪明,但非计算机科学专业毕业的)在饭桌上问你,“听说近几年 AI 有了不错的发展,到底是什么样的发展?为什么是最近才有了不错的发展?”你该怎么用通俗易懂的语言作答?

如何正确计算 Customer Acquisition Cost(CAC)

很多公司炫耀自己争取到一个客户的平均成本很低,但计算 CAC 的时候偷工减料:分母把免费用户数加了进去,而分子则没有把自家员工的工资算进去,除一下 CAC 当然低了。

风险与回报:年轻人应如何选择靠谱的创业公司

面试前到 crunchbase 上去研究一下这家公司有没有钱、有没有著名投资人;面试时用文中给出的那些问题“面试”一下面试官。

Detroit must rediscover the cutting edge

iPod 之父、Nest 创始人 Tony Fadell 撰文为底特律老牌汽车制造商们支招:如何才能不被硅谷的公司们甩得太远?

与 YouTube CEO 共进午餐 (archive)

1998 年她 30 岁,刚 MBA 毕业,刚结婚,为还房贷将车库以每月 $1700 租给俩斯坦福辍学生开的小公司;1999 年她加入那家小公司,直到现在。她有 5 个孩子。她亲妹是这家“小”公司其中一个创始人的前妻。

2016/12/22 第 794 期

为何我只进行远程办公

不用研究表明,大家都知道开放办公空间是造成工作效率低下的一个主要原因,而这年头很难找到没有开放办公空间的科技公司了;夜猫子在公司上班时间效率不高。

但从公司角度看,远程办公的员工不自觉、偷懒,怎么办?在办公室上班的员工比较容易混日子(你看我每天在公司工作 8 小时,尽管啥也没做出,但没功劳也有苦劳啊),远程办公的话干活不给力一下子就暴露出来了,完全结果为导向的,容易除掉坏员工。

在 Linux 服务器端使用 Swift 的经验教训 (archive)

这个 talk 的标题虽有“production server”字样,其实这个 app 只是公司内部定会议室用的小程序而已。服务器端的 Swift 还有很长一段路要走啊。

2001: An Apple Odyssey

很显然,本文标题的创意来自经典科幻片 2001: A Space Odyssey。Apple 的 2001 年与 2016 年有相似之处:盈利严重依赖单一产品(01 年时电脑,16 年是手机),且都被外界唱衰

I am not a self-made man (archive)

奥地利移民、电影巨星、加州前州长阿诺·施瓦辛格给 Tim Ferriss 的书写的序,很谦虚地指出他并非靠一己之力、自力更生而取得今天的成就,更多的是来自他人的帮助:家长、教练、老师、名人导师、出现在杂志上的偶像的故事等。

华盛顿邮报的变革 (archive)

一百四十年历史的华盛顿邮报被 Jeff Bezos 收购三年来蒸蒸日上,俨然一科技公司了:优化手机网站访问速度以留住读者;将自家 CMS 授权给其他新闻机构开辟新盈利模式;鼓励实验创新。

2016/12/24 第 795 期

优化 app 离线访问的体验

开发人员是在网速超快的办公室里使用桌面电脑开发手机 app 的;但现实是,即使在发达国家,用户的互联网连接速度时好时坏、经常断线,所以优化 app 的离线访问的体验是很重要的。

大家可以做一个实验,把 Wi-Fi 或 LTE 关了,逐个点开自己常用的 app,看看哪个 app 在没有互联网的时候也能愉快地使用。

Take It to the Limit:搭建可靠的系统需要考虑的事 (archive)

设计可靠的分布式系统、服务器程序都要加限制,如接受的连接数限制、消息大小限制、队列长短的限制等;这是与客户端的明确约定,让 failure 比较 predictable。

做人也是一样的道理,要明白自己的 limit。不知道自己的 limit,容易造成 over promising、但 under delivering,这样就不好了。

Code review 的最佳实践

作为 reviewer,把 diff 下载到本地,用 IDE 打开、把玩一番,在自己机器上编译一下、跑一跑,这比用肉眼盯着浏览器做 code review 要有效得多。

硅谷最爱的魔术师

他 2000 年在 PayPal 做客服,工作 1 年多后被裁员。而后全身心转眼魔术,现在周旋于硅谷各大知名科技公司年会、party 进行魔术表演。淘金热里卖矿泉水的、卖牛仔裤的最后都比淘金的赚得多:)

他的一个习惯很不错:每次与公司高管见面,他都会征求这些高管的同意、拍下他们书架的照片,看这些高管都读哪些书,然后他争取也去读个一两本。很上进。

Stitch Fix 用算法与机器学习来为顾客定制衣服

顾客做时尚品味问卷调查,然后靠算法选出一些搭配,人类造型师筛选后做出来寄给顾客;满意则付钱、不满意可退货。公司 2011 年成立,5 千个员工,75 个数据科学家,3 千个人类造型师。

2016/12/26 第 796 期

Travis Kalanick 如何将 Uber 打造成终极运输机器

福布斯对 Uber 的报道文章,这种文章一般是相应公司(Uber)的 PR 部门主动联系媒体写的,不能算软文,但肯定也是来来回回紧密合作出来的稿件。大家学习一下。

Uber 现在有 9000 多个员工,150 万个司机,在 73 个国家、450 个城市运营,每个月有 4000 万乘客使用 Uber。

因为健康原因,成为游戏开发者是我唯一能做的事 (archive)

作者 13 岁以来脊椎一直有问题,几近残疾,一度想自杀。后来成立开发游戏的小工作室,可以养活自己。本文讲了她的心路历程,很励志。

Shipping is the beginning of a process

除非是做学校里的课程作业、或者是外包接私活做,负责任的软件工程项目是没有明确的“做完”的时候的。

很多年轻的工程师都指望“上线了这个东西后就换组”,以为“上线”后就是这个项目的终结,自己就没啥事可做了,喜欢不断从头开始做新东西;其实上线一个项目只是这个项目的开始,后续修 bug、加新功能、不断迭代,还有很多事要做。

NoSQL 数据库基础知识

科普文章一篇。NoSQL 数据库有哪几种?与关系数据库相比,NoSQL 的优缺点都有哪些?何时该用 NoSQL、何时不该用?个人观点:除非你真的知道你在做什么,不然在 production 中默认是不用的。

在你上司靠近你座位时,用人脸识别技术及时屏幕切换 (archive)

深度学习又一个伟大的应用:上班时候开小差、刷社交网络、看视频,上司经过你座位时你得以迅雷不及掩耳盗铃之势快速切换 IDE、假装在工作;架一摄像头、人脸识别,自动化这一常用工作流程:)

2016/12/27 第 797 期

The Great A.I. Awakening (archive)

这篇纽约时报的超长文章以 Google Translate 的人工智能化为线索,深入报道了 Google 在 AI 方面进行的巨大投资,主要介绍了 Google Brain 团队里的一些人。

The Internet Is Broken. Here’s How I’d Fix It

匿名一开始是互联网的一个 feature,人们可以言论自由;现在,匿名成了互联网的一个 bug,不负责任的暴力语言无所不知。实名制除了能缓解网络暴力问题,还能开启哪些新应用?

如果互联网是实名制的,人与人之间的通讯会不会多了一点点信任?会不会让在线支付更普及?会不会让线上媒体们摒弃广告、只靠网民小额支付?会不会让互联网更安全、因为更容易找到黑客的身份?

两种开发者:Makers 与 Menders

有的开发者喜欢从头创建项目,这是 maker;但也有人喜欢不断改进一个项目,这是 mender。团队中最好两种人都要有,让 maker 去做实验做原型,让 mender 去把已有项目提升更高的高度。

Referral Spam (archive)

都是套路:坏人制造虚假流量去访问其他网站,那些网站的管理员通过 Google Analytics 看到来自某知名网站的访问,好奇之下回访了“知名网站”,结果正中圈套:访问了虚假网站看了广告让对方牟利。

你们能看出 Lifehacкer.com 与 Lifehacker.com 这两域名的区别吗?这套路有点类似在社交网站关注某人,以期望对方回过头看你头像或简介上的广告;比如僵死粉在微博上关注你,然后你就看到僵死粉的头像所展示的广告:)都是套路。

聊天 app 是新的浏览器

Kik 的创始人 CEO 写的文章,用来教育大家:尽管现在聊天机器人非常弱智,但你看看 1994、1995 年的网站,不也一样很烂?聊天机器人与网站一样不用“安装”,这点比原生 app 好。

2016/12/28 第 798 期

Mobile is eating the world

这个 talk 是 a16z 的 Benedict Evans 对当前各种趋势的总结,很精彩。不光是智能手机生态,还谈了新一代公司霸主 GAFA、AI、电商、汽车(电动、无人驾驶)等趋势。

现在全球有 25 亿智能手机,占所有手机的一半。2001 年,诺基亚的核心竞争力是他们有能力从无到有生产手机,当年 75% 诺基亚手机是在 8 家诺基亚工厂生产。2016 年,Apple 有 189 家零部件供应商、分布在 789 个不同地理位置,Apple 自己不生产零部件。

汽车刚出现的时候,当时的人们觉得是“没有马的马车”;而现在人们对无人驾驶车的印象是“没有司机的汽车”;“没有司机”将比“没有马”带来更多变革:车内布局、没有方向盘、没有前置的座位等。

招一个程序员到底要花多少钱 (archive)

很多公司都有奖励政策:本公司员工若成功推荐并录用一个工程师,奖励 $1 万美金(甚至更多)。公司敢用这样的奖励机制,正是因为正常情况下,招一个程序员要花的钱比这个数字大得多得多。

都是套路:很多野生的 recruiter 会在 LinkedIn 上广撒网骚扰工程师,声称手中有各种牛逼公司的职位;同时,他们也骚扰各个公司,声称手中有各种牛逼工程师的简历;每个月只要能配对成功一对工程师与公司,他们就能赚不错了。

Death to Tipping (archive)

批判了在很多国家餐厅吃饭要给小费的“陋习”。有额外小费,饭菜低价、厨师低工资、顾客额外计算小费很麻烦。不如小费直接包含在饭菜价格里,不克扣厨师工资、顾客用脚投票。

电子邮件设计的布局与结构

很实用的设计 HTML 电子邮件的文章,仿佛回到了上个世纪手写 HTML 一样、排版全靠 <table>:)

Meaningful Exits for Founders

创业公司的创始人如何致富?公司融资越多轮、估值越高、创始人股份稀释越多;融资 D 轮卖掉公司 vs 种子轮融资后卖掉公司,两种情况下创始人拿到手的钱往往差不多。

2016/12/29 第 799 期

靠 HTTP/2 与 progressive jpeg 提升图片加载速度 (archive)

用 HTTP/2 的 Multiplexing 并行加载、而 Server Push 机制进行“抢跑”;progressive jpeg 渐进加载,由模糊到清晰。既有实际性能的提升,也有迷惑人眼、让人主观感觉图片加载变快了的成分。

8 个真正有用的软件创新概念 (archive)

高级编程语言、操作系统、人机实时交互、事务、垃圾回收机制、虚拟机、超文本、联网。都是五、六十年代出现;从那之后,都是对这几个概念修修补补了。

超级玛丽如何成为世界级的文化偶像 (archive)

任天堂美国总部租用别人的厂房,正当他们全力本地化大金刚游戏时,房东过来催房租;任天堂的人索性将游戏中的管道工人形象用房东名字命名。房东名叫 Mario Segale。管道工人从大金刚游戏单飞后,就成了超级玛丽系列游戏。

默认对所有 pull requests 说“不” (archive)

他参与维护众多开源项目,对于提交上来的 pull requests 有生杀大权。本文阐述了他批准 pull requests 的一些原则,开源项目维护者们可以借鉴一下。

用 Rule of Threes 来做伟大的产品

非常瞎掰的一篇文章。但写作、演讲确实经常都强调三个点、三个方面。为什么是三,而不是二、四、五?很多事情凑成三个方面,不多不少:三只小猪、三个火枪手?

The rule of threes states that things that come in threes are funnier, more satisfying, or more effective than other numbers of things.

2016/12/31 第 800 期

为何你不必在意别人在 Hacker News 上对你的产品的负面评价 (archive)

很多现在的知名产品、公司在开发初期到 Hacker News 上发帖征求大家对产品的意见。本文考古了当年 Airbnb、Dropbox、Quora 等的帖子,多数留言都不看好他们;倒是已关门了的 Homejoy 评价挺正面的。

你把作品放到网上征求别人的意见,就得做好被吐槽、被毒舌、甚至被人身攻击的打算,这是一个大礼包,要嘛都得接受、要嘛就别放到网上了。真正好的 idea 一开始肯定不是大众所能理解、所能接受的;要是大家都表扬你的 idea,那你这个 idea 肯定不是好的 idea。

人民大众往往不能理解为何你们两三个人做了两三个星期的网站比 Facebook(近 2 万人运营了 10 几年)要难看、要难用那么多,他们不理解你们做这种“玩具”有什么意义,他们不理解为何你们两周内没做出 Android app、而只做了个网站:)

对比读一下以前推荐过的 Sam Altman 的文章“别看网上的评论”。世界上只有两种人,一种是创造未来的人,一种是整天在网上发帖论证为什么别人不能成功的键盘侠;争取做第一种人吧。"Overnight success usually takes a decade of uphill work."

科学家们都是怎么用 Slack 的 (archive)

赶论文 deadline 的时候 coauthor 们用 Slack 做最后修改的讨论、做聊天机器人及时通知大家实验结果、插科打诨各种八卦互通有无等。

How Amazon innovates in ways that Google and Apple can't

来一篇 Amazon 的正面报道,年底了,PR 们得拼业绩的:)相比于 Google 登月计划般的(不切实际的)创新,Amazon 的创新相对“没技术含量”。

5 万个游戏币 $1.99:游戏内购扭曲了孩子的基本经济观念 (archive)

出生以后、在自己大脑发育的初期捧着触屏设备(手机、平板),花大量的时间在玩游戏,熟悉了游戏内购、虚拟游戏币、付费进入游戏下一关;长大后他们会有怎样的花钱观念?

为何创业者们不大会宣传他们的产品 (archive)

很多创业者、尤其是工程师出身的创业者都有一种“只要我做出来,用户自然就会蜂拥而来”的幻想,坚信“酒香不怕巷子深”,纷纷看不起“营销”这件事。

以前有推荐过一篇“Pinterest 的高速成长靠的是营销而不是工程”,可以配合本文读一下。要把一条消息传递出去,其实比你想象的要困难得多;我很喜欢举的例子:LinkedIn 是 2003 年上线的,你直到哪一年才听说过 LinkedIn 这个名词?为什么连知名创业者、牛风投支持的产品也得经过那么多年才让你听到他们的名字,更别说“用”了,连让人“听到名字”都难。