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 )


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

MeadowでECB

Weboo! Returns.のスナップショットをみてたら、なんじゃこりゃ便利そうだと思い調べたらECBというらしい。

しかもMeadowだとネットインストールできるし。

ECB

うーん快適そう。

かかかかかかーめー(死亡)

家にサウンドロップが幾つかあったので、Gainerから鳴らしてみるという。事前の調査で要は3Vにすればいいんでしょ?と軽い気持ちでチャレンジ。

今回分解されたのはこのカメハメ波。

1206255937

カバーをはずすと基盤。

1206255926

上の方にある基盤のショートをさせる位置で鳴る音が変わるらしい。これをGainerと対応付けてキーボードかなんかで制御してやるのがゴール。 が、ハンダとか工具がないので、とりあえずは、USBの電源から音が鳴るようにすればいい。Gainerの出力が5Vだから、200kの抵抗を間にかませばいいと思うんだけど丁度いいのがないから320kの抵抗かましてつないだら音がなったけどなんか変。

か か か かめ かめ

とか断続的に音は鳴るんだけど、、、

とかいいながらいじってたらそのうち音が鳴らなくなってしまった。

いろいろ調べたらコンデンサをかますらしいんだけど、よくわかりませぬ。ブックオフか図書館でもいって電子工作関係の本を漁る必要があるな。

あと、みのむしクリップとかもないと配線できなくて困るなぁ