坚信科学,分享技术

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

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

Category Archives: 资料文档

这里有原创翻译的经典文献资料,以及各种技术文档。

小米科技2012校园招聘行程

一年一度的校园招聘又开始了,在这里发一发,对我们有兴趣的应届生,欢迎提前联系,主动改动人生。mail to chenzhen at xiaomi.com 区域 学校 校区 预定时间 日期 东北 大连理工 西部校区 10/24-25 吉林大学 南区 10/26-27 哈工大 本部 10/28-29 合肥 中国科学技术大学 西校区 10/31-01 广州 华南理工 南校区 11/01--02 中山大学 东校区 11/02--03 上海 复旦大学 张江校区 11/02--03 同济大学 嘉定校区 11/04--05 上海交通大学 闵行校区 …

Continue reading

Posted in 资料文档 | Tagged , | 2 Comments

riak源码阅读手记 操作列表及supervisorTree一览

基于0.14.2的记录,1.0的变化会在后续记录。 riak源码阅读手记一 初出茅庐 项目入口 http://www.54chen.com/_linux_/riak-source.html riak源码阅读手记二 左右开弓 启动 http://www.54chen.com/_linux_/riak-cource-code.html riak源码阅读手记 运行安装 http://www.54chen.com/_linux_/riak-source-install-run.html 一些常用的指令: http://wiki.basho.com/Command-Line-Tools.html#riak-admin riak源码阅读手记 压力测试 http://www.54chen.com/_linux_/riak-benchmark.html riak源码阅读手记 操作列表及supervisorTree一览 http://www.54chen.com/_linux_/riak-source-notes-operation-supvisor-detail.html [山寨收集操作列表] 看系统状况,有各种内存cpu硬盘的情况 bin/riak-admin status 节点更换新的ip地址: 如果是所有的节点都换,那在停下来集群,在每个节点都依次运行: ./riak-admin reip riak@192.168.103.9 riak@10.235.2.226 ./riak-admin reip riak@192.168.97.48 riak@10.235.2.183 ./riak

Continue reading

Posted in 资料文档 | Tagged , | Leave a comment

thrift最佳实践:版本与兼容

十分苦逼的api提供过程。一次提供,终身负责制。 "API design is like sex: Make one mistake and support it for the rest of your life." - @joshbloch Structs: 在许多系统里面,被称做message. 协议随着岁月而演变,如果一个已经存在的消息类型不再满足需求,但是你仍然想使用原来使用thrift文件生成的代码,比如你想在现在的消息类型上增加一个额外的字段。 不用担心人,不搞坏原来的任何代码而更新消息类型,是非常简单的,只需要时刻记录以下的规则: 1.不要修改现存的任何已经存在字段的数字标签 2.任何新增的字段应该是optional的,这就意味着,所有新定义产生的代码都能解析新老的格式,因为一定会有任何一个标上required的元素。你应该设置可能的默认值给这个元素,让新代码与老数据也能正常协作。与此类似,新数据也能被老代码解析,老的实现解析时会忽略新的字段。尽管如此,未知的字段不能被丢弃,并且如果消息被延迟序列化,未知的字段也会被一起序列化,因此当消息到达新代码的时候,新字段依旧可用。 3.当你更新的消息类型里不再包括相关的标签数字时,非required字段可以删除。(把这个废字段改名,比如说加个前缀OBSOLETE_ ,可以防止未来维护.thrift文件人误用原来的数字,这做法可能更好。) 4.修改默认值基本上是OK的,但是你记得这个默认值永远不会“串线”。比如,如果程序收到一个在某个字段没有值的消息,程序会看那个

Continue reading

Posted in 资料文档 | Tagged , | Leave a comment

riak源码阅读手记 压力测试

基础环境: 三个台式机 一次操作: 操作一段购物车数据,先写包括3个货物的数据,然后取出来,再加上三个后存入。 压力结果: 1) 10个线程,无连接池化,每次新连接。PBClient。每次req包括上述一次操作里的一写一读一写三次。 Rate: 122 req/s Rate: 103 req/s Rate: 119 req/s Rate: 110 req/s Rate: 117 req/s Rate: 116 req/s Rate: 121 req/s Rate: 110 req/s Rate: 116 req/s Rate: 111 req/s Rate: 123 req/s …

