2002-02-17
λ. ffcall
使い方から見て、alloc_trampolineのプロトタイプは「extern __TR_function alloc_trampoline (__TR_function, void*, void*);」ではなくて、「extern __TR_function alloc_trampoline (__TR_function, void**, void*);」であるべきだと思う。
λ. Gimp-Rubyのついでに作っているモジュールがあるので、そいつで試しにtrampolineを使おうとした。でも、trampoline.aをそいつにリンクしようとすると以下のように言われてしまって、リンク結果がスタティック・ライブラリになってしまう。ELFでは、シェアード・ライブラリにスタティック・ライブラリをリンクする事は出来ないのかな……
*** Warning: This library needs some functionality provided by -ltrampoline. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have. *** Warning: libtool could not satisfy all declared inter-library *** dependencies of module librubymod. Therefore, libtool will create *** a static module, that should work as long as the dlopening *** application is linked with the -dlopen flag.
2003-02-17
λ. なんか、運動しない生活をしていると、考えがどんどん後ろ向きになってく気がする。少し体を動かそっと。
λ. cograph
Conceptual Mathematics の以前理解できなかった部分をボーっと眺めていて、「internal diagram は cograph である」事がふと理解できた。気付けばごく当たり前の事実なんだけどね。
λ. zsh (今日の「欝生活」)
あと,kterm起動して,mozilla &して,ktermを無理やり閉じると,
back groundで動いていたmozillaが落ちてしまう.
これはどうにかならんもんか.
「mozilla &!」で起動するってのはどうでしょう?
λ. PC
今使ってるPC(のハードディスク)が死にそうなので、どうせなので新しいPCを買おうと思って、近くのワットマンで暇を潰してみたが、どれもイマイチのような気がする。探すのも面倒だし、PCの事は正直良く分からないし、http://www.sofmap.com/shop/topics/topics_02.asp?TPC_CD=2863 にでもしちゃおっかなー
λ. 『女王の百年密室』ラジオドラマ
思ってたよりずっと良かったです。
【2006-01-21 追記】 また聴きたくなってきた。「迷宮百年の睡魔」もラジオドラマになったらしいけど、聞き逃してしまったしさ。再放送の予定とかないのかなぁ。録音して iPod nano で聴きたい。
λ. モナド(Monad)
モナドの概念が重要な第一の理由は、それが普遍代数(universal algebra)と随伴(adjunction)を結び付けるからです。……というのはさておき、Haskellでのモナドの使い方は
- Noel Winstanley "What the hell are Monads?"
- Theodore Norvell "Monads for the Working Haskell Programmer -- a short tutorial."
あたりを読めば大体理解できるのではないかと。
【2006-01-21 追記】今なら「モナドのすべて」を読むのが良いのだろうな。
λ. 『妖しのセレス—天空お伽草子』10〜12, 渡瀬 悠宇
ψ 中村 [&!なんて入力したくありません:)]
ψ 中村 [追加。 http://dengaku.org/~naoki/zsh/FAQ-J/zshfaq03-j.html di..]
ψ さかい [あれっ? | zsh には(csh/tcsh と異なり)、バックグラウンドジョブを | kill するかどうかのオ..]
ψ 中村 [あ、本当だ。これで解決。 何もターミナルが開いてない仮想デスクトップで Window Managerのショートカッ..]
ψ さかい [> あとは、リモートホストでmakeとかwgetとかしておいて、ログアウトとか。 今更だけど、そういう目的には G..]
ψ 咲亜 [妖しのセレス—天空お伽草子 なんて初めて聞いたんですけどー いつの間に読んだのさー]
ψ さかい [いつの間にって2003年2月17日に決まってるじゃないか(笑 大体この本は君のだったと思うのだが…]
ψ 咲亜 [あー 読んだね。 天空お伽草子なんて副題は初めて聞いた気がしたから]
2004-02-17
λ. Rena (3)
パーサのテストケースを書くために、RDF/XMLとNTriplesで書いた二つのファイルを読み込んで、両者のモデルが等しいことを確かめたい。が、Blank Nodes の対応をとるのが結構面倒くさいのだ。何かいい方法はないものか。
……最大のbisimulationを同値関係として使ってしまうか。ちょっと強すぎるかも知れないけど、どうせテストなんだから細かいことは気にしない、ウヒヒ。とはいっても一からコード書くのは面倒だな。せっかく、hyperset.rbを書いたのだから、以下のようにして集合に落として、集合の等しさに問題を還元しよう。よし、うまくいった。
- eval(model) = { <f(model, s.subject), s.predicate, f(model, s.object)> | s∈model }
- f(model,n) = { <true, s.predicate, f(model, s.object)> | s∈model, s.subject=n } ∪ { <false, s.predicate, f(model, s.subject)> | s∈model, s.object=n } (if n is a blank node)
- f(model,n) = n (otherwise)
- <a,b,c> = {{a}, {a,b}, {a,b,c}}
λ. 読書
- 『 ふしぎ遊戯 4』
- 『 ふしぎ遊戯 5』
- 『 ふしぎ遊戯 6』
- 渡瀬 悠宇 [著]
2005-02-17
λ. OCaml入門 (1): 複数のパラメータを持つ型
複数のパラメータを持つ型の例があまり見当たらず、どう書くのかしばらく悩んだ。type 'a 'b hoge = Hoge of 'a -> 'b
ではなく、type ('a, 'b) hoge = Hoge of 'a -> 'b
と書く。
調子に乗って、generalized rose tree のデータ型を定義しようと type ('f,'a) grose = GBranch of ((('f,'a) grose) 'f)
と書いたら、これはエラーになってしまった。型構築子をパラメータにすることは出来ないのかな。それとも文法的な問題なのかなぁ……
λ. Announce: 圏論勉強会(第四回)
今度の土曜は圏論勉強会の四回目ですよん。今回は Session 5 から。
- 日時
- 2005年2月19日(土曜) 13:00〜
- 場所
- タイムインターメディア様 2階会議室 (地図)
- テキスト
- Conceptual Mathematics: A First Introduction to Categories
λ. 『数学の限界』, G.J.チャイティン(Gregory J. Chaitin) 著, 黒川利明 訳
を読んだ。セクシーな数学よりも具体的で分かりやすかった。まだちょっとしっくりこないところもあるけど。
2007-02-17
λ. anarchy golf
激しく今更だが、anarchy golf に少し手を出してみる。 与えられたお題のプログラムを如何に短く書くかを競うだけなのだが、これがなかなか楽しい。5行でテトリスを書いたりしている人の気持ちが少し分かった気がする。
しかし、みんなコード短すぎ。ちょっと頭がおかしいんじゃないかと思う(褒め言葉)。例えば、eを100桁表示する問題 だと、今のところ私は以下のような素朴なプログラムしか思いついてなくて、これで66バイトなのだが、Haskellでのトップが42バイトで、全体のトップはRubyの32バイト。 むー、手も足もでないかも。
import Ratio main=print$round$sum$[10^100%x|x<-1:scanl1(*)[1..99]]
【追記】
1:scanl1(*)[1..99]
よりも scanl(*)1[1..99]
と書くべきだった。
その方が美しいし、2文字短い。
ψ [1..100]>>=pen [ずるいですが(36は後出しのつじつまあわせ) main=print$36+sum(scanl(div)(10^100..]
ψ さかい [ああ、なるほど。これは酷い(笑 整数で計算したときの誤差はもっと大きいと思い込んでたけど、考えてみればこの程度だよな..]
ψ mao [整数で計算しても main=print$foldr1(\x y->10^100+div y x)[1..90] だと..]
ψ [1..100]>>=pen [大変なことに気づきました。e表示問題の sample output は実は101桁です!(笑)]
ψ さかい [反応が遅くなりました。 >maoさん なるほどー。 そんな手もありましたか。 >[1..100]>>=penさん..]
2008-02-17
λ. PDFの余白をpdfcropで削除する。
論文などのPDFを印刷するとき、特に一枚の紙に複数ページを印刷するときには、「余白を削除して拡大すれば読みやすくなるのになぁ」と思うことが良くある。Acrobatのトリミング機能を使えば余白を削除できるのは知っていたのだけど、そのためにAcrobatを買うのも面倒くさい。……と思っていたら、pdfcropというフリーのツールを発見。
PDFCROP takes a PDF file as input, calculates the BoundingBox for each page by the help of ghostscript and generates a output PDF file with removed margins.
処理に失敗するPDFファイルもある*1けど、これは便利!
【追記】 <URL:http://pdfcrop.sourceforge.net/> という別のツールもあるようだ。
【追記】 それから、元のpdfcropの拡張パッチpdfcrop2。
*1 これだからPDFは……
2010-02-17
λ. Javascript クイズ
Javascript というか ECMA262-3 に関するクイズ。
var f = function(){ if (true) {function g() { return 1; }; } else {function g() { return 2;};} var g = function() { return 3;} return g(); function g(){ return 4;}} var result = f();
このコードの実行後に result の値はどうなるべきか?
これを知って、Javascript難しいと思った。
元ネタ: A Structural Operational Semantics for JavaScript の18ページ目