« 2007年03月 | メイン | 2007年05月 »

2007年04月25日

ウィルキンソン日記

タイムリミットの1時間前には起きていたのに、 うかうかしていたらもうタイムリミットだ!

お弁当を買いに行く暇がないので直接会社へ。 ご飯は現地調達で。

きのうの晩はリンガーハットとかいう長崎チャンポンの店に入ったのだけど、 注文してから22時以降は深夜料金で1割増と気がついた。 料理と一緒に持ってきた紙を見たら21:57と書かれていた。 ぎりぎりセーフ!

なんかさすがに疲れているなぁ。 昨日は疲れて「よし別のことをしよう」といっていた時点で帰るべきだったのかもなぁ。

電気代払わないと。 あと、家賃はオリコカードを作らされてそこから引き落とされるのだけど、 オリコカードを作るときに出した銀行から自動引き落としにする書類が、 印影相違と言われて突き返されたので現金で払いに行かないといけない。 通帳もある程度の間隔で記帳しないといけない。 みずほのATMは駅のそばのマクドの中にあったけど、 あれはたぶん記帳はできないのだろう。

あー。おなかすいた。

そうかわかった。 昨日はラボにネスプレッソとかいうコーヒーを作る機械が来て、 試しに一番強いコーヒーのカプセルを入れて飲んでみたんだった。 あれがいけなかったに違いない。 たとえて言うなら普段アルコールを飲み慣れていない人が、 いきなりウォッカを飲んだようなもの。 あのコーヒーはロシア人専用。


= 静かな静かなコンピュータ (nakatani @ cybozu labs)。 VAIO TypeG のゼロスピンドルモデルなら電車で作業中にハードディスクが振動検知で止まったり、 そのせいでキーボードを叩いても文字が出ないので復帰するまでブラインドプログラミングだったり、 ということはなくなるんだなぁ。 あー。
= おおおおお!万歩計、ラボの机の下にあった!神様ありがとう!
= ラボの近くの100円ショップでWILKINSONのジンジャーエールを発見!

とは書いたけど僕はこれ未経験。

前半:「うわっ、これはすごい。ここまでジンジャーなジンジャーエールは初めてだ!」

後半:息を鼻から出すとヤバイことに気がつく。くしゃみが出る。舌がひりひりしてくる。

結論:僕は「ネスプレッソのコーヒー」よりこっちの方が好き。

P1070424
P1070424 posted by (C)にしお

2007年04月24日

センタリング日記

あー。結構前からGoogleって「ウェブ全体」で検索しても 日本語の記事が高く評価されるようになっているよね。 LiveConnectで「ウェブ全体」で検索したのにいい記事があんまり見つからなくて、 ふと気がついて英語版で検索したら The LiveConnect/Plug-in Developer's Guide が見つかったよ。
= つかれた。 別のことをしよう。
= MochiKit使ってみた。 createLoggingPaneはとても便利。

Google Code Search便利。 JavaScriptでmargin-leftを設定するのどうするんだろうと思って、 style.marginで検索。


= うーん。もう21時だ…。帰ろう。

別のことをした結果 会社のブログ の頭にあるカテゴリ内前後のナビゲータがセンタリングされるようになりました。 されないと見にくいと思ったので。 でも微妙にずれていたり、エラーが出て動かないページがあったりorz

ああっ、そうかっ、 矢印の長さが計算に入っていないorz


