Android 开发入门

android2.2

最近我(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-ssl.google.com/android/eclipse/,安装这个传说中的ADT,其作用是一个最最基础的包,依靠这个包再进一步安装。(文件不大,所费时间不长)

第二步,下载SDK基础包:android-sdk_r07-linux_x86.tgz
http://developer.android.com/sdk/installing.html(洋文,被墙)
下载后解压。
假设解压后是/home/chen/下载/android-sdk-linux_x86,在eclipse>windows>proferences中找到Andriod,在SDK Location中写下这个地址。 android

第三步,进一步安装需要的平台
eclipse>windows>Andriod SDK and AVD manager>available packages
打开后选platform 2.8,里面还有一些别的包,像google的api啥的,是提供你简单调用google map啥的。
这一步会费很长的时间,东西比较大。

二 第一个android程序 Hello54chen 上面环境就ok了,来做第一个程序。
第一步 创建项目
file>new>new Android project
假设包名为com.chen.hello,类名为Show
会有一个关键的文件:com.chen.hello.Show
第二步 修改代码
打开这个文件,关键代码如下:

public class Show extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main); 这行是原来的 注释掉,下面是新添加的
TextView t = new TextView(this);
t.setText("你好,世界");
setContentView(t);
}
}

第三步 整一个新的AVD(andriod 虚拟设备)
eclipse>windows>Android SDK and AVD manager>Virtual Devices>new...
然后起个名,设置下存储大小等等。

第四步 run
run as android application后,选则刚刚建好的AVD,于是出来一个界面,要等啊等等啊等的,很长时间后,虚拟机才能进来,然后才会显示出来你的结果。 android

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搞好了?可以发图了 # 如果你爸不是李刚,学java做无线,是你最好的选择#哥学社 山鸡真言# # 真是神奇,公司送了150块钱的当当购物券,凑来凑去只花了148.5,继续想找1.5的东西时发现比登天还难。 # 54chen Twitter memo 2010-10-24 http://goo.gl/fb/DKOdL #

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

程序员2010第九期

此文为《程序员》杂志约稿,发表在2010年9月刊。怀念过去美好的时光和所有的UGC兄弟真挚友谊,谨以此文为个人职业发展阶段作一个美好的终结。以下是全文原稿。

2009年8月左右,由于业务扩展的需要,我们的团队开始了一个新项目的研发,其中需要完成一个存储系统,把评论数据聚合到一起同时还要提供线上的读写服务。这些评论来自不同的业务产品,数据量非常之巨大;同时对稳定性的要求非常高,因为如果出现宕机,将影响到大量的业务线。于是,我们开始了对此类系统的探索。

Nuclear 的由来
经过需求分析阶段,摆在我们面前的是五点要求:高可用、高可扩展、高性能、Key-Value存储、支持关系化查询。经过一段痛苦的系统选型分析,我们最终决定开发属于人人网的海量存储系统。Nuclear,正如其名,nuclear的未来将要肩负起整个评论系统存储的核反应般的压力爆发的重任。由于当时并没有这方面的经验,一切都是摸着石头过河,我们设计了好几期的雏形,一开始明显就是有问题的构架设计,慢慢地在学习和进步的过程中,团队的成员也在慢慢地成长,离我们的目标也越来越近。又因为业务模型的需要和方便分布到集群,这个系统慢慢演变,最后成为了一个可靠的分布式key- value存储系统。以下特将在研发过程中遇到的问题做一个总结。

Key-Value系统的优缺点
NoSQL系统在过去的一两年里,饱受了争议和技术界的目光。从原理上讲,基本上这类系统都会有一些相同的优点和缺点:
优点:
1. 只有高效的查询可用,性能是可想像的。
2. 容易分布到集群。
3. 可以很容易增加缓存层用来加速读操作。
4. 逻辑和存储清晰分离(出于性能考虑,关系型数据库鼓励将商业逻辑和存储操作混在一起)。
缺点:
1. 没有复杂的查询过滤器。
2. 所有的联合查询必须在代码实现。
3. 没有外键的结构。
4. 没有触发器和视图。
Nuclear系统的一大特点是,我们改进了普通的key-value系统在存储模式上的固定形态,设计为上层的存储协议和底层的存储引擎完全分离,以便在不同的应用场景选择更合适的存储引擎。例如,当底层存储使用MySQL时,可以支持key→list结构的弱结构化读取;当底层存储只使用内存时,那无疑便是一个分布式缓存系统了。

