トップ > 管理人 > 日記
ソフトウェア 日記 メール

日記

今月の日記(Twitterの発言表示なし)
今月の日記(Twitterの発言表示あり)
今月の日記(Twitterの発言表示のみ)

RSS 2.0(Twitterの発言表示無し)
RSS 2.0(Twitterの発言表示あり)

著者について
筑波大学 情報学群 情報科学類 2年。主にオペレーティングシステム、プログラミング、サーバ管理、ネットワーク、ロボットなどに興味があります。

2010年 1月(16件) 2月(12件) 3月(9件) 4月(8件) 5月(4件) 6月(14件) 7月(13件) 8月(8件) 9月(9件)
2009年 1月(33件) 2月(29件) 3月(31件) 4月(14件) 5月(19件) 6月(18件) 7月(22件) 8月(19件) 9月(11件) 10月(16件) 11月(8件) 12月(17件)
2008年 1月(28件) 2月(24件) 3月(30件) 4月(27件) 5月(34件) 6月(22件) 7月(24件) 8月(18件) 9月(16件) 10月(19件) 11月(19件) 12月(24件)
2007年 3月(55件) 4月(51件) 5月(52件) 6月(42件) 7月(42件) 8月(49件) 9月(31件) 10月(36件) 11月(30件) 12月(32件)
2006年 1月(32件) 2月(28件) 3月(35件) 4月(29件) 5月(28件) 6月(34件) 7月(32件) 8月(33件) 9月(29件) 10月(31件) 11月(14件) 12月(22件)
2005年 1月(44件) 2月(40件) 3月(38件) 4月(35件) 5月(30件) 6月(31件) 7月(28件) 8月(31件) 9月(27件) 10月(30件) 11月(31件) 12月(31件)
2004年 9月(26件) 10月(32件) 11月(35件) 12月(32件)


■病院に行ってきた - 2009年3月30日 22時38分54秒
藤田保健衛生大学病院の眼科に行ってきた。

とりあえず、眼科内の見た限りのシステムが全てWindowsで
動いていたのが、とても衝撃的でした・・・。

別に、Windowsが腐っているとかそういうわけじゃないですよ。
GUI付きのLinuxも十分腐ってると思うので。特にこの頃。
気になってしまうのは、内部の構造がどうなっているか、
ある程度わかっているので、逆に怖いんですよね。
何をやらかしたらまずいとか、そのコンポーネントには癖があるだとか。。。

カルテも電子化されているようで、例えば、眼圧を測るときでも、
バーコードで識別子を読み取った後、いつも通り測って、
紙に出力されずに情報だけ記憶されているようだった。

眼圧を測る機械だけでなく、その他の機械も、出力が何らかの形で
コンピュータに取り込めるようになっており、例えば、医者が見ている画像を
コンピュータ上にリアルタイムで表示したり、保存したりすることが出きるみたい。

まぁ、自分自身については、筑波大学付属病院の眼科に紹介状を書いてもらって、
向こうで色々とやるようです。授業に支障が出ないといいね。

ということで、明日の夕方につくばに戻る予定です。
新幹線の予約もとったので、特に問題が無ければ、17時半には宿舎につくでしょう。
コメントを見る・書く (0件)


■OJTの2次募集開始 - 2009年3月29日 16時53分12秒
組み込み技術キャンパスOJTで、2次募集が行われます。

http://www.mast.tsukuba.ac.jp/intra/index.html#a3

興味がある人は応募してみると良いと思います。

ちなみに、ざっと見た感じだと、2次募集は書類 + 面接に変わっていますね。

OJTの内容自体は、実際に取材を行ったので大体の雰囲気はわかっているのですが、
やはり、第一線で活躍する人から講義を受けられるというのが大きいのではないでしょうか。
コメントを見る・書く (0件)


■春日キャンパス情報基盤サーバはシステム停止中です - 2009年3月29日 11時42分44秒
「http://inf.tsukuba.ac.jp/」を開くと、次のようなメッセージが表示されている。

------ 上記より引用開始 ------
春日キャンパス情報基盤サーバはシステム停止中です

3月28日の18時頃にシステム更新準備中の操作ミスのため、春日キャンパス情報基盤サーバが停止しました。復旧作業は行ったもののOS自体が起動しなくなる障害を併発し、システムが停止しています。

現在、念のためにユーザ領域のバックアップを作成しています。その後、システム領域を直近のバックアップから復元する予定です。バックアップと復元には時間がかかるため、再開は日曜午後以降の予定です。
----- 引用終了 ------

大変だなぁ、と思うと同時に、そういえばどっかのサーバも・・・と思った次第です。
どことは言いませんよどことは、、、自分もあんなことになってるとは思わなかったし。。。

やっぱり、当たり前のことですが、バックアップは重要ですね。
そう考えると、手元にあるシステムはどうなのかという話になる。

一番重要なサーバ(yasuharu.netに割り当てられているサーバ)は、現状では、
RAID1でミラーリングして、必要そうなファイルだけ、遠隔からバックアップを取っている。

理想としては、ハードディスクを2台増設して、それもRAID1にする。
また、ファイルシステムをZFSにして、重要な部分だけでも
スナップショットを取る方が良いかもしれない。

夏にはハードディスクを2台増やして、家庭内のNASにしようかとは考えていたけど、
それと同時にバックアップも見直す必要があるだろうな。

全体として、あまりにも混沌としすぎていて(5台くらいのマシンで相互にデータが入り組んでいるため)、
自分は把握できているけど、そろそろ整理しないとあまりにも酷すぎる。
コメントを見る・書く (0件)


