不知从什么时侯起,“互联网思维”成了热门的名词,不管什么东西,一旦沾上“互联网思维”,就瞬间变得金光闪闪。无数人手握“互联网思维”,雄心勃勃地要改造各种行业,大有大跃进时“向三山五岳要粮”的气慨。然而仔细想想就不难发现,“互联网思维”的最初鼓吹者,只是在事后按照“互联网思维”的路子去解释自己的成功经历,正如同我党用《东方红》来解释从整部革命史一样。其它鼓吹乃至信奉互联网思维的人,我还真没听说有几个在“互联网思维”的指引下取得了成功。所谓“互联网思维”,在我眼里更象一出傲慢的闹剧。 我曾经说过,互联网最大的价值是加速了信息的有效流动,因此大大降低了许多活动的成本,省略很多中间环节(当然,这些中间环节主要作用是传递信息)。一旦深入到现实世界,互联网还是要受到现实世界的制约,要尊重传统积累的智慧。那种以为有了“互联网思维”就可以横扫一切的傲慢,是断然要不得的。 (more…)
一晃六年,《技术领导之路》要再版重印了。回想刚刚开始翻译这本书时,我还忙碌在程序开发的一线,对领导技术团队并没有太多经验;如今,也能差强人意地带领技术团队支撑年销售额数亿的业务。一路走来跌跌撞撞,所幸没有中途倒下。思考其中的原因,除去运气,除去身边同事朋友的支持,翻译《技术领导之路》也是不容忽视的因素。 很多人都知道,“职场童年”非常重要,一个人最初工作的几年,在什么样的环境里,得到过什么样的锻炼,很可能决定了他整个职业生涯的走向。同样的道理,“领导力童年”也很重要,一个人对领导力的最初接触和认知,也会深深影响他对于“领导”和“领导力”的观点,甚至领导作风。所以,在我还忙于一线开发的时候,通过翻译《技术领导之路》,“生吞活剥”了一整套关于领导力的学说,基本“塑造”了我关于领导力的认知,深深影响了我作为技术领导的管理风格和价值取向,因此也对很多问题有了自己的判断——前段时间和另一位掌管公司技术的朋友聊天,说起那种“执行力超至上”的领导风格,我们都认为,尽管或许能出结果,但不是好的领导风格。 (more…)
算起来,我从互联网开发投身企业开发已经有四年多时间了。刚刚进入企业开发领域时心里很是忐忑,虽然也读过《企业应用架构模式》之类的书,到底没有做过正经的“企业开发”,好在业务不算太复杂,所以更多是借着之前互联网开发的老底子解决问题。而且,这么做确实能解决问题,只是心里还不太放心,总觉得这不是名正言顺的“企业开发”,以后会有问题。 谈到传统的企业开发,大家通常想到的是“为明确目标(通常由甲方设定)而开发的紧耦合固定系统”,主要元素包括重型框架、长发布周期、严格的限制、海量的文档、对商用软件的倚重等等。谈到互联网开发,大家通常想到的是“为不明确或多变目标而开发的松散多变系统”,主要元素包括轻量类库、迅速迭代、不断试错、简单交流、开源/免费软件的广泛使用。传统上,企业开发和互联网开发俨然两派,你觉得我是杂乱无章的恣意胡闹,我觉得你是傻大笨粗的因循守旧,好在双方“井水不犯河水”,也相安无事。 企业开发和互联网开发的这种区别,让我在以互联网开发的方式应对企业开发任务时,始终有挥之不去的担忧。然而工作得越久,事实却不断证明这种担忧是多余的,或者至少不必高估“企业开发”的正统性。而且,有越来越多的迹象让我相信,企业开发的互联网转向,即在企业开发中越来越多地采用互联网开发的方法,是未来的趋势。按照我的总结,原因大致有以下几点。 (more…)
最近因为工作的缘故,接触了TokuMX,尝试下来感觉不错,值得介绍给大家。 事情的起因是要解决MongoDB的问题。系统中需要保存程序输出的运行信息,这类信息比程序语言的log更高级,但又不如业务操作日志高级,是某些时候发现问题的关键证据,所以必须保存。因为格式不太规范,又需要方便检索,所以文档型NoSQL的MongoDB是比较好的选择。 但是,选择MongoDB就必然会面对磁盘空间的问题。我们的数据大概是这样的:每天的数据量不到200万条,单条数据的平均大小不超过4k,但MongoDB存一个月的数据就消耗了接近40G,最近三个月的数据则需要接近100G。限于具体的硬件环境,只能保存最近三个月的数据,但这无法满足业务需求,所以必须另想办法。 (more…)
本文翻译自 TokuMX Fractal Tree(R) indexes, what are they? TokuMX的一大创新在于,它打破了一条长久存在的关于数据库的规则:要保证好的写入性能,索引的工作集应当能够放在内存里。标准答案是这样的:如果索引的工作集比内存要大,写入就需要执行I/O,I/O就会成为限制因素,性能就会下降。所以,要么让索引小到能全部放进内存,要么提供一种索引写入模式,避免工作集过大,比如MongoDB所采用的,内存中只为最近插入的数据保存索引。 但对TokuMX来说,这是绝对不成立的。依靠TokuMX所提供的创新性的分形树索引,索引的工作集可以比内存更大,同时写入性能不受影响。分形树索引为什么在重度写入(无论是MongoDB还是MySQL)的评测中能表现优异,原因就在这里。 (more…)
读大学的时候去考了托福,成绩很是出乎我的意料,作文竟然有5.5分。当时托福作文的满分是6分,5.5分的Rank似乎是95%,也就是说在所有考生中排名前5%。这完全超出我的想象,因为之前没有上过新东方,也没有参加过任何培训班,如果说做了什么复习,似乎就是与同学结对写作、互相修改,练习了大概20篇作文。这个办法是很多考生都在用的,却只有我拿到了5.5的分数,朋友们也觉得很惊讶,问我有什么诀窍。我仔细想想,如果真的有什么要诀,那就是复习时在网上看过俞敏洪的演讲。 演讲的全文我已经不记得了,只记得其中的一个问答。有人问他:在没有老师指导的情况下如何练习作文?俞敏洪的回答是:如果自己练习,那么拿到题目先不要看范文,想想自己要怎么写,写出来,再对比范文,看看人家为什么写得好,有哪些地方可以学习。 (more…)
最近几年,“互联网思维”忽然热门起来,似乎成了点石成金的本领,掌握“互联网思维”就变得神通广大,不会“互联网思维”的人则注定要被淘汰。这让我非常惭愧,说起来我上网也有很多年的历史了,大学毕业后一直做与互联网相关的工作,虽然感觉到互联网的一些特点,却从来也不知道什么是“互联网思维”。不过俗话说“光脚的不怕穿鞋的”,所以不懂互联网思维,并不妨碍我使用和观察互联网,也不妨碍我谈谈自己对互联网的理解。在我看来,互联网并没有太多玄妙,它神奇的地方只是加速信息的有效流动,由此改变或产生了许多全新的应用形态。这个观点,从互联网发展的历史来看更加明显。 在正式开始谈“互联网”之前,我们不应忽略一个重要的准备阶段,即“信息化”(或者叫“电子化”、“数字化”。实际上,本文所说的“信息”基本都是“数字化的电子信息”)。也就是信息从物理载体抽离出来,成为“纯粹”的信息。书籍和报刊的电子化就是这个阶段的重要体现。我深深记得,《读者》杂志创刊20年之际,发行了一套3张CD,记录了《读者》20年的所有内容。之前很多人终年购买《读者》杂志,花了很多钱,其中的很大部分花销都用于纸张、印刷、装订、发行等等环节,与他真正关心的内容无关。信息化之后,读者只需要为自己真正关心的信息花钱(光盘的物料成本很低,可以不计),获得信息的成本大大降低。而且信息化的文档还可以方便地存放、检索、复制,所以信息利用的效率也大大提高了。除了文字,图片、视频、声音等内容也纷纷加入这一进程,以数字化的方式存储起来。只是这些信息还处于孤立的状态,而且形式各异,不方便交互。 (more…)
上周在深圳见朋友,聊天时仍然把“正则表达式”和我联系在一起,这真让人惭愧,因为我已经很久不写正则表达式了,甚至有些生疏。估计是Jeffrey Fridel的《精通正则表达式》写得太好,身为译者的我也沾了不少光,收获不少虚名。为避免误解,撇去虚名,有必要专门写写我和正则表达式的故事。 我和正则表达式的缘份,始于我的第一份工作。那时我刚刚离开学校,除了在学校里认真写过些程序实现书上的理论和练习,根本没做过实际的项目。找工作当然也不顺利,尤其不是北京的高校毕业,在北京找工作更加困难。好不容易找到一家公司愿意收留我,周四上午面试、下午复试、周五就签合同,通知“下周一来上班”了。 我清楚地记得,上班的第一天,为了不让其他人看穿自己其实没有项目经验,我特意带了那本厚厚的影印版《the Java Programming Language》,一来充门面,二来也抱抱佛脚,之前在学校写的都是C++程序,Java确实不熟悉。而且,上午确实没太多事情干,这本书救了我的命。 好日子在下午就到了头,项目经理给我们做培训。当我满心欢喜地参加培训,希望通过培训来“软着陆”时,等来的却是高强度的信息轰炸:一小时内讲完了JBuilder、JUnit、Ant三样东西,我完全没有接触过,但公司要求“明天就开始使用”。读书时虽然不排斥学习新的知识,毕竟习惯“循序渐进”,这种“培训”闻所未闻,结束之后只觉得大脑一片混沌。在QQ向同学吐槽说“公司这么不讲道理,纯粹血汗工厂”,答复却出乎我的意料:“赚翻了,赶紧学,我们想用还不让用呢”。在当时,被“堵”的感觉特别糟糕,但转念一想,这么说也有道理,所以我拼命忍住反感,硬着头皮学习。 (more…)