湾区日报文章第59辑

 

目录

2016/05/16 第 581 期

从技术角度讲解邮件营销

发邮件给几十个人是很容易的事情,但发邮件给成千上万个人是很难的。是用现成的昂贵的工具(如 MailChimp)还是自己动手搭一个?如何在合适的时间点将合适的内容发给合适的人?
还有其他需要考虑的问题:如果自己发出的邮件直接进了所有人的垃圾邮箱,怎么办?如果邮件发送过程中程序出错,重发的话会不会导致某些用户收到重复的邮件?如何让邮件在各种屏幕大小各种邮件客户端各种邮件服务商的各种排列组合中都正常显示?

Dropbox 迁移到 HTTP/ 2 的经验教训

他们的 web services 用 nginx 做 load balancer。他们就把 nginx 升级到最新版,先在 canary 机器的 nginx 配置文件里 enable http/2,然后观察各种监控图与 nginx logs。还是有不少坑的。
整体感觉各种千奇百怪的客户端(浏览器与 app 开发的 sdk)对 http/ 2 的支持还不成熟。

Rackspace 的面试流程

软件开发是团队运动,公司里招人也是团队运动。Rackspace 的这个招人的流程很结构化,面试官们需要各种协调各种分工合作。
最后给 candidate 打分:+2 hard yes, +1 soft yes, -2 soft no, -4 hard no;总得分小于等于 0 的,直接拒了。

Writing with the machine

像代码自动补全一样,在写文章的时候文本编辑器也能智能地自动补全句子。作者在这个 project 里,后台用 torch-rnn 训练文本,然后给 Atom 做了个插件给后台发请求自动补全句子。

That'll do pig, that'll do

这是一个创业两年多但一直没有将产品上线最后没钱了只好把知识产权卖给投资人然后让投资人帮忙还债的故事。整篇文章描述了犹如坐过山车的创业体验,起起落落,偶尔看到一些希望,但更多的是失望。
文章最后,作者发了自己创业前与创业三年后的照片对比……

2016/05/17 第 582 期

Evernote 的新 CEO:我喜欢被低估

游戏进入困难模式:一个每天新增 10 万用户的产品,功能无比复杂,维护成本极高,砍掉任何功能都有少数用户用最恶毒的语言咒骂你;媒体们整天唱衰你的公司;用户还不肯掏钱;做为 CEO,你该怎么办?

用户点击消息推送的时间规律

分析了 6.71 亿条 app 的消息推送,发现用户点击消息推送的高峰是在晚上。结合电视与互联网等媒介的使用规律,得出众所周知的结论:人们喜欢晚上边看电视边玩手机……

如果我今年 22 岁

来干了这碗鸡汤吧。作者是 Apple 管线上与线下商店的 Senior VP Angela Ahrendts;她以前是 Burberry 的 CEO。文章很短,值得一读。
我最喜欢这两句:"Perfect the power of positive thinking and intention for myself and others." 以及 "Earn everything and not ask for or expect anything I didn't contribute to."
夏天到了,有带暑期 intern 的人可以把这篇文章转给他们看看:)

创业公司们充满创意的关于盈利的定义

其实都还没怎么赚钱,但都得声称自己是 profitable,不然就不酷了。怎么个 profitable 法?在不考虑 X,Y,Z 的开销的情况下,我们其实是赚钱的。
Uber: "第一季度在美国与加拿大是 profitable 的";Lyft: "有这一条清晰的通往 profitability 的道路";TaskRabbit: "年底以前将 profitable profitable(是的,这个单词重复了两次)";Airbnb: "达到 profitable 的状态是 won't be too long";DoorDash:" 在个别市场是 profitable 的 "。

工作之余做 side project

专利局的小职员爱因斯坦在工作之余做 side project 发论文:)有的公司是鼓励员工追求工作以外的兴趣爱好的,但也有公司管得很严;尤其是知识产权方面,业余时间做的东西归公司所有吗?
几个例子:
陈士骏是 facebook 前 15 号员工,在 fb 上班的时候消失了一段时间,回来工作后立刻辞职;把工作电脑归还给 fb 的时候,fb 的 IT 部门发现电脑硬盘已经被格式化了。他离开 fb 后,创办了 YouTube。
Dropbox 的创始人 Drew Houston 在做 Dropbox 的时候还没有辞职;后来要出来创业了,就跟原东家签协议,将 Dropbox 与原东家划清界线。
我上周面试了个 Amazon 的前员工,他业余时间做了个 iPhone 游戏,结果 Amazon 的 hr 竟然神奇地发现了这个游戏,并打电话给他,勒令他停止这个 iPhone 游戏的开发,因为 conflict of interest(就因为 Amazon 自己卖游戏,所以禁止员工业余时间做游戏?)。

