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

中央線徒歩 (その 3)

土曜日に中央本線を目標地点まで歩きました。東山梨駅から韮崎駅まで。7 時半から 16 時まで。線路の距離で 26.9 km 、歩きの距離で 32.6 km 。スタート地点が遠くて、時間的にも交通費的にも厳しくなってきました。ホリデーパスを使って少しでも浮かします…

Seven Trees

id:bonotake さんに教えてもらった問題。すごく面白い。 ref: http://d.hatena.ne.jp/m-hiyama/20081022/1224640248 この問題を Haskell で言うと、 data Tree = Leaf | Node Tree Tree deriving Eq type Tree7 = (Tree, Tree, Tree, Tree, Tree, Tree, Tree…

rirb を github に登録して gem 化した

はるか昔に rirb (Remote IRB) というのを作って放置していましたが、github に登録して gem を公開してみました。せっかくなので再紹介。 rirb (Remote IRB) とは 実行中の Ruby プログラムにアタッチして irb プロンプトを開かせることができます。グロー…

Ramaze の 1.9 対応パッチを書いてみた

Ramaze のドキュメントを見る感じ、Rails よりずっと好みっぽい。Ruby 関係のものは「面白そうなおもちゃ」っぽさが重要ですよね。 しかも 1.9 対応!と聞いて試してみたら、全然テスト通りませんでした。しょうがないのでパッチ。とりあえず LANG=C rake te…

スタックオーバーフローの仕様の続き

C

いろいろコメントをいただきました。ありがとうございます。問題点を整理すると、 1. 「無限に再帰呼び出しをする」という意味は、リソースが有限な現実のコンピュータでは実現不可能である (末尾再帰だけとか特殊な例はできるけど、一般的には無理だと思う)…

中央本線徒歩 (その 2)

土曜日は中央本線の続き。大月駅から東山梨駅まで。7 時過ぎから 18 時半まで。線路の距離で 32.3 km 、歩きの距離で 44.3 km 。 一週間ぶりの大月駅からスタート。有名らしい山小屋風の駅舎は大したことなかったです。 国道 20 号を 1 時間強歩くと初狩駅。…

スタックオーバーフローの仕様

C

以下の C 言語のプログラムを実行すると、ほとんどの環境では異常終了すると思います。 int main(void) { main(); return 0; } この挙動は C の規格としてどのように説明されているんでしょうか。 たぶん未定義じゃないかと思うんですが、C99 の規格書の fun…

Coverity Scan で Ruby が rung 2 に上がった

coverity とは、C とかのソースコードを静的解析してバグ (っぽい箇所) を教えてくれるツールである Prevent を作ってる会社です。Coverity Scan というサービスをやっていて、オープンソースプロジェクトに対して Prevent を適用した結果を無償で提供してく…

中央本線徒歩 (その 1)

日曜日に、中央本線沿いを高尾駅から大月まで歩きました。6 時半から 17 時半まで。線路の距離で 34.7 km 、歩きの距離で 42.6 km 。最初は土曜日に歩こうと思ったんですが、高尾駅に着いた途端に雨が降り出したので、延期して日曜日になりました。 高尾駅か…

インクリメントについて

2ch の Ruby スレッドを見てみたら、a++ がなぜないかで盛り上がってました。定期的に出る話題。ぼくも 1.8 では後置 ++ を使いたい時が結構ありました。例えばこんな感じ。 # ["foo", "bar", "baz"] を [[0, "foo"], [1, "bar"], [2, "baz"]] にする i = 0 …

両毛線徒歩 (中編)

続いて日曜日に、岩宿駅から佐野駅まで。7 時半から 17 時前まで。線路の距離で 30.3 km 、歩きの距離で 36.5 km 。岩宿駅を出て畑の中を進むと、東武鉄道桐生線とわたらせ渓谷鐵道の踏切が並んで現れます。ちょうど電車がやってきたのですが、わたらせ渓谷…

両毛線徒歩 (前編)

前の土日で両毛線を 2/3 くらい歩きました。土曜日は新前橋駅から岩宿駅まで。10 時前から 18 時過ぎまで約 8 時間半。線路の距離で 26.6 km 、歩きの距離で 35.0 km 。移動に時間がかかるので、朝がどうしても遅くなります。10 時前に新前橋駅をスタート。…

総武線徒歩 (その 1)

続いて、はるばる銚子を目指して総武線を歩きはじめました。東京駅から東船橋駅まで。9 時半から 18 時まで。線路の距離で 25.0 km 、歩きの距離で 30.8 km 。ひたすら下町って感じのところが続きました。あまり書くこと無し。23 区の東の方は隅田川、荒川、…

総武線支線徒歩

総武線を歩きはじめました。まずは御茶ノ水駅から秋葉原を通って錦糸町駅まで。7 時半から 9 時過ぎまで。線路の距離で 4.3 km 、歩きの距離で 6.7 km 。吉祥寺に住んでた人間としては、総武線というと三鷹から船橋に行く黄色い電車というイメージがありまし…

