free as in air

2007|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|09|11|12|
2012|03|04|05|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|06|09|
トップ 最新 /追記

2013-02-10 [長年日記] この日を編集

§ [book] ジュラシックパーク2 ロスト・ワールド

 読んだというか、再読。3回目かな。

 1より訳が平素で読みやすいし、たぶん1より薄い。初期のクライトンの訳本は文がみっしりしてて暑苦しかったけど、それもないし。

 イーガン的なサイバースペースを真っ向から否定するような部分も出てくるけど、イーガンも多様性は担保してるよね。どっちかというとネット批判にかこつけたマスコミ批判的な気もする。

 しかしカオス理論も前世紀が全盛期だったしなー。

お名前 : コメント :


2013-02-14 [長年日記] この日を編集

§ [devel] GaucheとOpenBSD

 今はOpenBSDで動くらしい。テストもオールグリーンだし。主にkawさんの作業だと思われる。しかし、手元では今ひとつコンパイルしきれなかったので手当した。0.9.3.3でもHEADでも当たるはず。Makefile.ext.inの手当は機種依存になるけど、解決方法がわからぬ。Makefile中で条件分岐するか、autotoolsのほうでどうにかなるのか?

 追記:configure.acで条件分岐するようになったので、他の環境には影響なくなるはず。

 どうも、OpenBSD4.9の時代、2011/07頃に、BoehmGCのほうでOpenBSDのスレッドでも動く変更が入ったようなのだが、OpenBSD5.1→5.2の変更でOSのスレッド周りが変わって、BoehmGCがスレッドで動かなくなってしまったようだ。そういうわけで当パッチはGauche本体に入れられないと思う。

 問題点は、(1)OpenBSD5.1以前と5.2以降でパッチを変えなければいけないのではないか(2)BoehmGCの開発者がどう対応するのかな、ってとこか。

お名前 : コメント :


2013-02-15 [長年日記] この日を編集

§ [program] Schemeで10進2進変換

 Gaucheで日常の作業をしようっていう努力的な。

 (number->string 460288 2)

 (reverse (map list->string (map reverse (slices (reverse (string->list (number->string 460288 2))) 8))))

 Guileだとslicesがないので動かないが。

 

