Home > Archives > 2005年05月

2005年05月

涼しいなぁ

今日は雨のせいで非常に涼しい.涼しいと非常に寝やすい.寝やすいと非常に寝坊する... けど今日は間に合った.よし.

ま,風引かないように気をつけよう.

寝坊した...

最近,携帯を目覚まし時計代わりに使っているのだが,今日は電池が切れていた.そして,昨日は寝るのが遅かった.結果,一限を寝坊した.いやぁ,目覚ましがなるから二度寝しても良いだろうなんて考えたのが間違いだったのかも.

大掃除

カーテンの頭に埃が積もっていたので大掃除をした.カーテン全部洗濯+掃除機フル稼働で.あー疲れた.

パゼスト撃破

今まで青だまの回転ができずにパゼストが取れなかったのだが,酔いがさめて試してみたら一発で回れた... 今まで何で回れなかったのか疑問ではあるがまあそんなもんなんだなぁと納得.ついでだからマリサ砲で撃破もしてみましたとさ.

反省会

輪講発表が終わったので反省会.前の発表者が時間延ばし過ぎで60分の発表が45分になった分,発表内容が薄くなったが気にしない.スライド48枚を40分弱で終わらせたのも気にしない.間の人間は31枚で75分だったけど.そんなんで反省のために梅酒の瓶を半分ほど空にしてみたり.酔っ払って東方やったら弾に当たりまくりだったり.とにかく今学期のオフィシャルな発表はあと一回なので気が楽になった.

れいじーえヴぁりゅえーしょん

依存関係に循環構造を持たせてレイジーに評価することでデータの走査を一回にする... まあ,ありだよねと.レイジーな評価をするといろいろトリッキーなことができるんだなぁと改めて感心.ということで,人生もレイジーに評価すると何かいいことがあるかも.

健康診断

ということで,身長やら体重やら血圧やらを測ってきた.血圧を測る機械が嫌いなために3回ほど計りなおしたりしたけど全体的に問題なし.ちなみに3回計った血圧は40近くの開きがあるという結果だった(緊張して血圧が上がってしまう...).ま,一番面白かったのはここ3年で身長の誤差が1ミリということだろう.数値も 1777mm でめでたい数字だし.ということで,来年も 1777 を目指してがんばろう.(何を?)

早寝

眠い... アフタヌーン読んだら寝る@21:00

スライド枚数大杉

輪講の発表時間は1時間.質疑応答を含めると実質45分.スライド枚数53枚.うち5枚は目次とか.実質48枚.1分1枚でほぼぴったり計算なのだが... 発表練習で馬鹿丁寧に説明してみると時間が足りない.さーて縮めるか.目標40枚でゴー.

免許更新の通知

免許更新の通知が来てしまったので書き換えに行かないと.といってもあと二ヶ月あるけど.とりあえず今回の書き換えでゴールドになるみたいで少々うれしいかも.とりあえず,めがねでも作り直しに言ってくるか.最近近くもぜんぜん見えないから.

Java の無名クラス

無名クラスの中で無名クラスを使いつつ,初期化用のメソッドまで呼んでいる分かりにくいコードを書いてみた.

        xpane.add(delTabButton = new JButton(){      // "Del Tab" ボタン
                JButton init(){
                    setText("Del Tab");
                    addActionListener(new ActionListener(){
                            public void actionPerformed(ActionEvent e){
                                delTab();
                            }
                        });
                    return this;
                }
            }.init());

init() が this をリターンしているのが鍵ですな.

グリチャレ報告

SACSIS2005 の参加動機であるグリチャレ報告会を見てきた.

どうやら速かったチームは morton オーダーをそのまま,RLEを展開せずに使っていたらしい.ひとつのセルの左と上の連結をチェックしつつ色を塗っていき,上と左が別の色だったら同一の色とするためリンクをはる.大きなブロックをいっぺんに処理するのが基本らしい.

