怎么样才能做好一件事情?

工作了大半年,自己也有点工作上的心得体会。我所在的部门是基础架构部,我在的组负责了某度大部分的分布式存储产品,当然这些产品都不是直接面向最终用户的,而是提供给不同的产品线,服务于某度不同的产品的。由于岗位的特殊性,所以平时在工作当中,可以接触到许多不同的人。跟别人合作的过程当中,自已对于“怎么样才能做好一件事情”有过一点点思考,特此写下来:

1、要有明确的目标。

这一点说白了很简单,首先要弄明白自己做的事情的目标是什么,我从来都不赞成曲线救国的做事方式,一件事情,想要做好它,就找最直接最有效的方式。任何多余的、无用的东西都不是必须的。如果当前的系统设计目标是为了服务每天100万的访问量,就不需要考虑怎么样能支撑对1000万人的服务。但是需要注意的一点是,有明确的目标,不代标急功近利,即使系统的设计是只能支撑100万的访问量,也要保证以后扩展到可以为1000万人服务时,不需要投入10倍的人力成本。

2、要弄清楚问题的本质。

经常有人来问我一件事情怎么做,在回答他之前,我都会多问一句,你为什么需要知道这件事情的做法。我可能会遇到这样一些人,他从我这里得到的答案可以协助他解决他原来的问题,但是绝对不是最佳的途径。这些人往往自己把自己限定在了一个特定的问题里,不能跳出这个问题看,没有去想想很多问题其实换个方式解决会更简单。

3、要有长远的打算。

虽然我一直强调要有明确的目标,但是我一直很否定那种只为当前做考虑的设计,系统可以支持三种命令,但是如果命令扩展到1000种,还是用判断语句一个一个来实现么。在有限的可预测到的未来,提前做好准备,可以节省日后大量的人力成本。有着良好的架构的系统、完美的基础组件支撑的系统,无论在系统以后的可扩展性、维护性方面,都有很大的优势。

4、协调好人力资源。

我现在只能说,作为一个新入职场的人,做自己擅长做的事情。如果作为一个团队的领导,那就是让合适的人去做合适的事情。很多人之所以失败,就是因为选择了一个自己不擅长的领域。姚明如果去跑110米栏,刘翔如果去打篮球,我想这两个人都没有办法取得今天的成就了吧。但是做自己合适的事情,并不代表遇到困难就退缩,适当的时候,挑战一下自己才能成长起来。

5、沟通的成本

软件这种东西,其实最合适的就是一个人做一个系统,免去人与人之间沟通的成功。但是现在的系动辙几千万行代码,有些时候让一个人独立完成开发确实不现实。当多个人共同完成一件事情的时候,沟通就成了很大的成功,所以很多人整天就是在各种沟通。沟通就会有误解,我觉得对于沟通,最好的作法就是控制时间,不要把沟通变成了头脑风暴,沟通之前一定要有一个人对将要讨论的事情有个大体的框架。

自己工作的时间也不长,很多东西其实也比较幼稚,我就这么一写,看官您就这么一看。有句话说的好,按照大部分人努力的程度,其实根本不需要跟别人去拼天赋。哈哈,努力用心,做好事情其实也没有什么难的。

5,169 次浏览 | 1 条评论
2012年2月19日 | 归档于 学习, 总结, 感悟, 未分类
标签:

吐糟一篇

很久很久没有么有写日志(为什么现在看到日志里,满脑子全是WARNING和FATAL)了,工作以后,每天做的事情大部分都是跟工作有关,我也不知道我遇到的那些问题哪些是能在博客上写的,哪些是不能写的,所以干脆都不写吧,省得违返了某些我不知道的条例。