■Messenger on VirtualBox - 2009年3月28日 22時24分37秒
Live MessengerなどのメッセンジャーをVirtualBox上で動作させると、
メッセージが送信できないことがある。
状況としては、メッセージを送っても、送信されておらず相手に表示されない。
ただ、逆に相手からのメッセージの受信はできて、すぐに返事を返せば相手に送信される。
しかし、すぐに返事を返さなくて間があくと、メッセージが送られない。

Wiresharkで様子を見ながら再現をすると以下のようになる。

VirtualBoxのゲスト内で実行しているメッセンジャーをA、ホスト上で実行しているのをBとする。
接続の構成は、以下の通りとなっている。

VirtualBoxゲスト(10.0.2.15) <--(NATで接続)--> VirtualBoxホスト(192.168.0.5) <--(LAN)-->
ルータ(192.168.0.1) <--> インターネット

ゲストのOSは、Windows XP Professional SP3を使用し、ホストのOSは、Debian Linux Lennyを使用した。
VirtualBoxのバージョンは2.1.4で、ゲスト側ではGuest Additionsを実行している。
また、Wiresharkはゲスト側、ホスト側の両方で実行し、ログを取得している。

再現の手順は以下のとおりである。

1,BからAへメッセージを送信する。このときは特に問題が起きない。

2,すぐに、AからBへ返事を返す。このときも問題はない。

3,5分位待つ。

4,再び、AからBへ返事を返す。しかし、メッセージは送られない。

このとき、Wiresharkで様子を観察すると以下のようになる。

・ゲスト側
メッセージは正常に送信されていることになっていて、ACKが返ってきている。

No Time SrcAddr DstAddr Protocol Info
1397 652.706620 10.0.2.15 207.46.26.43 MSNMS MSG 134 U 99
1398 652.708407 207.46.26.43 10.0.2.15 TCP msnp > ansoft-lm-2 [ACK] Seq=436 Ack=725 Win=8760 Len=0
1399 653.574110 10.0.2.15 207.46.26.43 MSNMS MSG 135 N 127
1400 653.575529 207.46.26.43 10.0.2.15 TCP msnp > ansoft-lm-2 [ACK] Seq=436 Ack=867 Win=8760 Len=0

・ホスト側
メッセージは正常に送信されておらず、TCPによって再送信されている。

No Time SrcAddr DstAddr Protocol Info
5996 656.703663 192.168.0.5 207.46.26.43 MSNMS MSG 134 U 99
5997 657.452573 192.168.0.5 207.46.26.43 MSNMS [TCP Retransmission] MSG 134 U 99
5998 658.956576 192.168.0.5 207.46.26.43 MSNMS [TCP Retransmission] MSG 134 U 99

(注意:フレーム番号と時間がずれているが、ゲストとホストで実行しているタイミングが異なるため)

想定している挙動としては、ゲスト側でACKが返ってきているのであれば、ホスト側でもACKが返ってきているはずである。
しかし、実際にはホスト側でACKが表れることはなく、ゲスト側では送信されているはずの「MSNMS MSG 135 N 127」がホスト側で送信されていない。
よって、ゲストからホストの間のネットワーク通信の間で問題が起きていることが考えられる。



原因としては、以下のようなことを考えているが、現在調査中。。。

1つには、VirtualBoxのネットワークドライバがわざとACKのメッセージを送信していることが考えられる。
もう1つには、理由がまだ分かっていないが、何かしらの理由でTCPの再送が発生してしまっている。
また、このときのネットワークドライバの挙動が怪しい。

前者については、妥当な理由が思いついているので、あとはソースコード上から証拠を探すだけ。
後者は、いろいろと調べる必要がありそう。。。正直、はっきりとしない。

とりあえず、VirtualBoxのソースコードをダウンロードしてきて調べるか・・・。
コメントを見る・書く (2件)


■おみやげ - 2009年3月28日 21時13分13秒
asahi.com(朝日新聞社):豊橋ウズラに応援団 「鳥インフルエンザ風評に負けぬ」 - 社会
http://www.asahi.com/national/update/0328/NGY200903280018.html

つまり、おみやげはヤマサちくわのウズラ卵を使ったものに決まりですね!

ただ、日持ちするかどうかわからないので、そこら辺は現物を見てから決めるとしよう。

それにしても、豊橋はキャベツが生産量で有名だというのは知っていたが、
ウズラ卵は、この件があるまでは聞いたことがなかった。
単に自分が無知なだけなのかもしれないけど、割と知らなかったという人は多い気がする。
言われてみれば、市内の店では蕎麦にウズラ卵が付いてくるし、確かにそんな気もする。
(そう考えると、ウズラ卵を切るためのはさみ、って珍しい気が。。。)

おそらく、部活のときに走っていた某池の近くは、養豚場だと思っていたが、
実は養鶉場(ようじゅんじょう)だったんじゃないかな・・・。
コメントを見る・書く (0件)


■結局 - 2009年3月28日 0時8分39秒
結局、29日につくばに戻ることはできませんでした。
30日に県内の某F大学病院へ行って、検査を受けてきます。

それにしても、今日、病院で紹介状と(行く先の病院の)予約票をもらってきました。
紹介状はともかく、予約票まで取ってもらうもんなんですかね。。。

現状としては、右眼が炎症を起こしている状態だそうです。
さて、どうなることやら・・・。
コメントを見る・書く (0件)


■CLD-R5 - 2009年3月26日 11時50分36秒
2009年1月14日にPioneerがLD(レーザーディスク)プレーヤーの生産を終了した。
その時に残っていた機種の一つが「CLD-R5」。LDとCDの再生に対応している。

