検索インデックスを作ろう 前編 〜シェルスクリプトの力〜

1行のシェルスクリプトで単語リストを作る TAOUP:7.2 Pipes, Redirection, and Filtersを参考にした。 tr -c '[:alnum:]' '[\n*]' | grep -v '^[0-9]*$' | sort -iu 1番めのコマンドで、アルファベット数字以外を改行に変換する。 2番めのコマンドで、数字だ…

Gaucheでテンプレートエンジン(作りかけ)

Schemerは目に優しい丸括弧のSXMLで片付けてしまいますが、テンプレートエンジンもあると便利かなと思って、半日仕事ででっちあげました。単純なXSLTです。 作りかけです。バグがあります。コードもひどいです。コメントお願いします。 仕様 挿入 <p> Hello, #{</p>…

ocaml-nagoyaはてなグループ作ったよ

http://ocaml-nagoya.g.hatena.ne.jp/

Scheme どう書く?的「どうしたデルタ1? 応答しろ!」

整列済みの number のリストがある。'(1 3 4 5 6 12 13 15)このようなリストで数が連続している部分は '(1 2 3) -> '(1 . 3) のように両端のみを書くような記法を導入する。最初の例のリストであれば以下のようになる。'(1 (3 . 6) (12 . 13) 15)このような…

ThriftをOCamlで

今日のOCaml-nagoyaで発表した http://www.itpl.co.jp/ocaml-nagoya/index.php?Thriftそれはさておき OCamlには、うまいテンプレートエンジンがないらしい。 テンプレートごときに、型をつけるのは、型苦しい気がする。 テンプレートエンジンだけ、ThriftでR…

formlets HTMLのフォームを抽象化する試み

The Essence of Form Abstraction(PDF) http://blog.tupil.com/formlets-in-haskell/ こういうフォームで、日付入力ボックスを、部品として抽象化できたらいいよねという話。 入力が01〜12月の範囲かチェックとか、生のクエリデータを意識しないですむように…

MapReduceって高階プロセスじゃね?

Unix哲学には、標準入力と標準出力があって、つまりプロセスは、関数だ。関数型言語には、"関数をうけとる関数"がある。mapとか、foldとか。じゃあOSで、"プロセスをうけとるプロセス"ってなんだろう。 MapReduceか。MapReduceは未来では、OSの一機能になる…

プログラミングに詳しい人に質問です。に釣られてみる

プログラミングに詳しい人に質問です。大学でプログラミング経験の学部一年生向けにプログラミングを教えることを想定しています。週1コマ×半年程度の限られた時間で、プログラミングとはどういうものかという本質を教えたいのですが、どの言語を使うのが適…

はてなフォトライフにアニメーションGIFをアップできるようにしました

はてなフォトライフにアニメーションGIFをアップできるようになりましたGIF89aの仕様書を読み、 ライブラリのコードに深く深くわけいって、 やっと解決できました。どうぞご利用ください。はてなハイクのGIFアニメでひとことが盛り上がっていると、はてなス…

はてなインターンの2週間で作ったもの

私が提出したもの。これで評価は60点くらい。他の人はもっとすごいです。 はてなスターフレンドのRSSをAjaxで受け取ってツリー表示 はてなスターフレンドをグラフ表示 RidgeとMoCoで作った、TODOリスト ベクトル空間モデルによる類似検索エンジン Hadoopで転…

はてなインターン1週間のまとめ

まずはじめに、京都は美人が多い。 はてなのジョエルテスト ソース管理システムを使っているか? Yes. gitを使っている 1オペレーションでビルドを行えるか? Yes. 毎日ビルドを行うか? Yes. 障害票データベースを持っているか? Yes. gitと連携する内製ツ…

マリオのジャンプ実装法とVerlet積分(実践編)

前回の続き実際にやってみました。(Canvas要素を使っているのでFirefoxでどうぞ) http://eva-lu-ator.net/~gemma/geocities/jsmario/jsmario.html マリオのようにジャンプで放物線運動をするゲームを作るとき、 たいていは、座標と速度を使って物理計算する…

プログラミングと禅

禅(Wikipedia)ってプログラミングにも応用できそう。プログラミングにおける公案って何だろう。 それを理解しようとするうちに、いつのまにか悟りに近づいているような。 後になってみれば、答よりもそれを求める過程にこそ意味があったと気づくような。 学…

Python勉強中

Google App EngineのためにPythonを勉強中。自分はScheme使いなので、 Lisp プログラマのための Python 入門がとても役にたっている。 そういえば、学部3年で、「C言語の次に学ぶべきは、LispかPythonか」で迷ったときにも、この文書を読んだ覚えがある。 読…

ブラウザで動く2chブラウザ、ktkrリーダーを公開。Google App Engineを使っています。

http://ktk-reader.appspot.com/ Webサービスなので、インストール不要です。 2chブラウザと同じく、2chの負荷を軽減する効果があります。 Google App Engineで動いているので、十分な帯域幅があり、月間 500 万ページ ビューをサポートできます。 JavaScrip…

SEに「システムってなんですか?」と聞くと

