2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 04 | 05 | 07 | 12 |
2008 | 03 | 07 | 09 | 10 |
2008-10-01
e-Mobileを買ったもののUSBケーブルでつなぐのがめんどくさいという怠惰な理由から電車の中では使ってないのであった。むしろゼミ中に疑問点をしらべたりWikiにまとめたりといった行動が自由にできるようになったのが大きい。
この日は、OpenSUSEをいれてるP5E-HDMIというマザーボードに8600GTというグラフィックボードを挿してデュアルディスプレイができないかと実験していたのだが、結局うまくいかなかった。
nVidiaの公式ドライバーを入れてグラフィックボード側にディスプレイをつなぐとXが起動しないので
nvidia-xconfig
と言うとxorg.confをよきに書き換えてくれる。この時点でXが起動するが1枚目のディスプレイしか認識しないので
nvidia-settings
ここまではうまくいった。
で、しばらく使ってるとファミコンがいかれたときのような、ノイズがタイル張りになった画面がでてフリーズする。フリーズに先駆けては画面にノイズが走ったりウインドウにごみがこびりついたりし、一度など画面が点滅を続けたままフリーズして、いかにもな「暴走したコンピュータ」状態であった。
まあそれでもいくつかnVidiaのカードでLinuxでマルチディスプレイするときの知見がえられた。
- xinerama というXのマルチディスプレイ機能は使っちゃだめ
- twinview というnVidia製のマルチディスプレイを使うとよい(ただうちの場合は長持ちするだけでやっぱりフリーズする)
- nvidiaのユーティリティはxorg.confもxorg.conf.backupも何回も上書きしてくれるのでバックアップの意味が無いのだが、xorg.conf.nvidia-post にnVidiaのドライバを入れる前の設定が残っている。
もちろん贅沢な画像など必要なく、単にGPGPUが手許でやりたいだけなので、カードが挿さったままオンボードGPUで従来どおりデュアルディスプレイができればそれでいいんだが、なぜか8600GTを挿してアクティブにしておくとオンボード側のHDMI端子から画像がでてこない。HDMI端子は著作権情報とか運んでるらしいからダビング防止のためかたっぽからしか出ないとかあるんだろうか。わからん。
結局ビデオカードははずして以前の状態に逆戻り。
2008-09-05 emobileから日記が書けるか
2008-07-07
■CentOS 5.1 64bit版でCUDAを使えるようにする
にあたって参考にしたもの
■シングルユーザーモード(テキストモードというか、X Window Systemが起動しない状態でCentOSを起動する方法)
http://www.uchida.ac/centos/5/hosoku/system/text_login/index.html
2008-03-29 土曜日
■Kinesis Contoured Keyboard
ドルが安かったので買いました。公式サイトに載ってない情報で判明したことがいくつかあるんで買うかどうか迷ってる人は参考にしてください。
- 送料は60ドル程度
- Qwerty/Dvorak切り替えはマップ領域が2つあるわけじゃなくて、切り替え時に大々的にリマップを上書きしている模様。したがってQwerty->Dvorakと切り替えるとQwerty時に行っていたリマップはすべて失われる。またQwertyに戻しても復活しない。なおマクロは保存される。
- 今年末までにはマッピングを読み書きできるツールを出すつもりらしい
写真のパームレストは付属品ですがPS2/USBアダプタは別売りです。
2008-03-01 土曜日
■[情報]Haskell Hackathon 2008
Haskell Hackathon 2008に参加してきました。結果的に12時間+αで、Template Instantiationが実装できて、関数型言語がどう動いているのかの理解の着実な第一歩を進められたので大満足です。企画&参加の皆様ありがとうございました!
Haskellがどう動いているかについては、調べれば調べるほど驚異のメカニズムであることが判明してきたので、マラソンが始まる前から降参状態といった感じでした。そこでもう何かオリジナルなことをするのは一切あきらめて、実装を通じて学ぶという原点に立ち返り、Implementing functional languages: a tutorial、略してIFLT
http://research.microsoft.com/~simonpj/Papers/pj-lester-book/
を教科書として忠実に実装することにしました。言語はもちろん、効率よく実装できて効率よく学べるHaskellで。
いちおう言っとくとコピペはしてないからね!全部キー打って入力したからね!あと肝心のところが演習問題になってたりするから丸写しじゃ動かないんだからね!!!
成果
http://www.geocities.jp/takascience/iflt.zip
こんなのが動くよ!
cons a b cc cn = cc a b; nil cc cn = cn; head list = list K undefined ; tail list = list K1 undefined ; drop n xs = if n <= 0 then xs else drop (n-1) (tail xs); zip as bs = cons (head as + head bs) (zip (tail as) (tail bs)); fib = (cons 1 (cons 1 (zip fib (tail fib)))); main = head (drop 5 fib);
感想
- String以外に対するパーサをはじめて書いたけどHaskellは型があえばうごくよ!言語であることを改めて実感
- Core言語の文法はtryを一切使わずに書かれていてすごいなあ
- 状態遷移ルールなんで(再帰的let以外)簡単に手続き型言語に直せそうだからやってみたいなあ
- 機会があったらIFLT日本語に訳したいなあ
僕が引っかかったとこ
万に一つ、他の人がIFLTを読んで実装しようとして同じところで引っかかったときヒントになりますように。
many (satisfy isAlphaNum)とかは無限ループに陥る
Parsecの解説 http://www.lab2.kuis.kyoto-u.ac.jp/~hanatani/tmp/Parsec.html より
暗黙の制約として、順列の中のパーサは空の入力に対して成功するべきではありません (例えば、(many (char 'a')) を使ってはいけません)。
なんで空の入力に対して(char 'a')が成功する仕様なん??
仕方が無いのでmany1を使って強行突破。
リストのhead同士が足し算できない
2.6.1節のindirectionを解消するための遷移規則(2.9)は次のような意味。
- primitiveノードを評価しようとした時、引数のどれかがNNumじゃなかったら、計算できない!
- そこで、引数のうちNNumじゃないノードをstackに代入しといて計算してもらう。
- 計算結果がindirectionになってるかもしれないので、primitive関数全体を起動する祖先applicationノードをもういちどdumpにつっこんでおく。
- そうすれば、祖先applicationノードから引数リストが再びstackに構築されたときには、遷移規則(2.8)によりindirectionが解決している。
だもんで、ルール(2.9)でdumpに突っ込むべきなのは一般的に「スタックの一番後ろ(ツリーのいちばん根っこ側)のアドレス1個」です。
2引数以上のプリミティブ関数をつくるときに問題になります。
Boolを実装できない
「Template Instantiationだとcaseはうまいこと実装できないんだ」「ifはうまいこと実装してね」みたいなことが書いてあるのでなんとか自力でやるしかない。ちなみにcaseが作れないとデータ構造が作れないのでリストはconsとnilで表現します。
2項比較演算子 == とかがTrueやFalseを返すようにして、
if c then t else e が c t e になるようにすれば
True x y = x False x y = y main = if 1 + 1 == 2 then 41 else 4971
が動くような気がしますが、これだと
main = (==) (1+1) 2 41 4971
みたく、(==)が4引数関数にされてしまうので動きません。
本来なら限定的パターンマッチを作らんといかんところでしょうがどうせ半端なことするならと、
- (2 + n)引数関数だけど評価済みであることを要求するのは最初の2つの引数だけ
- 最初の2引数が未評価ならルール(2.9)により差し戻す、このときdumpにつっこむのは(2 + n)番目の引数
- 最初の2引数が着てたら部分適用して計算結果(は n 引数関数)を第2引数のぶら下がってたところに捻じ込んでおく
たぐいのプリミティブ関数を用意し、最小の変更で実現できました。

