Archive for 8月, 2011

pjax!そういうのもあるのか!

Time to Read

1分

まあようするに pjax をザックリ試しました。

Read the rest of this entry »

 

gem つくったよ~ – rack-session-dbm について

Time to Read

2分

このたび人生で初めて、 RubyGems で皆さんに使っていただける gem を公開いたしました。

rack-session-dbm とは

Rackベースのウェブアプリケーションのセッションを、ファイルベースのDBである SDBM/GDBM に保存するミドルウェアです。

Rackベースのウェブアプリケーションの場合、デフォルトでは Cookie にセッション情報を保存するので(暗号化等は無論できます)、その情報をクライアントのローカルにどうしても持ちたくない場合、かつ、 memcached や ActiveRecordStore などを導入するのが大げさだと思われる場合に利用できるかと思います。要するにカジュアルに、 CookieStore 以外の選択肢を選べます。

使う

Read the rest of this entry »

 

LL Planets に行きました

Time to Read

2分

先日の LL イベント、少し遅れましたが雑感など。大したことは書きません。

全体として JavaScript vs Perl/Python/Ruby/Haskell(?) な雰囲気が一貫していて、おかげで特定のセッションでどうこう、と言う記憶が曖昧になり、何か違うセッションで話した内容が別の所に混ざっているかもしれない。そこはご愛嬌です(優しく指摘してください)。

Read the rest of this entry »

 

Sinatra でネームスペースを実現する

Time to Read

2分

なんか twitter でそういう声があったのでざっくり試したよ。

Read the rest of this entry »

 

byobu をはじめよう

Time to Read

3分

ずっと GNU screen を使ってギ~クを気取りたかったんですが、複雑怪奇な .screenrc などに関するバッドノウハウが怖くて(この辺 zsh 移行とかでも同じようなことが言えそう)何度か挑戦しては挫折していたんです。

でも、ここ数か月ぐらい byobu を導入していて、普通に長いこと使えているし大変快適なので、今回ざっくり紹介してみようかな~とか思います。

byobu とは

Byobu is a Japanese term for decorative, multi-panel screens that serve as folding room dividers. As an open source project, Byobu is an elegant enhancement of the otherwise functional, plain, practical GNU Screen. Byobu includes an enhanced profile and configuration utilities for the GNU screen window manager, such as toggle-able system status notifications.

超拙訳すると:

Byobu は、日本語で、装飾的な複数枚組の “screen” で、折りたたみ可能な部屋の間仕切りとしての機能を持っています。オープンソースプロジェクトの一つとしては、「Byobu」は単独でも機能的で、単純で、実践的ではある GNU Screen の、エレガントな機能強化のことです。 Byobu は、 GNU screen の強化されたプロフィールと、設定のユーティリティを含みます。例えば切り替え可能なシステムステータスの通知機能などです。

ある意味全然ジャンルが違うんですけど Sinatra に対する Padrino framework のようなものかもしれません。

いきなり使おう

Ubuntu Japanese Team の @_hito_ さんによる素晴らしいチュートリアルがあるんですが、若干コマンドなどが古いです。一緒に、 screenからbyobuへ移行しようとしてわかったことと、一旦保留した理由 に目を通すことをおすすめします。一応最新の Ubuntu 11.04 natty では以下のような感じになります。

まずはインストール。

1
sudo apt-get install byobu

すぐ使えます。無料です(OSS ですし)。

1
byobu

無設定で screen とだけ打ってみると、違いがはっきり分かると思います。単品の screen は、最初に英語の長ったらしい説明が出るだけで、初期状態ではただ bash プロセスを新たに立ち上げたのと変わらない感じがします。 byobu は、最初からいきなりステータスとかが出てテンションが上がりますね。あ、上がりませんか……。

他は、基本的に screen と同様なキーバインドです。エスケープシーケンスとして、多分初期状態では Ctrl-A になってるとおもいますが、これだと普通に bash 上で不便なので、変更したいです。

1
byobu-config

日本語リミックスだとこの辺もきっちり日本語化されています、すごい……。※ 環境によってはやや表示が崩れるかもしれません。

「エスケープシーケンスの変更」もしくはそれっぽい項目を選べば簡単に変更可能ですね。

僕とかはたいてい「Ctrl-]」にしています。ただ、 telnet を使う時などには不便ですが……。

他にも色々設定できます。「ステータス通知の切り替え」とか変えてみてもいいでしょう。むろん、 ~/.screenrc での変更も反映されます。でも、別に byobu のデフォルトであまり困った感じがしないので、僕の ~/.screenrc はまっさらに近いです。

1
2
3
4
5
6
$ cat ~/.screenrc 
escape ^]^]
zombie ^[
 
bind , prev
bind . next

これだけ。また、 byobu-config での変更はどうも ~/.byobu 以下に保存されるようですが、自分で直接ファイルをいじらないほうがいいと思います。

あと、リモートサーバなら「ログイン時に起動」をオンにしたいところです。作業途中でもデタッチできるし圧倒的に便利です。ビバ screen/byobu !

byobu を byobu っぽく使う最低限のコマンド

これぐらいを覚えておけばいいでしょう、 [<エスケープシーケンス> + ?] でヘルプも出ますし、チートシートもそこら中転がっています。

キ~バインド 起こること 覚え方
[<エスケープシーケンス> + c,^c] 新しいタブを作成 “c”reate
[<エスケープシーケンス> + k,K] タブを閉じる “k”ill
[<エスケープシーケンス> + A] タブのタイトル変更 t”A”itoru(?)
[<エスケープシーケンス> + S] ウィンドウ分割(水平) “S”plit
[<エスケープシーケンス> + |] ウィンドウ分割(垂直) | の形
[<エスケープシーケンス> + <Tab>] 分割されたウィンドウを移動
[<エスケープシーケンス> + X] 分割されたウィンドウを閉じる X ボタン
[<エスケープシーケンス> + p,^p] 前のタブへ “p”rev
[<エスケープシーケンス> + n,^n] 次のタブへ “n”ext
[<エスケープシーケンス> + <数字>] その数字のタブへ
[<エスケープシーケンス> + d] デタッチ(一時的にscreenを閉じる、すぐに戻る) “d”etach

Debian その他なあなたは

Debian では、 squeeze 以降でないと標準のリポジトリからインストールできません。アップグレードの理由がまた一つ増えましたね!

yum コマンドが好きな方も、標準ではインストールできないとはいえ Launchpad などにそれらしい情報があるようです。

* * *

byobu は Ubuntu から出てきたナイスなものの一つだと思います。でも、上述のように Debian では squeeze でようやく普通に使えるようになったりとかまだまだ普及してない感じなので、もっと広まるといいなあと思って書きました。

更なるカスタマイズ道を進みたい方は、以下の記事が参考になる可能性もあります。僕は、下の記事を読んで「byobu プロジェクトが誕生して本当によかった!」 って思いました。

まあ、 GNU screen は人気のあるソフトウェアなので日本語情報も沢山あると思います……(続きは Google で!)。