自省 四月 25th, 2011

我玩股票,想学价值投资者的操作,但是我不知道怎么去看财报,不知道如何衡量一个公司,更可怕的是也不想去看财报,这又算什么价值投资了?在股票的世界里,这种人是最可怜的人,因为它往往会是一个输家 我想做一个好软件,但是不精通算法,不了解相关产业信息,在编程时也不精益求精,又如何能达到目标了?最后也只能成为一个平庸的程序员而已。 我想有一个好身体,这样我可以有更多的精力去编程,玩股票,但是我却不想锻炼。 其实一直以来我走的都比较顺,有后路:大不了回家,所以很多时候我都不会太努力,这是我最大的缺点,如果我一直这样,我最后也就止于此。   改进计划: 使用Google calendar在每个月的第一天提醒我要看一本技术书籍(这是2011年的计划之一) 买个哑铃回来锻炼身体。 关注每天Webkit的邮件。 减少关注股票的程度(看的太平凡反而无法正确对待,先做到只是每周定期的检查一下关注公司的新闻与最新的情况,阅读财报)

iphone学习笔记 四月 1st, 2011

从J2ME开发转为Iphone开放已经有两个月了,时间过的很快,现在来总结一下学习经验。我看的书有一下几本《iPhone 3开发基础教程》,《Objective-C基础教程》,《iPhone开发秘籍》 先说书吧,书是入门的,这里我强烈建议是不要看《iphone3开发基础教材》这本书,这本书讲的东西很少而且不实用。在学习一个手机开放平台的开发时,有下面的事要了解。
  1. 语言特性
  2. 程序生命周期
  3. 事件的传递机制
  4. 存储机制,绘画机制
  5. 文档的格式与阅读
  6. 平台限制,不同OS之间的限制
了解了这些之后,可以说能胜任大部分的工作任务,但是《iphone3开发基础教材》在这里面只说到了第一与第四点,其它的都没有什么涉及,作为一个开发者,如果对程序的生命周期都不了解,如何能看懂现有的代码,更别说开发一个高效的程序了,《Objective-C基础教材》这本书还可以,但是感觉还是有很多东西没有说到,不过相对与《iphone3》来说已经好很多了,《iphone开发秘籍》比《iphone》要好一些,至少它说了一下第二点,程序的生命周期。   总的来说,如果对ObjectC一点都不懂的,可以看一下ObjectC基础教材,再看一下Iphone开放秘籍,如果英文够好的话,学完语言后直接去阅读iphone的开发文挡与教材,那里面已经写的很详细了,完全不用再买什么书。   如果要看apple的文档,有两种方式,一种是xcode中查看文档,一种是去developer.apple.com的网站上去看,大部分时候都可以xcode的帮助来了解。下面是apple给的文档 iphone 文档 inherits form就是继承,conforms to表示它满足那些protocal,companion guide 指的是在那些教材中讲到了,Related sample Code是很重要的一个,apple网站上面有很多例子,Related sample code说的就是这个类在那些例子中有示范。当碰对一个陌生的类,不知道用法与效果,可以通过这来找到范例。companion guide是很详细的说明,都很值得一看。   懂了如何看文档后,就是写大量的代码,在实践中不断的认识。   脑图(使用Free mind打开)

imac体验 二月 27th, 2011