§ [//] Moshが気になる

 Mosh。Cygwinのpackagesに入っている。SSH代替のリモートターミナルで、Wifi、携帯回線なんかの接続が不安定なとこでもなんとかなるっぽい。Change IP. Stay connected.とか。しかしサーバ側にも入れないといかんのかぁ。GNU Screenのdetachの亜種っぽいけど、サーバ側のポート開けなきゃないようで、やっぱちょっと面倒かも。

お名前 : コメント :


2013-02-20 [長年日記] この日を編集

§ [program] Perl and Gauche

 CGIで、マルチスレッドで、スクレイピングして、表示するっていうやつのPerl版Gauche版

 ウェブサイト制作の実習なんかで使えると思うけど、超素朴バージョンなので、キャッシュしたりバックエンド作って処理を分けるべき。

 しかし、Win32 Perlではマルチスレッドで頑張るとSEGVすることがある。CygwinのPerlなら問題ない。スレッド中の処理内容や、スレッド数の変更、IOの同時実行をブロックしたりしたけど、ダメ。

 逆にGaucheはMinGWバイナリのほうがまともで、Cygwinで動かすと全部の情報が取得できないっていう感じ。HTTPモジュールのせいか、マルチスレッドのせいか、相互の相性なのか、もしかしてGCされてるとか?デバッグのやり方もよくわからん。call/ccでも並列処理できるらしいけど継続わからん怖い。

 Perlのほうが速いけど、たぶんタイムアウト設定してるからだと思う。Gaucheでやるなら、thread-join!の引数でやらなきゃなくて、そうするとmapが使えなくて面倒。

 しかし再帰関数こんなに書いたの初めてだな。

 追記:同期IOだとそこでブロックされるので、今回のrfc/httpを使った部分はcall/ccでは速くできないようだ。http-getを非同期にできたらいいのか?でも非同期にすると通信が終了終了してるかとか状態を取得する方法がないといけないよな。あとhttp-getに:timeoutとか欲しい。

お名前 : コメント :


2013-02-21 [長年日記] この日を編集

§ [program] トップレベルの継続とload

 意味がわからんけどエラーになるらしい継続入門のサンプルを保存してloadで読んだらエラーになったけど全然意味わからん。Guileでも似たようなエラーになるから、Schemeの仕様なのか。

 -[1269]% rlwrap -c -q '"' -b "'"'(){}[].,#@;|`"' -m guile --use-srfi="1,6" "$@"

 guile> load

 #<procedure load-module (filename . reader)>

 guile> (load "./buf.scm")

 write and buf clear.write and buf clear.write and buf clear.guile> (kin inp)

 ERROR: In procedure read:

 ERROR: Wrong type argument in position 1 (expecting open input port): #<closed: file 0>

 ABORT: (wrong-type-arg)

 guile> (exit)

お名前 : コメント :


2013-02-23 [長年日記] この日を編集

§ [OpenBSD] パーティションのリサイズ

 VirtualBoxに入れてるんだけどディスク領域が少なすぎたので増やします。

 VirtualBoxのイメージ自体をリサイズするのはコマンドでいけるらしいので割愛。(参考1)

 シングルユーザモード(boot -s)で入ってもDevice busyになるので、河豚板を使います。

 河豚板を起動したらコンソールを開いて disklabel -E wd0 を起動します。

 b して * します。

 m b してswapの位置をずらします。場所は自分で計算してね。

 c a してパーティションをリサイズします。サイズは自分で計算してね。よくわからないけどaとbの間は64ブロックくらいほしいらしい?

 w で書き込んだあと、x で終了します。何か質問されるけどYesで。

 growfs /dev/wd0a を起動します。

 終わったら、fsck /dev/wd0a を起動します。最後に何か聞かれるけどyで。

 mkdir /test とかして mount /dev/wd0a /test とかして問題無さそうだったらリブートします。以上。

 LinuxかWindowsならGPartedでGUIで一撃なんだがなあ。

 ちなみにwdとはウェスタンデジタル(HDDのメーカー)の略らしい。

お名前 : コメント :


2013-02-25 [長年日記] この日を編集

§ [music] Quit or Quiet(WHITE ASH)

 浅井っぽいギターリフとオルタナ・エモ・ポストロック的な感じで、延々と聞いてるけどいいね。キメトメ多め。ビジュアルが強烈だし。

お名前 : コメント :


2013-02-27 [長年日記] この日を編集

§ [program] Gauche/DBI/PostgreSQL

 以下色々書いたけど、vallog既出なのでそちらを読むと良いが、Gauche-dbd-pgはgithubから持ってきたほうが今っぽいと思う。

 DBIモジュール自体は本体同梱。ドライバが入ってないのでKahuaのgithubから取得してインストール。Cygwinでやるならlibpq-develあたりが欲しい。

 make installでgauche-install.exeがPermission deniedになるので(理由が不明)、Gaucheのソースディレクトリのgauche-install.exeを使うようにMakefileを変更するとうまくいく。と思ったら、デバッグしようと思ってCFLAG='-g -O0'したら治ったし、デバッグオプション外しても動いたから入れた時に何かあったくさい。なんだそれ。

 コードが6年間変更されてない割には問題なさそう。

 基本的にはGaucheでDBIとか@ITの記事で動くのだが、どうもDBから戻ってくる値はstring固定っぽいような。この辺PHPだと適当にやってくれるんで楽だったりハマったりするわけだが、もし数値で扱うならいちいちstring->numberとかしなきゃないのか。NULL(空文字らしい)もあるしな。ORマッパ入れてそこで型変換するのがいいんだろうけども。

お名前 : コメント :