坚信科学,分享技术

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

Yearly Archives: 2013

Cassandra的thrift用法学习手记

__English Version__The notes about the usage of Thrift in Cassandra Cassandra在client访问server cluster的时候使用了thrift,在cluster node间的通讯,依旧是自己实现的二进制协议。 先决条件 thrift 0.9.1 mac libthrift-0.9.1 Cassandra 2.0.3 本文所涉及的代码:https://github.com/54chen/cassandra-thrift 看代码 thrift的定义:server的逻辑实现代码叫做Processor,创建的等待socket代码里叫做Transport,最后启动的进程叫做Server,大致就会有要启动一个thrift server,需要有一个socket(Transport)和一堆逻辑(Processor)。 这里有一篇2011年写的thrift入门手记:http://www.54chen.com/java-ee/thrift-quick-start.html 示例代码中以TNonBlockingServer来举例。TNonBlockingServer是采用libevent lib实现的一种thrift内置的server类型,理论上是最快的一种。 CustomTNonBlockingServer Cassandra并没有默认使用这种类型的server,默认的是基于TServerTransport连接完成的CustomTThreadPoolServer(自行实现了连接池)。 以示例代码为例: Cassa

Continue reading

1 Comment

BLUNO试用手记

准备工作 rmbp BLUNO ×1 Android 4.3+ Devices with BLE or IOS 7.0+ Devices Accessory Shield with Arduino ×1 Micro USB cable x1 http://freeware.the-meiers.org 下载安装简化串口调节工具CoolTerm。 通过AT指令配置BLUNO的蓝牙属性 1.把BLUNO上的AT开关,从NORMAL拔到AT 2.连接BLUNO到电脑,打开CoolTerm 3.CoolTerm -> Options -> baud rate -> 115200 -> ok 4. Connect 5. …

Continue reading

Leave a comment

java 1.6.0_38-b05 vm 20.13-b02优化手记

基础: 业务代码 rose框架(底层是spring) resin4 java 1.6.0_38-b05 centos 初始配置: 只修改了以下三个值 -Xmx5000M // max的heap的大小。 -Xms5000M // min的heap的大小,就是一初始给的大小,不够先GC,还不够再加,直到max。 -Xmn2000M //young区的大小,一般来讲:heap=Y+O,P是额外的值。Sun推荐Y=heap*(3/8)。 gc情况解读: # jstat -gcutil 20538 1000 100 S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 51.96 62.53 73.42 99.93 35830 …

Continue reading

Leave a comment

《移动互联网技术挑战》-ssdc

以下是上周末在苏州参加的活动使用的slide,http://softwaresuzhou.org。 看不到的同学请猛击这里 ssdc-移动互联网技术挑战

Continue reading

Leave a comment

百人共用企业maven私服nexus迁移搭建手记

三年前,小米的第一个nexus(版本1.8.0)在一台dell的办公机上安装完成。域名为http://www.a.com。 三年后,a.com时不时已经慢得不行了。特别一到周一,大家都在update snapshot的时候,完全陷入一种无尽的痛苦中。 然后弄来了一台专业server做这事情,域名为http://www.b.com。版本到官网一看,已经2.64了。日新月异! 看升级文档顿时没了兴趣考虑升级,全新从零安装。 最后的办法是,在新机器上安装新的,把老的仓库挑出来设置为proxy类型。然后启用了ldap,同时保障大家都有deploy权限的同时,最大保障大家的密码不明文出现,同时通过代理ngx来限制最大上传的包,同时规定了snapshot的使用规则,防止在线上使用snapshot。以下是详细记录: 一、下载安装nexus和配置nginx 找个磁盘分区不小的: wget http://sxrelease.n.miliao.com/nexus-2.6.4-02-bundle.zip unzip nexus-2.6.4-02-bundle.zip bin/nexus start 然后就能用了。http://www.a.com:8081已经启动了。当然了,如果还不能访问,应该是iptables在捣乱,试一下iptables -F。 [nginx安装忽略] 然后再在此机器上配置一个nginx代理到8081端口上。只举是为了:1.分担jetty的访问压力,毕竟公司人已经越来越多了。2.好做后续更多的事情。 server { listen       80; server_name

Continue reading

Leave a comment

