"with" loss of generality

19:58 03/11/08

帰ってきました。結果 …は実質17/60位。来年頑張るぞー。東工大チームはマニラ大会を連覇したみたい。

旅行記@会津

東京駅集合 → 東北新幹線 → 途中で3人ノートPCを開き無線LANのad-hocネットワークで麻雀を始めたりする → 郡山で乗り換え → 会津若松駅着 → 昼食 → 会津大学へ → 練習 → JavaChallenge → 開会セレモニー → ホテルへ → 寝る。 起きる → 凄い霧だ → 会場へ → コンテスト鶴ヶ城ツアー → アーアー → 表彰式&パーティで生Jacquesさんが見れた → 終了後コンテスト参加者達で魚民へ → その後、結局大会中は自由観光してる時間がなくて残念だったので今から市内を巡る! とチームメイトを誘うも断られる → なにせ午前0時20分だ。 一人で近藤勇の墓を目指して歩きはじめる → 近くまで来ると街灯すらない → ていうか肝試し?みたいな道 → もう数十mで着けそうなのだけどもう自分の指も見えない暗さなので引き返す → てくてく歩いて白虎隊記念館 → 100段くらいの石段を登るとここが隊士のお墓だと思うけどよく見えない → 手を合わせてホテルへ戻る(午前3:00)。 翌朝は裏磐梯ツアー → 自由時間に遊歩道を散歩したり → 地域限定サイダーを飲んだり → ツアーで諸橋近代美術館へ入ったり → ダリの作品って実はAA以外で初めて見たのでした → 帰宅。

旅行記@ソウル

結局この日までハングル文字の勉強ができなかったので空港で60分マスター開始 → 飛行機 → バス → タクシー → 英語がなかなか通じなくてドキドキ → ホテル → 寝る。起きる → ソウル市内へ地下鉄で行こうとすれども 駅が見つからず迷いまくり → そういえば龍山にはよらなかったなぁ → 李舜臣像の近くにある教保文庫というバカデカい本屋へ → "More Exceptional C++" の韓国語訳を発見 → 日本語訳まだー? → もっと大きい店舗もあるらしい → ハングルの多い風景 → 秒速1文字くらいでなら読めるようになった、ばんざい → 会場へ → 練習セッション → 韓国チームとバーへ → 엽기 という単語を教えてもらった。ヨッキー! → タクシー → ホテルの近くで下ろしてもらった後皆で逆方向に歩き出してしまい迷いまくる → 寝る。起きる → コンテスト → ホテルへ戻る → 寝る。起きる → 空港 → 帰宅。

Tomak Again そしてバッグの中には当然の如く Tomak Again が。

09:13 03/11/05

ちょいとソウルに行って来ます。

…プログラミングコンテストマニア日記になってまいりました。

23:47 03/11/04

今日やった輪講、準備皆無な発表をしてしまい反省中。 関係者の方すんませんでした。自分の生活時間に占めるスパイダソリティアとxjumpの割合を考えるに、まだ週に14時間くらいは活動時間が増やせそうな気がするので、 何とかしなければ。

23:36 03/11/03

帰ってきました。 結果。正直、もう一問は解きたかったかなー。

今回は去年よりだいぶ慣れてたせいで、 他の参加者の方と沢山話すことができました。特に チームZangi-Fのコーチとして来ていたひよひよさんがオンラインソフトの作者さんということで、色々語らったり。

23:06 03/10/31

明日からちょいと会津に行って来ます。

変型!合体! という売り文句に惹かれぎみ。こういう、 「こんなに色々できても絶対使わないのに無駄に多機能」なものって、 絶対無駄遣いだと意識しつつもつい買いそうになってしまって危ないのです。

01:12 03/10/31

学食で "チョコレートコロッケ" なるものが売られてたので食べてみた一日でした。 まぁ、なんといいましょうか、甘かったです(当たり前)。 この調子でアイスクリームの天ぷらとかメニューに出してくれないかなぁ。

01:34 03/10/29

Google Code Jam Round 2。負けた~!