マジシャンに、「魔法が使えるんですか?」と聞くと、彼はにっこりして、 「坊や、そのとおりさ! おじさんは魔法使いなんだ!」と言い、そして・・・ 「おっと、急用を思い出した。じゃあ、またいつでもショーに来てね!」 ・・・そそくさと行ってしまう。坊…

Code Complete "変数名の力"

変数には、処理の意味が分かる変数名をつけよう! x なんて名前はダメだよ!・・・Scheme使いは lambda(x) とか書きまくり orz それでもHaskellのポイントフリースタイルに比べればマシなほうさ(ぉ

Google App EngineのTextPropertyの文字コードの扱い

Python覚えたてなうえ、いろいろ試行錯誤中なので間違ってるかもしれません。気軽にコメントください。 ちょっと戸惑ったこと。 x.name = db.Text('Shift_JISの文字列',encoding='shift_jis') x.put() .... # shift_jisでDBに登録したTextPropertyを読み込む…

はてなTシャツ欲しい!

はてなTシャツ欲しい!id:mzpと着たい!

higeponさんのSRFI-98がドラフト入り

おめでとうございます。srfi-100は誰の手に? http://srfi.schemers.org/srfi-98/srfi-98.html

Python勉強中

Google App Engineにktkreaderを載せるべく、Pythonを使い始めた。初めてなので苦戦中。 しかし困った。HTTPのリジューム機能を使うときに"既に取得済みのファイルサイズ"が必要になる関係で、 Shift-JIS文字列のバイト数をはかりたいんだが。 いつもはファ…

Emacsで便利なものは全部Webサービスに化けるよ

ブラウザ(HTML) == Emacs(テキスト) ブラウザ(JavaScript) == Emacs(Emacs lisp) GMail == Mew Ta-Da list == howm ktkreader == navi2ch ? == dired ? == occur さあ、あなたもEmacs lispのリストからインスピレーションを得るんだっ

木の統合(SchemeをJavaScriptに移植した)

ktkreaderでアンカの親子関係を木構造にするのに使っています。 元コードはWiliki:Scheme:リスト処理 1:名無し hoge 2:名無し >>1 乙 3:名無し >>1 乙 4:名無し >>2 グッジョブ 5:名無し >>2 グッジョブ 6:名無し >>3 うむ >>4 おkw 7:名無し >>3 うむ 8:名…

Emacs用javascriptモードをjavascript.elからjs2-modeに乗り換えた

http://code.google.com/p/js2-mode/ GoogleのSteve Yeggi氏が作成しているもの。(彼はJavaScriptはThe Next Big Languageと主張している(私も同意)) おかげでインデントの崩れが解消されたよ!d(-_☆) グッ!! しっかしHaskellモード並のインデントcycle機構が…

JavaScript製 2chブラウザ「ktkreader」を開発中。2ch過負荷解決の切り札になるか?

先週末から開発を始めました。 まだ初期段階ですが、お試しください。 「通常表示」、「ツリー表示」ができるのが今回の目玉です。 本当はCGIと通信しますが、セキュリティが心配なので今回は無しです。 Ajaxで2chのdatを取得して、JavaScriptでHTMLをその場…

ニコニコ動画に見る、Webサービスの"描き方"

ニコニコ動画は、はじめYoutubeに依存していた。これが”プロトタイプ”。 そして、このプロトタイプは"実物大"だった。だからこそ、これだけの情報が引き出せた。 ニーズ。Youtubeのランキングがニコニコ動画に左右されるほどだった。 競合(字幕.inやmixi動画…

Mac Fan 7月号特集は"無敵のコマンド+ランボー"。写っているのはスタローン。

本家コマンドーのシュワちゃんに連絡がつかないのは仕方ないが、スタローンの気持ちを思うと切ないアッ-。そういえば、この前チャットで久しぶりにICQ時代のあいさつ「アッオー」を使ったら通じなくて、危ないところだった。 こういう意味に見えるらしい。 G…

ペントミノ パズル(明治ミルクチョコパズル)をGaucheで解く(1時間で解けるようになった)

Karetta|Cパズルプログラミング-再帰編|ペントミノを参考にアルゴリズムを改良した。 ピースXを左上1/4に制限 近傍を予備的にチェック 使用済みピースを調べない(これは前回もそうだった) ちゃんと2339通りが出力される。1時間(PenR E2140 Mem 2GB)で。 この…

マルチプロセスで20分で解けた

チョコレートパズルを継続渡しで(30分で解けるようになった) うぉー速い!こちらのPCでは19分でした。継続渡しという高度な技を使っている。末尾最適化がかかってるのか。ちょっとこちらの旗色が悪い。だがあきらめんぞ。じゃあマルチプロセスだ! Xミノの置き…

ペントミノ パズル(明治ミルクチョコパズル)をGaucheで解く

athosの日記 - チョコレートパズルを継続渡しで経由 大雑把には、6×10の長方形の枠に12個の異なる形のペントミノを隙間なく敷き詰めるパズル。他にも、6×11にヘキソミノを詰めるのとかいろんなバリエーションがあるらしい。 2339個の解答があるらしいですが…