2006-06-01から1ヶ月間の記事一覧

Subscription::LivedoorReader でコケると悲しい

出社して、さて前夜から溜った feed を読もうかな、と Plagger を走らせて。 未読 entry が 500 ほど溜った状態で Can't use string ("500 Server closed connection wit") as a HASH ref while "strict refs" in use at /home/fujiwara/devel/plagger/lib/P…

100までの素数 Perl6 / pugs 版

Perl6 (pugs) で動くようにしてみた。 #!/usr/bin/pugs my $max = @*ARGS.pop || 100; my @primes = (2); for (3..$max) -> $n { @primes.push($n) if @primes.before_incl:{ sqrt $n <= $_ }.all:{ $n % $_ }; } @primes.join(' ').say; sub all (@list, $t…

FedoreCore 5 に pugs インストール

FedoraにPugsをインストール - hide-k.net#blog を参考に。ghc は yum で 6.4.2 をインストール。 hs-plugins は http://www.haskell.org/fedora/ の RPM から、と思ったが FC5 用の RPM がまだないようだ。hs-plugins-0.9.10-4.20050922.src.rpm から hs-pl…

100までの素数 (キミならどう書く 2.0 - L.L. Ring)

http://ll.jus.or.jp/2006/blog/doukaku1/ http://d.hatena.ne.jp/t-akihito/20060625/1151227410 LL Ring のチケット発売今日からだ。買ってこなくちゃ。List::MoreUtils から all と before_incl を使って、リスト操作っぽく書いてみた。List::MoreUtils …

Filter::Eratosthenes

LLRing の締め切りは過ぎちゃったけど。Filter::Eratosthenes. entry.body に含まれる素数以外の数値を削除 (又は config で指定された文字列に置換) するフィルタ。誰かネタにしてたような…… package Plagger::Plugin::Filter::Eratosthenes; use strict; u…

CustomFeed::POP3 UIDL 対応ほか

CustomFeed::POP3 は、サーバにあるメールを全部ダウンロードして処理を行う。読んで消す場合は問題ないけど、サーバに残したい場合に困る。 全部取得してから Rule::Fresh, Rule::Deduped で対処してもいいけど、UIDL を見て余計な取得が起きないようにした…

rewrite_config bug

Changeset 1000 を目前にして睨みあいが続いている今日この頃ですが。 Plagger.pm の rewite_config で、書き換え前の値が正規表現のメタキャラクタを含んでいると誤動作するので patch. \Q \E で括るだけ。 --- lib/Plagger.pm (リビジョン 999) +++ lib/Pl…

Publish::AtomAPI

ひさしぶりに Plagger。XML::Atom::Client を使って、AtomAPI で entry を post する。既にあるかと思ったのだけど、まだないよね? (中身は Publish::HatenaBookmark ほぼそのまんま) しかしこれ、集めてきた entry を post しまくるわけだが…… SPAM blog 作…

改行を含んだJSON

Perl の JSON::Syckでデータに改行が含まれるオブジェクトを Dump すると、以下のような出力が得られる。 $ perl -de0 DB<1> use JSON::Syck DB<2> $data = { foo => "xxx\nyyy" } DB<3> p JSON::Syck::Dump($data) {"foo":"xxx\n\ yyy"}読みやすくするため…

pg_senna でエラーが