Continue reading

Posted in 资料文档 | Tagged , | 4 Comments

riak源码阅读手记 运行安装

riak源码阅读手记一 初出茅庐 项目入口 http://www.54chen.com/_linux_/riak-source.html riak源码阅读手记二 左右开弓 启动 http://www.54chen.com/_linux_/riak-cource-code.html 代码运行入口 riak-kv/ebin/riak_kv.app文件定义了otp标准项目的结构,一个不错的实例:http://www.iteye.com/topic/342819 {mod, {riak_kv_app, []}}一行定义了入口。打开riak_kv_app文件: -export([start/2,stop/1]). 定义了两大个方法,start和stop。 先看start: 启动riak_kv及相关的server。 检查系统时间。 加入系统变量。 确保设置NWR的值和一些vclock的初始值。 看storage_backend是否启动。 在cluster_info中注册。 启动supervisor。 全部启动。 stop:application:stop。 跑一把试试: A机:192.168.103.10 B机:192.168.97.48 C机:192.168.100.52 三个节点,已经装好erlang R13B04。 先在A机操作: wget http://downloads.basho.com/riak/riak-0.14/riak-0.14.2.tar.gz tar zxvf riak-0.14.2.tar.gz cd riak-0.14.2 make …

Continue reading

Posted in 资料文档 | Tagged , | Leave a comment

riak源码阅读手记二 左右开弓 启动

目标系统(target system) OTP系统定义里有这么一个东西: 可以被一般的erl脚本启动的系统叫基础目标系统; 除此之外还可以做运行时代码替换的系统叫简单目标系统; 如果还支持日志输出到文件、自动定时启动的话就叫做内嵌目标系统。 启动目标系统的方式 通过erlang/OTP标准的reltool工具生成的目标系统,可以用多种方式灵活启动。 第一种: os> /usr/local/erl-target/bin/erl 这只启动了一个基础目标系统。基本没什么具体功能。 第二种: os> /usr/local/erl-target/bin/erl -boot /usr/local/erl-target/releases/FIRST/start 用-boot参数,这可以启动一个简单目标系统。releases/RELEASES文件可用来做热替换。 第三种: bin/start 这个脚本会去调用 bin/run_erl ,最终调用 bin/start_erl启动。run_erl是一个提供运行时日志输出到文件的封装。还提供了简单的机制attach到一个erlang shell。 自定义behaviour -spec behaviour_info(atom()) -> 'undefined' | [{atom(), arity()}]. behaviour_info(callbacks) -> [{start,2}, % (Partition, Config) {stop,1}, …

Continue reading

Posted in 资料文档 | Tagged , | Leave a comment

riak源码阅读手记一 初出茅庐 项目入口

简介 basho(相扑)是一家美国的技术公司,专营数据存储和管理软件,11年6月30日获得了750万美元的融资。basho将riak开源,通过收取riak的维护和管理界面软件的使用费用来赚钱,和resin的公司类似。 今天主要研究的是,basho旗下的riak:一个类dynamo系统的kv存储。riak使用了erlang进行开发,将代码精简到极致。 rebar riak的代码使用了一个叫做rebar(钢筋)的erlang构建工具,使用起来真的很方便,其使用方法建议参考这篇文章:http://www.linezing.com/blog/?p=347。每个项目下,都有一个叫做rebar.config的文件,里面用erlang语法记录了这个项目需要的目录、环境、版本、以及依赖的包在github上的位置。真的很方便。riak项目中,rebar和reltool被大量使用。reltool使用方法参见 http://erlangdisplay.iteye.com/blog/508944 riak的总控工程:https://github.com/basho/riak。 看rebar.config定义的依赖部分: {deps, [ {cluster_info, "1.1.*", {git, "git://github.com/basho/cluster_info", {branch, "master"}}}, %% 这个模块提供了一个松散易扩展的导出集群节点状态的办法。可以收集的信息包括:时间、所有的erlang进程的静态统计、网络连接情况、cpu和内存、大队列进程、内部内存调

Continue reading

Posted in 资料文档 | Tagged , , | Leave a comment

erlang学习手记

ubuntu10.04下erlide for eclipse安装 网址:http://erlide.sourceforge.net/ 3.5版本的eclipse,直接用url http://erlide.org/update 安装 安装后,还需要erlang的环境: sudo apt-get install erlang 现在还不能打开文件,会报空指针错误,选择window->preferences->erlang->installed runtimes 把location选择到 /usr/lib/erlang 即可使用。 [把build automatically关掉,这插件还是不怎么靠谱的,用来写写代码就完了,要编译还是走命令行] erlang学习要点: (1)-module(xx). 注意前面的杠(-)和后面的点(.) 类似java的package,文件名要求为xx.erl,与module里名字相同。 (2)-export([double/1]). 同样注意杠和点。表示模块内的函数为double,包含一个参数。 扩展:多个声明这样写 -export([fac/1, mult/2]). (3)模式匹配 xxxx->aaaa; 箭头的用意:节省代码,不需要if...else...对应前面执行箭头后面。 (4)变量只能单次赋值 首字母必须大写。 (5)元子 以小写字母开头。只是一个名字。类似java的常量。 (6)元组 {inch,Y} {moscow,{c,-10}} 元组中有元素。 (7)列表 …

Continue reading

Posted in 资料文档 | Tagged | Leave a comment

QCon2011讲师经验总结及QCon2011的ppt下载

第一次作为讲师参加这样大规模的会议,经验不足,特总结一下: 1.虚心接受批评建议,诚心提高演讲技巧。 2.会前准备过份考虑切合当天大会主旋律。 3.铺垫过多,观众需要速食。 4.要讲的东西一定要放到ppt上,会场很大,由于音响回声,前半场需要讲师,后半场只需要幻灯播放员。 5.三段式的ppt最能快速切入主题:1)解决什么问题 2)用什么关键代码解决 3)在哪里下载 6.不谈构架,潜心解决实际问题。 7.10月份杭州QCon如果时间允许,再去分享更好的主题:米聊团队背后的技术,届时一定不忘记上面的6点。 如果您当天听了我的讲座有任何建议,欢迎以评论方式提出。 下面是ppt: Qcon2011-54chen-互联网分步式构架分享 View more presentations from zhen chen. QCon 2011 beijing官方下载地址 http://www.qconbeijing.com

