2006年6月アーカイブ

extractor20060630-2.jpg

extractor20060630.jpg

拙作のExtractorlivedoor Clipに対応させました。使い方は今までと変わらず、同じ操作をするだけでlivedoor Clipのコメントが表示できるようになっています。

表題のモジュールを書きました。
うそ、パクりました。にぽたん研究所から。

先に使い方から説明すると、まず「http://api.del.icio.us/v1/posts/all?」ここにアクセスすると、自分が今までにdel.icio.usへポストしたブックマークをすべて取得できるので、それを取得しておきます。ベーシック認証がありますが、それは自分のdel.icio.usのアカウントを入力してください。

次に下記のスクリプトを用意して、先程del.icio.usから取得したブックマークのデータ(all.xmlというファイル名にしておいてください)と同じディレクトリに置いたら、あとはスクリプトを実行するだけです。もちろんあとで紹介するWWW::SyncSBS::D2Lも用意する必要があります。
#!/usr/local/bin/perl

use strict;
use WWW::SyncSBS::D2L;

my $d2l = WWW::SyncSBS::D2L->new;
$d2l->livedoor_id('your_ld_id');
$d2l->livedoor_pw('your_ld_pw');
$d2l->sync;

たまには技術ネタ以外の事を書いてみようかと思います。

先日ネタフルでデジカメなトイカメラ「Xiaostyle(シャオスタイル)」という記事を見たのですが、そのカメラが思いのほか安いし、ノスタルジックでいい感じの写真が撮れるということで、思わずその数分後にはそのトイデジカメ「Xiaostyle」を買っていました。

数日間使った感想ですが、

  • 設定を誤ると変な色になる
  • まぁ、その写真も味になったりしますけどね。
  • 液晶が小さい
  • 液晶が小さいので、その場で画像がどんな感じなのかがよくわかりません。あとで見て、「ぼやけてるよ!」とかあったりします。逆に、「あ、いいかんじ」ってのもありますが。
  • 電池の消耗が激しい
  • これはけっこう問題です。いつも予備の電池を持っています。
  • ボタン動作が鈍い
  • シャッターボタンは鈍くないのですが、その他のボタンの反応がちょっと鈍いです。まぁトイカメラなので我慢がまん…。

などの不満点はありますが、撮れた写真に関してはなかなか満足してます。トイカメラという枠を越える写真が撮れる能力を秘めているんじゃないかと思います。

ということでパシャパシャいっぱい撮ってみた中の数枚をご紹介します。
自分は、技術的なことはよくわからないのですが、それなりな感じで撮れたので結構嬉しかったりします。

IMAG7626

IMAG7627

IMAG7696

宮川さんがすでにPlaggerを使ってやっていますが、ちょっと前に話題になった MacBook などの衝撃を感知してなにかをする SmackBook のようなことが ThinkPad でもできるということで、自分もためしてみました。

やったのは ThinkPad を傾けると Firefox のウィンドウをがそちらに動くというもの。(Firefoxのウィンドウ限定です…)



そして、これを動作させているのは Perl で、、はなくて Ruby です。なんとなくRubyで書いてみました。
Rubyのレベルがしょぼいのは気にしないでください…。

作成にあたり、こちらにあるプログラムを参考にさせて頂きました。
この方法の最終結論はこちら

仕事で、あるドメインに配送するメールだけ/dev/nullとかにリダイレクトする(要は闇に葬る)という要件があって、その方法を探していました。

SMTPサーバに送る前にプログラムでハジけってはなしなのですが、今回はSMTPサーバに送ってしまった後でリモート配送するときにハジきたいということで、いろいろ調べてみたのですが、qmailだけで解決する最適なソリューションがみつかりませんでした。

ということで下記のPerlで作ったダミーのSMTPサーバを立ち上げて、smtproutesに「example.com:localhost:26」と書いて、ダミーSMTPサーバに流すようにしました。

qmailだけで解決する方法を知ってる方がいたら教えてください!
use strict;
use Net::SMTP::Server;
use Net::SMTP::Server::Client;
use Carp;

my $server = new Net::SMTP::Server('localhost', 26) ||
    croak("Unable to handle client connection: $!\n");

while(my $conn = $server->accept()) {
    my $client = new Net::SMTP::Server::Client($conn) ||
        Carp::croak("Unable to handle client connection: $!\n");
    $client->process;
}
追記(Tue Jun 13 15:13:13 2006)
id:hideokiさんから、localsでローカル配送にしてvirtualdomainsでvpopmailに渡せばいけるんじゃね?ということ。なるほど。vpopmailあればそれでいけそう。あと、もしかしたらvpopmailがなくてもいけそうな気がしないでもない。

