一度起きて,家賃を払いに行った後,夕方まで寝る.
*ロボ研::PCB2SVG.pl
ラスタ画像をアルバム形式で管理できるWebアプリはありますが,CADとかのベクタ画像をSVGで表示してくれるのは見当たらないなぁ.
回路図やPCBEとかEagleのパターンを管理するのに欲しいかも.あまり使う人はいないかもしれませんが.
とりあえず,PCBEのpcbファイルをSVGに変換するPerlスクリプトを書いてみる.PCBEのグループごとにまとめるよりもレイヤごとにまとめたほうが表示はきれいそうだなぁ.というか,SVGをFirefoxで表示してみると重くてあまり使う気がしないのだけど….アンチエイリアスとかOFFにできるの?
DXFをSVGにする製品はもうあるなぁ….
ロボ研内で殺人事件がおきたらどうなるかという話題.マイコンとか駆使するんだろうかとか.何でもありだな.
*ロボ研
なんか,最近はダラダラと色々なツール類を書いています.
シミュレータをもう少しいじる.PWMのデューティと加速度の関係を少しそれらしくする.真面目にロボットの重さとモータの出力特性から計算した方がいいだろうか,とも思うけど最終的には実機で調整するのだからあまり意味はなさそう.あと,ラインを読むための光センサーのシミュレートも入れる.ラインの上にあるであろうセンサーのビットをセットするだけだけど.
シミュレータ上で色々動かしていると,どうもロボットがあらぬ方向に走りだすことがある.原因を調べたら,このまえ作ったatan関数がバグっていた.
こういう関数は自分で書くべきでは無いとは思うのだけど,コードサイズと実行速度と精度の関係で使えそうなライブラリが見つからないのが問題.必用とされる精度と実行速度に合わせてアルゴリズムまで最適化してくれるコンパイラでもあればいいのだけど…今のところは難しいだろうなぁ.もしくは,パラメータを指定するとライブラリを生成してくれるツールが欲しい.こっちはどこかにありそうだけど….
あと,補正用に使っているセンサーの位置があまりよろしくないかなぁ.
*研究室
目が覚めたらゼミが終わる時間でした.
今日は研究室で花見.なんか,今年は何度も花見をしている気がしないでも無いけど気にしません.すでに桜が散っている気がしないでも無いけど,これも気にしません.そもそも,花見を室内でやっているような気がしますが,それも(以下略).
*ロボ研
また2年生が何人か増えたようです.
*ロボ研
部屋の中のAirMacの無線LANではなくて,情報工の無線LANにつながります.私がパソコンを使っている席から,総合研究棟と機械システムの建物の隙間からかろうじて情報工の建物が見えるので,なんとか届いているようです.
ちょっとシミュレータを書いてみる.元のH8用のソースを殆ど変更することなくPC上で実行してロボットが通る経路が分かります.例によって計算は適当なので,実機とはかなり違うかも.
久しぶりにリモートデスクトップのソースを弄る.リモートからコマンドを実行できる機能を追加.Windows2000でログインしているユーザとは別の権限で動くソフトからデスクトップにアクセスすると真っ暗なんですね.マウスの座標は取得できるっぽい?
*研究室
今日はゼミ.ついでに研究のテーマ決め.なんか,組み込み系を薦められたのだけど…本当にやるんですか?明らかにこの研究室で今までやってた分野と違うんですが.
*カメラ
ロボコン用にCCDを使おうと思って,USBカメラの実験.とりあえず,買ってあったUSBカメラを繋ぐ…ってドライバもインストールされて無いし….
まずは,Video for Windowsの勉強をかねて簡単なキャプチャプログラムを作ってみる.capCreateCaptureWindowでキャプチャウインドウを作らなきゃいけないのね.とりあえず非表示にした状態で,capGrabFrameNoStopでフレームを取得する.
あとは,試しにその辺にあったテニスボールを認識するプログラムを書く.RGB空間で計算してしまうと,明るさが変わったりしたときにあまり上手く行かないような気がしたので,六角錐カラーモデルに変換してから処理.この辺は,KViewerのソースからコピペ.なんとか,ボールの位置と大きさを得られるようです.ただ,カメラの明るさの自動補正が急に入ってたまに変な挙動をしている.カメラの設定でどうにかなるかなぁ.まぁ980円のカメラなので画質もかなり悪いのですが….別のカメラでも試して見たいな.
…ここまで作業を始めて約2時間.「今日中にやる」と言ってしまったので,なんとか日付が変わる5分前までにそれっぽく.
解析だけのために買ったカメラが,まだいくつもあるので,暫く色々やってみるのもいいかも.
*Winny
Winnyに任意のコードが実行可能な脆弱性が見つかったみたいですね.開発者不在でユーザ数が比較的多いであろうソフトでこういうことがおきるといったいどうなるんでしょうか?
変なデータを送っていると強制終了するのは,私も解析中に経験していたので,たぶんこういうことになるだろうとは思ってたんですが….
*有用な情報のあるサイト
殆どの会社のウェブサイトは,その会社や製品に用が無い人が見ても面白く無いものですが,有用なコンテンツがたくさんある会社のサイトを見つけると,なんだか嬉しくなります.
キリヤ化学については以前書きましたが,今日知ったのは菊水電子工業.ロボ研の後輩が見ていたので知りました.
電源系の製品を作っている会社のようですが,ナレッジ・プラザとコーヒーブレイクはなかなか読んでいて面白いです.
binzume.net宛のメールを受け取る設定にするのを忘れていたのでPostfixの設定.
4年生有志による花見.室内だけど.
*研究室::ゼミ
「Building Secure Software」あたり.内容を要約してもらうと,楽に中身が理解できていいなぁ.自分の番が大変そうだけど.
研究テーマについて,少し相談にいく.
*研究室::ゼミ
火曜日は,英語の論文を読んできて内容を発表するという感じ.
今週中に,だいたいの研究の方向を決めないといけない.なんか,特に興味もない分野が面白そうに見えて仕方が無い…(それは果たして興味が無いのか?).
*ロボ研
今日は情報工の人が何人か見学に来ました.
花見.というか,焼肉.
午後まで寝る.
明日の花見のために,食材を買ってくる.
*ロボ研
作ったAVR用のライタでは,USBシリアル変換ケーブルを使うと時間がかかりすぎるので,新しいライタを作る.とりあえず,ChaNさんのとこのライタで試す.
試しに組み立ててみたけど,ATmega88に上手く書き込めない.2313には問題なく書き込めるのに.色々試すと,なぜかAVRが無反応になってしまった.データを送ってるだけで壊れるのか….128バイトくらい書き込めることもあるので信号のタイミングが少しまずいのかもしれない.ブレッドボード上で試したので,配線が長すぎるのかな….
4時過ぎまで寝る.
PCBEで妙なパターンを作ってみたり.
10時からだと思って研究室に行ったら,15時からだった.ってか,先生も時間を把握してないってのは,どういう研究室なんだろうか.まぁ,そのいい加減さがいいのだけど.
卒研は何をしようか.何をするかで担当する先生も決まるので,早いうちに考えないと….今日のK谷先生の話は面白かったけど,かなり政治的な分野が関わる研究なので,最後まで続けられるかどうかが心配….何か特定のプログラムをガリガリかいて,色々実証してみる方針の方が卒論は書きやすいだろうなぁ.そうなるとK尻先生になるのだけど….
*研究室
今日は特に何も無いので,午後まで寝る.夕方研究室に行ったらB4の人は誰もいないし….
誰もいないので,とりあえず自分に割り当てられたPCを少しいじる.なんだか,起動時にBIOSがCPUファンがおかしいと警告するのが気になって中を覗いたらファンのコネクタがマザーボード上に刺さってなくて別の箇所から電源を取っていたのが原因というところまでは確認済み.どうもファンを別のものに変えたらマザーボードのコネクタと合わなかったようです.とりあえず,FANのコネクタをカッターで加工してマザーボードに無理やりさす.BIOSがおとなしくなりました.
K谷先生にばったり会ったので少し話をしていく.
*ロボ研
AVR用のメインの基板を作る.印刷,感光,現像,エッチング,穴あけ,半田付け.
あと,AVRの基本的な使い方を機械の人たちに教え始める.まぁ,やっておいて損は無いでしょう.とりあえず,C言語でプログラムを書いて,書き込むところまでの流れを一通り.
明日からはソフトの方に入る予定.
*研究室
午前中は,研究室でのことを色々話をしたり.
*ロボ研
*研究室
今日から研究室です.
とりあえず,掃除と模様替えをして,各自に割り当てられたパソコンの環境を整えたり.久しぶりに,Windowsのインストールをしました.
*ロボ研
なんだか,色々とやってる割には自分の作業が全然進んでません….少しメインの基板のパターンを書き始める.
今日も帰るのが面倒くさいので,大学に泊まる.
*秋葉原
6時半出発.睡眠不足です.
久しぶりに秋葉原です.特に買うものは無かったので,適当にパーツを買う.D-sub25ピンケーブルとか,マトリクスLEDとか,12MHzの水晶発信機とか,100Vコンセント用プラグとか.…何をしたいのか分かりませんね.あと,トランジスタ技術の4月号がなくなる前に買っておく.トラ技の付録基板用に買ったパーツが多いです.ただ,電源が3.3Vなのを忘れていて3端子レギュレータを買ってませんでした….一応,手元に可変3端子レギュレータがあるのでどうにかなりますが.
帰りの車の中で,電波時計の電波がジャックされた場合に起きることとかを話したり.電波時計ってパリティしかチェックしてないので,少し怖いと思います.たとえば,東京都内の電波時計が一斉に狂った場合,大きな混乱は無いと思いますが,遅刻したりするひとはかなり出るんじゃないだろうか.
*ロボ研
帰るのが面倒くさいので,大学に泊まる.
*ロボ研
NHKから正式な書類が届きました.
明日は秋葉原です.
*ロボ研
去年のモータドライバのうち怪しい物を作り直しておく.ショートしたときにパターンが燃えてしまったものや,ユニバーサル基板を使っていたものもあったので,プリント基板も作る.
そのまま大学に泊まる.
*ロボ研
自動マシン優先で作業を再開.プログラムは,ハードがしっかり出来てからまた書き始める予定です.
*ロボ研
どういうわけか,ビデオ審査受かりました.これからがんばらないと….今後の予定を立てる.
出場決定祝いにスパゲティを食べに行く.
*ロボ研
そろそろビデオ審査の結果が出るっぽいので行ってみる.今日はまだわかりませんでした.とりあえず,明日あたりのは結果が分かるかな.
*研究室
いつから始まるのだろうと思っていたら,4月10日に集合という連絡があった.他の研究室に比べると少し遅いですね.
*Winnyとか
セキュリティー関係の情報を見ていると,最近Winnyでの情報の流出が本当に多いですね.
普通ならば,何らかの対策が講じられる気がしますが,開発者が対策を施したバージョンを作れないというのが痛いですね.これだけ被害が出てしまうと,ファイル共有ソフトが表立って普及するのは難しそうですね.海外ではBitTorrentがコンテンツを配布する手段としての地位を確立しつつありますが….
インターネット自体も初期のころはアンダーグラウンドな匂いが多少ありましたが,今のファイル共有はもっと状況が悪いですね.インターネットの場合は「ネットサーフィンが趣味だ」とか言周りに言っても問題にならなかったし,むしろ,それによって普及したところもあるでしょう.しかし,ファイル共有ソフトの場合は間違っても「Winnyでファイルを探すのが趣味」とは言えないでしょう.流通しているファイルの殆どが権利者に許可を取ってないであろう違法なファイルの状態では.
そして,「こっそり使う」という状況が問題を大きくしている可能性が高のではないでしょうか.現在,Winnyを使うセキュリティ上のリスクを考えるなら,Winny専用の環境を用意するくらいした方が良いでしょう.極端な話,職場に「Winny専用PC」が堂々と設置するくらいのことをすれば,情報の流出をかなり止められるんじゃないか.そのPCさえ重要なデータから隔離すれば済むのだし.
まぁ,Winny自体を悪として使わせないようにするのも手ですが,何をしたって使おうとする人はいるわけで.そういうモラルに欠けた人間が,持ち出してはいけないファイルを持ち出したりする人間だったりするので,解決にはならないでしょう.
せめて,仕事で使えるくらいの共有ソフトがあれば,堂々と使う口実ができて,そのためのセキュリティにもお金を使えるようになると思うのですが.
そういえば,この「仕事に使えるくらいのソフト」という条件は,一年半前に,朝日新聞の取材で聞かれたときにも言った条件だなぁ.記事に書かれたかどうかは知らないけど.
*バッチファイル
久しぶりに,ifとかforが出てくるバッチファイルらしいバッチファイルを書く.すっかり忘れているのでコマンドのヘルプを見ながら….ところで,%1とかのコマンドライン引数で渡されたパスからファイル名だけ抜き出したりできたような気がしたのですが,CALLのヘルプに書いてあったんですね.変数なので,SETとかに書かれてるものだと思ってました.cmd.exeは少しは使えるようになってますね.UNIX上で動くcmd.exe互換のシェルってあったりするんでしょうか?
*そうそう
いつも思うのだけど,Windowsのコンソールって変更できないんだろうか?もちろん,cmd.exe以外のコマンドインタプリタで独自のウインドウを作るものがあるけど,それはそういうGUIソフトであって,コンソールアプリケーションではない.そもそも,cmd.exe自体がコンソールアプリケーションであって,コンソールを表示しているのはWindows本体なような….つまり,AllocConsoleあたりのAPIで生成されるウインドウを別のものにしたいということです.無理やりウインドウハンドルを取得して,サブクラス化すれば何かできそうですが,肝心のテキスト出力のルーチンは変更できないしなぁ.
…あれか,AllocConsoleを乗っ取ってしまうソフトを作れということか.WindowsのAPIをフックして,Windowsに処理が渡る前に自前のプログラムで好き勝手にしてしまうというのは,Windowsのソフトを解析したことがある方なら方法は思いつくと思いますが….一番単純で面倒くさいのは,Kernel32.DLLのラッパDLLを作って置き換えてしまうという方法.普段はこれを使ってますが,全てのソフトを対象にするのは現実的でない.あとは,SetWindowsHookExで全プロセスにDLLをロードさせて,インポートテーブルを書き換えてしまうか….ただ,解析を避けるために,実行時にインポートテーブルを破壊するソフトやGetProcAddressとかでアドレスを得ているソフトは対象外になってしまいます.
そもそも,コンソールアプリは自分でAllocConsoleを呼んで無い….まぁ,コンソールアプリをダブルクリックした場合は,どこかにあるスタートアップルーチンが起動されてコンソールを開いているのかな.
というわけで,なんとかなりそうだなぁ.たぶんやらないけど….
*Windowsはなぜ動く?
暫く貸していた本が戻ってきました.「Windowsはなぜ動くのか」.
OLEやらCOMやらActiveなんたらとか,WDMとVxDドライバとか,凄くWindowsべったりの技術が書いてあるのかと思って買ったら,凄く普通のことが書いてあったので,期待はずれというか,真っ当な内容で安心したというか,そんな感じに思った覚えがあります.
Windowsの動作原理と言ったら,NTFSとレジストリとCOMとWDMの理解が欠かせないと思うのですが….でも,私も未だにWindowsがやってることが見えないことが多々あります.これはもう諦めるしかないんでしょうか….
関係ないですけど,アンチウイルスソフトって,NTFS上の複数ストリーム持ったファイルとかにちゃんと対応してるんでしょうか.ユニコードがどうとか,BASE64デコードがどうとか言っていた時期には,その程度のスキャンしかして無いのかと思ってたのですが,流石に最近はちゃんとしてますよね?
*5.75水和物
とある文書を読んでいて,CH4・5.75H2Oという物質が唐突に現れたので,一瞬何かと考えてしまいました.化合物ではなくて,水和水が回りにくっついているわけかな.CH4はメタンだよなぁ…メタンに水和水?これは…メタンハイドレートか.というか,化学式が重要な文書では無いのだから慣用名で書いてください….っと,思ったら読み飛ばしていた文書の冒頭で説明されてるし.
*htaといえば
私も,htaを使ってIEに変なことできないかな…と少し前に思って変なものを色々書いたのですが….案の定,脆弱性が報告されてるし.
思うのだけど,脆弱性が発見されにくいのは,ソフトウェアの品質によるものがあるんじゃないかなぁ.アプリケーションがたまに強制終了したり,不振な挙動をするのを見ても,中で何が起こっているのか気にしない人が多過ぎる気がする.開発者が意図したとは思えない挙動をしたら,そこにはバグがある可能性が高い…と考えるのは自然じゃないかなぁ.あたりまえだけど,プログラムは作られた通りに動くものだから,同じ状況を作ることができれば同じエラーが発生するし,場合によってはそのときの挙動を操作できるかもしれないでしょう.
ソフトウェア開発の技術の進歩に比べて,ソフトウェアの規模が大きくなるのが早すぎるというのが根本的な問題かも.人間は,数百万行のプログラムをミスせずに開発する能力はまだありません.というか,人間がプログラムを書いているうちは駄目なような….
たぶん,数千年後の人がWindowsとかLinuxとかのコードを発見して思うことは,現在の人がピラミッドを見て思ったことと同じでしょう.製造手段が肉体労働から精神労働に置き換わっただけです.
21世紀まで,ソフトウェアはソースコードと呼ばれるテキストデータをキーボードという原始的な入力装置を用いて何万行も入力するという非人間的な行為によって製造されていた.たとえば,Windowsという基本システムはエジプト史のピラミッドと並ぶ構造物である.これは,数百〜数千人の人間が10年以上の時間をかけて開発していた.それと並行する形でインターネットと呼ばれるネットワークが普及していった.その普及速度は目覚しく…ってな具合に,歴史の教科書に書かれていると私は思います.
*インターネット
とうとう来てしまいました.今日からはインターネットの時代ですね(笑).
このIP通信網はいつまで存続するでしょうか.インターネットは通信のための階層がかなり細かく分かれているので,滅多なことでは完全に互換性の無いものに置き換わることはなさそうです.強いて言えば,現在のデジタル通信が古くなったら新しいものに置き換わるでしょうか.
*RFC 3251
4月1日だしRFCでも読むかということで(ぇ?).まだ今日の分は公開されて無いようです.
ちょっと古いですが,まだ読んでなかった,「RFC3251 Electricity over IP」も読んで見る.まぁ,どうやって電気をデジタル化してパケットに分割するかという技術的問題点は置いておくとしても,このRFCが提唱しているネットワークには重大な欠点があるような….
最初の電力要求のパケットは,どうやって送るんでしょうか.電力要求のパケットを送るのに電力は必要ないのか.定期的にブロードキャストで待機電力を送信するサーバが必用になりそうですね.でも,やっぱり電源がまだ入ってない状態では,電力が受け取れないような….
となると,「RFC1149 A Standard for the Transmission of IP Datagrams on Avian Carriers」などを用いて,電気信号に依存しないネットワークを組む必用も出てくるかもしれません.って,電力とIPの2つのネットワークが存在するのが非効率的だという問題を解決するためのRFCなので,意味がなくなりますが.
*RFC 3091
ついでに,「RFC3091 Pi Digit Generation Protocol」も読み直して気付いたことが.
私の使っているIPのバージョンでは,314.159.265.359というアドレスを使うことが出来ません.このプロトコルを実装するためには,IP層の改変が必要ですね.それとも「314:159:265:359::」というIPv6アドレスの間違いですか?