2017/09/08 第1011期
纽约时报在内容发布的流水线上用 Kafka
痛点:纽约时报在上游有一堆的CMS发布内容,各CMS有长相各异的数据库与API;下游有一堆的服务(如建索引,个性化)需要聚合处理不同CMS发布的内容。为方便下游服务开发,在中间引入Kafka。
Tombstones for Dead Code
较安全的删除死代码的方法:在可能是死代码的函数开头调用tombstone函数;当该函数被调用时tombstone就写log到一文本文件。定时收集这些log就能检验是否真是死代码,是否可放心删除了。
Move Your Bugs to the Left
代码流水线:编译,跑测试,code review,QA/beta 测试,让真的用户用。你当然不想在“右边”让 bug 出现(让用户看到 bug),尽量在“左边”发现 bug,如静态分析、编译。
改变人生的钱其实并不是你想的那样的
本文解释了他为何拒绝自己的公司被收购、为何拒绝立刻套现上千万。要想明白自己到底需要多少钱才能“改变人生”,其实只要“enough”就行了,那么,多少才是“enough”?
Roku 被遗忘的历史
2007 年时 Netflix 投入 20 人的团队做了电视机顶盒,全公司为此硬件产品感到骄傲。但为了向其他机顶盒厂商示好,他们只得将此产品剥离出去成为独立公司,这就是即将上市的 Roku。
2007 年,Netflix 推出在线看电影、电视剧的服务;同一年,Apple 除了推出 iPhone 外,还推出了 Apple TV。当时 Netflix CEO 担心如果他们推出了自己的机顶盒,Steve Jobs 就不愿意与他们合作、不愿让他们把 Netflix 在线看电影的服务放到 Apple TV 上。
2017/09/09 第1012期
The “Burner List”:简单的、基于纸张的 to-do list
拿出一张纸,左栏是“前火炉”,放最重要的项目的任务清单;右上栏是“后火炉”,放第二重要的项目的任务清单;右下栏是“洗菜池”,放杂七杂八的低优先级的任务。
厨房的比喻不错。做饭的时候主要精力放在“前火炉”,偶尔照料一下“后火炉”煮的东西,非常偶尔地去弄一下“洗菜池”里的东西。一张纸的空间有限,逼迫你专注于重要的任务。
为何 WeWork 觉得自己值 $200 亿
WeWork 是二房东:与办公楼签下10年到20年的长租期,然后按月、按座位/房间租出去(先买完整的比萨饼,然后按小块卖,利润高)。
不管是大公司还是创业公司都有向 WeWork 这种 coworking 的公司租座位、租小办公室的需求:大公司(如微软、IBM、Amazon)在某些城市的办公室员工数不多,没必要自己管理办公室;创业公司若自己租办公室,一般租期都要长达1、2年,公司可能存活不了那么久,而 coworking 按月出租,不用签长租期。
Lessons Learned Scaling Airbnb 100X
本文作者 2011 年加入 Airbnb,这几年来各项指标都涨了上百倍(用户数、公司员工数等)。本文总结了在 Airbnb 公司发展史上五条重要的经验教训。
Airbnb 从 2007 年开始做,直到 2012 年用户仍需要通过发邮件才能取消预订的房间、客服手动操作 — 这说明了啥?没必要一开始把什么功能都做好了;在资源有限的情况下,实现一些核心功能,edge case 可以手动处理;直到处理不过来了,再编程实现。
Juicero 的消亡
每个月烧 $400 万,董事会要求公司看能否每月只烧 $100 万就好,做不到,于是公司关门。公司创始人是严格的素食主义者,嘲讽公司里喝牛奶或酸奶的员工,不给去非素食餐厅吃饭的员工报销。
这不是节食,这是 biohacking
你听说过 fasting 吗?就是间歇性地几天不吃饭,只喝水。硅谷高管们、科技圈名人们纷纷实践,(据说)迅速减肥、注意力更集中、情绪更稳定。Evernote创始人是坚定的实践者。
一般是 5:2,一周有五天正常饮食,然后两天吃很少(或不吃饭)。不要盲目模仿这种实践,要弄坏了身体就不好了。近期硅谷装逼指南:参加 burning man,实践 fasting,参与 ICO,欢迎补充:)
2017/09/11 第1013期
创业者都是疯子
没有创过业的人看“创业”这件事都只是看到(实际发生概率极低的)结果:“一夜致富”。作者以自己的经历总结了创业过程中极其困难的、难以被没创过业的人理解的一些事情。
很多人创业的理由是:想自己当老板。那真的是自己当老板了吗?投资人是另一种形式的、更可怕的老板,会把你逼疯的;你的客户也是老板,他们不开心的话会指名道姓地在网上问候你与你的家人。
文章最后贴出了 1997 年 Apple 经典的 Think Different 广告词,与各位“疯子”们共勉:
“Here’s to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes. The ones who see things differently. They’re not fond of rules. And they have no respect for the status quo. You can quote them, disagree with them, glorify or vilify them. About the only thing you can’t do is ignore them. Because they change things. They push the human race forward. And while some may see them as the crazy ones, we see genius. Because the people who are crazy enough to think they can change the world, are the ones who do.”
Monitoring and Observability
本文解释并区分了这两个概念:Monitoring(监控线上服务是否正常运行) 与 Observability(提供工具帮助人类排查错误)。
Monitoring 是比较老的概念,“我懂得做 Monitoring;很好,我们给你的薪水是 $8 万一年”;Observability 是比较新的概念,“我懂得为 native cloud 提供 Observability;很好,我们给你的薪水是 $30 万一年”。#会忽悠的艺术
向其他同事宣布你即将要做的项目
这么做的好处是:如果其他组正在做相关的项目,他们或许提供重要的反馈、甚至提供人手帮忙;向别人描述你的项目计划,有助于思考;如果项目挺牛逼,也能激励其他同事。
但如何最后项目失败了、延期了、或招到大家集体反对,你岂不是很没面子?还是取决于公司文化。如果公司文化是恶毒的,那还是算了吧:“偷偷摸摸”地做完项目、上线,给大家一个惊喜(或惊吓)。
Driving Change at Mozilla
本文描述了在 1000 多人的 Mozilla 公司里将 code review 工具换成 Phabricator 的决策过程。在一个组织里做改变,肯定不可能让所有人开心的;千万别搞民主投票。
“If you try to make everyone happy, you’re not making anyone happy. Large organizations with hundreds of millions of users get defensive and try to keep everybody happy. Ultimately you end up with a mediocre product and experience.”
Being Different Beats Being Better
做人、做产品、创业都是如此,与其追求“更好”,不如追求与众不同。比如你是个程序员,你很难成为“最好”的程序员;但如果你同时还有写作、摄影、乐器等技能,这种技能组合的人就比较少。
每个人其实都是与众不同的,要好好分析一下自己、挖掘一下自己“与众不同”的地方,说不定就能找到合适的职业方向。或许你独一无二的技能组合能为自己创造一份工作,这份工作在其他公司里是找不到的。
2017/09/12 第1014期
免费拿走我的代码,但付费使用我的时间
本文提议:任何人都能随便使用开源项目的代码,但你得先付费订阅,然后才能提问、提交 pull request,毕竟项目的维护者们是需要花时间回答问题、读代码、merge PR 的。
免费的代码,你爱怎么用就怎么用;交钱成为会员、加入社区,尊重开源项目维护者们的劳动。开源项目的维护者是一份苦差事,要不厌其烦地反复回答各种日经、月经问题,要花时间理解某个网民提交的 pull request 到底值不值得 merge,还要忍受某些伸手党无理由的谩骂。
Basecamp iOS app 的混合架构
用 Swift 写 native code,然后在 WKWebView 里显示网页;屏幕切换都是靠 URL 跳转,与处理 deep link、消息推送等用的是同样的代码。
Quora 与 Yelp 的 app 都是很典型的在原生 app 里大量使用 webview 的案例。
Amazon 的机器人大军
Amazon 仓库里有 10 万机器人,12.5 万人类。原来做机械劳动的人类开始要做一些需要动脑的工作了,比如机器人出故障时,人类得检查一下为啥出故障。仓库里的走道更窄了,能存下更多货物。
现在人类走去取货的次数变少了,不易劳累;机器人能抗更多的货物。但现在的机器人还是有点局限性,取标准化大小、标准化形状的货物是没问题,但不规则形状的货物还是得人类来操作。
Snapchat 上的网红纷纷逃往 Instagram
文章开头举的例子:Instagram 上不到70万粉丝的账号靠接广告一年能赚六位数美金,而他的 Snapchat 账号一年只能赚 $1 万。Instagram 对网红很上心,开放各种数据方便接广告。
而 Snapchat 觉得自己是亲密朋友间的聊天工具,不待见网红。
Betting on the Web
程序员选开发平台就像在对自己的职业生涯进行投资。如果当年你选择了Flash、黑莓手机、Windows Phone,现在你可能亏惨了。Web 这个平台最保险,它是开放的,不会轻易地随着哪家公司的消亡而消失。
越来越多浏览器支持 Service Workers 了,所谓的 Progressive Web App(PWA)长得越来越像原生的 app。值不值得在 Web 开发上赌一把?
2017/09/13 第1015期
Write a Monthly Review
作者的一个实践:每个月结束后总结一下这个月生活中的进度与成就,如家庭、感情、收入、朋友等领域;约一两个好友,大家每月都总结一下,互相分享、共同进步。
软件工程师必须了解的搜索引擎技术
要在网站与 app 里加上“搜索”功能?有人会不假思索地说:有什么难的,用 ElasticSearch 就行了。本文帮这些人温习一下基本的、比较完整的一个搜索引擎系统相关的知识点。
在线广告的回本期
文中给出了 SaaS 公司在网上做广告、投资回报、回本期等的几个不同方案的计算与比较,像数学应用题一般。选能够早点回本的方案,多赚的钱可以再投入广告中,加快投资与回报的速度。
$10 亿的创业公司之谜
作者认为当今创业公司不愿上市有两个原因:1,法律法规要求上市或即将上市的公司财务上严格审计,事儿多;2,现在就算公司不上市,员工的股份也能在二级市场买卖,上市了后股票可能更不值钱。
未上市的公司股票怎么买卖?到 SharesPost 之类的二级市场,他们有 Agent 做媒,如果有人出价要买,Agent 会联系目标公司的一堆员工,大伙儿将股票放进一个 pool 里一起卖(一个员工可能没那么多股可以卖);一般热门公司的早期员工都有这种 Agent 的联系方式。
还有个问题,估值都 $10 亿了,还叫创业公司?以前有分享过一篇奇文 什么样的公司算 startup:满足以下三个条件中的一个,你就不叫startup了 — 年收入多于$5千万;多于100个员工;估值多于$5亿。
科技公司上市时 CEO 的工资
列出了 85 家科技公司上市时 CEO 的薪酬。有一年拿 $0、$1 的,也有拿上千万美元的(包括股票、bonus)。基本工资中位数是 $26.5 万,算上股票 bonus 的中位数是 $50 万。
Box CEO(创始人),$18.9万;LinkedIn CEO(非创始人),$46.2万;SalesForce CEO(创始人),$1;Twitter CEO(非创始人),$1105万;Facebook CEO(创始人),$148万;Google CEO(非创始人),$55.4万。
2017/09/14 第1016期
别浪费时间去写完美的代码
在同一个系统里,并不是每一部分的代码都同等重要的。代码是不断迭代、不断演化的,生命周期极短;一次到位做到“完美”既不可能也没必要。代码的正确性、安全性比美观更重要。
几年前看过施一公写的文章如何做一名优秀的博士生,里面也提到“耗费时间的完美主义阻碍创新进取”。
Design for iPhone X
又到了“Apple 推出新的屏幕大小的手机、App 界面可能要大改动”的时候了。iPhone X 与 iPhone 7 宽度一样,但高了 145pt;顶部状态栏与底部替代 Home 的标识都会影响已有的 UI 设计。
为什么你必须让销售人员拿提成
有的创业公司以“文化”为由,让销售与工程师等其他工种用同样的待遇系统:死工资+一些bonus。有些东西是需要创新的,但在否定旧制度前得先分析清楚旧制度为啥这么设计、有啥优势。
工程师里很多人是热爱编程的,拿固定工资在公司编程是没问题的。销售人员里有多少人是热爱忽悠的?若不给他们提成,怎能激励他们做出成绩?
对比 Flow 与 TypeScript
Tumblr 前端开发团队用代码实例评估了 Flow 与 TypeScript 这俩前端静态类型系统,最终选用 TypeScript 来重构他们的 React 代码库,因为 TypeScript 的出错信息比较友好。
而且 VSCode 对 TypeScript 集成比较好,毕竟都是微软做的。好像用 VSCode 的人挺多的啊。前不久去参加 @Scale 会议,微软的 VSCode 团队介绍他们团队管理、项目管理的经验;现在 VSCode 月活 200 万人;他们写了大量的 bot 来自动化各种流程(如检查用到的开源项目的 license)。
Facebook, You Needy Sonofabitch
从一个用户的角度吐槽了 Facebook 强行创造“活跃用户”的各种鸡贼手段,消息推送与邮件通知:“你已连续几天发文了,真棒”;“在你离开的这段时间里,你错过了X个好友发的Y个帖子”;“很久没发帖的某某刚发了个贴,快来看”。
如果你一下没反应过来,Sonofabitch 这个“单词”的意思是:Son of a bitch… 如果你有数百个 Facebook 好友的话,有可能你每天都得被迫祝别人生日快乐了,毕竟一年只有365天,每天都有人生日。
2017/09/15 第1017期
How do Individual Contributors Get Stuck
很多人每次到了 performance review 时都很头疼。比换着方式夸自己更头疼的是,如何给同事善意的批评以及提“建设性”意见。本文给你支招。
怎么看到同事的“不足之处”?看他们在什么情况下工作分心、在什么情况下主要项目进展慢。本文列出了很多可能的理由,总有几条你能在 performance review 里用得上的:)
什么是 Pillar Page
搜索引擎不断进化,越来越智能;用户搜索习惯也在进化,语音搜索比例变大(Google 在移动设备上 20% 的搜索量),从短关键词进化到用长句搜索。新形势下,内容网站的 SEO 该怎么做?
针对某个主题,要有一个所谓的 Pillar Page,内容比一般的博文长,涵盖这个主题的方方面面(如 Instagram 营销指南);除此之外,还要有一堆的页面放所谓的 cluster content,深入讲解更细的话题(如 Instagram 图片的标题该怎么优化);通过超链接将 Pillar Page 与 cluster content 互链起来,但愿这一坨东西能吸引很多搜索该主题的流量。
The shadow org chart
公司里的 org chart 是树形结构,按职位分层;但公司里实际影响决策、带来创造力与活力的人往往不是级别最高的那些人。本文实践的网络结构的 shadow org chart 很不错。
怎么画出 shadow org chart?让公司里每个人回答这三个问题:哪四个人在工作里给你带来活力?你在工作中一般向哪四个人请求帮助?你要做决策时向哪四个人求教?提名者与被提名者都是节点,集合在一起就是一张有向图,这样就能很容易看到公司里哪些人是真正有影响力的。
Yagni
这是 "You Aren’t Gonna Need It" 的缩写。软件项目初期塞进各种 Yagni 的功能,增加了代码复杂度、增加了未来的维护成本、让项目延期,最重要的是,未来往往用不到这些功能。
生活中也是如此,“将来可能会用到”的东西有很大概率是将来肯定用不到。
导致 SoFi CEO 下台的性丑闻
SoFi 几乎在所有知名 podcast 里都有做广告,是估值 $40 多亿的借贷创业公司。Uber 公司里曝光出来的性骚扰主要是中层干部所为,而 SoFi 则是那些最高层领导。
CEO 向多个女性员工发骚扰短信,被看到握着女员工的手亲密交谈,且喝酒后会跟同事炫耀自己在那方面的辉煌成就;CFO 一生气就会在公司里踢垃圾桶,会当众评论女员工的身材,说要奖励能成功减肥的女员工 $5 千;在办公室停车场能看到有人车震;公司业务高速发展,连客服都曾经被拉来批准贷款。
2017/09/16 第1018期
用个人隐私数据做现金的商店
俄罗斯杀毒软件制造商卡巴斯基在伦敦搞了个的实体店:只要你提供手机上最新的三张照片、短信/邮件的截屏等信息,就能在店里“免费”购物。一看就是营销的噱头,但这 idea 发人深思。
我们的个人隐私数据早已被许多不断作恶的公司采集了,反正咱也不是明星,用照片、聊天记录来“买”生活用品好像也挺划算的。而从商家的角度看,这是一门好生意吗?采集了顾客的真实隐私数据后,能卖给谁?能卖个好价钱吗?
Reddit 的搜索后台的进化史
05年,直接用 Postgres;07年,用 Lucene;08年,用 Solr;10年,用 IndexTank;12年,用 CloudSearch;现在用基于 Solr 的商业版的产品 Fusion。
现在 Reddit 重新索引所有的内容仅需 5 小时。
The Customization Curve
创业初期与用户沟通,用户说要加以下这27个新功能他才会开心;用户本来就很少了,若让一个用户不开心,就像天塌下来一样;那你该不该听用户的话呢?伤脑筋啊。
得学会排优先级:有严重的 bug 要修复,这是最高优先级;用户提议的功能若很容易用代码实现、且不用引入人类手动操作的流程,可以做;若必须引入人类手动操作的流程、但以后可方便地用代码自动化,可以做;若是那种需要前期投入很多、且将来也无法自动化的新功能,就别浪费时间去做了。
The Privilege of U.S. Citizenship
PayPal 前 CTO、联合创始人 Max Levchin 在主流媒体发表的主旋律文章:自己16岁时全家从邪恶苏联帝国来到美国寻求政治庇护、后来屡次创业最终成功;他于911之后成为美国公民。
移民没有什么可失去的,比较可能去创业。40% 的财富五百强公司是第一、二代移民创立;一半以上的独角兽创业公司创始团队里有移民。
"This is what makes this nation so remarkable: the opportunity to reinvent yourself, to create new opportunities for your family, to transcend your status as a welcome guest to become a true equal."
在职场上为何女人容易霸凌其他女人
在男多女少的行业里,当领导的女人更少;爬到领导位置的女人更不容易,“我当年就是疯狂加班、受尽欺负的,你们年轻人当然也得经历这些折磨”。比起男上司,女员工更讨厌女上司。
Study participants said female bosses are “emotional,” “catty,” or “bitchy.”
2017/09/17 第1019期
深度分析 Slack 的营销策略
本文剖析了 Slack 的口碑营销、podcast广告、自己开podcast、SEO、Medium、产品良心定价、YouTube视频、电视广告、报纸广告等海陆空全方位一体化的营销战略战术大礼包。
Slack 那帮人在营销方面真是有一手。经典案例:2016年底,在微软即将上线 Slack 竞争产品前夕,Slack 买下纽约时报整个页面,登出一篇题为 “Dear Microsoft” 的挑衅文章。
如果在 1957 年造一台与 iPhone X 计算能力相当的电脑要花多少钱
单纯考虑硬件,按现在的钱来算的话,要 $150,000,000,000,000 美金;这台机器占地面积 100,000,000,000 平方米。要再考虑上软件的话 …
用户如何决定改用新产品
不错的思考框架 — 改用新产品的动力:push(旧产品太烂了)与 pull(新产品太棒了)。改用新产品的阻力:Inertia(迁移成本太大)与 Anxiety(新产品真有那么好吗)。
用实例讲解创业初期如何融资
创业刚开始,啥都还没做,该按照怎样的公司估值融资的?convertible notes 与 SAFE 的区别?本文以虚构的“互联网烤鸡翅”店为例,通俗地解释了早期融资的路数与各种术语。
联合创始人是夫妻的公司比较不受投资人待见
投资人的逻辑:如果夫妻在家里吵架,还能好好工作吗?如果夫妻离婚,公司还能运作吗?与丈夫一起创业的作者认为:夫妻感情比朋友感情更稳定,与认识不久的人一起创业才不靠谱呢。
风投里这种歧视夫妻、歧视男女朋友一起创业的现象是真实存在的。我有个朋友的 co-founder 是女的(他们不是夫妻、也不是情侣),他去融资时投资人必问的问题:“你们在 dating 吗?” 夫妻一起创业的例子:思科(后来离婚了)、Flickr(后来离婚了)、VMware、SlideShare、Eventbrite 等。
2017/09/18 第1020期
好莱坞面临来自烂番茄的攻击
烂番茄(Rotten Tomatoes)是影评聚合网站,它的烂番茄指数被卖电影票的网站、电视新闻等广泛引用,能极大地影响电影的票房,这让好莱坞的电影工作室们很不爽。
烂番茄网站成立于 1998 年,一开始是几个伯克利学生的 side project。他们是成龙的粉丝,当初做这个网站是为了聚合成龙电影的影评。公司现在有 36 人,办公室位于比佛利山庄。现在网站每月有独立访客1千4百万。网站的影评有一半是影评人自己提交的,另一半则是公司员工在网上收集的。
Finding UX in the Trash
分类垃圾桶的设计普遍很糟糕,人们都得停顿好几秒甚至更长的时间后、犹犹豫豫地将垃圾扔进可能是正确的桶里。本文从分类垃圾桶糟糕的UX说起,总结了好UX的一些原则。
Accessibility Engineering Practice
Accessibility 是指设计线上产品时得考虑到如何方便残疾人(如盲人)使用。作者以前是 Etsy 的 accessibility 团队的经理,他在本文里详细总结了网页设计的 accessibility 方面的实践与工具。
公司有点规模后,如果网页设计没有 accessibility 方面的考量,可能会有法律问题。比如以前 Target 网站的网站让盲人无法购物,就被告了。网页上的按钮,可以用