十二 11

Docker 传奇之 dotCloud

2010年,几个大胡子年轻人在旧金山成立了一家做 PaaS 平台的公司,起名为「dotCloud」,这个名字让我想起了微软的「DotNet」。

dotCloud 主要是基于 PaaS 平台为开发者或开发商提供技术服务。什么是 PaaS 呢?PaaS 的全称是 Platform as a Service,也就是平台即服务,这个概念在2010年热的一塌糊涂,直到现在也没凉下来。举个例子来说,传统的软件产品开发一般是这样的:

1、确定产品定位和需求,确定首次迭代的范围。
2、制作界面原型。
3、技术选型,然后根据技术选型为每个开发者搭建开发环境和技术栈,例如 Java 环境、Python 环境、Ruby 环境、数据库、中间件等等。
4、构建基础技术框架和服务,包括日志、存储、消息、缓存、搜索、数据源、集群扩展等等。
5、模拟用户容量,构建测试环境。
6、开始编写真正的业务代码,实现产品功能。
7、迭代开发/测试,生生不息,周而复始,直到头发掉光为止……

如果采用完善的 PaaS 平台,可以直接忽略3、4、5三个步骤。无论你选择哪个技术栈,PaaS 都会为你提供相关的配套设置,包括语言环境、运行环境、存储和各种基础服务。dotCloud 不仅支持诸如 PHP、MySql 等传统技术框架,还包括 Node.js、MongoDB 等新兴技术。基于 dotCloud 提供的开发工具和技术框架,你可以直接使用 dotCloud 的 SDK 编写代码和构建业务服务,并在联网的时候把这些代码推送到云端,实现自动部署和测试。

dotCloud 把需要花费大量时间的手工工作和重复劳动抽象成组件和服务,并放到了云端,另外,它还提供了各种监控、告警和控制功能,方便开发者管理和监控自己的产品。dotCloud 最初运行在 Amazon 的 EC2 上,不过由于 dotClout 高度的抽象层次,理论上 dotCloud 可以运行在各种各样的云服务上面(我猜这就是 Docker 的功劳)。

Continue reading

十一 24

程序员如何选择技术方向

最近写了「当程序员老去」「程序员真正的价值」两篇文章,传播甚广,今天是第三篇:「程序员如何选择技术方向」,史称「程序员三部曲」。 那之前写的几篇程序员文章算什么呢?算前传吧。以后再写程序员文章算什么呢?算后记吧。

2008年秋天的一个午后,温暖的阳光透过落地窗落在我面前这个长长的写字桌上,桌子对面坐的是一个瘦小的程序员,他的名字叫小明,小明有些茫然,他看着我,不知道该说些什么。

程序员都是很严谨的,我不得不首先发出一个 System Call:

你在客户现场这半年做什么工作? 写单元测试。 还有呢? 没了,就一直写 JUnit。 别人也写单元测试么? 没人愿意写单元测试,只有我写。

……

你为什么想来研究院呢? 我想写一些真正的程序。 什么是真正的程序? 比如 Java,比如面向对象编程,你总要写一些类和各种各样的方法,而不是一直写 Test Case。 好的,沿着这个楼梯上三楼,那里有一群和你一样的程序员,他们不仅写 Java,还写 JavaEE 相关的各种程序,你会找到自己需要的东西。 真的么? 真的

那时候我风华正茂,没有现在这么老成持重,阳光照在我的翘着二郎腿的脚面上,一切都显得十分虚幻,在小明的眼里,那时的我估计很像「黑客帝国」里的墨菲斯,但是他不能确定自己是不是「The One」。小明疑惑的看了我一会,最终还是上楼了。至此,他完成了第一次技术方向的选择。在三楼,他碰到了一群同样严谨的程序员,他不仅学会了写真正的 Java 程序,而且掌握了部分 Web 编程和服务器端编程,包括 JavaScript、JQuery、Spring、Hibernate、JMX、Web Service 等等。小明变得快乐起来,渐渐摆脱了注定孤独一生的阴影。

过了一段时间以后,小明已经不满足只写 Java 相关的程序了。有一天他看到我手里的 iPhone 和 Mac,仿佛见到了初恋的情人,眼中重新燃起了绿油油的光芒,他知道了 iOS 开发者这回事。很快,他花掉了所有的银子购买了 Mac 和 iPhone,开始日夜兼程,学习 iOS 开发。他在写 Java 的间隙编写 Objective-C 代码,在编译 Web App 的同时构建 IPA,在清晨的微光中调试程序,在每个夜晚与模拟器窃窃私语……他完成了第二个阶段的技术方向选择。