从入职到现在,三月有余了,从工作的第二个月开始,我就把主操作系统换成了Ubuntu,虽然我们的工作环境几乎不依赖我们所使用的客户端的操作系统,不过觉得即然每天要在Linux写代码、编译、测试,还不如直接就换成Linux得了。不过要喷一下公司的IM软件,没法在Linux下用,Web版功能太弱,不能多人会话,不能保存聊天记录,一断网就啥都没有了,现在逼着我每天还得开个VirtualBox,跑个XP里面跑个百度Hi。继续向一个合格的Linux程序员进化。浏览器还是用Firefox+Pentadactyl,LibreOffice我基本上也能忍了,苦序员阶段还是很少有机会写Word和PPT的,ThunderBird装了Conversations和Lightning两个扩展以后,基本上我还对这个邮件程序比较满意。嗯,另外自己重新编译了个Screen的新(话说这代码也是2006年之后就没有更新了的)版本,基本上现在用着也不会coredump了,VIM也积累了一些自己用着顺手的插件,以至于现在到别人的环境里写代码会感觉很不适。虽然我觉得Ubuntu对多显示器的支持有些烂,但是多虚拟桌面的功能还是很赞,随便切来切去,基本上可以让整个人多线程起来,写代码的间隙不影响看邮件,不影响处理别人的问题。嗯,前段时间看了下gdb里的tui功能,让我的“GDB真难用”的观念发生了巨大的变化,并且对于我们这种只能在终端调试程序的苦程来讲,gdb也是唯一能用的调试工具,用好它,平时的工作可以事半功倍。俗话说,工欲善其事,必先利其器,感觉这几个月确实学会了不少利器啊。

现在起床的时间越来越晚,回家的时间也越来越晚,好在不用挤地铁,好在每周都能完整的休息两天,好在每天做的事情自己也能沉浸在其中,以至于经常感觉一周的时间很快就过去了。周末的时候像个家庭主妇似的收拾家里,自己去买买菜,自己做点饭,倒也算不错。

貌似博客现在访问的速度很慢,我用代理访问就没有任何问题,难道Godaddy的服务器也被某墙污染了?不得其解。

4,840 次浏览 | 6 条评论
2011年11月3日 | 归档于 工作, 总结, 感悟, 生活
标签:

主机换到国外了

为了访问国外的资源方便一些,我把AgilePHP,也就是我的博客的主机换到了国外自己在GoDaddy上买的主机,现在升级WP、安装插件的速度也快一些,并且由于一些众所周知的原因,换到国外,可能装一些插件会比较方便。

非常感谢叶博这几年无偿提供的主机空间!

3,970 次浏览 | 2 条评论
2011年8月12日 | 归档于 互联网, 博客
标签:

iPod Touch 4

终于在这个26岁生日的时候,完成了一个小小的心愿,入了第一个iDevice,泡泡送了我一个iPod Touch 4。通过这段时间的使用,我对iOS总算有了一个比较切身的体会。当年买Nexus One的时候写过一篇评测,今天也写一篇吧,算是从一个互联网从业人员的角度来观察苹果的产品,并且尽量从中立的角度来比较一下iOS(iPod Touch 4)与Android(Nexus One)的优缺点。

1、外观
第一点就说说外观吧,iTouch 4很薄,以致于我现在拿着Nexus One就觉得它又厚实又重,苹果的工业设计很棒,做出来的东西在视觉和感觉上会比实际的尺寸给人更薄的感觉。

2、操作
Android最明显的特征就是一般来说正面有4个按键+一个滚球,从第一眼看到这种设计我就觉得完全没有必要设计成4键,完全可以把操作的按钮放到界面上,我觉得只有Symbian的一些触控机器的通话、挂机键的设计要比这更扯蛋了。

3、电池
iTouch号称播放音乐可以40+小时,播放视频可以7小时,如果一直用来上网的话,其实一样不给力,不比Android的电话更牛逼。

4、界面
说不上iOS的界面就比Android更美观,甚至一些程度的操作流畅度不如Android(比如一些Twitter客户端滑动明显没有Nexus One流畅),是因为内存太小么?iTouch的内存只有Nexus One的一半。iOS 的界面设计比较适合一般的消费者,而Android的界面似乎面向的还是Geek工程师。

5、通知系统
iOS的通知系统烂,真的很烂,听说iOS 5里要改成与Android一致的样子,可以下拉标题栏。我好几次在iTouch的界面想下拉标题栏,都没成功,升级iOS 5后应该可以了。不过iOS的图标上的“数字通知”真是大赞啊,充分利用了已有的空间,向用户展示更多的信息。

6、VPN
Android的VPN连密码都不能记忆,而在iOS上连VPN只需要滑一下即可,哎(别跟我讲换ROM,换ROM我也知道)

7、游戏
Android上的游戏很多不要钱,iOS上的游戏大部分都要钱。App Store里的收费游戏基本上的我在Android上都玩过了。

8、应用市场
App Store和Android Market,菜市场的速度在中国还是很给力的,而App Store下程度却有点慢,不知道是不是因为我是用的iTunes美国账号的原因。只有在开了VPN以后,下载程序的速度才比较给力。

