今日は良い日だと思ったら…

…息子は超バッドデーだったようだ。

連絡帳に「う○こ」「ティンコ」をイラストで
やまもり落書きされて、
背中噛みつかれて返って来た。

公立の学校って難しいな。

息子は遊んでもらっているだけであって
いじめられているという自覚はないのだろうな。

…というか、もう学校で起きたことを話さない。

授業も全然頭に入ってないし、
英語力もゼロになりつつあるし。
学校行っても、ともだちとふざけあってるだけ。

先生は何やってるんだろう?
自己満足?

本人は登校は楽しいらしいが
それ以上でもそれ以下でもないのか。
選択肢がないのはかわいそうな気もするが。

なんか、大人しく、期待しないように
理解してしまっている感じも感じ取られる。

「あの子はそういう子だからしかたない」

平等に学習をする権利の中には、
学習したくない子供を手厚くして普通に扱う方策はあっても
それで学習機会をそがれる子供たちに対するケアはないのか。

まあ日本の大人の社会も余り変わらないけどな。
ダメな国だな。

今日はいい日だったと思ったら

やっぱりいい日だった。
とても珍しい。
〆切にすばらしく間に合った。
上のひととよいディスカッションができた。
仕事を早めに切り上げた。
この時点で「今日はいい日だ!」と心底思った。
切り上げて、通用口で、普段あんまり分かり合えない
隣の室の企画系のひとと雑談したのだけど、
いったん破談になりそうで、
短い時間で非常によいディスカッションができた。
さて、帰途、というかだっしゅつ後
執筆に時間を当てようかと一瞬悩んだが、
別件の大きな悩みがあって、
某M山さんに会いにこのイベントに行った、
http://www.urbancomputing.org/
参加するには遅すぎる時間なので
本当に人に会いにいっただけだったんだけど、
すごく懐かしい人々にたくさん会えて元気をもらったので
呼んでくれたM山さんにもちゃんと元気をお返しして、いまゆりかもめ.
少なくとも本の周知と売り上げには貢献できたと思う。
さて執筆執筆!

WiiYourself!でテルミン(ボタン駆動編)

昨夜は遅くまでオーム社さんで打合せ。

終電までかかった。

ほとんどは表紙と装丁関係だったけど。

あとジュンク堂書店で発刊記念イベントが企画されているらしい!

えー!絶対行かなきゃあ(>俺)

そんなわけでぼちぼち公開できる情報が増えてきたので、

モチベーション維持のためにも書いているコードを積極的に公開。

これは第7章で紹介するWiiYourself!をつかって

Win32のコマンドラインプログラムを

「自分でゼロから作成して」

MIDIを鳴らすテルミンもどきを作るあたりのサンプルプログラムの完成型。

Win32でMIDIを鳴らすサンプルは数あれど、ほとんどが.midファイルの再生。

これはちゃんと打鍵するタイプのコードです。しかもシンプル。

すばらしいサンプルを紹介してくださっているkymatsさんに感謝です。

ちなみに地味にunicode対応してたりします。

// WiiRemote[WiiYourself!]-Theremin-Button by Akihiko SHIRAI 2009/05/28
// http://akihiko.shirai.as/projects/WiiRemote
// please see here for MIDI control
// http://www13.plala.or.jp/kymats/study/MULTIMEDIA/midiOutShortMsg.html

#pragma comment(lib,"winmm.lib")
#include <windows.h>

//MIDI特有のエンディアンを変換するマクロ
#define MIDIMSG(status,channel,data1,data2) ( (DWORD)((status<<4) | channel | (data1<<8) | (data2<<16)) )

#include "../../wiimote.h" //WiiYourself!を取り込む

static HMIDIOUT hMidiOut; //MIDI
static BYTE note=0x3C, velocity=0x40; //音階と音量
static BYTE program=0x0; //音色

int _tmain(int argc, _TCHAR* argv[])
{
wiimote cWiiRemote;
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
printf("WiiRemote-Терменвокс(Theremin) button version by Akihiko SHIRAI\n");
//LICENSE
printf("contains WiiYourself! wiimote code by gl.tter\nhttp://gl.tter.org\n");
//MIDIを開く
midiOutOpen(&hMidiOut,MIDIMAPPER,NULL,0,CALLBACK_NULL);

//最初につながったWiiRemoteに接続する
while(!cWiiRemote.Connect(wiimote::FIRST_AVAILABLE)) {
printf("WiiRemoteに接続してください(0x%02X)\n",program);
midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,0)); //ミュート
Sleep(1000);
program++;
midiOutShortMsg(hMidiOut,MIDIMSG(0xC,0,program,0)); //音色変更
midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity)); //接続しないたび鳴る
}
printf("接続しました!\n [1]/[2]音色 [↑]/[↓]音階 [←][→]音量 [Home]終了\n\n");
Sleep(1000);

