あどけない話

Internet technologies

2009-04-01から1ヶ月間の記事一覧

The Haskell School of Expression

The Haskell School of Expression をようやく読み終えました。The Haskell School of Expression: Learning Functional Programming through Multimedia作者: Professor Paul Hudak出版社/メーカー: Cambridge University Press発売日: 2000/06メディア: ペ…

RPF v0.3 のリリース

何人かの人と議論して、Receiver Policy Framework の仕様を変えました。というわけで、 RPF v0.3 をリリースします。v0.3 では、Milter ありきの設計になっています。こんなことが書けるようになりました。 $ip_white_list = 10.0.0.1; $ip_forwarding_list…

UArray

同僚が Perl でのファイル処理で悩んでいました。あるデータの情報が、2 つのファイルに分かれて、順番を守って行ごとに格納されています。やりたいのは、2 つのファイルを同時に開き、どちらも最初の行から最後の行まで読みながら、データをつきあわせるこ…

Gmail の転送と SPF

昨日、知人から言われて気がついたのですが、Gmail で転送の設定をしていると、転送の際に SMTP MAIL FROM を gmail.com に書き換えていますね。SPFと転送の相性問題に対する解決案の案1と案2のいいとこ取りみたいな感じかな。Gmail では転送した結果のエラ…

IO がファーストクラスだと何が嬉しいのか?

Haskell の IO は、ファーストクラス(第一級の値)だと解説されることがあります。その何が嬉しいのか、僕には長い間分かりませんでしたが、少し分かって来たので書いてみます。IO がファーストクラスである証拠として、IO を返す関数がリストに格納される例…

DMD

D

プログラミング言語Dのホームページを久しぶりに読んでみると、Mac 用のDMDがリリースされていて、びっくりしました。早速、インストールしてみましたが、インストール方に書かれている内容があまりにも適当なので、僕がやった作業を書き記しておきます。 設…

Piki v0.2 のリリース

昨日の日曜日は、奥さんが仕事だったので、家で子供の面倒をみていましたが、4時間ほど寝てくれたので、Piki をハックしてみました。 div ({}) を入れ子にできないバグを直した エラーになったときに、何行目で起こったか分かるようにした Parsec をよく知ら…

Mac と Windows 間で USB メモリーを使う

30G ぐらいのデータを知り合いに渡すことになりました。その人は、Windows ユーザーで僕は Mac ユーザーです。最近では 32G の USB メモリーが販売されているので、メディアは USB メモリーがよいという結論に至りました。2G 以上の USB メモリーは、何でフ…

Receiver Policy Framework

メールアドレスの詐称を判断できるようするドメイン認証には、いくつか種類があり、それぞれに長所短所があります。たとえば、こんな感じです。 SPF は、転送に弱いが、メーリングリストに強い DKIM は、転送に強いが、メーリングリストに弱い DKIM よりも S…

チョウゲンボウとホシムクドリから賢人鳥を導出する

すべての鳥は、チョウゲンボウ(K)とホシムクドリ(S)から導き出される。そこで、賢人鳥(Y)を K と S から導出してみる。 チョウゲンボウ(K) K の定義は以下の通り。 Kxy = x ホシムクドリ(S) S の定義は以下の通り。 Sxyz = xz(yz) 自己鳥(I) I の定義は以下…

Piki のリリース

僕は HTML ファイルを作成するために、お手製の WIKI を使っています。名前を Piki といいます。Piki は、他の WIKI とは違い、Web サーバを利用しません。単なるコマンドライン・プログラムです。たいしたものではないので、公開する気はなかったのですが、…

guard の動作原理を考える

「リストモナドの動作原理を考える」の続きで、guard の動作原理を考えてみます。guard は、リスト内包表記では、こんな感じに書けます。 [x | x <- [1,2], x < 2] → [1] これを do で書き直すと、こうなります。 do x <- [1,2] guard (x < 2) return x guar…