高可用性
任意一个分布式的存储系统,都会遇到一个棘手的问题,那就是当一个数据节点出现故障的时候怎么办?是不是整个系统都跟着崩溃了?当然不行。是不是可以丢掉一部分数据呢?这也是不可接受的。这也是有不少网友经常反馈的一个问题。答案是唯一的,那就是不要把所有的鸡蛋都放在一个篮子里。但是如果一份数据在多个节点上有备份的话,那么这份数据的一致性也是一个致命的问题。
在参考了一些国内外分布式系统的处理方法后,我们归纳典型的做法有两种,一种是以亚马逊的dynamo系统为代表的NRW的方法;另一种是简单的主从备份使用心跳检测时刻检查节点是否故障的一种做法。
(1)亚马逊Dynamo的NRW
在Dynamo系统中,第一次提出来了NRW的方法。Dynamo系统是将数据复制多份的系统,靠以下的机制来保障节点故障时服务的正常提供:
N – 复制的次数
R – 读数据的最小节点数
W – 写成功的最小分区数
这三个数的具体作用呢,是用来灵活地调整Dynamo系统的可用性与复制数据一致性的。
举例来说,如果R=1的话,表示最少只需要去一个节点读数据即可,读到即返回,这时是可用性是很高的,但并不能保证数据的一致性,如果W同时为1的 话,那可用性更新是最高的一种情况,但这时完全不能保障数据的一致性,因为在可供复制的N个节点里,只需要写成功一次的话就返回了,也就意味着,有可能在读的这一次并没有真正读到需要的数据(一致性相当的不好)。理论上上我们可以做到N个节点中只要有一个节点正常,那么这次操作就不会失败。如果 W=R=N=3的话,也就是说,每次写的时候,都保证所有要复制的点都写成功,读的时候也 是都读到,这样子一定读出来的数据是正确的,但是这中间的性能大打折扣,也就是说,数据的一致性非常的高,但系统的可用性却非常低了,有一个节点出故障了,这次操作就失败了。如果R + W > N能够保证要读的数据肯定都是写成功的,Dynamo推荐使用322的组合使用可。
(2)常见的主从备份和心跳检测
主从备份最常见的要算是MySQL数据库的备份了,而如果做了主从备份的MySQL出现了故障的话,常规的做法也是即时检测与手机短信通知到人,然后再由工程师去手动处理,在工程师手动处理主从备份数据的过程中,MySQL靠log模式来保证数据的一致性。在诸如kata(apache下的一个分布式搜索)之类的系统中,由于在源码中使用了ZooKeeper这样的开发套件,在遇到分布式系统单点故障时,使得可以做到依靠系统本身也能全自动地进行节点的切换取舍,而这时数据的一致性,往往又需要另外的策略来保证。
以上两种方案,我们选择了第一种,原因主要是亚马逊的方法实现非常的简单,但是从理论上讲却非常的实用,真正有一种四两拨千斤的感觉,所以很多时候,好用的东西往往不是最难的,实用才是硬道理。

数据分布与迁移时遇到的压力冲击
Nuclear是一个分布式的key-value存储系统,key对应的数据分布在什么节点上,需要遵守一定的规则。在Nuclear中,数据分布在0~2^64的哈希环上,Nuclear集群初始化的时候,根据节点数均分整个哈希环。假如有A、B、C三个节点,key的分布如图1所示:  key分布在三个节点的示意图 图1 key分布在三个节点的示意图
图1中,箭头方向表示复制的方向,假设N=3,表示复制三份,如图上的情况也就意味着每个节点都有三份数据,以此类推。
因为数据有多份,所以也存在着数据的自动迁移和恢复。这就会遇到一个问题:如果一个节点宕机后恢复,迁移程序势必需要以最快的速度将原来需要的数据通过网络从其他节点复制过来。这样的数据导出导入必然会对对应的节点造成一定的冲击,如果这时此节点开始提供服务,极有可能达到系统的临界点,反而将刚刚恢复的节点冲击宕机。
为了极力避开这样的情况发生,而且能快速地完成迁移的过程,在nuclear中,所有的数据迁移过程,都会提前判断操作系统当前的负载情况,根据系统负载来暂停和重启迁移数据的线程。我们使用的开发语言是java,在JDK提供的java.lang.management包中,有许多监控系统负载的方法可以直接使用,非常方便。

