Try and Try Hard

Charles Bukowski写过一首诗,《Try and Try Hard》。

开篇第一句便是If you’re going to try, go all the way. Otherwise, don’t even start.
如果想做就做到底,否则就别开始。
Go all the way.

我有时候觉得自己并不是那个每件事情都是可以坚持到底的人。
也许,没打算坚持到底的话,还是别开始比较好吧。

我种下一颗种子,终于长出了果实,今天是个伟大日子。

之前有一盆能结出红果果的花,由于疏于照料,土壤结块,最后枯死。
之后痛定思痛,买了一包柠檬薄荷的种子,重新翻了土,施了肥,围绕着红果果的遗骸,埋下了20颗种子。借着这春意盎然,让这个花盆重新充满生机。

刚开始第一周毫无动静,我一度以为土壤仍然没有调整好,结果在第二周开始发现了第一颗小芽破土而出,淡淡的一点点绿色,两瓣小叶子几乎肉眼很难看到。

接下来第二颗,第三颗也出来了之后,第一颗被我浇水浇丢了。。。。

现在是Day15,随着第四名的诞生,希望小芽们可以茁壮成长起来之后被我泡水

我觉得我种下去的不是种子,是希望。我希望我的生活也能像这花盆一样,重新焕发生机。

《新解决方案销售》

常言道,闻道有先后,术业有专攻。

其实我也很难说出我最擅长的领域是什么。但毕竟是做IT的。所以总觉得自己在技术领域要强于其他领域。

以前有个经理和我说过这么一句话:“TA(技术架构师)就是给BA(业务分析师)服务的。”。虽然这句话暴露了他是有多外行,但是这个话题是值得我们深思的。

如果一个程序员,只专注于技术,不懂业务,不懂质量保证体系,那么会成为一个好程序员吗?

我觉得首先要分情况,有一些公司确实是需要技术攻坚团队,需要专注于解决业界尚未解决的问题,以保持公司的行业领先水平。这种时候,对技术的专注是可以发挥最大的价值的。

但是如果只是普通的程序员呢?或者在一个外包公司呢?

我们换个角度来看问题,是谁,掏的钱。大部分情况是公司的客户或者消费者,还有一部分,内部项目那种,是你的老板。

他们掏钱,不是为了让你去研究技术,而是让你研究技术以解决他们的问题或者痛苦。

程序员们被雇佣,然后利用技术来解决消费者/客户的问题。然后就像工厂的生产线一样,要保质保量的解决问题。这样就出现了软件开发流程来保证软件质量。

这时候一个即不懂得客户的问题在哪,又不懂得如何交给客户一个有质量保证的解决方案的技术大牛,对于掏钱的人也是毫无价值的。

相反,能深切的理解客户的痛点在哪,并且找到一个完美的解决方案,但就是不会实现的人,也是毫无意义。

所以软件行业出现了分工。一部分人专注于发掘新的客户,一部分人帮助客户定位要解决的问题,并提供解决方案,一部分人将方案保质保量的实现并交付。

整个销售过程一气呵成,缺一不可。所以说谁比谁重要的,如果不是未参加过工作的毕业生,那真是无可救药了。尤其是并没有任何产出指手画脚的小领导一级。尤其是外包行业,由于主要是集中于实现与交付,所谓的项目Manger到底是处于哪个位置,一目了然。对于掏钱的人来讲,连个包工头的地位都不到。

话说回来,刚提到了唯技术论的程序员。很多这种程序员创办的公司,往往失败率很高,能成功的,都是初期能作为技术骨干,中期可以完美转型销售,后期可以完美转型商人。所以我觉得程序员一定一定不要只懂技术。

Salesforce看名字就知道,主要是用来做Sales的(我知道CRM。。。)。随着Salesforce的不断发展,也开始支持金融,零售,医疗,市政等领域。

对于技术人员来讲,最难的部分应该就是Salesforce标准功能的使用,毕竟Salesforce标准功能是基于标准Sales流程设计的。一个程序员,哪有机会去了解Sales?不要以为Sales就是国内那些人前笑脸,人后说人穷的低素质卖货的,国内任何行业都有一个通病——不专业。与Marketing一样,Sales也是一门专业领域,有不断在进化的理论。

Salesforce带给传统软件开发行业的冲击不仅仅是云计算,现在连VPS供应商都敢叫自己为云计算服务商了。因为Salesforce开箱即用,配置+开发的模式,使得开发成本和人力需求大大降低,也使得各工种的界限开始模糊。未来的发展方向一定是一个人从销售到交付全搞定。

而且Salesforce开发人员对行业知识更了解的话,就会更深入的了解标准功能,帮助客户做出更好的解决方案。无脑自定义开发是资源的极大的浪费。

一个人的朝圣

最近在看一本书叫做《一个人的朝圣》,注意到这本书是因为它一直在kindle电子书畅销榜榜首。

这是一本好书,这是一本来自女性作者的好作品。女性作者的作品,情感描写一般都会非常细腻。

实际上我已经看了大半年,仍然没有看完,因为现在可以用来看书的时间越来越少,尤其是文学作品。

