2004-07-31 (土)
- 天気:晴れ
デスクトップでプログラムを書こうと思ったけど,開発環境が何も 入ってなかったので,メモ帳でプログラム書いて,Meshiのサーバにsshで 入ってプログラムを書く.まぁ,効率は落ちますがWindows固有の プログラムを書かない限りは何とかなるもんですね. というか,C++コンパイラくらい標準でついてて欲しい>Windows. で,結局VC++とMSDN Libraryをインストール.
ここに書かれていることは現実とは限りません. 怪しい記事の多くは,私の夢の中の出来事や,妄想です.写真っぽい画像もCGもしくは念写です.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
| 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 |
デスクトップでプログラムを書こうと思ったけど,開発環境が何も 入ってなかったので,メモ帳でプログラム書いて,Meshiのサーバにsshで 入ってプログラムを書く.まぁ,効率は落ちますがWindows固有の プログラムを書かない限りは何とかなるもんですね. というか,C++コンパイラくらい標準でついてて欲しい>Windows. で,結局VC++とMSDN Libraryをインストール.
とりあえずMeshi邸に行って,Macでいろいろ遊んでくる. 標準でついてきたらしい,開発環境をすこし使ってみましたが, Cocoaですか…ちょっと面白いです. ただ,標準の言語がObjective-Cとかいうものなので, ちょっと戸惑い気味でした. とりあえず,ウインドウを作って,ボタンのイベントににオブジェクトの メソッドを割り当ててというような作業が実際にコードを書かなくても 簡単にできてしまうのはVC++の上を行ってるかも. で,気づいたら,床で寝ていたんですが…夢じゃないですよね?
今日はプログラミングの最後の面接. …さすがに150行のプログラムは駄目でした. 面接はいいから,プログラムだけ再提出と言われました. 講義室に戻って言われたとおりの機能をつけて,すぐに提出しておく.
生協で,昼食を食べた後, ノートパソコンを修理に出しました.いつ戻ってくるかなぁ. そのあと,Meshiのところに行って寝る. エアコンはいいなぁ.文明の利器です. 起きたら,携帯に着信が3件もあった. 2件はTGCHからで,もう1件は調べたら, 長野県赤十字血液センターだった.なんだろう?
MeshiのMacで今まで書いてた某プログラムをコンパイルしてみる. コンパイルは通ったけど,どうも動作がおかしい. 見直してみたら,一箇所だけエンディアンの変換が抜けていた. そこを直したら,もうばっちし(たぶん). ファイルやらネットワークやらの部分はWindowsと互換性を持たせて リトルエンディアンで扱っているので,どうも複雑になりがちです. 特定の構造体への操作をすべてリトルエンディアンにする構文とか, もしくは,プリプロセッサを拡張して構造体のメンバのエンディアンを 一括して変換できるようなマクロをかけるようにするとかできないものか. しかも,実行する環境のない状態でプログラムを書いてるので デバッグはひたすらエディタでソースをスクロールして眺めるという 原始的な方法.
VC++の最適化されたコードをたまに見てるけど,関数の内部の最適化は 結構やってくれるようです. 究極の最適化は,どんなプログラムを書いても,同じ動作をするプログラム ならば,まったく同じコードが出力されるべきだと思うのだけど, それは,いつになったら実現するんだろうか. たとえば,円周率を1000桁計算して表示するプログラムは, もし,円周率を計算するルーチンが1000バイト以上になったら, printf("3.1415926…");と書いただけのプログラムに置き換えられる ようでなくちゃダメだし,ソート関数もコンパイル中に扱うデータ量が 多いと判断されたら,たとえバブルソートの関数でもクイックソート等 に置き換えてくれるようでなくてはいけない. どんな滅茶苦茶なプログラムを書こうと,動くものであれば, 達人的なプログラマが書いたプログラムと同じコードが得られるというのは, 果たしてどうなんだろう…. 最適化がそこまで行くよりも,プログラムを「書く」という作業が いらなくなる方が早そう.
しばらく文字を打つのはノートばかりで,デスクトップは調べごと専用 だったので,慣れるのが大変です. VAIOのFnキーにいろいろ機能を割り当ててたので,無いとかなり不便. わざわざマウスに手を持っていってアイコンをダブルクリックする作業が 面倒くさくて仕方ないです. そもそも,コンピュータで扱うデータも処理もすべて1次元なんだから, マウスは簡単に使えるけど,効率よくコンピュータを使えるとは思えない ディバイスではないかな.
今日は回路理論.明日の技術発表の授業とプログラミングの面接が終わればあとは夏休みです.
わけあって,あるディレクトリ内にある大量のフォルダのうち,空のフォルダだけ 削除しようと思って,rmdir * で削除しようとしたら,ワイルドカードが使えない. 中身の入ったディレクトリは消えないから使えると思ったのに. かといって,数千個あるディレクトリを手動で確かめながら消すわけにはいかない. 仕方が無いので,dir /B の結果をリダイレクトしてテキストファイルに保存したあと, 正規表現で置換できるエディタでrmdirするバッチファイルになるように置換して, コマンドプロンプトから実行. 普通なら一瞬でできてほしい作業なのに,なんでこんなに面倒くさいんだ…. というか,コマンドプロンプトさえ使えない人は,こういうときどうやって対処するんだろう.
そろそろ夏休みになるし,ノートパソコンを修理に出そうと思ってデータのバックアップ. CD-Rにバックアップしようかと思ったけど,春に買った160GBのデスクトップのHDDが まだかなり空いてる(というか,半分だけしかパーティション切ってない)ので, そっちにデータをコピーしておく. 最近は,バックアップをするときにこのHDDに何も考えずに放り込んでるのですが, さすがに,何世代分もHDDのバックアップ用のフォルダが並んでるのを見ると怖くなる. このHDDが消えたりするとダメージ大きいなぁ.かといって,バックアップもできない. ちょっと整理しとかないとまずそう….
明後日はプログラミングの最終課題の面接. プログラミング言語の課題なんかに,そんなに力入れる必要ないかなと思って, 2時間もかけないで書いたプログラムを提出したので少し心配. 周りを見てると,結構みんな頑張ってたみたいだし.
今日の朝帰ってきて,昼まで寝る. 午後は部屋の掃除をしたりして過ごす.
ウイルスの入ったフォルダのパス名にUnicode制御文字を混ぜておくと, トレンドマイクロのオンラインスキャンでチェックしてもウイルスが 検出されなくなるのに気づいたのだけど……いいのかな?. というか,ファイルをチェックすらしない. まぁ,製品版を買えということなんでしょうが,製品版は大丈夫なんでしょうか? というか,他のウイルス対策ソフトの状況も気になるなぁ. 最後にAが付く方のAPIを使ってるのはもしかして全滅? 昨日,Safiiが某ソフトのファイル名を扱う部分を書いているときに, 横から冗談で,アラビア語やUnicode制御文字のファイル名でいっぱいの ディレクトリがあっても大丈夫か聞いた気がしますが, 現実は冗談じゃ済まないのかも.
今日は授業の後,Meshiの車で海へ. とりあえず,海を見てコンビニで買った夕食を車の中で食べて帰ってきました. そのあと,カラオケに連れてかれる.
今日は朝から回路理論の試験. 当日の朝に勉強すればいいかと思ってたのに, 試験の3分前に教室に着いたので勉強する暇も無い. 問題は簡単だったのですが,連立方程式を解いたら消えないと思ってた変数が 消えてしまったけど,まぁそれっぽい答えが出たから良いかと思ってたら, 最後に間違いを見つけて,書き直してる途中で時間が終わりました. 方程式と答えの間が空白ですが,数学の問題でもないし,大丈夫かな? 一応,答えの部分はあってるはずだし. でも,問題数が少ないので,あそこで点を落とすと痛いです.
数学と回路の実験の面接. 数学は眠いのを我慢して,とりあえず先生の話を聞く. そのあと,面接のための実験のレポート(?)を書く. 面接は,初めての先生だし前の人が長くて20分も待たされたので, ドキドキしながら臨んだら5分で終わり. フリップ・フロップの動作とか,カウンタの組み立て方とか, そういう話が分かってれば問題ないようです.
今日もMeshi邸でカレーを食べてくる. 某ソフトMac版をためしにコンパイルしてみる. とりあえず,今日いじった部分はバグは無いようです. まだ,エンディアンの問題が残ってる部分があるけど,そこも修正しないと.
ガムテープをはがした瞬間,「ガムテープの粘着材って青かったっけ?」と, 思ったけど,ガムテープは普通のガムテープらしい色. というか,青いのは今まさに剥がれようとしている部分だけ. 一瞬,何が起きていたのかわからなかったのですが,粘着材が青く光っていたんですね. そういえば,学生の論文集みたいな本で,ガムテープの発光原理を扱っている 論文が載っていたのを読んだことがあります. 今日は,ちょっといいものが見られました.
明日は回路理論の試験があります. まぁ,多分なんとかなるでしょう.
今日は技術発表とプログラミング言語. 技術発表はもうとっくに自分の発表はすんでしまったし,プログラミング言語は 最終課題の面接.わたしの面接は来週なので何もすることが無い. ただ……1時間半で書いたプログラムにコメントを付けただけのを最終課題として 提出してしまったのですが,大丈夫かなぁ. 課題の条件をギリギリ満たすように作ったのですが,私の担当はどうやら 厳しいという噂の某先生. なんか,みんな一生懸命やってるようですし,もうすこしやっても良かったかな.
Meshi邸でカレーを食べる. あと,某ソフトをMacOSでも動くようにいじる. とりあえずコンパイルは通るけど,エンディアンが違うので通信やデータの互換性が無い. ちゃんとネットワークバイトオーダーに変換してから送受信するべきですね. そのあと,回路理論の勉強をするはずが,遊んでて終わる. 予想はしてましたが.
今日はなんだか分からないけど,休みらしいです. 日にちから予想して海の日でしょうか? というわけで,午後まで寝る. 5時にMeshi邸に集まるらしいので,午後もそれまで昼寝. 起きたら5時過ぎだったので,あわててMeshi邸に. で,ソーメンを食べたり,TGCHがバイトしているスーパーに冷やかしついでに 買い物をして帰る.
Meshiのサーバに入れたSamba3のSWATでステータスが正常に表示されないので, 仕方なくソースを読む. 処理を追っていくと,接続を確認するためのdiagnose.cで使ってる global_myname()関数あたりがおかしいような気がして, ローカルホストの127.0.0.1を直接使うようにしたら,解決. まだ,いまいち動作が分かってないけど,ちゃんと動いてるようなので良しとしましょう….
今日はMeshiとTGCとSafiiで車に乗って出かける. 木崎湖に行って,カレー食べて帰ってきました(ぇ?). なぜか,Safiiがローソンでポッキーとプリッツを大量に買ってたりしましたが, 見なかったことにしましょう.
今日もMeshiのところに行って,サーバをいじる. というか,何でこんなに不安定なんでしょう. まぁ,HTTとかS-ATAとか枯れてない技術使ってるし, BSDは5.2.1だし,不安定でも文句は言えないのだけど. シャットダウン中に固まることがあるので,シャットダウンの前に sync;sync;sync;を実行する癖がついてしまった…. 普段もいきなりshutdown -p nowすると,なんか不安を感じてしまいます.
Meshi邸に行ってサーバをいじる. Samba3をportsから入れようとしたら,色々古いものがインストールされてて ダメだったので,一気にバージョンアップ. ついでにApacheとかも最新にしておく. ただ,Sambaの3系列は設定の仕方がまだいまいち分からない. とりあえず使えるようになったけど,SWATの調子が悪いので ブラウザからいじれないのが不便かなぁ.
今日はデジタル回路の実験でした. デジタルな回路は面倒くさい計算が少ないので好きです. フリップフロップでバイナリカウンタを作って, 2進4進変換してLEDでルーレットを作って遊べ(?)という実験. とりあえず,眠いのでさっさと終わらせる.
プログラミングの授業中にレポート提出用のPHPのページの穴探し. 先生も急いで作ったようなので,何かあるだろうと思ってたら, おかしな文字を渡すとサーバー内のファイルの中が読めそうなバグがありました. さすがに,書き込みやプログラムの実行はできないようですが.
で,なぜかカラオケにつれてかれる. TGCHが言うには,カラオケみたいな普通の遊びをしたいとのこと. 集まってプログラム書いてたり,授業中にペットボトルロケットを作ったりするのの 何処が普通じゃないのかと問い詰めたいとこですが,それはおいておいて.
思ったのだけど,ビブラートの入った音をFFTに通すと,本来の周波数帯ではなく, その前後に2つのピークが重なるようにして現れる. 自分の脳内FFTを信じて,原因を探ってみると(というか,原因が分かっているから そういう現象が起こることに気づいたのだけど,自分では原因を思い出していないので 思い出さないといけない<意味不明)物理の授業で出てきたうなり現象だと気づく. ある周波数の音の大きさが一定周期で変化するとき,人間の耳には 二つの周波数の音が重なってできたうなりと同等のものとして認識される. うなりの周期が長いと2つの周波数も近くなって,意識されるのは うなり成分だけど,無意識下では,2つの周波数が認識されているのかも.
今日は久しぶりに真面目にプログラミング. というか,プログラミング言語の授業の最終課題が明日までだったりするからです. 早めに目が覚めたので,授業前に講義室に行って書く. 書く内容は決めてあったので,ひたすらキーボードを叩く. で,1時間半で完成.書く前に誰かに予告したとおり,コメントを抜けばぴったり150行です. 本当はもう何行か短かったのですが,書いてからエラー処理を入れたりして増えました. というか,最終課題がこんな適当なプログラムでいいのかなぁ. みんなはもうちょっと長いのを書いてるようだけど…. まぁ,条件は全てギリギリ満たしているから減点はされないと思うけど.
自転車またパンク(?)しました. 誰もいないからと,スピードを落とさずに大学の通用門に滑り込んだら, タイヤがボロボロに削りとられました…. タイヤだけでなく,中のチューブまで穴が開いたようです. これは,タイヤのゴムの寿命かなぁ. というか,さすがにもう換えるしかないから,修理に出そう….
というわけで,Meshiのところに行く途中のダイエーの自転車屋に修理に出して, 夕方また取りに行く.
今日は久しぶりに頭の中は数学モード. 中3の時に考えていた問題の続きを考える.
aとbが互いに素であるとき,y≡{a*x mod b | x∈Z,0≦x<b}というyを定義すると, yは0〜bの全ての整数を埋め尽くす. つまり,{a*x mod b | x∈Z,0≦x<b}≡{y|y∈Z,0≦y<b}.
これは,グラフィックのワイプ処理をしようとして,平面を埋め尽くす数列を色々考えて いたときに思いついた仮定. 今だったらα合成してしまうけど,当時はCPUが遅かったしメモリも節約したかったので, テーブルを作らずにしかも,見た目はランダムに点で画面を埋め尽くす必要があった. こんな妙な仮定を用いたアルゴリズムは見たことが無いのだけど,どこかに穴があるのだろうか….
思いついたときは,これは絶対成り立つと思ったのですが,根拠があったのかなぁ. で,5年以上経って証明を試みるが,なんか,アレにそっくりです. 拡張ユークリッドの互除法を導くときに使った定理が色々使えそうです. つまり,ax - by = i のとき,iに対するxとyが一意に定まれば良いわけか. なんか,嫌な感じがしてきました. 符号と暗号の授業で出てきた定理にたしか,d=gcd(a,b)のとき,ax + by = d を 満たす,xとyが存在してどうこうというのがあったはず. ということは,両辺に整数を掛けても成り立つので, a,bが互いに素ならgcd(a,b)=1なので,iについても成り立つことがいえるはず. 確か,唯一の解が存在する条件の話も先生がしてたはずなので, たぶん,それも成り立ってる(覚えてないけど).
というわけで,あの仮定は正しかった(と思う). これで考えてたアルゴリズムが安心して使えます. それに,未解決の引き出しの中身が一つ減って気が少し晴れました.
久しぶりにPerl.5.8になってまた色々変わりましたね. というか,最近のPerlのモジュールを見た感じだと, 思いっきりオブジェクト指向を目指してますね. いつからPerlはnew演算子が使えるようになったんですか? そもそもnewで生成されるオブジェクトの定義の仕方もわかりません. 今度はちゃんと勉強しなおさないとだめかな. でも,Perlでオブジェクト指向はあんまりしたくないような….
最近気づいたんですが,FreeBSD5でmountやdfコマンドで/procが表示されませんね. 逆に/devが表示さるようになったのは,どういう意味なんでしょう.
暑いです.
今日は回路理論とプログラミング言語の演習. 回路理論はだいたい終わりっぽい. 試験は今月中にやってしまうようなので,少しは勉強しておこうか…. プログラミング言語は分からない人のための補講ということになってるので, とりあえずぼけーっと先生の話を聞いてすごす. というか,そろそろ最終をどうするか課題を決めないと.
車の中の方がエアコンが効いてて,涼しそうだったのでTGCと一緒にMeshiの車に乗って松本へ. 暇つぶし用に,生協で四季冬を買いました. すでに読んだ内容なのですが,なんとなく読みたかったので. それと,春〜秋だけ部屋の本棚に並んでるのももったいない気がしたので. 帰りは生協の仕事で来ていたSafiiも一緒でした.
暑いです.まるで夏みたいです(というか,夏). とりあえず,半分寝ながら数学をやって,昼食を食べた後に 総合研究棟で涼みながらプログラミング. そのあとの英語は発表を聞いてるだけで終わり.私は来週だ….
そのあと,情報工の講義室でプログラムを書く. でも,気づいたら寝てました. 今日は眠い日です.
今日は実験の面接.あまり気にしない先生だと言う噂を信じて, 殆ど白紙のレポートをもって面接に挑んで見ましたが,やっぱり白紙じゃダメですね. その場で説明しながら,あたふたと書いてました. それでも,合格っぽいので,まぁ,大丈夫と言えば大丈夫だったのですが…. こういうことを続けてると,最後にどういう成績がつくのかも気になります.
今日は七夕です.というわけで,Safiiのところでカレーを食べる. Safiiの部屋は暑すぎます. 外のほうがまだ涼しいので,第二回深夜徘徊ゲームをすることに. 前回とは違う方向に行ったら山を登る羽目になりました. で,12時ころ帰ってきて,そのあと解散. 自分の部屋も暑いので,TGCのところに行って寝ることに.
今日はちょっと疲れ気味.というか,部屋が暑くてあまり寝れなかったし. でも,風邪は治りました. Safiiも無事でした.でも,昨晩のことはあんまり覚えてない様子….
TGCのF1についての発表を聞いて,そのあとはプログラミング言語. 先生は,昨日のことは無かったかのように,普通に授業をやってました. 流石です.でも,疲れ気味なのは目に見えてました. 最終課題は13日までになったようです.何やろうかなぁ.
メールのゴミ箱を1ヶ月近く放置してたら,ゴミ箱の中の未読メールが 1229通とか信じられない量になってたので,まとめて削除. あとで中身を確かめてから消そうと思ってゴミ箱に溜めてたのですが, 流石に1200通以上あると,無理そうなので,そのまま消しました. いちおう,件名は見ましたが,見落としがあるかも……. 最近,自動でゴミ箱に行かないスパムが増えてきたのでフィルタをもうちょっと いじらないとダメだなぁ.
縦コンです.ソフトボールは遠くから少しだけ眺めてました. で,飲み会は2年生はタダで飲み食いできるらしいので,参加(笑). なんか,ひたすら食べて,ひたすら飲んでました. というか,体がアルコールはあんまり受け付けないです. 飲んでると,頭痛がだんだん酷くなってきます. でも,注がれるので,仕方なく飲む.
そのあと,研究室めぐりでしたが,どの先生も酔ってて凄いことになってました. 研究室によっては,入るなりいきなり色々飲まされるので危険です. とりあえず,M研では元サークルの先輩とも話ができたので,少し面白かったです. 問題は,以前このページを読んでたらしいですが……ちょっと怖いですね. そのあと,N先生の所に行ったら講義が始まるし. ありがたい(?)講義を聴いている最中に,Safiiがさもトイレにでも行くかのように 荷物も持たないでフラッと出て行ったきり帰ってきませんでした. 結構飲んでたみたいなので,心配してあとで探しましたが見つからず. 部屋にも帰ってないようでした. で,12時過ぎに電話が掛かってきて,寝ていたらしいというのを聞きました.
問題は,プログラミング言語の最終課題が9日までらしいということ. そんなものの存在自体,すっかりわすれてました. 何しようか.早く決めて書かないと. ちょっと期限が延びるようなことを,先生が言ってましたが….
今日は昼過ぎまで寝る. まだ頭が痛いですが,だいぶ良くなりました.
あまりに暑いので,夜になってTGCのところに. 途中でSafiiと合流. エアコンがある部屋は快適ですね. で,そのあとMRIも呼んでバッティングセンターに行くけど, あまりやる気が出ない. ストラックアウトをやったら,なんと0球……流石に0球というのは初めてです. ボールが私の意図と全然違うところに飛んでいきます. というか,指が動かないです…. 病み上がりだからということにしておきましょう. というか,まだ治ってないし.
1コマ目の回路理論は,RFという会社の人の講演を午後にやるらしいので,寝る. ついでに,2コマ目のプログラミング言語も出なくてよさそうなので,寝る. で,午後は何とか大学に行って,RF社で作ってるカメラとか内視鏡の説明を聞いて レポートを書く.
午後になって体調は良くなってきたけど,風邪なのかなぁ. ただ,体がだるくて,痛いだけなんですけど.
昨日から体調が悪いです. なんとか,数学を乗り切りましたが,午後の英語は受ける気力が無いので,帰って寝ました.
いつのまにか,WindowsXP SP2のRC2が出てますね. 気が向いたら試してみようか….