*予定(は未定)
-
一年ぶりに某ソフトの開発を再開する
-
メモ:GND W GND h-Sync R G B GND GND
-
ジャンクで買ってきた液晶で何かやる
-
USBカメラを使った工作
*コンピュータ通信
今日までに課題を提出するとボーナス点がもらえるので,やって出す.必用なグラフは昨日のうちにMeshiに印刷してもらっておいたので,すぐ終わる.
*サークル
情報以外の学科の学生のための,よく分からないC言語講座が続いてますが,今日は構造体とtypedefの説明らしい.ビット演算子を教えろとSafiiに言われたので私が説明.この前は,アドレスとポインタの話をさせられたような….
…って,ifもwhileもswitchも教えて無いのに,なんでポインタとかビット演算子を教えているんだろうか.ということで,基本的な構文と比較演算子について簡単に説明.プリプロセッサの話もさり気なく.……何か根本的に教え方が間違ってるんじゃないですか?
Meshiのところに行ってスパゲティを食べる.眠いのでそのまま寝る.
朝からコンパイラの授業.眠いです.
CGの課題の締め切りが明日だったので提出しておく.オブジェクトのデータを読み込んでOpenGLでグルグル回すだけという簡単なもの.コンピュータ通信の課題もあるし,ネットワークのCAIやレポートも書かないといけないし.あと,CGやデータベースのCAIもたくさん残っている.というか,単位数がかなり余ってしまってるので全部やる必要は無いのかもしれませんが….(むしろ,エジソンプロジェクトの単位を当てにすれば,もう大学行かなくてもOK?)
まぁ,ギリギリになればやる気が出るでしょう.
TGCHとSafiiと一緒に白馬まで行く.とりあえず,小さい雪だるまを作って車に乗せた後,夕食.焼肉,ラーメン,お好み焼き専門店と書いてあって,普通に定食とかカレーとかもある,何の専門店だか分からないところで食べる.チキンカツ定食とお好み焼き.かなりボリュームありました.
細々としたプログラムを書いたり.些細な調べごとをしたり.
HSP3の本が届きました.まだ見てませんが….
*授業::コンピュータネットワーク
最近は,Y!BBのADSLの立ち上げにも関わったという人が来て講義をしてもらってます.昨日に引き続き,光ファイバとかFTTHの話.ちょっとレーザとかの説明が怪しかったけど,情報工の学生向けの講義だとこんな感じなのかなぁ.ホーリーファイバとか,新しげな技術の説明は面白かった.DS型とSS型の違いについてのレポートが課題らしい.
そろそろ,CAIの課題を溜め込んでるので処理しないと.
*MacOS::mv
ずいぶん前から気になっていたけど,すっかり忘れていたことを.
別ボリュームにある,とあるディレクトリにファイルをmvするとmvがBus Error起こすのですが,なぜなんでしょう.そのディレクトリのアクセス管理が普通のUNIXパーミッションじゃないのが原因でしょうか?不便なので,どうにかならないのかなぁ.MacOSのmvのソースってどこかにあるのかな?
にしても,Bus Errorを起こすというのは,何か問題が無かろうか….
*授業::オペレーティングシステム
とりあえず,出ておく.出席取らない,試験無し,なので,課題さえやってればいいのですが,先生を見てて面白いので(ぇ?).
前の課題の解説と,次の課題の説明とか.
*クロスワードパズル
なんとなく(意味も無く)クロスワードパズルって海外ではどんな感じなんだろうかと思って調べてみる.意外と普通だと言うことが分かった.縦書きと横書きが混在する言語圏でなくても問題無いんですね.
花火が上がってます.花火大会らしいです.部屋が揺れる….
*C++とJava
SWIGというライブラリの情報を頂きました.スクリプト言語用だと思ってましたが,JavaからもC/C++のクラスが呼び出せるみたいです.説明を読む限り,クラスや構造体だらけのプログラムだとかなり大袈裟にラッパのためのクラスや関数をたくさん生成しそうですが….
まだ実際には使ってないのですが,もう少し調べて,楽が出来そうなら次回から使ってみることにします.
*Winnyとか
某所で,Winnyのノードリストについてとか,色々書いた文章を公開……したような気もします.
手元に,Winny互換のプロトコルを実装した怪しいソフトがあるのだけど,どうするべきでしょうか.キャッシュやノードリストの形式まで全く同じ….まさか,公開しても逮捕されるようなことは無いだろうけど,色々面倒なことはありそうだし….
GUIはJavaで書いて,本体はライブラリとして作ってあるので,コンパイルしなおせば,Windows以外でもLinuxやMacOSでも動きます(FreeBSDとMacOSでも動くことは確認してます).
まだ,細かいところがいい加減なので,たまにしか上手くダウンロードできていないような気がしますが….アップロードは比較的安定してるから,プロトコルの解釈は合っている筈….あと,検索も怪しい.
まぁ,今更危険を冒してWinnyでどうこうするのもアレなので,お蔵入りにしようかと思ってます.せっかく,授業中にがんばったのに(笑).
…というような夢を最近,授業中によく見るのですが,夢の話です.ほんとうですよ?
今日は休みです.推薦入試だっけ?AVRの課題で何をするか,メールを出しておく.やってしまった…という感じ(まだやってないのに).
*まるまるでふわふわでほくほくで
KWTのところでたこ焼き.
明日から2連休らしいです.TGCHは今日来てなかったので5連休か.
*rootでswing
MacOS XサーバにsshでログインしてJavaのプログラムを書いていたのですが,swingを使っていると流石に実行できませんよね(当たり前).で,なんとなく,rootになって実行してみましたが,実行できる.というか,何処に表示されているの?っと思ったら,予想通りサーバに繋がったディスプレイでした.大学でMeshiに聞いたら聞いてみたら,いきなり変なウインドウが出たり消えたりしたと言っていました.ディスプレイに変なウインドウが出たらやっぱり驚いたでしょうか.
*ロボ研
機械システムのラウンジが使われていたので,ホワイトボードのある某サークルの部室へ移動.ただ,ネットワークに繋がらないのが難点.無線LANを入れてもらえればいいなぁ.
というわけで,来年度の戦略は大体決定.ロボットの細かい機構の話し合いをしてますが…大丈夫かな.
最近,自転車のスタンドが壊れていたので直す.
サークル棟に行って,こっそり色々.上手く行くかなぁ….
作業してて,ちょっと失敗したときに,「このソフトってCtrl+Zに対応してないのかな?」と一瞬考えてしまうのは重症でしょうか.頭の中では,現実世界もアプリケーションソフトの一種なようです.
前にも書いたかな.
*Java at MacOS X
MacOSのgccってsharedオプションが使えない気がするのですが,どういうことでしょう?っと思ったら,何やら変なオプションがアルっぽい.
というわけで,シェアードライブラリの作り方がわかったけど,どうすればJavaから呼び出せるのか分からない….java.library.pathにカレントディレクトリがあれば,普通に読めると思ったのだけど.というわけで,調べてみると,どうもlibNAME.jnilib形式のファイル名にするらしい.専用の拡張子なのか.dylibでやってました.
JavaでCのソースを動的に生成して,Cコンパイラに放り込んでJNIで実行ということも面白いかも知れない.その場合,デフォルトでコンパイラが入ってないWindowsが厄介ですが.MacOSもgccはデフォルトでは入ってないんだっけか.
デフォルトといえば,最初からjava.library.pathの先頭にカレントディレクトリが入ってますが,これはセキュリティ上問題になったりしないのかな.
JNIでもう少し書いてみる.データの受け渡しとか色々.マルチスレッドとかも大丈夫なのかな?
*学部長のところへ
行ったら居なかったので,しばらく図書館で時間を潰す.夏休みから工事してましたが,かなり変わってました.やたら広い部屋が出来て机が並んでいます.インターネットも出来るみたい.
色々と報告ついでに話をする.さらに,サークル棟にネットワークを引いてくれと直訴.あとは,学務の担当者とネットワーク管理者をやっている某先生.上手く行けば,無線LANが導入できるかもしれない.建物自体にケーブルが行っていないので,すぐにというのは無理そうだけど.もうちょっと早く言ってくれれば,図書館の改装のどさくさに紛れて工事できたのに,と言われてしまった.そういうものですか.
あと,3月から信大のSINETへの接続が1Gbpsになる予定があるらしい.
*JNI
JNIを使って,JavaからCの関数を呼んで見る実験.GUIはJavaで書いて,重い処理はC/C++で書くのも良いかも知れない.構造体やクラスがそのまま使えれば便利なのだけど,そういうものは無いのかな?
*授業::OS
オペレーティングシステムの授業は自習?
とりあえず,色々.
*授業::コンピュータ通信
また計算すると,存在しないという結果になる問題.まぁ,2度目なので気にせず書きましたが.
*サークル
なぜか,私がC言語を教えてるのですが,どういうことでしょうか.とりあえず,アドレスと配列とポインタと文字列の話を一気にいく.ついでに,入出力の話も少し.
帰ると8時.夕食を食べて寝る.
*授業::コンパイラ
構文解析の話.なんか,面倒くさそうな話をしているけど,演習の時間にでもちょっと実際にプログラムでも書いてみれば一目瞭然なのに….記号列の操作方法を延々と言われても眠くなってしまうのですが….
ついでなので,Winnyの解析結果をどこかで公開した…かもしれません.ずいぶん前に,解析した結果なので細かい部分は怪しいですが.
*授業::CG
OpenGLの使い方とか.
午後はマイクロコンピュータ.最後の課題は何を作ろうかな.作る前に発表しなきゃならないので,あまり無茶なことは出来なさそうだけど.圧電ブザーの振動でAVRを動かして,ICの裏側に貼り付けたセンサでライントレースさせるというネタを考えてはいるのだけど,どうするか.セラロックとセンサは裏側に納まりそうだし,電池はどこかにボタン電池を貼り付けるとして.出来れば,絶対に誰とも被らないものが良いと思うのだけど….
圧電ブザーって低い電圧でも思ったように振動するだろうか….見かけ上の問題でトランス類を積むのは無理そうだし.
1000円で,回転寿司が食べ放題らしいので行ってくる.帰りに,Meshiの運転する車が事故に遭う.幸い,誰も怪我はしませんでしたが,ドアがかなり凹んでました.一応,警察署に行ったり,保険屋さんに電話したり面倒くさそうです.
*エジソンプロジェクト
学科の情報創造プロジェクト(だったっけ?通称エジソンプロジェクト)で発表をしてくる.申請して,何か研究をすると最大10単位が貰えるという制度ですが,今回は急遽,NHKのロボコンについて発表してきました.発表することをあまり考えてなかったので,データが殆どない発表だったのが心残り.簡単な図を何枚かでっち上げたけど,それが無ければ本当に写真のスライドショーになってしまうところでした.
もう一人,同じクラスの某氏が画像処理と顔画像認識についての発表をしていましたが,こちらは面白かったです.遺伝的アルゴリズムを使って処理していました.
明日はエジソンプロジェクトの発表なので,そのための資料作り.ロボコンなんか,終わって久しいので,細かいことは何も覚えていません.資料を探すのも面倒くさいので,その場でOpenOfficeのDrawで図を描く.OpenOfficeはそのままPDF出力できるのが嬉しいですね.
今日は朝から小学校に行ってロボコンに使ったロボットを動かして来ました.疲れました.やっと,本当にロボコンも終わりです.
夕方からは,来年のロボコンの戦略を考える.また,手動+自動*3構成になりそう.というわけで,始まりました.結局,10時過ぎまで話し合い.
朝起きたけど,寒いので大学に行くかどうか迷う.迷っているうちにOSの授業が始まる時間になったので,行くのは止めて少しプログラムを書く.で,部屋が寒いので,やっぱり途中から授業に出る.
*授業::オペレーティングシステム
とりあえず,授業中はプログラムを書く時間ということに.ローカルのPCでWinnyを立ち上げて,自分で書いたプログラムを接続してみる.……何も問題なく接続できました.殆どのコマンドは受けるだけで,そのまま捨てますが….
「Winnyの技術」に載ってるプロトコルの詳細はなかなか役立ちました.今まで何だか分からなかったバイト列の意味がほぼ分かりました.
通信の中身を見てて気付いたのは,上流側に検索条件付き拡散クエリが殆ど送られないことかな.偽Winny側で接続を受け付けて本物のWinnyで検索しても,クエリは届かない.これはどういう意味だろう.もちろん,検索が出来ないわけではないけど.あとは,トリップを空のまま検索したときに,先頭にヌル文字を入れただけなので,直前に入力されてたトリップが先頭の文字以外分かることくらいかな.
……という夢を見ていたような気がします.
*授業::コンピュータ通信
もうちょっと,偽Winnyを弄る.検索キーワードや流れているキーの情報の一部を表示するように.キー情報のファイル名は2重に暗号化されているので,どうにかしないと.どうも実際のファイル名より2バイトデータが長くなってるので,先頭か最後にキーが入っているようです.多分アルゴリズムはRC4ですが,先頭と最後の2バイトを使って復号化できないか試しても駄目でした.1バイトはヌル文字ということもあり得るか.
Winnyを逆アセンブルしたソースって何処にやったかな.見つからない.通信系のかなりの部分をCで書き直したものがあったはずなのだけど.もう同じ作業はやりたくない.
…と思ったのですが,適当にUpフォルダに色々なファイル名のファイルを置いて,検索時のデータを眺めていたら,先頭の2バイトと元ファイル名の文字列長に何らかの相関関係があるような…….これはもしやと思ったら,ビンゴ.キャッシュの暗号化の時と同じことをやってますね.
というわけで,検索リンク上を流れているデータは殆ど処理できるようになりました.一応,検索も掛けられるけど,まだちょっと怪しい.前作ったノードリストの復号化プログラムもあったので,適当にノードリストを突っ込んで暫く実際のWinnyネットワークに繋いでみる.流れているデータが凄いですね.色々な意味で.
……というのは授業中に見た夢だった気がしないでもないです.
*小学校
夕方は,小学校にロボットを搬入して会場を作って動作確認.というか,フィールドごと運ぶの大変でした.明日は本番.今度こそ,これが終わったらロボットを解体しよう.
ロボ研のK君がピアノを弾けるのは聞いていましたが,上手い….
*構造体
ネットワーク経由で構造体のやり取りをしていると,htonlやntohlの羅列が見苦しくなる.文字コードやバイトオーダを変換したり,実際の文字列のサイズに合わせて構造体の余分な部分を切り詰めたりその逆の作業が面倒くさい.構造体中の同じ型のメンバ全てに特定の処理をするマクロが書けたりすると嬉しいかもしれない.あと,ある変換の逆変換をする関数も自動で作ってくれたりしてくれれば尚うれしい.
扱うデータ構造をプログラム本体と分離できる言語ってあるかなぁ.オブジェクト指向なら隠蔽できるとはいっても,オブジェクトの中を書くのも人間なわけで….
時間が全然足りない.もっと本を読みたいし,もっと寝たいし,もっと勉強しなきゃだし,もっとプログラム書きたいし,もっと何もしないでいたい.
CGとネットワークの課題を1ヶ月分溜めてますが,いつやろう.OSの課題もあるし,データベースも溜めてたような.あれ?マイコンのプレゼンの内容っていつまでだっけか.
*Winnyプロトコル
コマンド一覧が分かったので,とりあえずプログラムを書いてみる.大学内でWinnyのネットワークに繋ぐと誤解を招きそうなので,書いただけ.
*ラジコンヘリ
今日は,某研究室の自動制御ヘリの手伝い.とりあえず,DA/ADコンバータに繋ぐためのプロポの改造.あとでリレーか何かで切り替えられるようにしないと.プロポ内に回路が全部入れば良いな.
とりあえず,シミュレータで練習.全然,思うように飛ばせない.
*トラックバック
日記にトラックバックなんかいらないと思っていたのですが,流れに負けてトラックバック&コメントプラグインを書いてみる.
とりあえず,暫く某所で走らせて,良い感じならこの日記にも入れよう.
*サークル
サークル.SafiiのC言語教室?「Winnyの技術」のPDF版を見てみました.著作権者の金子氏が出版社の承諾の元に配布しているみたいなので違法性は無いんですよね?ただ,配布方法がWinnyに限るというのがなんとも.もう今後の開発が期待できないソフトに依存してしまうのはどうかと思うのですが….やっぱり,出版社側の都合でしょうか.
それにしても,2年くらい前にひたすら解析した内容がほぼ載ってます.にしても,付録のプロトコル詳細を見ながら,以前にパケットをキャプチャして解析したファイルを読んでみましたが,問題なく意味が分かりました.
なんか,読んだらもう一度解析しなおして,Winnyと通信するためのライブラリ類を作りたくなったのですが….というか,中を読んでみると「P2Pでファイルを共有するシステムを作ってください」と言われている気がしてならないのですが….
*DoJa::バイナリエディタ
今日はバイナリエディタを書く.授業中に書いて,基本的な機能は実装.
ユーザが画像ファイルを選択した時に返ってくる識別子がintなんですか.実際にはファイル名で管理されているはずなのに.一時的なハンドルのようなものというわけではなくて,その数値は次回起動時にもストリームを開くのに使えます.ファイル名ベースで管理してない端末もあるのかな….あとせめて,同一ホストのアプリ間でスクラッチパッドの共有ができれば….
それにしても,端末のスペックがあがって,扱うデータ量はどんどん増えているのに,通信料が変わらないのはどういうことですか?
気付いたけど,最近プログラムはメモ帳で書いてるなぁ.テキストエディタという意味でのメモ帳ではなくて,Windowsに標準装備の「メモ帳」です.Windows環境でも入っているし(消していなければ).メモ帳がUNIXのviみたいな地位を築けなかったのは,本当に機能不足だからでしょうか?
Javaのアプリケーションの開発って色々と楽で良いですね.
FDの作者の出射さんは,1年と1日前に逝去されていたそうです.今日まで,お亡くなりになっていたという事実を全く知りませんでした.今もFreeBSDにはfdクローンを入れて使っています.
授業中は,またダウンローダをいじる.テキストや画像をスクロールできるようにとか.履歴から選べるようにとか.あと,GIFのパレットを書き換えて,保存時のアイコンの色を変えられるように.キーのオートリピートってどうやって設定するんだっけ…?
もう少し機能が固まったら公開します.
iアプリからのHTTPって20K越えると切られるのか.大きなファイルは分割してダウンロードしないと不味いな….そのためには,ファイルをキャッシュしたりとか,サーバ側の処理が面倒くさいので見送り.サイズ制限で切れたときに何も例外が飛んでこないみたいで気付かなかった.自分でチェックしろということか.
*Google
少しずつ,Googleのトップがごちゃごちゃしてきそうな予感.検索だけできるシンプルなサイトの方が嬉しいのだけど….
*携帯電話とか
瓶詰堂の方で,昨日作ったダウンローダを公開.ついでに,関数電卓もちょっといじっておく.あとカメラ付き携帯でアクセスを考えてQRコードを付けておく.
色々なQRコードを携帯で読み取ってて気付いたのですが,どうも,携帯の画面に真っ直ぐQRコードが写っている時よりも,少しだけ左に回転した状態で読み取った方が成功しやすいです.私の携帯だけでしょうか….
デフォルトのブラウザが使いにくいことこの上ないので,自分で作りたいところですが,HTMLの解析はサーバ側でやらせた方が良いかな….それとも,保存したHTMLを読むことも考えて自前でやるか….どっちがいいだろう.そういえば,自分で携帯を持つようになるずっと昔,Webが見れるようになった当初は,サーバ側でHTMLの解釈をやってるものだと思ってました.
にしても,瓶詰堂が置いてあるサーバが不安定なのはどうにかならないですか?
*DoJa
久しぶりにJava.簡易ダウンローダを作ってみる.URLを入力するとファイルを取ってきて,ダウンロードしたファイルをダミーの画像に埋め込んでマイピクチャに保存できます.画像ならそのまま画像としても保存できるようにした方がいいな.iアプリの制限で通信できるホストはダウンロード元だけなので,CGIでプロキシを書いてそこを経由してアクセスするように.むしろ,iアプリ自体をプロキシ経由でインストールできるサービスがあれば以下略).
それにしても,byteがsignedなのは扱いにくいな.初期化時に配列のデータを渡すときに,0x80以上の値があると面倒くさい.
あとは,テキストエディタやバイナリエディタくらいは作りたいところ.簡易表計算ソフトやグラフをプロットするツールも欲しいなぁ.iモードのブラウザは使いにくいので,さくさく動作するテキストブラウザも作りたいなぁ.と,半年くらい考えてるのだけど,なかなか手が出せない.
reateというiアプリがあるのか.使ってみたら,かなり快適にテキストが表示できます.ただ,データはコメント領域に入れてるのか.私はテキスト以外のファイルも扱いたいので,コメント領域にはファイル名を入れて拡張ブロックにデータを入れてるのだけど….
試しに,コメントブロックにデータを保存してみて,reateで開いたら良い感じに表示できました.携帯だとサイトのHTMLのソースが見れなくて困る事が多いので,ダウンローダでダウンロードしてテキストビューアで表示できるのは嬉しい.
*あとは…
DoJaからswfファイルをマイピクチャに保存する方法は無いのかなぁ.色々試してみたけど,駄目っぽい.そもそも,MediaImageを要求してくるので,JPEGかGIFしか保存できない….そもそも,内部ではMediaImageをどう処理してるのか.まさか,MediaImageからImageを作ってImageEncoderでEncodedImageを作ってファイルイメージのInputStreamを保存してるなんて事は無いだろうし.やっぱり,MesiaImageがもう少し色々できるインターフェイスならなぁ.
あとは,FlashプレーヤをJavaで書いてしまうか(大変そうだけど…).
OSの授業は課題の解説らしいので行くのを止める.午後から授業.
Meshiのところでお好み焼き.
今日は休み.コンパイラの字句解析の課題を提出しておく.
夕方,検索してたらいきなりGoogleが「502 Server Error」になった.
そういえば,コンピュータ通信の課題があったような….見た感じ簡単そうだし,明日大学に行ってからやろう.
*コンピュータ通信
毎回最後に小テストをやってるのですが,解が無い問題ってのは止めて欲しいなぁ.厳密に問題の文章だけで考えれば解が無いという結論が出るのだけど,計算が間違っているかもとか,何か暗黙の了解が存在してるんじゃないかと疑って,なかなか「解は存在しない」なんて解答は書けないと思います.私は,あの先生ならやりかねないと判断して,解無しと書きましたが….というか,そもそも計算が出来なくて回答を書かなかったら正解になるんだろうか?
*コンパイラ
構文解析の話とか.めんどい.
*デザインプロジェクトC
今日はCPUのアーキテクチャについて.N先生がさり気なくZ80の命令を16進数で例に出してたのは面白かった.ハンドアセンブルできるのか,なかなか凄いなぁ.
今日はサークルで鍋.部室で.
*MFi
MFiのフォーマットって公開されて無いんだろうか.DoCoMoのサイトで探してみたけど資料が見つからない.適当に解析してみようか…と思ったらフリーのソフトってかなり少ないなぁ.特にWAVを埋め込めるのって無いんですか?
…授業中に少し見てたら,どうもPCMデータは機種依存データとして埋め込まれているみたい.たぶん,メーカごとに違うんでしょう.携帯電話はこういうのが多いから困ります.止めて欲しいです.NECの端末の場合はYAMAHAが公開しているツールが使えるようです.とりあえずSH505iS専用のコンバータでも作ってみるかな….って解析しようと思ったら自分で録音したデータがコピー禁止になってて,SDに入れられない….既にあるデータをバイナリエディタで見た感じだと無圧縮データっぽいけど,いまいち分からない.
夕食はMeshiのところで.みかんを大量に食べてくる.
そろそろ冬の星空ですね.