自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 mac离开源世界越来越远

当ruby 2.0下来,居然在mac上make不起来!mac自己搞LLVM和Clang搞出来的好事。离开源世界越来越远了。 这次rvm来救世界:)  ================== 2.0可以通过rvm装起来,源代码安装不行,原因是xcode 4.6里的clang和gcc4.2用了LLVM,和标准的gcc在某个地方是冲突的,一编就死掉了。rvm get stab...

2013-04-05 21:26:01 142

原创 ruby优秀代码,生产、消费者并发例子

无意中看到,ruby的程序真是非常友好,有兴趣可以品味一下。IMAP的消息系统是用了C++的ACE库。当时很多人搞不清楚IMAP的消息收发机制,我做培训就会讲ACE的生产、消费者模型,用ACE库写起来的代码也不太好看。Ruby这个就非常好看。require 'thread'queue = Queue.newproducer = Thread.new do5.times do |i|  sleep ...

2013-02-26 20:51:47 133

原创 analog nginx 日志格式设定

 analog用c写的,应该跑的快。虽然跑出来结果没有awstats那么漂亮,但配置简单。用起来舒服。 只需要在analog.cfg写两条配置。LOGFORMAT (%S - - [%d/%M/%Y:%h:%n:%j %j] "%j %r %j" %c %b "%f" "%B" %j)LOGFILE access.log...

2013-01-31 23:26:56 183

原创 mongodb master slave常用命令

 1. 在slave查看同步状态  db.printSlaveReplicationInfo() 2. 如果长时间没有同步上master 重启服务, 或> use admin> db.runCommand({resync: 1}) http://www.mongodb.org/display/DOCS/Halted+Replica...

2012-12-10 11:15:03 1246

原创 css中一段高级技巧

