2010年8月29日日曜日

NXTのセンサーの値をScratchへ送り込む

動機
Scratchの値をNXTに送る方法に気を取られてこれをPOSTしてなかった.


構成



LegNXTRemote
LegoNXTRemoteについて)
'Scratchに外から値を送ってみた(Cocoa編)'のような変更を加える.

- (void)setSensorTextField:(UInt8)port value:(NSString*)value
{
 …
[self sendToScratchWithPort:port value:value];
}
- (void)sendToScratchWithPort:(UInt8)port
value:(NSString *)value
{
NSString *message= [NSString stringWithFormat:@"sensor-update NXT_Sensor_%u \"%@\"", port, value];
//NSLog(@"NXT: %@", message);
NSData *data= [message dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData *writeData= [NSMutableData data];
char *c= malloc(4);
unsigned n= [data length];
c[0]= (char)((n>>24) & 0xFF);
c[1]= (char)((n>>16) & 0xFF);
c[2]= (char)((n>>8) & 0xFF);
c[3]= (char)(n & 0xFF);
[writeData appendBytes:c length:4];
[writeData appendData:data];
[socket writeData:writeData withTimeout:-1 tag:0];
free(c);
}

AsyncSocket *socketをlocalhost, 42001へ向けて作っておく.


結果

2010年8月20日金曜日

Sparkleでちょっと困ったよ.という日記

Sparkle 1.5b6をいじってみてた.
sparkle:dsaSignatureを求めるsign_update.rbの結果がドキュメントよりずっと長くなった.っていうか2行になった.

まぁそのまま貼付けてみたりしてやったのだがどうにも動かない.
で,これをみつけた.

opensslの版の問題がある?.
MacOSX 10.6.4でデフォルトのopensslは/usr/bin/opensslは
$ /usr/bin/openssl version
OpenSSL 0.9.8l 5 Nov 2009


ports等でopensslを入れている場合,
$ port version
Version: 1.9.1
$ /opt/local/bin/openssl version
OpenSSL 1.0.0a 1 Jun 2010

で,付属の.rb内ではパスは当然指定してない.

オイラの場合はportsの方が優先されるので1.0.0aが使われていてそのためdsaSignatureとして求めている値が異なるようだ.
(版の問題でなくどこかにある設定ファイルのためかもしれないけど)

.rb内で呼び出すopensslが引数に鍵の長さの指定を持たないからともいえるのかもしれないが.

.rb内のopensslの記述を全て/usr/bin/opensslへ書き換えたらドキュメント通り動いた.

で,関係ないかもしれないけどこんなドキュメントを見つけた.
暗号入門:暗号の2010年問題とは|SBINS


2010年なんだなぁ.って思った.

p.s.
gitから取り出したら問題なく動いたりするのかしら?

2010年7月6日火曜日

(色々決め打ちだけど,まずは)ARTK_MMDのMMD再生ライブラリ部をQCパッチでやってみた.

追記(2010/12/20): 公開しました.こちら

追記(2010/12/13): ARTK_MMDのサイトが引っ越されていました.こちら



NyMMDはJavaだがオリジナルのARTK_MMDはC++なのでARTK_MMDのMMD再生ライブラリ部をQuartz Composer Custom Patchでできないか?と思いあれこれやってみて,現在こんな感じ.
(ARTK_MMD, NyMMDの作者様に感謝)




(pmd: '初音ミク'(MMD添付モデル),vmd: '【MMD】みくみくにしてあげる♪【してやんよ】【Project DIVA】' 感謝)


パッチっぽく(決め打ちでなく,portやパネルでパラメタ指定)できたら公開してみたい.