系统架构和瓶颈分析
整个Nuclear系统构建于java之上,其系统架构如图2所示: Nuclear系统构架图 图2 Nuclear系统构架图
处在最上层的是对外的存储API,提供put、get等操作,接下来一层分成了两个部分,一部分是正常的节点部分,一部分是后台运行的定时任务,下面都是组件化的模块,共同搭建了整个系统的稳定服务。
整个系统中最大的瓶颈出现在并发任务处理和数据传输上,为此我们大量使用了NIO、并发编程,充分发挥了多核CPU多线程处理的优势,尽量将网络传输导致延迟缩小到最小。这样做的结果是,在高并发的情况下系统中也不存在阻塞点,甚至可以说,Ncluear系统的设计哲学是:万事皆异步。
另一个更为直接的瓶颈,就是磁盘的IO瓶颈,在我们的实际线上环境中,最后遇到的问题也就是磁盘的瓶颈,在读写比为8比1且高并发压力的情况下,如果底层的存储引擎表现不佳,多半的原因都是,过多依赖了硬盘的读写,很容易就达到了硬盘IO的瓶颈,此时,我们的cache层的作用就举足轻重,将大多数的数据留在内存中,这是一个不错的做法。

结束语
人人网UGC团队(http://ugc.renren.com)利用Nuclear,将炙手可热的NoSQL系统真正用于生产环境中,提升了整体系统的稳定性和自动维护性,在中国众多的互联网企业中树立了自己的技术风格,同时也为技术行业提供了不少可供参考的宝贵资料,热忱欢迎更多的朋友加入到我们的行列中来。

冷昊 冷昊:人人网UGC团队成员,现和UGC技术团队一起为人人网用户在信息共享和传播的更加便捷做不懈努力,关注系统架构、分布式技术、数据挖掘。个人Blog: http://www.lenghao.com。可以通过电子邮件 jerome.leng@gmail.com 联系到他。 陈臻(54chen) 陈臻(54chen):人人网UGC团队成员,技术组织哥学社创始人,PHPChina内核版主,业余时间混迹于各技术组织且乐此不疲。个人Blog:http://www.54chen.com/ 。可以通过电子邮件 czhttp@gmail.com 联系到他。

54chen Twitter Memo 2010-10-24

    #
Ugc Tech Talk#我们补了一个KATA的补丁,关于client的线程池的重复产生。 # #Ugc Tech Talk#分布式的评分、排序,请求分成三步,1.到每个节点发请求去算满足的数量和词频,在客户端临时换算 2.第二次带上1的计算结果去各节点查后在客户端排序 3.第三次请求已经知道节点和shards的具体信息去请求详细内容 # #Ugc Tech Talk#在kata中搜数据时:先分词,索引逻辑或进行查询,客户端向zk拿到索引列表,每个索引维护一个索引,zk索引变化会通知客户端。 # #Ugc Tech Talk#整个集群共同管理整套虚拟目录,这是zk提供的牛B机制。 # #Ugc Tech Talk#kata有主节点,zoolkeeper维护终端 sh zkCli.sh -server 127.0.0.1:2182 # #UGC Tech Talk#kata提供了不少的管理工具,比如:sh kata showStructure(在kata.java中定义) # #Ugc Tech Talk#Zookeeper在kata中作用巨大,是一个去中心化的系统。kata中有一个专门的包与其通信。 # #UGC Tech Talk#搜索的缓存热点很少,缓存5分钟即可。 # #UGC Tech Talk#kata提供现成的临时摘下某个小索引的api。 # #UGC Tech Talk#单天的索引文件的重建只需要只秒左右。 # #UGC Tech Talk#建立索引时会影响读的性能,如果索引文件比较大,相对去比较影响,如果读写分离,将要维护两份索引,将索引文件尽量小是一个不错的办法。 # #UGC Tech Talk#hadoop负责本地索引和发布到kata的过程。 # #UGC Tech Talk#小索引文件,增量增加索引文件,一个小时增加今天的索引。 # #UGC Tech Talk#环境准备:索引建立 1.定期查DB 2.新产生的存在队列中定期建 # #UGC Tech Talk# UTT 讨论直播 分布式搜索kata的二次开发实战 # 转自贾睿韬: 魔兽史上一大难题已被破解:whosyourdaddy 答:我爸是李刚 # 从反馈到现在24小时去了,http://places.renren.com/web/PoiFeed,一个很容易被用户发现低级错误还在线上。 # @bravetaoy 感谢兄弟提供,马上加上 in reply to bravetaoy # 转自刘启荣: 毕业前,快乐是件简单的事;毕业后,简单是件快乐的事。 # 百度知道赫然发现有窗口下的条,和人人网的神似,这难道是百度SNS的第二步? # http://places.renren.com/web/PoiFeed?pid=B000A30D3A 人人网LBS # RT小Z:哥在erp上请假 半天也提交不了 后来才发现这玩意只支持IE6 // 这个现象存在于多家一流企业。 # http://www.54chen.com/_linux_/china-internet-db-report.html 国内互联网公司数据库访问层调查,新增加了淘宝支付宝和腾讯的分析,感谢@fenng和胖子、呵呵哥提供线索支持。 # 由于最近国际天气不好,科学院feed地址已经切回国内,如果用原来feedburner地址订阅的同志没有红杏,请将订阅地址转为http://www.54chen.com/feed,周知。 # 国内互联网公司数据库访问层调查 http://goo.gl/fb/KrCcJ # 明显感觉到最近通胀压力,因为猎头在找上门的时候,都是以15k为单位的,几年前的时候10k都很多了,人民币和白纸似的了。 # 以为涨的房价自己赚了,切不知一加息都让银行收去了。 # 通过哥学社,统计了人人、百度、腾讯、金山、盛大、新浪(排名不分先后,想到哪个写哪个)等公司的数据库系统的中间件架构,近期放出分析报告。 # 北京互联网创业团队招靠谱UI设计师,工作地点在海淀,团队和项目都很靠谱,不缺钱,其他资源不是问题,待遇从优,感兴趣的发送个人简历和作品到mynameisfung@gmail.com,需要的话邮件进一步沟通。 # 转自·嫫__茉❤: 我同学恋爱啦,她的男友是在世博沙特馆排四个小时的队认识的,真是世博改变生活啊~!!!单身的同学抓紧了~ # “我愿化身石桥,愿受五百年风吹,五百年日晒,五百年雨打,只为你从桥上走过。”--走过之后用石灰画一个圈写一个字:拆 # 化随机为顺序,如果有这样一种算法,算不算是对硬盘技术的提升呢?但是要怎么来实现呢? # 对于一个互联网公司,时断时续的网速,IT部门上班时间魔兽,我表示无语。 # nginx.conf控制指定的代理ip和ip访问的设置手记 http://goo.gl/fb/WNtQl # 波兰科学家认为今冬北半球将迎“千年极寒”,不管这消息真假,nnd今天比昨天感觉又冷多了。 # 淘宝的武侠文化一直是我所欣赏的文化,一种江湖气息贯穿工作,正如哥学社的哥文化,已然成为所有技术哥中坚定的信念。 # 54chen Twitter memo 2010-10-17 http://goo.gl/fb/Klbtg #

国内互联网公司数据库访问层调查

中间层

在WEB开发中,数据库的数据读写和传输一向是瓶颈,在此基础上的解决方案基本都是数据库连接层的设计,一个公司数据库连接层的牛B与否可以标识这个公司的全局规划的“工艺水平”到达一个什么样了。下面的内容来自明查暗访,决无BS之意,旨在提供给需要统一规划整体架构的架构师一个帮助。

54chen声明:本文所有内容本着技术分享的原则,收集资料皆来自网络,绝不透露不该透露的内容,绝不隐藏不该隐藏的内容(阿弥托佛,资本家万岁)。
1.人人网 参考:http://ugc.renren.com/2009/12/28/renren-ice-problem/
关键词:ice中间层,统一配置数据源,开发者不关心分库分表

与很多大型的网站一样,人人网的系统全部是由开源软件构建的。使用Nginx做前端接入,resin做容器,Memcached做通用 cache,MySQL做数据库,使用Linux操作系统。
除了上述的部分外,人人网还有一个与众不同的中间层。中间层以服务的形式存在,位于MySQL和resin中间,提供高并发低成本的数据访问层。

2.百度 参考:http://wenku.baidu.com/view/9daa2b8102d276a200292e9c.html
关键词:dbproxy,服务器都是flash卡,DBA与开发者都不关心分裤分表(半自动)
百度的dbproxy利器,将mysql的管理半自动化,HA等功能一应俱全,再加上SSD等硬件支持,性能相当不一般。

3.盛大-技术保障中心 参考:网友
关键词:无中间件,每个系统一个数据库,开发者严重关心分库分表

4.新浪 参考:网友
关键词:无中间件 分表要开发者自己做

5.金山 参考:网友
关键词:无中间件 分表要开发者自己做

6.腾讯 参考:腾讯大讲堂45-解剖TTC
关键词:Tencent Table Cache
TTC是提供高速数据访问服务的通用cache server。特点是采用epoll和异步状态机模式提高并发能力。TTC看上去是一个数据库缓冲层,由于资料有限,只能如此分析。
--感谢胖子和呵呵哥提供线索支持

7.淘宝、支付宝 参考:http://wenku.baidu.com/view/f36d620c844769eae009edba.html
关键词:JBoss作为中间件,有数据路由层,数据库 Oracle 与 MySQL
在网络上许多文档里都有提到阿里内部是有一数据路由层的,另外JBoss的使用也使得他们轻便不少(可惜当年哥在淘宝时只搞的是搜索,不使用DB)
--感谢Fenng提供线索支持

8.阿里巴巴B2B 自己实现了db proxy,自定义分库及路由规则,有client版也有server版;分布式数据库原型
--感谢Brave提供线索支持

调查中采访了许多人,比较遗憾的是腾讯的布道者 太少,基本上只有一个呵呵哥可以问,可他工作中还没有用到数据库,在此特进行BS。

nginx.conf控制指定的代理ip和ip访问的设置手记

nginx conf

工作中有一次用到利用nginx的配置来让只有公司ip的访问才能打开指定的后台url,于是有了下面的记录。

在nginx中if很弱,http://www.nginxcn.com/doc/standard/httprewrite.html,基本上不能写太复杂的条件或者是嵌套。

因为公司我(54chen)网络的设置,过去打到服务器的ip有可能是几个ip,同时也有可能是代理的ip,所以在if判断的时候,可能有多个条件。

location /administrator {
#log_format www_54chen_com '$remote_addr - $remote_user [$time_local] $request '
# '"$status" $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
# access_log /data/www.log www_54chen_com;
set $fuck 0;
if ($remote_addr = '1.1.1.1'){
set $fuck 1;
}
if ($remote_addr = '1.1.1.2'){
set $fuck 1;
}
if ($remote_addr = '1.1.1.3'){
set $fuck 1;
}
if ($http_x_forwarded_for = '2.2.2.2') {
set $fuck 1;
}
if ($fuck = 0){
return 404;
}
#此处还需要填写和其他location一样的以提供正常服务环境
}
1) 1.1.1.1 1.1.1.2 1.1.1.3都是直接ip地址
2) 2.2.2.2是代理之前的ip地址

