Archive for March, 2011

ArchLinux, RVM, Ruby, Rails, Nginx, Passenger and You

没看错,就是ArchLinux,怎么,又回来了?其实我一直未曾离开…… i

好了不矫情了,let’s do business.

[Overview]
本文介绍如何在archlinux上快速搭建rails开发环境,其中有很多可能包括我个人的preferences,各位完全可以根据自行需要取舍。

[ArchLinux]
参照Arch自己的 Official Install Guide ii 安装,其实根本不用参照,整个安装wizard做的已经非常非常user friendly了,我觉得。

[RVM]
RVM 的安装依赖 git 和 curl:

$ sudo pacman -S git curl

装之:

$ bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

注意没有sudo,符合homebrew的philosophy,尽量不要root,何况我们还是作为development环境,rvm官网好像现在已经没有倾向性了,不过我印象中以前也是倾向于装在user的home目录。
Continue reading →

[Footnotes]
  1. 我有一个arch的liveusb,各种机子上一直保存着至少2+个arch的vm,虽然后来由于太占空间被转移到了移动硬盘,可就是一直舍不得删 []
  2. 最近老是official, official的… 你懂的 []

samsonw.info refreshed

Yep, it’s refreshed and really officially launched i, http://samsonw.info/ .

As you may already noticed, the content is simply copied from the about page here, which should be sufficient to prove that I’m really good at ctrl+c & ctrl+v, oh sorry, should be cmd+c & cmd+v …

[Footnotes]
  1. if you’re still interested in the old one, check out http://samsonw.info/backup . []

What’s New in Firefox 4 (Part 3)

all right, go on. 接上篇上上篇 . 这俨然已经全然变成了一个体力活…… anyway, let’s finish it.

· An experimental API is included to provide more efficient Javascript animations

看到experimental,然后点进去看到 “We do not guarantee to support it forever, and I wouldn’t evangelize sites to depend on it.” 我就一下子没了兴趣,当然你如果有兴趣完全可以深入研究一番。

· Firefox now supports the HTML5 video “buffered” property

HTML5 video的“buffered”属性,注意打了引号,我起初以为是video标签开始支持buferred这个attribute,但是我特地查看了下 这个demo ,却根本没有发现buffered这个attribute,于是我就开始confuse了,算了还是引用它自己的intro吧,“This is cool because we can now accurately determine which time-segments of a video we can play and seek into without needing to pause playback to download more data.”

· Changes to how XPCOM components are registered in order to help startup time and process separation

No more frozen interfaces!
Continue reading →

What’s New in Firefox 4 (Part 2)

ok, 继续,接上篇 .

· You can turn any tab into an “App Tab” by right-clicking on it and selecting “Make into App Tab” from the context menu

蛮fancy的应用,fancy就fancy在人家safari,chrome,opera,IE不支持,fancy就fancy在也实用不到哪去,暂且就认为只是为了省空间吧,还只是视觉空间,说不定还多搞你点存储空间复杂度,空间换空间?好的.

· The default homepage design has been refreshed

自从用了 speed dial 之后,我已经不知道 homepage 张啥样好多年……

· Overhaul of the bookmarks and history code, enabling faster bookmarking and startup performance

nice code refactor, 一个字,为了速度,汗,好像是两个字……
Continue reading →

What’s New in Firefox 4 (Part 1)

标题看起来非常official,实际上就是很official… 因为咱是从mozilla的 official site 拷过来的…… 本来昨天就想拷的,结果事情实在太多,只好拖到现在,虽然有点out了不过也无妨,因为彼时彼刻,恰如此时此刻~

Firefox 4 is based on the Gecko 2.0 Web platform. This release features JavaScript execution speeds up to six times faster than the previous version, new capabilities for Web Developers and Add-on Developers such as hardware accelerated graphics and HTML5 technologies, and a completely revised user interface.

Firefox每次minor版本的更新都伴随着其内核 Gecko版本的更新 i,这次major版本更新,Gecko也索性来个大版本号,步调要一致,不然要扯着蛋,嗯…
我不知道你,反正我打开FF4的第一反应是快ii,这个跟6倍速 javascript 性能提升不无关系,当然肯定还有UI的优化,不像以前点个按钮给我个圈圈让我等,上了个厕所倒了杯水回来还是那个圈圈在那欢快的转…… 另外硬件加速,html5什么的我们下面应该会有具体细则,这里只是暂行条例,只是个大方向,详细的征收细则还需要之后由地方政府提供.
Continue reading →

[Footnotes]
  1. 话说回来,浏览器不更新这个还更新什么 []
  2. 注意,不是指初次启动速度,这个貌似还是painfully slow…… []

Update 53: 流氓会武术

1. 好久不update,因为一直觉得没点劲爆的update好像很对不起大家,与其耐着性子在这看这小子废话,还不如找个MM聊天(不是吗?),再不济坐着发呆也不失为一种精神享受;就看你比较注重物质还是精神了,本质上并没有大蒜和咖啡之类的高雅低俗之分;

