2008-08-01から1ヶ月間の記事一覧

GNU Screenを複数人で共有する

GNU screenには複数のターミナルから1つのセッションを共有する機能が付いている。これを使えば作業内容の確認や指導、共同作業が遠隔地から行えるようになる。1. Aさん: screen -S でセッションに名前を付けて起動 2. Aさん: C-a :multiuser onで外部から…

“Lisp as an Alternative to Java”のお題を Scalaで

“Lisp as an Alternative to Java”のお題を Squeak Smalltalk で - Smalltalkのtは小文字です経由 scala勉強中に付き、上記サイトで面白い問題を発見したので早速やってみました。思ったより時間がかかったけど関数脳の良いトレーニングになった気がする。問…

scalaでテーブル出力

リストから表を生成する - kmizuの日記より scala-user MLに投稿されていた問題で、入力: 1, 2, 3, 4, 5, 6, 7 のようなリスト 出力: <table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>4</td> <td>5</td> <td>6</td> </tr> <tr> <td>7</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </table> となるようなプログラムを作成せよというもの(出力はNodeSeqなので出力を整形する…

MACの画面キャプチャ

MAC

Command + shift + 3 全画面キャプチャ(ファイル) Command + shift + 4 一部キャプチャ(ファイル) Ctrl + Command + Shift + 3 全画面キャプチャ(クリップボード) Ctrl + Command + Shift + 4 一部キャプチャ(クリップボード)

screenのウィンドウに名前を付ける

ウィンドウが増えてくるといちいち一つずつ切り替えて行くのも大変だ。 そこで、各ウィンドウに名前を付けてそこにダイレクトで飛べると便利だ。 .screenrc caption always "%{= wk} %-w%{=bu dr}%n %t%{-}%+w %= %{=b wb}%y/%m/%d(%D) %{=b wb}%c" ステータ…

screenを縦に割る(横分割)

横分割に対応したバージョンをインストール $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/screen co screen $ cd screen $ cd src $ ./coufugure $ make $ sudo make install C-a | 横分割 C-a S 縦分割 C-a tab リージョン移動 C-a X カ…

サイズが0のファイル名を表示

ls -al | awk '$5==0 {print $8}'

拡張子を除去

フォルダ内の例えばhogehoge.txt.org => hogehoge.txtのファイル名変換を一度にやる。find *.org -print | sed 's/.org//g' | xargs -t -l1 -iarg mv -f arg.org argなげぇ。。。

scalaのobject

scalaのobjcetって現状だとオーバーライドできないのね。残念。 ProtoUserのメンバとかオーバーライドしたいのに。 一応、将来サポート予定だそうです。

liftのローカライズ

lift内には様々なありもののモジュールがありそれらを使えば例えばユーザー登録の仕組みなどは簡単に作れるのだがそのままだとエラーメッセージなどが英語のままで困る。またサイトを国際化対応で考えているならばエラーメッセージなどは外部ファイルにまと…

Makefileのデバッグ

他人が書いた複雑なMakefileをデバッグするときは次のようにするとシンボルなどのデバッグログが出せて便利。warningはファイル名と行番号も出してくれるぞ。 HOGE = hogege $(info hoge $(HOGE)) $(warning hoge- $(HOGE))出力例: hoge hogege Makefile:6:…

LiftRules.addAroundで追加したaroundがなぜか2度呼ばれる

liftにはaroundと呼ばれるリクエスト処理をハンドルする為の機構が用意されていて、こんなコードで例えばログを残すことができる。と、公式サイトには書いてある。 (参照: http://liftweb.net/index.php/HowTo_hook_into_the_lift%27s_request_processing_cy…