因为要做Iphone开发,所以一到北京我就买了一台IMac,买imac而不是买本的原因很简单 一、我已经有一个本了,移动性已经可以满足我的需求了, 二、因为我要开发的是手机浏览器,所以我要查看与调试safari的代码,如果是一个本的话,估计编译一遍就的花几个小时的时间,这不是开玩笑,safari的代码现在有一个多G,我在我的本上跑,整个编译过程要两个多小时,每次编译我都放到睡觉前,然后早上起来看结果,如果编译失败,那就是一个悲剧,为了不让我再享受这种待遇,我下定决心要买一个很好的台式机, 三、提醒功能:提醒我在未来的三年内不要再来回跑来跑去了,我想安安静静学习,编代码,做我想做的事。这个理由虽然牵强,但是我希望有一件东西能时刻的提醒我。 买回来的第一个感受是屏幕大,虽然都是22寸的,但是因为设计原因,总感觉它不止22寸。音质也不错。操作了一下,我这种Mac的小白用户也能很流畅的使用。不过里面的软件少了一些,比如说没有专门的下载工具,下载起来很不方便。 不过对于我这种非娱乐用户来说已经够用了:我的文档放在Google Docs上,都不用从window上同步文件,资讯只上Google Reader,那些只能在IE中显示网站我一般都不会去访问。电影现在在线视频网站一堆,随便点开一个都能看。 最后最最重要的是翻墙工具,在Mac下也比window下简单,都不用再去下载额外的软件! 如果要说不足的话,就是Firefox在Mac上太慢,有时打开网页的速度让我发狂,而safari下有没有Vimpretor这样的插件,每次使用都要动用鼠标,很是不爽。如果Firefox的速度那时能赶上chrome的话,那么就完美了。 使用Mac的系统最悲剧的就是使用非Apple自带的键盘,apple键盘有一个command键,这个键在很多快捷键组合中使用到,但是在其他的键盘中,这个键对应的是Win键,因为win键 在Window系统中使用的很少,所以它的位置就很偏,手指能很难按,在家还好办,买Mac的时候会配一个Apple的键盘,但是在公司,使用的mac mini,它没有自带键盘,而公司就随便给了我们一个键盘,在忍受了两个星期后,我终于忍无可忍,自己掏钱买了一个Apple的键盘,带到公司去..... apple在Mac上推出了app Store,开始我还挺兴奋,想这样下软件就方便了,但是搜了一下我想要的软件,都没有,不仅如此,apple自己公司的软件也没有放到app store里面去,比如iphone开发最常用的Xcode。这让我很是郁闷,再怎么说自家的产品也要照顾到才成啊,难道apple还要堆自家的产品审查,而这些软件都很悲剧的煤油通过审查吗? 总的来说,mac还是不错的,有很强大的命令工具,搜索功能,能满足大部分功能,如果想玩游戏的话,可以玩暴雪开发的游戏,不管是魔兽还是星际,在Mac平台都有。
Posted in IT评论 | Comments(0)»

春节草记 二月 6th, 2011