= USB万歩計をどこかに落とした。(´・ω・`) 赤坂見附か永田町かそれとも清澄白河か。
= 明日は早めに帰って部屋の片付けをしよう…。
= 帰りにふと思ったのだけど、HaskellがCのプログラムにEmbedできるなら、 PythonのExtensionにEmbedすることができるはず。 たぶんできないんだろう。 で逆のアプローチを取ったのがmissingPy。要調査。

ParsecでPythonリテラルのパーサを書いて、 PythonAPIのPyObjecyAsStringとHaskellのForeign.C.Stringを使えば、 めでたしめでたし、なんじゃないかと思った。

きっと世の中そんなに甘くない。

PyInt = int, PyLong = Integer, PyDictionary = Data.HashTable, PyFloat = Real. Haskellのリストは一つの型の物しか入らないけど、 type PyObject = int | Integer | Real | ... ってやればいいだけだしなぁ。 なんか本当にできそうな気がするなぁ。


= 昨日は自転車に乗って押上駅に向かって、 途中のお弁当屋さんでお弁当を買って、 押上駅に行ったら駐輪場はあらかじめ手続きをしなければいけないと追い返され、 家に帰って曳舟から電車に乗った。 今日は歩いて押上駅に向かって、 同じお弁当屋さんでお弁当を買って、 押上に着いたのが20分後くらい。 雨が降っていなければ悪くない選択肢だ。

あー、ダメだ、すごく眠いや。 明日は忘れないように清澄白河の駅で万歩計が落ちていなかったか聞こう。 アレがないと体重計のデータをパソコンに移すこともできない。

2007年04月23日

退室日記

ふう。レオパレスの退室処理完了。 いくら追徴されるかとガクガクブルブルだった 床の深さ1ミリ長さ30センチの大きな傷は、 なんと5000円で済みました。意外と安かった。 長いけど板の方向に沿っているせいで取り替える板が1枚で済むかららしい。 板に直角にひっかいていたら2,3万取られたに違いない。

そんなことより僕がまったく自覚していなかったカーペットの染み抜き代が 10000円だった。 ブルーベリーソースをこぼしたシミは自覚していたので、 先週あたりにどぼどぼ水をかけてみたんだけど、 意外と薄くなって、そっちはお咎めなし。 こっちのシミも気づいていたら簡単に取れたかも。 まぁいいや、ブルーベリーのシミを自分で取ったおかげで 10000円節約できたと考えよう。 ほんの2週間前まで見事に紫色の輪っかだったのに。 水溶性のシミは水をかけて広げれば取れるんだなぁ。

あと、掃除が必要かと思って昨日の引っ越しの時に掃除機を運ばずに残していったのだけど、 掃除はやらなくていいんだって。 大きめのゴミくらい拾おうとしたら、それもしないでいいって。 ゴミ袋に入ったゴミや段ボールは自分で捨てろって。 なるほど。 じゃぁ昨日の引っ越しぎりぎりに掃除機を部屋の半分だけかけたのは間違いで、 ゴミ出しをやるべきだったのか。

そうそう、退室の手続きをした社員さんは新入社員のOJTで、 横からびしばしつっこまれまくりでした。 つっこむ役の人も不親切で「おまえそれ何書いてんの」なんてつっこみを入れるから てんぱっちゃって判子押し忘れたりとかしててかわいそうだった。


= 左まぶたがぴくぴく痙攣。 自覚していないけどだいぶ疲れているのかなぁ。
= 「理工系のための トポロジー・圏論・微分幾何」 アマゾンにないのは数理科学の臨時別冊だからか? 最近駅ビルの中に割と大きい本屋があることに気がついたけど、 数理科学別冊はそんじょそこらの本屋じゃ置いていないかもなぁ。
= Java Tips: かしこいロック。 かしこい。 ここのコードにbalkingの処理を追加して使ってみた。 いい感じ。 Javaのsynchronizedだけじゃいまいちやりたいことができないなぁと思っていたのだけど、 こういう風に使うのね。
= LineBreakMeasurerはいらない気がしてきた。
= 隣の屋上に武器を持った人がたくさん。
= 帰りの電車にて。 FirefoxのDOM Inspectorが面白い。

2007年04月22日

生乾き日記2回目

ダイジェスト版。

金曜日は僕の作ったプログラムが原因でラボの扉が開かなくなった。他いろいろ。

夜は歓送迎会で飲み過ぎた。 留学生の子に「real乾杯をしよう」と言われて受けたのがいけなかったんだろうか。

朝は頭が痛くてかなりダウナーな気分で、 だいぶくよくよしていたのだけども、 夜になったらだいぶよくなった。 もらったローズウッドのアロマオイルの効能に「落ち込んだ気持ちを切り換えたいときに」とか書いてあった。

金曜日のデモで共有ソフトウェアのプロトタイプを実際に使ってみてもらって、 僕が目指している物のイメージを少しでも共有してもらおうという予定だったのに、 実は僕の作ったサーバは秒間250MbpsでUDP Multicastをして無線LANを殺してしまうため 誰もサーバに接続できない罠。

今日(土曜)は新居の部屋の半分を片付けて引っ越しの荷物を運び込めるようにした。 旧居も片付けて明日引っ越しできるように。

玄関を入ったところの木の床に深さ1ミリ長さ30センチくらいのひっかき傷が付いているのを発見。 あーあ。追加料金を取られるんだろうなぁ。いくら取られるんだろうなぁ。

風が強いね。 朝から強かったけど。 消防車と救急車のサイレン。

明日の昼、引っ越して、 夕方はお片付け。

財布がそろそろ寿命だし、名刺入れも欲しいなぁ。 錦糸町あたりで売っているかなぁ。

楽天で買うことにした。

前回の引っ越し時は最初に本棚の建設をはじめたけども、 今回はまずは服を入れるものを作ろう。 ロフトがなくなった分、収納面積が少ないので、 うまく縦方向に集積しないと。

あ、物干し竿も買わないといけないんだった。

これをアップロードしたら旧居に行って引っ越しの人を待つ。


= 引っ越し完了。 3時間で22000円でした。 そしてどこから片付けたらいいやら…。

これで自炊もできる。 (自炊=お茶を自分で沸かす+ご飯を自分で炊く+α)

とりあえず、お茶とご飯とサラダが作れれば、 だいぶ健康的&経費削減になるはずだ。

あと自転車がこっちに来た。これで遠くの外食にも行けるぞ(ぇ


= 最近、なのか、MovableTypeを3.3にしてから、なのかはよくわからないけども、 スパムがとても多い。 もちろんフィルタはあるんだけど、それをかいくぐってくるのが多い。 デタラメな文字列のやつが多い。何がしたいんだ。

通知をGMailに送るようにしていたからGMailのInboxがスパムだらけ。


= 昨日引っ越し前の片付けをしているときにrimoをつけたら いきなりラーメンズが流れるからいつからrimoはプレイヤーの趣向を判断するようになったのか、 と驚いたんだけどたまたまだったみたい。 はてなブックマークのデータがあれば、Amazonみたいに「おすすめの動画はこれです」ってのも ある程度はできそうだ。 問題はそれが全然収益に結びついてないところ。
= POE - multitasking and networking framework for perl。 POEでぐぐってもPoEばっかり出てくる。
= ダメだ、なんか寒気がする。 エアコンのリモコンによれば24度あるはずなのに。 寝よう。
= 起きた。

机ができた。

P1070423
P1070423

ハードコンテナHC-02が11個。中途半端だ。もう1個欲しい。


= いまやっとつながった。 ウノウの2人目の酒徳さん=perezvonさん=軍曹。
= 新居の近くには猫がいっぱいいる。少なくとも4匹。 ネズミもいる。まるまると太ったのが少なくとも1匹。 茶色いすばしこいやつがいないことを願いたいのだけど、 やっぱいるんだろうなぁ。

2007年04月19日

GRINEditを使ってソースコードの可視化その2

GRINEditを使ってソースコードの可視化でやった奥さんのコードの可視化、 ラボの自分のマシンでやったらかなり高速に動いてくれてあっさり整形されました。

bf.png

バネの強さを辺ごとに変えられるようにして、 ジャンプの辺は弱くしてみました。

っていうか前回の記事ではどうすればこの複雑にもつれたグラフをきれいに整形できるか…とさんざん考えたのに結局ハードウェアの性能が上がればあっさり解決してしまうと言うことか。 やっぱそうなんだよなぁ。

GRINEditのことを高速だとほめてくださる方はいるのですけど、 高速化には重点を置いていないんですよ。 拡張性の高さや柔軟性を高めるためなら速度は犠牲にする方針で開発しています。

しかしハードウェアの性能かぁ。 反発力の計算が14倍ほど速くなった、他。

プログラム全体で見て30%の高速化になった(略) 1746頂点の「全ての辺が8本のグラフ」の描画が5FPS以上で動く!実用的な速度で動かないグラフの例として入れたのに、ぎりぎり実用範囲内に入ってしまった。
といっていた「全ての辺が8本のグラフ」が15FPSであっさり動いてしまう。 「全ての辺が9本のグラフ」のデータを作らなきゃ。

あ、でももう23時だ。 終電何時かわかんないけど帰った方がいいな。

この日記はフィクションで

「この番組はフィクションであり、 登場人物の発言は科学的な事実とは一切無関係です」 と番組の最後に表示すればいいんじゃないかと思った。

おなかすいた。

昨日、帰りにラボの横のコンビニで朝ご飯のパンを買って帰ろうと思ったのに、 すっかり忘れていた。


= 本屋で新しい本を物色していたら15分ほど遅刻してしまった。

劇的ワンペーパーを買った。

昨日はUDPのブロードキャストで動画を配信しようと思ったのだけど、 どうもカメラがうまく動かないので断念。

昨日書き忘れたけど、GoogleMapsで赤坂見附周辺のサラダバーを検索して、 ヒットしたロイヤルホストに言ったのだけどサラダバーがなかった。

Pydevを入れ忘れていたので追加。 Mylarが必要だといわれる。 ちょっと調べてみたけど面白そう。 EclipseとTracとかが連携できるようになったりするらしい。

2007年04月17日

生乾き日記

昨日タイマーで洗濯したのに、すっかり忘れていた。 靴下が生乾き。 レンジでチンしてみたけどほかほかの蒸しタオル状になるだけで乾かない。
= asahi.com:漢字にも「方言」 早大教授が100以上の地域文字発見 - 文化・芸能

木偏に筆で「でいご」って読むんだって!


= Movable Type 3.3 マニュアル
= Data::Dumper - stringified perl data structures, suitable for both printing and eval - search.cpan.org

    use Data::Dumper;
    print Dumper($foo, $bar);

= i-revo YAPC::Asia::2007。 後で見る。
= あー。 ブログの、いままでカテゴリで振っていた分類情報をタグに移行するにはどうしたらいいんだろうなぁ。
= 「30歳からの成長戦略」の僕なりの解釈。 フォトリーディングでもレバレッジリーディングでも共通して言っていることだけど、 本を読む場合にはその本を読む目的を明確にしなければいけない。 でも頭ではわかっていても、なかなか 「目的」が思いつかない。 本屋で何気なく手に取った本ならなおのこと。 最初は「この本を読む意味はあるか確認する」で いいのではないだろうか。 で、その目的を果たすために、必要最小限の読み方をする。 例えば目次と奥付だけ読むとか、 文中の太字と図だけ読むとか。 そうすると例えば 「アウトプット勉強法って何だろう?→知りたい」 という新しい目的が生まれる。 そしてその目的を果たすために読む。 目的がなくなったら出がらしだから捨てる。

とここまでのところは 「30歳からの成長戦略」を読んで気がついたところだけど、 別に「30歳からの成長戦略」にそれが書いてあったわけではない。 フォトリーディングとレバレッジリーディングに書かれていたことが、 自分の中で熟成されるのに今までかかったということ。

で、この著者が言う「アウトプット勉強法」とは何か。 勉強したことをブログに書く(今まさにやっているように)とかかと思ったら違った。 「まず勉強(インプット)ありき」の勉強ではなく、 「実践(アウトプット)に必要になったものから学ぶ」という勉強スタイルのこと。 プログラマとしてはアウトプット勉強法じゃなくて、 lazy勉強法と呼びたい。 プログラマにとって怠惰は美徳である。

レバレッジリーディングの本を読んだ後で、 「これはビジネス書には使えるかも知れないけど、 プログラミングには応用しにくいな。 Python ライブラリリファレンス を読んで要約するなんて常人技じゃないしな」 と思ったのだけど、そういうケースに使えるのがこの lazy勉強法だろう。 まずは「どんなことが可能なのか大まかに把握する」 という目的を果たすためにざっと読む。 頭からまじめに読む必要なんてない。 必要になったときに必要な部分をつまみ食いする。

よく考えたらこれって、この著者に改めて言われるまでもなく、 僕が今までずっとやってきたことだったりする。 プログラミングをまじめに勉強したことなんてない。 全部つまみぐいと拾い読みとGoogle検索だった。

「まじめな勉強」、「系統だった勉強」は 一見よいもののように思われがちだがコスト(かかる時間)が高い。 時間は有限なので取捨選択が必要。 何を捨てるべきか明確でない場合に、 実践で使う物から勉強する(使われない物を捨てる)というのは 悪くない選択肢だ。

優等生は捨てることが苦手。 受験勉強では苦手分野を補強するのが有利。 得意分野を強化しても試験がそれを測定できないから。 しかし社会に出たら差別化が重要。 苦手分野の補強では差別化ができない。 「みんなが学んでいるから自分も」という戦略では差別化ができない。 既存の知は急速な勢いで大衆化している。学んだところで差別化できない。 いまさらMBA取ったって差別化できない。

という感じ。 あとは…

批判精神が旺盛なのはよいことだが、 批判で思考停止するのは問題。 人間は間違える生き物だから、間違いを見つけて指摘するのは簡単。 自分ならどうするか考えることが重要。 「できない」はダメ、「なんとかなる」もダメ。

唯一の客観的な真理なんて存在しない。 あるのは無数の主観的な『真理』だけ。 自分の意見も相手の意見も正しい。 じゃぁ、なぜ異なるゴールに到達したのか、 そこを考える。フッサール。

知識そのものよりも学習能力を磨く。

アウトプットを人に見せる場を作る。見せる相手は甘さを許してくれない相手がいい。

って感じかな。 原形をとどめていない。

2007年04月16日

Office2007日記

高校とかの情報の授業で特定企業のPowerPointとかWordとかいう商品の使い方を教えるのは、 「すぐ変化して使えなくなる知識」だって伝えていないとかわいそうだよなぁ、 と思っていたけども。 いやはや、思ったより使えなくなるの早かった。 今日Office2007をインストールしたのだけど、「ファイル」メニューがない。 っていうかウィンドウのデザイン自体がクラシックじゃない。 根本的に違うデザインになってる。

Windows VistaにバンドルされるのはやっぱりOffice2007なんだろうか? だとすると、うっかり「高校でワードとか習って、大学でもXPのマシンを使ってました」 っていう新入社員に新しいVistaプリインストールのマシンを買い与えたら、 「見たことのないOffice」が入っていて新入社員も操作できないし、 周りに聞いても誰も教えられないという事態が発生したりするんじゃないのだろうか?

なんというか、かわいそうだなぁ。

Office 2007の新UIは「あまりに大きな賭け」:ITpro

上のページにスクリーンショットがある。 新規作成は左上の丸いボタンを押すと表示されるメニューの中にあった。


= ネットワークのお勉強。 この前のLL Ringのじゃんけんエージェントが僕の初「ネットワークプログラミング」で、 「ソケットって同じポートに複数つなげられるんだろうか」とか言っていたことを考えると、 …。

UDPを勉強した。 UDPはブロードキャストができるらしい。 ブロードキャストする場合でもソケットって必要なんだろうか?

UDPの接続方法を調べていたらDatagramって言葉がいっぱい出てきて、 何だろうと思って調べてみたらそもそもUDPってUser Datagram Protocolの略だった。

西尾泰和のブログ @ Cybozu Labs: PythonでUDPブロードキャスト

おなかすいた。


= お腹空いたけど帰る前にこのブログを3.3にアップロードしよう。 家でPHSでやると大変だから。

あっさりおわった?

終わったみたい。じゃぁ戻ってくる必要がないなぁ。 片付けて食べて帰ろう。


= 刀削麺ってなんて読むんだろう。 とうちょうめんかと思ったけど変換できない。 野菜たっぷり刀削麺はたしかに野菜たっぷりだったけど、 麺が癒着しているし餃子注文したのにバイト君が食べちゃったし、 なんだかなぁ。
= 赤坂で野菜がたっぷり食べられる店はどこにあるのだろう。

2007年04月12日

新入社員2週間目日記

2週間目から本社の新人研修に参加。 面白い。
= 日曜日に錦糸町のヨドバシで買ったいい感じのタイマー。 ちょうどこういうのが欲しかった。 アラームだけなじゃく、バイブレーションとランプが選べる。 時間のセットが10個のボタンで選べる。 (よくあるボタンを押している間数字が上がっていくタイプのは使いづらい) 時間の減っていくのが見える。

P1070015
P1070015 posted by (C)にしお

例えば静かなラボで「よし、今から30分間で○○をしよう」と思った場合に、 音の出るタイマーは迷惑になるし、 時間の減っていくのが見えないタイプは「締め切り前効果」が起きないので 集中力の向上にあんまり役立たない。 このタイマーならバッチリ。


= ラボで書類書き。 Python温泉、 有休を取って参加かなと思ったら、出張扱いでOKだそうな。
= ウノウラボ Unoh Labs: Python開発環境を整えよう。 二人目の酒徳さんはPython使いなのか~。

はてブの「開発環境選べるのは利点だが、デメリットでもあるような。。。その人やめたらどうするんだろ。」という疑問は、 そういう疑問が出ることが逆に驚きというか何というか。 その人がやめたら別の人が覚えるだけじゃないかと思うんだが。

っていうかウノウの場合は山下さんも使えるような。

それはさておきPython温泉では僕はTurboGearsを勉強して何か作ろうと思っています。 勉強するだけで終わるか、プロトタイプまで完成するか、その辺が勝負所かな。


= 肩こりが酷い…。
= 昨日、外したネクタイを、マフラーとかと同じようにカバンに入れたら、 カバンの中のマジックテープで引っかかれて一部毛羽立ってしまった。 裏側でよかった。
= うーん。 温水器のスイッチを入れわすれてお風呂が水風呂…。 バケツとかあれば洗濯機に移すという手もあったかも知れないけど、 ないので流すしかなかった。
= 名古屋で日記など経由で 自動更新を使用して、更新プログラムをスキャンする、または Windows インストーラを使用するアプリケーションに更新プログラムを適用すると、Svchost.exe プロセスによる問題が発生する。 あー。それが原因かー。 本社での新人研修の時に同じ症状のマシンがいくつかあったのでした。

イベントログを見ると Microsoft Message Queuing がエラーを出して死んでいたので、そのあたりかなぁと思ったのだけども。


= 引っ越しが22日に決まった~。 退去期限は23日。
= TokuLog 改め Perl を極めて結婚するブログ - missile on ruby.
python 版の拡張は西尾さんがワンライナーで作ったそうです。すごいなぁ。

ちょw、ワンライナーってw、ああっ、もう! 新人研修にかまけて1週間も記事を書かなかった私が悪かったんですょ! ラボにUSBミサイルは持ってきていないので週末に更新しますょ!


= ラボ用のブログができました。 西尾泰和のブログ @ Cybozu Labs。 で、こっちのMovableTypeのテンプレートで上書きしようかと思ったものの、 タグがあればカテゴリーはいらない気もするのでどうしようかなぁ、と。
= Yahoo! Widget Engine - Wikipedia
= 西尾泰和のブログ @ Cybozu Labs: PythonワンライナーでUSBミサイルランチャーを制御

左右方向は10秒で約半周。可動域は300度くらいで18秒でまわる。 上下は2秒でいっぱい。

ワンライナー作成に3時間。でもよく考えたら「よいワンライナー」である必要はあまりなかったので、 この前作ったワンライナー作成プログラムを使えばよかったのかも。


= おびなたくんとこ経由。 ドラえもん

オープニングも服装も替わるんだそうな。 のび太ですらシャツを外に出している。

時と共にいろいろな物が変わるんだなぁ。 でも、もう十数年経つと「みんな髪の毛黒いのっておかしくない?」とか言われるようになるんだろうか。 ジャイアン金髪化。


= 会社ブログのテンプレートをいじりたいけど、 PHSの遅いネットワーク接続でいじるのは面倒だなぁ。
= ASN.1 Site - Links。 うーん。ASN.1って言語でデータの構造を定義すると、 ここに置いてあるツールでJavaで書かれたパーサが自動生成できたりとかするのか。 BNFとyaccみたいなものか。

RFC1983: Internet Users' Glossary - Main

ASN.1 バイナリ変換規則 (BER, CER, DER)

とりあえず今作ろうとしているソフトは通信部分でYAMLを使っているけども、 それでは必要な性能が出ない場合にはこういうのを使ってバイナリで送ることを検討するかな。


= PHS接続は遅い。 まだ8時だけどちょっと眠い。 今寝て8時間後に起きると4時か…。 そこから会社に行って5時に着いたとして、 はたして中に入れるのだろうか。

入れなかったときにかなり悲しい状態になるからやめとこう。


= 今日、古い家の片付けをしているときにふと気がついたんだけど、 Pythonのワンライナー化の際にglobals()を使う必要はないのではないだろうか。

Pythonをワンライナー化する際には、代入を全て取り除かないといけないのだけど、 今まではそれをグローバル名前空間の破壊的メソッドを呼ぶことで代用していた。 でも他の方法もある。

>>> x = 1
>>> y = 2
>>> p(x + y)
3
この上のコードは下のように書き変えることができる。
>>> def foo(x):
	y = 2
	p(x + y)

	
>>> foo(1)
3

>>> def foo(x): def bar(y): p(x + y) bar(2) >>> foo(1) 3
>>> (lambda x:(lambda y: p(x + y))(2))(1) 3

= PHS遅い…。OpenCVのダウンロードが終わらない。

2007年04月10日

スーツリベンジ

再挑戦。結びかたを変えてみたけどこんな感じでいいのかな?

2007年04月09日

初スーツ

2007年04月08日

週末の日記

やねうらお-よっちゃんイカは買ってもレニエのお菓子は買わない男 - アタック25必勝陣形について。 あれは別に生放送でも何でもないし、後輩が出たときは、微妙な回答を正解として続けた後で、 放送前に「やっぱりまずいのでは」ということでそこだけ正しい回答をするバージョンに差し替えたらしいし。

でもまぁ、そんなことを言うのは野暮だと思うので、あえて4人とも完全に合理的な行動を取るとしよう。

…。

1問目に誰かが答えて真ん中を取った場合、 全員が「2問目に正解するのは損」という状態になるのではないかと いう気がする。

オセロが読み切れるんだから、これも読み切れると思うなぁ。 オセロが大体3 ** 60の4.2e+28で、 アタック25は5 ** 25で2.9e+17。


= 来週から本社の新人研修に混ざることにしたのだけど、 「スーツで行かないと浮く」と後輩に指摘されて、うむむ。 錦糸町にスーツを売っている店があるかどうかを検索。

PHS接続でGoogleMapは使いにくい…。 アンテナ代わりに使っていたクリップを置いてきてしまったから辛い。 でもまあ、青山があることがわかった。ティノラスとかいうのもあるらしい。 とりあえずどんな店なのか見に行こうっと。


= ティノラスは結局行かなかった。
= 通勤定期はまだ買っていないのだけど、 PASMOにするのかしないのか悩み中。 Suicaがすでにあるので必要がないし。 財布に2枚入れると干渉して面倒なことになりそうだし。

あと今日ちょっと探してみたのだけど、 クレジットカードでチャージできるPASMOのチャージ機ってないのかな。 オートチャージ前提? Suicaはクレジットカードでのチャージ時に、 1.5%分のポイントが付くのだけどPASMOはどうなんだろうなぁ。


= 肩こったなぁ。
= 本社へは西船橋からでも押上からでも大体30分。 西船橋からの方が乗り換えがないから楽かな。
= 芦ヶ原伸之 - Wikipedia

「10進数表記した場合に、0以外の2種類の数字のみで構成されている平方数」 の最大は81619 ** 2 = 6661661161じゃないかという話。 「300000まで(おそらくパソコンを使って)探索し、その中で最大」 と書かれていたので、移動の電車の中でとりあえずさくっと1000000まで計算して、 その範囲で反例がないことは確認した。1000000までで数秒。 だからプログラムを走らせて眠ればもっと上まで計算できると思うけど、 それじゃ証明にはならないの。

気が向いたらHaskellで書いて、Pythonとどれくらい速度が違うのか比べてみよう。

朝追記。走らせてみた。下の2列目が実数値のところは、その値までの所要時間。 1000000000000000000(1e+017)までには81618より大きな 「2種類の数字で構成された平方数」 は存在しない。

数が大きくなっても1秒あたり10万個くらい計算できているねぇ。 もっと性能が悪化するかと思ったのに意外。


1 0.00413935290658
3 16
4 25
5 36
6 49
7 64
8 81
10 121
11 144
14 225
20 441
21 484
25 676
37 1444
87 7744
108 11881
172 29929
211 44944
234 55225
263 69696
3113 9696996
81618 6661661161
100001 0.967902065765
200001 1.96803504356
300001 2.96787608481
(略)
999700001 10284.479661
999800001 10285.5041658
まぁそういうわけで、おそらく81618が最大なのだと思うので、 逆に81618が最大であることを証明する方法を考える。 まぁ、ある自然数nについて「10 ** n 未満のどの自然数を2乗しても 下n桁が2種類の数字で構成された数ができない」 ということを示せば十分なのだけど。

2007年04月07日

大変!閉じ込められた

大変!閉じ込められた(笑)

追記:無事脱出しましたw

状況説明:扉の開く側の壁に置いてあった段ボールが倒れて扉が開かなくなりました。 頑張って押したら10センチほど開いたので携帯で撮影してみましたがいまいちわかりにくいですね。

腰が痛い…。 パソコン置いていこう。

新入社員5日目日記

ラボのマシンをまともにテキストエディタが使えるようにしないと。

窓の手を入れて、任意のファイルをMeadowで開けるようにした。 窓の手の「右クリックメニュー」「未登録ファイルをダブルクリックしたら…」 でgnuclientwを指定し、「未登録ファイルだけでなく全てのファイルの右クリックメニューに追加する」 をチェック。

縦長モニタだと、タブブラウザのタブがたくさん入らない。 タブが縦にならないかなぁ。

PDFの中でもECMAScript使えるのか…。

ghostscriptを入れないとconvertでPDFをいじるのに失敗する。 入れればconvert foo.pdf -resize 1200x1600 foo/foo.pngで連番ファイルに落とせる模様。

あ、でも-resizeでサイズを指定しても小さい画像の拡大になって画質が悪いな。

電話を取るのはまだまだ練習が必要だ。 「畑さんはいらっしゃいますか」と言われて 「畑は」と返すべき所をうっかり「畑さんは」と言ってしまい、 「あっ、しまった」と思ったら頭が真っ白になってしまった。


= 来週一週間は本社の新人研修に混ざることにしました。
= 弾さんのうちでHackathonに参加中。

Device::USB::MissileLauncher - interface to toy USB missile launchers - search.cpan.org をPythonに移植するというネタだったのだけど、 あらかた作り終わってせっかくだからと英語のドキュメントを作るためにリンク先を読んでいたら、 すでにPython版があることが発覚orz

でもそれは古いバージョンのミサイルにしか対応していないので新しいバージョン用のを作る。

ううむ、Perlのcontrol_msgとPythonのcontrolMsgで引数の個数が違う…。

Perlのは ($requesttype, $request, $value, $index, $bytes, $size, $timeout)


= PythonのcontrolMsgは長さを自分で判定するので$sizeに相当するものがいらない。
= Python版完成。
= 終電がなくなった。あったはずなのに。

門前中町で総武線に乗り換えたらいいと思ったのだけど、 門前中町は東西線への乗り換えだった。 領国に行かないといけなかったのに間違えた。

追記: 門前中町→門前仲町、 領国→両国


= マンガ喫茶に行った。 年齢確認や氏名の確認はおろか、席の指定までなかった。 そのマンガ喫茶のいずれかのマシンから特定の時刻に不正アクセスが行われたことがわかっても、 そこから犯人にたどり着くことができない。 よくないなぁ。

よつばとってこういうマンガだったのかー。

2007年04月05日

新入社員4日目日記

ううむ。 電話の取り方を覚えないと。
= 教えてもらった。 だいぶ不安。 明日の朝ロールプレイ。

新卒の今、新人研修を受けておかないと、 社会の常識を知らないままいい年になってしまいそうな悪寒。


= サイボウズOfficeのスケジュールを超整理手帳にエクスポートした。 でも、僕は単にA4の4分の1の枠に(はみ出さないように折り返して)印刷したかっただけだけど、 普通の超整理手帳スタイルで印刷したい人も多そうな気がする。
= Google先生!、「マインドマップ 西尾泰和」でイメージ検索したときの結果がおかしいと思います! あやや出るの絶対おかしいと思います!

自己組織化写像で検索した10番目に出てくる画像は僕のPythonワインライナーですっ!


= 回転モニタ
回転モニタ posted by (C)にしお

A4の資料がA4より大きいサイズで一望できる。 特に回転できるモニタを頼んだわけではなかったのだけど、 最近のDELLのモニタは全部こうなんだって。 開発の時は横長に戻そうかと思っていたのだけど、 縦長の状態で横幅が今まで使っていたThinkpadより広い。 Pythonでコーディングしている間は縦のままで十分だった。 Eclipseを使うときはやっぱ横長にするかも。 そういえばまだEclipseを入れていないなぁ。


= わお、もう8時半だ。 しなくていいのに残業しているw

2007年04月04日

新入社員3日目日記

Schwartzian transformとか勉強。

Schwartzian transform - Wikipedia, the free encyclopedia

ようするに

>>> def compute(x):
	"very slow function"
	print "compute", x
	return -x
という重い処理をした結果についてソートする場合に、 compare(略してcmp)の中でその処理を実行するとなんどもcomputeしてしまってもったいない、
>>> xs = range(5)
>>> xs.sort(lambda x,y: cmp(compute(x), compute(y)))
compute 1
compute 0
compute 2
compute 1
compute 3
compute 2
compute 4
compute 3
>>> xs
[4, 3, 2, 1, 0]
だから、先にcomputeしておいて、それをソートしようということらしい。
>>> [x[1] for x in sorted([(compute(x), x) for x in xs])]
compute 0
compute 1
compute 2
compute 3
compute 4
[4, 3, 2, 1, 0]

[Tokyo.pm] Re: [Tokyo.pm] JUS感想

での歌代さんの主張はPython流に表現すると 「タプル(compute(x), x)の生成コストの分だけ余計だ。下のコードの方が早い」という感じなのだろう。

>>> xs = range(5)
>>> computed = [compute(x) for x in xs]
compute 0
compute 1
compute 2
compute 3
compute 4
>>> [xs[i] for i in sorted(range(len(xs)), 
	       lambda x,y: cmp(computed[x], computed[y]))]
[4, 3, 2, 1, 0]
computeの回数自体はどちらでも同じなので、 後は生成コストやアクセスコストのかねあいになる。 PerlとPythonではそのあたりのコストは違うだろうから、 ベンチマーク取らないとPythonでもこのコードの方が速いのかどうか僕にはわからない。 まぁ、インスタンスの作成コストはアクセスのコストに比べてだいぶ大きそうな気がするから たぶん速いんだろう。
= OpenIDとか勉強。
= っていうか今日はYAPCなので ラボにほとんど人がいない。

すごい雨だし。


= お腹空いたし、帰ろうっと。 7時半、出社、っと。
= 帰ったらネットが細くて日記の更新が面倒だと気がついてここで更新。 窓から外を見たら国会議事堂が見えた。

赤坂の社窓から
赤坂の社窓から posted by (C)にしお

Pythonで日本語PDFをつくるサンプル

西尾泰和のブログ @ Cybozu Labs: Pythonで日本語PDFをつくる短いサンプルに移動しました。

2007年04月03日

新入社員2日目日記

5時に目が覚めた。まだ暗いのに。

昨日9時ぐらいの電車に乗ったら混んでいたけど、 7時14分発の電車はがらがらだ。 余裕で作業ができるのに、バッテリーの残量がない。

8時前に会社に着くから9を足すと17時か。


= 座れたのは押上発だったからで、 少し進むと席が埋まった。
= ご飯を食べに出る。 サイボウズの「外出」ボタンをぽちっと押す。 ちょっと面白い。

外に出たついでにプライベートな作業を片付ける。 七日の土曜日の午後に部屋を片付けてくれる人が来ることになりました。

インターネット接続の方は、光ケーブルをつなぐのに工事が必要なので、 貸し主の許可をもらわないといけないそうな。 貸し主って誰だろう。


= サイボウズ(ソフトの方)はなかなか面白い。 メールがスレッド式掲示板みたいなのは最初はぎょっとしたけど、 なれてみれば一連のやりとりが一つのスレッドにまとまっているのは自然 (GMailだってそうなってるし)だし。 で、そのやりとりスレッドを最初は「大事なメールだから」と思って 「☆」という名前のフォルダに入れたのだけど、 正解は「トップに出す」ボタンを押すことだった。 これでトップ画面にリンクが表示されて、どの画面からでも2ステップでたどり着けるようになる。 リンクが表示されるイコールそのスレッドが更新されたかどうかわかる、なので便利。

スケジュール帳はワンポケット原則に従わないといけないので、 サイボウズの自分のスケジュールをうまいこと超整理手帳にエクスポートする方法を考えねば。


= 五時半退社。

新入社員なのに真っ先に帰るのはどうかと思うけども、 たぶん求められているのは「上司より先に帰らない」なんていう 封建的な忠誠心じゃぁないと思うので大丈夫(?)

西船橋に帰って部屋の片付けをする。 路線図を見て「ああ、黄色い線に乗って飯田橋まで行って乗り換えか」 と思い、改札を入ったが飯田橋行きがない。 黄色い線だと思って山吹色の銀座線の改札を入ってしまったけど、 正解は浅黄色というか黄緑色の有楽町線だった。

席が空いたので座ろうと思ったが、 カバンの紐を戸袋に吸い込まれて動きが取れなかった。 開くドアには気をつけましょう。

また定期を買うのを忘れてしまった。 まぁ、赤坂見附の駅で売っているのは確認したから、 明日の朝来たときに明後日からのを買えばいいか。


= 着いた。

新聞を止めなきゃいけなかったな。

あれー、意外と時間がかかったなぁ。7時だ。

終電検索。こっちを11時半に出るのが終電。


= さてと。 トートバッグ1杯くらいなら荷物を持って帰れるので、 何を持って帰るか考えた結果、 「引っ越し業者に任せると不安なものから」 ということに。とりあえずカリンバとウダー。楽器は精密機器だしねー。

当初はIH調理器とか薬罐を持って帰ろうかと思っていたのだけど、 とりあえずお茶は買えばすむし、 食事は外食で済ませているので引っ越しの時でもいいかと考え直した。

次はハードディスクだな。あと液晶モニタ。 液晶モニタは重いから大変だ。

本棚からだいぶ本を抜いて梱包した。 小さい段ボールが足りなくてどうしようかと思ったけど、 小さい段ボールに入っている服を大きな段ボールに移すことで解決。 たぶん今あるのだけで足りるだろう。

4月20日の退出期限に間に合わなかったら 「レオパレスを1ヶ月延長してゴールデンウィークに引っ越す」 という手しかないかと考えてたけども、 この調子ならたぶん間に合うだろう。 土曜日にプロが片付けてくれるし。


=
スケジュール帳はワンポケット原則に従わないといけないので、 サイボウズの自分のスケジュールをうまいこと超整理手帳にエクスポートする方法を考えねば。
これすぐやるか、とりあえずしのぎに手書きで書き写すかしないと、 電話で6日空いてますかと聞かれて答えられなかった。

携帯でラボのサイボウズに入れると書いてあったような気がするけど、 とりあえず電話で通話中にログインしてチェックするのは現実的じゃないし、 やっぱ紙の手帳でしょう、と。 早く電子ペーパー+タブレットの超整理手帳が販売されないかなぁ。


= 帰りに道を間違えた。 押上と反対方向から来たから反対の出口からでないといけないのに間違えた。

東京の鉄道と大阪の鉄道が大きく違うところ。 大阪の鉄道は道路の上もしくは下を走っているので、 逆のホームから出ても道沿いに歩けばいい。 少なくとも京成曳舟の駅は、逆のホームから出たら 反対側の出口へ至る道が自明ではないので大変なことになる。

駅から見える謎の赤いストライプの入った不自然に高いビル (たぶんデザイナーズマンションっていうやつだと思う) まで行けば、その隣に普段の道沿いのコンビニがあることが判明した。

これでもう迷わない?


= 昨日は帰ってきたら眠くて9時過ぎに寝たのだけど、 今日も帰ってきたら眠いのでもう寝ます。11時半か。 昨日と同じ睡眠時間なら7時に目覚めるのだろうか。 一応8時に目覚ましをかけて寝る。

2007年04月02日

新入社員日記

初出社日~。 1時に寝たのに6時に目が覚めた。 修学旅行前の小学生か!

初日から「昼過ぎに眠くなって居眠り」ってのもどうかと思ったので頑張って二度寝。 途中、阪神大震災よりゆるくて長い地震を感じたんだけど、夢か。

7時に起きたのに家を出るときには8時半。 もうちょっと朝の準備を手際よくしないと。

途中でお腹がやばくなって大手町の駅で途中下車。 カコナールの主成分は確かにカッコンだけど、次に多い成分はマオウ。下剤。

そんなこんなで10時からオリエンテーリング、 雇用契約書とかに判を押して、11時。さて、何をしよう。 自分用のマシンはまだ届いてないし、ラボの掲示板用のアカウントもまだないし。

Flexいじろうっと。


= 型の宣言は必須なんだろうか(追記:strictモードでは必須らしい)。 なんでJavaっぽい文法のくせに型の宣言だけ後置なんだ。
var i:int;
とか。

集積蔵 - fcwrapをWindowsで動かすメモ


= 新しいマシンが来た。 まずタスクバーを縦にして、テーマをクラシックにして、フォルダオプションで全表示。

とりあえずFirefox。


= 集積蔵 - fcwrapをWindowsで動かすメモの 「%RUBY_HOME%\src\ruby-1.8.6\ext\pty\libにあったので、これを%RUBY_HOME%\libにコピペ。」 に従って「ここでいいのか?」と疑問に思いながら「C:\ruby\lib」にコピペしたけど、 正解は「C:\ruby\lib\ruby\site_ruby\1.8」みたい。
C:\Home\Projects\as>fcwrap Test.as -s
[04/02 15:58:49] Start Rack::Handler::Mongrel http://0.0.0.0:3001/
[04/02 15:58:49] Found update files: Test.as
[04/02 15:58:49] Compile Start
c:/ruby/lib/ruby/site_ruby/1.8/expect.rb:17:in `expect': undefined method `chr'
for nil:NilClass (NoMethodError)
orz。 「fcwrap Test.as -s -b 127.0.0.1」でも同じエラー。 えっと、原因の行は…「process.expect(FCSH_WAIT_RE)」か。 あっ、fcshいれてないや(そりゃダメだ)

Flex Compiler Shell - Adobe Labs

おお、できたできた。めでたしめでたし。

まとめ。


= とりあえずこの一連のを新しいマシンのほうにも入れる。
= zipの解凍ができないのでLhaplusを入れる。 あれー、ダブルクリックで解凍する拡張子にjarが含まれてる。 前からそうだったかなぁ。
= うーん。 ActionScriptめんどくさい…。 Haskellみたいに型推論してほしい。
= ActionScriptでボロノイ分割してみた。 25万点×1000点の総当たりの二乗距離計算はActionScriptでは20秒程度かかった。 使えないなぁ。

あー、でもその程度ですむってことは、 物理演算でレイアウトするのは 実用的な速度が出るかもってことか。 やっぱりGRINEdit2をFlashで作るかなぁ…。


= 名古屋で日記などの続き。 名古屋で日記など
あ、次はボロノイ迷路を作ろうと思っていたのに(笑) アルゴリズムもその通りです。
あっ、勝った気分。
 せっかくなので、 * うねうね動画 (GIF, 1.2MB)
うわー。負けた気分w 粘菌みたいで萌えるw

一気に計算すると2乗のオーダー以上の計算量がかかるってのは、 例えば1単位時間進めるのに必要な計算が2乗のオーダーで、 部屋が広くなるほど粘菌が成長して全体を覆うまでの時間が伸びて(1乗~1.5乗くらい?)、 結果として3乗くらい、ってことじゃないんだろうか。

だったら、空間を小さなブロックに分割して、少しずつ広げたらいいんじゃないだろうか。 粘菌の端からある程度離れているところは、ほとんど0と見なしていいだろうし、 粘菌がびっしり覆ったところは定常状態になったと見なしていいだろうし。 粘菌の成長にあわせて末端部分を中心に計算していく。 そしたらオーダーが1乗くらい減りそう。

ところでボロノイの方は、単にランダムにしてしまうとやたら尖った点とかができて醜いことがわかりました。 あらかじめ何ステップか「頂点の間の反発力」を書けて散らばらせてやるとトウモロコシ状にはなりそう。 でもやっぱり粘菌がいいなぁ。 壁が曲線なのがいいなぁ。 成長させきらずにふくれた先端とかが残っているとなおいい。


= 今日は錦糸町で降りてシャンプーとか洗剤とか買ってきたけど、 帰ってきたら最寄りのドラッグストアが開いててがっくり。 洗剤は安かったけど、電車代を考えるとなぁ…。 まぁ21時まで開いていることがわかったのでよしとしよう。 花屋さんもまだ開いていたのでサンセベリアを買った。

明日は早めに行って早めに帰って西船の部屋を片付けよう…。


__ 朝5時に目が覚めました。 集積蔵 - fcwrapをWindowsで動かすメモが更新されていました。おつかれさまです。

就職しました(訂正)

サイボウズ・ラボ株式会社に入社しました! 昨日ズボラ防災株式会社だと書いたのは、間違いでした!ごめんなさい! でも構成している文字は同じだからいいよね! 立地はあってるし、研究内容も50%ルールも大体あってるし! リフレッシュルームに置かれた模型とか、壁の言葉とか、玄関脇の装置とかも、 (ちょっと説明に間違いはあったけど)実在するし!

会社は赤坂見附駅から徒歩1分の位置にあります。と書いてあるけど、 入口の警備とエレベータで1分以上かかりそうです。 半蔵門線で通うので永田町駅から歩く予定です。徒歩3分。 コアタイム開始の11時に会社に居ようと思ったら、 10時14分に曳舟の駅を出て10時45分に永田町に着くのがデッドラインみたいですね。

あと、 50%ルール というものが存在し、 就業時間の50%は自分で設定したテーマについて 研究することが認められています! でも「ロボットを作りたい」はダメらしいです。 「ピタゴラ装置を作りたい」はOKだという噂がありますが事実かどうかは後できいときます!

サイボウズ・ラボは現在10数人のすごく小さい会社ですが、 実はサイボウズ株式会社の100%子会社なので、 東証一部上場企業とベンチャー企業のいいとこ取りです!たぶん! 興味のある方はこちらへどうぞ→ サイボウズ・ラボ : 人材募集

ラボの写真。(後で貼る)

P1060999
P1060999 posted by (C)にしお

リフレッシュルームに置かれたジェットコースターの模型。

P1070001
P1070001 posted by (C)にしお

壁の風景画が、実は拡大すると 一面にびっしりと書き込まれた言葉。

P1070002
P1070002 posted by (C)にしお

入り口脇のピタゴラ装置。 うまく調節するとちゃんと下まで転がるんだけど すぐ狂ってしまうのでうまくいったのは2,3回しか見たことない。

2007年04月01日

生物迷路日記

名古屋で日記など

生物っぽくていい感じの迷路。

「どうしてループができないのだろう」とか 「どうやって入口から出口まで1本のパスがあることを保証するんだろう」 とか疑問に思ったけど、 ようするに1本のパスからスタートして画面を覆うように変形させるということか。

「空間を規則格子に区切っていては面白くない。」 というニーズに応えるだけなら、僕ならランダムに点をばらまいてボロノイ分割する。 クラスタリングによる迷路の作成がそのまま使えるし。 縦と横でスキャンして、最寄りの点が隣接する点以外に変わったピクセルの 前後のピクセルを塗ればいいだけ。

でも反応拡散系のうねうねはいいなぁ。 なんかいとこ取りをする方法はないのかなぁ。 僕の方法で初期値を決めてから反応拡散系に持ち込めばいいのかなぁ。


= あうあう。 頭痛い。 首と肩がこっている。 これは葛根湯の適応症か。
= おおお。カコナール飲んだら楽になった!

明日デジカメを持っていくの忘れないようにしないと。 職場の写真を撮って載せないといけないから。 模型とか壁の言葉とか玄関脇の装置とか。

新居に荷物を持って移動。 服と、歯ブラシと歯磨き粉と目覚まし時計とタオル。 とりあえず5日は生活できるはず。 何か足りないものに気づいたら帰りに買うなり、 帰りに西船によって取って来るなりすればいいし。

就職しました。

本日付でズボラ防災株式会社に入社しました!

会社は火災で多数の死傷者を出したホテルニュージャパンの跡地にあり、 その立地を生かして地縛霊間の情報共有や知的生産性の向上などの研究を進めています。

あと、50%ルールというものが存在し、 就業時間の50%は自分で設定したテーマについて研究することが認められています。 既存の科学の枠にとらわれないイノベーティブな研究であることが求められます。

ラボの写真。(後で貼る)

リフレッシュルームに置かれたアダムスキー型宇宙船の模型。

壁一面にびっしりと書き込まれた、なんか、言葉?

入り口脇の相転移エンジン。 うまく調節すると真空エネルギーを使って発電できる。 でも人が歩く振動ですぐ狂ってしまうらしい。