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

関数ポインタのキャストと gcc

C

C の関数呼び出しは、関数定義の型と互換性のない型として呼び出したら未定義動作です。例えば以下のコードの動作は未定義です。 #include <stdio.h> int main(void) { ((int (*)(char *, ...)) &printf)("Hello, world!\n"); } printf は int printf(const char *, .</stdio.h>…

はじめての gem と hoe と github

gem はソースを読んだことはあっても、まともに動かしたことがなかったのは秘密。 Hoe は gem 用プロジェクトのスケルトンを作ってくれるツールで、gemspec なんかもさくっと作れるということで使ってみました。 $ sow threadfiber ... done, now go fix all…

threadfiber - Thread による Fiber の実装

Thread を使って Fiber を模倣するライブラリを作ってみました。 require "threadfiber" ThreadFiber.deploy f = Fiber.new do p :foo Fiber.yield p :bar end f.resume #=> :foo p :hoge #=> :hoge f.resume #=> :bar 1.9 の Fiber とちがって、Thread をま…

京葉線高谷支線・二俣支線徒歩

京葉線高谷支線は市川塩浜駅から西船橋駅までの短い支線です。14 時から 16 時前まで。線路の距離で 5.9 km 、歩きの距離で 6.9 km 。 二俣支線は西船橋駅から南船橋駅まで。16 時から 17 時過ぎまで、線路の距離で 5.4 km 、歩きの距離で 5.5 km 。京葉線に…

京葉線徒歩 (前編)

昨日は京葉線を歩き始めました。東京駅から市川塩浜駅まで。7 時すぎから 14 時まで。線路の距離で 18.2 km 、歩きの距離で 24.2 km 。東京駅の京葉線ホームそばの改札から出て、なんかすごく裏口っぽいところからスタート。 京葉線は東京駅から潮見駅の手前…

倫理にもとる行い

ずっと「倫理にも劣る行い」だと思ってましたが、「もとる」という動詞でした。変な言葉だなあとは思ってたんだよね。うん。

宇都宮線徒歩 (その 3)

8 月 9 日は宇都宮線。5 月に黒磯から宇都宮まで歩いたのの続きで、宇都宮駅から小山駅まで。7 時半から 16 時まで。線路の距離で 28.9 km 、歩きの距離で 33.0 km 。駅周辺はちょっと開けてますが、駅と駅の間はやっぱり田舎で、牛とかんぴょう畑が印象的。…

水戸線徒歩 (後編)

8 月 7 日は続きで、大和駅から小山駅まで。8 時前から 18 時前まで。線路の距離で 25.9 km 、歩きの距離で 34.6 km 。昨日と同じ田園風景。左には筑波山。小貝川を渡ろうとしたら、地図に載っている直井橋 (このあたり) が無くなっていて、思わぬ遠回り。下…

水戸線徒歩 (前編)

夏休みに茨城西部と栃木南部を歩いてきました。8 月 6 日は水戸線の前半で、友部駅から大和駅まで。9 時から 17 時半まで。線路の距離で 24.3 km 、歩きの距離で 29.2 km 。水戸線といっても、水戸駅には行きません。常磐線との接続駅である友部駅から栃木の…

武蔵野線徒歩 (後編)

土曜日は武蔵野線の続きを最後まで歩きました。東川口駅から西船橋駅まで。7 時から 18 時半までの 11 時間半。線路の距離で 32.7 km 、歩きの距離で 41.3 km 。東川口駅に着くと、紫のスーツを着たホストっぽい人がいて、うおーって感じでした。 越谷市に入…

coverity やばい

PPL サマースクール 2008が告知されています。内容はおおいわさんのFail-Safe Cと、coverity 社の人による Thread Analyzer for Java とかいうツールの紹介だそうです。 それとは関係ないんですが、coverity 社がやってる Coverity Scan というサービスがあ…

武蔵野線徒歩 (前編)

土曜日は武蔵野線を歩き始めました。府中本町駅から東川口駅まで。6 時すぎから 18 時半すぎまでの 12 時間半。線路の距離で 39.2 km 、歩きの距離で 49.4 km 。一日で歩いた距離の最長記録でした。南武線徒歩の時ぶりの府中本町駅をスタート。朝早いので人…

最近の Ruby 活動

Ruby 1.9.0-3 がリリースされました。せっかくなので最近の僕の Ruby 活動を書きます。 「目指せ make test-all 0F0E」活動中 0F0E とは 0 failures, 0 errors のことで、要するにテストを全部パスさせようという個人的な野望です。RubyKaigi が終わってから…

高尾登山電鉄徒歩

この日は最後に、高尾山のケーブルカーを歩きました。17 時 53 分から 18 時 29 分の 36 分間。線路の距離で 1.0 km 、歩きの距離で 2.1 km 。この時期のケーブルカーは本来 18 時半が終発のようですが、高尾山ビアマウントとかいうのの開催期間なので 21 時…

京王動物園線徒歩

多摩動物公園駅から高幡不動駅まで歩きました。16 時 51 分から 17 時 16 分の 25 分間。線路の距離で 2.0 km 、歩きの距離で 1.9 km 。多摩動物公園駅のホームは一部使われていないようで、草が生い茂っていたのが印象的でした。駅前には多摩動物公園で、親…

