トップ «前10日分 最新 次10日分» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|

ToDo:


2009-09-11

_ ICFP的なにか

みんな急な日程で来ていただいてありがとうございますという感じでした。 木曜の晩とかそんな忙しくないだろうと僕の感覚で考えてたら みなさん結構忙しいようだった。

まぁなんか来られなかった人とか 喋りたりなかった人は他のアレを企画してくださいぜひ的なアレ。

会自体はこう必要以上にインターナショナルというか みんな気をつかって英語とか使っててすごいなぁと思った。 もっとこうどうどうと日本語で喋って向こうに聞き取らせるくらいの… ええ僕もムリなんですが…という感じだった。

ICFP的には、完成したプログラムでバグがなくて、 あとまぁみんなと似たような bruteforce を 高速なシミュレータでやれたのがデカかったのかなぁ…とか思った。

たぶん探索できる範囲とか時間とかがそうとうおおかったんじゃないかなぁ。

あと naoya_t さんがその場で SRM やっててかっこよすぎた。 あれいいなぁ僕も今度やりたいけど酒呑んで SRM はロクなことになった記憶がない

(01:38)


2009-09-10

_ ICFPなんちゃら

明日の昼頃適当に予約を取るので、 それまでに連絡をいただければなんとかします。 20人ていう見積りはどこから来たのか知らんけどどう考えてもそんなにいないな… 具体的には14人? 人数の把握すらできとらん…

詳細としては、19時渋谷モヤイということにしておきます。

070-6513-8161 / phs ___at____ shinhskrjp (ドットは適当に推測してください)

とかに連絡ください。

19時スタートなら21時にいらしても1時間半くらいは やってるんじゃないかなーと思いますがどんなもんですかね。

http://twitter.com/tanakh/statuses/3859144009

店とか決まったら明日ここに書いておくんで、 自力到達されるか上記へ連絡していただければ良いように思います。 席は大目に確保できるよう努力しておきます。

SRMとかぶってるのは気付いてませんでしたすいません。

(01:27)

_

19:30 で渋谷わんスペイン坂店予約しました。 今たぶん12人で15人くらいは余裕で入れるぽいので 遅く来る人は来ていただければたぶんなんとかなります。

http://maps.google.co.jp/maps?f=q&source=s_q&hl=ja&geocode=&q=%E6%B8%8B%E8%B0%B7+%E3%82%8F%E3%82%93&sll=36.5626,136.362305&sspn=78.865841,88.681641&ie=UTF8&z=17&brcurrent=3,0x60188cb2eb3108d1:0xf11cd9b2395b6677,0

の A


2009-09-08

_ 大変急ですが

そろそろ日本にいない系の方から ICFPについて話す会があるといいんでないかという話をもちかけられ、 どうせなら適当に呑み会にすればいいんでないかということで 適当に参加者を募集してます。 今週の木曜の晩に渋谷という感じです。 僕のカンでは 20 人くらいにはなるんじゃないかなーとか思ってます。

水曜くらいまでに連絡をいただければ 適当に対処するので適当な手段でご連絡をいただければという感じです。

参加条件は特に無いのですけど、hogelogさんとこのまとめに存在してる程度に 今回のコンテストに参加した方のほうがいいんでないかと思います。 具体的には問題を理解しようとして解こうとしてみた、くらいでしょうか

(02:32)


2009-09-04

_ ICFP で調べたいと思ったことリスト

  • Fortress
  • 限定継続 shift/reset
  • OCaml debugger
  • Parallel Haskell
  • ocamljs, O'Browser

めも

(03:56)

_ 英語について

なんとか or なんとか? って聞かれた時に発作的に後者を選んでしまうことが多くて困る。 "tea or coffee?" "coffee" と言いつつ本当は tea が欲しいことがなんと多いことか。

"good luck" はおまえの努力とは関係なく運まかせという印象を持ってたのだけど、これどうも本当に完全に頑張れって意味なんだなぁ…お前の努力が十分なのは自明で、後は不運が無ければ完璧! みたいな感じで解釈すればいいのかなぁ。それとも全ては神の思し召し的な話なのかなぁ。

