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

覚え書き: 集合内での EX (存在限量)

限量子の使いようが、いまひとつ理解しきれていない。 Isabelle の集合の条件部に EX を書くと、 EX の条件を満たすものが列挙される。 lemma "{0, 1, 2, 3, 4} = {u::nat. EX j k. j <= k & k < 3 & u = j + k}" apply auto apply (rule_tac x=0 in exI) ap…

ファイアウォール内からサーバーへのファイル転送

PuTTY を使っていて、外部サーバーへの接続方法が ext-server (のような) 名前で保存されているとする。 > pscp -load "ext-server" <localfile name> <ext-server-account>@<ext-server name>:.</ext-server></ext-server-account></localfile>

Isabelle 環境準備

正月休みにも継続できるよう、 Sourceforge のシェルアカウント内に Isabelle 環境を構築。公式のインストール手順に書かれている tarball を四つ落としてくる。 $ wget http://isabelle.in.tum.de/dist/Isabelle2008.tar.gz $ wget http://isabelle.in.tum.…

複数のキャストが存在するクラスの operator<< があいまいで解決できないという話

とあるクラスに int と double のキャストオペレーターが定義されている。このためユニットテストフレームワークが生成する operatorコンパイルできず困る、という話を伝え聞いた。そんなときは operatorオーバーロードを定義すればいいんじゃない? #includ…

大野晋「日本語練習帳」

「は」と「が」。 「は」は文の切り離し、「が」は文の接着をする。「は」は問題を設定し、後にその答えを設定する -- 花は桜。 「は」は対比をつくる -- 私は猫は嫌い。 「は」は限度をあらわす -- 百万円にはならない。 「は」は再審をおこなう -- 美しく…

このサイトのセキュリティ証明書の取り消し情報は、使用できません。

IE の失効リスト確認にかかわるエラーメッセージについて。 Security certificates are issued for a particular time period. But they can be revoked at any time. The fact that they have been, and why, is supposed to be available to applications.…

「すべての IE に緊急の脆弱性」のパッチ、の原因はダングリングポインター

なんとなく訳してみた。 A remote code execution vulnerability exists as an invalid pointer reference in the data binding function of Internet Explorer. When data binding is enabled (which is the default state), it is possible under certain …

C++ の予約済み識別子

17.4.3.1 Reserved names [lib.reserved.names] の 17.4.3.1.2 Global names [lib.global.names]: Certain sets of names and function signatures are always reserved to the implementation: Each name that contains a double underscore (__) or begins…

Adobe のローカライズは中国…なのかな

Flash のアップデート通知の画面なんだけれど、タイプフェイスがいかにも中国系フォント。中国では GB という文字セットが一般に使用されているという話。驚いたことに、この文字セットにはカタカナやひらがなも入っているとか。

というか GetTempPath の戻り値の仕様は、いったいどうしたことだ。

戻り値 関数が成功すると、バッファに書き込まれた文字数(終端の NULL 文字を除く)が TCHAR 単位で返ります。戻り値が nBufferLength より大きかった場合、その戻り値は、パスを格納するために必要なバッファのサイズ(終端の NULL 文字を含む)を表してい…

Win32 の GetTempPath 結果を std::string で返すには…