另外流行的另一种做法:

allow 1.1.1.1;
allow 1.1.1.2;
allow 1.1.1.3;
deny all;
但此方法我(54chen)始终没找到支持代理的判断。

54chen Twitter Memo 2010-10-17

    九九重阳节,今天天气不错,适合登高望远。
# 明日牡丹园藏书馆,众英雄齐聚商议地方门户站点的发展和执行。 # 试了一下xweibo的开源代码,有点屎。 # 今天的评论员文章很有感觉哦,继续吹。 # drizzle 设计理念:1 异步 2 架构解决复制同步和插件 # 一直都认为QQ是个技术封闭的公司,看了大讲堂的PPT才知道,内部分享还是比较活跃的,分享东西还是比较深层次的。 # 成立“技术人员俱乐部”,每个会员每年:1)有10万元经费可以吃喝玩乐。2)至少出国考察1次。3)专用俱乐部大厦中的各项休闲、娱乐、健身设施。 # 说说中国互联网公司的地域差异 http://goo.gl/fb/WjnHT # 还是古代好混,割掉小JJ就能当中央公务员。 # 大公司要不断引入3年以上工作经验的人,才能保证技术的领先,一味地只招应届生,只会让公司的技术水平停滞不前。 # 大公司要不断引入3年以上工作经验的人,才能保证技术的领先,一味地只招应届生,只会让公司的技术水品停滞不前。 # http://liuming.javaeye.com/blog/776890 那些令人喷饭的注释 # http://wildrain.blog.163.com/blog/static/143002201081914031956/ 网易跟贴的前世今生 # 有人使用Tornado做为web service吗?性能如何? # QQ今天弹的提示很有爱,“某公司”。。。 # oldRT 雨果曾说:一个国家不把钱花在造学校上,那就必然花在造监狱上。 一个项目如果不花钱在设计上,那就必然花在后期改错上。 # 最新统计数据发布,上海人均年收入21.7万,北京19.8万。//我日 又拉了平均 # RT徐志斌:twitter上70%的tweet没有得到任何回应,23%会有人回复,只有6%得到转推。被回复的tweet中,85%只有1人回复,10.7%2人回复,1.53%有三人以上回复。在被转推的,有超过92%在第一个小时被转。//消息可靠度未知 # 女性更多的团队更可能胜出。 # http://photo.renren.com/photo/224923721/photo-3472533235?curpage=0&t= 80后的语文课本回忆。 # 中国国际展览中心:#2010通信展# 看到了各种微博的市场人员,在我门口经过。。。 # 54chen Twitter memo 2010-10-10 http://goo.gl/fb/fz1Kk #

