云计算的再思考

March 12th, 2019

我之前曾经说我觉得云计算可能会变成多强相争。但是我最近越来越悲观。感觉亚马逊可能会形成事实上的垄断。比如亚马逊一家长期占有60%以上的市场份额。

之所以觉得会一家独大是因为越来越觉得市场领先者会在生态系统上形成优势。就像app对手机系统的支持促成了Android和iOS。网站和插件促成了Chrome。云计算的周边支持感觉正在向AWS靠拢。这种用户-开发者-用户的循环一旦形成,按历史经验将非常难打破。

之所以说悲观,因为一家形成垄断,会对所有的开源生态系统造成不好的影响。而没有竞争,长期也会阻碍创新。我希望我是错的。

夏威夷大岛

January 9th, 2019

结婚后的第一次度假目的地选择了夏威夷大岛。

—流水账—

第一天晚上机场降落,入住酒店。酒店的大堂经理告诉我们第二天会有Kona Ironman。部分交通要道会被封路。网上查了一下才发现这是个很有名的赛事。

第二天白天去Waipio Valley骑马。因为Ironman封路,我们绕了一小段路,因为提前出发了很多,所以还是提前了半个多小时到达了骑马的出发点。Waipio Valley有全夏威夷最陡的一条下山公路。路上会看到一条很漂亮的瀑布。但是没有高地盘的四驱车就不要想自己开下去了。骑马的导游自己开了一个Van把我们带到谷底的马厩。然后我们骑马在谷底转了一大圈。谷底有很多夏威夷原居民。基本以农业为生。在谷底导游还介绍了很多种夏威夷原生植物。从谷底出来,天就变阴了,兼有小雨。我们开车到了Pololu Valley Lookout的入口,不过没有下去。

第三天,我们参加了一个Sea Quest公司的浮潜半日游。这个公司会开皮艇带游客去海上看不同的火山洞,然后会选几处适合浮潜的近海让游客下船浮潜。我和老婆都没有浮潜的经验。但好在浮潜并不太难。即使不会游泳或者游泳不好也可以用一种叫“面条”的海绵浮条漂在海上。浮潜看到的珊瑚和各种颜色的鱼真是非常特殊的体验。

第四天,白天去了一个历史国家公园–以前夏威夷原居民犯错后赎罪的地方。彩虹教堂。旁晚我们参加了另一个划皮筏艇看魔鬼鱼的活动。魔鬼鱼喜欢晚上出动,所以我们下午6点多才出发。看到超大的像外星飞船一样的鱼在自己脚下游过真的有很奇妙的感觉。

第五天,自由活动。我们去了几个不同的沙滩。包括最南边的绿沙滩。在绿沙滩的停车场我先是忘了熄火。在路上走了一个小时被后面过来的其他好心游客告知我们没熄火,然后我们赶回去把车熄火,结果又阴差阳错的把车钥匙锁在车里了。然后好心的大叔帮我们叫了拖车公司,花了一百刀开锁。在停车场等拖车公司的时候真的异常沮丧。

第六天,我们一大早在Haper租了一辆四驱车(Toyota 4Runner),然后开到了Mauna Kea顶峰参观Subaru天文望远镜。如果想要进入参观的话,要提前在网上预订。但是即使在顶峰开车逛一逛也是很有意思的。因为特殊的地理位置,夏威夷能看到更多夜空,是很适合天文观测的地点。Mauna Kea作为夏威夷最高点,有很多国家来这里设天文观测站。我们参观的天文望远镜就是日本设立的。参观完天文望远镜后,我们开车来到了Hilo附近的夏威夷热带植物园(Hawaii Tropical Botanical Garden)。参观完植物园,我们又开车回到Mauna Kea游客中心参加免费的观星活动。但是遗憾的是从7点等到9点,天上的云都没有完全散开。中间只有一小段时间,云稍微散开我们听活动的志愿者讲解了一下一些有名的星星和星座。

