坚信科学,分享技术

2018全新版本,未来在blog.54chen.com更新博客!

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Yearly Archives: 2010

创业公司技术选型参考

java推荐框架 web项目来说,spring、struts是必选,当然有更加好用的,推荐来自疱丁分词作者王志亮在人人网的rose框架,使用上手快,配置少,是创业公司java必备。 php框架推荐 zend framework,或者直接写个简单的框架,php的框架更加倾向去规范代码,让所有项目在新人加入时快速上手。 代码版本控制 subversion是必选工具,简单易学,git也开始流行,也是可选方案。 jar包依赖管理 这是针对java项目,还在使用ant的朋友,可以考虑换换了,特别的,如果你的公司在很快扩张的时候,这个选择能让未来避开依赖混乱,遇事集体更新困难的困境。 公共代码建立 长期可遇见的公共部分,比如用户信息获取,memcache管理,毋庸置疑地需要提供公共的方法,越早越好。 代码可扩展 这就考量上面选择框架的气候是不是合理了,这里可扩展是指,在负载越来越大的时候,要能很轻易配置读写分离,rose在这方面做得很优雅,只需要简单配置就梦把看的代码用上新的数据源。 code review 有许多好用的系统,比如Review Board等,让参与者都知道修改,并且在最早期发现问题。 bug系统 jira、Bugfree等等,用系统控制流程。 培训体系 技术需要交流才会有进步,团体的进步才是真的进步。所以尽早建立起内部的培训体系非常有必要,同时也是活跃团体气氛的很好方法,其频度控制在两周一次最好。 知识管理 php+mysql的mediawiki是首选,每个优秀的工程师,都必须首先是一个完全熟悉wiki语法擅长写wiki的工程师。早年搞了一个把mysql换成postgr

Continue reading

Posted in 架构研究 | Tagged , | 7 Comments

54chen Twitter memo 2010-11-21

每个周六也在干活的程序员上辈子都是折翼的天使 # 盯上了resin Quercus java php这几个关键词,求用过的人提示潜在危险。 # 思考如何搞一个大油桶,里面装php,油桶的管子用java连到数据连接池。 # 手机服务开发打败了传统WEB开发,前台端站在了同样的高度,不论是前还是后,都大有可为。 # 早上看到新闻“中国水军站上亚洲之颠”,一震,原来是亚运会消息,不是微博上的水军。 # 被一个恶劣环境的机器上搞ganglia搞得半死之后,被cacti代替了。。。 # 在没有yum的环境里安装ganglia,被依赖折腾得死去活来 # 很多小公司都在使用myiasm的表,因为使用的WEB代码效率不高,只能从db上压缩,但其实用innodb后做好web代码效率抗压性能更好。 # 《工会法》规定了全中国只有一个合法工会——中华全国总工会,哥学社也差不多是个“工友会”,不会违法吧。。。 # 在新浪微博的“名人堂”里,按照字母排序,我以“54chen”为用户名,排到最后一个“其他”类里,占尽天机,哈哈 # 考虑一种轻型的架构,灵活机动随时要变的部分用php,稳定不长期不变追求性能的部分用java,这应该是一个不错的选择。 # 和小米的兄弟在北大打了两个多小时的球,动不了了 # 被subclipse对svn+ssh的支持搞死 # 4G内存的机器,很给力哇 # 追求分布式:为什么要把messageQ这样的位置放在一个固定的位置?如果每个java代码里自己维护queue,每个服务器都是Q # 在ubuntu下,linuxqq一年多没有维护了,腾讯太恶了,没办法,eclipse起an

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

ubuntu下Empathy十月起无法登录msn的解决办法