//今回はボタンイベントだけが更新を伝える
cWiiRemote.SetReportType(wiimote::IN_BUTTONS);
while(!cWiiRemote.Button.Home()) { //Homeで終了
while(cWiiRemote.RefreshState() == NO_CHANGE)
Sleep(1); //これがないと更新が速すぎる
cWiiRemote.SetRumble(cWiiRemote.Button.B()); //Bで振動
switch (cWiiRemote.Button.Bits) { //ボタンごとでswitchする例
//音量 [←]/[→]
case wiimote_state::buttons::RIGHT :
if(velocity<0x7F) velocity++;
midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity));
break;
case wiimote_state::buttons::LEFT :
if(velocity>0) velocity–;
midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity));
break;

//音色(=program) [1]/[2]
case wiimote_state::buttons::ONE :
if(program>0) program–;
midiOutShortMsg(hMidiOut,MIDIMSG(0xC,0,program,0)); //音色変更
midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity));
break;
case wiimote_state::buttons::TWO:
if(program<0x7F) program++;
midiOutShortMsg(hMidiOut,MIDIMSG(0xC,0,program,0)); //音色変更
midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity));
break;

//音階 up/down
case wiimote_state::buttons::UP :
if(note<0x7F) note++;
midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity));
break;
case wiimote_state::buttons::DOWN:
if(note>0) note–;
midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity));
break;

//[A]/[B]で同じ音をもう一度鳴らす
case wiimote_state::buttons::_A :
case wiimote_state::buttons::_B :
midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity));
break;

//その他のイベント、つまりボタンを離したときミュート。
default :
midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,0));
}
//現在のMIDIメッセージを同じ場所にテキスト表示
COORD pos = { 10, 7 };
SetConsoleCursorPosition(console, pos);
printf("音色 = 0x%02X , 音階 = 0x%02X , 打鍵強度 = 0x%02X\n",
program,note,velocity);

}
//終了
midiOutReset(hMidiOut);
midiOutClose(hMidiOut);
cWiiRemote.SetLEDs(0);
cWiiRemote.SetRumble(0);
cWiiRemote.~wiimote(); //Disconnect()も含む
printf("演奏終了\n");
CloseHandle(console);
return 0;
}

詳細な解説は本書にて!

http://akihiko.shirai.as/projects/WiiRemote/

実行ファイルのダウンロードはこちらから。

http://akihiko.shirai.as/modules/mydownloads/viewcat.php?cid=6

結婚を「選べない男」にはわからない話

■結婚を選べない男・結婚に選ばれない女
http://news.mixi.jp/view_news.pl?id=847855&media_id=77
最近この手のコラム多いな。
なんか駄作が多かったのだけど、さすがAllAbout、まあまあ面白い。
…というか「結婚を選べない男」とかいって
大病院の御曹司の場合には、「何が」選べないんだろうね。
・結婚するという選択肢がなかなか選べない(勇気がない)
・結婚する上で、相手を選ぶ権利がない(外的原因、親の縛りとかね)
・結婚する上で、相手を選べない(能力、ブサすぎる)
ニホンゴムズカシイデス…。
四捨五入して40近くにもなって何いってるんだよ、幼稚な。
甲斐性見せろ甲斐性。
というかその病は死んでも治らないよ!
思うんだけどさ、こういう「選べない」輩は、
男も女も合コン出てる時点で悪だよね。
出会ってるし、求めてるし、普通に遊んでいるだろう、と。
自らの未熟を他人のせいにするなと。
まだガツガツしてる奴とか、
純粋に遊びに来ている遊び人のほうがすがすがしい。
今朝ウチの嫁がいいこといった。
私『美人はなんで幸せになれないんだろうねえ』
嫁「欲があるうちは幸せにはなれないんだよ」
他人から受け取る愛よりも
他人に尽くす愛のほうが幸福だ。
家族が、子供ができると
常に尽くす愛。
掛け値なし。
おつりもなし。
上記のような輩には耐えられない。
私は、息子かわいさの余り、死にそうになる。
家族のニオイをかぐだけのために3時間かけて家に帰る。
上記のような輩にはわかるまい。
ま、いいんだけどな、とーちゃんがんばるよ。

FF13@フィゲロア

