坚信科学,分享技术

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

How to run GUI app in docker on osx

北京生娃指北

How to install caffe 1.0 with Anaconda python3 on centos7

优化器、激活函数、评价函数

利用深度学习解决直播支付风控

54chen的2016总结和2017预测

中国、印度、印尼在线支付接入、风控和靠谱度对比

小米大树part3:产品进度之痛

小米大树part2:测试之痛

小米大树part1.5:基础架构之痛答疑

cloud foundry之router代码解读

简介 cloudfoundry是vmvare推出来的开源PaaS平台,router是其所有请求的入口路由,其与nginx进行配合完成各种情况情况下的转发。 代码位置在:https://github.com/cloudfoundry/router 历史 第一版的router直接通过unix sock将http request通过nginx的proxy 发到了router.rb中处理,第二版的时候,因为ruby直接处理请求性能不行,换成了lua脚本来接收请求,再由ruby程序将结果返回。 目录结构 router代码不多,共有下面的一些主要目录。 . ├── bin │ └── router (启用router server的脚本) ├── config │ ├── router2.yml │ └── router.yml (配置文件,指定了服务的端口和消息队列pid等) ├── ext │ └── nginx │ ├── tablesave.lua │ └── uls.lua (这两个lua脚本供nginx conf使用,实现用户第一次访问时生成一个cookies,lua让其去同一个地方) ├── Gemfile ├── Gemfile.lock ├── lib │ ├── router │ │ ├── const.rb │ │ ├── router.rb │ │ └── router_uls_server.rb (基于一个简单的web框架(Sinatra)开发的一些http api) │ └── ro

Continue reading

Posted in 架构研究 | Tagged | Leave a comment

54chen Twitter memo 2012-09-02

在小米写服务端java代码,你只需要知道java语法,其他maven呀、nginx配置呀、高可用呀、负载均衡呀,统统都可以忽略,天然就是支持的,嗯,我说的是下一年的事情。 # cloud foundry之cloud_controller代码解读 http://t.co/5um7YuL8 # 随着gfw越来越凶残,后来的再搞技术的朋友啊,你们将会连eclipse插件都下不全,所以说,趁早改行吧。 # @hongqn 两个显示双屏也是一种重构思路。 # 谁知道为什么cloud foundry采用了大量的ruby,而不是其他什么语言? # cloud foundry之vmc代码解读 http://t.co/fm1U34u0 # clound foundry之vmc代码解读 http://t.co/9fx5HaQS # ruby快速学习手记(ubuntu) http://t.co/Aas2KH3J # ruby得用一天时间学一下,看看有没有实际用处。 # 54chen Twitter memo 2012-08-26 http://t.co/J16AmMdc #

Continue reading

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

cloud foundry之cloud_controller代码解读

简介 cloudfoundry是vmvare推出来的开源PaaS平台,cloud_controller是其管理界面的http rest api入口。 补课 rails Rails基于MVC(模型- 视图- 控制器)设计模式。从视图中的Ajax应用,到控制器中的访问请求和反馈,到封装数据库的模型,Rails 为你提供一个纯Ruby的开发环境。 习惯约定大于配置: model类位置app/models/xxx.rb controller位置app/controllers/xxx_controller.rc help位置app/helpers/xxx_helpers.rb view位置app/views/xxx 对应布局app/views/layouts/xxx.rhtml xxx.rxml 开始cloud_controller https://github.com/cloudfoundry/cloud_controller 里面有两个项目,一个是cloud controller另一个是health_manager,今天要研究的是前者,下节说后者。 入口 bin/cloud_controller -> config/boot.rb cloud_controller必需要求ruby1.9以上,因为其中有一个fiber需要ruby支持(传说中的Coroutine)。 如果没有配置 cloud_controller使用nginx,则会启用Thin去启动Rack。(Thin是ruby内置的network server,Rack: a Ruby Webserver Interface) a

Continue reading

Posted in 架构研究 | Tagged , | Leave a comment

cloud foundry之vmc代码解读

简介 cloudfoundry是vmvare推出来的开源PaaS平台,vmc全称是The VMware Cloud CLI,是vmware的应用平台命令行接口。 ubuntu安装vmc sudo gem install vmc 常见的用法 vmc target api.paas.n.xiaomi.net vmc add-user vmc login vmc push vmc其实是使用ruby来实现的一整套的cli命令转化为http restful请求的对应工具。 其代码位于:https://github.com/cloudfoundry/vmc git clone回来代码之后,下面对代码进行半瓶水解析法解析。 入口 bin/vmc 引用了 $github/vmc/lib/cli 直接运行VMC::Cli::Runner.run 位于:lib/cli/runner.rb 看上去run会被执行。 进入到parse_command!方法中 以push为例: when 'push' usage('vmc push [appname] [--path PATH] [--url URL] [--instances N] [--mem] [--runtime RUNTIME] [--no-start]') if @args.size == 1 set_cmd(:apps, :push, 1) else set_cmd(:apps, :push, 0) end 进入到set_cmd中设置变量 modul

Continue reading

Posted in 架构研究 | Tagged , | Leave a comment

ruby快速学习手记(ubuntu)

ruby 1993年诞生于日本。rails是用ruby写的web framework,所谓的ROR正是这一搭档。 ruby安装 ubuntu 10.04很简单,安装ruby和rails: sudo apt-get install ruby sudo apt-get install rails 小试牛刀 rails first_rails cd first_rails/ ruby script/server 浏览器打开127.0.0.1:3000 it's works! IDE:eclipse 语法特点 解释型 适合文本处理,类似perl 完全面向对象 无分号 方法定义关键字:def+end 木有大括号({}) 无需指定类型 局部变量用小写字母或下划线开头即可 全局变量用美元符作为前缀 $;而实例变量用 @ 开头;类变量用 @@ 开头;类名、模块名和常量应该用大写字母开头 常量是以大写字母打头的变量(ruby的常量是可以改变的,但编译器会发出警告。) ruby中这样实例化类:car = Car.new

