2017/06/16 第941期
The 5 Laws of Software Estimates
估计软件项目需要多长时间才能做完是有必要的,估计得不准是很正常的,估计准了才不正常。现实往往是我估计完项目工期,但实际做项目的人却是别人,所以肯定不准。
The Road to Burnout is Paved With Context Switching
开始做 manager 后会觉得很烦,因为琐事很多、太多的 context switching,不再像做 maker 那样能集中大块的时间做东西。本文作者的时间安排可以借鉴:一周五天,每天只做一种主题的事情。
The App That Does Nothing
很多时候刷手机并不是为了获取实质的信息,而是因为无聊、手里必须得抓个东西、手指得动起来。Binky 是一个假的社交 app,内容都是假的,你能点赞、能回复,满足你刷手机的快感。
Instagram 顺利迁移到 Python 3
前后用了约10个月的时间进行迁移。用两三个月修改代码、替换掉不兼容 Python 3 的 package,用两个月单元测试,用四个月缓慢地 rollout。
迁移到 Python 3 后,程序性能颇有提高:uwsgi/django 比较不吃 CPU 了(-12%),Celery 比较不吃内存了(-30%)。
NBA 的虚拟现实战略
大部分的NBA球迷这辈子恐怕都无法现场看球,而在前排、场边近距离看比赛的更是少之又少(硅谷身份象征之一:勇士队季票持有者、总决赛前排)。VR让广大球迷身临其境。
今年总决赛勇士队夺冠后,各社交媒体上各路风投、公司高管纷纷晒照片(或被 @ ),都坐在前排,很容易被照进电视镜头里。
2017/06/18 第942期
采访 Winnie 的创始人 CEO
很励志的故事。Winnie 是帮助带娃的家长找到对小孩友好的户外场所的app。创始人CEO困难的创业开局模式:带娃 + 老公得癌症。后来公司走上正轨,老公癌症也治好了。
“If I can create another human life and be responsible for its survival, then surely I can start a company!” — “我能造人,当然也能造公司!”
54 Screwups as a Startup CEO
来自 CB Insights 的 CEO 的“自我检讨”,反省自己在创办、管理这家公司的过程中各种做得不够好的地方。其实每个人每隔一段时间都应自己书面检讨一下,帮自己进步。
红杉资本投资 YouTube 的备忘录
这份文档有相当的历史地位,很不错的学习材料:红杉资本在为 YouTube 侵权案辩护时候出示的文档里,包括了当年投资 YouTube 时的备忘录,解释、分析了为啥做这个投资。
直接跳到第九页开始看:YouTube 的使命、解决的问题、解决方案、竞争对手分析、市场分析、盈利模式、为什么决定要投 YouTube。不管是创业者还是投资人,都能从这个文档里挖掘到有价值的信息的,推荐大家看一下。
创业没有合伙人的好处、坏处、建议
以Y Combinator为代表的创业加速器们、创业导师们都强烈建议创业时要找一、两个合伙人。若真的从小没认识志同道合的人、没有牛逼的同学/同事、找不到创业合伙人呢?难道就真没法创业了?
没有创业合伙人当然也有能成功(而且是巨大成功)的案例。或许会更难(因为孤独、没人共同承担风险、没有相关技能等),或许会更容易(做决定更果断、不会因与合伙人闹翻而公司倒闭等)。具体情况具体分析。身心健康都最重要,要锻炼健身、健康饮食,必要时找心理咨询师也要舍得花这个钱。
UberEATS 团队是如何做设计的
UberEATS 在全球超过 80 个城市有业务。每个季度,他们的设计师就去到一个城市调研(顺便吃,吃,吃),采访司机、餐厅里的人、食客,观察他们如何使用自己做的产品。
这份公费旅游的工作不错,城市深度游,适合吃货(以及那些对 Uber 各种负面新闻免疫、坚信 Uber 光明前景的人)。
2017/06/19 第943期
白板面试
对公司来讲,白板面试很容易错过好的程序员,但招来很烂的程序员的概率比较低。错过了好程序员无非就浪费了公司几小时的时间,而招到烂程序员对公司的损失就大得多。
对程序员来说,除非很有理想很有抱负自己做个体户、创业、找规模很小的不知名公司,一般找工作还是得老老实实刷题搞白板面试。做开源项目、写博客、做网红等活动或许能给你带来面试机会,但很难绕过面试流程直接给你offer的,只能是作为敲门砖。
How To Ask Questions The Smart Way
这是编程世界里经典的一份文档,教程序员们如何在网上有礼貌地、合理地向别人提问。但提问前,千万要自己先做足功课:搜索、读文档、读代码等。
每个人的生活都很忙,你问的问题肯定不是世界上最重要的事,别穷追不舍地逮住某个可怜的网民要求对方几分钟内立刻给出答案 — 很遗憾的是,这种事常有发生,人到了网上很容易就失去了生活中基本的礼貌与素质。
Actions, not words, reveal our real values
你说你真的想做某事,但其实你并不想,除非你已经开始做了。“If they really wanted to do it, they would have done it.”
7 Rules for REST API URI Design
给东西命名是很难的。设计 URI 就是在命名,关键是命名规范要 consistent。
如何读懂别人的代码
在程序员的日常工作中,读代码的时间永远比写代码的时间要长得多得多。去理解别人写的代码并非易事,首先得摆正心态,别指望一遍就能读懂;最好能找到main函数、设断点一步步执行代码。
2017/06/20 第944期
Amazon 的新客户
这篇是我这几天来一直期待的分析 Amazon 收购 Whole Foods 的 Ben Thompson 的文章,果然没让我失望:)Amazon 在下一盘大棋。
Amazon 终极目标、战略、战术,层层铺开。终极目标:向一切经济活动“征税”。两大战略:使用AWS的公司们业务做越大,交税越多;成为Prime会员的老百姓,每年定期交税。战术:先卖书、再卖可以长期库存不变质的东西、然后卖容易变质的生鲜蔬果类。
买下 Whole Foods 后,立刻有了一大批生鲜蔬果类高端客户。此时,Whole Foods 实体店就是用户界面,在保持用户界面不变的情况下,把后台重构成模块化的 microservice(物流中各个步骤模块化起来),然后上线另一套用户界面:网站、app、电商界面,使用之前重构好的 microservice。
Positioning Your Startup is Vital — Here’s How to Nail It
提供了如何做 positioning 的完形填空模板,以及阐述了三种给产品命名的套路。
For (target customer)Who (statement of need or opportunity),(Product name) is a (product category)That (statement of key benefit).Unlike (competing alternative)(Product name)(statement of primary differentiation).
硬件是新的软件
点评 HotOS’17 的一篇来自 MSR 的短文章。CPU 主频基本不再增长了,Intel 该如何卖 CPU?从指令集上做文章,加入新的指令,一些软件功能做进硬件里。
Should Startups Care About Profitability
答案是:It depends。一般 growth 与 profitability 只能选一样;风投更在意的是 growth,要搞就得搞一把大的。路边小卖部一开始盈利,只是做不大而已。
为什么公司应该允许员工去参加技术会议、并报销费用
如果员工去参加会议时学到了知识会不会更容易跳槽?会不会在参加会议时勾搭上其他公司然后跳槽了?注册费很贵、会不会很浪费钱?碰到这么小肚鸡肠的公司还是尽早走人吧。
允许员工去参加会议、并给报销,显示出公司对员工的信任,对员工追求进步的支持;也是一种投资,员工增长了见识,还把贵公司的品牌传播了出去。作为员工,如果公司不支持、不给报销,每年也应该自费去参加一两个好的会议,投资自己的成长。
2017/06/21 第945期
Apple 与公司内部泄密者的战争
Apple 的中国工厂的工人用尽各种办法把零部件带出工厂,主要为了钱;公司总部员工也会泄露消息给记者、博客,往往是为了炫耀或愚蠢而不小心泄露的。
本文的内容是基于从 Apple 内部泄露出来的一份录音,很讽刺啊。
开发者们能从 oncall 的经历里学到什么
当代互联网公司开发者们往往都要轮岗 oncall 了。通过 oncall 的经历,能了解哪些地方容易出错、以后自己的代码里应如何应对(错误处理、监控、logging等)。
文中还讨论了其他 oncall 经历里能学到的东西,自己看文章。我补充一个文中没讲的:通过 oncall,你能认识一些之前没说过话的同事,或许能成为革命战友(比如半夜一起救火、其乐融融),也可能认识了后互相厌恶(比如互相推卸责任、互相抱怨等)。
如何知道你自己是不是一个好的 manager
文中给出了问你的下属的12个问题,看看他们怎么回答的。或者你也可以自己回答一下,判断看看你的上司是不是一个好 manager。
“Do I have a best friend at work?” 思考一下,一个好的 manager 怎么能影响你是否在工作中有 best friend?
有时候要故意让产品变得难用一些
产品做得简单易用有时会带来不好的后果:Slack容易使用,导致别人发的消息太多,很烦;成为自媒体、快速散播消息,导致假新闻泛滥;社交媒体太容易注册一个新账号,招来太多机器人与网络暴力。
湾区日报本身就是很难用:推荐的文章是英文写的,过滤掉了不愿意读英文的人;推荐的网页很多是被墙,又过滤掉了不会翻墙的人。最后剩下的读者整体素质应该会比较高,无理谩骂、恶意攻击的现象就比较少。所以“难用”并不是一件坏事。
2017/06/22 第946期
初级工程师进阶指南
找个 mentor、与人交流(线上社区或线下的 meetup)、多阅读、做 side project、有意地培养 soft skills(表达能力、与人打交道的能力、团队协作等)。
与具体编程、写代码无关的 soft skills 往往是区分优秀的工程师与普通工程师的最重要的因素。
写给创业者的招聘终极指南
在创业初期公司没名气、没钱,招人是一件极其困难的事。本文是一个非常详细的值得收藏起来的招聘指南。先想清楚需不需要招人,能不能只找 contractor(时薪高、但不用买保险、给股权)?
NDA 崇拜
本文写于 2003 年,但吐槽了一种至今仍挺普遍的现象:创业公司才开始做没多久,就神神秘秘地,要让所有接触过的人(应聘者、风投等)签 NDA。所有真正应该保密的东西都别告诉外人,有必要告诉外人的就没必要保密了。
你的创业公司能成功,靠的不是你的绝世 idea。关键还是运气与执行力。尽管很多人成功后会总结各种成功经验,但不可否认,运气的成分是很关键的,甚至是最关键的。正确的时间、正确的地点、做了正确的事。
Can the Internet Be Archived
Internet Archive 立志成为当代的亚历山大图书馆,存档整个互联网。网页的寿命一般都很短,平均100天左右。现在他们存档了近三千亿个网页了。
Internet Archive 的创始人 Brewster Kahle 也是 Alexa 的创始人,上世纪互联网泡沫时卖给 Amazon 后着实发了一笔,所以后来能自己出钱做有理想的、非盈利性质的 Internet Archive。其总部是个教堂(当初买下这个教堂是因为长得与他们的 logo 相似),到旧金山旅游的可以去参观一下。
我的 Uber 司机拿走了我的背包,我把 Uber 告了并胜诉了
送达目的地后,作者下车从后备箱里取行李,一不留神 Uber 司机将车开走了,装有价值约$4千刀物品的背包落在车上,怎么也联系不上司机;把Uber公司告上法庭,Uber不是很配合、拒不提供司机信息;索性最后法庭判 Uber 赔偿$4千,但前后折腾好几个月。
以后大家遇到类似情况,可以学着本文作者的做法收集好证据、拿起法律武器、让自己的损失降到最低。
2017/06/23 第947期
Exec Comms: You have to practice
公司高管给 talk、接受采访,看上去普遍口才很好,这都是要下功夫、花时间去练习的,接受反馈、不断迭代。练好演讲(忽悠)也是创业过程的一个必修课。
Engineering a culture of psychological safety
成功的工程团队最大的特点是具有 psychological safety。新人容易融入团队、敢发表意见、出故障了能对事不对人地分析。
文中最后提到他在 Google 工作时的经历:在经历了一次生产事故、加班加点救火后,带领全组喝酒庆祝这次失败;因为正是这次事故,让大家对整个系统的里里外外有了充分的理解,几天时间学到的东西比几个月学到的要多得多,所以应该庆祝;每个人轮流在白板写下学到的东西,每写一个,大家举杯庆祝一次。
Netflix 的公司文化
最新版的、文字版的、著名的、经典的 Netflix 公司文化:)无须多解释,当成范文读吧。
"You only say things about fellow employees that you say to their face." 有多少人能做到这点?
以前推荐过旧版的 Netflix 公司文化幻灯片:“硅谷有史以来最重要的文档”
Cryptocurrency 的淘金热对 Nvidia 与 AMD 的影响
GPU是挖各种cryptocurrency的利器;但矿工们大量买入廉价GPU,搅乱了市场、哄抬了价格,GPU正儿八经的用户游戏玩家们就难以用正常价格买到。
Cryptocurrency 的大热直接或间接导致 GPU 厂商 Nvidia 与 AMD 的 GPU 更好卖、而且对股价也有正面影响。但是,如果 cryptocurrency 的泡沫破灭了呢?
爆料:投资人试图对女性创业者潜规则
六个女性创业者出来爆料(其中三人实名,都是亚裔):Binary Capital 的联合创始人 Justin Caldbeck 对她们咸猪手、发暧昧短信、见面时直接提议去酒店。
The Information 最先披露此事,要付费订阅才能看到全文,所以改分享这篇不用付费的 Pando 的文章。The Information 描述得比较详细,底下的评论还有人补充说该风投人品不咋地,一面假装要投资他们公司、一面又极力游说他们公司的主力开发人员跳槽到他投资的另一公司。
2017/06/25 第948期
一个给 iOS App 瘦身的奇怪的窍门
Halide 是最近很红的 iOS 照相机 app,大小只有 10.4 MB。瘦身窍门?用户至上。专注于简单实用的功能、尽量少用第三方库、不做 A/B 测试、不追踪用户使用数据。
团队只有两人:一个是前 Apple 设计师,一个是前 Twitter 工程师(本文作者)。他们这个app有15,000行Swift,没有依赖任何第三方library;认清现实,这个app盈利模式就是付费下载,主要靠良好口碑驱动用户增长,盈利不靠广告、也不急于高速增长,没必要采集用户使用数据。
使用 serverless,每月托管费用从 $10,000 降到 $370
用 javascript 重写系统,放在 AWS 的 Lambda 上跑,使用 API Gateway 做缓存、减少 Lambda 上的调用次数。
新常态:你的医生在网上挖掘你的个人信息
尤其是心理医生,会监控患者的社交账号的发帖情况、通过搜索引擎找关于患者的信息,通过这些信息挖掘出患者自己不会说出、或者描述不清的症状。但说好的个人隐私呢?
极端的例子:1),医生发现你在社交账号上表现出自杀倾向,然后通知警察去你家破门而入;2),患者懒得跟医生说话,“反正我的信息你在网上都看得到,自己去网上看”。
小公司 CTO 的成长之路
Zapier 的创始人 CTO 以自己的经历谈小公司 CTO 技能树的进化之路,真的就像玩游戏获得技能点后得决定往哪个方向进化,毕竟时间精力有限,侧重技术或是侧重管人。
团队里人多了起来后,沟通就很困难。你不能假设每个人都知道你在想什么、记得你说过什么、理解为什么要这么做。Over-communication 很有必要,同一件事、同一句话对不同人要反复说,甚至对同一个人在不同时间点也要反复说,虽然很烦,但要想确保统一思想,只能这么做。
在大学里用 Python 与 Twilio 做选课外挂
来自 Twilio 的营销文章。大学里热门课程很难选上;写程序定时去选课网站监控某热门课,一有空位(如有人退课)及时短信通知。
其实这还不算“选课外挂”。十几年前我们读大学时的选课外挂比较简单暴力:shell script 一行流 + cron job,一有空位直接自动选上;有时候挂一下午,就能选十几门课;当然,最后都要及时退掉不想上的课,不然麻烦就大了:)
2017/06/26 第949期
On Starting a Software Business
很多人想辞职创业,但都不敢行动;虽然有存款能撑一段时间,但立刻就没收入,心里还是会怕的。作者以自己的经历讲了自己创业的时间轴,可以作为参考。
Candy Japan 的创业故事
他是计算机专业的芬兰人,到日本做交换生两年,然后在日本定居。2011年开始做 Candy Japan,每月付费订阅、寄两盒糖果;订阅用户600人,每月赚$1.5万,生活很惬意。
如果公司用面试程序员的方法来面试翻译员
文中八股文式的谈话内容、钻牛角尖的与实际工作没啥关系的问题、白板面试的套路,程序员们应该都很熟悉。期待更多“用面试程序员的方法来面试[填入任何工种]”主题的讽刺文章:)
不是程序员的人可以看看此文,如果用这种模式来面试你现在的工作,感觉如何?
The future is emotional
机器、算法可以(或即将)自动化很多工作;那人类还能提供哪些价值?可以在需要服务其他人类的工作中提供“emotional labour”,提供同情心、人性的东西。
比如某人得癌症了,AI 诊断后说“治愈的可能性是 5.7%”;而人类医生会说“别灰心,某某名人跟你一样的癌症、上个月治好了”,然后人类医生与病人唠嗑三个钟头。人类与机器的分工不同。
Chrome 与 Firefox 官方浏览器的 headless 模式是滋生病毒的温床
这该如何是好:小明在愉快地安装完某邪恶公司的全家桶后电脑中毒了,浏览器自动启动 headless 模式,在没有开启 GUI 的情况下自动用小明的微博账号转发小广告。
2017/06/27 第950期
美剧 Silicon Valley 的 “Not Hotdog” app 是如何做出来的
这是一篇非常技术性的文章,说实话,大部分内容我是看不懂的。一个人用 React Native、TensorFlow 与 Keras 断断续续做了几个月,识别图片不需联网、手机离线就能识别。
用 Macbook Pro 外接 GPU,用 80 个钟头训练15万张 hotdog 与非 hotdog 的图片。使用 CodePush 绕过 App Store 的审核直接更新 app 里的 model。一开始的原型是用 Google Cloud 的 Vision API 做的,识别效果不好、而且如果这个 app 红了就要付很多钱给 Google(后来还真的红了)。
Mint 创业初期用户增长的手段
2006年注册公司、2007年9月上线、2009年11月以 $1.7 亿卖给Intuit,当时用户数“才” 150 万。Mint 用户价值比较高,毕竟都把自己银行账号绑定、并给出了平时的消费记录。
这是一个成熟的有经验的创业团队,从产品上线到用户增长,都相当有策略性。在写代码之前、验证这个 idea 就花了几个月时,去火车站拦住路人问卷调查;内容营销、SEO、社交网络等用户增长的手段都不新鲜,但执行得相当不错。同一个概念不同的人来操作,效果会差很多的。
新的线上服务的用户增长变得越来越难了
移动互联网基本饱和,最大的那几家公司主宰了用户的所有注意力;用户变聪明了,在他们面前展示广告、他们当做没看到;如今的大公司不像以前那样又笨又慢,他们抄袭速度巨快无比。
科技圈是有周期性的,每个周期结束时都有一堆五花八门的领域出现,希望能从当前拥挤的某个平台里杀出一条血路、在新的平台里崭露头角。看样子今年差不多也是移动互联网这个周期的结束,VR、AR、比特币、无人驾驶车等五花八门。
在我的网站禁用 AMP
AMP 页面直接被手机版的 Google 搜索结果缓存,打开超快,这是好事。但是,如果网页有对应的 AMP 版,分享到 Twitter、其客户端会强制打开 AMP 版(阉割版的网页),很不爽。
我也注意到了,最近湾区日报的 AMP 版网页访问量变大了,原来是 Twitter 搞的鬼。分享正常版的网页到 Twitter、从 Twitter 客户端打开就强制变成 AMP 版了,打开速度其实也快不了多少。我再观察一段时间,看是不是也要在湾区日报网站上禁用 AMP 了;毕竟 Twitter 带来的访问量比 Google 带来的访问量要大得多。
高中辍学生投资比特币的故事
他2011年时12岁,用奶奶给的$1000买了比特币。父母承诺:如果18岁前赚$100万,就可以不用读大学。现在他拥有403个比特币,价值超过$100万了。
他在2013年底比特币开始狂跌之前卖掉,赚$10万;然后去开公司与旅游。之后把公司卖了,在拿$10万现金与拿300比特币之间选择,他选了300比特币。他父母是在斯坦福读 PhD 时认识的,很开明。他俩哥哥都是16岁读大学,一个读 Johns Hopkins、现在开软件公司,另一个读 CMU、现在 MIT 读 PhD。