■ロサンゼルスに超巨大な「ファイナルファンタジー13(FF13)」の広告が登
場、高さは124フィート
http://news.mixi.jp/view_news.pl?id=848152&media_id=49
フィゲロアだな。LAダウンタウン。
住所はFigueroa street 123 LA CAだったはず。
SIGGRAPHをLAでやるときはよく泊まる。
X-GAMESやってるとバイクがばーんと飛んで、この広告が背景に入る。
べつにFF13だからってLAっ子は食いついてない気もするが…。
もっとへんちくりんなものはいくらでもあるわけで。
でも、FF13のCGを手で描いているペンキ職人には脱帽したいぞ。高所作業だし。

VR研究者に役立つ集合知

■Acceptance Rates for Publications in Virtual Reality/Graphics/Vision/HCI
http://web.cs.wpi.edu/~gogo/hive/AcceptanceRates/
Robert W. Lindeman、Robさんのページ。IVRC実行委員でもある。
VR、CG、ビジョン、ヒューマンインターフェース関係の国際会議の採択率リスト。
だいたいこの各カテゴリーの上の方がインパクトファクターが高い学会、
(歴史の長い学会ほど難易度は高いはずではあるのだが)
採択率が高いからインパクトファクターが低いか、っていうとそんなことない。
こういうのは「集合知」と呼んで良いだろうな。人的労力っぽいけど。

やっちまった…

仕事しすぎた!
なんで昼間の仕事を終わらせて朝の2時半なんだろう。
これから本の執筆という"充足した時間"を終わらせるための
最後の闘いをしなければいけないのに!
ねむいお
ところで普通の会社員の皆さんは、
職場で殺傷行為とかしたくなったときは
どうしているのかな?と普通に思った。
いま自分は「心の中で禅を組む」しか方法が、ない。
「飼い殺し」には刑法における殺人罪が適応されないのかしら。
うはー病んでる
寝た方が良いのかな…

ムダの骨頂。

■定額給付金の使い道ランキング
http://news.mixi.jp/view_news.pl?id=846658&media_id=45
「1位:生活費に使う」
えー。わかってたけどー。
給料もらう→天引きされて税金払う→国庫→定額給付金決まる→自治体が慌てて事務
作業(コスト)→給付金もらう→コンビニ行く→税金払う→国庫。
純粋に小銭が降ってくるのは地方自治体とオレオレ詐欺ぐらいか。
国は税金払ってもらえて嬉しいか?
というかこの金額って「国民年金1ヶ月分ぐらい」にしかならないんですけど。
せっかくバラまくなら、研究者みたいに使用目的をA4×10ページぐらいで書かせ
たらいいんだよな。申請する人減るだろうけど、その代わり金額100倍ぐらいで。
そしたら車の免許を取りたい、駐車場をなおしたい、ハイブリッドを買いたい、
とかやっと経済対策になりそうな項目が上がってくるわけで。
ちなみに我が家はまだ申請すらしていない。
「自治体に寄付」って、選択肢もあるらしいが、
それこそ税金の還流・・・。
地元小学校に寄付してやるならともかくねぇ。

10年前から引用

■毒舌“あだ名”芸人・有吉弘行、猿岩石の“元相方”と笑顔の再会
http://news.mixi.jp/view_news.pl?id=847289&media_id=54
—-
でも、新人で無名の、人生経験もない若い男の子達が、自分をどのように印
象づけて売りだしたいか……など考えているわけもないし、考えたところでど
うにもならない。彼らは自分でもわからにうちに視聴者に強姦されたヴァージ
ンみたいなもんだと思う。
 いいこと言われてその気になって、暗がりでファックされて、捨てられて
「処女じゃねえオマエなんぞ価値がねえ」と忘れられる。
—-
10年前、田口ランディのメルマガから引用。
■電波少年からお笑い芸人は生まれない
http://www.melma.com/backnumber_1926_1366158/
このコラムでは最後の方で放送作家とのトークになっているのだけど、
そのやりとりも非常に興味深い。
予測通り、その後テレビはどんどん野蛮人のメディアになり、もう10年になる。

ハッブル宇宙望遠鏡無事修理完了

宇宙ステーションで飲尿の話題が盛り上がっておりますが、
ぐったりしている間に、ちょっと出遅れましたが、
STS-125!と地味に盛り上がってみます。
実はこのミッションは「ハッブル宇宙望遠鏡史上最悪なミッション」と
言われていて、裏に救出用のSTS-400という緊急ミッションが
用意されていました。
詳細はこのあたりにまとまってます。
http://www.technobahn.com/cgi-bin/news/read2?f=200905111229
http://www.technobahn.com/cgi-bin/news/read2?f=200905201726
ハッブル宇宙望遠鏡をリリースする瞬間。うつくすぃ。

とりあえず望遠鏡の修理は無事に終わったそうです。
無事に大気圏再突入できることを祈っております。