で、実家に帰ってきたら、何故かこれがあった。
数年前にLDプレーヤーが壊れて、どうするのかなぁ、と思っていたら、やはり購入したようだ。

それにしても、オーディオとかビデオとか、好きな人は本当に好きだよね。。。
ハードディスクレコーダだけで4台(そのうち、何台かは2チャンネル入力可能)あったりとか、
何に使うんだろう・・・。
コメントを見る・書く (0件)


■つくばにいつ戻るか - 2009年3月25日 22時38分3秒
当初、29日に戻る予定でした。

ただ、数日前から右眼の異変に気づいていて、今日、眼科に行ったら、
眼の中が炎症を起こしていると言われました。
そのため、経過を見ながら治療を行う必要があり、経過次第では、
29日にはつくばに戻れないかもしれません。

一応、影響しそうな所には、あらかじめ事情を説明しておいた。
(もし、漏れがあったら、お手数おかけしますが、連絡をお願いいたします)
金曜日にもう一度眼科に行って、その時の経過次第なんだけど、どうなることやら。。。

まぁ、家でおとなしくしていてください、と言われたので、
持ってきた本を消化することにしよう。
コメントを見る・書く (0件)


■あぁ、そうか。 - 2009年3月24日 8時38分11秒
宿舎の認証が面倒だったら、ColdFire基盤を使って、自動認証させるように、プログラムを作れば良いんですね!

とか、ふと荷物をまとめながら思いついた。

現状では、スクリプトで全部やらせてるから、あまり面倒ではないんだけど、
宿舎に帰ってきてつなぐときとか、すぐにネットが使える状況ではない。
ケーブルさしたらすぐに使えるのが理想かなぁ、とか思ったり。

時間があったら、ColdFire基盤を持ってこよう。
コメントを見る・書く (0件)


■実家に帰る - 2009年3月24日 0時7分1秒
明日から29日まで実家に帰ります。
明日は、11時までサークルで作業する。
そのまま、TXに乗って、12時半の新幹線で実家に帰る。
一応、14時半ごろには着く予定。

その後、17時半からはクラス会。
しかし、一部で集合時間がはっきりと伝わっていないようなので、
どうなることやら・・・。
コメントを見る・書く (0件)


■暴走するロボット - 2009年3月22日 0時17分19秒
サークルでロボットを作っている時に、モータのプログラムを調整していた。
先ほどまで動いていたから大丈夫だろう、と思って、プログラムを動作させたら、見事に暴走・・・。

危うく、ロボットと自分のノートパソコンが廃棄になるところでした・・・。

原因は、モータのエンコーダの初期化を忘れていたということ。
他の人のプログラムと結合した時に何故か結合されていなかったらしい。。。

それにしても、さすが、定価で8万くらいするMaxonのモータ・・・。
おそらく、2m/s(7.2km/h)以上は出ていただろう。。。
コメントを見る・書く (0件)


■気づいてはいけなかった - 2009年3月19日 11時30分4秒
普段、tracは使用していないが、svnとtracで同時に自動生成できるような環境にしてある。
久しぶりに、tracを使おうと思って、アクセスしたはいいが・・・気づいてはいけなかった。

何故か、Internal Server Errorがでる。
エラーを見ると、以下のような表示がされている。

[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246] mod_python (pid=21054, interpreter='lab.yasuharu.net', phase='PythonHandler', handler='trac.web.modpython_frontend'): Application error
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246] ServerName: 'lab.yasuharu.net'
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246] DocumentRoot: '/usr/public/www/lab'
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246] URI: '/trac/project_name'
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246] Location: '/trac/'
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246] Directory: None
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246] Filename: '/usr/public/www/lab/trac'
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246] PathInfo: '/project_name'
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246] Traceback (most recent call last):
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246]   File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch     default=default_handler, arg=req, silent=hlist.silent)
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246]   File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target     result = _execute_target(config, req, object, arg)
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246]   File "/usr/local/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target     result = object(arg)
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246]   File "/usr/local/lib/python2.5/site-packages/Trac-0.11.2.1.ja1-py2.5.egg/trac/web/modpython_frontend.py", line 143, in handler     reload(sys.modules['trac.web'])
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246]   File "/usr/local/lib/python2.5/site-packages/Trac-0.11.2.1.ja1-py2.5.egg/trac/web/__init__.py", line 12, in <module>     from trac.web.api import *
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246]   File "/usr/local/lib/python2.5/site-packages/Trac-0.11.2.1.ja1-py2.5.egg/trac/web/api.py", line 29, in <module>     from trac.util import get_last_traceback, md5, unquote
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246]   File "/usr/local/lib/python2.5/site-packages/Trac-0.11.2.1.ja1-py2.5.egg/trac/util/__init__.py", line 32, in <module>     from trac.util.html import escape, unescape, Markup, Deuglifier
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246]   File "/usr/local/lib/python2.5/site-packages/Trac-0.11.2.1.ja1-py2.5.egg/trac/util/html.py", line 16, in <module>     from genshi import Markup, escape, unescape
[Thu Mar 19 10:53:55 2009] [error] [client 133.51.82.246] ImportError: No module named genshi

genshiがないようだ・・・。
ただ、locateで探してみるとgenshi自体はあった。
そうなると、パスが通ってないことになる。

コンソールから、以下のようにしてパスの一覧を表示させる。

python
import sys
sys.path

実行結果は、以下のようになる。

