コルシカ

Web

http://d.hatena.ne.jp/mitarashi/20091007の話。 どのように闘うのかには興味があるのだけど、法律の話は避けておいて。 「電子化」の意味。 電子化と一言で片づけてしまっているが、電子化にも色々な形態がある。 画像化 今回のようにスキャンしただけのも…

溜まり場のDCSS

自治って響きは良いけどすぐに混迷する。発言者の同一性を保証しないと議論は難しい。一意性も保証しないと多数決は難しい。管理人が優しい独裁者に徹する方が上手く行くんだよね。 現状認識 DCSSスレはじきに過疎化すると思う。 過疎でもスレは必要だろうね…

メタメッセージ

http://practical-scheme.net/wiliki/wiliki.cgi?Shiroの(2009/10/04 02:02:25 PDT 空気読み会話は日本人の専売特許じゃないよ)より。 その作品を読んだことはないのでもしかすると想像を絶する空気読み会話なのかも しれないけれど、一般的に言えば、会話文…

C言語でCurrying 5

ちょっと休んだけどまだ続くよ。 これまでのまとめ。 呼び出し規約 cdecl 呼び出し側でスタック掃除 stdcall 呼び出され側でスタック掃除 部分適用とは 関数を呼び出す際の引き数を、呼び出し時と事前との二つに分けて与える。問題になるのは 呼び出し側から…

C言語でCurrying 4

Boehm GCと組み合わせた場合の注意点について述べる。 悪い例。 下のような記述ではGC_malloc()で取得したポインタを部分適用したものの、肝心のメモリ領域が回収されてしまう。何故かと言えば、GC_malloc()で取得したポインタがポインタサイズ境界に位置し…

これはイエスマン・テストかも

http://d.hatena.ne.jp/yaneurao/20090927#p1の話。 イエスマン・テストという言葉の説明から。 イエスマン・テストとは 対象の状態に関わらず常にpositive/negativeの一方を返すテスト のことを指す私の造語。 表現の拙さから発生することもあるし、項目数…

C言語でCurrying 3

もっとも簡単な手段がもっとも優れた手段ということがしばしばある。 calleeがスタックを解放する場合 x86=IA32でのstdcall関数の場合、calleeがスタックを解放する。つまり call cを呼んだ直後のスタック …… 100 ret(c) jmp addを呼んだ直後のスタック …… 1…

C言語でCurrying

と思ったら既にあった。http://d.hatena.ne.jp/shinichiro_h/20060119 厳密には。 #include <stdio.h> int test(int i, int j) { return i+j; } static int _i; int test1(int j) { return _i+j; } int (*test2(int i))(int) { _i = i; return test1; }厳密には「int </stdio.h>…

C言語でCurrying2

http://d.hatena.ne.jp/shinichiro_h/20060119の手法は引数を積みなおして関数ポインタを呼ぶというもの(だと思う)。 call cを呼んだ直後のスタック …… 100 ret(c) call addを呼んだ直後のスタック …… 100 ret(c) 100 10 ret(add) という感じで。これをtail …

C言語で継続2

http://d.hatena.ne.jp/kilrey/20090921#p1で作成した継続は本当に「スタックを巻き戻す」ことしかできない。例えば、外部リソースを再利用できない、といった問題がある。 外部リソースを再利用できない。 下のソースコードでf1()で記録した継続をf2()で巻…

C言語で継続

C言語で継続を実装できるかを考えてみた。もちろん、生のC言語でできるわけがないのだけど、環境を制限すればできないこともない。 前提、setjmp()とlongjmp()について。 setjmp()とlongjmp()の用途はあくまでも大域脱出である。そのため、setjmp()を呼び出…

C言語で多値返却

ちょっと古いけどhttp://d.hatena.ne.jp/yuyarin/20090825/1251136545の話。 C標準では。 C言語の仕様レベルでは多値返却にもっとも近いのは構造体の値返却だ。複数の値を返すという用途は充分に満たしている。 struct int_int_t { int x; int y; }; struct …

ダメなものはダメ

http://www.kt.rim.or.jp/%7ekbk/zakkicho/09/zakkicho0909b.html#D20090916-2の話。 exploitable な情報の格納を効果的でない (ineffective) 暗号化 (コンパイルしたパスワードをプログラムに埋め込んだ symmetric ciphers、trivial なパスワード、すべての…

再始動しているなあ

変愚蛮怒SVNが再始動したとの噂を溜まり場で見ていて思ったが、ソースコード閲覧所も1.7.1,2に追随するべきだろうか。1.7.0も安定版というわけでもないわけだし、追いかけて支障はないと思う。 SVNと連動させてupdate→生成→uploadとできると良いよね。

「(正しく)動けば良い」

「動けば良い」と言う人はエラーが起きてから「動かないじゃないか」と文句を言う。仮令、その人の操作が間違っていたとしても言う。ある「動けば良い」と言う人が酷いバグで右往左往しているのを見て(少なくともその人の)原因に思い当たった。 その人はコー…

