title: why you should learn some machine learning
date: 2018-06-24 13:09:47
categories:
tags:

toc

选专业很随机的

一早起来看到老乡群里讨论 702 分的市探花,想起红博士十年前高考的小故事,有些戏剧性。没有多少事情能经历一年的考验,何况十年,十年过去,都是过眼云烟了。

红博士有个特点,高考写作文会手抖。写语文作文手抖,写英文作文也手抖。虽然他留下了 70 分钟的时间写英文作文,还是手抖。红博士写英文作文会先在草稿纸上写好,再誊抄到答题纸上,誊抄的时候会手抖。这一抖,英文作文就从平时的接近满分减 10 分,好在红博士答对了所有客观题。语文作文手一抖,也是比常规得分低了十几分。好在那年的数学和理综稍微有些难度,红博士还是保持了足够的优势,只比省状元低了十分左右。对答案估分的时候,发现一个神奇的规律,那年的英文选择题答案,全部都符合 ABCD 的规律,每 4 题都是一个 ABCD 的顺序调整,命题小组真是太任性了。

估分后高中老师带着我们,驱车到郑州找到招生组下榻的酒店,招生组组长听完我的估分和志愿情况,说除了建筑和经管以外的专业基本没有问题。如今的清华招生办主任,在当年还是河南省的招生组组长。当年的红博士被奇怪的风气洗脑,一心想着建筑相关的专业,再不行就学信息类专业,自知不能选建筑,于是把土木工程放在了第一志愿,后面几个志愿填上计算机电子自动化等等。招生组的另外一位老师,我到清华自动化报到后又见到了,不免猜测是不是这个老师把我丢进了自动化系,不然为什么不是计算机和电子。。。又过了几年,认识了更多的人,还发现一堆复杂交错的渊源,世界真是太小了。

到了大学以后,有一次跟辅导员聊起第一志愿是土木这件事。刘导畅快一笑:土木又土又木,咱们自动化才是清华大系:)

自动化在社工、体育上是传统强系,在专业上也是强系,比如有最多的 IEEE Fellow 系友,有最多的部级以上干部等等。如今人工智能大热,在本科招生、研究生招生、甚至本校本科生进实验室上,自动化都成了最有优势的专业。

怎么选专业不后悔?

选专业是个复杂的大问题,我们姑且不去讨论它。从清华毕业后,我接触到越来越多各个学校的学生和毕业生。专业优先还是学校优先这件事,有许许多多的可能性,没有针对性的结论都是不负责任的。从红博士的角度看,有一个大概的倾向:大学给学生提供的最重要的资源是眼界。通常来讲,经济越发达的城市、综合实力越强的学校、综合实力越强的专业,越能提供更大的眼界。比如,清华姚班为什么这么强?去年有一篇很好的文章分析,但本质上,无非是姚班给学生提供了更开阔的眼界。首先姚班从清华新生挑选了在某些方面最顶尖的一批学生组合在一起(这些学生本身就具备了更开阔的眼界,比如高中就开始去 Google 实习这种操作),交叉信息研究院提供顶尖的科研教学资源,最核心的当然还是人脉资源,实习、出国都有更大的眼界。即使如此,清华在科研上最优秀的学生也未必是姚班学生,因为大学四年里,清华还提供了无数的资源开阔学生的眼界,利用好这些资源的学生能够胜出。

当然如果仅仅是科研,大学就损失了很多价值,大家高中毕业直接去念研究生就好了。大学里,好玩的事情太多了,好玩的社团,好玩的社工,好玩的体育,好玩的图书馆,好吃的食堂,好玩的实习,好玩的恋爱,好玩的山野,好玩的登山队,好玩的岩壁……

后悔了也没关系,翻盘的机会一次又一次

