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

除夜の鐘

整理券を頂いてきました。行ってきます。

â– 

Emacs Lisp と総称関数

僕は Lisper ですが、「Lisp では、マクロを書けばなんでもできる」という主張には、かなり疑問を持っていました。たとえば、「Emacs Lisp で総称関数を導入することなんてできない」と思っていたのです。しかし、今日ひらめいて、試しにこんなコードを書き…

メールの符号化は悪だ

Subject: の日本語文字を符号化する方法(RFC 2047)とファイル名のそれ(RFC 2231)とが何故違うのか説明する機会がありましたので、ブログでも公開するとともに、僕の意見を述べさせてもらいます。 予備知識 Subject: の値に ASCII 文字以外を入れる場合は、RF…

モンスターパニック

今日、纐纈さんがモンスターパニックを、ひでのりがメリーゴーランドを登りました。おめでとうございます。これで、暖かい湯河原へ移動できます。:) 春までモンスターパニックはお預けなので、忘れないようにムーブを書いておきます。(巨人ムーブなので、普…

博士の愛した数式

博士の愛した数式は、この世で最も美しいオイラーの公式でした。 小川洋子さんは、この式を情緒的に表現しています。 果ての果てまで循環する数と、決して正体を見せない虚ろな数が、簡潔な軌道を描き、一点に着地する。どこにも円は登場しないのに、予期せ…

フラッシュの文字化け

Mac

年賀状のシーズンなので、プリンターを買いました。EPSON のカラリオ PM-990 です。昨日の夜は、Mac からいろいろテストしました。年賀状の宛名書きは問題ありませんでしたが、写真印刷で問題がありました。Easy Photo Print で用紙を選ぶ際に、選択肢が文字…

5回目のレッドポイント

「モンスター・パニック」(5.12b)目当てで通いだした金毘羅岩。「メリーゴーランド」(5.12a)に浮気したのは、モンスター・パニックが濡れていたからだ。10月28日のことだった。スタートのボルダームーブは、簡単に解決できた。外岩のボルダリング・グレード…

なぜ読める?

Haskell の本を買って勉強を始めました。その理由は、変数への代入は一回しか許されないのにグラディウスを作れる理由を探るためです。(変数は宣言時に初期化できるが、代入できない? あるいは、定数と言えないの?)初めて読むのに、なぜか読めるなーと思っ…

Emacs Lisp のパターン

デザイン(設計)パターンという程のことはない、Emacs Lisp のパターンを思いつくままに書きます。心は、 高階関数を書こう マクロを書こう です。 mapcar mapcar は、引数に関数をとる高階関数のよい例です。リストを取り、それぞれの値を加工して、新しいリ…

関数型プログラミングと代入

関数型プログラミングでは、よく「代入は使ってはならない」と言われます。関数型言語の一種である Emacs Lisp を生業とする僕は、この言葉に長年悩まされてきました。代入を使わないで実用的なプログラムを書くことは無理だからです。もちろん、問題の内容…

Lisp で多態性

On Lisp を理解するためのメモです。 オブジェクト指向Lisp オブジェクト指向Lispの章には以下のような記述があります。 CLOSの到来はLispがオブジェクト指向のパラダイムを取り込み始めた兆に見えるかも知れない.実際には,Lispはオブジェクト指向のパラダ…

On Lisp

以前から、Lisp でのデザインパターンとは何かについて考えていました。それに答えを与えてくれそうな 「On Lisp」 という本を読んでいます。On Lisp作者: ポールグレアム,野田開,Paul Graham出版社/メーカー: オーム社発売日: 2007/03/01メディア: 単行本購…

Rubyのローカル変数

Ruby のローカル変数の仕様が、さっぱり分らず、いろんな文献/ページや、実験をしてみてようやく分りました。注:これは、Ruby ではどう書くべきかということではなく、仕様はどうなっているのかという話です。 スコープ Ruby 書籍には、ローカル変数には以…

今日の MacPorts

来たー! 今日の sync で、GDC がインストールできるようになりました!これで、D 言語を勉強できるよ!

あなたはどれが好き?

イベントリスナーの実装の違いを吸収するために、よく以下のようなコードを書きます。 var setHandler = (function() { if (addEventListener) { return function(el, type, func) { el.addEventListener(type, func, false); }; } if (attachEvent) { retur…

利用されてないローカル変数

僕はすでに XEmacs を使っていませんし、Mew でもサポートを止めています。なのに、XEmacs を Mac に入れ続けています。何故かというと。。。利用されていないローカル変数を見つけるためです。XEmacs では、バイトコンパイルすると、これを表示してくれます…

Network Security

Email Security Conference の懇親会で、乾杯を頼まれ、そこで喋った話です。10年前ぐらいに出版された "Network Security" という本の献辞は、暗号化されています。 SI SPY NET WORK, BIG FEDJAW IOG LINK KYXOGY これは簡単な換字暗号で、根気さえあれば簡…

Firemacs 2.4

Firemacs 2.4 のリリースをお願いしたところ、ようやく公開されました。次は Flock でもサポートしてみようかなぁ。(内部が違い過ぎて無理だとは思うのだけれど。)

今日の思いつき

プル(pull)型のメールというアイディアをご存知ですか?現在のメールは、プッシュ(push)型です。メールは、送信者から受信者へプッシュされます。逆に、メールが送信者の手元に保存され、受信者が定期的にポーリングし、存在したらプルするのがプル型です。…

Emacs と Ajax

巷では、やれ Ajax だとか、RIAだとか騒がれていますが、Ajax の非同期性は基礎がなってない、というお話です。 Emacs Emacs では、コマンドを start-process で起動したり、TCP コネクションを open-network-stream で開くと、それは非同期プロセスに見えま…

太田胃散

昨日、散歩がてら六義園へ行きました。そこで撮った紅葉の写真は僕の HP を、鳥の写真は嫁の mixi を見て下さい。六義園からの帰り道、太田胃散を発見しました! 商品名ではなく、会社名だったんですね。証拠写真を撮ると、狙ってもないのに、なんだか芸術的…

â– 

JavaScript で Singleton

Singleton は、インスタンスが1つしか作成されないようにするデザインパターンです。 Java では? Java でインスタンスを作るには new するしかありません。Singleton では、1 回のみ new を許すように実装する必要があります。そこで、コンストラクタを pri…

今日の Emacs

最近、Mac で CVS Emacs がコンパイルできませんでしたが、ようやく今日できるようになっていました。しかし、キー入力に対する反応が相変わらず遅いままです。multi tty をマージした副作用はまだ解決されていないようですね。リンクされたのも Cocoa では…

空は青きを厭わず

僕は空が青くないと風景写真を撮る気になれません。しかし、心地よい晴天の中で撮影しても、空が白っぽくなることが多く、その原因が気になったので調べてみました。水蒸気による散乱光のせいだそうです。これを本質的に解決するには、PL フィルターを付ける…

JavaScript でデザインパターン

JavaScript でプログラミングをするときに、オブジェクト指向の手法を使うのであれば、折角なのでデザインパターンを利用したいと思います。しかし、デザインパターンの本は、Java を対象に書かれているものが多く、単純には JavaScript へ応用できません。…

無名コンストラクタ

web 2.0 EXPO の JavaScript Labs で、リクルートの川崎さんが講演されていました。口頭では触れていませんでしたが、講演資料の中で無名コンストラクタが紹介されていました。無名コンストラクタを使うと、無名関数と同様に、グローバルの名前空間を汚さず…

オブジェクト指向再入門

C は知っているけれど、Java のオブジェクト指向に挫折した人は、今すぐオブジェクト指向再入門を読みましょう。みんな初めからこう説明してくれればよかったのにと思います。面白いと感じた人は、今すぐ「Java謎+落とし穴徹底解明」を買いましょう!Java 謎…

LogUpdater

僕はよくネットワークや電話を使ってミーティングをします。その際、記録係は適当な web サーバに議事録を随時書き込み、参加者はそのページを見ることで、議事録を共有します。僕が記録係の場合は、Emacs の tramp を使って、web サーバ上のファイルを書き…