2016/05/18 第 583 期

在美国如何找教职

大部分的人是不找教职的,就当做是长见识吧。写得很全面。文中有个建议:如果你在 Google 搜自己的名字而在前几个搜索结果找不到自己的主页,可以考虑花钱买 AdWords……

是的,你需要写商业计划书

这里不是指那种动辄上百页的 MBA 式的商业计划书,而是创业团队成员集体探讨出来的、用人话写出来的、短短几页的、能回答如下问题的商业计划书:产品是啥、盈利模式是啥、怎么衡量你到底是成功了还是失败了、用户的 persona 是啥、目标市场是啥、做这件事需要多少钱等。

一个普通员工如何让团队变得更好

那些上进的、看不惯开发团队的种种愚蠢低效的行为的、自认为行动力强且有想法的小员工们,除了尽早跳槽外,有没有办法以身作则、潜移默化地让团队变得更好?
公司里文档不全?别抱怨,自己动手补全。都 21 世纪了,竟然公司里的代码还没有版本控制?别抱怨,自己弄一下 git。公司里竟然没有 code review 的机制?别抱怨,自己装个 code review 的工具(Phabricator 之类的),找个同事试验一下。当然,你要推广好的实践、说话要有分量,自己的本职工作得先做出色了。

Cool URIs don't change

有些网站的运营者们喜欢定期清理、改变网站的 URL,而且匪夷所思地不将旧的 URL 301 重定向到新的 URL。设计 URL 的时候想清楚了,就像人名一样,要用几十年、一辈子的。

Ruby 在过去的 13 年里已经足够快了

Rails 之父 DHH 反驳有些人对 Ruby 速度很慢的抱怨。他们于 2003 年在 256MB 的机器上用很慢的 Ruby 开发了 Rails 以及 Basecamp,并自给自足地将公司拉扯到每年赚几千万美金。
软件开发维护运营的主要成本是人的工资,而不是机器的费用。做网站啥的,Ruby 还是很够用的。GitHub 网站也是基于 Ruby on Rails 的,等能够做到 GitHub 的规模了(全球访问量前 100),再来抱怨 Ruby 的慢吧。

2016/05/19 第 584 期

使用功能开关而不引入 technical debt

文中的办法不错:建立俩 branch,一个加功能开关,另一个删除;先 merge 加功能开关的那个 branch,上线代码;过了一段时间,确认可以删功能开关了,就 merge 第二个 branch。
使用 feature flags(功能开关)最终会在代码里留下一堆 if .. else,上线功能大半年后早已忘记功能开关这回事,即使记得也懒得去删、或者没把握删除后会不会引入 bug。文中的办法好处在于,加功能开关的时候,已经熟悉部分代码,删除的时候很有信心,顺手删除,为以后节省时间。

深入浅出 Postgres 内存管理

其实讲得还不算深入,但对大部分人来说了解这么多就足够了。了解一下常用数据库的运作原理以及如何配参数优化性能是很有用的,可以省却很多花里胡哨难以维护的“性能优化”的应用程序的代码。
以前做过一个项目,本来要在应用程序代码里加入缓存的机制(用 memcached 之类的),做好了写一堆恶心的 cache invalidation 的代码的心理准备,即将为公司花掉很多钱(工程师时间乘以时薪)。后来 benchmark 了一下,发现啥 cache 都不用,直接依赖 postgres 自己的 buffer management 效果就很好了,因为 workload 很 predictable。快糙猛的解决方案:)

失败是成功之母

在某个计算平台取得巨大成功的,很难把成功复制到下一个计算平台。反倒是在上一个主流计算平台失败了后,才能重头开始、抛弃旧思维、创造性地思考下一个计算平台的事情。举了微软、苹果、亚马逊为例
微软:PC 成功,手机失败;Apple:PC 失败,手机成功,手表半死不活;Amazon:手机失败,Echo(智能家电?)成功。当然现在说 Apple Watch 失败或 Amazon Echo 成功,都还太早。
文中对比了鼎盛时期的 Apple 推出智能手表与微软在极盛时期的 90 年代推出 Windows CE,看上去两家公司都占尽了下一个计算平台的先机。微软用桌面操作系统的思维做手机操作系统,Apple Watch 看上去也是智能手机的简化版。