レビューをお願いされたプログラム中に、以下のようなコードがあって、いろいろ気になった次第。 typedef std::basic_string<TCHAR> tstring; const tstring get_temppath() { tstring result; int length = ::GetTempPath(0, NULL); TCHAR *buffer = new TCHAR[len</tchar>…

Proxy 環境下での Windows Update

たまに Windows Update にのきなみ失敗して困ることがあるのでメモ。カレントユーザーの Proxy 設定を Windows Update に叩き込む方法。XP では "proxycfg -u"、 Vista では "netsh winhttp import proxy source=ie"。Windows Update がネットワーク接続をす…

gcc -ftrapv

gcc に組み込みの「実行時算術オーバーフロー検出」機能 (-ftrapv) について除算に対応していないことを確認した。 $ gcc -ftrapv -x c -S -o - - << EOF > void calc(int a, int b) { > int w = a + b; > int x = a - b; > int y = a * b; > int z = a / b;…

Zone.Identifier サブストリーム

エクスプローラーで落としてきたファイルなどが「ブロック解除」しないと制限がかかるという仕組みの基礎。 INI ファイル形式で ZoneTransfer というセクションに ZoneId というキーをつくり値 0 から 4 のいずれかを指定する。 IE などでは 3 を設定するよ…

手伝うといっては、いけないんだっけ…

と、直前の文章を書いた後でふとおもったんだけれど、こと、家事育児について「手伝う」は禁句というのをどこかで読んだな…。家事も育児も自分たちの仕事であって、そうであれば「手伝う」などという発想はでてこないはずだ、と。…だからといって、ほかにど…

ごめんなさい v.s. ありがとう

わかっちゃいるけど、どうしてもごめんなさいと言ってしまう。「疲れて帰って、それから休む暇もなく夕飯を作って食べさせて、大変だったんだから…」これがあかの他人のことばだったら、「うーん、そりゃあほんとに大変だねえ」などと返せる、というか、それ…

Debian/GNU Linux の emacs で UTF-8 テキストの漢字だけ表示されない

トレーニングで emacs というマニアックなエディターを使わざるをえず、ばかりか UTF-8 で日本語が埋め込まれた文書が渡され、開いてみたら、ところどころカナ交じりの、ほとんどエスケープされた数字の羅列という悲しい状態に。いろいろ漁って ~/.emacs に…

uncurry?

uncurry なる関数が Excercise に出てて、コリャなんだ?と疑問符が頭の中を飛び交い中。とりあえず型を問い合わせてみた。ついでに uncurry があるなら curry もあるのか?って。あった。 Prelude> :t uncurry uncurry :: (a -> b -> c) -> (a, b) -> c Pre…

Microsoft "Secure Template Overloads"

http://msdn.microsoft.com/en-us/library/ms175759(VS.80).aspxマクロが三つあって、結局のところそれぞれどれがどうなるんだ?というのがようやっと腑に落ちた。規定で有効になっている _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES は、追加された _s 系関数に…

($) is apply

10 章の DETAILS に "The operator ($) is …. In other words it is the ``apply'' operator" という記述を発見。なんと! ($) は apply だったのかっ!Exercise 9.4 のことをおもいだし、うわ、こんな簡単な答えになるよってんで感動。 applyEach fs v = ma…

Exercise 9.9

fix 関数の型はどんなものかってのと、 fix を使って remainder を再帰でない形に書き直しなさいって問題。 fix と remainder の定義はそれぞれ以下のとおり: fix f = f (fix f) remainder :: Integer -> Integer -> Integer remainder a b = if a < b then …

Currying

9.1 Curring, More About Higher-Order Functions, "Haskell School of Expression" から引用。 This method of applying functions to one argument at a time, yielding intermediate functions along the way, is called currying, after the logician Ha…

foldl foldl が principal type を持てないわけ

foldl の型は: foldl :: (a -> b -> a) -> a -> [b] -> aこれの第一引数を foldl で束縛しようとすると何が起きるかを考えてみる。第一引数に束縛できるはずなので foldl を (a -> b -> a) にマッチさせなければならない。 foldl の型を三つの部分に分解する…

カリー化された高階関数の型

SOE の Exercise 5.2 は、部分適用済み高階関数の型を問う問題。 map map foldl foldl map foldl公式サイトの Errata に foldl foldl は principal type がなかったごめんという訂正があったので実質二問。いずれにせよ、さらっと流せない難しい問題と感じた…

School of Expression

The Haskell School of Expression (通称 SOE) という書籍を大購入して読み中。なかなか楽しい。http://www.haskell.org/soe/software1.htm にて SOEGraphics (旧称) モジュールの最新版が配布されている。インストラクションにしたがって 6.8.2 Haskell を…

ZeroMemory を使うと CRT とリンクされる

ZeroMemory や CopyMemory などの Win32 API は CRT (C Runtime Library) の呼び出しに置き換えられる模様です。 // Winbase.h より抜粋 #define MoveMemory RtlMoveMemory #define CopyMemory RtlCopyMemory #define FillMemory RtlFillMemory #define Zero…

unresolved external symbols

1>entry.obj : error LNK2019: unresolved external symbol ___security_cookie referenced in function _wWinMain@16 1>entry.obj : error LNK2019: unresolved external symbol @__security_check_cookie@4 referenced in function _wWinMain@16 1>entry.o…

Ex 2.49

; a. (define outliner (segments->painter (list (make-segment (make-vect 0 0) (make-vect 1 0)) (make-segment (make-vect 1 0) (make-vect 0 1)) (make-segment (make-vect 0 0) (make-vect 0 1)) (make-segment (make-vect 0 1) (make-vect 1 0))))) ;…

Ex 2.48

(define (make-segment o v) (list o v)) (define (start-segment s) (car s)) (define (end-segment s) (add-vect (car s) (cadr s)))

Ex 2.47

リストによる実装に対するセレクター: (define (origin-frame f) (car f)) (define (edge1-frame f) (cadr f)) (define (edge2-frame f) (caddr f)) cons による実装に対するセレクター: (define (origin-frame f) (car f)) (define (edge1-frame f) (cadr f…