JavaApplet上で 250人 が 10人×25room に分けて処理されるんですけど、 撃墜タイム (仮) が終わった直後では588ptで部屋ではトップだったんですよ。 25部屋のうちもっとも最高点の低い部屋だったのは秘密ですが。 んでも50位くらいにはなれるかなぁ、よくやった俺、とか思ってたら、 Failed System Test とシステムテストに間違い発見されてしまいました。 234pt。うわーん。

問題は、「比熱と量と温度の違う2種類の液体を混ぜたときの最終的な温度の計算」 と 「k Nearest Neighbour法 でデータの分類」 と 「複数のトランザクションが与えられたときに、同時実行すると DeadLock が起きる可能性の判定」 をする関数、でした。

私の所属ではないのですが近いところにある某研究室に G'CAML の人がいらしてると聞いたので、お邪魔して話を聴いてました。 "Extensional Polymorphism by Flow Graph Dispatcing" について。 多相型関数にフローグラフを渡す形でコンパイルするのは、 単に最適化のためだけではなくて、G'CAML の表現力を殺さないための自然な方法でもある…などなど。

G'CAML のような型推論のあるシステム上でのオーバーロードの利点は、 そのインスタンス決定が 「宣言的/Prolog的」 なメカニズムで行われることではないかなぁ、と思ったり。 対比のために C++ という「作用的」な型計算機構を持つ言語で super_flat 関数を書いてみると、

/* super_flat: 深さ任意段のlistを一段に落とす */

// elem_of(T)       := T
// elem_of(list<T>) := elem_of(T)
template<class T> struct elem_of
  { typedef T type; };
template<class T> struct elem_of< list<T> >
  { typedef typename elem_of<T>::type type; };

// super_flat: ∀α.  list<α>       -> list<α>
// super_flat: ∀αβ. list<list<α>> -> list<β> where β=elem_of(α)
template<typename A>
 list<A> super_flat( list<A> lst ) { return lst; }
template<typename A>
 list<typename elem_of<A>::type> super_flat( list< list<A> > lst )
 {
   list<typename elem_of<A>::type> result;
   for(list< list<A> >::iterator it=lst.begin(); it!=lst.end(); ++it)
     result.splice( result.end(), super_flat(*it) );
   return result;
 }

返値型の構造の作り方を明示的に書かなければいけなかったり、 「返値を list<list<int>> と明示指定することで、 展開の深さを制御する」技が使えなかったり。 この2点は裏返すと、"HowToSolveでなくWhatToSolveさえ書けば十分" とか "入力(引数)と出力(返値)の区別がない双方向性" って論理型言語の宣伝文句ですよね。

…などと考えていたら次の約束の18:00まであと15分に迫っていたので、 後ろ髪を引かれまくりつつ慌てて退出。 WebcatPlus などのエンジンとして有名…かどうかは微妙…な GETA のアルゴリズムを改良するぞ会合、 を隅っこで聴かせてもらってました。 ちょっと気を抜くとメモリ空間が溢れる、って世界で、 大変そうですがこちらもメチャメチャ面白かったでした。

00:36 03/10/28

>>956-957。そう、かなり昔のバージョン(ver.2.08辺り)で、 自分にとっては完全に満足なんだよね。Noahスレが閑散としてるのを見てると 非常に申し訳なく思うのだけど、でも暇とやる気が両方ないので全然 "ネタ振り" になるような活動ができてないのです。スミマセン。 誰か改良版出したりしてくれないかなぁ。

20:39 03/10/25

Google Code Jam Round 1

今日は 500人→250人 に絞るラウンド。多分180位くらいで突破。びみょー。

追記: 結果出てた。ハンドルはabanikです。

なんとなく詳しく

どーいう感じかというと、まず点数の違う問題が3つ出て、 75分以内に好きな順番で解いていきます。どれも○○○をする関数を作れ、 という形式で、250点問題が 「携帯電話の基地局の座標と優先度、あと電話の現在地の座標が与えられた時に、 わりと近くの基地局のうち一番優先度が高いものを決定する関数」。500点問題が 「電気抵抗の直列とか並列とかのつなぎ方を決められたフォーマットの文字列で 入力すると、全体合わせた抵抗値が何Ωかを返す関数」。1000点問題は 「転送にかかる時間が刻一刻と変化するネットワークで、 与えられた2点を結ぶ最速のルートを決定する関数」。 で、プログラムが完成した!と思ったら1個1個 Submit。 問題を開いてから送るまでにかかった時間に関する減点方式で得点が入ります。