yasuharu% python
Python 2.5.4 (r254:67916, Feb 24 2009, 16:46:58)
[GCC 4.2.1 20070719  [FreeBSD]] on freebsd7
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/local/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg', '/usr/local/lib/python2.5/site-packages/Pygments-1.0-py2.5.egg', '/usr/local/lib/python2.5/site-packages/pytz-2009a-py2.5.egg', '/usr/local/lib/python2.5/site-packages/Trac-0.11.2.1.ja1-py2.5.egg', '/usr/local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-freebsd-7.0-RELEASE-p7-i386.egg', '/usr/local/lib/python25.zip', '/usr/local/lib/python2.5', '/usr/local/lib/python2.5/plat-freebsd7', '/usr/local/lib/python2.5/lib-tk', '/usr/local/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/local/lib/python2.5/site-packages']

genshiが入っているディレクトリが「/usr/local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-freebsd-7.0-RELEASE-p2-i386.egg/」となっている。
「/usr/local/lib/python2.5/site-packages」が入っていれば何とかなりそうなんだが・・・。2つ入っているし、よくわからない。

明示的にgenshiのパスを設定することにする。

tracのWebインタフェースから呼び出すときは、mod_pythonを使って呼び出される。
したがって、httpd.confのtracに関するLocationの部分を以下のように変更した。

<Location /trac/>
     SetHandler mod_python
     PythonHandler trac.web.modpython_frontend
     PythonOption TracUriRoot "/trac"
     PythonOption TracEnvParentDir /hogehoge
     PythonPath "sys.path + ['/usr/local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-freebsd-7.0-RELEASE-p2-i386.egg/']"
</Location>

PythonPathディレクティブにgenshiのパスを付け加えた。
とりあえず、これで、問題ない感じです。また、問題があったら適宜書くことにしよう。

何だかんだで、エラー発生からこの記事を書くまでに45分もかかってしまった・・・。時間が・・・ orz
コメントを見る・書く (0件)


■新幹線の予約 - 2009年3月18日 23時2分39秒
忘れていた。
3月24日12時半、東京駅発の新幹線を予約した。
17時から高校のクラス会があるけど、何とか間に合うだろう。
コメントを見る・書く (0件)


■ipconfig - 2009年3月18日 9時27分44秒
とある資料を読んでいて、Unix系だとifconfigだと思っていたら、
Macにはipconfigコマンドがあるらしい。。。

man ipconfig(8)
http://www.manpagez.com/man/8/ipconfig/

最初見たときに、何かの間違えじゃないかなぁ、とか思った。
パスは、/usr/sbin/ipconfigにある。

FreeBSDにもあるのかなぁ、とか思って探してみたけど、インストールはされてないし、
Portsの中にも入っていなかった。
たぶん、Mac独自のコマンドなんだろうなぁ。。。必要ない気がするんだけど。
コメントを見る・書く (0件)


■国立情報学研究所 - 2009年3月17日 8時9分17秒
昨日、今日と国立情報学研究所にいます。
国立情報学研究所、って情報以外の分野の人に言うと、どこだそれ、って言われるんですが、
CiNiiのNiiと言えば、わかってくれるようです。
(CiNiiは、国立情報学研究所(Nii)が運営する学術文献のデータベースのこと)

目的はというと、別にそこが関係あるわけでもなく、以下の講義を聴講するために行っています。

日本ソフトウェア科学会 大学基礎講座 「オペレーティングシステムの仮想化技術」受講者募集のご案内
http://www.jssst.or.jp/plan/os-vir-20090316.html

内容はというと、一般的な情報から、VMware・Xenが中で何をやっているのか、
特許や論文、実際に動かして調べたことを主にはなしていました。
最初は、自分で調べた方が時間が有効活用できるかなぁ、と思ったけど、
どの論文を参考にすべきとか、そのような話もされていたので良かった。
(これも調べればわかるけど、前者はともかく、後者は2日以上かかるため)

そんなわけで、今から再び国立情報学研究所へ行ってきます。
コメントを見る・書く (0件)


■やっと寝られる - 2009年3月16日 1時16分10秒
大学のとあるサーバが障害を起こして、当初の予定より寝る時間がずれこんだ。

昨日の8時に大阪駅を出て、1時間後とに(いろいろな要因で)起こされる電車にゆられて、
午前5時に東京駅を出た後、サークルなどでフル稼働。。。

そろそろ、普通に寝たいです。。。ということでお休み。
コメントを見る・書く (0件)


■筑波に戻る - 2009年3月15日 5時32分43秒
現在、常磐線に乗って土浦へ行くところです。
とりあえず、今から大学(not宿舎)に戻ります。
停電があるため、サーバのお守りをしないと。
午後からは、サークルの作業へ。
夜までは慌ただしそう。

休んでいた間のメールとかも返さないと、、、
かなりやることがたまっている。まぁ、頑張ろう。
コメントを見る・書く (0件)


■NAIST - 2009年3月12日 0時9分43秒
NAIST(奈良先端技術科学大学院大学)に来ています。
ムーンライトながらに乗って、数時間・・・結構、疲れた。

割と時間もあることだし、春休みに入ってから時間がなくてできなかった
ことをいろいろとやろう。。。
コメントを見る・書く (0件)


■荒川沖 - 2009年3月10日 21時14分50秒
ついた。
出発の20分前までミーティングだったけど、何とかなった。

それにしても、初めて荒川沖駅に来たのに既視感があると思ったら、そういうことか、、、
もう、1年になるんだね。。。悲しいことだ。。。
コメントを見る・書く (0件)


■大阪へ - 2009年3月10日 9時1分34秒
今晩から、大阪方面に行ってきます。