追記(Tue Jun 13 15:20:43 2006)
vpopmailの解決方法でできました。おぉ。
今vpopmailなしで、qmail単体でできないか試しちう。

最終結論(Tue Jun 13 15:26:17 2006)
1. localsに葬りたいドメイン(example.comとか)を書く
2. virtualdomainsに「example.com:foo」と記述しておく
3. /var/qmail/alias/.qmail-foo-default に # とだけ記述しておく

これだけでやりたいことできました。最初のダミーSMTPサーバのプログラムなんていらねー!
Perlでなんでも解決しようとする悪いクセだな…。

secondlifeさんがhttp://subtech.g.hatena.ne.jp/secondlife/20060607/1149652287で紹介されている「rlwrap」がチョー便利です。なにが便利ってperlとかコマンドをコマンドラインで 使ったりするときに、ヒストリが使えたりコンプリートできたり要するにコマンドラインみたいな操作ができてしまうという代物です。

ちょっ、なにこの便利さ!

といいつつも perl に関しては perlsh とかを使ってたりするので、その他で使おうかと思います。


たまたま先週末、いつも使っているThinkPad X40を会社に忘れて帰宅してしまったんです。
で困ったのがメール。普段はX40のBeckyで読んでいるため、週末メールが読めない。。。緊急のメールとかあったら困るなぁと小一時間考えて、どうせならなんかメーラを試してみようかと思いました。

今までメーラはいろいろ試しました。WinではBeckyだけですが、Unix環境では、mh-e、mew、wonderlust、muttなどなど。でもせっかくなので他のが使ってみたい。んでちょっと前に知った morq というメーラを試すことにしてみた。まぁ週末だけだし、さくっとインストールできるやつを試そうと。
morqはRastのプロジェクトの副産物みたいなものらしいです。コアはRubyでできていて、それをemacsで使用するための側を作っただけのシンプルなやつです。んで、特徴はメールをすべてRastに通して検索ベースでメールを読むというもの。なのでメーラー自体にはフォルダという観念がない!すげー。必要ならなんでも検索である。
とりあえずインストールはRubyとRastとemacsとあとbogofilterがインストールされてる環境であればそんな難しくないと思います。
それと使ってて動作が変だなということで修正したソースは下記。
  • morq.el
  • morq.el では、 hscroll という emacs のパッケージを使っているのですが、それは emacs のバージョン22系だと obsolete されているためエラる。ということで、その部分をコメントアウト(morq.elの179行目)。
  • morq/list.rb
  • 最近スパムとかで2038年より先の日付とか送ってくるアホなメールとかあったりしますよね。morqで一覧を表示するときにそれらの日付をパースするときにコケるので、それを修正。Ruby の Time.at(epoch) で 2038-01-19 03:14:07以降が扱えなくなってるらしいので list.rb の76行目あたりを下記のように変更。ちなみに2038年以降のepochをパースしてくれるRubyのモジュールを見付けられず…。なんかないの!?
          if elem[4] <= 2147483647
            time = Time.at(elem[4])
          else
            time = Time.at(2147483647)
          end
これだけやったら、あとは fetchmail でメールを取ってきて、procmail でフィルタで Rast にメールを渡してあげるだけでいいみたい。ちなみに procmail でフィルタするには .procmailrc を下記のようにすればいい。
PATH=/bin:/usr/bin:/usr/local/bin
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/.default/
LOGFILE=$MAILDIR/procmaillog
LOCKFILE=$HOME/.lockmail

:0 fw
| morq inc
かなりはしょって説明しているのでわかる人しかわからなそうな気がしてきた…ww
ここまでできればあとは使うだけ。使ってみての正直な感想は、自分の今いる会社だと実用にはちょっと無理があるかも…。というのもうちは一日に来るメール数がハンパない数なので自分が必要としているMLの名前も凄い数。なのでそれを暗記しといて毎回検索ってのは無理があるかな…と。でもそんなに1日のメールの量が多くないよって人だったらばけっこう使い易いかもね。

検索の速度ですが、Rast だけあって結構早いです。日本語での検索も問題なし。ヘッダーや本文あらゆるもので絞り込みが可能です。ということで週末だけ使ってみましたが、緊急用やメール量の少ない人には○かなといった感じです。

もうちょっとIFの機能を増やしてくれたりするともっと使う人増えるんじゃないかと思います(自分で変更してパッチ送れという話は置いておいて…)。たとえば複数選択して一気になにかを処理とか(あるのかな?。

検索

広告

OpenID対応しています OpenIDについて
Powered by Movable Type 4.22-ja