我在看的时候总是在感概,作者是经历了怎样的家庭生活与人生。也许,其实世界上并没有甜甜美美的家庭生活,大部分人的人生都是只是那般。
男主角在一个风景优美英国小镇生活了一辈子,儿时家庭支离破碎,有个与他常年分房睡的老婆,一个从来不搭理他的儿子,安然退休了,刚得知有个得了绝症的异性好友。

男主角叫哈罗德。
很难讲,到底是不是真的因为得到好友绝症的消息之后,他才决定出发。
因为他的生活让他失望,失望了一辈子。事业就那么回事,安全退休。
名存实亡的家庭。

也许他在内心一直都有挣脱出去的冲动。但哈罗德是个很平凡的人,他在努力维系着各方的表面的宁静。
他的家庭让他感受不到任何感情,在年轻的时候遇到了一个让他感到相谈甚欢的女同事,他很享受一个眼神你懂的那种感觉。
她却得绝症了。

他头脑一热,中规中矩的哈罗德做了一件一辈子没做过的事情,走着去看当年的好友————-朝圣的由来。
他与那女性好友是不是爱情,他是不是出轨了?不是的。
如果每天回到家,面对的是一张冷冰冰的脸,冷漠的氛围是会让人倍感寂寞。
如果能有一个谈得来的朋友,是一个很好的安慰———–与爱情没有一分钱关系。

他在一路上开始回忆自己中规中矩平凡“失败”的人生,开始检讨自己。同时他的妻子也开始检讨自己。
可是一切都已经晚了,灵魂上的隔阂是很难弥补的,尤其是当两个人早已习惯没有灵魂上交流。甚至不如对待陌生人。

他的好友知道他为了她走路去看她,也获得了极大的鼓舞,顽强的抵抗着病魔。
他在路上有过怀疑,有过犹豫,但他意志坚定的走了下去。
他这一辈子有很多想去做却没去做的事情,在一路上慢慢的补偿着。

加油吧,哈罗德。你虽然有错,但并不都是你的责任,关于你的夫妻关系,你的父子关系,你的平凡的生活。
你是个好人,你已经努力过,只不过不愿意将事情都弄得太难看,只好委屈的都是自己。
希望我在书的结尾可以看到圆满的结局。

<span style=”color: #339966;”>// Update1 2016/01/06</span>
我在元旦回家的高铁上我终于把《一个人的朝圣》看完了。一切心中的疑问都已知晓。
结局嘛,还可以,都情有可原。

姐姐的守护者

最近读完了《姐姐的守护者》,虽然这个书名翻译的失去了英语原文的双关。

如何评价一部好的作品,我觉得是那些作者写出了让你感同身受,你自己却又无法清晰表达的东西。

比如之前看过的另一部叫《一个人的朝圣》的作品,作者写出了让人失望的生活,并且努力摆脱这一切却无法改变任何东西的感觉。就像大部分人一样的,平凡的人生。

凯特是家里的大女儿,患有先天性白血病。父母不忍心看凯特死去,又用胚胎选择法,选择了一个可以和凯特完美配型的妹妹—-安娜。安娜自从出生起,就开始不断的给姐姐凯特提供各种血液,白细胞,淋巴细胞,骨髓干细胞等。

安娜从小就知道,自己是姐姐的零件仓库。如果姐姐没有生病,则世界上也不会有她的存在。由于姐姐的病,父母将全部的生活中心都放在了凯特身上。导致他们的大儿子和小女儿在成长过程中都遭到了忽略。他们没能从父母那里得到应得的那份爱。

我记得有段描写,是讲,凯特又去医院了,安娜自己在家里,看着放照片的墙。上面有哥哥从小到半大的照片,有凯特从小到大的照片,而她,安娜,只有寥寥数张。

就算这样,安娜仍然爱她的姐姐,她的哥哥,她的父母。

这是一对失败的父母。由于凯特生病之后无力顾及哥哥,哥哥走上了不良少年的路。凯特徘徊在死亡边缘。安娜只得到了来自这个家庭的一点点关注。安娜是所有家庭成员中最稳定,最不需要关注的一个————她妈妈说道。

当凯特最终肾衰竭,需要换肾的时候。妈妈照例让安娜拿出一个肾给凯特。安娜拒绝了,将父母告上了法庭。安娜有时会想象下,没有姐姐的生活。她可以去参加冰球夏令营,可以去上大学,可以有一个正常小孩该去享受的人生。可是父母将她生出来就是为了救凯特。

世界上有太多的事情没有对错。

当全世界都围绕凯特转的时候,没人在乎安娜。当他们从安娜身体里一次又一次取东西的时候,没人问过安娜的意见。大家都会说,“安娜一定很想救她的姐姐。”。没人考虑过安娜的健康,为了延长一个濒死的人,而破坏一个健康人。这个做出决定的人,是自己的父母。