pg_senna の index を作成したテーブルに対して、SQL の PREPARE を使って UPDATE を掛けるとエラーになるようだ。 LOG: statement: EXECUTE <unnamed> [PREPARE: UPDATE entry SET read = $1 WHERE ( id = $2 )] ERROR: sen_index_upd() failed for key 7968 (code =</unnamed>…

pg_senna インストール

結構苦労したり…… FedoraCore 5 PostgreSQL-8.1.4 (FC5のRPM) Senna (senna-20060619.tar.gz) pg_senna - Postgres Binding For Sennaを参考に、しようと思ったらソースに Makefile が含まれていない。 Makefile.am と configure.ac があるので、これは auto…

GoogleEarth Linux版

先日出たβ版で Linux にも対応したので入れてみたら、画面ぐちゃぐちゃだ… (FedoraCore5)

Wheel

MacBookでは 2本指スクロール (タッチパッドを2本指でなぞるとマウスホイール相当の動きをする) がとても便利。 こうなるとデスクトップに付けている Space Saver II でもホームポジションから手を動かさないでホイールが使いたくなり…… そこらへんに転がっ…

patch for "Control Google Maps via MacBook"

Yappoさんの Control Google Maps via MacBook を早速自分の MacBook で動かしてみた。すばらしい。 斜め移動がちょっとガクガクする (一度に縦移動、横移動のみしかしない) ので、patch を書いてみました。 --- gmaps.pl.orig 2006-06-16 02:39:30.00000000…

雑感

やっぱり速い。一番実感したのが、Bit::Vector の make test にかかる時間。速い速い。とはいえ firefox を使っているだけだと、別に速いとは思わない。firefox のプロファイル。Linux(Vine-3.1/i386)で使っていたプロファイルディレクトリの中身を、rsync …

install Plagger

当然というか早速というか、Plagger を入れる。 引っかかったところ。 XML::Parser が expat を要求する 野良ビルドよりはパッケージシステムを使おうと、fink をインストール 何も考えないでバイナリパッケージを入れたら、PowerPC用のバイナリだった make …

MacBook買った

一番安いのだけど。 メモリは増設しないとだめなのは承知していたのだが、純正だと高いので適当に秋葉で買おう……と、PC2-5300(DDR2-667)を買うべきところで間違って PC2-4200(DDR2-533)を買ってしまう orz. PC2-5300とDDR2-533を思いっきり混同。まあダメ元…

hobbit再び

Hobbit / BigBrother の bb2.html を読むネタ。 http://subtech.g.hatena.ne.jp/miyagawa/20060611/1149963082 を読んで、CustomFeed を作らなくても何とかなりそうだったので。 # handle する手がかりが bb2.html という URL のみ、というのはちょっとアレ…

ちゃんぴおんらしいよ

輝け!全日本最強 CPAN Author 決定選手権 2006 - にぽたん研究所 http://app.blog.livedoor.jp/nipotan/tb.cgi/50523152 どう見ても規定打席不足です。本当に(ry 開幕戦で3打数3安打、それで首位打者! みたいなものですね。モジュール数を増やして来年も防…

Filter-EntryFullText/sixapart.pl

<meta name="generator"> が typepad / Movable Type のときだけ動くようになっている。他の sixapart-standard な HTML にも適用したいなあ。 [追記] r930で取り入れられました。 sub handle { my($self, $args) = @_; - $args->{content} =~ m!<meta name="generator" content="(?:http://www\.typepad\.com/|Movable Type.*?)" />!; + return 1 if $args->{content} …</meta></meta>

@shibuya.plのメールアカウント欲しい!

です。fujiwara@shibuya.pl で… [追記] いただきました! ありがとうございます。

Rule::Deduped::DBIC

エントリの重複チェックを行う Rule::Deduped のサブクラス。Store::DBIC で保存した entry から検索するもの。 Store::DBIC を愛用しているので、僭越ながら書いてみました。 - module: Filter::Rule rule: module: Deduped engine: DBIC - module: Store::…

slashdot.jp で EntryFullText が失敗するように

突然なんで? と思ったら… Firefox の Cookie を有効にしていた ログインして、ライトモードで読んでいた ため。ライトモードと普通のモードは HTML が違う、というオチ。 しかもライトモードだと切り出すヒントになるようなマークアップがないな… <H2>業界共通の</h2>…

to_plain_object 再考

もうちょっと整理。 Plagger::Thing に、以下のようにする。 use Scalar::Util qw( blessed ); sub _to_plain { my $val = shift; blessed $val && $val->can('to_plain_object') ? $val->to_plain_object : $val; } sub to_plain_object { my $self = shift…

Morkの文字コード

http://d.hatena.ne.jp/sfujiwara/20060604/1149445141 昨日の続き。 どうやら UTF-16 みたい。で、手元の Linux / Windows の Firefox だと LE (little endian) なんだけど、Mac OS X (mac mini) だと BE だ。これって環境依存だな… #!/usr/bin/perl use En…

Publish::JSON との関連で

miyagawaさんと先週ちょっと話してそのままになってた。 やはり、単に Plagger::Feed を丸ごと Dump するだけだと余計なオブジェクトが入ったりして、あまり嬉しくない。Feed, Entry, Enclosure あたりが to_plain_object のようなメソッドを実装して、bless…

CustomFeed::Mork頓挫

先週からほったらかしのネタ。 File::Mork で history.dat を読んで CustomFeed にする、というものだが。title のデコードがわからん。 例えば "YouTube - スプー、襲来 [SPOO ATTACK]" というタイトル。 Y$00o$00u$00T$00u$00b$00e$00 $00-$00 $00$B90$D70…

Schema::Pg 作りたい

やっぱりちゃんと Schema::Pg を作ろうと思い立ち、作業してみたらちょっと悩む。Schema/SQLite/*.pm の belongs_to, has_many で __PACKAGE__->belongs_to( feed => 'Plagger::Schema::SQLite::Feed' );こんな風に hard code してあるところはどうしよう? …

PlaggerLDRのバックエンドをPostgreSQLに

なんとなく PostgreSQL にしたくなった。 Schema::Pg を作る必要があるか? と思ったのだけど、SQLite のそのまんまでいける。 ただ entry.date が timestamp 型でないのが少々気持ち悪くはあるが。 $ createdb -E UTF_8 plagger $ echo .schema | sqlite3 pl…