作为ubuntu深度用户,我(54chen)在几个星期前就有网友来问过,msn登录常常会挂掉,甚至到现在已经无法再登录,受影响的范围很广,最新的10.10也是一样的,原因可能是msn单方面更新了接口,下面提供一种解决办法(以10.04lts Empathy 2.30.1.1 为例): #vim /usr/share/pyshared/papyon/service/description/SingleSignOn/RequestMultipleSecurityTokens.py 找到第24行注释掉: #CONTACTS = ("contacts.msn.com", "?fs=1&id=24000&kv=7&rn=93S9SWWw&tw=0&ver=2.1.6000.1") 修改为: CONTACTS = ("contacts.msn.com", "MBI") (请勿复制,引号有转义) 然后重启,恭喜你msn高昂登录。 附: ubuntu下empathy的msn群显示昵称 点击下载我修改过的文件: http://www.54chen.com/RequestMultipleSecurityTokens.py.gz gunzip RequestMultipleSecurityTokens.py.gz sudo cp RequestMultipleSecurityTokens.py /usr/share/pyshared/papyon/service/description/SingleSignOn/

Continue reading

Posted in linux | Tagged , , | 1 Comment

54chen Twitter memo 2010-11-14

django的过滤器真好理解,绕了半天才弄明白。 # RT杨晨: lawlingchi 奥巴马回去肯定 要给美国记者说。。中国记者芮成钢,水平不知 道比你们高到哪里去了,我跟他谈笑风生,你们 啊,too simple, sometimes naive! # 早安中国 # 观亚运会开幕直播有感:放炮跟打仗似的。 # 相逢的人会再相逢 http://goo.gl/fb/uyq7h # 杯具,淘宝商城真的在5折吗?真的仅此一天吗?请打开一个购买数量多的商品,再看看历史上的价格,你就知道了。 # 时隔十多年,再品小学课文朱自清先生的《背影》,顿悟,北漂的同学们,常给家里打打电话。小学安排这课文,太早了。 # 马化腾:360做安全只是一个借口,推即时通讯才是目标之一。 http://news.163.com/10/1106/02/6KPATE4G00014AED.html # 低调做人,你会一次比一次稳健;高调做事,你会一次比一次优秀。 # 今次辞职,两次线上流程,一次线下会谈,书面9个步骤,后一次流程22个节点,每个节点涉及人数1-5人不等,2天过去,还没走到关键的交工牌这步,接触的人已经近20人,这是人用的系统吗? # 创业项目大家看是否可行,和知名大学合作,搞“吴刚一号”探火星工程,申请个863计划,然后定期播出发射视频和图片,等差不多时间了宣布成功。关键环节招视频和ps高手以及大学提成 # ccav2的谈话节目,老是以相同的嘉宾,嘉宾都是职业的了 # 经过几个月的时间,我发现自己的微博和推特人数已然相当,还是不翻墙的猛,翻:http://twitter.com/54chen,

Continue reading

Posted in 生活备份 | Tagged | 2 Comments

相逢的人会再相逢

