天気が良かったので、多摩川を自転車で下ってみました。

立川から田園調布あたりまでを往復してみました。本当は海まで行ってみたかったのだけれど、スタートが遅かったので時間がなさそうだったということで次回の課題に。

あちこちで野球とかサッカーとかバーベキューとかやってて、楽しそうでした。アウトドアやりたい。
mapion::距離測定
だいたい56km走って、消費カロリーは2000kcal程度。往復で6時間程度でした。

途中にたくさんの鯉のぼりが泳いでいました。子供おお喜び。
結果

日焼け対策を何もしていなかったため、こんな真っ赤になってしまってお風呂に入りづらいことこの上ありません。
帰ってから食べたお好み焼きとビールがすんごくうまかった。
Gulfweed::TopCoderでCodeProcessor+TZTester+FileEdit のエントリを見て、おおそんな便利なプラグインがあるのか! と試してみました。
僕はC++を使うのですが、defaultのテンプレートではローカルでそのままコンパイルできなかったので、少し手を加えてみたのが以下です。
C++用テンプレート
$BEGINCUT$
#if 0
$PROBLEMDESC$
#endif // 0
#include <iostream>
#include <sstream>
$ENDCUT$
#line $NEXTLINENUMBER$ "$FILENAME$"
#include <string>
#include <vector>
using namespace std;
class $CLASSNAME$ {
public:
$RC$ $METHODNAME$($METHODPARMS$) {
}
$TESTCODE$
};
// BEGIN CUT HERE
int main() {
$CLASSNAME$ ___test;
___test.run_test(-1);
}
// END CUT HERE
しかし、ほんと便利。一時期自分でフレームワークを作ろうとしていたのだけれど、やっぱり誰かが既にやっているものなのですね。
あとは解決能力を伴わせなければ…
2回目の参戦。Division 2。
Coding Phase
- 250点問題 : 部分文字列の削除問題。15分ほど。194.62 pts
- 500点問題 : GCDとかLCMかなぁと思いつつ、問題の意味が把握できずにスルー。5分ほど。
- 1000点問題 : 最短経路問題みたいな。方針は20分ほどで立てたけど、テストをなかなか通すことができずGDBとか使って大幅にタイムロス。なんとかsubmitして50分ほど。458.45pts
合計、653.07pts でした。まだまだすぎる…
Challenge Phase
いちおうテストはぜんぶ通したけど、完全に自信があったわけではなかったので、challengeされたらどうしようとびくびくしてました。けど、challengeされることなく終了。ドキドキするものですね。
室内順位は3位でした。System Testでどうなることやら…

System Test
1000点問題がfailしてしまいました。結局室内順位も10位に転落です。無念。

あとでどこが間違っていたのかよく見直しみてようかと思います。
FlickrのSlideShowを埋め込んでみるテスト。
妻が、NHK::外国語講座::スペイン語を始めたいそうです。春だし。
やるからには、録音したものを通勤電車にてiPodで聞いて反復練習したいものです。
しかし、NHKでは語学のPodcastingをやっておらず、自力で録音してごちゃごちゃっとやるしかない。
なんとかならんかと思い、日曜Hackしてみました。
目標
決まった時間に、ラジオを20分程度録音して、iTunesのPlaylistにほうりこむ。
必要なもの
- Mac OSX 10.4 (Automatorのため)
- ライン入力 (PowerBookやMacBookならついてる)
- ライン出力、タイマー起動のできる FMラジオ (うちの場合は、CDコンポ)
- Quicktime Player Pro (録音のため。Proじゃなくてもよかったっけ?)
つくってみる
Automatorでやってみました。