高考是个翻盘的好机会,通过上清华,你终于可以再也不用跟不喜欢的人在一起!!!有没有!!!(太腹黑了。。。

读研究生也是个翻盘的好机会,搞 GPA 不行,可你科研好啊,搞 GPA 不行,可你颜值高啊,搞 GPA 不行,可你导师 Nice 啊!!!(太腹黑了。。。

工作还是个翻盘的好机会,搞学术不行,可是你产品思维好啊,导师不 Nice,可是你公司领导 Nice 啊,实验室弱,可是你公司强啊!!!(太腹黑了。。。

人到不惑还是个翻盘的好机会,当小弟不行,可你会当领导啊,当螺丝钉不行,可是你会当将军啊,金山不行,可是小米做的好啊!!!(雷布斯:黑人?.jpg

要不要报人工智能专业?

专业的本质:利益平衡下的产物

个别学校,什么火就开个什么专业,于是大数据专业,人工智能专业,纷纷冒了出来。

这一波人工智能的火热,主要原因是机器学习在互联网行业的广泛应用。它背后的技术,如矩阵分析、统计推断、数值分析、信号处理、自动控制、体系结构、软件工程等等,依然是传统专业的内容,如自动化、计算机、电子、软件。它影响到的更多是研究生院的体系,也就是各实验室课题组的研究方向,跟本科生的培养关系很小。一个专业的发展,是要经过长时间的试错、调整的。

不过,如今,每个人都应该懂一点机器学习。从变化中找到规律,这是一个伟大的学科。

计算机视觉、语音识别和自然语言处理,是机器学习非常重要的三个应用领域。生活中的方方面面,已经受到机器学习带来的便利。传统学科重在解决某一项具体问题,而机器学习的角色则是一种工具。如果说编程的时代是软件 1.0, 则机器学习的时代则是软件 2.0。这也是为什么机器学习正不断地给传统行业带去改变。

有一种思维叫程序员思维:任何重复性的工作,都应该程序化,让计算机完成。那么红博士要提一种机器学习思维:任何可以定义数据输入和标签输出的工作,都应该建立机器学习模型。

最好的工程师都是造轮子的,机器学习就是一个轮子。如今机器学习可以帮助建造更好的司机、更好的医生、更好的金融分析师,将来的某一天也许能建造更好的科学家。

加入造轮子行业的最好时机是十年前,其次是现在。

2017 年飞快地过去了,这一年的生活经历了巨大的改变。年轻人总是这样,生活是不可预测的,则充满乐趣。

学业

博士毕业

在导师的 push 下,终于按时完成博士论文撰写、送审,5 月份通过了博士学位答辩。整个博士论文环节中,深深感受到了清华为保证培养质量,而设下的种种关卡。为拿到博士学位,真是要过五关:开题答辩、中期答辩、预答辩、论文送审、最终答辩。这里面难度比较大的环节是开题答辩、中期答辩和论文送审。在写论文和答辩的过程中也算是系统地整理了研究课题,让其逻辑自洽,完整地探索了物体检测的三大难:速度、精度和尺度。在未来展望里,我总结了很多条研究方向。毕业后的半年,我居然真的带领实习生们把其中几个方向探索了一遍,出了不少成果。

论文发表

2017 年,一作的 CVPR 论文意外被拒。实习生的 Paper 意外接收,总算了却一桩心事。上半年忙于毕业,没能专注地做什么事情,ICCV 也没有什么收获。本质原因还是早已对 Paper 看淡了。不过后半年暑期实习的实习生们,算法产品化后,顺便投搞了几篇到 CVPR2018。他们都是第一次写 CVPR。看着他们收获满满地完成完整的科研训练,非常欣慰。

工作

带领团队

带领团队,包含人才培养和算法攻关两部分。去年的计划里,有一条是带出一支有战斗力的团队。在毕业后 All in 的后半年,看起来是实现了一部分。一个实习生为主的团队,有很大的不稳定性,这跟算法快速迭代的需求是矛盾的。实习生管理的学问非常大,2018 年应该会更加游刃有余。新的一年全职员工数量也会快速增长,会带来新挑战。

新算法

今年的算法研究跟产品走得更近了,算法突破了一些长期瓶颈。新算法的研究上也实现了突破。总体看,非常成功。

产品

算法从服务器往前端移,AI 云 +AI 端的战略,得到了业内普遍认同。在这样的机遇里,我们率先推出了低成本高性能产品。产品落地,卓有成效。

生活

搬家

从 15 分钟自行车程换到了 22 分钟车程的地方,从合租换成了整租。家里更加宽敞舒适了。多亏了各种米家产品,净化器、加湿器、净水器、台灯、空调伴侣、人体传感器,以及还没拆封的烟雾传感器、天然气传感器和智能马桶盖。。让家里更加舒适了。打印机、LG Ultrafine 4K 显示器,Magic keyboard 和 Trackpad 也让家里的办公环境更加舒适。

长居北京

今年一个非常出乎意料的决定,就是没有定居深圳。尽管我们都对深圳充满了热爱,但北京的人才吸引力,还是大过了生活质量的需求。意外的是,今年冬天,北京的空气质量居然出奇地好。后来,想明白了,也许生活本身就不该是确定的。喜欢深圳这个城市,也许仅仅是因为在那里长期生活过呢?回答这个问题,唯一的办法就是做更多尝试。

周游世界

今年是出差的转折点,以前喜欢到处跑,如今如果能待在家里,何苦要奔波呢?

旅行,则不一样。完全放松的旅行,是生活重要的一部分。抓住学生时代的最后一点闲散时间,完成了新疆徒步的愿望,见识了北疆美轮美奂的大草原,草原的人和美景。路上,我们还遇到一条不知道从哪儿跑来的狗,一直跟了我们好多天,我们给它起名来福,加上小豆子和小莲子,就组成了阿尔卑斯山上的少女。

电子产品

Apple Watch Series 3 增加了电话功能,芯片性能也提升不少,体验非常好,现在可以两天充一次电了。

iPhone X 的 OLED 屏幕很舒服,人脸解锁还挺靠谱,多亏了今年冬天没怎么戴口罩。

iPad Pro 除了屏幕大了一些,配上 Apple Pencil 可以写写画画。但实际使用率还是比较低。新鲜感一过,就跟旧的 iPad 一起落灰了。

Kindle Oasis 2 换了七寸屏幕,实际体验大了很多,读起来可以少翻很多页,并没有感觉很重,握持手感也很好,自动调节亮度的功能不错。相比 Oasis 一代,最大的好处是非常接近纸质书了。

健身大计

今年健身房去的少了很多,夏天回清华游了几次泳,很多时候一天下来最大的运动量居然是通勤的自行车或者步行。

冬天到了,又新购置了跑步的装备,周末去奥森跑步体验不错。以后要成规律才行。

谈婚论嫁

趁着国庆长假,参加了本科舍友的婚礼,其实是全程吃喝玩乐的贵阳多日游,结束以后又新成了一对儿,现在天天在朋友圈秀恩爱。离开贵阳,和爸妈一起去 xhh 家里,又是几天吃喝玩乐。有了婚姻,两个本来完全没有关系的大家庭,突然亲密起来,想想真是人类社交中的一大乐事。婚礼是父母亲的,生活则是两个新人的。身边的朋友慢慢都结婚了,希望我们都能在经营感情上越来越成熟。

2018 年想做的事

  1. 创造更有利于个体成长的环境,提升团队合力
  2. 亲自指导 12 个实习生,其中本科生不低于一半
  3. 做一款爆品,并找到下一个实实在在的落地场景
  4. 一次长距离徒步
  5. 骑车 + 游泳 + 跑步 + 周末登山常态化
  6. 填补旅行空白省份:云南、湖南、内蒙
  7. 做更多回馈 DeepLearning 社区的公益
  8. 做一件回馈实验室的事情
  9. 带爸妈去一趟大草原
  10. 完成一次英语演讲

很多人问题我的团队在做的事情,团队名字叫前端计算(有的叫边缘计算),这里的前端是相对服务器后端而言的。在深度学习算法比较慢的时候,必须跑在服务器上。但随着神经网络加速技术发展、专用芯片和通用芯片的计算能力提升、隐私和处理速度需求、数据中心成本限制,深度学习的计算需要放在设备上进行,这就是前端计算。这里的挑战非常大,需要算法又快又好,还要与设备深度配合。算法方面,我们覆盖大规模视频理解和深度学习相关的基础技术。我们一直在招人,全职和实习都可,我的邮箱是“姓名全拼 @公司域名”。希望你踏实勤奋,coding 能力强,喜欢做研究或者做算法到产品的转换。

春游登山计划

天气

2017.4.15, 多云,13-27℃

时间安排

8:00 包车出发
9:00 到达阳台山自然风景区门口
10:00 到达金山寺
10:40 到达绿栅栏
11:30 到达观景台
12:30 到达山顶
13:00 向凤凰岭进发
15:00 开始下撤
17:00 到达龙泉寺
17:30 到达凤凰岭景区出口
18:00 上车返程
19:00 到达市区吃饭

Read More

在清华大学交换学习的小威,来自美国波士顿。前天一起吃午饭,我给他讲起一个成语,叫“白驹过隙”。意思是时间像骏马飞奔而过地面上的缝隙一样。虽然以他的中文背景未必能参透这个成语的精妙之处,但我们关于时间飞逝的感受也许是相似的。他不久就要回到波士顿继续读大学,而我也要开启新的一年。

2016 年里,大部分事情的发展都超出了我的预料,有些惊喜,有些震惊,有些彷徨。人工智能作为年度热词,就像 Nvidia 的股价一样,一路飙升。

观点

人工智能

圈外的评论家们今天说人工智能是炒作,明天说人类要阻止人工智能。而在圈内,以深度学习、对抗学习、强化学习为代表的技术正突飞猛进,不断在产品层面落地。上亿人的人脸比对技术,前端相机上的实时人脸检测跟踪技术,强化学习驱动的智能相册人脸聚类,人脸布控疑犯抓捕系统,视觉感知驱动的驾驶辅助系统,在我看得见的范围内不断发生。

2012 年 7 月,博士入学前,我第一次听说深度神经网络,在 768 创意产业园的一个深度学习读书会。彼时的深度学习已经在语音识别上实用,不久之后 NIPS 大会上,Hinton 及其弟子发布 ImageNet 图像识别比赛冠军解决方案,深度卷积神经网络,其影响一直到今年,热度从未减退。这五年,正好是我的博士生涯,我是幸运的一代。在浪潮之巅,才看得清哪里是朝阳,哪里是余晖。

2016 年,拉斯维加斯,奢华之城。CVPR 盛会上,深度学习占据了多半领域。我第一次在 CVPR 上展示论文,用深度学习实现的快速而准确的人脸检测现场演示,吸引了大量围观人群。而我新开发的人脸检测算法,其速度之快,精度之高,再过几天就要在 2017 年拉斯维加斯的 CES 上由 Nvidia 在他们的无人驾驶芯片上展示。

技术与产品

这两年毕业了大量的博士生,然而在工业界的发展却是大相径庭。一个人的发展,首先要靠自我奋斗,但也要考虑历史的进程。人工智能技术的落地,首先要考虑刚需。什么是刚需?我认为有两点,开源和节流。人工智能技术创造的价值,一定是从这两个方向去考虑的,意淫出来的商业模式撑不起独角兽的市值。其次,科学家离商业模式还有很多环,商务、销售、产品、研发,任何一环散了,事情就做不好。

做事与做人

几天前,峰瑞资本总结 Google 入华十年留下了什么。讲的是留下的 50 各 Google 员工的发展。看完他们的故事,我想,一个人无论什么时候,一定要在朝阳产业里做核心的职位。在年轻的时候,周围必须是一群最优秀的人。如果这样的条件满足了,那就看自己的本事以及老板的诚意吧。人生短暂,与志同道合的人共事。

学术故事

这一年发生了很多的小事,也认识了很多的人,见识了许许多多的人和事。有圈子,就有故事,有故事就有八卦。见到了很多大人物、小人物。在圈子里待久了,就能见到很多事情的发生和发展。

周围的人

年底了,导师评上了教授,是实验室的大好事。博士二年级的时候,我在一封回给老师的邮件里,说期望两件事情,一是做脚踏实地的研究,二是看博士期间看到导师评上教授。如今至少第二个愿望实现了,回顾往事,感慨无限。

我的学术 mentor 大神事业一帆风顺,回想起一年多以前,并肩写代码的经历,也是感慨颇多。他优秀的领导才华、敏锐的技术判断和舍我其谁的担当,创造了可观的价值,培养了一支极富战斗力的团队。他佩服的是技术大神,我想在这个时代,这个愿望比他的偶像会更快地实现。

我的朋友大部分过的都不错,我祝福他们。

生活

  • 这一年忙忙碌碌,消瘦了一些,主要是因为饭太难吃了,实在吃不下。很多时候休息不够,健身坚持的不并不好。
  • 去了趟武夷山和婺源,然而似乎都太匆忙。
  • 无法适应校园的生活了,太安逸。
  • 经济大环境不好,投资收益为负。
  • 电子产品都是小孩子的游戏,我拥有几乎所有的最新产品,却带不来更多的满足感。穷的身无分文的时候,凑钱买的第一个 iPad,是最满足的时候。超前的消费观才能带来满足。

未来

到了找工作的年纪,并没有去找工作,然而大环境太好,导致无数的猎头找上门来。确定的几家 offer,都声称是他们给出的最高的级别和薪酬期权包,也都自以为是市场上最有竞争力的 offer。一个人的发展,首先要靠自我奋斗,但也要考虑历史的进程。上大舞台,干大事业,这是清华几十年来的就业定律。我常常想,这个大舞台到底是什么?
一年以前,我从未想到今天的 AI 格局,等到明年,一切也未必会尘埃落定。

2017 年想做什么?

  • 带出一支富有战斗力的团队
  • 拓展知识领域
  • 川西徒步、自驾
  • 学编曲
  • 健身圆环达标每周 3 天
  • 投资收益 5%+

今天推荐 ownCloud, 一个建立私有云存储的工具。

为何要用私有云

最好用的云存储服务是 Dropbox,这点大家公认。然而在我天朝,Dropbox 访问常常受限,配合翻墙工具使用尚可接受,但仍有不便之处,比如在翻墙工具不稳定或者分享文件给别人的时候。同理,Google Drive 也有这个问题。
国内以百度云为首的一批云服务则以不可信任著称,重要文件还是算了。
ownCloud 作为一款开源工具,可以跨多平台使用,服务端可以部署在 linux 主机上,客户端则支持 Linux, macOS, Windows, iOS 以及 Android, 当然还可以像其他云服务一样从网页端访问。 可谓一款全平台工具。

ownCloud 部署 Tips

部署的细节,官网查询即可。这里分享几个 tips.

域名映射

需要准备好一台有固定 ip 的 linux 主机。本质上 ownCloud 是作为一个网站服务,同时可以文件同步。部署好以后是按照 ip 地址访问的。就像部署网站一样,可以做域名映射,比如将 http://xxx.xxx.xxx.xxx/ownCloud 这样难记的地址映射到 http://drive.example.com . 这样非常好记的地址。

SSL 加密

部署好以后,建议做 SSL 加密,需要一个证书,通常证书是被某些公司垄断的,需要像域名一样按年付费购买。证书按照安全性需求分为几个等级,安全性要求越高就越贵,比如支付场景。也可以自己生成 SSL 证书,但是因为未认证,所以访问你的网址的时候,浏览器会提示不安全。如果你经常通过 ownCloud 分享文件给别人的话,遇到小白可能会困扰。做好 SSL 加密以后,你的云服务地址就变成了 https://drive.example.com .

账号管理

ownCloud 设定好以后可以建立多个账号,并分群组,所以你建好的私有云可以给你的好友开通账号。这样每个人使用的体验跟常见云服务是差不多的。

存储空间

有了 ownCloud 私有云,存储空间就只跟你的 Linux 主机存储空间大小有关了。如果你之前购买过 VPS,直接在 VPS 上设置是最稳定的了。对了,Digital Ocean 的 VPS 可以单独购买 SSD 存储空间了。如果不够用了,按需购买就行了。Digital Ocean 还是非常稳定的。(Digital Ocean 应该给我广告费:-))

Enjoy.

Who needs a private cloud?

Today let’s talk about how to build private cloud.
Public cloud service like Google Drive and Dropbox are blocked in China mainland. And the local services like Baidu Yun and others are very unreliable.

How to build one?

Use an open source tool ownCloud.

Tips

Choose a domain name.
Use SSL.
Build you ownCloud on your VPS.
Create accounts for your friends.

iOS 10 Public beta version does not support PPTP anymore for security consideration. In a previous blog, I’ve shown how to setup PP2P VPN server on Ubuntu 14.04. Now, let’s setup L2TP/IPSec VPN.

Step 1: Install requirements

First change to sudo mode, because we’ll have to use sudo many more times.

1
sudo -s

then,

1
apt-get install openswan xl2tpd ppp lsof

Step 2: Configure firewall

1
iptables -t nat -A POSTROUTING -j SNAT --to-source %YOUR-SERVER-IP% -o eth

Here, please replace %YOUR-SERVER-IP% (remove % of course)
do the following to modify /etc/sysctl.conf:

1
2
3
4
5
6
7
8
9
echo "net.ipv4.ip_forward = 1" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.accept_redirects = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.send_redirects = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.rp_filter = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.accept_source_route = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.send_redirects = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.icmp_ignore_bogus_error_responses = 1" | tee -a /etc/sysctl.conf
for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done

Apply the above change with

1
sysctl -p

Step 3: Change /etc/rc.local

1
vim /etc/rc.local

Before the line exit 0, add the following line (remember to replace %YOUR-SERVER-IP%), to make sure the modifications still work after reboot:

1
2
for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done
iptables -t nat -A POSTROUTING -j SNAT --to-source %YOUR-SERVER-IP% -o eth+

Step 4: Configure Openswan (IPSEC)

1
vim /etc/ipsec.conf

add the following in conf setup part

1
2
3
protostack=netkey
force_keepalive=yes
keep_alive=60

add the following in the end of the file (remember to replace %YOUR-SERVER-IP%):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
ike=aes256-sha1,aes128-sha1,3des-sha1
phase2alg=aes256-sha1,aes128-sha1,3des-sha1
type=transport
left=%YOUR-SERVER-IP%
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
dpddelay=10
dpdtimeout=20
dpdaction=clear

now, add the following line to /etc/ipsec.secrets (remember to replace %YOUR-SERVER-IP% and your-password):

1
%YOUR-SERVER-IP% %any: PSK "your-password"

now use

1
ipsec verify

to check errors, it may show something like this:
ipsec verify
The errors and warnings are okay. the Failed error is caused by an old perl version and can be ignored.

Step 5: Configure xl2tp

1
vim /etc/xl2tpd/xl2tpd.conf

add the following lines to the end:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[global]
ipsec saref = yes
saref refinfo = 30
;debug avp = yes
;debug network = yes
;debug state = yes
;debug tunnel = yes
[lns default]
ip range = 172.16.1.30-172.16.1.100
local ip = 172.16.1.1
refuse pap = yes
require authentication = yes
;ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

now, create options.xl2tpd

1
vim /etc/ppp/options.xl2tpd

add the following:

1
2
3
4
5
6
7
8
9
10
11
12
13
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
auth
mtu 1200
mru 1000
crtscts
hide-password
modem
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

now, add your VPN accounts:

1
vim /etc/ppp/chap-secrets

each line is one account, you can add multiple lines:

1
2
3
# Secrets for authentication using CHAP
# client server secret IP addresses
your_user_name l2tpd your_password *

Step 6: Restart the services

1
2
service ipsec restart
service xl2tpd restart

Client configurations

Take iOS 10 for example, choose L2TP, use your account and PSK
Enjoy.

博二之前,想对生活做加法; 博四以后,想对生活做减法。
博士一年级,刚刚搬进宿舍的时候,买各种各样的物件,宿舍收拾地井井有条。现在,无论我怎么打扫宿舍,都不会比我当年的一半干净,而且我想扔掉所有能够重新买到的东西。
好庆幸不用在同一个园子生活九年, 以致于你所有的青春, 都绕着一片存在了一百年的小园子转。

昨天在 MacBook 上配了几个平时在 Ubuntu 工作机和服务器上用的工具,Caffe, TensorFlow, gymopencv.
Caffe 可能是最麻烦的一个,装之前做了点功课。可是按照官方的安装指南,居然一个坑都没踩,就编译成功了。以后 CPU only 的 test demo 可以在 MacBook 上跑了,还是很方便的。
TensorFlow纯 python 的环境,毕竟大公司出品,安装太容易了。
gym也是 python 环境,安装就一条命令。
opencv在装 Caffe 的时候就装好了。用 opencv 的官方 sample 跑了个摄像头人脸检测的 c++ demo.

对了,OSX 上的开发环境,有命令行工具就行了,根本不需要装 Xcode. 那些说要先装 Xcode 的都是误导啊。
记得我 MacBook 开箱第一件事是 g++ 编译一个 hello world 的 cpp 文件,它就提示我装一个命令行工具。装完开发环境就 OK 了。

iTerm, oh-my-zsh, homebrew, vimrc, 纯 Unix 的环境体验。我的 MacBook 小白真是要啥有啥,配上高颜值,高清屏和不到一公斤的重量,真是一个完美的休闲工作机。
从 Win10 切到 OSX,感觉没有花费任何过渡时间,我直接就适应并沉迷于这个环境了。

Yes, I did not bought new devices since a long time ago. Nothing exciting was created, and I need nothing more, I thought.
In the recent month, I bought three new toys.

  • Kindle Oasis
  • MacBook
  • Apple Watch Band Milanese Loop

Kindle Oasis ☆☆☆☆☆

The last kindle I used is Kindle Paperwhite 2. It weights a little more than 200g. However, Kindle Oasis weights only a little more than 130g, which is lighter than iPhone 6s. The screen seems very close to real book, and I love it.

MacBook ☆☆☆☆

I use laptop for light office work and ssh.
I was using ThinkPad T440 with SSD and 8G CPU memory. It runs Win10 and I rely on MobaXterm to get unix experience. Everything seems OK, but not amazing. The screen is not high-resolution, with weak unix experience.
Apple just renewed MacBook, so I bought a silver item. It is light, very light. The keyboard is not so hard to adapt to. I love the full unix experience with iTerm and oh-my-zsh. The uniform experience with iPhone and iPad makes it better.

Milanese Loop ☆☆

The Apple Watch Milanese Loop feels really bad. It’s made of stainless steel and make me feel awkward when using metal MacBook. After two days, I began to use my sport band again.