意図としてのコメントはこう書く

コードコメントに書くべきは「意図」 - プログラマーの脳みそ、ソースコードの心脳問題 - プログラマーの脳みその話。 初心者のコードでも、意図が書かれているならレビューは容易に行える。意図不明のコードほど手に負えないものはない。 「コメントとして…

問題はエンコーディングではないのだ。

http://itpro.nikkeibp.co.jp/article/COLUMN/20090208/324377/?ST=security&P=1からhttp://d.hatena.ne.jp/tohokuaiki/20090910/encodingの話。 ベースライン。 Webアプリケーション、ここでは一般的な用法として次の条件を満たすもの、の話に限定して進め…

「名は体を表す」とは限らない

名と実の関係は極めて厄介なものだ。全く関係がないということはないものの、どちらがどちらに影響を与えているかも判りにくいし、正の相関であるとも限らない。 完成された何かに対して後から名前を付ける。 この場合は「名は体を表す」ことが多い。という…

今の環境ならコンパイル・アセンブル・リンクを分ける必要はない。

C言語の処理過程を考えると大まかに次のようになっている。 人間の頭 編集 ソースコード パース 抽象構文木 コンパイル アセンブリコード アセンブル オブジェクトコード リンク 実行ファイル OSによる起動 プロセス プロセス実行 出力 これは必ずしも一斉に…

名前推論

http://shinh.skr.jp/m/?date=20090831の話。名前推論は面白い話なだけにひっかかるところも多い。 賛成できない、というか少しひっかかるのは名前推論の話。最初見た時はすごいなー面白いなーと思った記憶がある。 でもいつだったかその話をぼんやり思い出…

「判りやすさ」の問題

http://d.hatena.ne.jp/kilrey/20090426#p1に関する話。http://local.joelonsoftware.com/wiki/Java%E3%82%B9%E3%82%AF%E3%83%BC%E3%83%AB%E3%81%AE%E5%8D%B1%E9%99%BAに関する話でもある。 判りやすい/判りにくい あるテーマに関して教育を行う。 「判りや…

懐疑チェック

Archivesの話*1。 ・その測定を裏付ける(査読を通った)研究論文があるか? ・主張されている「変化」は他の測定でも同様に観測できて、矛盾のない結果になっているか? ・実験結果を説明するための「モデル」を「指標」として使おうとしていないか? ・標…

関数型言語に足りないもの

http://d.hatena.ne.jp/kilrey/20090814#p1の続き。 非正則正格評価対応DBMS 現行のRDBMSに適当なラッパーを被せても良いのだけど、それだと速度のメリットがない。初めから非正則正格ネイティブなDBMSがあれば状況が変わる(かもしれない)。 簡単なGUI言語 t…

自作言語完成したよ

言語の名前が変わった上に別名義で公開することになったので、あまり細かいことはここに書けないけれども。

関数型言語に思うこと

関数型言語を利用したアプリケーションは少ない。でももっと色々作れるのでは?という話。主にHaskellを念頭において書く。 Haskell製アプリケーションの実例。 Pugs Perl6インタプリタ。本家よりも先に実装。 darcs バージョン管理システム。パッチ志向。 x…

jCryptionが危険な理由。

http://www.moongift.jp/2009/08/jcryption/の話。http://takagi-hiromitsu.jp/diary/を検索すれば幾らでも情報は見つかるとは思うけれど、自分のためにも書いておく。 前振り。 このjCryptionはMan-In-the-Middle攻撃に弱いはずだ。どのように攻撃されるか…

こんな規約はどうだろう。

設計規約 モジュールの外部仕様は設計段階ですべて決定する。 外部仕様に基づいたテスト仕様を設計段階で記述する。 設計の項目は「確定」「未定」「任意」の三状態をとる。 設計時に確定できない詳細*1を「未定」として扱う。「未定」の項目は他のモジュー…

コーディング規約再考

http://d.hatena.ne.jp/bleis-tift/20090804/1249389793の話。 確かに元のコーディング規約は突っ込みどころが多い。Javaの規約をそのまま持ち込むという時点で規約項目の検討が甘いことは想定できるし、実際の突っ込みも納得できるものが多い*1。 このコー…

超大作はマスな流行、単館系はニッチな流行、両者に自明な優劣はない。

http://d.hatena.ne.jp/HALTAN/20090802/p1で言及されたので再言及してみる。 前提。 私自身は同人的な「作者の持ち出しによる出版」を否定するつもりはない。むしろ100年先まで影響を残す作品を作るのなら、生活費くらいは手に入るが価値に見合う利益は得ら…

java.lang.String#hashCode()は微妙かも。

http://d.hatena.ne.jp/kilrey/20090718#p1と関係があるような、ないような。 いきなりソース google code search経由でhttp://hg.openjdk.java.net/jdk7/hotspot/jdkのソースを見たところ public int hashCode() { int h = hash; if (h == 0) { int off = o…