receipt と invoice の違いがよくわからない。日本語のレシートが receipt で領収書が invoice ってイメージかなぁ。

最後に ? がつかない方の isn't it がさらりと言えるとかっこいいと思う。僕はそれ以前に疑問文がすっと出てこない。特に主語が2語になると全然言えないのはなんでかなぁ。 How does OCaml debugger reverse states? とかに苦労した。

(03:55)

_ いぎりすにき2

4日目 (ICFP 3日目)

疲れててたっぷり寝て、朝起きて飯を喰った。飯はフレンチトーストを頼んだのだけど、トースト?とか聞きかえされて yes とか言ってたら普通のトーストが2枚出てきて、さらにフレンチトーストも出てきた。あのねえ…

気を取り直して出かける。一個目の talk はわかんなさそうだしパス…と思ってたら、実は結構面白そうな話ぽかった。まぁ後で聞けばいいか。

コンテスト主催の人と少し雑談。ランキングの公開をお願いしたり、賞金もらう方法を聞いたりとかそんなこんな。

本当は3日目は脱走して観光でもしようかと思ってたのだけど、まぁせっかくの機会とのことで会議場にいた。面白くなさそうで意外と面白い話が多くて、残って良かったなぁと思った。

昨日大変疲れててあまり雑談とかせずに帰っちゃったので、適当に色んな人と話してみたりする。なんか研究に関するビデオをまとめて公開するような試みがあるらしく、お前もコンテストについて喋ってみないかと言われる。明らかに辛そうだけど面白い試みだと思うので承諾。適当に script を準備してから撮ってもらう。黒歴史でしか無いという感が強いが。

飯は適当に喰いに行く集団についていって一緒に食べる。働いてる人が比較的多い感じだった。ただマジメに選ぶ気力が無くてハンバーガーを頼んだのは失敗だった。迷わずトンカツうどんを注文した前衛性を取り戻さねば…

5日目

湖水地方というところに移動することにしていたので、移動。ホテルのすごい近くにある Haymarket という駅から Oxenholme 経由で Windermere まで行けば良かったらしい。まぁ特に混乱も無くついてしまった。英語圏はラクで良いね…

あとなんか思ったのは色んな人がすごい親切だなぁ。やっぱアメリカより余裕ある感じがあるんだよなぁなんとなく。ロンドンはどうんだんろうか。

Windermere に着く前に観光案内を見てて、なんかこのレストランに行ってみよう!と決めてたところを探す、探す、探す…で見つからないので、適当なレストランに入って喰う。割と前衛的なものを喰った。いかにもマズそうだったけどそれなりにおいしかった、しかし好みの味ではない。これをおいしいと思う人が喰えばおいしいんじゃないかな、という感覚。

にしてもまぁ雨が降ったりやんだりを異様なペースで繰り返していて、大変気分が悪い。靴下とかグチャグチャになるし、そもそもサンダルだし…なんでサンダルなんだよって話ではある。

さてバスを20分ほど待ってから Bowness に移動。このへんからどうも効率悪いなぁと思っていた。飯は Bowness で喰っても良かったしねえ…

でまぁ Bowness に着いたら湖が大変綺麗。しかしときおり暴風雨が吹き荒れる。フラフラ歩いてると白鳥さんその他が普通に湖の付近にいて、普通に接近できるというか触れることすらできるんじゃないかコレ。

白鳥さんの写真とかを撮って満足してからホテルを探すことに。なにぶん荷物多くてうざい。人に道を聞きつつ宿へ。

宿についたら宿の人がえらい親切な感じで、紅茶を淹れてくれてついでに何見るべきっすかねみたいな話を。まぁ船乗るのと散歩道歩くのとをやれば良さそうだという結論に。

どっち先にするかなーと思って散歩道へ。しかし道はどろどろです。そしてときおり暴風雨。まぁ湖が見えたり天然のうさぎさんがいたり、どうも道に迷って羊さんの牧場に侵入したり、まぁ大変よかった。これで雨さえなければなぁ…全体的にすごいいいところなのに…