やっと、時刻表を調べ終わりました。
帰りに大阪から大垣まで行く途中で、乗り換えが
1分のところがあるけど気にしない・・・。
構内図を見ている感じだと、到着時は乗り換える列車が
対面した箇所にいる「はず」なので、まぁ、大丈夫だろう。
(実際のところ、最悪、乗り過ごしたとしても実家に
そのまま帰ればいいので、あまり気にする必要がない)

つくばからは、大学中央から荒川沖までバスで行って、そこからJRで10時間ほど。
つくばを出るのは、今日の20時(20時5分、大学中央発 荒川沖行)までなので、
物理的に会う必要がある用事などはそれまでなら大丈夫です。
逆に、帰ってくるのは15日の午前7時ごろに帰ってきます。
おそらく、その3時間後くらいからサークルで作業しないといけないけど・・・。
(今日も、午前10時から午後16時頃まで作業をする予定なので、どちらも大変だが)

そんなことを考えていたら、今日やるのかどうかはっきりしなくて杞憂していた
ミーティングの連絡が来た。今日の18時半からですね。。。途中で抜けよう。

さて、今から10時までに荷物をまとめるか・・・。
コメントを見る・書く (0件)


■春休み - 2009年3月9日 8時41分24秒
最近は、NHKロボコン用のプログラムばかり書いていて、若干食傷気味・・・。
他のことをやりたいけど、時間が取れないというより、取ってないだけだから仕方がないよな。。。

先週の水曜日ごろから春休みに入りました。他の大学より、かなり遅いです。
現状でわかっている、春休みの予定については、以下のとおりです。

11日 〜 15日:大阪・奈良
16日、17日:東京
24日 〜 29日:実家

あと、これの合間にNHKロボコンの作業が入ってくるので、ほとんど時間はないです。
特に、4月の第1週が山場な予感。週末には2次審査の資料を提出しないといけないためです。

とりあえず、明日の夜から大阪に行くので、その準備をしないとな。
時刻表を調べてなければ、必要な物資も買ってきていない状態です。
コメントを見る・書く (0件)


■おわた - 2009年3月8日 5時44分13秒
金曜日の夕方頃から悩んでいた問題が何と解決(?)。
いや、解決したというか、結局、無理でした。

問題はというと、マイコン(SH/Tiny、SH7125)用のプログラムをHEWから新規に作成して、
SCI(Serial Communication Interface)とCMT(Compare Match Timer)を
同時に使用するとどっちかがおかしくなるというもの。
おそらく、SCIの方は問題はなくて、CMTの方が何かしらの問題を起こしていると思う。

具体的な状態としては、以下の2通りの状態が発生した。

1、SCIで出力の途中にCPUが停止する(よって、CMTは動作しない)。
2、ずっと無効な文字列をSCIで送信する(この時は、一応、CMTは動作する。ただ、Timerがおかしい)。

おそらく、最終的な原因はわからなかったが、
理由は以下のとおりだと推測している。

1、割り込みがかかったときの関数アドレスが間違っていて、無効なアドレスに飛んでしまったためCPUが停止した。
(ただ、例外発生時の割り込みにLED表示だけの処理書いても、
アドレスエラーを検出していなかったので何とも言えないところがある)

2、これもおそらく同様の問題。何らかの表紙にSCIの入出力を行っているFIFOのアドレスがおかしくなったため、
延々と無効な文字列を送っていると考えられる。

ただ、最終的な理由ははっきりとしない。

金曜日の日記を書いた後、その晩は、できたように思えたけど、
翌日動作させたら結局動いていなかった(これも日記に書いたとおり)。
サークル部屋に行って、デバッガを製作することにした。
ただ、作成している途中に気づいていたんだけど、実は、今使っているボードが
デバッガを接続するように設計されていなくて、SCIのポートとデバッガのポートが重なっていた。
(まぁ、プログラムを書く気が起きなかったので、そんなことは無視して、
デバッガ用のポートを接続したが。。。)
デバッガを作成しても、もちろん動かず。というか、XrossFinderの使い方がわからん。
単純なプログラムならデバッグできそうな感じはするので、また今度確かめよう。

話は戻って、午後からは再度問題解決を試みた。
他の先輩とかにも聞いてみたけど、結局、理由はわからず。
日曜日の夕方5時ごろに諦めました。

諦めてそのまま。。。だとどうにもならない(ここが重要なため)ので、
つくばロボットコンテストの時のプログラムを引っ張ってきて、
それのいらない部分を削除することにした。
(じゃあ、その時はどうしたのか?、という話になるが、ベース部分は
他の人からもらったものなので全部をはじめから作ったわけではない)

削除してもすぐには動かなくて、数時間悩んだ挙句、先ほど完成しましたとさ。
まぁ、この時間まで起きてたわけではなく、12時ごろに寝てしまって、
4時半ごろに目が覚めただけです。
少し寝てからやったら、30分で終わったので、寝ることは重要ですね。

ちなみに、4時半ごろのときに修正した部分は、一部のファイルでヘッダが
includeされていなかったため、それを適切に設定したら動作するようになった。
やっぱり、SH2のコンパイラ(特にリンカ)の関数アドレスの設定の仕方がおかしいんじゃないかな。

HEWを使用するときの注意点として、*必ず*ヘッダファイルはincludeする必要がある。
Windows用のプログラムの場合、ヘッダなんて適当で良いと思うんだけど、
HEWの場合、中身がおかしいのか、それとも仕様なのか、往々にしてヘッダが
includeされていないことに起因するエラーが多すぎる。
さらに、初心者の人は何が起きているかわかんなくて、動作させるまでが大変・・・。

サークル内で、このことに関して言っている人はいなかったけど、先輩に聞いてみたら
やはり、このことには気づいている感じだった。