制限時間が終わると、次は "撃墜タイム"(仮称)。 他の参加者の Submit 済みコードを見ることができて、"そのコードは間違ってる" と思ったら、 間違いを具体的に指摘する入力例を送りつけられます。ホントの間違いであれば 50点Get。指摘された側はその問題で得たポイントを全部失います。お手つきは-50点。

んで、最後にシステム側が大量の入力データでテストしてみて、 間違ってたらその分を0点にする、という処理が行われます。 あとは最後に残った点数順で順位が決定、と。

02:27 03/10/24

Amazon から、しばらく前に注文していた 「The Art of the Metaobject Protocol」 などなどが届きました。それはともかく、私がこの本を買ったその翌日に "書籍3900円以上のご購入で、オリジナルブックカバーをプレゼント!" というキャンペーンを始める Amazon をお恨み申し上げたいのですが。

23:37 03/10/21

唐突ですが、今日は何故だか「ひじき」の名前の由来を調べたりしていました。 ひじき講座 というサイトが詳しいです。漢字で書くと「鹿尾菜」だそうな。 敬老の日はひじきの日らしい。

Google Code Jam 2003

1000点問題の方を凡ミスでかなり時間くっちゃったんですけど、 次のラウンドへは進めることに。 GoogleTシャツGet~。

09:56 03/10/21

IEの"お気に入り"の"リンク"メニューを長らく嫌っていたのですが、 お気に入れっと置き場として復活させてみました。 何故か半角カナなのはブラウザ窓の横幅が足りなくなりそうだからです。 よく考えると [HTTP見] (Web-Sniffer へ飛ばす)と [↑] (Googleツールバーにある、上ディレクトリへ移動するヤツ) しか使っていないので他を消せば足りるんですが、 面白いのでつい色々追加してしまったのでした。

Dear ...

Pure functional programmers, your days are numbered. The grim reaper is knocking at your door.

Erik Meijer's blog

にやり。

00:44 03/10/19

友達のウチでゲーム中の会話。」ってスレが面白い。 マリオカートネタがツボにはまりまくり。

TABLEタグで数式表示 が何だかとても綺麗なので今度どこかで使ってみたいなぁ。 平方根や立方根をどう再現するか、考えてみよう。

今度必要になるのでとりあえず字だけでも覚えるべし、と 60分で文字修得ハングル編 というのをお気に入りに追加。追加したはいいんだけど60分も暇無いってば。

02:13 03/10/17

[boost] Re: Physical Quantities revisited にて、主に boost::MPL による C++ でのメタプログラミングを解説するスライドが紹介されていました。 template-meta の特徴、という箇条書きの中の一つに

Deep manipulation of native program elements (type introspection).

というのがあって、それだよそれ!と思わず膝を打っています。 実行時式の型を途中まで推論してから結果をメタプログラムの世界へ持って上がって、 その型を元にメタ計算して再度実行時式を生成して戻る、 なんてのはもう踊り出したくなるくらい楽しいではないですか。

21:49 03/10/13

はてなアンテナからまた楽しそうな 新機能、とな。 w.l.o.g.のおとなりページ (要Java) などが表示できます。

表示されたマップを見ると、「w.l.o.g に近いページ」 というより 「w.l.o.g.を登録してるアンテナによく登録されてるページ」という色が強いなぁ、 と感じました。距離の算出方法がその通りなのでしょうから仕方ないのですが、 "こういう並びのアンテナありそう~" とは感じても "おとなり" 感はちょっと。

むしろ、おとなりページで得られたページ集合をもとに、 それらのページに関連の深いアンテナを提示する 「おすすめアンテナ」 機能とかどうでしょうね。

23:02 03/10/12

カノン100% シリーズ というのを知ったので買おうかな、と思っているところ。

蒙古襲来の危機のため、では全然なくて、 土日はなんとなく鎌倉へ参じていました。 勝手に自分のペースで「きゅうけいー!」とか叫びまくってたので 同行者に迷惑かけてなかったか不安ですが、複数人で長距離歩くのも楽しいなぁ、 ということがわかりました。またどっか行きましょう。

