2009/03/21

spaces haskell

SoftwareDesign の 4 月号に Haskell の入門が書かれています
Software Design 2009年 04月号 <- これ
関数型への憧れ? もあるので読んでみているんだけど誤植が大目かも

P.137 の
combine n l = rjust 6 ++ ": " ++ l

は多分
combine n l = rjust 6 (show n) ++ ": " ++ l

の間違い

本文中に
show n は整数を文字列に変換

とヒントが書かれてたから分かったので良かったです

「spaces haskell」とか「take haskell」とか検索したら Haskell のリファレンスが出てきて
ちゃんとリファレンス読んで理解もできたので理解が進んで良かった

でもなー、Haskell で何作れるんだろうなぁ、みな何作ってるんだろうなぁ
ふつうのHaskell買っちゃおうかなぁ

emacs color dark

Emacs の色がどうも決まらなくって見辛いなと思ってまして
モードによって色変えてくれるとどこで設定してるのか良く分からないし

そういえば背景が暗いか明るいか教える設定があったような気もしたので
ググってみるかと思って「emacs color dark」ってしたら
プレゼン用にEmacsの色合いを変える方法ってページが見付かりました
color-theme.el で color-theme-dark-laptop を選んでらっしゃいます

ん〜、これいいかな、これにしちゃおうかな

nexenta jaris

OpenSolaris が気になっていて
ZFS が素敵そうだからというのも理由なんだけど
学生の頃に x86 版が出たりしたのに使わなかったりして
憧れっていうのもあります

バイトの同僚が研究で Solaris 使わないといけなくて
一生懸命ノートに入れて X を build してたのを見たりして
何だか大変そうだなぁという印象だけ持っていたんだけど
ネットワークアダプタが 3Com の PCMCIA じゃないとダメだとか

それが今じゃノートには Wifi 付いてくるし
OpenSolaris は Gnome だし
っていうか GUI じゃないとインストールできないの??
まぁ何か色々時代が進んでるんで手が出せるかもと思ってるんですが

OpenSolaris からの派生も幾つも出ているみたいで
userland に Ubuntu を採用してるっぽいのらしい Nexenta とか
日本発だとかいう Jaris とか
更に検索したら2ちゃんねるがひっかかって
OpenSolaris総合スレッド その2
何だか他にも沢山派生 distribution があるみたい、リンク切れもあるけど

Linux と比べてしまうとハードウェアの対応はまだ遅いみたいなので
それなりに枯れてるかそれなりに有名なとこのマシンでないとダメみたいで
今さら USB Wifi をノートに挿してまで使いたくないな、とか
ハイバネーションは要らないからサスペンドくらいはさせたいなとか
そんなこと思うと Linux を結局使ってしまうことになりそうで悲しかったです

2009/03/19

Railsレシピブック

Rails の断片的な知識ばかり溜まっていっていて少し困っています
このままでは良いものは作れないかなと思ったので
本でも買って Rails の文化的なものから学びたいと思いました

で、「レシピが良いよ」と言われてたのでググってみたら
Railsレシピブック 183の技ってのがひっかかって確かに良さそう
更に一緒に買われてるRuby on Rails 逆引きクイックリファレンス
昨日検索でみつけたプレゼンしてる人が著者だし
でも 2 冊とも買うとなぁ〜、読まなさそうだなぁ〜

2009/03/18

単一テーブル継承って何ですか

RDBMS でテーブルを継承みたいなことってできないの?
何か別テーブル用意して参照すればいいわけ? って思ってたんですが
とりあえず Rails は良い方法が用意されてるに違いないと思い
"rails orマッピング" みたいのでググってみたところ
「単一テーブル継承」ってのが見つかりました

継承関係にあるようなもの全部テーブルに入れてしまって
type って column を用意しといてそこにサブクラスの名前書いといて
別途サブクラスも用意しといてあげるとハッピーってことみたい
おぉ、これだ、これで解決する気がする

で、そのもの "単一テーブル継承" で検索したら素敵なページが沢山出てきましたが
気をとりなおして "rails orマッピング 継承" で検索したところ
ぷっちん日記 11/26セミナー資料を発見
Rails ステップアップ講座と題して素敵情報満載でした
ありがとう Google 先生

2009/03/17

Rails の 2.3 が出たらしいので

手元で作ってみてる Rails のアプリを対応させようとしたら動かないじゃないの
ググってみたら
$ rake rails:update

とかしてみるのだということを先ず知る
そーかー、アプリをアップグレードできるのかー、って感じ
でもやっぱダメ