そもそも、(純粋な)C言語のコンパイラってヘッダチェックがかなり厳密だったりする?
仮に厳密だったとして、HEWがエラーを出さないのはまた別の問題だが。

そんなこんなで、1日半かかった問題がやっと解決しました。正直、1日分が丸つぶれ・・・。
まぁ、HEWが自動生成するプログラムが何をやっているか、何となく理解できたのでよしとしよう。
大体、割り込みテーブルをずっと眺めていた関係で、テーブルの
割り当てとかも頭の中に記憶し始めてるしね。。。
ある意味、怪我の功名ですかね。

さて、必要なメールを書いて、2度寝しよう。
コメントを見る・書く (0件)


■あ、あれ、、、 - 2009年3月7日 7時56分54秒
昨晩、2時ごろやっと想定したとおりの動作をして、やっと寝れる・・・と思って寝た。
しかし、何故か、起きてちょっといじったら動かなくなったぞ・・・。
あ、あれ、、、なんで、、、?

あと2時間・・・。何とかするか。。。
コメントを見る・書く (2件)


■わけがわからなくて発狂しそう - 2009年3月6日 23時4分28秒
というか、頭の中では既に発狂していますが。。。

SH/TinyのCompare Match Timerが正常に動作しない!
どうも見ている感じでは、割り込み先のアドレスが間違っている気がするんだけど、
開始後、数msでCPU自体の動作が停止するため、シリアル経由で
デバッグしているときの状態も取り出せないという。。。

ぁ、そうか、CMTの実行時間を遅延させて本当にCMTの割り込みで
落ちているか確かめればいいのか。


はい、CMTの実行開始時間を変更したらCPUが停止するまでの時間が延びました orz
割り込みテーブルに入っているアドレスが間違っているような気がするんだけど、
コンパイラが原因な気がしないでも。。。

半分自嘲気味に、SH/Tinyのデバッガでも購入してやろうか、
とか思って調べていたら、実はデバッガを持っているわな。
以前に使ったアルファプロジェクトの奴がデバッガとして使えるのを忘れていた。

しかし、これ結線しないと使えないな・・・明日まで粘ってダメだったら、
半田付けして結線するか。。。
コメントを見る・書く (0件)


■昨日は東京に行っていました - 2009年3月6日 10時43分10秒
諸般の事情(前の日記参照)により、急遽東京に行ってきました。
9時40分に父親から電話があって、東京駅についたのは11時20分。
宿舎から1時間半で東京駅までいけるのは、時間だけ見ると近いようにも感じる。

まぁ、別にどうということもなく、普通に昼飯を東京駅の近くで食べて、
まだ時間があるということだったので、東京駅から20分ぐらいの
東京国立近代美術館へ行ってきた。

東京国立近代美術館は、筑波大学の学生だと入場料が安くなるので良い。
(あと、東京駅周辺で暇になったら無難に時間を潰せる)
現在行われている常設展 + 企画展のチケットが一般だと850円で、
学生証を見せることで250円になる。

美術館を見終えて、2時半ごろに東京駅に戻って、父親は新幹線で帰りました。
ちなみに、何で昼間の時間帯に東京駅にいるか聞いてみたら、
午前7時から会議あってそれの帰りだそうで・・・。お疲れさまです。。。

帰りがけに秋葉原によって、必要なものを買って帰ってきた。
青春18切符はつくばのJTBで買おうと思ってたけど、結局、みどりの窓口が
秋葉原にあるのでそこで購入してきた。
みどりの窓口外の券売機でも購入できるんだけど、乗車日を聞かれて、
よくわからなかったから中の窓口で購入。

あと、ヨドバシに行って目覚まし時計を購入した。
以前に使っていた目覚まし時計が10ヶ月近く前に壊れて、それ以降、
ずっと携帯の目覚ましを使用していた。
それでも良いとは思うんだけど、携帯だと間違えてボタンを押して
発信しそうなのでできれば避けたい(実際に、一回だけ発信したことがある)。
ということで、以下の目覚ましを購入した。

カシオ DQD-80J-8JF [温度計付き電波時計]:ヨドバシ・ドット・コム
http://www.yodobashi.com/ec/product/100000001000841142/index.html

温度計付き電波時計で980円。Amazonだと倍以上するんだけど、ヨドバシだと安く買える。
機能としては、一通りのものがそろっていて良い感じ。

あと、ヨドバシでWillcomのWX340Kが電源入った状態で置かれていたので、実際に使ってみた。
画面が大きくなっているのは良い感じ。中身のソフトウェアは、ほとんど変わらないかな。
ただ、メニュー画面が変更されていたのだけど、あれ、処理が追いついてないんじゃないか・・・w
メニューとかが選択されると跳ねるというか、沈むような感じになるんだけど、
バネで4方から固定されているものに上から力をかけたような動きをする。
それの演算に処理が追いついていないような感じを受けた。
(別に、キー操作は普通にできるので何とも言えないが。
ただ、キーの割り込みの優先度あげればねぇ。。。)

他には、以下の点が変わっていた。製品仕様を見ればわかるようなものは省略。

・画面が大きくなった
・カメラにライトがつくようになった
・ボタンの形状が変わった
・WX320Kのボタンのうち、上部の方にあるPageボタンがなかった
・待ち受け画面で動画みたいなものが表示できるようになっていた
・待ち受け画面にガジェットが表示できるようになっていた

自分としては、NetFrontがどのような感じか調べたかったんだけど、
案の定、ネットにつながっていなくて確かめることはできなかった。

それで、実際に購入するかどうかって問題だけど、結局、やめることにした。
2万円も払うほどのものではないし、壊れたら変えれば良いと思った。