Continue reading

Posted in 资料文档 | Tagged , , | 9 Comments

[网络推荐][TED演讲]西蒙·斯涅克:伟大的领导者如何激励行动

翻译:binzhu28 根据西蒙·斯涅克 Simon Sinek的TED演讲稿翻译,录像链接:   各位,当事情不是我们料想的那样时,你如何解释?当别人能够成就的事实似乎推翻了过去所有的假设的时候,你如何解释?举个例子,为什么苹果如此具有创新能力?一年又一年,一年又一年,他们比竞争对手更加创新。而且,他们只是一家电脑公司。就像每个电脑公司一样,他们能招到的人才,获得的资源,找到的顾问,采访的媒体都和别人一样。那为什么他们好像总是能够拿出一些不同的东西来?   同样,为什么是马丁·路德·金来领导民权运动?他不是唯一遭受运动前社会歧视的黑人,他也肯定不是那个时代唯一伟大的演说家。那为什么是他领导民权运动?   还有,为什么是莱特兄弟能够研制出动力控制的载人飞机?当时还有其他团队比他们兄弟俩更有能力,更多资金,他们却没能实现人力飞行,莱特兄弟打败了他们。   一定还有一些什么别的因素在起作用。   大概三年半前,我有了一个发现,这个发现从根本上改变了我对世界是如何运作的看法,甚至也根本改变了我运作的方式。事实显示,有这么一个模式,这个世界上所有伟大的激动人心的领导者和组织,不管它是苹果,或者马丁·路德·金,或者莱特兄弟,他们思考,行动和沟通的方式完全一样!而对其他人,则正好反其道而行之。   我所做的就是把它整理出来,这可能是世界上最简单的一个观念。我称之为“黄金圆环”。   (在白板上画了三个圆环,中心是"为什么why", 第二个环是"怎么做how",最外面的环是"是什么what")   为什么?怎么做?是什么?

Continue reading

Posted in 资料文档 | Tagged | Leave a comment
Page 2 of 3123