京王競馬場線徒歩

府中競馬正門前駅から東府中駅まで歩きました。15 時 38 分から 15 時 52 分の 14 分間。線路の距離で 0.9 km 、歩きの距離で 1.2 km 。東京競馬場の目の前で、競馬開催日じゃなかったと思うのですが、スポーツ新聞を持った人が結構いました。駅に「予想行為…

京王新線徒歩

続いて、笹塚駅から幡ヶ谷駅、初台駅を通って再度新宿駅まで歩きました。13 時から 14 時半までの 1 時間半 (幡ヶ谷駅で昼ご飯ふくむ) 。線路の距離で 3.6 km 、歩きの距離で 3.8 km 。京王新線は京王線の笹塚駅〜新宿駅と平行して走っていますが、別の名前…

京王線徒歩 (後編)

土曜日は先々週の続きで、京王線を国領駅から新宿駅まで歩きました。7 時半から 12 時半までの 5 時間。線路の距離で 14.2 km 、歩きの距離で 17.8 km 。国領駅から笹塚駅までは古い住宅街がずーっと続いてる感じでした。とても世田谷っぽい雰囲気。駅間はど…

表のコインをもらうパズル

有名かもですが、僕は知らなかったので。 N 枚のコインがある。 1. すべてのコインを投げ、その中から 1 枚以上のコインを選んで脇へ移す。 2. 残りのコインに対して 1 を繰り返す。 3. 投げるコインがなくなったとき (= 全部脇に移したとき) 、表向きのコイ…

3 not の問題

x,y,zの3入力, x',y',z'の3出力を持つブラックボックスがある. 入出力の関係は x' = not x y' = not y z' = not zである. ブラックボックスには, andとorは好きなだけ使われているが, notは2つしかないことが分かっている. 内部はどうなっているか. 3 not pr…

Solaris10 環境の構築

ICFPC は投げ出してしまいましたが、せっかく VMware player をいれたので、Solaris 10 環境を構築して遊んでました。四苦八苦した記録 (未完) をざっと。 Solaris 10 のダウンロード。Firefox だとなぜか Sun のダウンロードの認証が通らなくてはまる。Slei…

ICFP Contest 2008 (2 日目)

(08:30) ふぁーあ……ねむいな……寝てていい? (08:40) 別に問題や運営が悪いわけじゃないけど、やる気しないー。むしろ問題は去年より面白いと思うのですが。

ICFP Contest 2008 (1 日目)

(05:40) 眠いです。問題読みました。今回は問題がシンプルでいいですね。こういう制御系は専門家や既存資産がありそうな気もするけど。ていうかシミュレータまだー? 眠いので寝て待ちます。 (11:00) なんかやる気しないー。歳かなあ。障害物無視してホーム…

囚人 100 人のパズル

飛廉さんから聞いた問題。 囚人が 100 人います。ある部屋に 100 個の箱があり、囚人の名札が 1 枚ずつランダムに入っています。 これから囚人が 1 人ずつ部屋に入り、自分の名前を探します。 1 人あたり 50 個の箱をあけます。 その中に自分の名前がなけれ…

京王線徒歩 (前編)

続いて、京王八王子駅から国領駅まで京王線沿いを歩きました。10 時半から 19 時前までの約 8 時間半。線路の距離で 23.7 km 、歩きの距離で 27.2 km 。かなり暑い日でしたが、そんなに苦にはなりませんでした。湿度がそんなに高くなかったのと、ずっと緩や…

京王高尾線徒歩

例によって土曜日に京王高尾線を歩きました。高尾山口駅から北野駅まで。7 時過ぎから 10 時前までの約 3 時間。線路の距離で 8.6 km 、歩きの距離で 11.3 km 。梅雨が明けたかのようにかんかん照りだったので、サンバイザーにサングラスでタオルを首に巻く…

内房線徒歩 (その 1)

先週の土曜日は RubyKaigi で歩けなかったので、昨日は長めに千葉の内房線を歩きました。蘇我駅から君津駅まで。8 時半すぎから 20 時までの約 11 時間半。線路の距離で 38.3 km 、歩きの距離で 45.7 km 。常磐線をのぞいて初の千葉歩きでした。第一印象は、…

記号だけで brainfuck インタプリタ

Ruby 1.9 の新機能のひとつに「lambda { ... } を -> { ... } と書ける」というのがあります。この表記は反対意見が根強い *1 ですが、確実にすばらしい点があって、全部記号だということです。これによって Ruby が記号だけでチューリング完全になります *2…

rrencode for 1.9

rrencode は指定された文字列を出力するプログラムを記号だけで合成するプログラム、ですが、Ruby 1.9 では ?. とかが文字列を返すようになってしまったので動きません。 そこで 1.9 用に別の実装を作ってみました。Hello, world! はこちら。 _=[*' '..?~]*'…

false || not(true) のパースが通らない件

RubyKaigi 2008 の増原先生の発表 (資料) で飛ばされた部分に、「false || not(true) のパースが失敗してはまる」ということが書いてありました。全くその通りだと思います。訓練された Rubyist は無意識に not を避けてると思います。 not は見た目が関数っ…