Continue reading

十一 12

程序员真正的价值

value

问:池老师,我是个不爱互动的人,但是您所有的文章我都看了,非常感谢您的引导,我入手了人生第一台 MBP。现在问题来了,但是找不到更合适的人解答,只能求助于您了,如果您有时间的话。问题是这样的:我有个32bit unix file(开启一个服务进程),在 Mac 上执行时错误提示是:exec format error,但是在 Linux 服务器却可以执行,为何?Mac 上有可以运行的方案吗?期待您的回复,不胜感激。

答:Linux 和 OS X 是不同的操作系统,可以尝试在 OS X 里重新编译这个文件。

问:非常感谢!如果没有文件源码是不是就只能认命了?

答:可以在 Mac 上装 Docker,然后对服务进行端口映射就可以了。

答:茅塞顿开。谢池老师。

以上是我和一位读者的对话,这位小伙子在拿到答案之后像一缕烟尘一样消失无踪,之后再也没有出现过。

在微信上加了很多 MacTalk 的读者之后,经常会收到一些奇奇怪怪的问题,关于职场、关于选择、关于朋友、关于 Mac、关于技术等等,不一而足。但是我能回答的却很少。问题不好没法回答,问题太复杂没法回答,问题领域超出我的认知也没法回答,耗时太长的问题我也没时间回答,实在是惭愧的紧。好在偶尔也能够帮助一些小伙伴解决一些实际问题,心理上略感安慰,比如上面这个问题。

把这段程序员之间的对话翻译一下,大致是这么个故事:

Continue reading

十一 03

当程序员老去

oldcoder

程序员将代码注入生命去打造互联网的浪潮之巅,当有一天他们老了,会走向那里,会做些什么?


很多年以后,在我60岁的那天早晨,天刚蒙蒙亮我就起床了,先去公园晨练,然后回来做早餐(50岁的时候我学会了做饭),送完外孙上学,刚好8点。由于北京从2020年开始单双月限行了,这个月是单月,所以只能挤地铁。人一如既往的多,一小伙子要给我让座,看了看他的小身板,我说不用,你也是干 IT 的吧,今天咱们都是程序员。

来到公司,墙上那条新贴上去的刺眼规定总是让我很不舒服:所有的服务器端语言必须使用 Come,移动端语言使用 Swallow,还在使用 Java、C、Go 和 Swift 语言写程序的,罚款500元。我不知道自己还能学会几门新语言,工作了四十年,我已经用过一百多种编程语言了……

上午十点,00后 Team Leader 跑过来告诉我,池大大,新上线的智能手表操控 UI 是您老做的吗?好像出了点问题。我说是老王上周做的,他老花眼早就不该做 UI 了,这周没来,据说动脉硬化了。唔,那您帮他改改得了……

这个上午,老板又收到了两份在家办公申请,其中包括老冯的,申请理由是:腰不好。坐着站着都不能解决问题了,只能把屏幕安装在天花板上,躺着编程。我还行,一直打羽毛球,腰好,身体就好,吃嘛嘛香。不过今天中午却没什么食欲,因为牙疼,各种牙都开始松动了,只好在食堂里挑了点软乎的饭菜吃了。

下午部门开会。我发现唯一的70后主程(主力程序员)记忆力减退了许多。说完第8个功能点的实现后,丫突然来了一句:好,以上是第1点,现在来说第2点。直到下班,我们一直都在说第2点。会后主程怪我为什么没有提醒他,其实我一共提醒了他13次。不跟他计较,明年他65岁,就要退休了。

分配到需求之后,下午的工作就是画界面做表单填程序,这个工作我做了几十年,已经非常熟练了,编码的时间总是最快乐的,不知不觉就晚上10点了。回家吧,过了9点就可以打车了。

夜晚11点回到家,菜凉了,孩子们都睡着了。我躺在冰凉的床上,打开一本《Come 语言编程实战》开始读。程序员,是一个终身学习的行业……

Continue reading

22

iPhone 6 Plus,大无可大

Plus1

以前不写 Mac 的时候,有读者过来问:卖桃君,咱就不能写写 Mac?连续写了几天 Mac,又有读者过来问:卖桃君,天天说 Mac,我没有 Mac 怎么办?