安娜爱她的姐姐,不希望她姐姐死掉。但我想她更希望这是她自己的选择。在开庭之前,她妈妈仍然觉得只是安娜觉得自己没有受到重视,闹一闹之后就会乖乖的把肾交出来。无论官司输赢,对于安娜的家庭来讲,没有赢家。

最后官司赢了,安娜的父母不再能替她做出决定。安娜曾经表露出不想继续当凯特的零件,凯特也对安娜说不想继续遭受这份痛苦。凯特对安娜说,不要捐。安娜于是告了她们的父母。

结果,在出法庭的路上,安娜出了车祸,脑死亡。凯特得到了肾。

无论是哪种结局,这个家庭都不会完美。小孩子的成长过程中被忽视,被牺牲。不是凯特和安娜都失去,就是必须失去其中一个。

安娜的离去,使这个家庭貌似恢复了完整,但给每个家庭成员带来了沉重的创伤。她的器官,她的血液流淌在姐姐的身体里。最终,她终于可以阴魂不散的在大家的脑海里徘徊,不再被忽视了。

&nbsp;

不靠谱的世界

《Web性能权威指南》中,开篇就颠覆了我的三观。

在开发软件的时候,我们总是力求一切都犹如精密的齿轮一样运行起来,确保正常的异常的处理都可以如预料一样万无一失。

但是作为互联网底层的世界,却与我想象中的样子大相径庭。

在互联网的背后,一切数据传输都是横冲直撞,不顾后果的。就像是管理不善的运输公司,你的包裹能不能顺利完整的到达,都是看上天的安排。在互联网这里,暴力分拣,丢包裹,爆仓,交通堵塞,代签代发,就是不送,延迟送件比比皆是。更有甚还有层层设卡进行拆包审查的。

可怜的传输层与应用层们要在这种情况下,将自己的包裹有序的传来传去,并且不会出现问题。这样TCP就担当起了此重任,确保发货收货双方的链路顺畅,并且还能实时根据运送能力改变发件频率。简直神设计。。

关于安全

信息安全靠什么,数学。

TLS之所以安全,是因为其使用了人类目前脑洞能够想到的最安全的加密算法与安全机制了。

正常来说,使用单纯的HTTP进行数据传输的时候,下面一层直接就是TCP/IP(上篇文章讲到,是个在非常不靠谱的世界保持靠谱的存在)。这样数据包会经过层层官网,代理,转发,缓存等,如果其中一个环节有人心怀不轨,传输内容就都曝光了。

然后大救星出现,就是前SSL,现在叫做TLS的东西。

TLS的位置在HTTP的下方,TCP/IP的上方。这样保证了对应用程序的隐藏,开发者不用想太多,照常写就好了。

TLS之所以安全,是因为使用了一脑洞算法------RSA。

RSA利用了最简单的数学原理,分解质数。当然具体的算法很复杂。如果哪天有个脑洞更大的人找到了快速分解大数质数的方法,那么RSA就直接被淘汰了。不过目前并没有。

如果说RSA只是一般的加密算法,就是同样的口令,你一份,我一份,我用来加密,你用来解密,那也算不上脑洞最大的加密算法。因为如果是这样的话,加密秘钥就是解密秘钥,好家伙,每个和我进行加密通讯的人都要事先知道秘钥,那我怎么把秘钥给他啊,自己过来拿?如果谁不小心泄漏了,好家伙,那就不叫加密通讯了,和明文一样了。这样肯定不靠谱。

RSA的伟大之处在于,通过数论,弄出了非对称加密,就是钥匙有两份,一份随便公开,一份我自己留着,谁想和我说悄悄话,就自己去看公钥,然后加密,发给我,我进行解密就能看到了。别人没有私钥,就看不到。(前提是我保管好了私钥的前提下。不过这也比所有人都保管好一个密码要靠谱吧)

但是,如果TLS只使用RSA进行数据加密就毁了。因为RSA进行的大数计算很慢,所以RSA只用来加密对称加密的私钥,就是说,你用RSA加密了另一个用来加密解密的密码给我,然后我用RSA的私钥解密了密码,我就知道了咱俩该用啥通讯了。这样既满足了速度,又满足了安全。

Salesforce目前并不支持RSA公钥加密,不过有个神人自己写了一个实现。。。

 

 

题外,不得不说,这本书的翻译还真是烂。。

Memcache

就像站在宏伟建筑前一样,感慨大师们的伟大与自己的渺小。

Memcache的设计理念,是用来缓解大型网站在高访问量的时候对数据库的压力。其中各种伟大的设计理念与思想,及巧妙的实现。展现了工程师们的伟大。就如同了解HTTP协议背后的算法时一样,被伟大的设计所折服。智力与哲学的胜利。

MapReduce

映射化简,Google大规模使用的大数据思想。其开源实现即为Hadoop。

 

We want to count all the books in the library. You count up shelf #1, I count up shelf #2. That’s map. The more people we get, the faster it goes.

我们要数图书馆中的所有书。你数1号书架,我数2号书架。这就是“Map”。我们人越多,数书就更快。

Now we get together and add our individual counts. That’s reduce.

现在我们到一起,把所有人的统计数加在一起。这就是“Reduce”。