配置文件的出错信息必须准确易懂

广泛使用的软件工具(尤其服务器类的)或多或少有配置文件,有独特的语法。在配置文件中引入错误很不好排查;软件工具作者们很多都没在出错信息上花心思,要嘛没有出错信息、要嘛模棱两可。

公司里真的需要那么多员工吗

所谓 10x engineer(以一当十?),只是他们有 10x 的机遇、有 10x 的自由发挥创造的机会;如果公司处处提防他们、不给他们机会、让他们束手束脚、大材小用,人浮于事的情况就会出现。
"A talented person with no opportunity produces 1x results. A talented person with 10x opportunity produces 10x results."

2016/05/20 第 585 期

Hillary Clinton 竞选团队用到的技术

一年来,该团队创建了 50 个后台服务,20 个前端 app,237 个 git repo,15TB 的数据仓库,捐款的网站大量的 ab 测试。用 4 小时快糙猛地搭出能发送上千万营销电子邮件的架构,省下了 $70 万竞选经费。
用运营互联网公司的技术与思维来竞选美国总统。

不要再用 "连续创业者" 这个词了

这是一种为了创业而创业急功近利的思维,快速做公司,快速卖掉,短短时间内就能收获 "连续创业者" 这个标签,然而并没有让这个世界变得更好。

暂停使用 Slack

现在仿佛所有公司都在用 Slack(或者各种五花八门的群聊工具)。Vice 的 Motherboard 网站的编辑们暂停使用 Slack 了,大家七嘴八舌太吵了,太容易分心了;鼓励 1 对 1 的深度交谈。

如何寻找,面试并成功招到最好的产品经理

文中先澄清了啥是产品经理,好的产品经理有啥特质,给出几个好的产品经理的典型简历(大学专业工作经历等),也列出了一些面试题以及好答案与坏答案,让 candidate 做 presentation 应该考察的事项。
文中面试 PM 的问题大家可以尝试回答一下(先别看文中答案哦):1. 介绍一个你认为设计得很牛逼的非软件产品;2. 在浏览器输入 yahoo.com 之后发生了什么;3. 讲讲你曾经与工程师设计师意见不合的情况,你怎么处理的;4. 无人驾驶汽车的出现会带来怎样的蝴蝶效应;5. 最 PM 最无聊的地方是什么。

其实只有少数人用过 Uber 与 Airbnb

生活在大城市,身边围绕着喜欢尝试新东西的在科技圈工作的人,看着铺天盖地的媒体报道,就误以为诸如 Uber 或 Airbnb 之类的线上服务已经成为主流了。当然,换一个角度看,这些公司都还有很大成长空间。
看上去这些酷炫公司已经推进国际市场,但即使在美国本土,仍然很多人没用过,甚至没听过这些酷炫公司。

2016/05/21 第 586 期

Google’s Go-to-Market Gap

针对今年 Google I/ O 有感而发的唱衰 Google 的文章一篇。Google 技术确实很强,产品做得确实很好,但历史证明,最好、最强的产品往往不是商业上最成功的。大部分不懂技术的人只需要足够好的东西,就够了。
超强的 Google Maps 与 iOS 自带的很烂的 Map;非常智能的 Google Assistant 与 iOS 自带的可能不那么智能的 Siri;非常智能的还要很久才能开卖的 Google Home 与 Amazon 已经卖了很久的可能不那么智能的 Echo;非常智能的 Google 新的聊天软件 Allo 与世界上每个国家自己独特的不那么智能的聊天软件。

杜绝中看不中用的产品:Product Discovery

提出了所谓 product discovery 的框架来做出 product market fit 的产品:发现并理解透彻问题所在、探索评价各种解决方案、排优先级实现功能。先好用,再好看。
但现实中太容易看到反例了。以前有提过:很多线上媒体什么都好,一流风投、精美的网站与 app 设计、在地铁做广告,唯一不好的是内容。卖煎饼果子的摊位什么都好,地点好、大 V 推荐、支持 Apple Pay 付款,唯一不好的就是煎饼果子太难吃。

技术是如何劫持我们的思考的