02:13 03/10/11

参加者が学科の B2~M2 までわたるという楽しそうな宴があったので、 参加していました。2年生に 七行er がいることを知って思わずニヤリ。

23:34 03/10/09

Merd 月間が終わって gbeta月間 になりました。それとは全く関係ないのですが、 今猛烈にcall by needな言語のコンパイラが書きたくて仕方がないので誰か暇を下さい。

おおっ、TClockの人 が復活! めでたい。ソースの使用条件に縛りがかかってしまったのは残念だけれど…。

22:19 03/10/06

双方向ポインタってものを書こうとすれどもロクなものができなかった例: bidi_ptr.cpp

秋葉原に行ったら、しばらく前に書いたようなCD入れをツクモで見つけたので、4つほど買い込み。 スピンドルケースと呼ぶらしい。社名にちなんでいるのかどうかは知りませんが、 1個99円でした。あとこれも書いた話の続きですが、ファイナルファンタジーのボーカルコレクション2 "Love Will Grow" というのをゲット。1の方が好きだったかも。

23:59 03/10/03

今日は tossy-2氏真耶氏 とチーム "Gokuri" を組んで、 ACM/ICPCというプログラミングコンテストの国内予選に参加してました。 5問プログラミングの問題が出て、3時間で、 できるだけ多くできるだけ早くできるだけミス少なく解いた方が勝ち、というルール。 問題順位。 感想は、tossy-2さんすげぇ、と。次も頑張ろう。

00:42 03/10/01

課題(9/30締め切り)やっと終わったー! …と思ったら秋休み(9/30終了)も終わって今日から授業開始ですよ。むう。

Chain of Responsibility の実装の比較 ってのを見て、 C++で書いてみる

01:20 03/09/30

Interface誌の「開発環境探訪」という連載、Iconを紹介してた回に知って以来毎月楽しんで読んでいます。 その今月号にて D言語が取り上げられてました。 配列まわりからDbCまで、言語自体の特徴的な部分の紹介と、 あとはDIDEやdigなどの周辺事情について軽く。 今D言語を概観するには最適な記事なんじゃないかと思います。みんな読もう。 欲を言えば、templateやclosureやらの話も読みたかったなぁ。

02:16 03/09/29

よく知らんのですが、CowParade というイベント中らしく東京駅付近が牛だらけなので、 巡り歩いてました。

15:14 03/09/27

そういえば Google Hacks を立ち読みした記憶によれば、google には最終更新日の範囲を限定して検索する機能があったはずです。 ということで、最近N日の間に更新されたサイト限定でサーチ。

google
最近 日分を

先人のを参考にしながら JavaScriptで書いてみました。日時情報自体が全然厳密なものではないようで、 期待したほどうまくは動きませんでした。が、なんとなくそれっぽくはある。

04:18 03/09/27

フレッシュアイ のような「新しく更新されたページに絞っての検索」って、 どこが一番評価が高いんでしょうか。何だかあまりパッとしたものが見つからなくて。

うちわ向け

日曜13:30丸の内線東京駅集合で牛。

00:18 03/09/26

どこでだったかは失念したのだけれどつい最近 Plan9のマスコット を知りまして。 この可愛いような可愛くないような微妙っぷりがマイブーム。

21:46 03/09/23

"bookmarklet" を 「お気に入れっと」 と呼ぶことに決定しました。

…と、似たようなこと考えてる人が絶対沢山いると予想したんだけど、 「しおれっと」 が一人見つかっただけで寂しいことであるよ。

探し物

30枚入りとか50枚入りでCD-Rメディアを売るのに使う、 あのトイレットペーパーを挿せそうなケース、 あれをケースだけ欲しいのだけどどっかに普通に売ってますかねぇ。

卒論

月曜日に GETA の中の人こと担当教官に会って話をしてきました。Generic programming やらプログラム変換やらメタプログラムやらの方面で面白いのって無いですか? と訊いて FFTWBANE、 他幾つかネタを振ってもらうなど。何をやろうか。

presented by k.inaba (kiki .a.t. kmonos.net) under CC0