说说中国互联网公司的地域差异

我们,是一个尚义轻利的民族。

中国山东,有这样一对夫妇:

刚刚结婚时,妻子在济宁,丈夫在枣庄;过了若干年,妻子调到了枣庄,丈夫却一纸调令到了菏泽。若干年后,妻子又费尽周折,调到了菏泽,但不久,丈夫又被提拔到了省城济南。妻子又托关系找熟人,好不容易调到了济南。可是不到一年,丈夫又被国家电业总公司调到重庆。

于是,她所有的朋友,就给她开玩笑——你们俩呀,天生就是牛郎织女的命。要我们说呀,你也别追了,干脆辞职,跟着你们家老张算了。

但是,她以及公婆、父母,都一致反对。“干了这么多年,马上就退休了,再说, 你的这么好,辞职多可惜。要丢掉多少钱呀!再干几年吧,也给孩子多挣一些。”

夫妻两个至今依然是牛郎织女。

英国某小镇:

有一个青年人,整日以沿街为小镇的人说唱为生;这儿,有一个华人妇女,远离家人,在这儿打工。他们总是在同一个小餐馆用餐,于是他们屡屡相遇。时间长了,彼此已十分的熟悉。

有一日,我们的女同胞,关切地对那个小伙子说:“不要沿街卖唱了,去做一个正当的职业吧。我介绍你到中国去教书,在那儿,你完全可以拿到比你现在高得多的薪水。”