列举了互联网产品的十种损人利己的、劫持用户的方法,旨在将用户留在自己的平台越久越好(比如让注销账户异常困难),让用户上瘾(如无止境地频繁刷新)。
参见 LinkedIn 暗黑模式。

程序员如何在电话会议中偷懒

这是 Splunk 的工程师在 hack week 做的项目,使用 IBM 的 Watson API 将语音转成文字。在电话会议中假装全程参与,偷懒做自己的事情;直到有人提到自己的名字了,再回到麦克风前:)
有个 Python 脚本使用 IBM 的 Watson API 将语音转成文字,监听电话会议的语音;当有人提到自己的名字,脚本在 Hipchat 上通知他,并自动发送之前 30 秒的对话文本内容给他,15 秒后播事前录好的语音:“不好意思,麦克风忘开了”;此时,他已有足够时间回到麦克风前应付会议:)
该项目在 GitHub 上开源了。会写程序真是一件不错的事情。

Twitter 与 Facebook 用多少股票来留住员工

分析了两家公司今年 Q1 的财报。Facebook 给员工的股份价值占当季盈利的 13.8%,而 Twitter 是 25.4%;Facebook 给员工的股份的 78% 给研发人员,11% 给营销与销售人员,而 Twitter 是 50% 给研发,31% 给营销与销售。
看上去 Twitter 给营销与销售人员的股份比例很大,可能他们这些人拿的现金比较少?

2016/05/22 第 587 期

优秀的程序员是完全可以有编程之外的生活的

尤其是单身年轻人聚集的创业公司,往往会认为好的程序员在工作之外一定要做 side project,一定得为开源社区做贡献。他们还没到有家庭的年龄,也还没意识到时间与生命的宝贵。
现实点,有多少人愿意免费贡献自己的时间(生命)为开源社区做贡献,还要与网上陌生人吵架(开源社区里吵架是很普遍的)?
一个程序员只利用工作时间,怎么不断提高自己?可以去开技术会议充电,有效利用工作时间向同事学习或者结对编程,在公司内组织 reading group 与时俱进读好书读学术论文,在公司里尝试新技术做小工具提高工作效率等。现实中确实见过不少朝九晚五家庭第一的优秀程序员的,他们工作时候不那么开小差,有效利用时间。

DaaS: Disney as a Service

本文猜测迪士尼将会推出一种付费订阅服务,一次订阅即可享受以迪士尼优质内容为中心的整个跨平台生态系统的服务:电影,动画,书,迪士尼乐园门票,玩具,游戏等。
若此预言成真,将印证了创始人 Walt Disney 在 1957 年的布局,如文中的手绘图所示。

Consensus vs. Collaboration

如果一个决策需要所有人都同意(consensus),那这个决策往往旷日持久无法通过,即使最后通过了,也是因为有些人忍受不了低效的做决策的流程,不得已让步言不由衷地同意。

做网站的最佳实践反而让手机浏览网页性能更差

文中主要批评了过度使用 lazy loading,手机在网速慢的时候浏览网页,加载了一部分,然后用户与网页的内容互动,然后再加载剩余的部分,此时用户浏览到的部分已经跳动然后错位。

Fix error handling first

代码有 bug、出错了,别急着修复 bug,应该先保证 error handling 的代码是有效的。若先修复了 bug,就不好测试 error handling 是否正常,而且也没动力弄好 error handling 了。

2016/05/23 第 588 期

纪念碑谷 2 周年的数字

两年以来,各平台下载量 2600 多万,收入 $1400 多万(73% 来自 iOS)。单天收入第二高 $69484 是发生在纸牌屋第三季播出后,美国总统在剧中玩该游戏。纸牌屋编剧自己找上门来的,天上掉馅饼:)

我讨厌 open source 这个词

很多人很多机构都声称自己在做 open source 的东西;但根据 open source 的定义,你得有一个 license 才算 open source;GitHub 上 80% 的项目是没有 license 的,那算开源吗?

Apple 做智能手表的原因

这是一种猜想:伟大的 Steve Jobs 在晚年与癌症作斗争的过程中,意识到医疗系统技术落后;这某种程度上影响了 Apple 高层的决策:要做一种设备方便人们监控自己的健康状况,这就是 Watch。

非盈利性质的媒体

如今信息爆炸,但越来越难找到好的内容。一个不太赚钱的媒体公司里的领着低薪的编辑,有什么动机去弄出高质量而不哗众取宠的内容?如果媒体的运营像美国私立大学一样,有个基金会靠捐款以及投资来维持日常运营,将盈利与内容的生产分离,如何?