base64.py が RFC 違反をしている件

Python の base64.py はマニュアルででかでかと RFC 3548 をうたっているのですが、全然準拠できてないことに気づきました。 RFC 3548 には Implementations MUST reject the encoding if it contains characters outside the base alphabet when interpreti…

alias p=lv

ふと思い立って .bashrc に alias p=lv と書いてみた。これは Ruby な人には病みつきかも。

複素数のためにリテラルを考えてみた

ruby-dev や ruby-list で上が (っては消え) る話に、複素数のリテラルがあります。要は Complex(1, 2) を 1+2i などと書きたいという話。僕自身は複素数なんて (Project Euler くらいでしか) 使ったことがないんで、リテラルが必要とは感じないんですが、こ…

Re: Ruby1.9 のクラスのメタ階層を整理する

いろいろ考える機会になっておもしろかったです。 Ruby のメタ階層が Smalltalk のそれよりぐちゃぐちゃしてる理由は Ruby にはプロトタイプベース (っぽいもの) があって、Smalltalk にはないため。 Ruby には Module があって、Smalltalk にはないため。 …

東武大師線徒歩

ちょっと時間があまったので、大宮から春日部経由で西新井に行って、東武大師線を歩きました。西新井駅から大師駅の 1 駅で 1.0 km だけなので、17 時 19 分から 16 分間で終わり。歩いた距離は 1.1 km 。西新井駅では氷川神社関係のお祭りをしてました。大…

宇都宮線徒歩 (その 5)

宇都宮線を歩き終わりました。東鷲宮駅から大宮駅まで。8 時半から 16 時まで。線路の距離で 21.3 km 、歩きの距離で 26.8 km 。1 週間ぶりの東鷲宮駅からスタート。宇都宮線の東側を行くと、東北新幹線の待避線の横を通る。地下道で宇都宮線を渡ると、宇都…

Grass で quine

この記事は Quine Advent Calender 2014 の 102 日目になりました。ref: http://d.hatena.ne.jp/shinichiro_h/20080910#1220988953やろうやろうと思って放置してたら先にやられてしまったー。一念発起して完成させて、がんばって縮めて見ました。 $ time rub…

grassfuck

じゃなくて grass2bf だそうな。すげー。おつかれー。 http://www.kmonos.net/wlog/89.html#_2129080907 やっぱり結局 brainfuck を手書きする (メモリ配置の設計をする) ところがメインになっちゃいますよね。つらすぎ。 そんなの面倒くさすぎるから、ちょ…

宇都宮線徒歩 (その 4)

最近都合がつかなくてさぼり気味でしたが、昨日は宇都宮線の続きを歩きました。小山駅から東鷲宮駅まで。8 時半から 17 時半まで。線路の距離で 29.0 km 、歩きの距離で 33.2 km 。一ヶ月ぶりの小山駅からスタート。 新幹線の高架沿いを 1 時間半ほど歩いて…

Hello, world! 496B

ちまちま削って 500B 突破! 相変わらずアルゴリズムは rst76 さんのまま。 wwWWwWWWwvWwwwWWwWWWwWWWWwWWWWWwvwWwwwwwwwwwwWWwWWWWwWWWWWWWwvWWWWWWWwwWWwWWWWW WWWwWWWWWWWWWWWWwwWWWWWWWWwWWWWWWWwWWWWWWwwwwwWWWWWWWWWWwvwWWWWWWWWWWWWWWwvWwww wwWWwwww…

Yet Another Grass 処理系

http://github.com/mame/grass-misc/tree/master/ こないだ作った Grass インタプリタは yagi.rb (Yet Another Grass Interpreter) という名前にしておきました。 yagc.rb は Grass コンパイラ (というほど大したことしないけど) で、Grass のプログラムを R…

カッコとキーボード

多くのプログラミング言語ではカッコが重要な意味を持ちますが、ASCII で書けるカッコは 丸カッコ '(' ')' カギカッコ '[' ']' 中カッコ '{' '}' 大なり小なり '' しかありません。 特にこの中で、シフトキーを押さずに打てるカッコはカギカッコだけです。純…

braingrass

brainfuck から Grass への変換器を書いてみました。brainfuck はできるけど、Grass はちょっと……という人向け。 # brainfuck のプログラム $ cat hello.bf +++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.-----…

Grass 処理系

プログラミング言語 Grass の Ruby 1.9 による処理系です。 # parse A, L = Struct.new(:m, :n), Struct.new(:code) code = File.read(ARGV[0]) code = code.gsub("\uFF37", "W").gsub("\uFF57", "w").gsub("\uFF56", "v") code = code.gsub(/[^wWv]/, "") c…

LL Future に参加した

あいさつできた人もあいさつしそびれた人も、みなさんおつかれさまでした。簡単に感想を。 基調講演 初 Larry Wall 。内容は Perl 6 専用 Language Update って感じ。あの文法拡張性はそりゃあ開発遅れるよなあ。 Larry は「文法の拡張性のアイデアは他の言…

LL Future

行きます。