Archive for April, 2008

在 Rails 中用 1and1.com 的邮件服务器发邮件

Monday, April 28th, 2008

之前提到用 Google Apps 提供的邮件服务有每个帐户每天 500 封的限制,有个 tricky 的解决办法是设 100 个帐户在程序中轮训发送,这样一天最多可以发 50000 封。

不过的确没想到在 Rails 中的好办法,只是想可以在 Google Appps 中设置 no-reply1@your-domain.comno-reply100@your-domain.com 这 100 个帐户,在 Rails 项目中设置一个全局量,1-100 循环用来决定发送邮件的帐户,然后在发送邮件的时候修改 ActionMailer::Base.smtp_settings 里面的相应属性。

哪位有更好的方法给提个醒 ;)

后来发现我们在 1and1.com 上面的帐户有 SMTP 的功能,于是乎添加一个 email account,SMTP  相应的设置为:

url: smtp.1and1.com
port: 25
username: your email address
password: your password
可以不开启 SSL

在 Rails 项目的 environment.rb 中设置:

ActionMailer::Base.smtp_settings = {
:address => “smtp.1and1.com”,
:domain  => “1and1.com”,
:port => 25,
:authentication => :login,
:user_name => “no-reply@1kg.cn”,
:password => ‘1000g1000g’
}

发现不灵,发送不成功!Google 后在一篇文章中有看到用 ruby 的 net/smtp 发邮件的例子,用到的是 1and1.co.uk 的 SMTP,想来应该差不多。