检验你是否对现在的工作满意的框架

很不错的思考。问问自己是否 inspired(工作中受同事领导的启发?), useful(确实有为公司带来价值?), respected(同事理解自己带来的价值?), growing(每天进步一点点?)

2016/05/24 第 589 期

为什么在互联网战争中 Google 战胜了 Yahoo

因为 Google 对自己解决的问题理解得很透彻。文中从后台存储技术的角度来看:Yahoo 走捷径,购买很不灵活且很昂贵的 NetApp 存储方案;Google 用了 4 年开发高质量灵活便宜的 GFS。
走捷径的雅虎,每开发一种线上服务,都得去迎合购买来的不灵活的存储方案;而 Google 的 GFS 是自己开发的,对这套系统知根知底,各种不同线上服务都直接或间接用 GFS,在 GFS 有点小改进了,所有线上服务同时受益。

每天写一千字

每天早上写一千个字,writing is thinking。这可以保持自己创造力,以最佳的思考状态开始每一天。当坚持一段时间后,自然就有无尽的素材可以写了。

Palantir 的根本问题在于数据科学这个领域

理想情况下的数据科学是按一下回车自动生成一份报告让你知道你原来不知道的事情;最原始的数据科学是劳动密集型的活动,纯手工操作。现实中的数据科学则是趋向于体力劳动的半自动化的操作,且需要大量的行业知识(比如分析帮可口可乐公司做分析,你得很懂饮料行业)。
Palantir 本质是这种半自动化的生意,他们仍然能赚钱,但显然不是典型的硅谷式的大量自动化非常 scalable 的生意,估值确实过高。

制作虚拟现实成人游戏的幕后

有一点点办公室不宜:)所有成年人都知道虚拟现实的一个重要应用是 porn。本文带我们领略一下拍摄现场,以及各种道德方面与未来发展的讨论。

避免黑莓的命运

在 iPhone 出现以前,黑莓手机专注于商业用途:电子邮件+打电话,看起来势不可挡没有衰落的迹象;iPhone 出来后,手机用户对智能手机的期许是个人用途:app+庞大的开发者群体,看起来也是势不可挡;慢慢地,如果手机用户对手机的期许转变成了人工智能个人小秘书,Google 们是准备好了,但 iPhone 准备好了吗?

2016/05/25 第 590 期

成为 FBI 的武器与梦魇的乌克兰黑客

继丝绸之路之后,又一个具有拍好莱坞大片潜质的素材。年轻的乌克兰黑客,向 FBI 自首,被 FBI 利用成为卧底,与 FBI 探员的微妙友谊,VMware 源代码外泄,勒索 VMware 母公司 EMC。文章很长,很精彩。

沉没成本谬误

沉没成本:已经做了金钱或感情投资了,且收不回来的成本。谬误:已等了 60 分钟公交车了不差再等 15 分钟;已花钱点餐吃不下很难受也要吃完;已交往 5 年了虽然不爱但若分手多可惜;已玩了 3 周开心农场,虽已觉得无聊但不继续玩就对不起已经花掉的时间;该项目已投入 2 年开发,虽然明知没前途但若停止开发就对不起这两年的投入。看出规律了吗?
面对沉没成本,你的判断已经不理智了。

软件开发中的 deadline 应该怎么定

把大项目分成一堆 5 天内能做完的小任务;排小任务们的依赖关系看哪些可并行做的;明确定义怎样才算项目完成。对小任务的大小,有人喜欢用 t -shirt 的 size 来定(xs,m,l,xl 等),每个 size 对应一定的天数,方便计算。

将软件开发外包出去的注意事项

为了避免花大钱雇全职开发人员,创业者们很多都将开发任务外包给海外的开发人员(详见电视剧 Silicon Valley 第三季第五集)。有了原型验证了 idea 骗到风投了,再招全职员工重写一遍。
主要的教训:一分钱一分货,不要妄想花吃麦当劳的钱又能同时享受 The Ritz-Carlton 的服务。

你其实不需要更多自由支配的时间

有工作的人与没工作的人都是在周末最快乐。有工作的好理解,周末不用工作嘛;那没工作的怎么解释?人是社会性动物,没工作的人到了周末可以找有工作的人玩啊(家人朋友),所以快乐。

评论(没有评论)