一将功成万骨枯。我从金山到雅虎淘宝再到人人网,现在又到了离开的时间。 在微博和twitter很多关心我去向的朋友应该都已经知道了,我已经离开了人人网UGC团队(http://ugc.renren.com),加入了一个创业团队小米工作室(http://www.xiaomi.com)。 过去的两年里,印象最深的是一个个的极客,每一位在记忆中都是宝贵的片段,共同筑起了这些年完整的回忆。 张洁,老极客一名,现在已南下广州,在人人有很长一段时间合作,在人人底层的代码中还经常能看见他的签名。对各种技术保留着独特的目光和见解,nuclear的名字和起源就是他这位极客。 王志亮,赫赫有名的疱丁分词作者,人人网的web框架作者(十分遗憾的是我答应在程序员杂志写写这个开源框架特色的,却没能完成就要离开了),很长时间里我们团队都在是和这位大侠学习框架的新功能和提新需求。 启荣,数天下mysqlDBA,无出启荣之右者。此话出处不详,但的确如此,启荣大侠,人人网头号dba,坚定而妖娆的目光说明了实力。 桃子,新生代的dba,爱好广泛,工作上长期被我这边骚扰,mysql经验丰富。 张章,稳若泰山的头儿,传说精通心理学(江湖传闻),风格温文而雅,勤修历史,带领部分ugc兄弟秘密成立了糯米网。 昊哥,java经验丰富,对项目开发控制管理颇有研究,scrum实施推广者。 烧饼,校内十剑之一。老java人,天生奇骨,拥有shell绝技,ugc所有服务器都是烧饼维护的。 龙哥,绿野爱好者,各种登山露营控,对项目模块层次设计满足古怪需求钻研透彻。 亮哥,恶搞分子,算法基本功相当了得,有各种的小道国家形势消息(并且

Continue reading

Posted in 生活备份 | Tagged | 12 Comments

54chen Twitter memo 2010-11-07

http://www.54chen.com/_linux_/androiddev2.html#comments 不可否认,人人网已经在我身上留下很深的印记,“你们家人人”,让我怀恋。 # RT 张征鹰 : QQ长,360宽。 360没有QQ长, QQ没有360宽, 360要绑在QQ上, QQ不让360绑在QQ上,360偏要绑在QQ上 # 哈哈,这个好有创意//RT @tinyfool: 我在盛大创新院,不是创新工厂 RT @simeonlu: tiny 你不是在创新工厂吗 # 继上一推,其实仔细读来,还是能够看得出来水军与真人的,但继续先头的观点,快速推出的东西不严谨,苍蝇不叮无缝的蛋。 # http://www.douban.com/note/98933718/ 昨天的“QQ劝架补丁”已经被“鱼肉”,我不是幸灾乐祸,而是出于一种对快速时尚追捧做法风险的警示。 # 这两天把android开发基础学了个大概,总共学习时间也就两三个小时,手记都写在http://www.54chen.com/上,下个星期休息休息,弄个android上的微博群发器出来娱乐大众。 # http://v.youku.com/v_show/id_XMTk0NzQ3NDA0.html 仔细看这个mv,会有盗梦空间的感觉。 # 看上去twitter的json客户端get时对tweetid的顺序出现了问题,我不得不把代码进行了调整,每次只会从twitter转发一条了。 # 抱歉各位,twitter rss复位导致老数据回溯,刷了你们的屏。 # RT 康伟.kw : 人族跟兽族打的正酣,眼看兽族不顶了,突然

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

android开发入门2:概念建立

上一记传送门:android开发入门 在第一记中,我(54chen)完成了一个完整的android开发环境,并且简单开发了一个Hello world android程序,在有了一个大概的开发过程的感觉之后,再进一步来学习android开发过程中需要接触到的常识。 android开发表皮几大块 1)extends Activity的Activity类很是奇异,其实这很像是mvc框架中的controller,继承Activity实现的类,它控制了所有的业务逻辑。 2)打开项目的文件夹,你会发现有许多的xml,其中,比较关键的一个是main.xml(layout目录下),它相当于mvc框架中的view,负责了软件界面哪个位置摆放一个什么样的控件,当然了,这些控件都是系统本身的,你可以想像成是html标签里的那些控件一样。 3)values目录下有settings.xml,是定义了一些字符串、颜色、数组等常量数据,有点像普通java项目里的属性文件(properties文件) 走进android项目中的layout/main.xml 开发android项目和开发web项目有几分神似,在main.xml里(也可能是xx.xml哦,main.xml是默认的第一个,在java代码里,会用R.layout.main来表示man.xml),包括了各种各样的基础控件(它们都是大小写敏感的,如果在xml里写错了,那一定会在运行过程中出现空指针错误),就像是web项目的前端一样,不过其复杂程度自然要比写html复杂。可能大部分入门android的时间都会花在这里。 <TextView and

Continue reading

Posted in java | Tagged | 9 Comments

android 开发入门

最近我(54chen)的兴趣都在android上,看到做的软件放到手持设备上的时候,找到了大学时光写delphi、gnome程序时久违的成就感。 下面是一些手记,这一系列的日志都将记录学习过程。 手记假设: 1.开发环境为ubuntu eclipse 2.你和我(54chen)一样有几年的java开发经验,对java基础不再进行描述 3.一开始就是以android2.2开始搞的,不排除后面的3出来,到时再另行通知 一 开发环境搭建 要开始开发Hello world,先要准备java环境(略),准备eclipse(略),再在eclipse上用software upadte安装上sdk的tools,再使用sdk的tools来安装platform(现在的最新版本是2.2),官方的文档和下载地址在http://developer.android.com/sdk/installing.html(洋文,被墙)。 因为是ubuntu 10.04,eclipse java都是可以apt-get install eclipse java6-sun-sdk(印象中是openjdk-6-jdk)来安装的。网上有许多切换openjdk到sunjdk的资料,不过提醒一点,这个openjdk似乎也一样可以用,如果切换成sunjdk的话,可能会遇到字体不正常的问题。 eclipse版本:3.5.2 Build id: M20100211-1343 第一步,要给eclipse安装一个android开发工具包 在eclipse的install new software上增加site:https://dl-s