そんなこんなで、5時半に宿舎に戻ってきました。
まぁ、たまにはこういうのも良いね。
コメントを見る・書く (0件)


■定額給付金 - 2009年3月5日 23時55分28秒
今日から定額給付金の支給が始まりましたね。

asahi.com(朝日新聞社):定額給付金支給、さっそく2村 青森では村長が手渡し - 政治
http://www.asahi.com/politics/update/0305/TKY200903050085.html

ちなみに、つくば市では、以下のとおりだそうです。

つくば市│給付申請のお知らせ
http://www.city.tsukuba.ibaraki.jp/266/4156/004584.html

上記より引用。
----- 引用開始 ------
つくば市定額給付金給付事業では平成21年2月1日につくば市に住民登録・外国人登録をしている方を対象に1万2千円(18歳以下及び65歳以上の方には8千円を加算)の定額給付金を給付する予定です。給付の申請には,つくば市から届く申請書に必要事項をご記入の上,つくば市定額給付金室までご提出願います。申請書の発送は3月下旬を予定しております。
----- 引用終了 ------

以下のブログによると3月20日ごろに発送する予定とのこと。

小野やすひろ@活動報告 : つくば市定額給付金の動き
http://blog.livedoor.jp/ono_tsukuba/archives/51575435.html

支給の時期については、ニュースにあるとおり、市によってかなり対応が異なるみたい。

実際、実家の市で定額給付金に関する情報を調べてみたら、全く情報が出てこない。
さらに、Googleとかで検索すると、鳥インフルエンザの話題が出てくるという状態・・・。
(どうでもいいけど、たぶん通っていた高校が数百メートルしか離れていないはず)

ただ、定額給付金の是非について考えてみると、正直何とも言えないところがある。
自分自身は、こういうのも悪くないんじゃないかなぁ、と思った。
だけど、実際の運用例に近いものとして昔の地域新興券があり、
その時の結果を調べてみるとそうとも言い切れない。

地域振興券 - Wikipedia
http://ja.wikipedia.org/wiki/%E5%9C%B0%E5%9F%9F%E6%8C%AF%E8%88%88%E5%88%B8

Wikipediaの情報を見て判断するのは適切ではないと思うけど、ちょっと時間がないので。。。

これを見ていると、地域振興券ですらこういう状況なのに、今回、給付金を
支給しても貯蓄に回るだけだ、という意見も頷ける。

そうはいっても、給付されることは決定されたので、もらったら全部使ってしまおうと思う。
できれば、地元の辺りにお金が入るような形で使えるといいかなぁ。。。
(まぁ、単純に地元で使えばいいだけの気もするが)
コメントを見る・書く (0件)


■急遽東京へ - 2009年3月5日 9時57分38秒
何故か、父親から「今から東京に向かうから昼飯をでもどうか?」と15分ぐらい前に電話がかかってきた。
ということで、今から東京へ行ってくる。

しかし、東京にいるのはわかるが、なぜこの時間帯。。。
コメントを見る・書く (0件)


■ヘッドマウントディスプレイを使ったソフトウェアの開発 - 2009年3月5日 1時29分35秒
ヘッドマウントディスプレイを使って、見ている画面から英単語を抽出して、
その単語の意味を表示するためのソフトウェアを開発した。

例えば、英語の文章をヘッドマウントディスプレイを通して読んで、
意味がわからない単語があったら、それを選択して
ヘッドマウントディスプレイ上に表示するというもの。
これを使うことで、英語の文章が読みやすくなる、かも。

まぁ、現実的な話をすると、5万程度の個人用途のヘッドマウントディスプレイの
レベルだとそんな理想的な話は難しいです。
どうも、視点調整がうまくいかなかったり、画面がぼやける感じがする。
(ただ、これは調整が悪いのかもしれないが。。。)

ちなみに、アイディア自体は昨晩思いついて、今日の16時ごろから22時半ごろまでで作った。
話を聞いているだけだと、どうやって作ったのかと思うかもしれないけど、実際はそんなに難しい話ではない。

言語は、C#を使って書いた。
処理としては、以下のような処理を行えば簡単に開発できる。

1,カメラから画像を取ってくる
2,画像を解析して、英単語を抽出する
3,英単語を英和辞典で変換する
4,画面の表示する

これを、それぞれ次のように考える。