移动互联网系统架构十大陷阱

过去的三年,54chen一直奋斗在中国移动互联网一线,历经各种坑爹的情况。以下特做记录。 Top 1.时不我待 连通性 cmwap cmnet这样的词语以后应该都会消失在人世间。三年前,经常性地有移不动联不通手机连不上服务器机房的情况。两年前,这种情况要好了一些。一年前,改善很多。现在还存在。相信未来会越来越好,时代在召唤!解法,花钱找有“背景”的机房。 Top 2.生不逢时 HTML5 在去年的网络情况下,HTML5依旧不适合用来做优秀的app。前几年的时候,网速各种烂的情况下,2G下的html5应用基本上完全不能用。现在好一点,开始有闲人把html5全部封装好native的调用,使其只做view的显示部分,但是,性能也是个大问题。当然了,同样地,相信未来会越来越好,同样是时代在召唤!解法,过几年再用。 Top 3.环境恶劣 DNS DNS解析也有失败的情况下,app做得再漂亮,请求也不可达。IP要比域名靠谱一些,却有别的问题。解法就是在客户端多留下点域名和ip,一个不能用换下一个。 Top 4.车匪路霸 http拦截 天朝运营商,可以干得出你想不到的事情。各种小广告帖你家防盗门上。所以你最好还是在header里声明好了:畜生,这个不是html,这是json,不要加广告! Top 5.五花八门 app添加按钮一定要克制 特别是android app,完全没有限制,或者统一标准,什么样的App都有,做一个大气的App,最重要的一点,看看能不能打开就是主要功能,手指点一下就能到重要功能。 Top 6.逆流而上 完全不要在传统web上有所期待 除了新浪微博、QQ空间这种从传统

Continue reading

Leave a comment

又拍云cdn试用体验

十一之前,又拍云存储(upyun.com)市场部的谢静同学邮件我,让我试用又拍云的功能。之前在infoq或者是之类的技术讲座上有看到过又拍云的报道和技术架构讲解,印象还是不错的,本着支持创业提升期企业的态度,特写此文写下全部试用感受。 用法 我的用法比较简单,因为diahosting给我提供的vps在国外,流量是个大问题,所以写博客时,基本都不上传大图片。遇到要上传的图片,之前基本都是两个地方,一是淘宝(嘿嘿,提醒淘宝的兄弟不要把那个上传的口关了哈,淘宝的cdn岗岗的!),二是新浪微博。 上述两个老办法的坏处:淘宝的话,每次上传打开步骤都老麻烦了,又是密码又是选上架之类的。微博呢,又老有那个水印。二者图片质量都不行,老是压缩得不行了。 申请了又拍云存储之后,直接使用它的ftp功能,无压缩,cdn速度也岗岗的。http://www.54chen.com/architecture/how-to-document-code.html 此文中第一个图即为又拍云提供。 使用记录(mac下纯ftp命令记录): localhost:~ chenzhen$ mkdir -p 54chen-pic/1008 localhost:~ chenzhen$ cd 54chen-pic/1008 localhost:1008 chenzhen$ cp ~/Downloads/wallpaper_1282030786.jpg . localhost:1008 chenzhen$ ls wallpaper_1282030786.jpg localhost:1008 chenzhen$ ftp v2.ft

Continue reading

2 Comments

如何写一手好文档(好代码)?