第七天,早上开车环岛大半圈,来到Hilo北边玩滑索(Umauma Falls Zipline Tour)。下午又开车赶去参观夏威夷火山公园。我们在夏威夷的全部时间,大岛的火山都没有喷发,所以并不能坐直升机/船/步行,去看熔岩。但是不管有没有熔岩,火山公园绝对是值得一去的。沿着一条Chain of Craters Road行驶,路的两边都是非常奇特的火山岩景观,最后来到海边,远眺大海,回望火山,都感觉无比壮观。路边有一个小路,沿着火山岩走一段路,还可以看到夏威夷先民的涂鸦。

第八天,自由活动。参观了一个咖啡种植园。在种植园学习了咖啡豆的不同分类和制作过程。Kona咖啡很有名但是也很贵。但主要是美国成本高以及夏威夷地少的原因。咖啡豆和咖啡庄园之于咖啡口感还远远达不到葡萄和葡萄庄园之于葡萄酒口感的影响力。

—感悟—

  • 夏威夷大岛有一种很大又很小的感觉。到哪里都要开车,但是整个岛一天开车也可以转一圈。
  • 热带气候真的很奇妙。Kona和Hilo在岛的两端。Kona经常性阳光明媚。但是Hilo是全世界降水量最多的地方。
  • 美国的制度也好奇妙。一个热带岛屿,但是公路设施,比如校车,Costco,和美国大陆上的完全没有区别。但是气候建筑又全是热带。
  • 多民族的共处也异常奇妙。夏威夷日裔多,但是大岛貌似白人也不少。还有夏威夷原著名和各种移民。感觉比加州还要更多元。
  • 夏威夷的动植物也很奇妙。也让人感到了物种的脆弱。我们离开不久后,新闻就说夏威夷又有一种鸟灭绝了。
  • 看到夏威夷先民在地上的涂鸦,我不由的想到了游戏《文明》里最开始的部分。人类文明的发展真是很奇妙。
  • 对美国科技业的一点不成熟的思考

    October 21st, 2017

    美国科技行业(包括软件和互联网),爆发式的成功还不够,还可能是fad,还要达到垄断地位且对使用者不可或缺才行。比如微软的Windows和Office,Google,Facebook。如果这个产品不可或缺,但是没人能垄断怎么办?有连锁餐饮业这样,麦当劳一家最大,然后百花齐放的格局。也有像饮料业,可口和百事两强相争的格局。或者汽车制造,多强相争的格局。基于互联网的服务以前大都一家独大,但是感觉最近的这一波,比如打车软件,很可能结局是uber/lyft两强并存。智能手机很可能是苹果最大,但是百花齐放。云计算我觉得很有可能变成多强相争。

    最近回国跟一些不在圈内的朋友解释云计算。最后想了半天跟他们说云计算有点像互联网时代的房地产开发商。最开始,大家都是自己盖房子,后来像万科万达这样的大开发商进入了市场,跟大家说我来盖房子更专业,管理更好,你们买或者租我们的房地产项目就好了。云计算就是一些大的科技公司(比如亚马逊,微软,谷歌)跟软件或者互联网服务开发者说,我们来运营数据中心更有效率,更安全。然后把数据中心服务器标准化,然后出租/卖给租户的服务。两者当然还是差别很大的,但是这个类比我觉得还是捕捉了这个行业一些特点的。

    日本七日游

    July 31st, 2017

    从微软辞职和开始新工作之间大约有2周半的假期。我从来没去过日本也不会日语,因为日本最近放松了对海外中国公民的签证限制,我决定试一下申请签证,然后如果签证批的够快的话可以去日本玩一下。

    我7月14号去日本在西雅图领事馆递交了签证申请。地址是在One Union Square。申请表以外的申请材料主要是工作和财产证明。我还写了一封很简短的cover letter,说明自己要申请多次入境签证和解释了一下申请材料。到领事馆签证处提交材料以后,工作人员说我还需要提交一个行程表或者机票酒店的预定。不过还算人性化的收下了我的签证申请和护照,说我可以把行程表通过电子邮件发给他们。然后我回家以后就把一个大概的行程发过去了。(虽然之后并没有按这个行程来旅游。)

    然后20号下午收到邮件说我的签证已经可以取了。21号早上去使馆拿到了护照和签证。然后顺便去JTB买了一个JR Pass。然后回家开始订机票和行程。发现西雅图往返东京的机票都非常贵(> $1600),这时候发现温哥华直飞往返名古屋的机票很便宜($600),而且时间也不错。然后就买了这个机票。名古屋在日本中部,坐火车去京都大阪大约1小时,离东京大约2小时火车车程。

    因为我的飞机中午到达名古屋,我决定先去京都大阪玩两天,然后坐火车去东京。在JTB查询JR Pass的时候我看到了一个两天登顶富士山的旅行团,但是问了以后发现他们最早的时间也要在我回来以后了。但是这激发了我想要登顶富士山的想法,然后在网上找到了另一个团,出发时间可以加进我的行程,然后就决定爬富士山了。

    从西雅图早上出发坐大巴到达温哥华,然后转轻轨去机场都很顺利。加航飞名古屋的飞机稍微旧一点,不过飞机上的娱乐和提供的餐饮都还达标。如果想看飞机上提供的电影的话,起飞前有网络的时候可以提前安装一个加航的app,如果没有app的话可以花钱租一个它们提供的平板电脑。我用手机装了一个app,在飞行途中看电影没什么问题。感觉这种方式比在座椅背后的小屏幕上看还要好。

    到达名古屋机场是在下午。在机场买了一张去名古屋火车站的单程票。因为火车的运营商不是属于JR系统,所以要单独购票。刚到日本,不是很熟悉车票的分类,语言又不通,买了非特快的车票然后上了特快列车,还被乘务员要求补了票(囧)。

    到达名古屋火车站后,把JR Pass的收据换成了真正的JR Pass。然后又用JR Pass换购了去京都的新干线车票。

    在京都第一晚住的是Sakura Terrace The Gallery (125$),第二晚是Luck You Kyoto ($100)。前者位置和设施都更好,所以虽然贵一点也更划得来。京都地势很平,车站附近就提供单车租赁,很适合骑车游玩。

    京都睡了两夜之后,一大早我去了大阪,参加了一个airbnb上的单车一日游:https://www.airbnb.com/experiences/53558。晚上自己一个人又去大阪的红灯区飞田新地转了一圈,很有日本特色,不过我就没有体验她们的服务了。回酒店(Hotel Brighton City Osaka Kitahama 88$)后因为一天骑车加走路非常累,就打电话给前台找了酒店提供的按摩服务,不过来的是一个我猜有80多岁的老奶奶(囧)。酒店位置还不错,设施就像是全世界其它地方普通的商务酒店,没有京都的酒店有特色。

    然后大阪睡了一晚后,一大早又坐新干线去东京。东京第一晚住在Park Hotel Tokyo,200$一晚住的是可以看到东京铁塔的房间,感觉还挺值的。这个酒店就在筑底市场旁边,我早上3点爬起来想去排一个参观拍卖吞拿鱼的位置,但是已经没有了。在东京又参加了一个airbnb的半日做饭体验:https://www.airbnb.com/experiences/27662。第二天又换到了新宿的Tokyu Stay Shinjuku $99,因为这里离早上去富士山的出发点更近。酒店位置不错,不过就没有之前的窗景了。

    富士山我走的是一个相当小众的的路线–须走线。而且因为7月底,还没到正式的登山季(8-9月),所以路上人不多。按照Strava的记录,单程是5.2 mile 6000 ft elevation。山顶的高度大约是12000 ft,所以还要预计一点高原反应。

    富士山回东京后,我就直接又坐新干线回到了名古屋。在名古屋吃了他们有名的炸鸡翅,第二天就坐飞机回温哥华了。

    在日本整体体验非常好,因为各种设施服务质量都很高。airbnb的两个体验也都感觉非常超值。这次走马观花时间非常赶,下次又机会希望能够在慢慢体验日本的好处。😊

    关于投资的几点个人看法

    May 17th, 2016

    总有朋友问我怎么投资。这东西其实很难说清,下面是我的一些看法吧。

    1. 主流的投资建议是持续买入追踪股票市场的指数基金。因为:
      1. 现有数据表明股票市场回报整体高于其它投资–所以选择股票。
      2. 绝大部分基金表现输给大盘–所以选择指数基金。
      3. 入市时间无法确定–所以选择持续买入。
    2. 按照这个思路,最无脑的投资建议就是持续买入VT。实际上有些经济学家也是这样建议的,比如写经济学原理的曼昆。
    3. 实际操作中,通过控制不同市场的持股比例可以一定程度控制风险。所以选择基于区域股票市场的指数基金,自己控制比例来控制风险也是很主流的投资建议–年轻时可以选择相对高风险,快退休前应降低风险。
    4. 风险(variance)和回报(expectation)成正比。在区域上,主流看法是成熟市场风险与回报相对低,新兴市场风险与回报相对高。
    5. 如果在美国基于避税考虑,可以在年末卖掉亏损的基金,换成相同的替代产品–tax loss harvesting。
    6. 债券,房地产,能源等基金可以用来分散投资风险,但不应大比例持有。

    以上应该是主流教科书式的投资建议了。

      Better Call Saul观后

      February 10th, 2016

      最近有那么一段时间,我都无法投入或专注的去享受虚构类的作品。不管看电影,电视,或者小说,脑海里都有这么一种想法:这都是编出来的,为什么要浪费时间在这上面。或者换一个角度来说,暴力,血腥,恐怖,猎奇种种以前能吸引我的元素已经对我没有太大的吸引力了。

      但是在这之后,我还是陆续看了Breaking Bad,和最近的前传Better Call Saul。好像有人说过金庸和古龙小说的区别在于,金庸的小说主角有成长性而古龙没有,所以金庸的小说更吸引人。我觉得Breaking Bad就是一部少有让我看到了主角成长和变化的美剧。和第一季开始时的Walter White比,局终时的Walter White已经俨然一个完全不同的人了。这种造化弄人,社会改变人的过程,甚至让我想到了Rome这个完全不同的剧集。

      (剧透预警)

      Read the rest of this entry »

      Installing Emacs on Mac

      October 12th, 2015

      This is my own technical notes on how to install and config Emacs on Mac OS X.
      Read the rest of this entry »

      Some Updates

      March 12th, 2015

      I recently switched a job internally after working on Hadoop and Azure for about 3 years at Microsoft. The followings are cited from the farewell note I sent to my old colleagues.

      I thought mapreduce was interesting when I first learned Hadoop in school on Linux. When I joined Microsoft after school, it never occurred to me Microsoft would have anything to do with Hadoop let alone Linux. Incredibly, this is where HdInsight is at now, and I was part of it. It is a great and humble learning experience for me to build and grow the first hosted Azure service of open source software and then Linux from very beginning, and I felt lucky for that.

      Now begin to build something new!

      C# Links

      December 9th, 2014

      Periodic Execution in .NET: This is the best implementation note I found of the common pattern to run tasks periodically.

      Implementing the Singleton Pattern in C#: I actually found singleton not all that useful. The article is a good discussion of many C# features nonetheless.

      MADlib Paper Review

      December 1st, 2014

      I only read the paper The MADlib Analytics Library or MAD Skills, the SQL recently after it has published for almost two years. In short, I like it a lot. Most mainstream relational databases do not support even the most common machine learning tasks like linear regression. In order to run machine learning algorithms on the data inside the databases, one has to first export the data, then use statistics or machine learning tools, e.g. R, to get insight from the data. This is really cumbersome in my opinion. As machine learning becoming more and more common place nowadays. Most major database processing platforms include some kind machine libraries. For example, Mahout for Hadoop and MLlib for Spark. How do we address the apparent machine learning tool gap in relational databases? This paper introduces an implementation of machine libraries inside RDBMS. It builds on top of existing RDBMS, and requires no altering of any of the database internals like storage engine or extra SQL syntax. Some of my observations if taking a closer look.

      • Some functions like linear regression seem very natural and intuitive to use. However, some functions like LDA does not seem to fit in databases as naturally.
      • The implementation relies heavily on the array feature. This is a well supported feature in PostgreSQL but not in some other databases like MySQL and SQL Server. “Array” is actually defined in SQL 2003 standard, and can be very useful in other ways I can image. So I hope the widespread of MADlib or equivalent technologies can drive the adoption of arrays in other major database products; or the other way around.