2009-01-01から1年間の記事一覧

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…

言語マニア的に答えてみる(ちょっと修正)

http://d.hatena.ne.jp/katzchang/20090724/p2への回答。 自分専用ツール(自由すぎる)を含めるとデータが怪しくなるので、業務と研究/OSSとを分けてみました。 業務で使っている/いた C C++ C# Python TCL/TK x86 Assembler PL/M 研究/OSSで使っている/いた*…

ハッシュ表のサイズ

http://d.hatena.ne.jp/zariganitosh/20090716とhttp://d.hatena.ne.jp/odz/20090718/1247922506の話。 定義域と値域からハッシュ表のサイズを考えてみる。登場人物はハッシュ関数と折り畳み関数の二つ。 ハッシュ関数 例えば、文字列から32ビット整数に変換…

キャスト?

http://www.kt.rim.or.jp/%7ekbk/zakkicho/09/zakkicho0907a.htmlの話。 char* p = reinterpret_cast(std::malloc(sizeof(char) * 10)); は簡単に破綻するような。reinterpret_castは実装依存せずに使うのが難しい(しかも使わないで済む場面の方が多い)から…

万能理論=イエスマン

true/falseとpositive/negativeの話。 まずは表から。 true false positive 1. 2. negative 3. 4. 検出されるべきものが検出された。 検出されるべきでないものが検出された。 検出されるべきものが検出されない。 検出されるべきでないものが検出されない。…

『ROCKIN'ON JAPAN』と病跡学

病跡学とは、宮本忠雄氏によれば「精神的に傑出した歴史的人物の精神医学的伝記やその系統的研究をさす」、福島章氏によれば「簡単にいうと、精神医学や心理学の知識をつかって、天才の個性と創造性を研究しようというもの」です。 何らかの精神障害を病んだ…

Willcomの利点・欠点

http://anond.hatelabo.jp/20090623225245の話。ades準拠で。 利点 メールが自由 外部のPOP3,SMTPに接続できる。暗号化にも対応。 メール料金が安い パケット定額はもちろん通話定額*1でも標準のメールが使い放題。 Opera PC並みのブラウザを搭載。 パケット…

もやもや

http://d.hatena.ne.jp/kilrey/20090604#p1の話。トラックバックはなし。 たぶん私がもやもやしているのは 何故に作家論になるの?作品論ではないの? という点なのだと思う。もちろん、すべての意見がそうではないと承知しているが、あまりにもあんまりだ。

文芸システマーの紹介

http://neo.g.hatena.ne.jp/extramegane/20090603/1243976418とhttp://d.hatena.ne.jp/Erlkonig/20090603/1244030010に対して日本近代文学におけるシステマーを紹介してみよう。 夏目漱石 口語体というOSを完成させた中心人物である*1。また造語にも長けて…