坚信科学,分享技术

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总部的牛人,他们都是大家或者老板利用私人关系邀请而来,谈论都是面对面的,相比之下许多技术大会就成了认识人或者招聘的过场。 #

Continue reading

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

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 =

Continue reading

Posted in java | Tagged , | 2 Comments

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 #

Continue reading

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

持续构建工具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

Continue reading

Posted in java | Tagged , | Leave a comment

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 #

Continue reading

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

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.

Continue reading

Posted in linux, php | Tagged , | 1 Comment

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 #

Continue reading

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

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

Continue reading

Posted in java | Tagged , , | Leave a comment

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 #

Continue reading

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

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成功。

Continue reading

Posted in java, linux | Tagged , , | 3 Comments
Page 9 of 45« First...7891011203040...Last »
54chen on Twitter
Connect with 54chen on
Twitter sina微博V GMAIL Profile
54chen,真名:陈臻。
2010年加入小米科技。
关键词:
rose,riak,rabbitmq,zookeeper,thrift,nuclear,
senseidb,hadoop,hive,dynamo,
php extension,nginx module

天下风云出我辈,一入江湖岁月催.
鸿图霸业谈笑中,不胜人生一场醉.
提剑跨骑挥鬼域,白骨如山鸟惊飞.
尘世如潮人如水,只叹江湖几人回.

过去的经历:
人人网分布式研究人员(nuclear系统开发者)
雅虎、淘宝搜索开发工程师
金山词霸开发工程师
曾用代号有:cc0cc、零蛋。

SEARCH

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: 陈老师威武!哈...