優勝者のプログラムは,そこらへんを処理するコードを吐くプログラムを作って生成したらしい.あと,さらに重要なのが NFS で,全てのプロセスがいっぺんにファイルを読みに行ったら NFS がボトルネックになることは明らか.できるだけローカルの上にファイルをキャッシュしておいて,二回目に走らせるときにそのキャッシュを使うようにすべきらしい.ただ,これをやろうと思うと毎回同じファイルをとくような静的割り当てをしておかないとだめだろうなと.優勝者のプログラムは割り当てを LP を解いて静的に求めていたらしく,キャッシュを有効に活用できていたみたい.

ちなみにLPは,

C(i) : クラスタ i の動作周波数の和
f(d) : d の立っている bit に対応するクラスタに存在するファイルの数
       (たとえば,f(10) はクラスタ 1 と 3 にマスタとレプリカ1つがあるファイルの総数)
w(i,d) : クラスタ i の d (上記)であるファイルの割り当て数
T(i) = ∑(d=0..511) w(i,d) / C(i) : クラスタ i の計算時間

として,クラスタ全体の計算時間を最小化する.

min. max T(i)
s.t. ∑(i=0..8) w(i,d) = f(d)    (ファイル数の制限)

実際にこの LP を解くには,次の小問題を i = 0..8 に対して9個解き,その最小値の解を使う.

min. T(i)
s.t. ∑(i=0..8) w(i,d) = f(d)    (ファイル数の制限)
     T(i) >= T(j)               (クラスタ i が一番遅い)

この割り当ての決定は 1/100秒程度で,スピードアップは2倍程度らしい.

とにかくすごい.

グリチャレ最速の秘密

SACSIS2005 のポスターセッションでグリチャレの優勝者が展示発表されていたので質問をしにいってみた.ポスターの内容は自由課題でやったことだったけど,関係ない規定課題の質問にも答えてもらえた.で,速さの秘訣はなんだったかというと,シーケンシャルプログラムが速いことらしい.Morton 順序のまま RLE を展開せず連結成分を塗り分けていくと.RLE を展開しないってのが結構効いてそうだなあ.ちなみに,ネットワーク部分は何を使ったのかとたずねたら Socket のみとの回答が(スレッドもなし).そして当然のごとく,どこかのノードが落ちたらアウトな設計らしい.Ninf-G とかは使う気にはならなかったのかとたずねたら,使い方がわからなかったとの回答が.とにもかくにも,下手なものを使わずものすごく素直にプログラムするが一番速かったんだなぁと思いましたとさ.

今日の最後にはグリチャレ実行委員会による報告と表彰式もあった.報告は実行委員長である田浦先生が行ったのだが,なかなかお茶目で会場を沸かしていた.報告の最終ページが「怪我人:0, 死亡者:0」とかだったのは気にしない.んで,優勝者は二回ほど壇上に上がり(初級と上級),表彰状と奨励金と副賞をたんまりもらっていた.グリチャレは来年もやるみたいだから,来年こそは奨励金をもらいたいものだ.

つくばへ

SACSIS2005の参加のため今日からつくばへ出張.高速バスの終点であるつくばセンターから南に1キロ弱の国際会議場で行われた.で,何を間違えたか会議場が北にあると思い込み,少々道に迷ってみたり.でも,平木先生のEFLOPS/Tbps の話が適当に面白かったので気にしない.そのあとホテルまで5キロ弱歩いたけれど気にしない.あー,疲れた.

そろそろやばい

スライドの作成枚数を抑えるために例をあまり使用しない予定でいたのだが,さすがに分かりにくすぎるので枚数を倍増することに.スライドはある程度の形になったが配布資料の作成が追いつかん...

久々のICPCプログラミング

そろそろみんなでACM/ICPCの練習会をしましょうということで,輪講の資料がやばいにもかかわらず数時間プログラム作成で現実逃避.とりあえず慣らしのために簡単なDPとして 会津国内予選のC を組むことに.今年の参加資格のない人間が3人と参加できる人が3人でやっていたのだが,参加資格のない人間のほうが早い...(私は15分弱) こんなんでいいのだろうか? まあ,これから練習してなれてくれば大丈夫でしょうけど.さて,来週はもう少し人数を増やしてがんばろう.

スライドができあがらん

輪講発表用のスライド作成が一向に進まない.例を何パターンか導出して時間を食いすぎた.あと34時間でスライドと資料をあげなければ.ちょっとやば目だ.