好吧,今天就写写 iPhone。

我的 iPhone 6 Plus 是10月16号拿到的,订购的过程非常艰难,完全可以用「前途是光明的,过程是曲折的」来形容。订购初期我们动用了广州的美女社长、杭州的帅哥产品经理,准备直接进攻香港。此举遭到了黄牛军队的强烈狙击,未果。然后又试图从苹果福利社和微博小闷处暗渡陈仓,失败。多次尝试之后,我们重新展开世界地图,目光炯炯,沿着上海一路向东,终于锁定了东瀛日本。日本不是有我们一位造 CPU 的帅博士卧底么?人家可是翻译过《CPU自制入门》这么高大上的书,难道还搞不定两台 Plus 么?

果然,博士一出手就知有没有,两台 Plus 立马下定,一看发货日期,3-4周,我了个擦。终于,十月上旬,在千呼万唤中,日本苹果店终于崩不住开始发货了,Plus 途径日本福冈、上海、杭州、杭州海关、北京两国四地,终于到了我的手上。

单台 Plus 的花费是:89800 日元购机费,500元关税,快递费若干,算下来比国行便宜一些。当然,大家也不要羡慕日本人民的手机便宜,人家资费还贵呢,据说购买 4G 套餐的场景通常是这样的:

A:大哥,我办理一个4G 套餐。
B:好的,每月7G 流量,9000日元(500人民币左右),给钱吧。
A:我擦抢钱啊,那么多流量又不能熬着吃,给我来个2G 套餐【傻笑表情】。
B:对不起,4G 只有这一种套餐【狞笑表情】。
A:……,来个3G 套餐!【酷表情】

看完这些大家是不是心理上舒服了很多呢?对了,还有一个特别诡异的事,海关收取关税和送货是同一个快递小哥完成的。他首先打来电话,让我们把钱准备好,来了之后远远的站住,说:「货我带来了,钱呢」?我们四处观望了一下,确保没有警察叔叔埋伏在附近,说:「钱我们带来了,货呢」?于是钱货易主,Plus 到手。整个过程充满了绝命毒师的灰暗、沉重和绝望……骚瑞,入戏太深了。

第一次把 iPhone 6 Plus 拿在手里的感觉简直是……太特么大了!做为一个坚定的小屏用户,之前最大就用过 5 英寸的米3,锤子 T1 次之,华为 P7 更小一些,所以我对 5.5 英寸的手机是没有概念的,拿到实物才觉得,大就一个字,我要说好多次!

我的手横握 Plus 时,拇指与中指的距离之间有一指宽,正常情况下,我的拇指都无法够到最左侧的 App 图标。如果稍微往上握一点,你甚至会与 Home 键失之交臂。这种「大」的感觉就像你见到了久违的初恋女友,很想狠狠的熊抱一下,冲上去才发现根本抱不过来,只好尴尬的拍拍她的肩膀说,好久不见,你长「大」了。

Plus 虽然采用了5.5英寸的屏幕,但是并没有为了手机的整体尺寸减少顶部和底部的设计,据说比例和 iPhone 5S 保持了一致,这就使得 Plus 比市面上一般的5.5英寸手机还要大一些,份量也比 iPhone 6 重不少,比锤子 T1 的重量多了5克。

Continue reading

10

世界总会变得更好,我想

223608iwbvgxd6a6sogvzd

今年祖国母亲的生日过得波澜壮阔。早在节日之前,各行各业的朋友就开始撸胳膊挽袖子准备提前庆生。香港人民的行为更加激进一些,他们为了让每个人都能够公正公开的拿到 iPhone6的「选购票」,很早就开始聚集在一起搞活动,一直持续到今天。对于这种行为,我个人觉得是件挺好的事。你看我车迟国臣民,虽然六十五年前就开始持币待购,但时至今日,iPhone6 的毛都没见过,别说是「票」了。

虽然我们已经习惯了当下的生活,但我们的下一代不一定会习惯。我们买不到的「iPhone」,看着对岸的兄弟用用也好。「假如这里有坚固的高墙,而那里有一撞就碎的鸡蛋,我将永远站在鸡蛋的一边」。我想。

这里并不是要写一个「风起云涌」的故事,我只想在长假中和大家唠唠家常。

