2008-01-01から1年間の記事一覧
Software Design 2009年1月号に「Firemacs で Emacs 風ブラウジング」という記事を書きました。「Firefox 徹底カスタマイズ術」という特集の中です。よかったら読んでみて下さい。Software Design (ソフトウエア デザイン) 2009年 01月号 [雑誌]出版社/メー…
Perl6 は何年経っても正式にリリースされません。そんな Perl6 を Audrey Tang さんは、たったの数ヶ月で作りました。その実装は Pugs と呼ばれています。短期間の開発を可能にした秘密兵器は Haskell です。その Audrey さんが、2006年に日本で Haskell に…
やる気が出たので Firemacs をハックしています。今日の目玉は、これ。 C-xC-s で選択した文字列を web 検索 web 検索バーを利用する C-xC-a で選択した文字列(住所)を Google Maps で検索 前者はメニューで実現されているけど、後者は世界初だったりして(ま…
すでに旧聞に属しますが、IAjapan が「改正迷惑メール対策法に関するQ&A」を公開しました。改正された特定電子メール法と特定商取引法が2008年12月に施行されることを受けて、IAjapan は11月5日に「第6回迷惑メール対策カンファレンス」を開催しました。…
9月に注文して、ようやく今日届きました。Real World Haskell: Code You Can Believe In作者: Bryan O'Sullivan,John Goerzen,Donald Bruce Stewart出版社/メーカー: O'Reilly Media発売日: 2008/12/05メディア: ペーパーバック購入: 2人 クリック: 78回この…
以前紹介した「ダイヤモンドがお好きなら」の曲がアレンジされたそうです。航海の写真も GIF アニメになっていますね。
輪講で「Programming in Haskell」をようやく読み終えました。この本は、最高のHaskell入門書といって間違いないでしょう。Programming in Haskell作者: Professor Graham Hutton出版社/メーカー: Cambridge University Press発売日: 2007/01/18メディア: ペ…
僕は Haskell を知るまで、再帰に関しては、もう学ぶべきことはないと思っていました。しかし、繰り返しさえ再帰で実現しなければならない純粋関数型言語に触れてはじめて、再帰の深淵を見た気分になりました。以下、Programming in Haskell から 3 つ問題を…
「モナド則再び」で書いた「モナド則1」は何の訳に立つのかという問題ですが、"Monads for functional programming" に答えが載っていました。以下のような加算機を考えます。 data Term = Con Int | Add Term Term data M a = M a deriving Show instance M…
パーサーに関して、調べたことと疑問を書いておきます。パーサーに詳しい人に答えて頂けると、とても嬉しいです。チョムスキー階層によれば、以下のような関係が成り立ちます。 正規文法 それで、文脈自由文法の中は、こういう関係が成り立ちます。 LL法 GLR…
先日、7の倍数の見分け方を習ったので、忘れないように書いておきます。 任意の数字が、10a + b と表現できるとき、a - 2b が 0 (mod 7) となる場合に限り、その数は7の倍数である。 いくつか、例を示します。 21 → 2 - 2 × 1 = 0 35 → 3 - 2 × 5 = -7 → 0 1…
以前、MacPorts で GHC 6.10.1にバージョンアップすると cabal がインストールできなくなると書きましたが、今日インストールできるようになりました!
GHC に -XUnicodeSyntax オプションを指定すると、→ などの記号が使えるようになります。でも、λは使えません。以下のように書ければ、かっこいいのに。 f = λx → x + 1 という訳で、glasgow-haskell-users で質問してみました。答えは、λはギリシャ文字なの…
「ちょっと変わったLisp入門」の図中で、Haskell は動的と分類されていますが、Haskellは動的なんでしょうか?そもそも、動的ってなんでしょうか? eval が使えることですか? すると、Haskell は動的じゃない気がします。
気が向いたので、Firemacs を少し改良しました。 "C-M-" を実装 C-M-f と C-M-b をタブの移動に割り当てた C-m で検索を終了 Firefox 3 の Edit 領域で C-x と押すとビープ音がなるバグの修正 試したい人は、Firemacs の anon CVSからどうぞ。
今話題のauto-complete.elを使ってみましたが、以下の点が使いづらく、使うのを止めてしまいました。 候補が最大10個しか出ない 10個以上の候補がある場合、次に打つべき文字が分らない バッファの最下部でメニューが表示されると、勝手にスクロールされる …
セクション 前置表現 誤り 数値 (+3),(3+) )((+)3) (3(+))( (3-) )((-)3) (3(-))( (-3) (3-) 2 → 1 ((-)3) 2 → 1 negate 3 → -3 subtract 3 2 → -1 a - b == subtract b a == flip (-) a b
「LZWに震え上がった10年前の人たち」は、よく書けていると思うのですが、残念なことを一点指摘しておきます。LZW の特許は、まず IBM に認められました。その後、特許庁の手違いで Sperry にも認められました。特許庁が、内容が同じであると気付かなかった…
あきみちが、「Mac OS Xネットワークプログラミング」を書いて、はてブでも注目されているようです。今どき古いプログラミング・スタイルを推奨しちゃダメだよー。昨日、ブログにコメントを書き込もうと思いましたが、方法が分りませんでした。そこで、こち…
楽天の社員の方には口頭で直接言いましたが、他にも困っている人もいると思いますので、書いておきます。 2回目のチェック メルマガの受け取りがデフォルトでチェックされているのは嫌ですが、まぁ、我慢するとしましょう。でも、1回目でチェックを外した場…
以下、備忘録です。今年12月から広告メールにオプトイン方式が採用されます。あるユーザがオプトインした後に、登録を解除したいとしましょう。これまでのオプトアウト方式では、解除する行為自体がメールアドレスを相手に教えてしまうので、解除するのでは…
気付いている人も多いと思いますが、MacPorts で GHC 6.10.1 がインストールできるようになりました。(僕も、このバグにはまって大変でしたよー。)これで、世界のナベアツに挑戦できますね!なお、cabalのインストールは失敗します。utf8-string は、対処療…
今年のEmail Security Conferenceでは、目玉として基調講演に千葉県警の佐藤さんをお招きしました。「迷惑メール54億通、「タクミ通信」逮捕の舞台裏を千葉県警に聞く」にあるように、月に約1億2000万円も稼いでいたスパマーを捕まえた千葉県警の方です。今…
解説記事や発表資料で、ドメインの例を出す場合、example.jp等を使うことが推奨されているのを知っている人は多いでしょう。しかし、IPアドレスの方は知らない人もいるみたいです。ここでは両方について出典を示しながらまとめます。知っていて別の例を使う…
第六回迷惑メール対策カンファレンスでチュートリアルの講師を務めました。参加者のみなさん、ありがとうございました。関係者のみなさん、お疲れさまでした。主催者側の手前味噌の評価で申し訳ありませんが、たくさん質問が出て盛り上がったと思います。イ…
Cabal は Haskell のパッケージ管理システムです。枠組みとしての Cabal と、コマンドの cabal があり、間違いやすいです。 Cabal は、パッケージをコンパイルし、インストールする枠組みです configure, make, make install に相当 cabal は、パッケージの…
改正された特定電子メール法と特定商取引法が、今年の12月に施行される見込みです。ポイントは、以下の二点です。 条件付きですが、ISPはドメイン認証の結果を使って着信拒否をしてもよくなる 広告メールが、オプトアウト方式からオプトイン方式になる 受信…
パラメータ多相(parametric) 型のパラメータ化。静的。 length :: [a] -> Int length [] = 0 length (x:xs) = 1 + length xs C++のテンプレート Javaのジェネリックス アドホック多相(ad-hoc) 型によって、異なる振る舞いを示す。静的。 class Shape a where…
「世界のナベアツにHaskellで挑戦する」からトラックバックを頂いて、日本語で挑戦できないかと思い調べてみました。GHC に -XUnicodeSyntax なるオプションを発見。胸は高まりましたが、これは一部の記号が使えるだけだと分りました。利用できる記号の一覧…
今日、IIJ 技術研究所で jemalloc() について簡単に説明しました。その資料を公開します。 jemalloc() 〜 Firefox 3.0 爆速の理由 〜