Continue reading

Posted in java | Tagged , | 5 Comments

54chen Twitter memo 2010-10-31

Fusion-io:与SSD不一样的固态技术 听到DBA传来的牛X介质,为之一震。 # 在360和杀软im打得火热的时候,开源系统突显了全人类智慧的结晶,在ubuntu下,一切都很安宁。 # "做企业如做人",敬佩。 # mozilla大杯具,今天firefox升级3.5.15,重启后进了欢迎页面,静态域名被墙,页面像屎。 # 这广告做的,大街小巷都在讨论360力战群雄,说不好此刻周鸿祎李彦宏马化腾还有老俅等人还在某地快乐地高尔夫中。 # 一大早的,屏幕正中央开始和屏幕右下角吵架,这是要大决战了吗。 # 互联网下一个类千年虫问题:微博和sns的内容feed自动同步,导致死循环同步后的信息大拥堵。 # 海纳百川——人人网海量存储系统Nuclear开发手记 http://goo.gl/fb/bvEOt # http://www.donews.com/original/201010/251728.shtm 陈一舟:我和程炳皓的故事 “度尽劫波兄弟在,相逢一笑泯恩仇”---个人不发表任何看法。 # 世界上最遥远的距离是:我们俩一起出门,你去买苹果四代,我去买四袋苹果 # 人生就像一张有去无回的单程车票,没有彩排,每一场都是现场直播,剩下的是回憶。 # 岁月催人,"相濡以沫,不如相忘于江湖"--《庄子·大宗师》 # 两年前我立下誓言,人人网是我呆的最后一个大公司,之后我只会去创业,让人生充满激情是一件很好的事情不是吗。 # 今夜竟然失眠,万分抱歉于UGC的领导们。 # 创业看人,只讲一个词:仗义。 # QQ群的cdn搞好了?可以发图了 # 如

Continue reading

Posted in 生活备份 | Tagged | 1 Comment

海纳百川——人人网海量存储系统Nuclear开发手记

此文为《程序员》杂志约稿,发表在2010年9月刊。怀念过去美好的时光和所有的UGC兄弟真挚友谊,谨以此文为个人职业发展阶段作一个美好的终结。以下是全文原稿。 2009年8月左右,由于业务扩展的需要,我们的团队开始了一个新项目的研发,其中需要完成一个存储系统,把评论数据聚合到一起同时还要提供线上的读写服务。这些评论来自不同的业务产品,数据量非常之巨大;同时对稳定性的要求非常高,因为如果出现宕机,将影响到大量的业务线。于是,我们开始了对此类系统的探索。 Nuclear 的由来 经过需求分析阶段,摆在我们面前的是五点要求:高可用、高可扩展、高性能、Key-Value存储、支持关系化查询。经过一段痛苦的系统选型分析,我们最终决定开发属于人人网的海量存储系统。Nuclear,正如其名,nuclear的未来将要肩负起整个评论系统存储的核反应般的压力爆发的重任。由于当时并没有这方面的经验,一切都是摸着石头过河,我们设计了好几期的雏形,一开始明显就是有问题的构架设计,慢慢地在学习和进步的过程中,团队的成员也在慢慢地成长,离我们的目标也越来越近。又因为业务模型的需要和方便分布到集群,这个系统慢慢演变,最后成为了一个可靠的分布式key- value存储系统。以下特将在研发过程中遇到的问题做一个总结。 Key-Value系统的优缺点 NoSQL系统在过去的一两年里,饱受了争议和技术界的目光。从原理上讲,基本上这类系统都会有一些相同的优点和缺点: 优点: 1. 只有高效的查询可用,性能是可想像的。 2. 容易分布到集群。 3. 可以很容易增加缓存层用来加

Continue reading

Posted in java, 架构研究 | Tagged , , | 16 Comments
Page 2 of 131234510...Last »