2007-08-02

mod_rewrite

URLからCGIのファイル名を隠す

Alias使ってたりするとRewriteBaseの指定も必要。

はまったー。

Posted at 02:21 in | WriteBacks (0) | Edit

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でのはなしです。

Posted at 01:43 in | WriteBacks (0) | Edit

2007-07-08

携帯からdigg

diggの携帯バージョンdiggriverでdiggできるようになったけど動かず

ああ確かに携帯からフルブラウザ無しで見れれば便利だなあと思ったので見れるようにしましたDigg APIとGoogleの携帯用変換エンジン(?)を 使って、http://www.foo.com/ → http://www.google.com/gwt/n?u=http://www.foo.com/みたいな感じでリンク先URLをちょっといじっただけ。

GoogleのほうはAPIとして公開してないっぽいので文句言われるかもですが、そんときはPC向けページ→携帯向けページの変換を自分でやるだけ。面倒くさいからやりたくないけど。

Posted at 20:37 in | WriteBacks (0) | Edit

2007-06-28

* bash: ヒストリのインクリメンタルサーチ

Digg経由

ここで、bashのショートカットを10個紹介してたんだけど、その中でヒストリのインクリメンタルサーチ機能ってのがあって、これが結構便利。

使いかたは、コマンドラインから「Ctrl+r」。すると、プロンプトが↓のように変わり、

(reverse-i-search)`':

文字を入力するとヒストリを検索してくれる。一致する履歴が複数ある場合は、「Ctrl+r」で次の候補に移動してくれる。いつもは、.bashrcで「set -o vi」として、エスケープキーを押してからviライクなヒストリ検索をしていたけど、こっちの方が断然早い。知らなかった。これはいいかも。

Posted at 02:03 in | WriteBacks (0) | Edit

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同様、時間のある時にちまちま書いていきたいと思います。

Posted at 21:39 in | WriteBacks (0) | Edit