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

ついでに

はてなダイアリーが ALPSLAB route に対応したとのことなので、せっかくだから全部貼り付けてみました。たいてい縮尺を最大にした状態 (一番細かい様子がわかる縮尺) で道を描いてます。違う縮尺だと道がずれることがあるようです。

湘南モノレール江の島線徒歩

根岸線のついでに、大船から湘南江の島まで湘南モノレール江の島線沿い (というかモノレールなので下) を歩きました。夕方の 5 時から 夜の 7 時過ぎまで、約 2 時間。線路の距離で 6.6 km 、道のりで 7.7 km くらい。この沿線歩きは以下の理由でかなり危険…

根岸線徒歩

今日は横浜から大船まで根岸線沿いを歩きました。朝 9 時から夕方の 17 時前まで 8 時間弱。線路の距離で 22.1 km 、道のりで 22.6 km くらい。距離だけで見るとそこまで大したことなく見えるんですが、実際にはかなり大変でした。丘陵地帯であるためアップ…

正規表現と IO、正規表現とリフレクション、正規表現と PEG

IO に対して正規表現マッチングをするのって面白そうだなぁと思います。マッチ成功するか、必ずマッチ失敗することがわかるまで、適宜ストリームを読み込んでくれる感じ。後方参照はなしでいいので。何に使えるかは後からついてきます。関係ありそうであまり…

京急空港線徒歩

さらに今日は羽田空港から京急蒲田まで京急空港線沿いを歩きました。昼の 3 時半過ぎから夕の 6 時半まで約 3 時間。線路の距離では 6.5 km ですが、道のりでは約 9.7 km になりました。羽田空港のある空港島を徒歩で脱出するために、かなりの迂回が必要でし…

ゆりかもめ徒歩

今日は新橋から豊洲までゆりかもめ沿いを歩きました。朝 9 時から昼の 1 時過ぎまで約 4 時間。線路の距離で 14.7 km 、道のりで 15.4 km くらい。連日の暑さがあったので無理はしないと決めていたのですが、一日中ずっと曇りで気温は低く、適度に風もありま…

外部イテレータにケチをつける

Ruby 1.9 にデフォルトで外部イテレータが入ったということで、早速遊んでみました。まずはお約束。原因究明してないけど、多分 Fiber のせい。 callcc {|c| $c = c } def (o = Object.new).foo $c.call end o.to_enum(:foo).next #=> SEGV

花火

多摩川沿いで見てきました。夜空に映える花火に映えるクレーンがとても綺麗でした。写真は飛廉さんによる。 クレーンはナイアガラの滝用。目の前で見たのは初めてでした。シャッター間隔を変えた二種類の写真。 打ち上げ花火を見てるとシューティングやって…

日本語の Coq 情報

Coq

ついでに、主に日本語の Coq 情報を (10 分で思い出せる範囲で) まとめてみます。順不同。 公式に近い情報 本家 Coq'Art (Coq の教科書) Cocorico! (本家 Coq wiki) CiteSeer (笑) Coq のことをまとめようとしている wiki 菊さんの Coq wiki Tossy-2 の Coq …

brainfuck interpreter in Coq