ダウンロード → recradio.zip
一定時間録音して、そのファイルをiTunesでエンコードして特定のPlaylistにほうりこみます。
毎日録音
ラジオ
毎日AM8時に起動して、20分後に電源OFFするようにタイマーをセット。
Mac
cronで。
平日と土曜のAM8時に、RecRadio.appを起動するというもの。
あとは、システム環境設定→省エネルギー→スケジュール で、「起動またはスリープ解除」を毎日 AM8時とか指定しておけば、できあがり。
注意点
Macのライン入力にラジオのライン出力をつなげておくのを忘れないこと。
課題
毎回、同じファイル名になってしまうのはいかがなものかと思います。
感想
Automatorって、shell scriptが書けるならなんでもできそうですね。
これで、NHKラジオ語学講座をPodcasting風に聴くことができるようになりました。
TalkMaster II とかを買うと、手っ取り早く実現できるのですが、そこはDIYで安く上げたいものです。
しかし最大の問題は、うちの家はAMの電波があまり良く届かないという…
Published on
April 18, 2007 in
default.
参加してみます。
準備ということで、SRM::344をやってみたのですが、
- 250点問題 : OK (30分)
- 500点問題 : give up (15分)
- 1000点問題 : no touch
という散々ぷりです。
あと8分後にはじまる本戦は、がんばろう。でも眠い…
25:21 追記
やってきました。

250点問題
文字列と配列の操作の問題でしょうか。
まず手をつけて、ふむふむと解いて142.14 pts確保。11:30かかりました。
アルゴリズムとしては簡単で、
- 配列をソートして、
- その結果にフィルタをかけ、
- 最初のものを取り出す
というものにしました。STLをばりばりと使ってそれらしく。
500点問題
最短経路問題。
分かりそうで分からず、時間がかかりそうなのでパス。
1000点問題
トポロジカルソートかな?
それなら以前、Knuth本で勉強したときにやったなぁと、昔のコードを掘り出してきたり、Wikipedia::Topological sortingとかを見ながら、そうそうキューにつっこんでやるんだったよなぁと思い出しました。
で、なんとなくアルゴリズムも掴めたので、再帰でコードを書き出したのですが、いまひとつうまくいかず。
なんでだーっともがいているうちに時間切れになってしまいました。
しかし、よーく考えてみるとゴール地点から枝分れして再びゴールに入ることも可能、と条件にあるので、もうちょっと難しそうです。
感想
SRMには初参戦でした。
:)
去年にGoogle CodeJam 2006をやったときは、91.62ptsしかとれていなかったので、少しは進歩したのかな。
あと、STLに少し慣れ親しんだおかげで、調べながら書く量が減ったあたり、成長の跡が見られます。
問題を把握する速さも多少は上がったように思います。
:(
sortに渡す関数オブジェクトってどう書くんだっけ?とかいうところでやっぱり調べなければ分からなくて、時間をロスしてしまいました。
アルゴリズムに関する知識もまだまだ浅い。
あとは時間配分ですかね。
25:42 追記
SystemTestをpassでき、順位が確定しました。20人Roomの中で15位。さえない… :(
Ratingは、936とのことでした。1000いかなかった。
初参戦の記録ということで貼っておきます。

Rating Distribution を見ると、いかに自分がaverage peopleなのか分かります。
世界って広いなあとか思う夜更けでした。
Published on
April 18, 2007 in
default.
Tags: job.
ふと歩きながら思いついたこと。
責任
3年もたてば、責任のある仕事を任されるようになってくる。任せられるということでモチベーションを感じる。
また、自分が仕事の結果に対して責任を負うということは、ある程度自分の好きなようにできるということでもある。
好きなようにできるというのはけっこうモチベーションを高めてくれるものだ。
リターン
なんだかんだ言っても年功序列な社会なので、報酬も多少は増えてくる。
しがらみ
入社した頃のイノセンスは徐々に影をひそめ、社内での人間関係や家のローンなどのしがらみを抱えるようになる。
あきらめ
「結局、どこに行っても同じようなもんだろう。ならば、安定している今を崩すリスクを負うことに意味なんてあるの?」と考えるようになる。
以前、10年以上勤めている先輩に「なぜこれまで辞めなかったんですか?」、と聞いたことがあって、そのきの答えが「だんだん居心地が良くなってきて、そのうち辞めて外に出ていく気がなくなったんだよね」というものでした。
そのときはよく分からなかったんだけど、最近ではそういうこともあるのだろうなと思えるようになってきたというお話でした。
29才になりました。雨桜がきれい。

妻がかっこよいスニーカーをプレゼントしてくれました。
これは晴桜。