每年的国庆长假我都会选择回老家陪父母,作为一个老金牛,我总是固执的遵守着一些自己定义的规则,国庆回家算是其一。父母这一代人,生于忧患,长于苦难,前半生经历了战争、运动、饥荒和颠沛流离,中年才算稳定,晚年物质方面没什么要求了,子女们却心向远方,没有一个留在身边。我的父母像千千万万的普通父母一样,他们把最好的年花都倾注在了子女身上,然后在远方默默的注视着我们的成长。他们用尽全力给了我最好的教育和关怀,他们是这个世界上我最敬爱的人。

所以,但凡有时间有机会,我都会陪在他们身边,感受旧时光流转,老岁月穿梭。即使是听爸妈讲那些过去的故事,我也能感受到内心的安宁。每次老妈絮絮叨叨讲完一个故事,就会陷入短暂的停顿和沉思。那一刻,万籁俱寂,秋末午后的阳光,掠过对面的高楼,照在老妈的满头白发上,每一根银丝都在闪闪发亮!

旅行什么时候去不行呢?有本事的人都是工作时间去旅行的!我想。

注:今年回家破了堵车记录,150公里的车程,正常行驶大概需要两小时,这次走了七个小时。其实车并没有想象中那么多,每次拥堵都是因为事故,大大小小的撞车一路相随,最后一个多车相撞事件足足堵了两小时,一动不动。等我们经过时,满地都是碎片和石灰,惨不忍睹。所以在这里劝一句,大过节的,新手就不要上高速练手了。

在北京待久了,到了其他地方总是忍不住去看天,看云,看山,因为在北京这些东西不经意间就会消失的无影无踪。不知道是不是错觉,每次回家都觉得塞北的天空变得更美了。这里的秋天似乎能够满足所有北方人对好天气的幻想。天高云淡,风轻气爽,PM2.5 徘徊在20到50之间,白天可以看到最远的云,夜里能见到最亮的星。

午后的天空常常呈现出深浅不一的蓝色,或柔和,或深邃。天上有云,云里有雨,雨中带风,它们会时不时提醒你换上更厚一点的衣衫了。没有那么多高楼大厦,站在街上一眼望去,就可以看到夕阳西下,落日驻留在西边不长树的石头山上,彩色的阳光从山脊上透出来,给近处的云染上金边,为远处的云涂上各式各样的颜色。看着壮美的落日,我忍不住问自己,这是我长大的那个塞外古城么?

小时候我对老家的印象只有两个,一个是冷,另一个是沙尘暴。

寒冷的冬季我们要穿上棉衣棉帽棉鞋,外出时还要用围脖把口鼻护起来,只留下眼睛看路。风中带刀,可以轻易刺穿任何衣物。当我骑车半小时赶到学校时,脑门儿基本已经麻木了,围脖上由于哈气会结一层厚厚的冰,教室里的火炉似乎没有任何作用,手常常被冻的写不了字,那个时候手脚和耳朵被冻伤是极为常见的。

沙尘暴来临时就是另一番光景。漫天的黄沙遮天蔽日,狂风呼啸。从清晨到傍晚,天空中一直保持了暗淡的黄色,所有的建筑里都开了灯,每一扇窗户都透出幽幽的蓝光,若隐若现。出去转一圈,就能抖落一地黄尘。现在回想起来,完全是一副世界末日的景象。

随着取暖和保暖措施的进步,冷不再是问题。然后就是绿化、防风、治沙,沙尘暴也消失了。幸好,沙没了,塞北的风还在,只不过从狂风变成了大风和微风,于是有了塞北的蓝天、白云、草原、天路和星辰。

北京一样有沙尘暴,现在的年轻人可能已经不记得了,他们只知道霾。塞北在防风治沙的时候,北京也在做同样的工程,只不过治的有点猛,沙尘消失的同时,风差不多也治没了。风没了,污染还在,形成了霾,所以2008年后的北京人多了个毛病,只要一离开北京,就开始疯狂的拍蓝天和晒蓝天,博客里、微博上、朋友圈,只要蓝色的图片多起来,你就知道又放假了,这种情况叫做蓝天缺失综合症。

什么时候能好?我也不知道,不过我想,总能找到那力量,让所有的霾都消失殆尽,让云朵在天空绽放,让所有的花在大地盛开,让自由的思想能够飞翔……

因为,世界总会变得更好!

2014年国庆,写于梦里,存在云上