Haskell 、Erlang の次のブームは Coq に違いありません。とりあえず基本ということで、Coq でひねりのない brainfuck インタプリタを書いてみました。動作例。Coq のコードが色づけできないとは何事か。 Eval compute in (finite_execute " +++++++++[>++++…

猿でもできる ruby の落とし方

最近 ruby 1.9 の小さいバグを見つけては ruby-dev に報告しておるのですが、大体こんな感じの馬鹿コードを走らせて探してました。 chars = [ " ", "%", "%Q", "%q", "%r", "%w", "%W", "%s", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",",…

後方参照のある正規表現の能力

定期的に出てくる話題ですが、プログラミングで出てくる正規表現は正規表現ではないので、素数判定ができます。正確には、文字列の長さが素数かどうかを判定できます。2 文字以上のマッチが 2 回以上出現するかどうかを見ます。後方参照がポイント。 p (2..3…

semi-coroutine の使用例

ついでに、Lua のソースコードに付属するテストで、coroutine (semi-coroutine) を使っているもの 2 つを移植してみました。

callcc と coroutine と semi-coroutine

Ruby で callcc を使って coroutine や semi-coroutine を書いてみました。あまり考えずに試行錯誤で書いたので間違ってるかもしれませんが、とりあえず晒してみます。coroutine は Modula-2 で採用されているもの、semi-coroutine は Lua で採用されている…

rope ライブラリの実用性

ところで rope ライブラリって本当に役に立つもんなんでしょうか。rope は結合が早い、ということで、試しに erb の出力バッファを rope にしたものを作ってみました。通常版の erb では String#concat で結合しているのできっと早くなります。一度に結合す…

rope ライブラリの続き

先日の rope ライブラリが微妙に注目を受けてしまっているようなのですが、リファレンスカウント周りがまともに動いておらずリークしまくりです。リファレンスカウント周りを直し、struct をシンプルに書き直し、他にいくつかバグをとったところ、DNA インタ…

歯痛 (2)

絶賛治療中です。担当の先生は手荒な気がするなぁと思っていたところ、LL 魂中に仮の詰め物が欠けて焦りました。まあ今も欠けてるんですが。明日また歯医者行ってきます。 若めの女の先生なんですが、物陰で歯科衛生士さんとくっちゃべってたり、新人っぽい…

イテレータの prev

Ruby のイテレータには next があるのに prev がありません。不自然です。しょうがないので仕様だけ作ってみました。 配列先頭からランダムウォーク。配列から外れたら終了。 a = [] [1,2,3,4,5].each_with_prev do |i| a << i (rand > 0.5) ? next : prev e…

LL 魂

Lightweight Language Spirit を覗いて来ました。出不精だったりなんだったりでこの手のイベントは初めてでしたが、面白かったです。 IO の if の実現の仕方に感動しました。 Clean の一意型ってモナドよりずいぶん簡単そうですね。デメリットはないのかな。…

rope ライブラリ

ICFPC で話題になった rope/cord ですが、特定の言語環境でしか使えないのはもったいない話です。そこで Ruby の拡張ライブラリとして実装しようとしました。 rope とは 以下の特徴を持った文字列の実装です。 文字列と文字列の結合が速い (O(log n)) らしい…

本屋の検索端末

最近は本の検索端末が設置する本屋が増えてましたが、まだ設置していない本屋の方が多いです。大きい本屋は必ず設置して欲しいと思うのですが、本屋としてはコストに見合わないのでしょうか。いまどきの中〜大規模の本屋はすでにコンピュータで在庫管理して…

南武線徒歩

今日は、立川から川崎まで南武線沿いを歩きました。朝 9 時過ぎから夜 8 時過ぎまで約 11 時間。線路の距離で 35.5 km 、道のりで 40.7 km くらい。川の水がどんどん汚くなっていくのが印象的でした。南武線は長距離散歩には向いてませんでした。線路沿いに…

FlashPlayer バグ報告の続き

swf

ふと思い出しましたが、Flash Player のバグ報告をしてから 2 ヶ月近く経ちました。でも未だに修正されていません。ぶっちゃけ IE や Firefox をスタックオーバーフローで落とせるんですが、落とせるだけだと脆弱性にはならないという判断なんでしょうか。単…

ICFP Contest 2007 その後

ナイスまとめありがとうございます。15 位内のみなさんがどんどん解答を公開されるため、自分たちの順位がどんどん下がっていってしょんぼりしている今日この頃です。が、一応学会まで最終結果がわからないのも ICFPC の趣向の一つだと思うので、僕らの解答…

ICFP Contest 2007 まとめ

ICFP Programming Contest 2007 が終わりました。僕は kuma-- として参加していました。ゆんさん、飛廉さん、僕の 3 人チームです。今年の問題は、与えられた DNA (プログラム) にできるだけ短いコードを付け足して、その発現結果 (画像) を指定画像にできる…

ICFP Contest 3 日目

(08:05) クーラーを消してうなっていたら体調は回復しました。昨日発覚した新事実もなんとかクリア&妥協しましたが、まだまだ奥は深いようです。それにしても Scoreboard に動きがありませんよね。みんな submit せずにこっそり必死にがんばっているのか、…

ICFP Contest 2 日目

(03:03) 2 日目にしてやっとゲームが始まりました。今大会はゲームを始めるまでの難易度が高いですね。 (16:16) 期間が半分終わって、やっとこさゲームの趣旨を理解しました。さすがにゲームバランスが厳しすぎる気が。とりあえず dna2rna の性能が出なくて…

ICFP Contest 1 日目

(00:55) 絶賛デバッグ中です。未だに DNA インタプリタが動かず無能っぷりを発揮してます。くまくま。 (00:58) RNA インタプリタはできて高速化中らしい。あせあせ。 (15:35) 睡眠と勘違いで 10 時間浪費しました。まだまだ何かいろいろ大きなものを見落とし…

高速 Bignum#to_s

Bignum と戯れていて気がつきましたが、とても大きい値は表示するだけでかなり遅いです。65536**65536 (300,000 桁くらい) で 71 秒とか。Ctrl+C で止められないのでいらいらします。 $ time ruby -e 'p(65536**65536)' > r1.txt real 1m10.802s user 0m4.58…

歯痛 (1)

歯が痛いです。虫歯でしょうか。歯が痛くなるとつらいとわかっていても、歯医者に行きたく(ry この調子だと ICFP Contest 中に歯医者に行くことになるかも。ゆんさんごめん。