例が複雑すぎ...

輪講の資料に提案する手法を適用する例を載せようと思うのだが,いかんせん複雑すぎる.問題は単純だけど効率化しにくい形なので導出過程が複雑にならざるを得ない.でもまあいいか.どうせ簡単なのでも分からんと思われるから.とりあえずさっさとスライドを作らないとやばいかも.

ロマサガ3が100円

SFCのロマサガ3がいっこ100円で山積みで売られていた.とりあえず2つ買ってみた.でも手元にスーファミがなかった...

とりあえず書類書き終えた

面倒だった書類をやっと書き終えた.あとは先生の評価書待ち.当たるかどうかは分からんけど,これからの研究の予定を考えるよい機会ではあった.とりあえず敵が多いので確率は低いと思うが当たることを祈っておこう.

カウンタ値で記号を順に表示

TeXで脚注に使われるような記号をカウンタ値に応じて表示させるのを fnsymbol コマンドでできるらしい.たとえば以下のようなコードで記号が順にでる.

\newcounter{samplecounter}
\setcounter{samplecounter}{0}
\fnsymbol{samplecounter}
\stepcounter{samplecounter}
\fnsymbol{samplecounter}
\stepcounter{samplecounter}
...

カウンタの値設定が setcounter で,カウンタのインクリメントが stepcounter で.まあ,こんなことを知っていてなんの役に立つのか良く分からないけど.

TeXで参考文献を分割して出力

TeX で(bibtex を使わずに)参考文献を出力するには thebibliography 環境を使う.そうすると「参考文献」のセクションタイトルのあとに参考文献リストが連番を振られて並ぶ(alphaとかは別).で,とある理由で参考文献のリストを分割して表示したいと思って thebibliography を複数個所に書いたら,各々のリストに対して1から連番が振られてしまい参考文献がバッティングしてしまった.で,分割しても連番で出したいのでどうしたものかと考え,よい方法が見つからないのでクラスファイルをハック.どうやら enumiv なるカウンタを環境の頭で作っているようなので,それの初期値を指定してやることにした.

\begin{bibliography}
\setcounter{enumiv}{7}
\bibitem ...
\end{bibliography}

みたいな感じで(これは7番から連番になる).まあ,こんなことせずにグローバルなカウンタ作って \begin{thebibliography} とかを再定義すればいいんだけど.とりあえず今回はこれで良いや.

さて,博士に行くか...

悩んだ結果「博士で企業に就職」コースがレアな気がするのでこのコースで行ってみようかと.ま,モノは試しだ.つーわけで,さっさと事務に提出した学科推薦の志望を取りやめなければ(まだ書類出してないからいいよね).学振の資料もまともに書かないと.あーめんどー.輪講のスライドと資料も作らなきゃ.

どうしようかなぁ...

とりゃーず就職で進路志望を出してしまったけど.博士に行くか就職するか.博士に行っても企業は通年採用とかしているし.親の了承も取ってあるし先生方も博士を勧めているが,いかんせん3年間金がかかる.うーむ,博士を取ることのメリットっていったい何なんだろう? 博士号を取っていたほうがあとあと有利になるかもしれないけどなぁ.その分,分野が狭まりそうだし.はあ,寝るか.

ThunderBird のSMTP設定

ThunderBird は普通の設定だと SMTP サーバを全てのアカウントで共通にしてしまう.この設定でとくに問題ないけど少々気持ち悪いのでアカウントごとにSMTPを設定したい.

で,実際設定しようとすると少々面倒.まず,アカウント設定の「送信(SMTP)サーバ」で「詳細」ボタンを押して出てきたダイアログでSMTPの設定を追加する.次いで,各アカウントの「サーバ設定」の「詳細」ボタンを押しSMTPタブで設定する.これを全部に対して繰り返す.

うーむ,SMTPサーバを共通にしといたほうが楽だなぁ.

書類書くのが面倒...

書いても通るか分からない,書くのが面倒な書類って書きたくない.やる気限りなくゼロ状態.でも当たれば... やっぱ書くか.

PSPのUMDからファイル抽出