body.index a.box div.product {    background-color: #FFFFFF;    display: none;    height: 130px;    margin: -160px 0 0 -35px; #负的margin值可以让其往上走!!!    position: absolute;    width: 825px;...

2012-11-07 16:47:25 115

原创 linux内存管理命令

vmstat -s 与free -m 是比较好的观测内存的命令 刚进入运行的系统-bash-3.2$ vmstat -s     30897940  total memory       184408  used memory        78848  active memory        67432  inactive memory     307135...

2012-10-16 16:04:58 206

textmate rmate 强大好用

textmate 2开源的第二天就compile了一个,除了工程,exclude文件这里有点不爽。其它都非常好用,对中文支持非常好,看起来也比textmate 1漂亮多了。 有一个功能超强大是rmate,把rmate scp到服务器上。 再把路由器的端口转发打开,52698. 在服务器  rmate test.txt 在你本地的textmate 2就会弹出test....

2012-10-07 23:00:47 641

原创 CentOS上搭建Rails 生产环境

1. nginx, mongodb 都可以用yum安装,yum源都是有nginx, mongodb自已提供的 2. ruby 1.9.3后yaml的解析器改成Psych了,所以要先装libyaml 参考http://collectiveidea.com/blog/archives/2011/10/31/install-ruby-193-with-libyaml-on...

2012-10-06 23:10:21 121

CentOS 常用命令与高级应用

1. 查看发行版本号, rpm -q centos-release 2. 在linux下rpm包就很普及,但包关联关系就得用yum,yum可以加其它源,如epel,连nginx都会推出自己的源 [nginx]name=nginx repobaseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/gpgcheck...

2012-10-06 15:02:58 157

原创 xcode精选快捷键

1. 编辑类^L:选中一行(定制)^P:   向上移动^N:  向下移动CMD+E:移动行头(定制)CMD+D:   删到尾(定制)以上组合等价于TextMate的CMD+E(删去一行)CMD+delete 删到行头CMD+[:减小缩进CMD+]:加大缩进CMD+ALT+[:上移CMD+ALT+]:下移^+CMD+J:  到定义^+CMD+l...

2012-09-26 15:10:16 75

Mac高级命令

1. 服务启动管理程序 launchctl list launchctl load  /path/*.plist launchctl start  org.svn.svnserve plist存放目录/Library/LaunchDaemons//Library/LaunchAgents/~/Library/LaunchAgents/...

2012-08-23 11:11:18 217

原创 mongodb常用命令

db.ss_orders.find({_id: ObjectId("4ff3f5bfa8423b0cd600001c")})   db.ss_orders.find({purchase_status:2}).count()  db.ss_orders.update({purchase_status:2}, {$set:{purchase_status:0}}, false,...

2012-07-05 17:04:30 86

精巧的实现是毒药

   精巧的架构是软件之宝,但如果在实现上的精巧则是软件的毒,这种毒会随着软件发展越来越蔓延、发作。   这几天重构了几处实现上的精巧:  1:用编码实现一个数组,如3代表[1,3], 4:[1,3,4], 14[4]。这样做的原因是存数据库的时候好存一个整数。但显然这是一种魔鬼数字。 2. 用一个特殊数表示一个组合关系,如year_month==-1,那么...

2012-03-21 22:30:39 99

原创 程序员的快乐与痛苦

作为70后的人,我总有一种使命感去追问事物的本原。如果我们在享受这个行业的快乐的时候,明白它的痛苦,可能让我们能走得更远。 程序员的快乐: 1. 程序设计是一个创造性工作,它有创造的成就感。 2. 工作有可能产生巨大的价值,和致富的可能。 3. 和机器打交道,对不喜欢和人打交道的人可能是个好事。 程序员的痛苦: 1. 工作可能很挫败,有技术问题和非技...

2012-03-11 23:08:30 124

mac 上装ruby 1.9.3

ruby 1.9.3 已出到p125,应该非常稳定。加上rails社区也力推ruby 1.9.3. "We recommend Ruby 1.9.3 for use with Rails. Rails 3.2 is the last one that supports Ruby 1.8" 在迁移中也发现ruby 1.9.3更稳键,帮我找出一个潜在的错误,并且去掉了iconv,...

2012-03-07 12:11:07 195

ruby 闭包能力的小例

C++的宏大家用得很开心,但可读性不太好。宏就是代码级动态,非运行时,是非常有需求的! Ruby的define_method和class_eval都有闭包能力。但有时可读性也不那么好,class_eval更是。 例子:class Class def plugin class_eval do def self.print p ...

2011-12-02 14:02:17 105

原创 freebsd常用命令

 ==========ipfiter  马上应用规则 ipf -Fa -f /etc/ipf.rules ipfstat ========sysinstall /usr/sbin/sysinstall ========设置网卡ip后马上生效 sh /etc/netstart ======服务...

2011-10-30 10:12:39 101

freebsd的port系统探秘

freebsd以强有力内核,安全稳定,同时方便的port系统也是最吸引人的地方。 不过,这两天用port遇到ruby版本的问题,好在port也是开放系统,略加研究就能搞定。同时对ports有了个很好的了解。 问题: freebsd下的ruby总是默认用1.8,装gem也都是装到1.8下,而之前用port装的默认即为1.9,非常迷惑!而生产环境也必须要用1.9环境。 ...

2011-09-21 12:04:02 450

freebsd下服务硬件性能测试

freebsd用整体解决方案,简约内核打动我们。用它一个更大的理由是它出色的软件包管理。unix/linux下的免费软件远要比windows下的多,不论用port还是, pkg_add都是非常方便! 回到正题,任何东西只有能度量,才能进度。服务器硬件性能,软件占用资源和性能都是我们整体方案的一部分。 freebsd下用unixbench和自带的diskinfo都是测试性能的好工具。...

2011-09-14 17:30:44 513

原创 在Freebsd下搭建Rails生产环境

freebsd以其简洁、高效、安全完全征服了我,相见恨晚。其气质就是有追求的程序一样,什么可以被清清楚楚,明明白白的看到,控制到。再也不用suse, redhat这些发行版,太花了。先从一个nice的内核开始! =================== 编译内核 去掉本机不用的硬件支持,去掉不用文件系统NTFS, IPV6这些东西。 内核选项除了能明确其意义的去掉...

2011-08-26 22:01:00 251

原创 打包数据库查询,提升性能

以前做过一个打包下发查询(从设备查询)的组件,再在基础上做策略,把应用软件的性能提升了1-2个数量级。 现在以数据库为中心的软件设计中,设计中除了要利用nosql数据库中schema-free这种特性外(长项)。应用层,还要承担一些数据库的短项的工作,如关联查询,利用业务场景更智能的查询。从而提升性能。性能的提升主要是从应用场景和架构来提升。比如,不做过度复杂的设计。做一些针对具体业务场景...

2011-06-03 14:12:53 120

去掉无用的rails组件,节约内存

# require 'rails/all' 只留三个组件,test_unit在生产环境下,也可以不要! require "action_controller/railtie"require "action_mailer/railtie"require "rails/test_unit/railtie"    去掉active_record, 和active_...

2011-05-28 15:15:25 103

textmate 精选快捷键

textmate默认的光标移动是类似emacs的。 其实vim的快捷键很让人怀念。如左右上下的光标移动。还有dd, yy这些有意思的键。 但emace也非常不错!如ctrl+k, ctrl+e  都是容易让人记住的。 c-f : 向右移动光标 c-b : 向左移动光标c-n : 向下移动光标c-p : 向上移动光标 用不用方向键可以看出是不是真正的键...

2011-05-26 15:49:00 168

优秀测试代码收集

写道 it "should load classes only once" do autoload_dir "#{spec_dir}/only_once" check = mock check.should_receive(:loaded).once ClassLoader.add_observer do |klass| klass.n...

2011-05-25 16:34:16 63

原创 不停机系统,小心 alias_method_chain的重入!小心所有重入!

ruby动态语言可以做到不停机系统,就是升级部署不断服务!这是多么美好,像静态语言是做不到这一点。 要实现这一美妙、强大能力之前,要小心所以重入。在实践中发现一个bug,由重入造成的死循环!  def to_json_with_children(options={}) push_children_objects to_json_without_children...

2011-04-14 18:51:06 195

ruby强大的 define_method,有闭包的能力!

闭包的例子一般是在说ruby的块,特片是:访问本地变量和绑定运行上下文(很强大的两点) nums = [10,3,22,34,17]sum = 0nums.each{|n| sum += n}print sum 近来看mongoid的代码,发现define_method也能绑定运行上下文!  def getter(name, metadata) ...

2011-04-13 15:23:05 279

mongoDB ruby driver性能测试与优化建议

用mongo的ruby driver进行测试。 测试脚本见附件 测试基本结果:                                                 |   MONGO |-----------------------------------------------------------find_one,find_first     ...

2011-04-07 15:05:43 81

mongoDB vs mysql 性能对比测试

测试环境:  型号名称:    iMac  处理器名称:    Intel Core 2 Duo  处理器速度:    3.06 GHz  处理器数量:    1  总核心数:    2  L2 高速缓存:    3 MB  内存:    4 GB  总线速度:    1.07 GHz测试方案:js脚本向mongo向一个collection里插入一百万个...

2011-04-07 14:44:07 476

mysql中大表与小表的查询性能测试

 改造了一下AR的测试脚本(见附件),测试在大表下的AR全方位性能。 经过测试发现,有索引的情况下,ActiveRecord的CRDU都可以保证在0.1-1ms下完成。但在没有索引的情况下,遍历全表,就很意思了! 1. 遍历:一万条记录遍历在5-11ms, 在可用性范围内。但一百万条记录,在0.6-2s内,显示达不到可用性要求了。百万条记录查找一定要有索引。 2. 非平...

2011-04-06 23:27:43 411

原创 ActiveRecord在ruby 1.9.2和1.8.7下的性能测试

ctiveRecord在ruby 1.9.2和1.8.7下的性能测试测试方案:1. AR自带性能测试方案:向mysql user表和关联表里插入一万条记录。AR3.0.4 运行lib/example目录下的performance.rb2. AR自带性能测试方案:向mysql user表和关联表里插入一百万条记录。AR3.0.4 运行example目录下的performanc...

2011-04-06 16:55:25 102

mongoDB性能初测与优化

测试环境:  型号名称:    iMac  处理器名称:    Intel Core 2 Duo  处理器速度:    3.06 GHz  处理器数量:    1  总核心数:    2  L2 高速缓存:    3 MB  内存:    4 GB  总线速度:    1.07 GHz测试方案:用js脚本创建向一个collection里插入一百万个文档,...

2011-04-06 11:04:34 124

svn 命令行技巧

subversion/svn的设计还是非常棒的!子命令清晰明了,外围工具或plugin有时不能work,还必须用命令行(根本入手)。当时对scalability需求不强,所以没有像git, mercurail一样设计分布式。所以,这几年用svn少了一些。但对小项目足够了。 1. 外部editor 很多命令可能用外部editor,有时不用还搞不定(如下面的设置ignore l...

2011-03-21 15:21:44 142

原创 优秀rails代码赏析

扔掉mfc的那些register函数(太丑了!),继承即是注册,还带配置:  class Railtie class << self def subclasses @subclasses ||= [] end def inherited(base) unless base.abstr...

2011-03-18 16:12:48 90

原创 好的ruby, rails代码收集

看到好的ruby和rails代码收集在这儿* select 配合 any?,用来做两层filter。map出来的array直接返回。map用于过滤等运算。 def monitored_paths paths = Dir['**/*'].select do |path| @script.patterns.any? {|p| path.match(...

2011-03-16 15:31:28 95

原创 unix的文件,和好用命令

unix上都是文件,归一化和抽象化做的好。socket是文件,设备是文件,io也是文件。 那围绕文件来的事肯定不少 好用的命令: lsof file : 查看这个文件被哪个应用程序打开 lsof -i :88 查看这个端口(socket)被哪个应用打开 lsof -u root 查看用户打开的文件 fuser file 与lsof相同,好记一点 ...

2011-03-11 19:44:26 70

原创 Rails 3 ActiveRecord的Relation源码剖析

Rails3的一大亮点是 AR的query 接口:1. 程序员最爱用就是它的及接方式Uers.where().where().order()....2. 还有LasyLoad可以增加灵活性=================但这个Relation还是很让人迷惑的。尤其是一上来:      delegate :find, :first, :last, :all, :dest...

2011-03-01 21:06:11 170

原创 rails 3.0以上不能在netbean下调试的解决方法

netbean 6.9.1 在rails 3用 rdebug-ide 19但依然用 script/server去启动rails项目。实际上都用rails s了。  最好的解决方法是改rdebug-ide ruby-1.9.2-p136/gems/ruby-debug-ide19-0.4.12/bin/rdebug-ide:79行  #!fix netbean can...

2011-02-13 12:49:27 79

原创 rails 原码分析,理顺则好用

一直专业写rails程序,很多东西也没有理清,不通则不快。趁过年前有时间,剖析一下!系统化程度越高,构建才会快,质量高。开始:动机: 一直不太明白ActiveController和ActiveView的关系,即两者的上下文关系。对老系统的Rails 2.1.2 剖析,3.0.0改动太大了,下次再仔细研究。1. 从CGI 的dispatch 一路dispatch过来,到A...

2011-01-29 23:59:37 109

文件上传遇到诡异问题,lighttpd不能正确转发,返回一个http 301,Robbin好像提到过...

应用场景:上传图片(post /photos),走不到rails的create action。用webrick正常。观察lighttpd日志,转发给rails的dispatch.fcgi,返回的基本是302(临时重定向),这些post都没有问题。但上传图片时,返回302,0字节。浏览器拿了302就自动的、错误的去get /photos。记得Robbin提到过ra...

2009-02-23 11:39:16 260

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除