9、任务管理
我觉得苹果的理念还是对的,不需要用户去关心有哪些任务在后台,我需要关闭哪些任务来释放空间,操作系统会帮你做所有这些事情。电子消费产品有些时候要少给用户引起选择。这一点其实Android的处理也是类似的,只是有好事的人做出了各种各样的Task Killer。

10、越狱
MS这个是智能手机永恒的主题,手机制造商和移动运营商为了保证手机的稳定性,往往对手机进行了一定的限制,所以就有人想出各种办法,解除这种限制。目前看来,除了iOS上笔划输入法那大大的按键让我不舒服以为,我可以通过越狱安装百度输入法,没有别的什么有让我越狱的冲动了。装盗版软件嘛,想想还是算了,真的有好的软件就买几个呗,常用的软件也都是免费的。

11、Twitter
我对Twitter还是比较依赖的,我安装了Twitter for iPhone、Echofon for iPhone、TweetCaster、Twitterrific、TwipBird、HootSuite和TweetDeck,只有官方应用和TwipBird支持API,嗯,这些应用的体验反而不如Seemic for Android。不过官方支持API倒挺好的。(注意要用Twip 4的O模式哦!)

嗯,iPod Touch在野外不能上网确实比较尴尬,特别对于我这样一相拿它来当一个移动互联网终端的人来说,不过用Nexus One的WiFi共享可以完美解决这个问题,哈哈,乔帮主也不会想到有人会通过Android来保持iPod在线的吧?

3,354 次浏览 | 1 条评论
2011年8月10日 | 归档于 Android, Apple, Google, iOS, iPhone, iPod Touch, Mobile, Nokia, 互联网
标签:

入职半月小记

上班快一个月了,其实环境都还好,比较符合我对工作的要求,忙也倒不算是特别忙,压力嘛,作为新人,肯定有一点,但好在导师、同事、经理人都比较Nice,有问题可以随时找人问。接触到的东西也算是符合我的预期,每天的工作流程基本上可以总结为:

ssh
screen -r work
vim
make
./run_test
现在才觉得以前用vi用到弱爆了,用shell也用得弱爆了,这些工具果然日常不用,光是知道看过读过DOC是没有用的,不实践是出不了真知的。嗯,自觉的Python也派上了用场,可以很方便的写一些脚本,看组里的脚本大部分还是用perl和shell写的,想想也无所谓吧,反正用脚本的人不会关心这脚本是什么语言实现的。公司给配的小黑也很给力,可是想想我们开发也不用在本地做,这么牛逼的机器纯粹就是浪费啊!
加油工作!闲言碎语就说到这了!

3,514 次浏览 | 1 条评论
2011年8月10日 | 归档于 未分类
标签:

26岁了

终于到了不想过生日的年龄!以前每次过生日我都会很开心的写一篇日志记录一下这一年获得的成长,展望一下未来,可是唯独这次(我想以后每次应该都是吧?直到有孩子?),觉得过生日真不是件啥好事情啊,不是又长了一岁,而是又老了一岁。10年到11年度,人生经历中最重要的成分应该就是找工作了,关于这个,我以前的日志里,写里很多很多。除此以外,经过我三年时间的奋斗,终于毕业了,顺利的拿到了毕业证和学位证,学历从本科变成了硕士。其实回想起这三年来,过得也不容易,有许多怨言,学习上也遇到过很多不顺利的事情,不过总算都是挺过来了。我这个人一向是经历困难的时候很能挺但也是一肚子苦水不知道该找谁倒(可怜了泡泡了~),可是困难解决了过去以后,也就不那么在乎了。

最近这几年在北京呆着的经历就是所有的事情都不怎么顺利,但是所有的事情在最好都顺利解决了。

还是展望一下未来吧,话说已经入职有一个月了,还算是比较适应某度的工作节奏,每天按照读书的时候的时间起床,各种办法解决早饭,然后搭着地铁去上班。9点钟到公司,开始一天的工作,晚上8点左右回来,其实也还好,不是很累,也不用像在学校的时候那样每天11点钟才回宿舍;而且周末可以正常休息,这一点满足了我对工作的基本要求。

未来的一年,希望自己工作顺利,希望生活顺利,希望家里人都平安健康,嗯,到明年过生日的时候再想想是不是要在2012来了之前把婚结了呢?哈哈……