あまりにどろどろになったのでホテルへ一旦帰ってズボンのスソを洗ってアイロンで強制乾燥。その後船に乗りに行くと今日は終わったとのこと。明らかに順番間違ってるねえ。まぁビール買って帰って今に至る。

明日は船乗ってからロンドンに移動してオフィス見学かなぁ。経路は Oxenholme => London Euston => London Victoria でよさげ。 Victoria line ね。出発は 11:59, 12:51, 14:00 のどれかか。前もってチケット買っとくとえらい安くなるんだなぁ。まぁ予定考えるのもしんどいしいいことにするか…

(04:46)

_ OCaml debugger

http://www.ginriki.net/wd/category/ocaml/

なるほど fork しとくって実装かぁ。 しかしということはこれは linux kernel は setpid(2) を 実装すべきというゴルフ場以外の用途が思いつかなかった 主張に意外な根拠を与えることになるまいか。

まぁバッファしてないファイルとかソケットとかが巻き戻しで とんでもないことになるのは変わらなさげだけど。

(06:51)


2009-09-03

_ 色々とやることが

ある。

  • 明日の道を調べる
  • ICFP PC について書く
  • ICFP について書く
  • きょうについて書く
  • コメントに返事とかする
  • 仕事のメールを書く

最後の2つはさっさとやってしまった方が良さげなのでさっさと片付ける。

(06:44)


2009-09-02

_ いぎりすにき2

発表されるまでにエジンバラに行ってると書くと あんま秘密守ってるとは言えないよなーと思って 投げてなかったのを送っておく。

移動日

ANA でパリ行って Air france でパリからエジンバラという行程。荷物勝手にエジンバラまで送ってあげるよとのことだったので、まかせることに。

ANA の飛行機はつかれた。途中でおっぱいバレーというひどい映画と、スタートレックとマトリックスを見た。スタートレック以外は途中で寝たり早送りしたりひどかった。マトリックスって面白くないんだなぁ…というか好みじゃなかった。攻殻機動隊の影響受けてるとかいう話だっけ。たしかにそれは感じた。

パリについたら荷物がどうこうでちょっと不穏な感じになった。しばらくなんかした後に、よくわからんけど大丈夫だと言われた。で、飛行機が遅れる。やめて欲しいなぁ…と思いつつ、そういえばアダプタ持ってねえやと大変重要なことに気付いてしまったので買った。8ユーロなり。あとネットが使えるからやってみようと思って挑戦してみるも、クレジットカードを受け付けてもらえず。ユーロは家にあるんだから持って来ておいてもよかったなぁ。ユーロからポンドに両替する方が効用的に良さそうだし(手数料が同じだとすると)。乗る前にもう一度荷物の方で不穏な感じに。雰囲気的には ANA のはっつけたチケットみたいなのの印刷がちょっと切れてて最後の数字が印刷できてないとかそんな感じに見えたがそうだとするとひどい。

でまぁエジンバラについたら、荷物が来ない。ぎぎぎ…明日ホテルに届けてやるよとのこと。幸いたいしたものは入ってないけどそれにしても着替えというか暖かい系の服が無いと寒くて死にうる。とりあえずバスで市内へ。市内からは寒くて死にそうな上に、 Google maps で印刷しておくとかそういう頭が働いてなかったので、ホテルを住所だけから探すのは大変だと判断してタクシー。バスが 3.5 ポンドでタクシーが 6.5 ポンド。タクシー意外と安いかなぁ。

さて部屋に入ってみると、無線LANは WEP key が必要で、 LAN の方はケーブルは受付に問い合わせてチョ、とのこと。ぎぎぎ初日からネット必要だとわざわざ書いたのに…まぁ起こすのもかわいそうだし、 LAN ケーブル持って来なかったのはミスと言っていいので、もう諦めて寝ることに… OCaml Golf ヘンなことになってませんように…

1日目

起きた。ホテルの人がいない。ネットあきらめる。ちょっと寝て待つ。起きた。ホテルの人いた。ネットの話、荷物の連絡が来るかもしれない話、まだクレジットカードまわりの処理をしていない話、をする。そして朝食も適当に食べる。食欲無いのでシリアルとフルーツだけ。

