54chen Twitter memo 2011-07-17
spring配合easymock搞定不依赖环境的测试用例 http://goo.gl/fb/bxjjr #
高铁和做服务器一样一样的:冗余,自动切换,灾备,必须小心翼翼,任何的不稳定都会让用户鄙视。 #
54chen Twitter memo 2011-07-10 http://goo.gl/fb/6EWz2 #
小米米聊的技术小会天天在进行,先后来的嘉宾有陈飞舟,张宴,盛大Mongodb牛人,网易架构师,还有来自Facebook总部的牛人,他们都是大家或者老板利用私人关系邀请而来,谈论都是面对面的,相比之下许多技术大会就成了认识人或者招聘的过场。 #
spring配合easymock搞定不依赖环境的测试用例
在写java的test case的时候,往往有太多依赖环境的情况,WEB项目更甚,如果每次测试都要准备数据库或者其他环境,相当麻烦,换一个人就入手困难,在这种情况下,mock就是最好的选择。
Mock 对象能够模拟领域对象的部分行为,并且能够检验运行结果是否和预期的一致。领域类将通过与 Mock 对象的交互,来获得一个独立的测试环境。
入门
//准备一个mock
IMocksControl mocksControl = EasyMock.createStrictControl();
//创建录像
aDAO = mocksControl.createMock(AnalyzeResultDAO.class);
//录制 输入 期望输出
EasyMock.expect(aDAO.getARByLimit(type)).andReturn(ar);
//重放 表示录制结束
EasyMock.replay(aDAO);
//调用相关的类 验证结果是否正常
Assert.assertNotNull(analyzeResultBiz.getLastAR(type));
//验证是否使用了上面录制的DAO
EasyMock.verify(aDAO);
提高
* 配合spring如何做?
int type = 1;
AnalyzeResult ar = new AnalyzeResult();
ar.setName("123");
IMocksControl mocksControl = EasyMock.createStrictControl();
analyzeResultBiz =
54chen Twitter memo 2011-07-10
持续构建工具hudson使用手记 http://goo.gl/fb/Vpbh2 #
大家手里的项目,除了DAO/biz/service/controller的架子的,还有什么样子的?都是什么情况下出来的? #
突然回想,rose+jade+ice的基础架构完成后,还需要autoGenCode的机器人,这样,全公司工程师都是架构师,大家商量的是数据结构的设计,让代码自动生成。 #
54chen Twitter memo 2011-07-03 http://goo.gl/fb/rxaw5 #
持续构建工具hudson使用手记
hudson是一个强大的持续性构建服务器。(现在开发者们分了一个分支,改叫Jenkins。)我(54chen)在使用过程中的手记如下:
下载
地址:http://hudson-ci.org/
wget http://java.net/projects/hudson/downloads/download/war/hudson-2.0.1.war
速度不咋的,60k/s.
先决条件
系统:centos 5.5
resin4下不work,换成了tomcat。
cp /opt/soft/hudson/hudson-2.0.1.war /opt/soft/apache-tomcat-7.0.16/webapps/
遇到的问题
1)tomcat使用utf8环境。
vim tomcat/conf/server.xml
找到8080,加入一行 URIEncoding="UTF-8"。
2)maven不工作
hudson启动后,系统管理里面,设置maven的地址:MAVEN_HOME指到maven的主目录,不是bin目录。
3)svn不工作
报re_version错误,在你的svn地址的最后面加上@HEAD
4)hudson一切正常后,有svn bug
FATAL: tried to access method hudson.scm.ChangeLogSet$Entry.setParent(Lhudson/scm/ChangeLogSet;)V from class hudson.scm.SubversionChangeLogSet
报上面的错误,我(54chen)在http://i
54chen Twitter memo 2011-07-03
mediawiki脚本自动发内容实现 http://goo.gl/fb/V6Cyc #
根据祖国医学理论,春夏宜晚睡早起,每天需睡5~7小时;秋季宜早睡早起,每天需睡7~8小时;冬季宜早睡晚起,每天需要睡8~9小时。 #
用sonar分析项目架构:Package cycles design图中,如果对角线上下方都出现斑点,包有循环;保持每个包的一行只有一个斑点(保证只有一层在调用自己)。这样出来的项目必然是层次清晰的项目。 #
昨天新浪微博的xss看上去挺广的 #
hudson很好用,早就应该用了。 #
54chen Twitter memo 2011-06-26 http://goo.gl/fb/B92fo #
mediawiki脚本自动发内容实现
相信很多公司都是在使用mediawiki做内部team的知识管理,同时也有一些边边角角的脚本去做诸如上线、报警一类的工作。经常会有这样的需求:在上线的时候自动更新wiki的一页内容。
实现起来很简单,只需要一个curl即可,mediawiki提供了http restful的接口,在api.php上,可以做很多事情,下面是实际使用的举例。
目标:上线脚本最后执行一下记录,更新wiki里的一页做为上线记录,Online logging包换的元素有:日期,项目,版本号,机器。
环境:安装了 curl的机器
实现细节(wiki.sh):
#! /bin/sh
OPS_APP=$1
shift
OPS_REV=$1
shift
OPS_SERVER=$1
OPS_TIME=`date`
echo "\nwrite to wiki"
TOKEN=`curl -s -d 'action=login&lgname=你的用户名&lgpassword=你的密码&format=json' http://你的wiki域名/wiki/api.php -D cookies.txt -b cookies.txt | sed -e 's/.*token":"//' -e 's/".*//'`
curl -s -d "action=login&lgname=你的用户名&lgpassword=你的密码&lgtoken=${TOKEN}&format=json" http://你的wiki域名/wiki/api.php -b cookies.
54chen Twitter memo 2011-06-26
java log4j 日志分析工具分享 http://goo.gl/fb/GiLWg #
http://wenku.baidu.com/view/97ed964ce518964bcf847c14.html 双lan设置,有人用吗? #
Ray Ozzie被盖茨称为“宇宙中最顶尖的5位程序员之一” #
Ray Ozzie @ Xiaomi office now #
很火爆啊,大家都收到了盛大2-3倍的地点任选的猎头邀请,感觉和国内最大的集团“铁观音”一样一样的说。 #
按下葫芦起来瓢,先睡一觉重新按。 #
产品许多时候是需要许多功能的,但工程师一次只需要去实现一种功能,功能太多反而不能专注,所谓做减法,更应该是做分解,一点一滴积少成多。 #
推荐facebook系列的thrift(通讯框架)、scribe(海量日志server)、hive(hadoop的类SQL tool),用于各种线上应用、离线用户数据挖掘足矣。 #
54chen Twitter memo 2011-06-19 http://goo.gl/fb/CysHM #
java log4j 日志分析工具分享
java线上项目往往有许多的exception出现了没来得及去看,通过下面的工具,可以在每天早晨上班的时候通过邮件发出头一天出现的异常次数,是提高生产力和提早发现问题的好办法。
配置:
1.解压到指定目录
/data/analyze
2.email发送配置
vim mail.pl
5行,6行,7行,14行 修改为自己的配置
3.server配置
ssh-keygen打通ssh
cd server
项目名_server写服务器ip,多个机器一行一个
4.其他
可能会有不相同的log目录地址,看着修改一下shell就行。
*修改自烧饼的脚本,点击下载:
http://ishare.iask.sina.com.cn/f/16530420.html
54chen Twitter memo 2011-06-19
系统架构的演进是一个很难控制的事情,特别是在团队成员越来越多的情况下,大方向错了的话,一招之差,差之千里。 #
hive迁移hadoop namenode时遇到的问题 http://goo.gl/fb/Rs5sl #
54chen Twitter memo 2011-06-12 http://goo.gl/fb/HuCN4 #
hive迁移hadoop namenode时遇到的问题
使用了一段时间的hive和hadoop,在迁移datanode时很容易,要迁移namenode,hive里就闹情绪了。更改namenode后,在hive中运行select 依旧指向之前的namenode地址。
要如何解决呢,具体操作如下:
1.复制打包老的namenode
2.复制打包老的namenode的hdfs目录
3.到新机器准备好:修改master的值 复制到各节点 修改hive的定义
4.hive这里使用了mysql来保存metadata
因为这些信息会被写死在hive的DBS和SBS表里,下面是关键的一步:
进入mysql,执行下面的sql,
update DBS set DB_LOCATION_URI=REPLACE(DB_LOCATION_URI,'old host','new host');
update SDS set LOCATION=REPLACE(LOCATION,'old host','new host');
启动,一切正常了!迁移hive namenode成功。
54chen,真名:陈臻。
2010年加入小米科技。
关键词:
rose,riak,rabbitmq,zookeeper,thrift,nuclear,
senseidb,hadoop,hive,dynamo,
php extension,nginx module
天下风云出我辈,一入江湖岁月催.
鸿图霸业谈笑中,不胜人生一场醉.
提剑跨骑挥鬼域,白骨如山鸟惊飞.
尘世如潮人如水,只叹江湖几人回.
过去的经历:
人人网分布式研究人员(nuclear系统开发者)
雅虎、淘宝搜索开发工程师
金山词霸开发工程师
曾用代号有:cc0cc、零蛋。
2010年加入小米科技。
关键词:
rose,riak,rabbitmq,zookeeper,thrift,nuclear,
senseidb,hadoop,hive,dynamo,
php extension,nginx module
天下风云出我辈,一入江湖岁月催.
鸿图霸业谈笑中,不胜人生一场醉.
提剑跨骑挥鬼域,白骨如山鸟惊飞.
尘世如潮人如水,只叹江湖几人回.
过去的经历:
人人网分布式研究人员(nuclear系统开发者)
雅虎、淘宝搜索开发工程师
金山词霸开发工程师
曾用代号有:cc0cc、零蛋。
SEARCH
Tag
Comments
- tank: 请教哈表单验证是如何做的?不采用a...
- nodexy: 开启系统最大句柄数是前提,但就算...
- 54chen: 最好用hive的load file去hdfs,scribe的hdfs...
- 剑舞: 利用scribe写入hdfs的时候,是否有遇到...
- 54chen: 代码公开在 https://github.com/54chen/MyNe...
- 未来之风: 您好,不知道您这个是否支持神州数...
- 54chen: 是的...
- heroqt: 哦,是不是可以加上@Path("/")指定作为...
- heroqt: 那么处理http://github.com/topic的函数必...
- afei: 陈老师威武!哈...