写一下回县城的感想,明年回来做一个对比。 一、县里面的房地产发展太快,像我们县城的房价到三千多,而桂林有些地方的房价都没有这么高,这太不可思议了。只是国家每次调控房价都是越调来越高,所以大家都不信任政府,但这是危险的信号。如果再不调控的话,银行将会是损失最大的地方。做为个人,要提高现金流才成。防止潜在的危机爆发。 二、村政银行的发展,以前民营银行有过一个破灭,不知道这次会不会吸取教训,如果不吸取教训的话,估计会出大问题。 三、大家现在对合法与非法的概念比较模糊了,其实这也是政府的问题,与房地产是同样的问题,政府公信力太低。 四、公务员如果都限于虚的东西,那么政府也许就要完蛋了,最好做一些实的东西出来。我建议是多看案例,但是不知道有没有用。 五、桂林如果再不淘汰落后车辆的话,估计就没有办法看了。污染太大了 六、继续努力,享受过程。做好自己的事。
今天是最后一天在腾迅大厦,年后我就不在深圳了,下班的时候,也没有跟谁打招呼,就直接走了。我不想道别,也不习惯道别的场景,所以我一个人走了。 如果我知道我是那一天死的,那么我希望在那天之前离开我认识的所有的人,到一个陌生的地方,看着夕阳,安静的离去。 呆在深圳的日子还是不错的,虽然一天也就是那么几件事:上班,加班,下班,但是环境不一样,所以有一些东西还是不一样的。 记得有一句话叫做:不害怕,不后悔,回到北京,理由太多但理由也太少。但是细想一下,人生百年,我已经走过二十几年了,以后的日子我想按我的想法去走:哭过,笑过,爱过,恨过,仅此而已。 很多人不是在追求幸福,而是在追求比周围的人幸福,我不想这样。 安定的生活,有房有车。这样的生活是不错,但不是我追求的。 我想做点有意思的事,能带有一点意义的事。 最后是誓言,承诺,目标这种东西不是说的,而是做的。 最后插一个广告,也算是我回北京的原因之一吧,很多人问为什么回北京,我已经厌烦了回答,呆在深圳的时间太长,我也忘记要回北京的原因了,,太多太多的原因,结果我最后也不知道那个才是真正的原因。 --------------------- 如果我回到北京,人却都走了,那回来有什么意思了? 2011- 2- 17 --------------------- 跟人讨论读研的事,对于读研来说,我的看法是如果感觉自己发展快要到瓶颈了,那么可以去读研,为什么说快到瓶颈了?因为一旦到了瓶颈然后再去读的话,那么发展就会受到限制,而如果在还没到时,可以提前做好准备,这样永远都是在前进当中,   然而读研也有很多选择,我认为要读研就要读最好的,如果不能读最好的, 那么读出来又有什么意义了?文凭是一个敲门砖,但是金砖敲门总比板砖来的快,当然付出的也多。但是有付出才会有收获。如果高不成底不就也没有什么意义。 其后我们又由考研扯到其他的事上去了,回到北京我也想了很多,所谓的成功是什么?是百万富翁吗?那么我应该回桂林去,在桂林我能更快的实现这个梦想!但是这真的是我想要的吗?我真的快乐吗?我不快乐,但是我想要的的生活又是什么了? 我现在的想法很简单:做一个有意义的软件。虽然是又一个目标,但是我却经常在思考房价,思考工资,思来想去,我发现我还是在使用金钱来度量一个人是否成功,这真是我的悲哀,我以为我挣脱了,但是其实没有,那么我又该如何做? 写到这,发现自己的精神是多么的贫乏,也许是应该读书的时候了。多读书,读好书。也许我们总会受限于物质的,但是我们可以让精神自由。让精神指导要做什么?如何去做。 附一首歌:   其实物质上的富有跟道德没有任何关系,只跟想的程度又关,所以很多“成功者”的发家史追究起来都不那么光明,所谓好人不偿命,这在那都一样,不过我不想做好人,当然,我也没法做到那些“成功者”一样,所以还是做我自己吧!历史就是XX,谁人都能上,但是你确定你要做那样的人吗?至少我不想,或者说我做不到。 最后还有一个问题: 十大科学难题,长大后,爱情是不是就变成了房子,车子,孩子,面子了? 2011-2-27 ------ 其实我们都有自己的价值观,说再多也改变不了,所以如果可能的话还是少说多做吧。 2011-4-23      
chrome是一个多进程多线程的浏览器,这次分析的是Thread,说到Thread,就不得不提到chrome设计原则:不鼓励Locking和threadsafe objects, 为此Google的大牛们使用如下的原则来避免锁
每个objects都只能存活在一个Thread中,并且使用callBack的方法来满足跨平台的需求。
抽象的东西不用说太多,还是直接来看代码吧:

io_thread->message_loop()->PostTask(FROM_HERE, NewRunnableMethod(

this, &RequestProxy::AsyncStart, params));

类似的代码在chrome中是很常见的,这些代码的作用是作什么了? 首先看PostTask方法的参数:

NewRunnableMethod(this, &RequestProxy::AsyncStart, params));

NewRunnableMethod的定义如下:

template <class T, class Method, class A>

inline CancelableTask* NewRunnableMethod(T* object, Method method, const A& a) {

return new RunnableMethod<T, Method, Tuple1<A> >(object,

method,

MakeTuple(a));

}

而在调用时代码如下:

template <class ObjT, class Method, class A>

inline void DispatchToMethod(ObjT* obj, Method method, const A& arg) {

(obj->*method)(arg);

}

综合上面所述,可以产生如下伪代码,假设最开始代码的this是A 的实例

class Task{

public void run{

A.AsyncStart(params);

}

}

