Feb 5 2008

在Linux下制作screencast

玩Ruby的人很喜欢做screencast哦,确实是一种很好很直观的方式,值得大力推广。这篇也送给pluskid兄弟,他刚刚发布了RMMSeg – 一个MMSEG 中文分词算法的 Ruby 实现。我在撺掇他做一个RMMSeg + Acts_as_ferret plugin的screencast ^0^

这里有一篇在Linux下录制screencast的工具总结,很全面了。推荐xvidcap

http://news.softpedia.com/news/Screencast-Guide-Capure-Your-Linux-Desktop-on-Video-42626.shtml

要是有和我一样懒的xd可以看这个xvidcap的screencast,虽然觉得这老兄有点儿罗嗦,呵呵,不必完全看完,回了就行了


Oct 2 2007

Setup Ruby on rails development environment on Ubuntu Linux 7.04

1. Install VMWare 5.5 on my laptop (WinXP)
2. Install Ubuntu 7.04
3. Update
4. Install Ruby and Rails

sudo apt-get install ruby ri rdoc mysql-server libmysql-ruby
sudo wget http://rubyforge.org/frs/download.php/17190/rubygems-0.9.2.tgz
tar -xvzf rubygems-0.9.2.tgz
cd rubygems-0.9.2
sudo ruby setup.rb
sudo gem install rails –include-dependencies

5. Install Mongrel
sudo apt-get install build-essential ruby1.8-dev ruby1.8
sudo gem install mongrel

6. Test Mongrel
rails rails_app
cd rails_app/
mongrel_rails start -d
mongrel_rails stop

7. Setup NetBeans6.0 Beta + Ruby Pack
download NetBeans6.0 here:

http://dlc.sun.com.edgesuite.net/netbeans/download/6_0/beta1/

Download .zip file and unzip it into a sub directory. No need to install it. If you have Sun JDK 5.0 or 6.0 installed on your linux, it can work by invoking /bin/netbean

BTW, besides .zip file, there is a .sh file to install netbeans6.0 but I do not know how to invoke it:( Any one have suggestions?

Install Sun JDK5.0:
sudo apt-get install sun-java5-jdk


Apr 10 2007

记忆力不行了,随手记一下

老爷级的台式机终于挺不住罢工了–我的屋子终于安静了–光他老人家一个风扇的噪音已经快超过隔壁装修了。

我的Linux环境没有了。今天在laptop上搭建了了RoR的环境,Ruby1.8.6 + Rails 1.2.3 + DB2 V9(这个最BT,呵呵,不过IM们的同事都知道是为什么)+ DB2 adapter bindings + RMagick. 就在laptop上开发了!反正deploy到linux的production environment也很方便。IDE选了RadRails,用起来不怎么顺手,只能忍了,暂时还没有为了rails而败个Mac的打算。


Apr 4 2007

RoR中文问题tips

从这里整理的: http://www.railscn.com/about45-0-asc-15.html

结合RubyOnRails官方Wiki上的一些介绍和自己实践写的。这个方法就是在使用rails的内置的长度校验的时候要考虑到中文一般占用3个字符。

Ruby本身不支持UTF-8,但是我们可以使用一些办法使用8bit的字符来储存UTF-8编码后的字符串.但是这会导致一些字符串函数出现问题,可以通过使用jcode包里的函数来替换原来的字符串函数,如length可以用jlength替换。
1、首先,我们需要在public/dispatch.cgi文件的#!/path/to/ruby后面加上-Ku -rjcode
2、然后,需要使用一个before_filter来输出http头,表示使用utf-8字符集。
class ApplicationController < ActionController::Base
before_filter :set_charset

def set_charset
@headers["Content-Type"] = "text/html; charset=utf-8"
end
end
3、接着,如果要在Safari浏览器里使用rails的ajax帮助函数,则必须加入以下代码
class ApplicationController < ActionController::Base
after_filter :fix_unicode_for_safari

# automatically and transparently fiixes utf-8 bug
# with Safari when using xmlhttp
def fix_unicode_for_safari
if @headers["Content-Type"] == "text/html; charset=utf-8" and
@request.env['HTTP_USER_AGENT'].to_s.include? 'AppleWebKit' then
@response.body = @response.body.gsub(/([^\x00-\xa0])/u) { |s| "&#x%x;" % $1.unpack('U')[0] }
end
end

4、另外,可能需要调整数据库的设置能够存储utf-8字符串。

5、必须把rb源文件以及rhtml等模版文件都保存为utf-8格式。
这样你就可以直接在rb源文件里输入中文了。
=======================================================
这个方法要求从头到尾都是UTF-8.
首先、网页需要UTF-8编码。
其次,rhtml,rxml,rb文件都需要保存为utf-8 unless 你不用中文字符串。
最后,数据库这一块到似乎不是很强调是不是支持UTF-8。这个我没测试过其他情况。

如果仅仅是处理表单中的中文,Rails本身就没问题的,这个方法主要是能在ruby程序代码里使用中文字符串。
=======================================================
我按照这些方法都作了,mysql 用的Utf8编码,为什么我输入吃这个字是乱码呢?
我解决了,其实最主要是mysql connection 要utf8
我重新设置了一下mysql,就一切ok了
=======================================================
编码的问题确实很烦的。
最近就碰到一个比较妖怪的问题,醒来也一起帮我调试了半天。

一套程序,在我的开发机器上,Rails 0.13+WebRick+mySql的情况下,在FireFox和IE里AJAX部分都能够正常运行,但是发布到Linux服务器上,使用Apache+CGI的情况下,在IE下却出现任何Ajax的请求都能发送,而响应内容去无法update到某个div,一直报"Javascript系统错误"。这个问题我们想了很多原因,一一尝试后都一无所获。

后来觉得是编码的问题,于是把所有的rhtml文件都转换为UTF-8编码,发现仍然是老问题。比较郁闷的时候,看醒来用httplook抓的Http Header,发现怎么不是utf-8,然后又去查看那几个ajax请求的action,发现在IE里他们都是GB2312,突然想起来服务器的Apache默认charset是GB2312,而我忘记在application.rb里强制设置charset为utf-8了,于是那些有layout的action都按照layout里判断出charset为utf-8,而ajax请求的action都是不使用layout的,于是charset就变成了Apache默认的GB2312。而IE似乎是不允许把两种编码的内容混合在一起的,于是就出现错误了。
===========================================================
听说需要在config/environment.rb里加上一行:
$KCODE = ‘utf8′

估计跟楼主的
“1、首先,我们需要在public/dispatch.cgi文件的#!/path/to/ruby后面加上-Ku -rjcode ”
差不多吧?

另外,最好在database.yml里加上 encoding: utf8
===========================================================


Pages: Prev 1 2 3