ruby
iteye_3062
这个作者很懒,什么都没留下…
展开
-
使用304状态来应付高并发轮询
http的各种状态都要被挖掘出来了,request的HEAD里就引申出了REST。现在response里的各种状态码,也会有很好的应用。还在探索中,应该很快就实现功能。参见...2007-12-01 01:25:52 · 153 阅读 · 0 评论 -
304没成功,被proxy屏蔽了
试了一下304没成功,原来是被proxy给屏蔽了。我的架构是apache2.2+proxy+mongrel ,所以rails返回304被apache给解释掉了,真是误会啊。原来还想得怎么开通一下,后来转念一想不对,很有可能其他proxy或负载平衡的东西也可能会解释304状态,这样以后的发布不是很麻烦吗?还是用200状态算了,就是返回一个空算了,这样也不差几个字节,同时关闭了rjs de...2007-12-01 04:16:30 · 379 阅读 · 0 评论 -
升级到rails 1.2.6
没发现啥兼容问题,也没仔细研究,只要不给我惹事就行了。另外使用netbeans 6.0 rc2,一直用的开发版感觉不是很好,而且越来越慢的,内存却越占越多,所以下决心换了个版本,希望稳定一点。现在看来还可以,启动也快,各方面都还可以。...2007-12-01 19:37:44 · 76 阅读 · 0 评论 -
activemq和comet配合的思路
不一定是activemq,但一定要与ruby有接口。stomp就是与activemq的接口,所以要安装。继承Mongrel::HttpHandler,自己来控制连接,以免有什么妨碍。在handler里,去连接jms,主要是利用jms的消息机制,当然如果有类似的系统也是可以的。肯定要设立一个timeout机制,一般在30s,不会超过其他失效的时间。浏览器中使用ajax去get,这...2007-12-02 16:24:00 · 114 阅读 · 0 评论 -
openfire和xmpp4r的配合
openfire是一个符合xmpp协议的即时通讯服务器,java写的,很不错的服务器。假设已经安装好(它的安装相当简单,如果要外置数据库则需要再配置一下),并且建有test1和test2两个用户,密码和用户名一样。写一个测试用例来测试一下:[code="ruby"]require File.dirname(__FILE__) + '/../test_helper'r...2007-12-03 21:03:52 · 109 阅读 · 0 评论 -
xmpp4r 如何上线,收消息
这是一个简单的例子,如何上线和收消息,假设用户test/123,登录本机。[code="ruby"] jid=Jabber::JID.new("test@magicgod-laptop/xmpp4r") j=Jabber::Client.new(jid) j.connect("localhost") j.auth("123") j.send...2007-12-05 13:22:31 · 104 阅读 · 0 评论 -
进入门槛
很多人对于使用ruby和rails有一种莫名的恐惧心理,特别是目前使用率还不是很广泛的时候。这不奇怪,我花了6年时间考察linux,其间装过无数次linux,各种版本,最后才确定了ubuntu作为主要工作平台。在确定转移之后,我还是保留了windows,并且偶尔还回去用用windows。突然有一天想通了,直接删除了windows。在进入门槛的最重要一点就是克服心理障...2007-12-05 20:52:49 · 134 阅读 · 0 评论 -
两个有意思的网站
搜索XMPP4R的时候找到的。一个是timmy on time [url]http://www.timmyontime.com/[/url]是个机器人,可以创建project, task,然后记时。还可以创建一个提醒,非常简单,不过很有意思。一个是mrspratt, [url]http://www.mrspratt.com/[/url]也是个机器人。这个更有趣,她是记录你把...2007-12-05 21:24:46 · 135 阅读 · 0 评论 -
comet的实质
实际上comet也不能完全算作长连接,只是比一般的连接长一点。当然这是推荐作法,太长的连接是不合适的,无论从通过性还是安全性,还是性能角度来讲,都是不好的。不象以前的CGI聊天室,总是用长连接来实现不断更新的。现代的comet比较适合的做法是一段一段的长连接。这象什么呢?很象光的传播。光是不连续的,一段一段的量子所构成,所以有波粒两象性。扯远了。比较好的做法...2007-12-06 03:44:04 · 103 阅读 · 0 评论 -
yaml中的简化写法
定义database.yml可能是一个比较繁琐的事,不过yaml有一种比较好的写法。[code="ruby"]common: &common adapter: mysql encoding: utf8 username: root password: host: localhost development: database: wherei...2007-12-10 16:40:50 · 231 阅读 · 0 评论 -
独立使用ActiveRecord
ActiveRecord虽然在rails里,但却是可以独立使用的。也就是说它可以脱离rails环境,在ruby环境里使用,当然要事先安装好。[code]sudo gem install activerecord[/code]如果已经装好了rails就不需要了。比较好的习惯是按照传统rails方法建好数据库配置文件和model。另外假设目录结构是与ra...2007-12-10 19:11:43 · 143 阅读 · 0 评论 -
一个小XMPP client机器人
简单地echo回去,使用两个配置文件,config/database.yml, config/xmpp_account.yml需要生成rails结构,实际上没有用到数据库连接,只是准备而已。[code="ruby"]require "rubygems"require "active_record"require "yaml"require "logger"Dir...2007-12-10 21:16:46 · 168 阅读 · 0 评论 -
如何自动通过好友验证
连接照旧,只不过要生成一个roster。[code="ruby"] @@roster = Jabber::Roster::Helper.new(j) @@roster.add_subscription_request_callback do|roster_item,presence| process_subscription(roster_item,p...2007-12-13 01:31:12 · 450 阅读 · 0 评论 -
robbin的翻译,rails 2.0新特性
记录一下 [url]http://www.iteye.com/topic/147397[/url]很多有意思的特性, REST好了不少,是重头戏。良好的HTTP验证。不过session还是不好,这次更奇怪了,缺省用cookies了,不过这倒是提醒用户放session的原则,还有就是不会让刚接触的开发人员感到无从下手。我感觉缺省应该是memcache还差不多。...2007-12-13 01:51:39 · 69 阅读 · 0 评论 -
再来一个msn机器人
找了半天库,总算从一个角度里找到一个日本公司开发的库算不错,msnm.rb地址在这里:[url]http://zerobase.jp/blog/entry-213.html[/url]日文的,不过我猜了一下,下载了代码,是GPL协议的。附件里也可以下载。一个大文件,不过也不算复杂,其他的是样例,代码很简单。那么怎么整合进去呢,首先是引用[code="ruby...2007-12-13 15:50:07 · 127 阅读 · 0 评论 -
比较好的process_command方法
接口只有两个参数,一个是命令,一个是邮件(这个有待考虑,应该是IM的唯一用户视别号)[code="ruby"] def self.process_command(cmd,email) user=User.get_register_user(email) if user m=WhereStore.init_from_command(cmd,us...2007-12-13 16:12:36 · 193 阅读 · 0 评论 -
锁定了rails 2.0,同时上传svn
还是决定锁定2.0.1算了,然后整个上传了google svn。[code="ruby"]rake rails:freeze:edge TAG=rel_2-0-1[/code]主要是因为虚拟主机上只有1.2.6,所以锁定一下,而且整个上传svn,这样下载一下就可以了,省得再解释麻烦。不过时间上就慢了一点了,要是连国外比较慢的话就惨了。...2007-12-13 23:03:03 · 72 阅读 · 0 评论 -
如何使用logger
ruby的logger也是一贯地简单。控制日志文件大小,保留10个历史文件,文件大小最大为1024000字节:[code="ruby"]logger = Logger.new('foo.log', 10, 1024000)[/code]每日/星期/月一个日志文件[code="ruby"] logger = Logger.new('foo.log', 'dail...2007-12-17 21:47:41 · 175 阅读 · 0 评论 -
在后台运行,成为守护进程(linux)
在linux下这件事实在是太容易了。先建个Daemon.rb[code="ruby"]require 'fileutils'module Daemon WorkingDirectory = File.expand_path(File.dirname(__FILE__)) class Base def self.pid_fn F...2007-12-17 23:42:25 · 153 阅读 · 0 评论 -
看了一下log4r比较靠近log4j
logger实在是有一点点简陋,连配个format还要hack一把,看了一下log4r,确实不错。可以用yaml, xml来配置,基本上跟log4j很象,等级也是,如果熟悉log4j,就可以比较好地应用。当然配个format不在话下,而且写法还是比较简洁的,至少比log4j简洁。据说用C优化,应该性能上没问题。要是要求不高还是使用自带的logger,方便。[...2007-12-18 02:56:06 · 169 阅读 · 0 评论 -
ubuntu下快速配置mongrel+apache2
ubuntu下用源装好 apache2,它的配置是比较特殊的,但熟悉了之后还是好配的。apache2的配置文件主要是在/etc/apache2下,要用root权限。先要起用mod,办法很简单,用ln 把mods-available下的模块链接到 mods-enabled下就可以起用了。至少需要以下模块:[code]proxy_balancer.loadproxy...2007-12-18 22:33:33 · 80 阅读 · 0 评论 -
将mongrel隐藏在apache2后面
创建一个服务,仅监听127.0.0.1[code]mongrel_rails service::install -N webcs1 -a 127.0.0.1 -p 3001 -e production -c c:\app\webcs [/code]然后用apache的proxy[code] BalancerMember http://localhost:3001...2007-12-20 23:12:44 · 89 阅读 · 0 评论 -
把ruby程序安装成windows服务
当然是要用gem安装win32-service了,要选mswin的版本。要注意几点:都使用绝对路径要把错误捕获,不要随意抛出记录好日志,windows service不好调重定向标准输出和错误输出以下是将安装,删除和运行服务混在一起,可以将控制与服务分开。[code="ruby"]LOG_FILE = File.join(File.expand_path(F...2007-12-21 16:53:39 · 241 阅读 · 0 评论 -
奇怪的错误
虚拟主机上的rails又停了,满天的错误,都是fcgi抛的。似乎是经常性的,一般来说一更新就出这个错。问题是权限也正确,路径也没错,而且过一阵就会好了,奇怪的很。这次干脆改了一个名字。dispatch.fcgi改为a.fcgi然后在.htaccess里也改一下就可以了。[code]RewriteRule ^(.*)$ a.fcgi [QSA,L]...2008-01-04 13:13:46 · 105 阅读 · 0 评论 -
启动mongrel cluster服务
其实很简单的,要先找到这个服务代码,如果是安装在/usr/local下的,那么路径应该是:/usr/local/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources有一个文件:mongrel_cluster,内容很简单的:[code]#!/bin/bash## Copyright (c) 2007 Bradley Ta...2008-01-07 22:04:35 · 124 阅读 · 0 评论 -
ie下奇怪的js错误
ie下发现一个奇怪的问题:把yui的js放在前面,后面放的是自己的js,结果有部分用户使用ie访问的时候出错。YAHOO.util为空,这说明在载入yui前,就载入了自己的js,结果找不到yui的类就出错了。从表面现象看应该是这样的,似乎是ie分出多个线程去下载js,结果自己的js特别小,下载得很快。因为没有环境,没法调试,所以想了一个办法,把所有要用到的js放在一个文件里。果然不...2008-01-10 02:26:38 · 126 阅读 · 0 评论 -
yahoo ui升级到2.4.1了
还没尝试,不知道loader有没有解决掉bug。最好是体积缩小一点。2008-01-10 02:27:42 · 108 阅读 · 0 评论 -
渲染在客户端进行
随着rest的迅猛发展和erb的停滞,似乎rails在发出一个信号:服务端退化为rest提供者,渲染到客户端去。可以想象这样一幅场景:美工把整套页面给做好了,然后交给界面程序员。界面程序员用ajax库渲染页面动态部分,服务端程序员提供rest服务。这样看来实际上rest服务由谁来提供并不重要了,可以是rails也可以是java。而界面渲染又一次地回到了客户端,这样也为服务端...2008-01-10 15:07:55 · 119 阅读 · 0 评论 -
比较好的带权限的下载模式
[url]http://robbin.iteye.com/blog/154538[/url]利用lighttpd来实现,其他web server应该也有类似的,实在没有就可以搞个插件模块这些肯定会有的。这个思路是正确的,但要防止安全隐患。...2008-01-12 21:03:43 · 123 阅读 · 0 评论 -
早就该用lighttpd
配置又方便,速度又快,又省内存。参照:[url]http://robbin.iteye.com/blog/43228[/url]在debian上,php和mysql直接用apt安装了,其他的都是源码安装的。源码安装也不复杂,不过就是要apt安装很多dev的类库,另外debian上的用户是www-data,自动启动的脚本也不一样。最好是用apt装过一次lighttpd,然后删...2008-01-22 04:24:13 · 95 阅读 · 0 评论 -
intellij idea7试用
安装就不说了,解压就行,如果比较邪恶的话可以搞个注册码来。java方面的功能一直都是很优秀的,主要试用ruby插件。在插件管理里安装一下ruby插件就行了。创建一个rails project,可以直接选择已经生成的目录,然后经过一阵扫描后,就可以用了。语法高亮没问题,但是颜色似乎区分不是很明显,这个可以自己调。字体要改改,最好是用courier new等宽。键盘还是老样子,...2008-02-05 17:53:10 · 161 阅读 · 0 评论 -
用回了netbeans,那个爽啊
还没到三天,就结束了intellij idea7的试用(用不了D版了)。回到netbeans,有对比才能感觉出哪个好。idea居然没有断点和单步的,实在是很奇怪,而且字符串里的编辑非常糟。netbeans升级了一点点,暂时还没感觉出什么好来。...2008-02-08 22:28:59 · 667 阅读 · 0 评论 -
netbeans升级到6.0.1
解决了很多bug,ruby插件也升级了,内核也升级了。最明显的是居然显示中文了,吓了我一跳,非常不习惯(不过不是坏事,本地化嘛)。ruby版的还是22m,安装后85m,不算大。...2008-02-09 02:51:42 · 112 阅读 · 0 评论 -
ruby在1.8的情况下仍然有不错的表现
[url]http://highscalability.com/friends-sale-architecture-300-million-page-view-month-facebook-ror-app[/url]facebook的ror应用表现的很不错,操作系统是用centos,感觉比较可信的两种操作系统是centos和debian,用来作服务器都是非常优秀的。debian的a...2008-02-19 13:16:52 · 89 阅读 · 0 评论 -
调整netbeans 6.0.1的字体
实在是不好调啊。在字体设置里,把“所有语言”中的缺省字体选成“宋体”比较好。设置jdk的字体,在目录/etc/java-6-sun下,修改fontconfig.properties,把chinese字体改一下,我是用ZhunYuan。但有一个严重的问题,没有启动反锯齿。奇怪的是有一部分启动了,菜单还是老样子,这个很奇怪,为什么只有部分有反锯齿呢。...2008-02-20 12:54:09 · 107 阅读 · 0 评论 -
记录一个常见js函数
检查正整数。[code="js"]function isPositiveNumber( str ){ var regu = /^[0-9]{1,}$/; return regu.test(str);}[/code]2008-02-20 21:38:28 · 182 阅读 · 0 评论 -
解决xmpp4r会自动断线的问题
使用xmpp4r连接gmail的时候,时间长了就会断,因为我只加了一个message callback,所以如果长时间空闲,则没有任何消息发过去。可能就是因为这个服务器才会断开的。所以要定时发一个在线信息过去,这样肯定不会自动断线了。在主函数start里:[code="ruby"] def self.start init_all() t=Time.no...2008-02-25 17:12:03 · 273 阅读 · 0 评论 -
机器人作了一点小改进
因为长时间空闲会导致数据库自动断开,所以加了定时检查数据库。如果测试失败,则自动重连。并且在启动时如果连接失败不再退出了,只报错,等到两分钟一次的检查自动去检测。下一步打算改为多线程,分开xmpp连接和msn连接,增加mini blog的功能。...2008-02-27 15:29:50 · 180 阅读 · 0 评论 -
对连接要设立超时
前几天msn很糟,总是连不上,导致线程死掉了,这才想起要加上一个timeout,例:[code="ruby"] def self.set_online_xmpp_with_retry_login(j) begin Timeout::timeout(60) { p=Jabber::Presence.new(:chat) j.s...2008-03-01 16:04:27 · 98 阅读 · 0 评论 -
netbeans 6.1中 ruby的增强
有不少令人心动的新特性。比如方法中参数名与块中的参数名同名,不仅会标出,还有提示和quickfix。do...end和{}之间的变换。Extract Method这个非常实用的重构也进入了quickfix.还有不少的surround with ...标出非常多的已废除。还有一些与ruby 1.9的兼容变量名的写法,例如:strFileName...2008-03-03 11:26:31 · 77 阅读 · 0 评论