小伙子听后,先是一愣,然后反问道:“难道我现在从事的不是正当的职业吗?我喜欢这个职业,它给我,也给其他人带来欢乐。有什么不好?我何必要远渡重洋,抛弃亲人,抛弃家园,去做我并不喜欢的工作?”

邻桌的英国人,无论老人孩子,也都为之愕然。他们不明白,仅仅为了多挣几张钞票,抛弃家人,远离幸福,有什么可以值得羡慕的。在他们的眼中,家人团聚,平平安安,才是最大的幸福。它与财富的多少,地位的贵贱无关。于是,小镇上的人,开始可怜我们的女同胞了。

只要锄头好,没有墙角挖不倒。中国的互联网公司的精英们正在日复一日地忙碌着。

回到以前,你要是在哪个厂子里呆着没到退休,都不好意思出来混。

21世纪的70后80后,毕业时为了理想工作后为了生存背井离乡在北上广奋斗着,越来越多的人开始筹备逃离北上广了,北上广人口重负什么时候得到解放还不得而知。

Fenng在杭州求人,老王在山东求人,还有众多不知名的在全国各地求人,靠谱的人都在北上广。。。

直到五年十年之后,北上广的技术人才要结婚生子养家的时候,全国各地省会城市,才会出现一个又一个坚如磐石的技术团队,他们呆在家人身边,快乐生活,努力工作,而那时的中国互联网,才是真正的欣欣向荣。