好久没见。 中秋去了一趟草原,放空了大脑,回来灵感突发,对文档、代码写法这方面的感悟多了些,特记录一下。 一、什么样的文档(代码)叫做“好”? 任何一篇文档,目标都是给别人看懂。 任何一段代码,首先也都是别人能看爽了才是目标。 以上述“世界观”为准,很容易得到文档(代码)好不好的结论。 以80后小时候读的连环画为例,它就是优秀文档的典范。 像连环画这样优秀的文档,主要具备以下几个特点: 1.长篇被分成小节。 2.小节中关键页有图。 3.描述言简意赅。 4.页数固定不多。 典型地,如果在写文档(代码)时,能够做到上述四点,都是优秀的。 比如: PHP文档造福了多少PHP程序员,让PHP这门语言流芳百世、追随者众多。在PHP文档中,每一小节都进行了特别归类; 在关键位置还有不少例子代码; 每个方法的作用也是言简意赅; 每一小节的数量都不是很多。 再来看nginx代码,完全是一个大型服务端软件构建的一个范例。只看src目录中的源码,从一开始就分成了core、event、http、mail、misc、os,这样相当清晰明了的层级结构和定义,让后续很多事情方便扩展; 每一部分的代码都能够让读者一眼看明白是做什么的; 每个细节的方法长度也不是特别长; 每个分类里的内容也相对是固定的,后续的改进都是在plugin上比较多。 二、几种实际的土办法提高文档(代码)能力 在上述建立好了对好文档(好代码)的世界观之后,下面再分享一些总结出来的套路,如果前面世界观没理解透,只把这里的土办法理解了,也能写出来容易读的文档(代码)。 办法一、写文档先写段落标题,写代码先建分类目录(java叫做pa

Continue reading

Leave a comment

记最近的事情-有关小米

最近小米好事连连,许多事情大家都知道了,这里只是纯粹的以个人视角把遇到的一些照片整理出来。按常规,只代表个人观点,与所就职公司没有半毛钱关系。还有很重要的一点,没有F码! 以下,按照记叙文的过程进行一一记录。 2013年08月30日,据纽约时报当天的报道,“智能手机制造商小米公司在周四宣布,该公司已从谷歌公司(Google)挖来一名高管,出任拓展其国际业务计划的带头人,这是中国手机行业出口雄心勃勃的一个迹象”。出处见:http://cn.nytimes.com/technology/20130830/c30xiaomi/ --你有可能打不开,别问原因,可以问候方校长。 没错,Hugo Barra,前Google全球副总裁,android的老大,加入了小米。以下是当天虎哥来我米报道的情形: 请自行忽略穿工作服的保安哥,他老是让我出示工牌。 2013年09月04日,HBase的头号带头大哥Michael Stack来到小米,给MITC进行了一场为时2小时的技术交流活动。以下是海报, 然后进入到现场: 当然了,他此行的原因有一部分是想来看一看这家为国际开源项目做出贡献的中国公司是什么样的,这主要是依靠我们优秀的小伙伴们。 还有这一张照片要附一下,多少是个心意: 2013年09月05日,秋了,还没有树的叶子飘然而落,没有凄凉地在空中打着旋儿。天空不是灰色的,空气有一点冷冷的。偶尔飞过一只麻雀,传来的也是愉快的叫声,仿佛知道当天要在国家会议中心发生什么…… 我相信,我所知道所有的细节你都知道,直接上图算了。 场子的外面,才到的时候,没门票进不去的。 米聊的易拉宝。 最后

Continue reading

1 Comment

arduino-蓝牙各种版本类型及费用对比

厂商 做单芯片系统和蓝牙模块的厂商主要有:Bluegiga(蓝兆),Texas Instruments(德州仪器),Nordic Semiconductor(北欧半导体),Cambridge Silicon Radio(CSR公司),Broadcom Corporation(博通公司),这几家公司,基本掌控了全球所有的蓝牙、无线、voip、音视频解码等核心技术。(技术门槛岗岗的!) 常见类型 2.1+EDR 2004年推出,2006年大量使用。 http://blog.sina.com.cn/s/blog_8a49cc8f0101b03j.html *此款为目前最好用的一款了。 3.0 2009年推出。升级的秘密在于,在需要的时候,其会调用wifi协议,传输速度提升8倍。 4.0(BLE) 2010年推出。低功耗、提升传输距离为60米。android4.3才宣布完整支持。 http://www.cnblogs.com/zdz8207/archive/2012/10/17/bluetooth_ble_android.html http://redbearlab.com/bleshield/ 北欧半导体生产,只支持从模式。 *此款为最烧包的款了。 费用 所有使用蓝牙技术的产品都应该通过BQB专利认证,才能拥有蓝牙技术的使用权,当然,国内是比较少人去做的,但使用了蓝牙技术的产品出口到欧盟、美国等一些发达国家,在通关时不能提供这个蓝牙BQB认证,货会被当地海关扣压,因为你的货侵犯了蓝牙的专利权。 蓝牙认证是没有期限的,只要您认证过的产品没有更改它的认证模块及软件版本,就会一直有效,

Continue reading

Leave a comment
Page 1 of 3123