看代码注意到 Net::SMTP.start 中有一个参数为 ‘1and1.co.uk’,这个应该是 SMTP 所在的 domain,在 Class::Net::SMTP 的文档中看到这个参数叫做 HELP domain(具体的含义参考 RFC2822

照搬到 Rails 的设置中,给 ActionMailer::Base.smtp_settings 添加一个参数 :domain => 1and1.com 再试,果然发送成功。

[OLPC系列介绍] Journal activity

Monday, April 14th, 2008

OLPC 中使用最多的 activity 应该要数 Journal,它并不是让小朋友自己写日记的(那个要用 Write activity),而是记录用户的真个使用过程的,可以记录用户使用过哪些 activity,通过 activity 做了什么。从技术角度上 Journal 是一个 daemon,启动时会自动跑起来,并且在整个 OLPC 开机状态下它都呆在任务栏里,在后台记录着用户行为。

Journal 针对不同用户的目的:

  1. 学生:组织、回顾自己的使用过程
  2. 老师:跟踪学生的使用情况

Journal 的功能:

  1. 记录项目文件(用户对 Activity 的操作,通过 Record 拍的照片,下载的文件)
  2. 浏览U盘内容
  3. 备份到 School Server

Journal 对每项操作记录为一个条目,每个条目由7个部分组成:星按钮(用户可以标记星号,类似 Gmail)、条目图标(一般就是 Activity 的图标)、条目名称、朋友列表(与其它 OLPC 一同使用某个 activity 时)、描述、Tag、恢复按钮

Journal 记录的所有数据保存在 /home/olpc/.sugar/default/datastore/store 中,不过所有的文件名都是 hash 过的,想找对应的条目只能通过日期了。

官方引用:

OLPC Wiki 上关于 Journal 的介绍

读博客

Thursday, April 10th, 2008

不知从什么时候开始,读博客成了每日工作,一来保持对圈里大事小事的敏感,二来窥探他人隐私,毕竟很多朋友平时联系并不多,要是一年半载不联系,见了面都不知从何聊起。看百八十的博客自然只能用 RSS 订阅,我从 Bloglines(丢了我一次 Feed,不能忍) 转到 抓虾(Feed 多了太慢),再到 Google Reader(爽,有手机版)。

用 RSS 订阅以来一直有一点很不爽,就是添加 feed 以后,只有最新的几篇,以前的很多好文章确不容易看到,所以我一直很喜欢一个博客中的“相关文章”功能,作为延伸阅读。前天在一次近乎通宵之后,早上7点半刚眯了一会,儿子饿了开始哭闹,起来弄奶喂他,之后自己也没有睡意了,突然有了读博的念头。

于是乎打开石锅拌饭,从第一篇读到最后一篇,收获颇丰,岂是一个爽字了得。作为旁观者,从 Robin 十年 IT 历程感受到了不少东西,崇敬之情油然而生,另外也过足了“偷窥”隐,这样的习惯要是常年坚持,估计也能在国安局做份兼职。

说到与 Robin 的相识也是一个奇妙之旅,起初就是看着他和 Livid 的 Blog 成为水果组,后面又在 Gtalk 上请教 Rails 问题,到后来在聚会上见面,没想到我们之间还有几位都认识的朋友(切身体会六度理论)。

现在 Robin 的 Blog 写的比较少了,但是越来越好看了。最后祝他们的财帮子越来越好(我非常非常看好 ^^)。

给 OLPC 安装中文输入法

Sunday, April 6th, 2008

默认情况下连显示中文都不可以,就更别说输入中文了,显示通过安装文泉驿正黑体搞定,输入法一开始安装了 Gcin,但那貌似是给台湾设计的,对我来说不可用。于是乎还是安装熟悉的 SCIM,通过 yum 可以几步搞定,换到 root 用户在 terminal 下面进行:

yum install scim scim-gtk
yum install scim-pinyin

然后编辑 /home/olpc/.xsession:

export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE=scim
export USE_XOPENIM=t
scim -d

Ctrl+Alt+Eraser 重启界面,到 Browse 下面测试,效果如图

有两篇文章可以参考:Wiki 上面的 SCIM#Simplified_Chinese 还有 OLPC in Chinese

OLPC 连接 WiFi 要注意

Sunday, April 6th, 2008

第一天拿回来 OLPC 的时候连 FON AP 好的很,后来就再也连不上了。一开始以为自己改了什么系统设置,仔细回忆只是字体、界面语言、装了 Gcin, SimCity, Opera 而已,不会有这么离谱的后果。之后就觉得 FON AP 不靠谱。

今天仍然连不上,终于在 OLPC Wiki 上面找到 Wifi Troubleshooting Guide,发现 OLPC 只能使用 Channel 1,6,11 上面的信号,而我的 AP 设为了自动 Channel,也就是每次随机。于是乎登录 AP 的控制面板,将 Channel 锁定为11,重新用 OLPC 连接,搞定!

帮 OLPC 做中文翻译

Saturday, April 5th, 2008

OLPC 默认为英语,但是内置了 gettext 做 i18n(国际化)处理,所以我们只要拿到自己需要的语言的 .po 文件就可以了。

重要的是您还可以加入翻译志愿者的行列,尽快让 OLPC 全中文化。而且很简单,可以通过 OLPC 的在线协作翻译系统 Pootle 进行,方法可以参考 Wiki 上的文章,Bob Chao 也有 slides 介绍这个。不过我加入以后在翻译 xo-core 的时候每次提交都是 bad gateway,不知何故。所有的项目基本都有了不同程度的翻译。

翻译之后的验证方法可以参考 WiKi 上的文章(Localization/Testing)

我在 XO 上面测试了一下 sugar.po,奇怪的是今天死活连不上我那 FON AP,这东西很不靠谱阿,无奈只能用其它电脑下载之后用U盘拷到 XO 上:

  1. 下载 .po 文件包:https://dev.laptop.org/translate/zh_CN/xo_core/
  2. 将压缩包里面的 sugar.po 放入U盘插到 XO 上,自动识别,路径在 /media/{U盘的名字}
  3. su - 切到 root 用户
  4. 将 sugar.po 拷贝到 /boot 下面
  5. msgfmt -o /usr/share/locale/zh_CN/LC_MESSAGES/sugar.mo sugar.po 编译 .po 文件
  6. Ctrl + Alt + Eraser 重启 Sugar 界面
  7. 搞定