54chen Twitter Memo 2010-10-10

    如果不能让员工认同企业文化,至少让他感觉这个公司有前途;如果员工感觉不到公司有前途,至少让他觉得这份工作还有点意思;如果员工觉得这份工作没啥意思,至少能让他学到点什么;如果学也学不到什么,那么趁早解散吧。
# 互联网除了内容就是工具,sns的目的是以熟悉为前提勾引用户产生内容,微博是以个人中心为前提引诱用户产生内容。 # 回了@Fenng才发现,记录一下,对比相似图片的办法:http://libpuzzle.pureftpd.org/project/libpuzzle/php # @Fenng php相似图片,可以看看opencv的网站有没有现成的 in reply to Fenng # 传统SNS的隐私设置组成的social graph,会不会阻碍网站的发展,人们或者可以认为网络是一种拓宽人脉的方式,按照各种属性的群组也许是改写这历史的时刻。 # 公司变身节省成本招数之年度体检:通知一个时间,然后说明必须提前2天电话预约,大部分员工上班时间无暇打电话,千万不要划分某个部门几点到几点去。 # 今天的主角,一是一位小月月,另一是和平的敏感词。今晚上要喝酒庆祝。 # 俄罗斯的宇宙飞船飞往国际空间站之前都要进行一下“神职人员”的洗礼,我们的嫦娥2号不知道有没有这一步。 # 真的猛士,敢于面对dz屎一般的代码。 # http://www.cnta.gov.cn/html/2010-10/2010-10-6-16-50-26629.html 这个新闻亮了:刚和我们科长玩跑跑卡丁车 # @xm_dragon 快鸟快鸟。。 in reply to xm_dragon # 才用上了twitter新版,更加加深了我在十一期间的普通互联网用户的分析感觉,能够一步完成的操作,绝对不搞两步。 # 国庆七天记忆:1.拍婚纱照 2.认识了一位执着的创业者 3.池塘网鱼 4.逛街打架 5.挤火车 如此充实的十一,又杀回来京城鸟。。。 # 54chen Twitter memo 2010-10-03 http://goo.gl/fb/AAFdW #

54chen Twitter Memo 2010-10-03

    写程序这事,我见了好多上大学才开始学basic的人,基本上上了两年班后,智慧就到了终点了。
# 对于中央的房市调控,刚刚学会的一个词,“中央空调”,怒赞。 # 昨天楼市新政打压,今天的房地产板块股市会如何走?平民已经不相信了,估计是这样。 # 盖茨和巴菲特在北京拉斐特城堡举行慈善晚宴,上次公司年会也是在那个地方,看来那个地方不错。 # @Skiyo 哥就开始穿了? in reply to Skiyo # 国庆前倒数第二天,放松心情,准备过节吧,上线的改代码的开会的,都歇歇吧。 # 开始下注啦,国美大选,究竟谁能获胜? # RT 囧事 : 嫦娥二号发射在即,绕月任务特点: "快、近、精、多"…… # 今天上班的同志们,发现hosts文件被加#的举手,没有发现的赶紧打开看一看。 # 国美之争今日票决,国内媒体都当快把这消息放到娱乐版了。 # 楼里有人家在装修,早晨八点又是轰鸣又是敲打,杯具。 # pengyou.com朋友,被QQ收了? # 今天是节前两个月的准备中的项目beta上线,中午庆功宴,总算可以结束折腾了。 # @liuyangbin http://t.baidu.com/i/1e296797ddd415af172e5fd1 in reply to liuyangbin # @kejunz 大侠,豆瓣的小站如何申请创建呢,我想给哥学社弄一个,http://www.douban.com/group/blog-brother/ in reply to kejunz # http://www.54chen.com/web-ral/web-testing.html 越来越懒的中国WEB程序员,自嘲以警世。 # 54chen Twitter memo 2010-09-26 http://goo.gl/fb/I8fJi #