ネットつなぐ。つながったと思ったら OCaml meeting 終わった。ふーむまぁゴルフ場が燃えてたりしなくてよかったです…

どうもカゼっぽい。

FLTV おもしろいなぁとほどほどにながめてから、観光に。とりあえず飯を喰う。ハギスが名物らしいのでそれを。最初は俺の知ってるハギスよりうまいなーと思ったのだけど、なにぶん量が多くて飽きる…最後の方は俺の知ってるハギスよりまずいなーと思っていたように思う。 3.5 ポンドとかそんくらいだったと思う。

適当にエジンバラ城に行った。とても感銘を受ける感じではないんだけど、よくこんだけ集めたなー的にボリュームがあった。日本語音声ガイドとか借りたんだけど、到底全部聞けない程度の量があった。まぁでもそんなものより風景の方が良かったりね。

後は Camera Obscura and World of Illusions というヤツに行った。 NTT の ICC みたいな。この中の展示で知ったのだけど、この人は本当に面白いなー

http://www.andrewlipson.com/index.htm

例えば LEGO で作ったエッシャーの登っても登っても終わらない階段とか。

http://www.andrewlipson.com/escher/ascending.html

城にえらい時間がかかって、行く予定だったウィスキー博物館とかには行けなかったので後日行こうとおもう。

道に迷って地図を見ていたら、道を聞いてくるオッサンがいた。明らかにこっちも道に迷ってるじゃんねーと言ったら地図を見せろとのことだったので見せた。しばらく二人で検討した結果現在位置がわかったので win-win だった。食欲ないから夕飯はビールとツマミくらいでいいか…と適当なスーパー的なところでハムとビール。どっちも安い。でせっかく現在位置がわかったにも関わらず店を出た時に混乱したらしくキッチリ逆方向に進んでいった。かなり歩いてから気付いて、逆戻り。つかれたよ…

帰ってみると、飛行機会社から荷物が届いていた。良かった。

2日目 (ICFP 1日目)

朝はちょっと寝坊。アラームセットしたつもりだったけどできてなかった。機械は苦手だ…とりあえず食欲があったのでゴツそうな朝飯を頼む。それなりにゴツかったけど、まぁ普通においしかった。でまぁ会議に行った。アンドロイドに地図読ませてから行ったので迷わず行けた。

Haskell ぽい人の時間帯になって、イマイチわからんかったしその次のセッションは論文チラ見してもむつかしそうなので脱走して観光に。

ウィスキー博物館的なもの。ウィスキーの作られかたとかの説明と、スコッチの地域ごとの特長、あとはウィスキーの楽しい飲み方、という感じ。

帰りに適当にサンドイッチを買う。普通においしい。こいうシンプルな料理はたまに喰うぶんにはうまいし、イギリスとはいえまずくはならんよなぁ。会議室の建物に戻ってきたら、飲み物と軽食が置いてあったので、スコーンを食べてみた。あまりおいしいものでもないね…

でまぁ発表を一通り聞いて、よくわからんのも多くて、一日目終了。レセプションに移動。適当な集団を尾行する方法で無事迷わず到着。天才だなぁ。着くと謎の暗号が表示されている電光掲示板があって、わからんなぁと考えていた。

レセプション。見事に何言ってるかわからん人が多いわけだけど、まぁ適当に何人か話しかけてくれた人と話す。なんか Google の人もいてちょっと話した。日本語知ってて使ってくれる人も多くて助かるんだけど僕は外人顔の人に話しかけられると英語で答えようとしてしまうので大変。なんかでも僕が難しいというかわけわからんなーと思った発表は同様に難しいと思ってた人がそれなりにいるんだなぁとちょっと安心した。日本の人もいたので挨拶してみたら、今年は例年よりあんまり accept されなかったとかで日本人少ないとのこと。残念だね。

