2011/09/17

2011/09/17

創世記機械

読了後のこの気持ち良さ。
星を継ぐもの 」含め「ガニメアンシリーズ」でも漏れなくそうだったように、終盤のスピード感とワクワク感は異常(笑)

この「創世記機械」っつータイトルの意味がわかってくるくだりがとても良い。読む前から「創世記機械」ってなんのこっちゃと思ってました。読み始めても話の内容と「創世記」が全然結び付かない。タイトルのことを忘れかけた頃に、スピードが上がって、盛り上がって、うぉーってなって、「あー!そういうこと!」。

それと巻末の書評(あとがきではない何か)っぽいとこにも書かれてるけど、「科学者と組織の葛藤」がイイ。なんらかの組織に属する人なら経験したことがあるはず。きっと現実の出来事とダブる。組織の中で遭遇する政治とか葛藤とか苦しみとかもがき。

読んで良かった。すごく面白かった。
まだいくつかJ.P.ホーガン作品のストックがあるので楽しみ。

創世記機械 (創元SF文庫)

2011/09/16

2011/09/15

日記(bookmark, mifare, window制御DSL, KPF)

最近とんと日記を書いておりませなんだ。

bookmark

しばらく前から、その日bookmarkしたリンクをブログに投稿するようにしてる。手動の更新頻度に比べてbookmarkの自動投稿頻度が高くてちょっとうざいかな・・・。週一に変更しようかどうしようか。もうしばらく様子を見てみる。

ネタ元(というかパクりました)はこちら

bookmark自動投稿の仕組み的には
  • ユーザーIDと日付け範囲とカテゴリ(quoteとかlinkとか)指定でtumblrの記事をJSONで取ってくるコマンド(gaucheスクリプト)
  • jsonを変形するコマンド(gaucheスクリプト)
  • jsonとテンプレートからテキスト(今回はHTML)を吐くtemplate-filter(Template Engine)コマンド(@kikuchan98さん製のgaucheスクリプト)
  • bloggerに投稿するコマンド(PHP製)
  • 上記のコマンドをpipeでまとめて実行するシェルスクリプト
という具合で、あとはcronでぶんぶん。
どれも単体でコマンドとして実行できるのでいろいろと便利。

同じような仕組みで、twitterにつぶやくだけのコマンドとURLを短縮/展開するだけのコマンドをgaucheで作って、tumblrからランダムに記事を選んで呟くtwitter botや、twitterのお気に入りからランダムに選んで呟くtwitter botなどを動かしてたりします。これらも単体でコマンドとして動かせるので意外と楽しめる。ソースはお粗末ですが。

mifare, window制御DSL

仕事では引き続きC#でmifareをごにょごにょするお仕事をしています。進捗が悪くてあばばばば状態。
で、その関連(全然関係なさそうだけど)でwindowsのwindowを制御するDSLをでっち上げたりしています。まだ試作段階ですがスーパーハカーより「きめぇ!」の一言を頂きました!
> handle "hoge piyo fuga"
> move 100 200
> repeat 4 click
> move 42 42
> click
> repeat 10 key down_arrow
> key enter
というようなコードをインタプリタに投げると、「hoge piyo fuga」というタイトルのwindowをハンドルして、そのwindowのクライアント領域でのx=100, y=200に移動してclickを4回、42,42に移動してクリックして↓キーを10回押下してenterという操作をします。(ちなみにマウスポインタは動かしません)クリックしたり入力したりコンボボックスを選択したりできるわけです。windowはアクティブでなくても、他のwindowの裏に居ても大丈夫。他に文字や文字列を送ったりもできるのでわりと何でもできます。

言葉では解りづらいので動画を貼れば手っ取り早いのですが。要はコードを解釈してwin32APIでwindowメッセージを送っているだけです。

テキストをインタプリタに投げればwindowをその通りに操作してくれるので、プログラムからテキストを生成して投げればいろんなことができるかも。名前はまだない。公開もたぶんできない(?)けど、勉強会とかで見せることはできるかも。
簡単なlexer(字句解析器)と粗末なインタプリタで動きます。面白かったんでREPLも付けてみました。ちなみにC#製。

KPF

前回から600日以上経過することになりますが、久しぶりにKPF開催します!まだ正式な告知は行なっていませんが、2011/10/22(土)に開催予定です!
皆様ふるってご参加ください。
LT,、発表も絶賛大募集中です。
よろしくお願いします。


よし、風呂入って寝る。

2011/09/07

2011/09/07

gaucheのrfc.jsonでこんなことに遭遇した

$ rlwrap gosh
gosh> (use rfc.json)
#<undef>
gosh> (construct-json-string (parse-json-string "[\"×\"]"))
"[\"\\u  d7\"]"
gosh> (parse-json-string (construct-json-string (parse-json-string "[\"×\"]")))
*** JSON-PARSE-ERROR: expecting hexadecimal digit at 4, but got #\space
Stack Trace:
_______________________________________
gosh>

別件だけどこれ便利

追記

@valvallow practical-scheme.net/wiliki/wiliki.… 報告しときました。
パッチまで!

プログラミングGauche

2011/09/06