2,997 次浏览 | 1 条评论
2011年8月8日 | 归档于 总结, 感悟, 生日
标签:

明天入职

其实更想说的不是明天入职,而是自己学生生涯结束了。从幼儿园到上小学到现在,已经上了4+19年的学,自己应该算是个好学生吧。在毕业答辩结束那天,我给自己的MSN签名改成了“Step 1:Done”。我觉得学生生涯是人的一生里的第一步,第二步便是工作和事业,第三步是年老享天伦之乐。人的一生也就这么短短不到百年,分成这三个阶段足矣。

这篇文章倒不是想对这4+19年的学生生涯作个回顾,我想若是真要去回顾,几乎应该可以写本书出来,每一个阶段都有一些令自己难忘的故事。不过今天对过去三年在中科院学习的经历倒是可以回顾一下。当时选择保送到这里,本着“研究生也可以做些研究”的目的,想体验一下与大学时候软件学院完全不同的氛围与学习方式。软件学院主要还是以培养学生的个人工程能力为主,所以我们学习很多新的技术,参加很多比赛,掌握很多与工业界相关的知识。而科学院则是完全不同的,在这里我主要完成了两件事情:第一是发表自己的一篇小论文,第二是完成自己的毕业论文。写论文与写代码的方法是完全不同的,写代码只需要去参考一本语言规范即可,写论文要调研非常非常多的资料,提出自己的问题,提出解决问题的办法,对自己的办法进行评估和验证。

研究生一年级的时候基本都在上课,那个时候课程上得其实也不轻松,特别是“随机过程”上得我是特别痛苦,追根究底,主要是因为本科的时候学的课程跟这门课要求的一些基础没有重叠,自己把相关的基础知识几乎是学习了一遍,算上复习一共用了1个月的时间,每天早上起来去上自习,上到很晚才回来,我觉得我本科的时候都没有这么大的动力能坚持上一个月的自习。最后考试的时候倒还令我满意,取得了一个良好的成绩,我觉得这件事情,基本上就是我研一时候的一个小小缩影吧,上课,学习。

研究生二年级是我这三年里最痛苦的一段日子,当时做的东西是想把发布/订阅系统(我们组里的老传统)和云计算结合在一起做一个新的系统,这方面最令人困扰的就是没有可以参考的东西。而且自己在大四做毕设和研一的时候接触的都是我们组另一个传统项目服务发现,所以本身对发布/订阅系统也不太熟悉,只能摸着石头过河。而且由于原来系统所设定的目标跟现在所设定的目标有所不一致,所以还需要更改原来的系统修复一些BUG。我这人向来是讨厌给别人擦屁股的,可是那个时候擦了半年的屁股。而且有大概整整一个多月的时间,每天做实验做到夜里2、3点才回宿舍,早上8点起床继续去实验室,到最后自己熬得都必须每天喝大量的咖啡才能坚持过来。不过最后还是熬过来了。小论文虽然初投ICEBE的时候被拒,但是后来投EUC的时候顺利通过了。这得多多感谢金老师的指导和帮助。

研究生三年级,其实也是跌跌撞撞过来的,先是很认真的准备找工作,后来经过了曲曲折折的路拿到了百度的Offer,这是个我心宜的Offer,然后很Happy的去香港参加EUC的会议,开完会在香港还玩了两天。接着无心插柳地又拿了微软的Offer,小纠结了一下,最终还是选择去了百度。然后就是准备毕业论文,毕业论文写了50000多字,可是真没觉得自己写了很长时间,有那个两个星期,每天写一点,每天写一点,也就写出来了。我觉得最重要的事情是因为有东西好写,所以不愁写不出来。当然在开发毕业论文里涉及到的系统的时候出现了一些问题,我觉得在一个团队里首先要统一每一个人的思想,大家只有往一块起,劲往一块使,才能保质保量的完成任务。后来的中期检查、毕业答辩也算是比较顺利。接着就是找房子,然后就是参加毕业典礼,然后办各种各样乱七八糟的手续,就晃当到今天了。

明天就要入职了,祝自己在第二步里一切顺利。

5,087 次浏览 | 7 条评论
2011年7月12日 | 归档于 学习, 总结, 感悟, 校园, 生活

毕业进行时

毕业答辩顺利通过了,昨天晚上,8点的时候。