2. 今天的标题似乎略微有点指桑骂槐的意味,其实我也断然可以明着来,但中国的传统文化教导男人要稳重,要隐忍,所以咱不得不暂时来点含蓄的;如果你正在阅读本update,说明你并不是标题中所指的流氓,相信我,因为我字典里面的流氓只是会点武术…而已,他们从来不会看我废话;

3. 但是这个世界上的流氓毕竟还是少数的,犹如搞艺术只是为了搞姑娘的毕竟还只是极少数,更多的是一群可爱的人,一群正直诚信,即便现在还很渺小,外人看来默默无闻但却有大梦想大智慧和无限未来的可爱的人,譬如正在看本update的你;我一直很信奉老罗那句今生降临注定改变世界的名言,我相信我已经重复到嘴都要臭了(即便我每天刷牙),这个世界已经有了很多虚伪的流氓,不得不说他们确实正在让这个世界变的更加恶心一点点,也许有了点武术,还真是挡不住了……

4. 不多说了,已经说了很多,我基本已经平衡了,朋友告诉我犯不着为了这些人搞差心情,我觉得很有道理;虽然我已经被他们搞坏了一整上午加上将近一整下午的心情,而且还极有可能搞坏我这一周的心情……

Terminal.app echo breaks after ctrl-c

基本的症状和 这里描述的问题 如出一辙,我也是 tail -f log/development.log 后出的问题,同道中人啊,提问者自己提供了两种解决方法(自问自答?):

$ stty echo

上面这个确实work,cool!

$ irb

货真价实的rubist,还想的出来这样的解决办法,不错不错,我也试了下,很遗憾在我这并不work…

底下的评论以及种种迹象表面这并不是mac自带的老版本bash的bug,而是一个bash-completion的bug,所以另外一个很make sense的solution就是更新bash-completion,我个人比较prefer这个solution,当然你也可以用macports安装最新版本的bash替换系统自带的bash,喜欢折腾的尽管上。

$ sudo port -v selfupdate
$ sudo port install bash-completion

verify一下,active的是1.3的bash-completion就算大功告成了。

$ port installed | grep bash-comp
  bash-completion @1.1_6
  bash-completion @1.2_0
  bash-completion @1.3_0 (active)

欧内斯特·卢瑟福

以下文字摘自百度百科.

在卢瑟福的悉心培养下,他的学生和助手有多人获得了诺贝尔奖金:

  • 1921年,卢瑟福的助手索迪获诺贝尔化学奖;
  • 1922年,卢瑟福的学生阿斯顿获诺贝尔化学奖;
  • 1922年,卢瑟福的学生玻尔获诺贝尔物理奖;
  • 1927年,卢瑟福的助手威尔逊获诺贝尔物理奖;
  • 1935年,卢瑟福的学生查德威克获诺贝尔物理奖;
  • 1948年,卢瑟福的助手布莱克特获诺贝尔物理奖;
  • 1951年,卢瑟福的学生科克拉夫特和瓦耳顿,共同获得诺贝尔物理奖;
  • 1978年,卢瑟福的学生卡皮茨获诺贝尔物理奖。

有人说,如果世界上设立培养人才的诺贝尔奖金的话,那么卢瑟福是第一号候选人。

但是结局稍显杯具,卢瑟福虽然桃李满天下,但本人却从来没有获得过诺贝尔物理奖i;上帝在赋予其睿智的头脑的同时也给与了其一个令人沮丧的名字,看来上帝还是公平的,至少从这个角度……

[Footnotes]
  1. 竟然会拿化学奖… orz []

stdout customization

前面介绍完了deployment,接下来该轮到customization了,这个也同样重要。我目前所能想到的需要customize的地方主要有5个地方,都集中在两个文件,并没有想象中的复杂,且听我一一道来:

[page title]

Location: RAILS_ROOT/app/views/layouts/application.html.erb, line 6
<title>$ cat /dev/stdin >> /dev/stdout | tee stdout.samsonw.info</title>

change to whatever text you want.

[header title,sub-title]

Location: RAILS_ROOT/app/views/activities/index.html.erb, line 2, 3
<div id="title" class="grid_24">$ cat /dev/stdin >> /dev/stdout | tee stdout.samsonw.info</div>
<div id="sub_title" class="grid_24">Don't Panic: fatal system error, core dump file not generated ...</div>

change to whatever text you want.
Continue reading →

stdout deployment

首先值得一提的是为了支持HostMonster的fastcgi,我人为copy了几个以raild -D生成的项目结构里面的dispatch文件以及create了一个.htaccess文件,如果你不用fastcgi(通常情况下你不需要,而且也不推荐),你可以简单的删除它们(以下RAILS_ROOT是指rails app的根目录):

RAILS_ROOT/config.ru
RAILS_ROOT/public/dispatch.cgi
RAILS_ROOT/public/dispatch.fcgi
RAILS_ROOT/public/dispatch.rb
RAILS_ROOT/public/.htaccess

[Development Environment]
Assume你的os已经装好ruby,如果没有请自行google,这里不再赘述。

首先update一下rubygems,最近rubygems貌似打了鸡血,更新极其频繁… 且bug具多…如果出了问题建议rollback到1.4.2…
[Note: 由于我使用rvm,所以以下command都没有sudo,根据你的情况你可能需要加上sudo]

$ gem update --system

Continue reading →