http://www.1url.in/25169
http://www.1url.in/25268
http://www.1url.in/25236
http://www.1url.in/25165
http://www.1url.in/25177
http://www.1url.in/25250
http://www.1url.in/25169
http://www.1url.in/25268
http://www.1url.in/25236
http://www.1url.in/25165
http://www.1url.in/25177
http://www.1url.in/25250
http://www.google.com/notebook/public/00684390687061701472/BDR24IgoQyI2Z650j
http://www.google.com/notebook/public/00684390687061701472/BDSVoIgoQlPTb650j
http://www.google.com/notebook/public/00684390687061701472/BDQ6oIgoQkK-36p0j
http://www.google.com/notebook/public/00684390687061701472/BDR24IgoQheuy650j
http://www.google.com/notebook/public/00684390687061701472/BDQGpIgoQ7tLQ650j
http://www.google.com/notebook/public/00684390687061701472/BDQGpIgoQxYTL650j
http://www.google.com/notebook/public/00684390687061701472/BDQGpIgoQxYTL650j
http://www.google.com/notebook/public/00684390687061701472/BDT3iIgoQqY6I650j
http://www.google.com/notebook/public/00684390687061701472/BDRepIgoQxOeY7J0j
http://www.google.com/notebook/public/00684390687061701472/BDSUCIwoQifTh650j
http://www.google.com/notebook/public/00684390687061701472/BDQ9jIgoQg5KN650j
http://www.google.com/notebook/public/00684390687061701472/BDUThIgoQ7Z6C650j
http://www.1url.in/25315
http://www.1url.in/25317
http://www.1url.in/25377
http://www.1url.in/25292
http://www.1url.in/25350
http://www.1url.in/25366
http://www.bittyurl.com/?04d548
http://www.bittyurl.com/?6f8182
http://www.bittyurl.com/?dabecb
http://www.bittyurl.com/?f972e8
http://www.bittyurl.com/?4ca379
http://www.bittyurl.com/?b0565b
http://www.bittyurl.com/?a2f667
http://www.bittyurl.com/?eb9f79
http://www.bittyurl.com/?b285f0
http://www.bittyurl.com/?02ace2
http://www.bittyurl.com/?a7284e
http://www.bittyurl.com/?468cf3
http://myturl.com/0p1Ip
http://myturl.com/0p1GP
http://myturl.com/0p1HM
http://myturl.com/0p1JO
http://myturl.com/0p1Hi
http://myturl.com/0p1I2
http://myturl.com/0p1E7
http://myturl.com/0p1F5
http://myturl.com/0p1Di
http://myturl.com/0p1Fd
http://myturl.com/0p1Ce
http://myturl.com/0p1Ds
http://shortlink.co.uk/t8o
http://shortlink.co.uk/t7r
http://shortlink.co.uk/t3h
http://shortlink.co.uk/t6j
http://shortlink.co.uk/t8p
http://shortlink.co.uk/t6r
http://tinyurl.com/4mecr9
http://tinyurl.com/5lmfru
http://tinyurl.com/5allvx
http://tinyurl.com/5549v2
http://tinyurl.com/5srl52
http://tinyurl.com/3rv49e
http://geo.ya.com/eltago2/gay-twinks.html
http://geo.ya.com/eltago2/lesbian.html
http://geo.ya.com/eltago2/gay-teen.html
http://geo.ya.com/eltago2/free-tranny-pics.html
http://geo.ya.com/eltago2/free-tranny.html
http://geo.ya.com/eltago2/big-cock-tranny.html
http://banging4i44lu.urllogs.com/
http://flames4siaw46.urllogs.com/
http://hater12j1du.urllogs.com/
http://garden7j01118.urllogs.com/
http://densely032ti6.urllogs.com/
http://farmed49a5r03.urllogs.com/
http://banging4i44lu.urllogs.com/
http://flames4siaw46.urllogs.com/
http://hater12j1du.urllogs.com/
http://garden7j01118.urllogs.com/
http://densely032ti6.urllogs.com/
http://farmed49a5r03.urllogs.com/