通过之后也没有想像中的那样轻松,从得知答辩日期之后就一直在等待着这个时刻发生,我是所有人里第一个批次第一个答辩的,知道这一点反而让我觉得很高兴,不用看着别人都答辩完了自己再上去讲。昨天一整天自己都算是处在一种“兴奋”的状态,期望着早点答辩早点结束这件事情。最终还是顺利地结束了。

其实从研二开始就期待着这一刻,因为我觉得对于研究生的生活我有太多的感触,但是在旅途结束前就总结经历,总觉得太那啥,其实现在我也不想说,等真毕业了再写一篇吧。三年,憋了一肚子话。

2,390 次浏览 | 没有评论
2011年5月31日 | 归档于 同学, 回忆录, 学习, 总结, 感悟, 校园, 生活
标签: ,

微博!!微博!!

最近写了个工具,可以将Twitter中的Tweets同步到新浪微博、人人网状态和腾讯微博。其实我一直想做这样一件事情,多年前开发的Facefeed实现了用户内容的聚合,望江楼Digg实现了微博同步,但是斗转星移,Twitter在国内目前已经无法正常访问,饭否之辈也成了非主流,新浪微博现在一家独大,就连腾讯这个手里拿着6亿用户的巨人也暂时找不到一个有效的可以撼动新浪微博地位的方法。

不过除了Twitter以外,其他一些国内微博我自己使用的兴质到是不高,也一直没有想到一个好的可以将多个微博同步的方式。虽然国内有一些同步工具,但是1是觉得对帐户安全不放心2是觉得有些功能没有办法自定义,所以趁热打铁复习了一遍Python,操刀写了一个。新浪微博的Python SDK做得很好,文档齐全,代码写得很上档次(这一点让开发者觉得很赞!),人人网的SDK比较让我失望,居然不允许一般的App更新用户状态,需要访问此API要走一套流程,懒得去弄,最后用的是3g.renren.com的页面,使用类似HttpClient的方式更新的个人状态,腾讯微博就更令人蛋疼了,没有Python的SDK,无奈自己按照OAuth的标准搞了个简单的可以访问status/update接口的SDK。

然后就是各种调试,还随手写了个基于文件的k-v存储,Python真是个方便东西,然后就做好了,期间被几位同学抱怨过,其实之前我也考虑过,这样做同步有没有意义,后来觉得挺有意义的:1,我主要在Twitter上发东西,2,其他几个产品上的好友与Twitter上的交集很小。当然了,被我刷屏的同学都是几个地方跟我都是好友的同学,我只能抱怨一句,同学你上班的时候能不能别开着这么多微博!

期间@willchenhb说了一句话,让我记忆忧新,他说校内是他来看八卦的地方,这一点我觉得国内很多SNS都有这个特点,之间有人统计说Web2.0网站里的1-9-90原则,即内容是由1%的用户提供的,另外9%的是活跃用户,剩下的90%的都是来打酱油的。社交网络本来是一个以真实的人际关系为基础的,聚合了状态、相册、博客、线上游戏等功能的平台,但是目前在国内却成了八卦的天下、视频分享、奇文分享的领地,这不禁让人有些感慨。其实这一点开心网比人人网还严重,那里基本上就是个“链接营销”、视频分享、种种网页分享的大杂烩了,用户自己贡献的内容少之又少。

2,431 次浏览 | 没有评论
2011年5月23日 | 归档于 Mobile, Web 2.0, 互联网, 博客

SSH无密码登录

一直都有用到这个,但是每次用都要去查一下,干脆现在记下来。

除了通过交互式的方式输入用户名和密码以为,SSH中还可以通过一种“公私钥”的方式进行登录,具体的原理为:

  • 首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)
  • 然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥
  • 当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了

具体的实现方法如下:
user@ubuntu:~$ ssh-keygen -t rsa -P “”
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory ‘/home/user/.ssh’.
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
9b:82:ea:58:b4:e0:35:d7:ff:19:66:a6:ef:ae:0e:d2 hadoop@ubuntu
The key’s randomart image is:
[…snipp…]

user@ubuntu:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

主要就是红色的命令,一个是生成公私钥对,类型是rsa,当然也可以是dsa啥的。然后第二条命令就是把公钥放到受信公钥文件里。这个时候使用

ssh user@localhost

就可以直接登录不用再输入密码了。当然配置多台机器用scp搞一下就成,这里我就不详说了。

3,398 次浏览 | 1 条评论
2011年5月18日 | 归档于 Linux
标签: , , ,