Google で関数型言語使わんの? って話をされることが多いんだけど、まぁ熱心な関数型言語ファンの人はそれなりにいると思うけどメインストリームでは無いさのうとかそんな話に。あとはこう、ある程度プログラマのレベルが高い人がそろってて、メモリ管理とかそれなりにできて、適切なライブラリがそろっていれば、 C++ でもそんなに苦が無いというかパフォーマンス的に不安が無い的な意味でベストな選択なんじゃないかなぁとか思いつつ、「みんなそれなりに賢いから大丈夫なんじゃね」的なこと言ったら「そんな人が関数型言語使えばもっとすばらしい未来が!」的なことを言われた。

あと日本で Haskell で仕事するとかあるんだな…

http://www.starling-software.com/misc/icfp-2009-cjs.pdf

ML の人と話す時は Haskell の方が勢いがあるんじゃないのと必ずケンカを売ってみる感じだった。そうでも無くて、ただ ML コミュニティは practical な方向に興味がある人が多いからアカデミックではちょっと弱く見えるねー的な話をしてくれた人がいて、なるほどなぁと。

終わってから適当にまたホテル違うのに尾行をしてたら、日本料理ぽいところに入るっぽいので混じっていいか聞いて混じらせてもらった。なんか隣これ Oleg さんだよなぁと思いつつジャーナリストとしての使命感からトンカツうどんを頼む。残念ながらトンカツとうどんが別々に来るだけだった…まぁどっちもそれなりに喰えはするものだった。うまいとは言えんが。

帰り際にせっかくなので Oleg さんになにか要領を得ないことを聞いてみたり。もうちょい有意義な話があれば良かったのだけど。

思ったのは、関数型言語に僕が抱いている口でバカにしつつも憧れてる面がある的な感覚は英語で説明するのは難しいなぁというような。全体的にたまに喋ると I love C++ とか口走ってるお前何しにここ来てるの系のバカだったわけなのだけど、まぁみんなキレ始めたりせず、優しくしてくれたのだった。まぁ相手に気つかうとかすると余計喋りにくくなるし、素直に喋ってたのはまぁ良かったんじゃないかと思う。

3日目 (ICFP 2日目)

多少寝坊しつつ、あと体調も悪いし二日酔いもちょっとあるしでだるいので、午前の最初の方は行かないことに。3つのうち2つはたぶん行ってもわからんかったと思うので良し。朝は Eggs benedict とかいうのをなんだろうなぁと思って頼んで食べてみた。これはなんかどっかで食ったことある気がするなぁ。ブリストルかな。

次のからはちゃんと行って、一通り話を聞いたり寝たりしながら時間をすごした。実装の話はそれなりにわかるけど、理論的なやつはモチベーションが理解できれば OK くらいの勢いだなぁ。

昼飯は会場で出てるのをいただいた。

コンテストの時間の前に、ガイスティールがいたので声かけてサインをねだる。なんかカタカナが書けるらしく、カタカナの名前を併記してくれた。これは自慢できるなぁ。本は wo さんが紹介してくれたコレ(よりによって ICFP で C の本のサインもらうのも微妙だが)

http://shinh.skr.jp/m/?date=20090416#c03

でコンテスト結果発表があって、何人かの人とコンテストについて少し話して、その間にガイスティールにこんぐらちゅれーしょんずとか言われてよろこんだりして、まぁ疲れが色々溜まってるし今日はねばらず帰るか…と帰った。電車の乗り方やルートやらなんやらを知りたかったので、電車でホテルに帰ってみた。近くの店でハンバーガーとか買って一昨日買ったハムも喰いつくして今にいたる。

今のところの感想としては、飯の危険度が高くないなぁ。すごくうまいものがあるわけでは無いけど。あとイメージとしてスコットランド人はイングランドの人より太ってないイメージがあって、言い換えれば健康的に見える。そこらの飯屋の量は多いけど、喰えないほどではないしなぁ。それが本当かは明後日以降にわかるんじゃないかと思う。

(03:57)

_ サイン

ALIM0975.JPG

わいわい

(04:56)

本日のツッコミ(全3件) [ツッコミを入れる]

