bluecoveでBT-Mini2EDRが認識しない

jythonでwiiコントローラー使って遊ぼうかなと思いついたので朝から色々試してみた。

javaのライブラリ経由でアクセスすればよかろうと、WiiremoteJとbluecoveの組み合わせでいけるかなと思ったんだけどどうもBT-Mini2EDRを認識してない。

■[ソフトウェア][wii]MopTheremin

最初はWindowsで開発していたのですが、私の手持ちのBluetoothアダプタ(BT-Mini2EDRとBT-UD1)では何度やっても認識せず。しかたがなくmacbookにインストールすると全く問題なく接続できました。

どうも認識しないものらしい。これもまたMacBookを買えという見えない力が働いている証拠なのだろう。

Wiiでテルミンも面白そう。

GmailUS版に変えた

既読にマークのショートカットが使えないと不便だと言う理由により、GmailをUS版に変えてみた。

といっても、言語設定でEnglishを選択するだけだったという。

でもこれで、*-rで既読にマークがつくので、マウスを使わなくてもよくなってメールの処理がはかどりますな。

Meadowのテキスト整形モード

英語のプレゼンしなきゃならなくて、原稿をかいてみたりとかしたりとか。

こういうときって、メモ帳とかワードパッドとか使って書き散らすことが多いのだけど、 英語の文章が浮かばずに、何でMeadow使わないんだろうか?という疑問が浮かんだ。

という理由により、文章書いてみると、M-qで文章を文字数で折り返す機能がやたらと便利なことに気づかされた。でもM-x refill-modeはかくかく感がいまいちナ感じ。自分の好きなタイミングでM-qするのが楽だった。

jythonでprocessing [座標を変えるサンプル]

今日のお題は座標系を変える

2-7-b改

def setup(self):
    self.size(200, 200)
    self.colorMode(PApplet.HSB, 120)
    self.background(119)
    self.noStroke()
    self.smooth()
    self.rectMode(PApplet.CENTER)

    self.angle = 30
    self.margin = 40

def draw(self):
    self.translate(120, 30)
    for i in range(12):
        self.fill(i*10, 100, 119, 60)
        self.rect(0, -10, 10, 10)
        self.rect(0, 0, 30, 30)
        self.rect(30, 30, 60, 60)

        self.rotate(self.radians(self.angle))
        self.translate(self.margin, 0)

nikkei_btj twitterをircに流したらいい感じ

えと、僕とボットしかいない職場のircですが、それだけだとさびしいので、smilesを打ち込んだらInchiを返す人口無能でもいれたろかと思ったがそれはあまりにも孤独すぎだろうと思いとどまった。むしろ、黒い独り言を垂れ流して、負のオーラで仲間をひきつけるチャンネルを作ろうとか(謎)

というより、頻度の高いニュースサイトなんかを流すと、にぎわっているようでよいのではないかと。というわけで、ちょっと前に見つけたnikkei_btjをircに流してみた、plaggerで。

plaggerの設定はirc.yamlを参考に書き換えるだけだった、お手軽!そしてnikkei_btj調子いいっす。感謝!

perlのスレッドでIPアドレス逆引き

昨日の続き

use strict;
use warnings;
use Socket;
use threads;
use threads::shared;
use Thread::Queue;

my $thread_num =10;
my %cache : shared;
my $DataQueue = Thread::Queue->new();

for (0..$thread_num){threads->create(\&getaddress);}

while(<DATA>){
  chomp;
  $DataQueue->enqueue($_);
}
for (0..$thread_num){$DataQueue->enqueue(undef);}

$_->join for threads->list;

sub getaddress {
  while(my $DataElement = $DataQueue->dequeue()){
    my $address;
    if ( $cache{$DataElement}){
      print "[cache] ",$cache{$DataElement},"\n";
    }
    else {
      ($address) =  gethostbyaddr(inet_aton($DataElement),AF_INET);
      if ($address){
            print "$address\n";
            {
              lock %cache;
              $cache{$DataElement} = $address;
            }
      }
      else {
            {
              lock %cache;
              $cache{$DataElement} = $DataElement;
            }
            print $DataElement, "\n";
      }
    }
  }
}
__DATA__
222.228.235.193
157.113.18.68

これで結構オッケーなんだけど、アクセスログだとIPアドレスが連続してるのでキャッシュされてない且つ逆引き出来ないアドレスが続いてるとすべてのスレッドがそのアドレスを問い合わせにいってしまって遅かったりする。

どれかのスレッドが問い合わせ中のアドレスは問い合わせにいかないというような処理を入れたくなったけど、どういう風にしたらよいのかわからない。

perlでスレッド処理

javaの入門書を読んでいたら突然スレッド処理が気になりだした。そういえばどう書くにスレッド処理の問題あったな。

あった

  • ログを順次読み取り処理する部分を,データを共有しつついかに並列化するか

pythonだとthreadingとかtwisted使った解答があって参考になった。というかtwistedは興味があるけどよくわからん。今度また改めて。で、thread使ったperlの解答がなかったので少し考えてみた。初めてのthreadプログラミング。

use strict;
use warnings;
use Socket;
use threads;
use Thread::Queue;

my $DataQueue = Thread::Queue->new();
my $thr1 = threads->create(\&getaddress);
my $thr2 = threads->create(\&getaddress);
my $thr3 = threads->create(\&getaddress);
my $thr4 = threads->create(\&getaddress);

while(<DATA>){
  $DataQueue->enqueue($_);
}
$DataQueue->enqueue(undef);
$DataQueue->enqueue(undef);
$DataQueue->enqueue(undef);
$DataQueue->enqueue(undef);
$thr1->join();
$thr2->join();
$thr3->join();
$thr4->join();

sub getaddress {
  while(my $DataElement = $DataQueue->dequeue()){
    my ($address) =  gethostbyaddr(inet_aton($DataElement),AF_INET);
    print "$address\n" if $address;
  }
}
__DATA__
74.6.16.244
203.104.98.219
219.111.208.65

ログの順次読み取りはThread::Queueをつかってキューに突っ込みつつそれぞれのスレッドがdequeueをしながら必要なデータをとってくようにすればよさげだけど、終了のさせ方がいまいちアレ。これだとスレッド生成の数だけundefをqueueに突っ込まないと終わらないですよな。

あとキャッシュを共有化してDNSサーバの負荷を軽減させないといけない。ロックかけないといけないのかな。perlthrtutあたりをじっくり読む必要があるな。

ProductName WEB+DB PRESS Vol.42
相馬 純平
技術評論社 / ?円 ( 2007-12-22 )


WEB+DB PressのPerlスレッドプログラミングのところもかなり参考にした。というかこの号は色々読みどころが多くて好きだ。

はんだー x はんだー

近所のホームセンターでハンダーライセンスゲット。

はんだごて買ってきた。あとワニ口クリップの小さいやつ。

しかし、フルカラーのLEDは売ってなかった。単色じゃなくてフルカラーのが欲しいのよ。

フルハウスを見はじめた

英語が鬼門だなぁと長いこと思ってたのだけど、これじゃいかんなと、最近まじめに取り組んでる。

で最近U隊長がフルハウスをみるんやとか言い出して、DVDを買った。

ProductName フルハウス -ファースト・シーズン- コレクターズ・ボックス [DVD]

ワーナー・ホーム・ビデオ / 6243円 ( 2005-08-26 )


で、これがまた笑いどころが分からないことが多いのでガヤがもどかしい。