1,DirectShow.NETを使ってカメラから画像を取得する
2,OCR用のライブラリ(今回は、GoogleのTesseractをC#から使えるようにしたライブラリを使用)を使って、英単語を抽出する
3,フリーの英和辞典の辞書ファイルがあるので、それを使って英語から日本語に変換する
4,画面に表示する

これだけで完成。

このうちの、2と3は面倒そうに思えて、意外と簡単。
2は、4行あれば解析までできる。
3は、HashTableに放り込んで適当に値を取ってこればすぐに終わる。

意外と面倒なのが、1。あくまでも、DirectShowのためのライブラリであって、
カメラからの画像をキャプチャすることが主体のライブラリではない。
なので、DirectShowのフィルタをごちゃごちゃといじったりしないといけない。。。

サンプルコードを流用しようかと思ったけど、IVideoWindowが接続されていて、
自分が使いたいものとは違ったので、結局全部書き直し。
途中でいろいろとつまづいたので、ここだけで4時間はかかった。

ちなみに、全体のコード行数は400行ほどなのですごく小さい。
全体的にライブラリを結合したようなものなので、当たり前といえば当たり前。
OCRの部分は、最初は、英単語だったら画像認識でもいいかもなぁ、と思ったけど、
ふと、GoogleのOCRのライブラリを公開していたことを思い出してこうすることにした。

ただ、現状では色々と問題があって、例えば、以下のような問題がある。

・2,3千円のウェブカメラでは、ピントの自動調整がなかったり、そもそも画素数が少ないので文字がはっきりと出ない
(今は、130万画素程度のデジタルビデオカメラを使用してやっているが、
これだと、ヘッドマウントディスプレイにカメラが取り付けられない)
・UIがあまり良くない
(こういうものだと、最終的に中身のシステムがどうこうという話より、使いやすさの勝負になってくるので
UIが良くないとあまり意味をなさなくなってくる)
・英和変換のときに-edとか-ingを変換できていない
(すぐに終わる。明日にでも実装する)
・OCRの読み取り速度が遅い
(Pentium4の2.8GHzのマシンで試したから、単にマシンスペックをあげれば解決するかもしれない。
ただ、UIを工夫することで読み取り速度が無視できるかもしれない)

詳しくは、明日くらいに画像付きで紹介したいと思います。
コメントを見る・書く (0件)


■C# + DirectShow.NETで困ったエラー - 2009年3月4日 20時12分13秒
以下のようなエラーが出た。

---------------------------
System.InvalidCastException: 型 'DirectShowLib.SampleGrabber' の COM オブジェクトをインターフェイス型 'DirectShowLib.ISampleGrabber' にキャストできません。IID '{6B652FFF-11FE-4FCE-92AD-0266B5D7C78F}' が指定されたインターフェイスの COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため、この操作に失敗しました: インターフェイスがサポートされていません (HRESULT からの例外: 0x80004002 (E_NOINTERFACE))。

   場所 DirectShowLib.ISampleGrabber.SetCallback(ISampleGrabberCB pCallback, Int32 WhichMethodToCallback)

   場所 hmd_autotranslate.Capture.OnCaptureDone() 場所 D:Developmenthmd_autotranslatehmd_autotranslatehmd_autotranslateCapture.cs:行 166
---------------------------

SampleGrabberからキャプチャするためにコールバック関数が呼び出されて、その中でSampleGrabberを参照すると上のようなエラーが出た。
おそらく、マルチスレッド周りが原因だろうなぁ、と思ったら、かなり予想外なところに原因があった。
C#でフォーム用のプロジェクトを作成すると、Main関数が以下のように生成される。

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace hmd_autotranslate
{
    static class Program
    {
        /// <summary>
        /// アプリケーションのメイン エントリ ポイントです。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

この中の、「[STAThread]」を「[MTAThread]」に変更すれば問題なく動くようになる。

なんか、今までまったく目を触れてなくて、言われれば「そんなところあったねー」程度でしか考えてなかったけど、
こういう形でつまずくとは・・・。
詳しい意味については、後から調べてみようと思う。
コメントを見る・書く (0件)


■ふと思ったこと - 2009年3月3日 21時42分28秒
2^32 = 4294967296

例えば、これだけのパターンがあったとして、1秒に1個解析できたとする。
それでは、これを解析し終わるにはどれだけ時間がかかるか?

4294967296 / 60(秒) = 71582788(分)
71582788 / 60(分) = 1193046(時間)
1193046 / 24(時間) = 4971(日)
4971 / 365(日) = 14(年)

計算してみれば当たり前なんだけど、これだけの時間がかかる。
まぁ、2^32ならピンとこないかも。ただ、考え方をかえてみよう。

65536^2 = ?
256^4 = ?
16^8 = ?

どれも、答えは、4294967296となる。

例えば、最後のものなら、16個のものがあってそれを8ヶ所に並べた時の並べ方と同じだ。
身の回りのものを16個持ってきて、とりあえず、8個選んで右から左へと並べてみよう。
さて、それを全部入れ替えて、入れ替え方を観察したらどうなるだろうか。
答えは、14年後のお楽しみである。


よく、分散コンピューティングで薬に関する計算を行うものがあるけど、
どうして、膨大な時間がかかるのか、やっとわかった気がする。

例えば、ベンゼン環にいくつもの官能基が結合すると考える。これだけでも、相当な数になる。
もし、さらにベンゼン環が結合したら? p-フェニルアゾフェノールに官能基が結合したら?
どんどん、計算量が増加していく。

実際には、理論的に結合できないものもあるだろうが、高校レベルの化学の知識でも
大量のパターンがあることがわかる。

だからこそ、マシンパワーを必要とし、分散コンピューティングとかが必要とされるんだろうな。


当たり前のことだけど、ふと思ったので書いてみた。
というか、テスト勉強中にこんなことをふと思いついて、
考え始めたらテスト勉強が手につかなくなったので、書かざるを得なかった。
今に始まった話ではないので、いつものことといえばいつものこと。
さて、テスト勉強に戻るとしますか。。。
(おそらく、いつも通り、どっかで計算ミスをしている気がするので、指摘があれば遠慮なくどうぞ)
コメントを見る・書く (0件)


■期末テスト - 2009年3月2日 0時48分6秒
今週1週間は、3学期最後の期末テスト。
今回は、テストが2教科だけなので、今までに比べるとかなり楽になった。
その2教科はというと、火曜日のCG基礎と水曜日のシステム制御概論だけなので、
それが終わったらやっと春休み。

とはいっても、先週の火曜日から前期試験休みで、頭の中はほとんど春休み気分だけど。
とりあえず、今日と明日はテスト勉強をがんばろう。1日、十数時間勉強すれば何とかなるでしょう。

ということで、おやすみ。
コメントを見る・書く (0件)

トップに戻る

このファイルの最終更新日:2009年12月06日 09:25:21