Blog
0x01 byte Recent content on 0x01 byte
leancloud google talk small small talk taptap clojure code code review docker emacs kindle Latest posts 我原本为 2025 年定的读书目标是 30 本,不过最后还是和 2024 年一样只看完 25 本。除了确实没有充分利用时间以外,全年用来旅游的日子比较多也是一个原因。以下的几本值得向每个人推荐。 This is Going to HurtSecret Diaries of a Junior Doctor作者:Adam Kay我的评分:5/5 | Goodreads 评分:4.40 我最近几年很喜欢看医生写的书。除了因为对医学知识感兴趣外,我发现医生当中好的作者很多。大概是因为医生见过太多悲欢离合,要承受很多生死的责任,所以对人性的理解更为深刻吧。作者 Adam Kay 从医学院毕业在英国的公立医疗系统做了 6…
Jan 14, 2026 · blog.incoming@1byte.io (江宏) 年初的时候我计划今年至少要有一次远行,所以儿子放暑假的时候就带他到西班牙旅行了 22 天。大部分人都把比较长的休假安排在公众假日前后,但是因为儿子只能寒暑假出行,我就只能选天气炎热又浪费年假的7月了。 这次是 COVID 之后我第一次出亚洲。原本年初的计划是暑假带儿子去美国东岸,除了去纽约和华盛顿的博物馆外,还能回学校看望导师。可是 Trump 二次当选之后边境执法很混乱,带着孩子还是避免不必要的风险为好,就放弃美国选择了我一直很想去的西班牙。 我后面会抽空分别发文讲去过的每个地方,所以本文只说一些整体感受。 签证 整个过程里体验最差的应该算是办签证。现在办理申根签证要比疫情之前麻烦很多。上海的西班牙签证中心说是免预约,所以代理让我们就拿着资料直接去。我们到的时候还没开门,但是已经排起了长队。他们是先处理有预约的,再处理没预约的,没预约的还要每人交几百元的 VIP…
Sep 5, 2025 · blog.incoming@1byte.io (江宏) 2025 年已经开始一段时间了,我也不免俗写一下总结和展望。 工作 我 2023 年底离开了 TapTap,2024 年在 EMQ 管研发团队。这是一个朋友的创业公司。因为创始人是美籍台湾人,员工也大半在台湾,所以公司文化算是东西结合。每个公司从内部看都会有一堆问题,但是从我的偏好来说,EMQ 人比较少、关系比较简单、团队和同事之间的沟通方式比较体面,我相对更能适应一些。…
Jan 13, 2025 · blog.incoming@1byte.io (江宏) 过去虽然去过很多地方,但是因为懒基本从没写过游记。每次出游别人写的内容给我带来了很多便利,也避免了很多麻烦,所以我准备此后尽量在每次旅行之后也写一写。除了能给人借鉴,也作为自己将来的回忆。关于行前准备我推荐一个网站 Wikivoyage,上面会有很多国内内容平台上的游记攻略没有的内容,特别是中国游客不常去的小众之处,可以作为补充。 我小孩上的双语学校因为在圣诞和新年之间外教放假,学校的 project week 允许学生请假,所以我决定趁此机会带他旅行一下。因为时间有限不能去需要超过一周的地方,就选择了我也没去过的曼谷。不需要签证也比较方便。 因为是节日,看了一下喜欢的酒店价格都不划算,就选了 Somerset Rama 9 服务公寓。上次住 Somerset 还是在 Google…
Jan 3, 2025 · blog.incoming@1byte.io (江宏)
提起 Richard Dawkins, 大部分人想起的是他的第一本书《自私的基因》(the Selfish Gene)。他后来写的 the Blind Watchmaker 从另一个角度探讨了和进化论相关的一些问题,我最近看了后觉得同样有趣和重要。和自私的基因一样,这本书比较老,第一版出版于 1987 年,但是内容一点都没有过时。现在能买到的大部分是 2016 年出的 30 周年纪念版,作者在前言里说他几乎没找到需要修改的地方,看完之后我不得不同意。 这本书的书名来自于一个叫 the watchmaker argument…
Nov 19, 2024 · blog.incoming@1byte.io (江宏) 最近我偶然看到了王垠 Substack 上的《不要去医院验光》,当然因为没付费订阅我只能看到开头几段1。然后点上面的链接到了他博客上的「自然视力恢复法」。考虑到这两篇文章的危害,我觉得值得写一点东西给看我博客的人做一些参考。 王垠这个名字很多人都不陌生了,他从清华退学的时候我还在读博,当时还写了一篇文章来评论这件事,~不过现在已经找不到了~2。我那时看他写的宣布退学的文章留下的印象是他是个很聪明但视野有些片面、想法有些偏激的年轻人,没想到他后来变得越来越极端和愤世嫉俗,成了阴谋论的传播者。他的聪明和在计算机方面的一些天分让他成为了一个 influencer,颇有一些追随他意见的人。而当他推广的看法超出计算机领域,有可能实际影响别人的生活时,就危险了。…
Jun 26, 2024 · blog.incoming@1byte.io (江宏) 读博士的时候我们系每年春季都会有一两天让在读的博士生留出特定时段待在自己的办公室,因为一些接到耶鲁的 offer 但还没有做决定的学生会到学校参观,他们可以到系里走访在读的学生,通过提问交谈更全面地了解学校和院系来帮助他们做决定。有一次走进来一个头发已经有点白的人,我还以为是本校其他系的教授,而他告诉我他拿到了我们系的 offer,所以来看一看。他多年前毕业于一所知名法学院,在纽约已经是一位成功的律师,但是他后来对计算机更感兴趣,所以决定不再做律师而从头开始学计算机。和我面谈时他已经完成计算机科学的本科学业,并被几个学校的博士项目录取。我问他是不是希望做计算机犯罪之类与法学相关的领域,他说不是,就是想完全转行。我对这件事印象深刻,一直记得。在我学生时代的认知里,高考时的选择基本上决定了一生的方向,而这个人在人生到了一半的时候不是只改变了方向,而是回到一个新的起点重新开始。…
Jun 25, 2024 · blog.incoming@1byte.io (江宏) 过去一两年有多位投资人朋友和我讨论过 AI 相关的创业机会。我的观点一直都是:大的机会基本上是巨头的,小公司没有特别好的机会。 当技术上的突破让小公司有机会颠覆大公司时,新技术最初的应用都在巨头看不上的新兴细分市场。随着这些市场快速扩大,小公司在成长起来后迅速地进入主流市场抢占原主导者的份额。随着原本不存在的个人电脑市场兴起的 Intel、Microsoft 等是最好的例子。近年来 AI 的发展在技术上有很大突破,但商业上的局面却没有给创业公司颠覆性的机会。一方面这是巨头们从一开始就重视的领域,投入很大;另一方面机器学习本身就需要大量的资源和数据,所以大公司或者他们投资的企业往往更有能力持续产出最好的成果。 另一个原因是新 AI 技术的应用往往是对现有场景和过程的改进或补充,没有创造出以前不存在的全新场景,所以对于已经掌握了用户关系的产品来说,后来者无法形成威胁。我喜欢举的例子是…
Jun 13, 2024 · blog.incoming@1byte.io (江宏) 我 2007 年至 2010 年在 Google 工作的时候,中国的同事们都说百度无良,欺骗用户,把广告显示得和原生搜索結果几乎一样、难以区分。Google 的搜索广告在 2013 年之前一直是通过背景色与原生结果明确区分的。 带背景色的 Google 广告 后来背景变得和原生结果一样,改为用彩色的标签来标识广告。无论在用背景色的时代,还是用标签的时代,Google 都做过很多试验来通过调整颜色提高转化率。从 2020 年起,Google 的广告变成这样了: 现在的 Google 广告 不但视觉上和原生广告完全融合,而且首屏已经被广告占满。这个结果可以说是必然的,不做任何试验就能知道广告样式越接近于原生结果,点击率必然越高。之前做的种种实验无非是 Google 创立之初的价值观和与之矛盾的商业模式相纠结的漫长而耗资巨大的过程。 很多人都读过 Google 的两位创始人在创立公司之前写的…
Jun 3, 2024 · blog.incoming@1byte.io (江宏) 我一直很喜欢 Out of the Gobi1 的作者单伟建。他的三本书我都读过。他在文革时被流放到戈壁六年,失去了上中学的机会,但从没放弃学习。没有放弃对更好未来的追求。在文革结束后他抓住了机会到美国留学,在金融界取得了很高的成就,并创立了亚洲最大的私募基金集团 PAG。他在母校旧金山大学的一次演讲中说2,在任何领域取得成功,最重要的是三方面: 坚持终生学习。他本人的经历最能说明这一点。如果他在离开学校后没坚持学习就沒有后来的一切。 好的判断力(good judgement),他特别提到这比 Angela Duckworth 强调的毅力(grit)3更加重要。方向对了努力才有意义。没有人是生来就有好的判断力的,正确的决策要建立在知识的学习和积累上,所以这可以算上一条的补充。…
May 31, 2024 · blog.incoming@1byte.io (江宏) 我看书大部分时候是用 Kindle,偶尔也会从京东、多抓鱼,或者嘉里中心的现代书店买纸质原版书。新书的扉页背面基本都会盖这样一个章。 扉页背面的审查印章 我原本以为这基本是一个形式,获准进口的成年人类别的纸质书无论是什么内容都会在这一页上盖这个章。直到前几天在一本很厚的书中间的一页看到这个章以及被涂改液覆盖的脚注。 被审查涂改的页面 没想到我国内容审查的粒度竟然那么细。很多人都会问为什么中国的税率那么高,社会福利安全网却还比较差。从这件事的人工成本就能想见政府运行的成本有多高,应该说大家的税还是没有白交的… 从某个时候起,中国的任何互联网产品只要有任何形式的 UGC(包括头像昵称等),就会有很高的审核成本。这类产品早就不是小创业公司能做的了。 如果你好奇,这本书是 Behave,是一本讲人类行为的科普读物。涂改液覆盖的内容是: (11) Mao-induced Chinese…
Apr 9, 2024 · blog.incoming@1byte.io (江宏) 在 LeanCloud 被心动收购快三年的时候,我离开了心动和 TapTap。 Removed from LeanCloud GitHub organization 一段时间前我看到 Will Larson 写的 Deciding to leave your job,其中讲到决定是否离开时应该问自己的四个问题: Has your rate of learning significantly decreased? Are you consistently de-energized by your work? Can you authentically close candidates to join your team? Would it be more damaging to leave in six months than today?…
Dec 19, 2023 · blog.incoming@1byte.io (江宏) 「如何反转一个链表?」是一个在面试中被问滥的问题。我参与的面试中偶尔也有我们自己的面试官问。 如果你去别的公司面试被问到这个问题,要是给出的答案是(以 Python 为例): def reverse(l): l.reverse() return l 或者是: def reverse(l): return l[::-1] 肯定会被拒掉。面试官所预期的是你自己定义节点,再定义链表: class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self): self.head = None # 以下略,问 ChatGPT 就可以了。 不过既然是个被问滥的问题,如果遇到不妨尽量给出一个面试官没见过的答案。 比如,构造链表: def cons(h, t):…
May 17, 2023 · blog.incoming@1byte.io (江宏) 这是我一年前发在 TapTap 内部 Confluence 的一篇文章,经过一些修改后公开出来,希望对更多人有价值。 Google 的很多软件工程实践都在对外发布的各种 Tech Talk、CppCon 的演讲以及多本已出版的书里提到过(比如 Software Engineering at Google、Site Reliability Engineering 等),所以这篇文章的内容并不算新鲜事,只是贡献一些个人视角。另外我在 Google 工作已经是 10 多年前的事,现在可能已经变化很大,但我认为 2000~2010 年的时候是 Google 最有创造力、最高效、对人才的吸引力也最强的时候。 一点背景 有时言必谈前公司的人会有点让人讨厌,不过无论是之前创业,还是现在,讨论起工程方面的事情都很难避免提起 Google 是怎么做。Google…
Mar 23, 2023 · blog.incoming@1byte.io (江宏) 其实这是知乎上的回答。公司并购之后由于团队变大了很多,特别忙,所以博客和播客都断更了好久。 其实我们官网的公告已经把主要的前因后果介绍得比较清楚了,没有太多其它的新内容可说。 其它答案里说的大公司同类竞争之类倒不是主要原因。从我们创业开始,阿里、腾讯就陆续有过多次形态类似的产品尝试,后来字节也有相似的产品,但是都并没有很成功。选择不用 LeanCloud 的用户大部分是会用云主机等形态更底层的云服务的。所以本质上我们主要是和更传统的云服务竞争,而不是和形态相似的产品竞争。 LeanCloud 创业的几年中,各方面都有不少改进的空间,但是在资源有限的条件下,我觉得在国内环境能做的范围内,产品、团队和文化都还是有一些做得不错的地方,各方面被同行借鉴得也不少。但是我们在财务上并不成功,至少没有达到 venture-backed…
Sep 12, 2021 · blog.incoming@1byte.io (江宏) 这一期我们从 IPFS 项目及 Brave 浏览器的一些新尝试展开聊了 Web 的开放性相关的话题。 特别感谢 Kai Luo 为我们制作了片头片尾音乐。 如何收听 播客主页 有国外各大平台的链接 直接订阅 RSS 其它平台待更新 本期主播 Livid 王子亭 江宏 相关链接: IPFS IPNS ZeroNet Brave 浏览器
Feb 13, 2021 · blog.incoming@1byte.io (江宏)
在 small talk 的第二期我们聊了一下搭载苹果 M1 芯片的 Mac。我们回顾了各自使用 M1 Mac 的感受和遇到的问题,后半部分讨论未来可能的行业影响以及购买方面的建议。 欢迎留言给我们提出反馈以及以后希望听到的话题: 语音留言(你的留言可能会出现在以后的节目里) 文字留言:请在本帖下面发评论 如何收听 播客主页 有各大 Podcast 平台的链接 喜马拉雅 直接订阅 RSS 本期主播 Livid 王子亭 江宏 讨论中提到的相关链接 苹果正式发布 M1 芯片 在 M1 芯片 Mac 上使用 Homebrew Docker desktop for M1 Mac tech preview Why is Apple’s M1 chip so fast? 在 M1 Mac 上跑 3DMark 在 M1 Mac 上用 Rosetta 2 + CrossOver 玩 Resident…
Dec 28, 2020 · blog.incoming@1byte.io (江宏) 最近难过地得知 Stan Eisenstat 教授在 12 月 17 日去世,我在 2017 年回学校时还去找他聊了会儿天。这也让我想起几年前去世的 Paul Hudak。这两位教授虽然不是我正式的导师,但都对我影响很大,所以就想写一写我对他们的记忆。 Stan Eisenstat 我在去耶鲁上学之前就在 Joel Spolsky 的 Joel on Software 里读到过 Stan Eisenstat。他教的 CS323: Systems Programming and Computer Organization 在学生中是一门传奇性的课程。选课的人往往在那个学期会需要花大量时间熬夜甚至通宵来完成他布置的几个大作业,而在课程完成后都会觉得收获很多。进入耶鲁后我抓住机会申请做了这门课的助教。当年(1998 -…
Dec 24, 2020 · blog.incoming@1byte.io (江宏) 我们一直都想做一个中文播客节目,但是因为最初提出想法的人都比较腼腆,一直没有启动。最近我来推动开始了这件事。 播客名称叫 small talk,除了闲聊的意思外,也有个编程语言叫 Smalltalk,算是有些双关。这个播客的目的不在于宣传产品或公司,只是聊一些有趣的技术话题。会长期参与的除了我自己外还有 V2EX 的 Livid 以及我在 LeanCloud 的同事王子亭。我们也会邀请其它嘉宾来临时参与,欢迎在评论里留言建议以后的话题。 第一期的话题是聊聊每个人家里的私有云。为了快速发布,片头片尾音乐等细节就省略了,以后再慢慢迭代。目前发布在以下平台: 有人说没有 RSS,所以我把 RSS 挪到了第一个 Anchor(源) SoundCloud Spotify Apple Podcasts Pocket Casts Google Podcasts 喜马拉雅 或者可以直接播放:…
Dec 10, 2020 · blog.incoming@1byte.io (江宏) 很长时间之前我在公司内挖了个坑说要做个 Emacs 和 org-mode 的内部分享1。后来一直因为拖延症没有做。上周我和其他同事讨论准备做播客的事,就又想起这件事,周末花了点时间录成一个视频放在 YouTube: 这也是我做的第一个视频教程,看完别忘了点击订阅 😁。很快我们也会发布第一期播客,请关注。 忘了具体原因,大概是有一次受不了新同事在编辑器方面的品味。😏 ↩︎
Nov 23, 2020 · blog.incoming@1byte.io (江宏) 几年前一位 LeanCloud 的用户做了一个基于 LeanCloud 的评论系统叫 Valine。后来在中文独立博客,特别是用 Hexo、Jekyll 这样的静态博客框架的用户中很流行。但是最近一两年因为监管变严,无法自己备案域名的国内用户不得不迁移到国际节点。另外免费的开发版服务本意是用于开发测试,而不是需要持续运行的正式项目,所以用户们想了一些比较 hack 的办法来绕过开发版限制。大多数人都会直接 copy 网上搜到的教程,不做任何修改,这样也给 LeanCloud 带来了一些奇怪的问题。比如我们花了不少时间来分析为什么每天总是在同一时刻有大量用户的应用会开始运行定时任务。 我用业余时间断断续续做了一个叫 Remark Ninja 的评论系统,目前到了可以开放给其他人用的状态。我自己的博客、LeanCloud 的博客,以及一些自己发现 Remark Ninja…
Sep 29, 2020 · blog.incoming@1byte.io (江宏) 前段时间 Trump 的这个采访成为社交媒体焦点的时候,我正好在复习一些 neural network 的材料,于是想到可以用一些新的开源工具做一个识别 woman、man、cemara、TV 的完整应用试试。这个例子足够小,可以在很短时间完成,很适合用来说明如何做一个完整的深度学习应用。完成的应用部署在 https://trump-sim.jishuq.com (LeanCloud的一个云引擎实例上)。 做这个应用分为三步:先用一些图片完成模型的训练,然后把模型导出,做一个后端的 API 用来识别图片,再做一个前端用来上传图片和显示结果。 准备训练数据 Jupyter notebook 是个很流行的用来做数据分析和机器学习的交互式环境,它可以把 Markdown 文档和 Python 代码放在一个笔记本里,也可以以图表、图片等友好的方式显示代码的运行结果。这里也会用到…
Aug 21, 2020 · blog.incoming@1byte.io (江宏) 最近看完了 Out of the Gobi: My Story of China and America,要是翻译成中文应该叫「走出戈壁:我的中国和美国故事」。作者单伟建上完小学后就因为文革下放到内蒙古生产建设兵团。文革后,没拿到小学毕业证的他进入了北京外经贸大学,之后在旧金山大学获得了 MBA,在 UC Berkeley 取得博士学位,后来在 University of Pennsylvania 任教。现在他是亚洲最大的私募基金之一 PAG Group 的主席和 CEO。这本书提到了很多在中国大陆比较敏感的话题,所以很可惜在目前回归个人崇拜和个人权威的环境下,应该短期内在中国见不到不经大量删减的中文版了,所以只能看 Kindle 版或者听 Audible 的有声书。…
May 24, 2020 · blog.incoming@1byte.io (江宏) 最近我们决定正式开始每季度一周的全员远程工作,这是我发给公司的邮件: 大家好, 我们在疫情期间已经经历过比较长时间在家办公,以后一段时间,特别是冬季来临时,疫情可能出现反复,还可能出现类似的情况。因为这次疫情,全球的工作方式都可能出现永久性的改变。我们希望每个人都能在远程的条件下有高效工作、协作的习惯和能力,所以决定从 6 月开始试行每个季度全员在家办公一周的政策。除了让大家习惯于远程工作,让我们未来在招聘上有更大的灵活性外,也能满足一些同事兼顾家庭的需求。 具体的试行方案如下: 在 3 月、6 月、9 月、12 月的第二个工作周,全员远程办公。比如这次是从 6 月 8 日开始的那一周。 远程办公的时候和日常的要求没有差别,无法在正常时间工作的同事还是需要照常请假。…
May 22, 2020 · blog.incoming@1byte.io (江宏) 我家里的局域网除了电脑、iPad、电视、PS4 等常见设备外,最主要的额外配置是一个 Synology DS416slim NAS 和两个树莓派(Raspberry Pi)。 我的树莓派 3 和树莓派 4 大概两年多以前我为了把公司老笔记本上换下的一些 2.5 寸硬盘利用起来,买了一个二手的 DS416slim NAS 用来做局域网的共享存储。不过它只有 512M 内存,CPU 也很弱,除了做文件服务器外跑不了太多东西。后来我陆续增加了 Raspberry Pi 3B 和 Raspberry Pi 4B 用来支持其他服务。 Raspberry Pi 4 有 4G 内存和千兆网口,可以跑比较多东西。我用 Clash 配置分流规则并配合 iptables 把它作为局域网内其他设备的网关,除此外还运行着 Radarr、Sonarr 等服务,mount 了 NAS 用于数据存储。…
Apr 22, 2020 · blog.incoming@1byte.io (江宏) 在我加入 Google 几个月后,北京奥运在全球的火炬传递活动开始了。很多人可能都对那段时间的事有印象:在几周前拉萨刚发生了暴乱,很多无辜的生命消失了,并且 CNN 等媒体使用了不实的图片进行了有偏见的报道;在巴黎,支持藏独的示威者多次粗野地干扰奥运火炬传递,还有人从坐在轮椅上的运动员手中把火炬夺走。巴黎的下一站就是旧金山,在湾区工作的中国人大多都请假去了旧金山以支持火炬传递,避免巴黎的事件重演。当天 Google 一个餐厅的菜单上出现了一个甜点叫 Free Tibet Goji Berry。由于中国员工大多都在旧金山,没什么人注意到。在第二天这个名称又再次出现在菜单上,我看到中国员工的邮件列表里有人发照片开始讨论这件事。Google 的人力资源副总裁 Laszlo Bock 后来写了一本书叫 Work Rules(中文名「重新定义团队」),其中提到这件事,中文版里是这么翻译的:…
Feb 8, 2020 · blog.incoming@1byte.io (江宏) 2019 年已经过去了,我想分享几个我个人认为比较好的习惯。 远离微信朋友圈(和类似的产品) 其实这不算是今年开始的。我很早就把微信朋友圈功能关闭了,在更早的时候就已经不上微博了。在近几年我除了偶尔转发本公司的公众号文章外,几乎没有看过朋友圈。微信对我来说是个因为工作不得不用的 IM 工具,而朋友圈就和 /dev/null 一样是个 write-only 的地方。这样并没有使我错过任何有价值的信息。我订阅了 WSJ 和 Bloomberg 这样的『传统媒体』电子版,值得关注的事一般都能看得到比较深入和专业的报道。我的朋友圈里以投资人和创业者居多,所以被转来转去的内容最多的就是各种 PR 稿和软文。其实大部分人的朋友圈都是如此。除了公司以外,个人也是有做 PR…
Jan 2, 2020 · blog.incoming@1byte.io (江宏) 前段时间的一个大新闻是估值最高的创业公司之一 WeWork 上市失败被投资人软银接盘控股,CEO Adam Neumann 离开。软银接盘 WeWork 并购买 Neumann 手中的股份时以 50 亿美元计算公司的估值1,而 1 月软银最近一轮投资时给出的估值是 470 亿美元,也就是说这家公司在几个月时间里估值降到了上一轮融资的 17%,也相当于四年前估值的一半。就在几个月前纽交所的主席和纳斯达克的 CEO 还上门拜访了 Neumann,他们都想争取让 WeWork 在自己的交易所上市。Neumann 向他们提出希望在交易所的餐厅禁用塑料杯和禁食肉类。纳斯达克甚至许诺为致力可持续发展的公司建立一个以 WeWork 命名的「We 50」指数。 这件事无论是看公司/创始人还是看投资人都有很多戏剧性的成分。 WeWork 的外部危机始于它提交的上市文件。这份文件公开的信息让很多投资人对…
Oct 30, 2019 · blog.incoming@1byte.io (江宏)
这是为一个知乎问题的答案。 大学是系统性地学习基本原理的时候,没有必要追逐最新最流行的编程语言和开发框架,毕竟到了毕业工作的时候往往又有很多新的变化。把基本的知识体系掌握好会终身受用无穷。大学只是提供环境和条件,学习的方向和重点需要自己把握。下面这几方面对于本科生是尤其重要的。 计算机体系结构:这是理解计算机工作原理的基础,即使以后只做软件方面的工作,这方面的知识也是至关重要的。一方面软件运行在硬件上,理解计算机各部分的工作原理以及他们之间的通信机制对于代码优化和系统级的软件开发都是必须的;另一方面硬件只不过是石化的软件,软硬件不过是逻辑组合的不同实现方式而已。很多美国大学的这门课程都会让学生用代码把一台虚拟计算机实现出来,这确实是个好办法。 操作系统:所有做软件开发的人都需要对进程、线程、内存的管理有清楚的理解。操作系统为在计算机上运行多个应用程序提供基础,Docker…
Sep 10, 2019 · blog.incoming@1byte.io (江宏) 大部分人在上下班路上做得最多的事就是看手机。盯着手机屏幕的时间久了很影响视力,而且往往会养成走着路也在看手机的习惯,很危险。我最近几个月在上下班和出差的路上都在听 Audible 上的有声书,这是个能把路上的时间利用起来吸收有益的信息,又不用老看着屏幕的方式。 Audible 是 Amazon 旗下的公司,所以它的移动应用里可以听 Kindle 电子书的有声版,此外有一个专门为听者设计的 the Great Courses 系列是非常值得推荐的。这是请一些全球知名的学者录制的各个领域的系列讲座,每个讲座一般有几十集,大约半小时一集。以下是我过去这段时间听的几个: The Fall and Rise of China: 主讲人是 UCLA 的 Richard Baum 教授。他因为年轻时看了 Edgar Snow 写的 Red Star Over China…
Sep 7, 2019 · blog.incoming@1byte.io (江宏) Educated 在去年出版后很快就出名了,Obama、Bill Gates 都推荐过,不过我最近才看完。这本书似乎还没有中文版,不过除了 Kindle 版外在国内也能买到纸质原版。 作者 Tara Westover 讲述了她从童年到博士毕业的故事,主题涵盖家庭、忠诚和教育。她出生在一个美国中部山区的摩门教家庭,父亲经营一个金属废品处理场,母亲给人接生和出售草药,有七个子女。他们相信世界末日即将降临,所以一直都在囤积各种东西以确保生活的自给自足。她父亲有精神分裂症,她从小也经常受一个哥哥欺凌虐待并且得不到父母的支持。由于父母相信阴谋论,不相信联邦政府,所以他们家人生病、受伤、生小孩从来不去医院,完全在家里靠草药解决问题。因为父亲认为学校教育是政府对人的洗脑,她在 17 岁前都没有接受过正式教育,一直在父亲的废品场做帮手。…
Jul 11, 2019 · blog.incoming@1byte.io (江宏) 2019 年 2 月发布的 React 16.8 正式引入了 hook 的功能。它使得 function 组件也像 class 组件一样能维护状态,所有的组件都可以写成函数的形式,比起原有的以 class 的多个方法来维护组件生命周期的方式,简化了代码,也基本消除了因为 this 绑定的问题造成的难以发现的 bug。这篇文章就介绍一下最常用的 state hook,以及在这种新的方式下怎么与后端 API 通讯。 本文以一个管理任务的 Todo list 应用为例,可以增加新的任务,点击可以把任务标记为完成。部署好的效果可以在这里看到,代码在这个 GitHub repo。这个 demo 使用 LeanCloud 作为存储数据的后端,用的是一个 LeanCloud 开发版应用,所以可能遇到请求数超限的情况,建议在本地运行并替换进自己的 AppId 和 AppKey。 这个应用只有一个叫 App…
Apr 12, 2019 · blog.incoming@1byte.io (江宏) 去年 12 月看完了 Bad Blood,本来想写一篇推荐作为 2018 的最后一篇博客的。因为拖延症变成了 2019 的第一篇。 这本书的作者是两次获得普利策奖的华尔街日报记者 John Carreyrou,讲的是曾经红极一时硅谷创业公司 Theranos 和它的创始人 Elizabeth Holmes 的故事。 Elizabeth Holmes 创建 Theranos 的时候只有 19 岁,她号称发明了突破性的验血技术,只要在指尖取一滴血就能做上百种测试,给病人提供详尽的健康数据,并且宣称 Theranos 像苹果的产品一样精致小巧,可以放在病人家里随时使用,完全淘汰市面上那些庞然大物。在细心策划下,她得到了各大媒体的竞相报道和各种活动、展会的邀请。有些讽刺意味的是最早把聚光灯照到 Holmes 身上的主流媒体也是后来让她身败名裂的华尔街日报。和很多名人一样,她也在 TED…
Jan 15, 2019 · blog.incoming@1byte.io (江宏) LeanCloud 的团队起源于 LeanCloud 这个产品诞生前两三年,当时我刚离开 Google 回国不久。在 Google 内部用来做缺陷和任务管理的工具叫 Buganizer,有一些独特的功能,当时我觉得 Buganizer 比外界的 Jira 等同类工具好用很多,于是组建了一个四个人的小团队,准备做一个可以和 Jira 竞争的产品。 因为我很喜欢 Clojure 语言,所以团队的早期成员都是从当时刚出现的 Clojure 中国社区招募的。这个社区最初几年的聚会也大多是我们主办的。它是个很小众的语言,所以社区里比较容易找到技术不错又喜欢学习新东西的人,这正是一个小型技术团队所需要的。我们用大约三个月时间开发并发布了第一版,因为还没有收入,资金很有限,所以我开始寻找天使投资。在这个过程中我通过创新工场认识了 YouTube 的两位创始人 Chad Hurley 和 Steve…
Oct 23, 2018 · blog.incoming@1byte.io (江宏) 最近写了中国人学好英语的重要性。我想续一篇说说如何学好英语。写上一篇的起因是我想找几本工作相关的书送给一些同事的时候,发现国内出版的目标领域的中文书里实在挑不出值得推荐的,最近看过觉得好的英文书在国内也没有翻译出版。所以这一篇也算是写给各位同事看的。 本文说的方法比较适合于成年人,也就是没有英语考试的压力,只是为了自己的提高而学的人。另外这里主要说的是英语阅读,因为这是我认为最有价值的技能,而且因为可以日常持续使用,达到比较好的水平后容易保持。口语对于一般人来说在日常生活中没有经常使用的环境,难以达到并保持在高水平。…
Aug 25, 2018 · blog.incoming@1byte.io (江宏) 如果现在我必须把过去学过的所有知识都忘记,只能保留一样技能,我会毫不犹豫地选择英语。因为我在初中以后的学习过程非常依赖英语,特别是英语阅读。 我上大学的时候,专业课老师选择教材时大多不是从质量出发,通常要么是自己写的教材,要么是本校出版的教材。在大一之后我基本就不再去上专业课,而是大部分时间在图书馆看影印版的英文教材自学1,每个学期结束前两周再去课堂对照一下老师勾的复习重点和自己学的内容,一方面防止自学的范围有缺漏,另一方面防止考试时中英文的说法对不上。这种学习方法的一个副作用是后来考 GRE 和 CS 专业 GRE 的时候相对比较容易。 对中国人来说,学好英语对生活不是必须,但是会让你在学任何其它东西的时候选择多很多,让你的知识体系更加完整,为你打开新的窗户。这有几点原因。…
Aug 23, 2018 · blog.incoming@1byte.io (江宏) 早在 Docker 正式发布几个月的时候,LeanCloud 就开始在生产环境大规模使用 Docker,在过去几年里 Docker 的技术栈支撑了我们主要的后端架构。这是一篇写给程序员的 Docker 和 Kubernetes 教程,目的是让熟悉技术的读者在尽可能短的时间内对 Docker 和 Kubernetes 有基本的了解,并通过实际部署、升级、回滚一个服务体验容器化生产环境的原理和好处。本文假设读者都是开发者,并熟悉 Mac/Linux 环境,所以就不介绍基础的技术概念了。命令行环境以 Mac 示例,在 Linux 下只要根据自己使用的发行版和包管理工具做调整即可。 Docker 速成 首先快速地介绍一下 Docker:作为示例,我们在本地启动 Docker 的守护进程,并在一个容器里运行简单的 HTTP 服务。先完成安装: $ brew cask install docker…
Jul 16, 2018 · blog.incoming@1byte.io (江宏) Bruce Schneier 的《应用密码学》(Applied Cryptography)是我的密码学启蒙书。我上本科的时候读过一遍影印版。读博士的时候导师说他有本出版社请他写书评时送的,听说我喜欢就送我了,所以又读了一遍。过了几年 Bruce Schneier 又写了一本书叫 Secrets & Lies。即使你没有兴趣看这本书,它的前言也值得一读。这里我只翻译一部分: 七年前我写了另一本书:《应用密码学》。我在其中描绘了一个数学的乌托邦:可以永远保守秘密的算法,以及能安全可靠地执行无监管的赌博、抗检测的认证、匿名货币等美妙的电子化交互的协议。在我眼中,密码学是带来平等的伟大技术;任何有廉价计算机的人都能拥有与最强大的政府同样的安全。在两年后写此书第二版时,我甚至说「仅靠法律保护自己是不够的,我们还需要靠数学保护自己。」 然而我错了。密码学做不到以上的任何一点。 这并不是因为 1994…
May 13, 2018 · blog.incoming@1byte.io (江宏) 以下是我在自己的微信公众号 StartupJourney 发的最后一篇文章。 这个公众号从 2016 年 9 月后就没有更新过,其实这期间我有写文章,但是都只发在了知乎专栏和 blog 上。首先是因为微信后台的编辑器很难用,从 blog 把 Markdown 文本同步过来很麻烦。我一不是网红,二不开微店,也就不在乎微信的流量,没有动力来和这个编辑器做斗争。其次我一直挺讨厌微信这样一个从产品理念到运营方式都很封闭的系统,也就没有动力为这个 walled garden 添砖加瓦,在一个连外部链接都不允许的地方写东西。 微信对我是个因为工作原因不得不用的 IM 工具,我很少打开朋友圈(发工作广告时除外,惭愧)。最近收到邮件通知说长期不登录的公众号会被删除,所以就登录进来写最后一篇文章让这个公众号和各位订阅者告个别。 如果你有兴趣继续关注,欢迎关注我的知乎专栏,以及 LeanCloud…
Apr 26, 2018 · blog.incoming@1byte.io (江宏) 我先回答一些上一篇文章发布后看到的一些问题。我在第一篇文章里避免了对具体技术的讨论,因为加密货币和区块链是复杂和多面的问题,各种媒体经常把概念混淆,要解释清楚不容易,所以就先写一写对普通投资者有用的一些事实。 我收到的很多反馈其实也证明了这种混淆。有的人告诉我相信比特币的长期价格会越来越高,有的人告诉我区块链就像互联网早期、有很高的应用价值,等等。我上一篇文章里其实并没有涉及这些话题。反对意见中有一点和我的原文略有关系,就是不管泡沫如何,股票最终没有被放弃,电子技术没有被放弃,互联网也没有被放弃。不错,南海泡沫危机后一百多年其他公司又可以重新发新股了,但是危机发生时的那些公司大都消失了,那些投资它们的人也没有翻盘的机会。互联网是发展起来了,但是和 2000 年时那些倾家荡产的人没什么关系,对大部分人来说失去了的东西没有回来。相反很多在 .com bubble…
Feb 8, 2018 · blog.incoming@1byte.io (江宏) 过去这几个月已经有很多朋友和我说,你们怎么不在区块链方面做点事呢,这很适合你们啊,然后把我批判一番。虽然我一直置身局外,但是后来觉得自己的博士论文主要就是关于分布式共识的,而现在很多人喜欢把这个词挂在嘴边,好像成了大家都懂的东西,要是我不花些时间研究一下加密货币和区块链也说不过去,有成为井底之蛙的风险。 几个月过去了,这个领域的热度在不断上升。就在我喝着咖啡写下这段话的时候,旁边一桌就是几个从大公司出来创业的人在谈论着区块链。我一直想找时间写篇文章把过去这段时间的所得总结一下,但是积累下来的内容越来越多,却找不到时间写一篇很长的文章。加上水平有限,也不能很好地把许多关系复杂的内容组织到一起,所以就分为几篇吧。第一篇是比较通俗,对普通人也比较重要的话题。技术层面的问题等下一篇再讨论吧。 对冲基金 Bridgewater 的创始人 Ray Dalio…
Feb 4, 2018 · blog.incoming@1byte.io (江宏) 在 IT 行业,性别的不均衡是个经常出现的话题。因为在这个领域从业的女性比例很低,所以有很多公益组织致力于提高女性在 IT 业的参与度。也有不少人认为整个行业对女性存在着一定程度的偏见和歧视,因为一些人认为女性从事技术工作的能力要弱于男性。 事实上,计算机这个行业的发展从一开始就是和女性密不可分的。Computer 这个词是在计算机出现之前很久就有的,指的是以计算为职业的人。因为女性通常比较细心,进行这样的工作时出错比较少,所以当时的 computer 大部分是女性。这些女性为很多科学上的关键发明发现和二战的胜利做出了重要贡献。二战期间科学家衡量所需计算能力的单位不是 megahertz,不是 teraflops, 而是 kilo-girls — 也就是相当于一千个女孩的算力。…
Nov 23, 2017 · blog.incoming@1byte.io (江宏) 9-11 9/11 的时候我在武汉大学,刚进入大四。每层楼的楼道里挂着两台电视,一大群学生们围在电视周围看着燃烧的双塔欢呼雀跃。我在武大 BBS 上发表了一点同情美国遇难者的言论,立刻被骂得体无完肤。 一年之后,那些为 9/11 欢呼的同学里有不少人和我一样到美国留学。 现在我已经回中国多年,而那些同学里有不少已经是美国人,或许还会去参加美国的选举。 我希望他们已经变了,也希望现在的中国大学生已经变了。 这篇文章原本发表在知乎。从知乎文章下面的评论看来,很多中国的年轻人和当年并没有什么变化。很遗憾。
Sep 11, 2016 · blog.incoming@1byte.io (江宏) 聊天工具除了用来传递消息之外,还可以帮我们完成一些重复琐碎的工作,比如让它去追踪一些数据变化,象下图中的 Trump 会告诉我们发表在知乎上的帖子又增加了多少新的读者关注。 Trump - 知乎数据 下面我就来介绍一下如何在 LeanEngine 上快速开发和部署一个像 Trump 这样的聊天机器人。因为我们团队使用的聊天工具是 BearyChat,所以就以 BearyChat 为例了。 首先,开始一个新的 Node.js 项目并把 RoLE 增加为依赖。RoLE 是 Robot on LeanEngine 的缩写,这是从我们自己的聊天室机器人抽象出来的一个库。不过因为已经有一个叫 role 的 NPM 包,所以包名就只能叫 role-model 了,也是个有趣的名字。用下面的命令把它加到你的项目里: npm install --save role-model 这个库只有一个顶层 API…
Jun 19, 2016 · blog.incoming@1byte.io (江宏) 昨天被一个知乎帖子刷屏,简单地说是一家公司取消了离职员工已经确权的期权,细节可以看原文,就不详述了:注册在开曼的公司,其期权究竟能不能买? - 职人社 - 知乎专栏。因为我们也遇到过怎样处理离职同事的期权的问题,另外看到评论里有很多错误的信息,所以在这里说一说。 一个持有创业公司期权的人行权购买股份可能有两方面的含义(原文说的是美元架构的公司,所以以此为例): 成为注册在开曼的公司的法律上的登记在案的股东。这确实至少存在几个问题:…
Jun 9, 2016 · blog.incoming@1byte.io (江宏) Dijkstra 的全名叫 Edsger Wybe Dijkstra。大部分中国程序员如果能记住这个名字是因为学过计算最短路径的 Dijkstra 算法,然而大部分人都难以记住正确的拼写,因为他是荷兰人,名字不符合英语的发音规则。 Cannot remember his name. 他是几位影响力最大的计算科学的奠基人之一,也是少数同时从工程和理论的角度塑造这个新学科的人。他的根本性贡献覆盖了很多领域,包括:编译器、操作系统、分布式系统、程序设计、编程语言、程序验证、软件工程、图论等等。他的很多论文为后人开拓了整个新的研究领域。我们现在熟悉的一些标准概念,比如互斥、死锁、信号量等,都是 Dijkstra 发明和定义的。1994 年时有人对约 1000 名计算机科学家进行了问卷调查,选出了 38 篇这个领域最有影响力的论文,其中有五篇是 Dijkstra 写的。 Dijkstra…
May 1, 2016 · blog.incoming@1byte.io (江宏) 大多数程序员都对「冯·诺伊曼」这个名字非常熟悉,因为他在计算机领域做出了非常多的贡献。现代计算机大都符合把指令和数据一起存储的概念结构,这个结构就被称为「冯·诺伊曼结构」;Knuth 在算法著作中认定冯·诺伊曼为归并排序的发明者;另外他还创立了细胞自动机这个子领域。但可能很多同行对他的其他方面并不熟悉,所以这篇文章想介绍一下冯·诺伊曼在计算领域之外的贡献和他的一些趣事。 和很多知名的科学家一样,他是个神童和天才,和他们不一样的是,很多人认为他是人类历史上最聪明的人之一。 他在六岁时就能心算两个八位数的除法,在八岁时能熟练运用微积分。十五岁时他师从著名匈牙利数学家 Gábor Szegő 学习高级微积分,当 Szegő 第一次与冯·诺伊曼会面时,被他的聪明震惊得哭了。(有史料记载的真事)…
Apr 15, 2016 · blog.incoming@1byte.io (江宏) 这是对知乎上一个问题的回答:Parse 关了,国内的 LeanCloud 又何去何从? 这件事体现了在一个大公司中,一个产品的「成功」和「在它的组织内的成功」不一定是相同的。一个产品在它组织内的成功取决于这个组织的方向、优先级、以及体量。 New York Times 对 Parse 关闭事件的分析是比较全面的:Facebook 收购 Parse 的时候,它的股价正处于低于发行价的低点,作为从 Web 起家的公司,还没有什么有意义的移动广告收入,所以在非常急迫地寻找在移动平台的突破口。而 Parse 作为一个成功的移动开发平台,提供了一个获取新一代移动开发者和移动应用的机会。现在 Facebook 的移动广告收入已经占整体收入的 80% 以上,Parse 与核心业务似乎没有什么关系。如果云服务要成为一个对 Facebook 有意义的业务,那就要达到可以和 Amazon、Google…
Feb 1, 2016 · blog.incoming@1byte.io (江宏) 一年多以前 LeanCloud 在自己的开放资源网站发布了薪酬和期权的计算方法,其中包含了每类职位各个级别的薪酬。 此后有不少朋友,特别是创业者问过我一些问题。 一直想写篇短文统一回答,并说说实践中的一些感受,但直到现在才克服拖延症。 过去这一年多没有对这套规则做实质性的调整。一个形式上的改变是把原来 senior 之类的级别名换成了 E0, E1, … 和 I0, I1, …,分别代表经验/能力(Experience)和贡献(Impact)的级别。 另外个别职位的基数也做了小幅调升。 以前关注过我们开放资源网站的人可能会注意到我们在薪酬公式后面增加了一个 adjustment 部分。 原因是我们以前为大家提供了一定的午餐和话费补贴,需要用发票报销。 这造成的问题是每个月每个人都要收集、整理发票,填报销单,财务同事还需要花更多时间处理,好处是每人可以省不到 200 元的税。…
Nov 27, 2015 · blog.incoming@1byte.io (江宏) 最近在开发者圈里讨论最多的莫过于 XCodeGhost。其实在 30 年前,更高明的手段就出现了。 1984 年的时候,UNIX 创造者之一 Ken Thompson 获得了 ACM 图灵奖。他的获奖演讲叫做 Reflections on Trusting Trust(反思对信任的信任)。 Portrait of Ken Thumpson 在这个稿子只有三页纸的演讲中他分三步描述了如何构造一个非常难以被发现的编译器后门。这后来被称为 the Ken Thompson Hack(KTH),有人说它是 the root password of all evil。 在第一步里,Thompson 展示了一个可以输出自己的源代码的 C 程序。这需要一定技巧,但很多人作为编程练习都做过。 在第二步里,Thompson 在 C 的编译器里增加了一段代码(后门),让它在检测到自己在编译 UNIX 的…
Oct 9, 2015 · blog.incoming@1byte.io (江宏)
← Prev ✦ Random Next → Visit ↗ Feed Kagi ↗