而PostTask所作的事就是把这个Task对象放到io_thread的队列中去,当io_thread从队列中取出来后,就会去调用Task的Run方法。 通过这种方式,chrome只要对io_thread的队列加锁就可以了,而不用对整个对象加锁。这种方式就比较简单明了。 不过这种方式有时就会形成一种有趣的流程图: 引用自 Venus神庙 对象就如一个乒乓球一样被打过来又打过去。 再回到理论上来,Chrome设置每个Thread都会有一个MessageLoop,MessageLoop就是专门处理Thread中的Task。处理的方法就是调Task的run方法,而Run方法执行的代码就是前面注册的类的方法。 常用的Thread有如下:
  1. io_thread
  2. file_thread
  3. db_thread
  4. safe_browsing_thread
总结
这样做的好处除了减少锁之外,还有什么好处了,比如索爱的Java虚拟机对锁的写法有很多要求,通过这种结构,我们就能避免索爱的情况。坏处又是什么了?这种模型对于处理读写者模型的同步问题会好一些,但是对于处理银行家这种问题的话,就很难了。
附:
从wiki对IPC与Event loop的定义来看,Chrome的这种实现也相当于IPC的一种,但不知道对不对,欢迎讨论。
参考资料

2010年总结与计划 一月 3rd, 2011

2010年已经过去了,看看2009年的计划,发现很多东西都没有做到,有待改进。 基本点:锻炼身体,有一段时间天天锻炼,但是现在天天两点才睡,八点多起,也没有时间锻炼了,失败 第一、我已经尽了六分力做好自己的工作了,我现在在做浏览器,碰到不了解的就看看Chrome的代码,想想优化空间,但是我没有十分力的都在这上面,十分力指的是业余的时间都用上来,这点因为工作地点与杂七杂八的问题,导致很难静下心来。也算是没有做到。 第二、学C++,学算法?很遗憾都没有做到,不如chrome的代码还是看了一些。前几天 在写一个遍历树,发现自己竟然开始的第一次竟然没有写对,很是失败。 第三、英语也没有看多少,总想报班,都是总没有报班。原因很多,不过都是借口 第四、技术文章写过不少,不过都是很细节性的东西,感觉不太好,所以大部分都是一些草稿,一直存着没有动,如果我想走技术,又只是广度上下功夫,深度上不下功夫是不成的。 第五、读书读过不少,但是完全读进去却没有,想读的书是越来越多了。 第六、不当月光族,恩,这点算是唯一做到的一点。 总得来说,很是失败,不过至少要年低的时候我还会来一下比对,这也是改变之一吧。说说2011年的计划吧: 一、锻炼身体并按时打电话回家。 二、看书,每月一本,算法书至少有一本。哲学的书一本。数学相关的书一本 三、学习英语。 四、继续写Blog,每月至少一篇技术文章。同时多写一些评论文章,写这个的目的是为了锻炼一下自己的眼光,也算是对IT行业的思考吧。 五、做好手头的工作。 六、多与人交流,多在网上交流,提问,学习,总结,整理自己的知识体系。 七、达到我的第一个目标,这次春节回家发现我离我的第一个目标还是挺远的。   总的来说,2011年,我要做到有更多的思考,思考自已所做所为,思考自己将做一个什么样的人,不要在2011年过后,发现我已经变成一个淡漠的人, 一个连以前自己都厌恶的人。   --------------- 新增一个目标:背上包,带上书,一个人坐火车旅行一次

记360泄密事件 一月 3rd, 2011