Continue reading

Posted in WEB相关 | Tagged , | 1 Comment

Testing and Mocking in spring2.5: Static class、maven site、cobertura

spring 2.5 与 junit 4.4 Spring 2.5.x不能用JUnit 4.5+.如果把使用了spring-test 2.5 的testcase升级到 junit 4.5会得到NoClassDefFoundError: org.apache.maven.surefire.booter.SurefireExecutionException: org/junit/Assume$AssumptionViolatedException; nested exception is java.lang.NoClassDefFoundError: org/junit/Assume$AssumptionViolatedException java.lang.NoClassDefFoundError: org/junit/Assume$AssumptionViolatedException 这是spring-test 2.5.x的一个bug. 其与JUnit 4.5不一致. 只能使用4.0-4.4. 或者就是自己打patch. http://jira.springframework.org/browse/SPR-5145 EasyMock 与 static Class EasyMock未提到是否支持static methods.功能类经常是static的,是因为没有上下文环境依赖,但如果一定要mock他们,可以选择powerMock. PowerMock、static Class、junit、spring PowerMock 需要你添加 '@RunWith(PowerMock

Continue reading

Posted in java | Tagged , | Leave a comment

54chen Twitter memo 2012-08-05

利用h2database和easymock轻松不依赖环境单元测试(rose等spring环境万能) http://t.co/4w5Hudmv # 印度的人们会不会特别想移民中国? # @Fenng 怎么解决先发到到时序问题? # spring mock/h2 database/daotest/thrift/zookeeper/rose 基本上已经摸索出来一蓝子的开始高可用性高性能服务或者api的大路。 # xmpp muc的定义真是非常完整! # 54chen Twitter memo 2012-07-29 http://t.co/r2SJQxKo #

Continue reading

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

利用h2database和easymock轻松不依赖环境单元测试(rose等spring环境万能)

前言 写java时间久了,慢慢就变得自信了,也可能是变得懒了,或者是项目进度的原因,test case越写越少,越来越不写了。 还有一个很大的原因是,DB环境不好搞,老是有垃圾数据,依赖的东西太多,有memcache、有别人的服务,等等等等,都是没有test case良好的理由。 下面将以rose环境下,使用easy mock搞写第三方依赖和h2database搞写DB环境为例子,简单讲述如何轻松测试。 完整代码可以在 https://github.com/XiaoMi/rose 下载到。 依赖的包介绍 spring-test:提供一些基础的spring环境的支持,如果你不是spring环境,可能不需要。 h2:一个内存数据库,使用它的原因是,我们的业务大多数时候使用的都是mysql,而h2有一个mysql模式,可以支持绝大多数的mysql的SQL语句。 easymock:以前在五四陈科学院提到过的利器,用来模拟各种调用的工具。 pom定义为:       <dependency>       <groupId>org.springframework</groupId>       <artifactId>spring-test</artifactId>       <

Continue reading

Posted in java | Tagged , | 5 Comments

54chen Twitter memo 2012-07-29

zookeeper客户端curator使用手记 http://t.co/mWAGu1il # 效率高的秘诀其实是一件事情一件事情地做而已。 # 听说bmw的车子都会遇水断电后再用最后的一点电把窗户打开。。。 # 54chen Twitter memo 2012-07-22 http://t.co/8eoJsWBr #

Continue reading

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

zookeeper客户端curator使用手记

一、简介 curator是Netflix公司开源的一个Zookeeper client library,用于简化zookeeper客户端编程,包含一下几个模块: curator-client - zookeeper client封装,用于取代原生的zookeeper客户端,提供一些非常有用的客户端特性 curator-framework - zookeeper api的高层封装,大大简化zookeeper客户端编程,添加了例如zookeeper连接管理、重试机制等 curator-recipes - zookeeper recipes 基于curator-framework的实现(除2PC以外) 从github和maven上的消息来看,1.0.1的版本已经十分稳定,相对应的zk版本是3.3.x,还在开发中的版本是1.1.x,对应的版本是zk3.4.x。 二、依赖 <dependency>               <groupId>com.netflix.curator</groupId>               <artifactId>curator-framework</artifactId

Continue reading

Posted in java | Tagged , | 3 Comments
Page 5 of 51« First...34567102030...Last »
尝试与54chen交流:
Twitter sina微博V GMAIL GitHub

 

54chen,真名:陈臻。
2010年加入小米科技。
关键词:
rose,riak,rabbitmq,zookeeper,thrift,nuclear,
senseidb,hadoop,hive,dynamo,
php extension,nginx module

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

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

SEARCH

接受捐赠

Comments

  • xuchen: paoding rose 支持POST请求的重定向么?...
  • 54chen: 并没有mybatis的高级,只是简单够用的...
  • 54chen: 参考jade包内,rowmapper包下代码...
  • qiang: sql中查询的字段和实体类中的字段是...
  • mr_change: 你好,for就是类似于mybatis的foreach么...
  • anping: 搞定...
  • anping: 陈老师.rose dao 不能执行存储过程吗?...
  • xiaobao: 我也遇到这个问...
  • 54chen: 没有加@DAO注解...
  • 54chen: 移步github看看qieqie最新的版本吧。事...