エラーコードとかでググっても良く分からないしどうしようと思うこと結構な時間
良〜くエラーコード読んでみたら locale 関係っぽかった
のでググったら
Ruby-GetText-Pacakge on Ruby on Rails-2.3.0 RC2
そうか、これ使ってたんだった!

というわけで git 入れて言われるがままに環境整えたらちゃんと動いた
エラーコードはちゃんと読まないとダメっすね、反省

2009/03/16

google-code-prettify.googlecode.com を導入してみた

ソースコードを貼ることもありましょう、ということで
どうしたら皆様綺麗に表示なさってるのかしらと思ったら
JavaScript を使って parse して色を付けていらっしゃるんですね
やっぱり JavaScript 喋れないと色々不便な世の中になっている気がする

で、もう少し調べたら google-code-prettify.googlecode.com というのがあるらしい
Blogger だし、google とか付いてるし、ということで採用
http://google-code-prettify.googlecode.com/
"google-code-prettify blogger" で検索すると皆さま使っていらっしゃる
で、まぁ、要するに js 1 つと css 1 つ読み込んで onload で修飾できるみたいなので
http://google-code-prettify.googlecode.com/svn/trunk/src/
ここにあるのを直接リンクしてしまうことに
ほんとはテンプレートに貼り付けてやった方がいいんだろうけど怠慢する

  <head>
<link href='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css' rel='stylesheet' type='text/css'/>
<script src='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js' type='text/javascript'/>
</head>


    <body onload="prettyPrint()">

みたいな感じ。

def birthday (n):
m=1.0
for i in xrange(1,n):
m = m * (n-i+1) / n
if 1 - m > 0.5:
return i

if __name__ == "__main__":
print birthday(365)

ん〜、インデントが要るなぁ

urxvt (rxvt-unicode) に乗り換えた

何となく mlterm から urxvt に乗り換え
最近フォントは M+ FONTS の 12pt の bitmap なのでフォントは確定
rxvt は xrdb で設定するので ~/.Xresources をいじることになる

とりあえず urxvt でググったら十分な情報が出てきたので
辺りを眺めて必要そうな設定を把握して
URxvt*foreground: #f9f9ff
URxvt*background: darkslategray
URxvt*saveLines: 20000
URxvt*termName: rxvt-256color
URxvt*font: -mplus-gothic-medium-r-normal--12-120-75-75-c-120-jisx0208.1983-0,-mplus-gothic-medium-r-normal--12-120-75-75-c-120-jisx0208.1990-0,-mplus-gothic-medium-r-\
normal--12-120-75-75-c-60-iso8859-1,-mplus-gothic-medium-r-normal--12-120-75-75-c-60-jisx0201.1976-0
URxvt*bold: -mplus-gothic-bold-r-normal--12-120-75-75-c-120-jisx0208.1983-0,-mplus-gothic-bold-r-normal--12-120-75-75-c-120-jisx0208.1990-0,-mplus-gothic-bold-r-normal\
--12-120-75-75-c-60-iso8859-1,-mplus-gothic-bold-r-normal--12-120-75-75-c-60-jisx0201.1976-0
URxvt*inputMethod: uim
URxvt*modifier: alt
URxvt*meta8: false
URxvt*iso14755_52: false
URxvt*cursorColor: pink
URxvt*color0: #000000
URxvt*color1: #CD0000
URxvt*color2: #00CD00
URxvt*color3: #CDCD00
URxvt*color4: #1E90FF
URxvt*color5: #CD00CD
URxvt*color6: #00CDCD
URxvt*color7: #E5E5E5
URxvt*color8: #4C4C4C
URxvt*color9: #FF0000
URxvt*color10: #00FF00
URxvt*color11: #FFFF00
URxvt*color12: #4682B4
URxvt*color13: #FF00FF
URxvt*color14: #00FFFF
URxvt*color15: #FFFFFF
こんな設定にしてみた
ポイントはカーソルの色な気がする
見辛い色がある気がするので修正しないとなんだけどそれはぼちぼち
日本語も打てるし半角カナも何か違うフォント使われてる気がするけど出てくる

あと screen の色の設定を少しいじる必要があったので
hardstatus alwayslastline "%{=r dw}%-w%{=b wr}%n %t%{=r dw}%+w%=%l %{=br dw}%Y/%m/%d %c"

こんな感じに

これで、間違って大量の出力が標準出力に流れても一瞬で終わるかしら