2007-08-02
2007-08-01
プロンプト(PS1)の設定
最初のころは、シンプルに
export PS1="\u@\h:\w$ "
少しして色もつけだし、
export PS1="\[\033[33m\]\u@\h:\w$\[\033[1;37m\] "
時間とか表示してみたりして、
export PS1="\[\033[33m\]\u@\h(\t):\w$\[\033[1;37m\] "
sudo使うからユーザ名はいらねえと思い、
export PS1="\[\033[33m\]\h(\t):\w$\[\033[1;37m\] "
時間の表示はわずらわしいだけと気付き、
export PS1="\[\033[33m\]\h:\w$\[\033[1;37m\] "
コマンドの戻り値表示が便利だと教えてもらい、今にいたります。
export PS1="\[\033[33m\]\h(\$?):\w$\[\033[1;37m\] "
あ、ちなみにbashでのはなしです。
2007-07-08
携帯からdigg
ああ確かに携帯からフルブラウザ無しで見れれば便利だなあと思ったので見れるようにしました。Digg APIとGoogleの携帯用変換エンジン(?)を 使って、http://www.foo.com/ → http://www.google.com/gwt/n?u=http://www.foo.com/みたいな感じでリンク先URLをちょっといじっただけ。
GoogleのほうはAPIとして公開してないっぽいので文句言われるかもですが、そんときはPC向けページ→携帯向けページの変換を自分でやるだけ。面倒くさいからやりたくないけど。
2007-06-28
* bash: ヒストリのインクリメンタルサーチ
ここで、bashのショートカットを10個紹介してたんだけど、その中でヒストリのインクリメンタルサーチ機能ってのがあって、これが結構便利。
使いかたは、コマンドラインから「Ctrl+r」。すると、プロンプトが↓のように変わり、
(reverse-i-search)`':
文字を入力するとヒストリを検索してくれる。一致する履歴が複数ある場合は、「Ctrl+r」で次の候補に移動してくれる。いつもは、.bashrcで「set -o vi」として、エスケープキーを押してからviライクなヒストリ検索をしていたけど、こっちの方が断然早い。知らなかった。これはいいかも。
2007-06-21
Haskellをはじめる。
Haskellをやることにした。誤った記述があるかも(ry
まずはHaskellの処理系であるGHC(Glasgow Haskell Compiler)のインストール。(他の処理系もいくつかあるようです。)公式サイトにバイナリが用意されてたので、ダウンロードして./configure、make install をたたいただけ。あー、らくちん。
次、このページを見ながら実際にコードを書いてみる。
GHCはインタプリタ(ghci)とコンパイラ(ghc)がついてるみたい。まずはコマンドラインから「ghci」と打ってインタプリタを起動。
Prelude>
こういうプロンプトが出る。hello worldから。
Prelude> "Hello, World!" "Hello, World!"
Haskellでは文字列を評価すると画面に結果を出力する。とのこと。
Prelude> putStrLn "Hello, World!" "Hello, World!"
明示的に出力することも出来るよ!の例。
お次はコンパイラ
main = putStrLn "Hello, World!"って内容のファイルを作成しコンパイルする。あ、ファイル名はhello.hs。
ghc -o hello hello.hs
すると、helloって名前のバイナリが出来てる。これを実行すれば、「Hello, World!」って出力が得られる。
最後に関数の定義。ghciから
Prelude>let fac n = if n == 0 then 1 else n * fac(n-1)
与えられた数値の階乗を計算する関数ね。↓こんな感じで使う。
Prelude> fac 1 1 Prelude> fac 2 2 Prelude> fac 3 6 Prelude> fac 4 24 Prelude> fac 5 120 Prelude> fac 40 815915283247897734345611269596115894272000000000
コンパイルする場合は、let無しでこんな風に書けるよ。
fac 0 = 1 fac n = n * fac (n-1) main = print (fac 10)
感想
想像ほど難解ってわけでもなさそう。JavaScriptを少しでもやっていたのが良かったのかな。Ruby同様、時間のある時にちまちま書いていきたいと思います。