首先我得自我介绍一下,我来自腾迅,恩,之所以自我介绍不是因为我自恋,而是免得事后被说成水军的。我是水军,而且是不要钱的水军,想捐钱出去的水军。 听闻36o泄密这事情作为个人我很高兴,我曾在校内上如同一个中年大叔般的喋喋不休。当然这只是我一个人的自言自语,跟3Q大战的时候完全不一样,那时校内上很多同学都骂腾迅,说腾迅盗人隐私,要删除QQ,好吧,删除就删除吧,每个人有每一个人的自由,我无权干涉,我甚至欢迎他们通过法律途径来弄清楚腾迅是不是在盗人隐私。而不是只因为360说腾迅盗人隐私所以就信了。只是我在后面加了一个小小的建议:如果你害怕隐私被盗,那么可以考虑一下同时删除360,不因为别的,只因为360的老板的人品不怎么样,做事低线太低,你相信一个做事低线低的人吗? 事情来的去,去的也快,后面也平静了。我也去360的网站上看过,上面有一篇文章是写周老板的心路历程的,之前3721所做只为因为官与民争利,最后做了一个错误的选择,但是现在做360就是为了去弥补。恩,文章写的真好,只是现在我想问一句 现在收集隐私,是做什么用的?是因为腾迅跟你争利吗? 让我不解的是以前站在360那一方的公司这次沉默了:你们不是听说QQ盗人隐私所以你们建议删除吗?这只是听说而已,现在360明摆着上传用户的隐私,那时出公告说建议删除360了?最后一同学对我说现在都年末了,都累了,就别折腾了,很好很强大,我现在也就不折腾了。只是我想说的是3721因为没有人管,所以开创了流氓软件的先河,现在360的事也没有人管,必将开创明目张胆非法收集用户隐私的先河。恩,那时周老板,你是不要还要做一个什么软件来去保护网民的隐私了?你太有爱了。 附: 我在Google 日历上点了一个提醒,在2011年3月1日再去查一下3Q事件,不为别的,只为想看一下360对还是腾迅对,但是现在想一下,其实不管谁对都没有意义了,反正大家都不在乎这些了,这是一个娱乐化的时候,有这时间不如多赚点钱了,不把把正妹了,你说是不!!
Posted in IT评论 | Comments(0)»

读书笔记之活法 十二月 21st, 2010

最开始知道稻盛和夫是从《慢跑还是快跑?》这篇文章知道了,于是对《活法》这本书很感兴趣,最近终于抽时间阅读了一下。把一些东西记一下笔记吧。 一、在实现理想这一节中,作者提到一个观点就是:睡也想,醒也想,持续强烈的愿望最重要。这一点真的很重要,我有什么多想法,我周围的人也有很多想法,但这些想法都是想想而已,永远只停留在纸上,一年过去了,两年过去了,结果什么都没有改变,这也许就是最大的悲哀吧。 二、锲而不舍干到底,结果只有成功。作者讲到在创业的初期,他们主动承接高难度的订单,因为只有这样,才有活路。这让我想到前不久《计算机世界》登的一篇文章:狗日的腾迅,就是骂腾迅一直在抄袭。其实在骂腾迅的同时,创业者应该更多的想一下自己的原因,现在很多人在提微创新,微创新对一个大公司来说很重要,因为它已经足够大了,只要它保证航向不错,那它就会抵达目的地,但是对于创业型公司来说,这可能是致命的,因为技术不是高难度,而在中国,大公司又能“舍下面子”来做,又怎么可能不被大公司搞死? 三、天天钻研创新,不走老路。有的人勤勤恳恳做了一辈子的事,结果却不如别人几年做的事,其实就是因为他虽然做事认真,但是却一直在走老路,说句不好听的话就是死干活,自然创造的价值没有别人多,从而得到的回报少。 四、倾听工作现场的“神灵之声”,现场其实就是第一线,一个老板在创业的时候应该接触产品,而不是天天在那构思,然后其它的什么都不管了,我就经历过这么一个公司,老板想法很好,但是他却很少用自己的产品,开发的工作也是布署下去后就不管了, 却不知道下面的人一直在偷工减料的做着,结果公司越做人心越散,员工的流动很大。 总结: 这本书跟《优秀人士的七个习惯》很像,都强调积极主动,坚持原则,双赢,很多事很简单,但是做起来却很难。。也许是应该要去找属于我自己的活法的时候了。
其实下载做失败应该是我的责任,不好在微博上说,真的不好意思