誰かが必ずやることではあるが PSP でも吸出しの技術が出来上がったようで.吸出しができたら,こんどはきっと誰かがそのソフトをPCとかで動かしたくなるわけで.さてエミュレータ本体が出来上がるのはいつだらう?

花映塚

ショットボタン押しっぱなしで連射できない.ということでキーボードで連射しようとすると手が痛い... まあ,あんまり連射の必要なゲームではないみたいだけど.とりあえず,製品版でみょんが使用できることを切に願う.

博麗神社例大祭

なにやら今日の例大祭はとてつもなく混んでいたようで.長蛇の列だけでも見に行けばよかったかなぁ.とりあえず,社務所のスタッフも参拝者もお疲れ様でした.

冷蔵庫を直す

年末あたりから冷蔵庫の調子が悪くなり始め,今ではファンがかなりの騒音を発している.安眠妨害以外の何物でもないからいい加減どうにかしようということで,早速分解した.といっても,全部を分解するのは面倒なので,騒音の元である冷凍室のファンユニットを分離して調子を見てみる.どうやらファンはモータの軸に単にはめられているだけのようで,4年間の使用によりファンがモータの軸を徐々に滑ってモータユニットに接触してしまっているのが騒音の元であった.といことで,ファンをモータユニットに接触しないように軸上で滑らせて問題解決.これで静かになる.めでたしめでたし.

それにしても作成元はファンが徐々にずれていくことは考えてなかったのだろうか? それとも保障期限が切れたあたりで接触するように設計して修理費をぼったくる気だったのだろうか? とりあえず20分もかからない作業で直るものを修理に出すのも馬鹿らしいよなと思ってみた.

学振の書類

就職に失敗した時用に学振の書類を提出しておこうかと考えていたのだが,結構書くことが多くて面倒.しかも,競争率が激しいから書類を書いても通る可能性は低い.さーて,どうしようかなぁ?

それにしても修士の1年で論文誌になんか投稿できねぇだろとか思うのだが他のところは可能なのだろうか? 卒論が1年間あって修士も連続して研究するなら可能だろうけど,卒論と修士の研究が別物の場合はほぼ不可能だよなぁ.

CRCをテキストに埋め込むプログラム

IOCCC2004 のプログラムを眺めていたら omoikane.c なるファイルを発見(omoikaneはハンドルネームらしい).名前がいい感じなのでソースを見てみる.なにやら何かのキャラクターのAAになってるらしい.よく見てみると "Moekan" "kero Q" なる文字が... 説明テキストを読むと "Rinia is a tool for embedding CRCs in text files." だし... ということで,もえカンのリニアを模しているらしいが,作者のコメントどおりあまり良く分からない.

それはさておき,プログラムの動作自体はとても面白い.テキストファイルとかを読み込んで,CRCをそのテキストの中に埋め込むらしい.もちろん,そのCRCは「埋め込まれたCRCの文字列を含んたファイルのCRC」である.まあ,CRCを埋め込むファイル全体のCRCが変わるわけで,簡単に埋め込めないことは容易に理解できる.仕組みとしては,入力でCRCを埋め込む場所とCRC調整のために使える置換してもいい部分を用意してもらう.そんで,現在時刻を使って最後の置換可能文字(もしくはCRC埋め込み位置)までのCRCを決めちゃって,それを種にしてその後ろのCRCを計算してそれをファイルに埋め込む.あとは,がんばってその適当に決めてしまったCRCを達成するように置換文字を全パタン試す.うまくCRCを調整できたらおわり.まあ,それ以外のやり方が無いよねと思う.

ところで,IOCCCに出されるだけあってソースは読みにくい.3項演算子が大量に使われているのが主な原因.でも根気で読んでみると結構知らなかった書き方などを学べて勉強になる.この作者は他にもいろいろやっているようで,ホームページを見てみるとかなり面白い.どうやらソフト屋さんのようでACM/ICPCで World Final にいってたり ICFP のプロコンにでたりもしたらしい.Development Tools に vim はあっても emacs が無いあたりもすばらしい.なにより,日本人じゃないだろうにドメインが uguu.org だったり... とにかくすげぇなぁ.

Home > Archives > 2005年05月

Search
Feeds

Page Top