_ hassylin [プリンセスストリートの工事は終わってましたか? 6月に行ったときは工事中でした。。 http://twitter.c..]

_ shinh [なんかそこ以外もそこらじゅう工事してるような気が。あとあれって princes なのでプリンシズじゃないですかね。]

_ hassylin [現地の人もプリンセスストリートと呼んでいたような気がします。。。その人も間違えてたのが、俺の耳が悪いのか(こっちが有..]


2009-09-01

_ at

Ruby の at ってこうなってて欲しいと常々思ってるんだけど、 なんかダメな理由あるのかなぁ。

class Array
  def at(a,b=nil)
    self[a] || b
  end
end

class Hash
  def at(a,b=nil)
    self[a] || b
  end
end

a = [0,1,2]
p a.at(0)    # 0
p a.at(0,3)  # 0
p a.at(3,4)  # 4

Array.new とかの引数使えって話もあるとは思うんだけど、 あれ使っちゃうと pstore に入らなくなるよねたしか… むしろそっちが問題なのかな。

ところで || はダメだな false が要素として入ってると終わる

あとこれを Array と Hash のループにしてかつ Ruby 1.8 で動くようにする方法を僕はしらない

(13:13)

_ ああっ

GBLについての誤解が!

http://route477.net/w/?RubySDLSmallFonts

1おくえんではなく10おくえんで、 平均的な人生を余裕で一生遊んでくらせるくらいの額に設定してあります!

とか書いてる暇あったら wiki だからなおしておいた方がいいのかな…

(16:34)

_ そういえば

自然言語をプログラム言語チックにして欲しいというのはよく思うんだよね。 具体的には英語の that を {} でくくるようにして欲しい。

I prefer the cake {which you ate yesterday} to this cake.

的な。

(18:51)

本日のツッコミ(全3件) [ツッコミを入れる]

_ Gimite [Hash.new(3)はMarshalableなはずですが、Arrayにはデフォルト値とかないっぽいですね。]

_ akai [fetchを使えばいいのでは?]

_ shinh [fetch! こんなものがあったんですね。ゴルフに関係なさそうな長さのメソッドは目に入らないという病気のせいで…今後..]


2009-08-31

_ 自然言語プログラミング

http://www.kmonos.net/pub/Presen/fltv/FLTV.pdf

これは今まで見た kinaba さんの偉業の中でも 最高峰だなぁこれは。 そしてこの偉業に自分の名前が出ててうれしかった。

kinaba さんは詐欺師にむいていると思う。 説明がうますぎて、賛成できなくてもすばらしいと思ってしまう。

賛成できない、というか少しひっかかるのは名前推論の話。 最初見た時はすごいなー面白いなーと思った記憶がある。 でもいつだったかその話をぼんやり思い出してる時に、 微妙にひっかかることがあって、そのひっかかりを今また思い出した。 みんなそうかもだけど、僕こういうのよくあるんだよなぁ。 他の人の発言やら意見を最初ぼんやり流しておいて、 後から replay した時になにかそれに対する考えがまとまってくるみたいな。

で何が賛成できないかというと、 コピペビリティを落としたり、 直交する文を挿入した時に意味を変えちゃうことがあるんだよねコレ。

String serializedString;
Obj objs[10];
for (int i = 0; i < 10; i++) {
  var _ = objs[i].serialize();
  serializedString += $String;
}

とか書いてたことにして、 なんかこうこの時点での objs[i] の値の中身が見たいとして、 適当に他からコピペしてきたデバッグルーチンを コピペではったりするとして、

String serializedString;
Obj objs[10];
for (int i = 0; i < 10; i++) {
  Obj o = objs[i];
  var _ = o.serialize();
  // ここを
  String s = "";
  for (int j = 0; j < o.children.size; j++) {
    if (j != 0) s += ", ";
    s += o[j].debugString();
  }
  printString(s);
  // コピってきたよ
  serializedString += $String;
}

とか、まあ恣意的な例だしこれ自体に関しては デバッグ出力用の関数を Obj のメンバにしろよボケという話なのだけど、 まぁこういう状況は他にもまぁ、あるんじゃないかなぁと思う。

自然言語でも実際これってよく起きる問題だと思うんだよなぁ。 英語論文とかひいこら言いながら書いてた時とか、 わかりやすくするために文の順序とか入れ替えてたりすると、 いつのまにか以前は問題なかった the が 意味がわからんくなる程度に遠くになっちゃったりして。

エラーコレクティングが容易な口語では、 この手の省略ってヤツは鬼強い物体なので、 口語でプログラムできるようになったら こういう名前推論はありかなぁとか思う。 あと、要はミスに気付かせてくれればいいわけで、 IDE が賢くなって、名前が変わった時に $String が色が変わったりして知らせてくれると十分なのかもね。 あるいは名前推論は basic block をまたげないとか そういう制約を入れてしまうか…

ところで上の例はもう一つ本当にウザい話と関係していて、 コピってきた元の例が本当に j でループしてくれていればいいんだけど、 i でループしてたらこれ全部 j に書き換える必要があったわけで、 for の中の 3 つの i=>j はまぁ忘れなかったとしても、 中の if の i=>j は、これは、僕がやったら 50% くらいの確率で ミスる部分なんじゃないかなぁとか思う。 さてこの内側のループのコピペミスに関しては、 これはむしろ名前推論がなされてれば完全に防げるミスだったりするわけですよね… 実際 Perl でコード書いてると $_ についてよく起きることのように思う。

とかなんとか。

every と some は、 sawzall の some はそんな動きしてたっけ、 いやなんかもっと珍妙な動きをしてた気もするが…

http://labs.google.com/papers/sawzall-sciprog.pdf

Quantifier variables are declared like regular variables, but the base
type (usually int) is prefixed by a keyword specifying the form of
quantifier. For example, given an array a, the statement
  when (i: some int; B(a[i]))
    F(i);
executes F(i) if and only if, for some value of i, the boolean
condition B(a[i]) is true. When F(i) is invoked, i will be bound to
the value that satisfies the condition.

全然別物だったよ。 要はループに並列可能性を suggest するためのものだった。

メッセージを共通化する話は、

.maxPriority = .max{|a,b|a.priority<=> b.priority}

っていう文法は普通にいいなぁ。

objs.map{|o|o.children.map{|c|c.doSomething}}

objs.map(&.children.map(&:doSomething))

とか書けるといいなぁ。 途中の話に戻るけど、要はループ変数というのが 最も名前を省略したい物体なのだよね。 あれだけ type 数を増加させる C++ の algorithm なのだけど、 iterator の名前をつけなくて良いのは抗いがたい魅力なのですよ。

どうでも良いのですが、 僕は iterator の変数は i とかつけて j とか k とかにするのは k とかが int じゃないのが混乱を招きそうで嫌いだし、 it は英語の it ぽくてキモいという話もあって iter を採用しているのですけど、 iter の次の、2つ目以降の iterator 型ループ変数名にいつも困っていたのでした。 たいていは外っかわをもう少し説明的な名前にしてたのだけど、 どうしても名前つけにくいものも多くて。

ところがこの間 jter とか kter とかつける文化が 多くは無いもののあるようだと教えてもらって、 これがすごく気にいっているのでした。

変数名として意味の無いものをつけるべきでない、 という主張があって、 tmp とかはいけないとされてると思う。 でも、どうでもいいループの変数、特にループの中で すぐにデリファレンスしてそれ以降使わない iterator 、つまり、

for (vector<Obj*>::const_iterator iter = objs.begin(); iter != objs.end(); ++iter) {
  Obj* obj = *iter;
  // 二度と iter は必要ない…
}

とかそういうものは 本当にどうでもいいんだから、 どうでもいい名前をつけるべきだと思っていて、 これを obj_iter とかつけるのはむしろこう、 意味深で可読性を落としているように、 個人的には思うんだよな。

一方僕は humans.find(you) とかした結果帰ってきた iterator に iter と名付けるのはよくないと思う。 それは単なる名もなきどうでもいい 60億要素の humans それぞれを指す iter じゃなくて、 60億の中のたったひとりのために用意されたかけがえのない iterator なので、 もう少し意味がある名前をつけるべきだと思う。 僕は found とかよくつけるけど。

find といえば、その見つかった iterator を 名付けないのもあまり好きでない。

objMap.erase(objMap.find(o), objMap.end());

とかいうヤツ。 これは冗長でも分けたいケースが多いように思う。

map<Obj*>::iterator found = objMap.find(o);
objMap.erase(found, objMap.end());

なぜかというと、 この found は何かしら貴重なものに決まってるから、 後から log 出力に加えたい可能性、 printf デバッグやデバッガで名前を指定したい可能性が かなり強いと思うから。

これは意識するようになったのは割と最近のことかもしれない。

(05:56)

_ 追加

何個か書き忘れてた。

  • swap する時は tmp って名前をつけてもいいと思うんだよね。
  • Ruby の tap とか 1.9 の引数が帰ってくる mame#p は printf デバッグの観点では .find の戻り値をいちいちローカル変数に入れなくても十分にしてくれる能力を持ってると思う。実際、 Ruby だったら僕はこういう値に名前をつけなくても全然違和感ないし、むしろ自分でもつけない気がする。そのへんは書いてるプログラムのドメインやら言語やらによる部分も多いな。

(06:05)

_ 民主

自称サヨとしてはむしろ民主より左よりでいいくらいなので、 自民よりは民主でまぁいいかなぁという感じだった。 公明も消えるし。

うちの選挙区の自民の人は大変ニートにやさしくなさそうなことを ブログに書いていて、気にいらない感じだったのでそれもよかった。

個人的には民主は結局何言ってるのか わからんとかいう話があるのだけど、 まぁ色々な人から広く支持集めようとするとそんなもんかねえ的な。 僕だけの支持を得ればいいのであれば もっとわかりやすい左でいいわけだけど

(06:21)

_ JVM読書会

http://twitter.com/kmizu/status/3646075084

あるといいなぁ。

というかでも、なんだろう一つのコードを ひたすら読むのって結構疲れるし あまり意味ない時間も多い気がするんだよな。

でなんか思ったんだけど、 最近読んだ/いじったコードを紹介する輪読会があれば 僕は満足なんじゃないかなぁとか思った。

(06:27)

本日のツッコミ(全1件) [ツッコミを入れる]

_ kohls coupons [&#12381;&#12398;&#12424;&#12358;&#12394;&#24847;&#21619;&#..]


2009-08-30

_ 仙台

http://d.hatena.ne.jp/w_o/20090830#p1

僕もこないだ行った時 漫画喫茶でウシジマ君ひたすら読んだな… 仙台にはウシジマ君を読ませる魔力があるんだなぁ。

(17:35)

_ FLTV

ranhaさんの序盤の発表のしかたがたいへん面白かった。 話すことのテーマだけ決めておいて、 聞いてる人にも考えさせる的な。

たぶんテーマの作りかたが色々うまかったんだと思う。

(18:47)

_ const_cast をアセンブリで

http://twitter.com/wraith13/status/3587968262

すごいナイーブにコンパイラ実装したら mov 2回になっても不思議はないような… TCC でも大丈夫なレベルだけど。

(19:28)


2009-08-29

_ ゴルフ場

結局まぁ、現状のタイムアウトはわかりにくすぎると思う。 というわけで OCaml meeting 終わったら なんとかしてみようと思う。 腐ったシステムのせいで意外と変更が大きいので、 今回やるのは見送ることにした…

でまぁ、結論としては、 せっかく合計時間が表示されているのだから、 その時間を time limit として使うのが妥当だろうと考える。 まぁどう考えてもそうなっているべき。

ただ今から昔の問題の意味変えるのも微妙だし、 いずれにせよちょっとややこしい変更が必要なので、 deny exec みたいな感じで別オプションをつけようかなぁと思う。

ややこしいのは、どうしようもなく起動に時間がかかる言語群は 起動時間のためにタイムリミットに一定のボーナスをあげているのだけど、 これが実行サーバの方で超絶アドホックにハードコーディングされてるのが 大変問題で、問題ぽい。

(07:01)


2025年
1月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
1.niha(2014-05-24 03:05) 2.shinh(2014-05-24 03:05) 3.niha(2014-05-24 03:05)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h