knagano AT d.hatena

 

2009-03-24

[][]Mixi::Scraper, Plagger::Plugin::CustomFeed::MixiScraper

メッセージの「送信済み」(自分が送ったものの控え) の取得に対応した。

「下書き」の取得は僕は使っていないから対応していない。

charsbar さんにダメ出しを頂いた。結局は trunk に採用されたのだが、以下の code はいずれ refactoring される可能性が高い。


Mixi::Scraper - http://coderepos.org/share/changeset/31485

12:33 (codereposbot) CodeRepos Timeline: [31485] lang/perl/WWW-Mixi-Scraper: list_message parse: 'box' support.  like $mixi->list_message->parse(box => 'outbox'); (knagano) - http://coderepos.org/share/changeset/31485

Plagger::Plugin::CustomFeed::MixiScraper - http://github.com/miyagawa/plagger/commit/a5f90a813e35afba860decfab63017827d168a43

CustomFeed::MixiScraper: new feed_type: MessageOutbox.

使い方: PlaggerYAML にて、module: CustomFeed::MixiScraperconfig: で、feed_type:MessageOutbox を追加する

plugins:
  - module: CustomFeed::MixiScraper
    config:
      email: knagano@example.com
      password: base64::foobarbaz
      fetch_body: 1
      fetch_comment: 1
      show_icon: 1
      feed_type:
        - MessageOutbox
        [他にも Message とか、取得したいフィードを列挙する。省略。]

社内メールなどではない通常の(私用の、アドレスを公開している)メールは、数年前からすっかり「信用できない」メディアになった。と思う。送っても読まれない、届いていても気付かない。spam フィルタ(の false positive)のせいだ。だので代用品として携帯電話のメールや、もちろん通話や、インスタントメッセージ、それに、mixi のメッセージをよく使うようになった。こういう不便・不自由(・場合によっては高価)なメッセージングメディアに逆戻りせざるを得なくなったことを残念に思う。本当に残念に思う。

2009-03-20

[]Windows 2000Google Chrome 同梱の Gears を無効にする

黒翼猫氏の installer (404 Not Found | このページは存在しないか、すでに削除されています) を使わせていただき、サブ PC の Windows 2000 上で Google Chrome を使っています。至極快適です。

欠点が1つあって、この installer を使っても Chrome 同梱の Google Gears は動きません。それだけなら良いのですが、Chrome は、動きもしないくせに「おれ Gears できるよ」と各サイトに通知をします。しかも「このサイトでは常に Gears の使用を拒否する」も動かない(覚えておけない)ので、ユーザからのアクションなしに Gears の使用を開始しようと試みるサイト (もちろん代表は Remember The Milk) を開くと毎回、Gears しようぜのダイアログが出ます。うっとうしいです。

Chrome 同梱の Gears を完全無効化するには plug-in dll のファイル名を変更してやればいいです。

方法: %USERPROFILE%\Local Settings\Application Data\Google\Chrome\Application\<Chrome Version> を開き、gears.dll を gears.dll.DISABLED などと rename する。

2009-03-19

[]upstart

昔のエントリ DHCP ルータ - knagano AT d.hatena の、/etc/event.d/svscan の部分を更新した。

読めば 読むほど upstart は意味が分からない。将来的にやりたいこと (cron の代替までやらかすとかなんとか) と、UbuntuFedora で現状やれていること (sysvinit の単なる置き換え) が、乖離しすぎているからなのだと思う。

2009-03-18

[] my webapp.css for Google Notebook

/* https://wiki.mozilla.org/Prism/Styling */

/* Fx 本体で使っているのと同じ font 表示にしたい */
* {
  font-family: "MeiryoKe_PGothic", sans-serif !important;
  font-size: small !important;
}

/* browser extension を入れろとかわめくやつを消す */
td#gn0_0 { display:none !important; }

/* 文字修飾領域を消す (save は自動に頼る) */
/* div#gn3_2 { display:none !important; } */

/* 文字修飾領域の、フォント選択プルダウンを消す
   (この機能は使わないし、幅をとりすぎていて 1024x768 の laptop PC では文字修飾領域が2行になってしまう) */
div.tr-fontName { display:none !important; }

(追記2009/03/19) 「/* browser extension を入れろとかわめくやつを消す */」のところを更新、文字修飾領域について追加

[]vnStat - network traffic monitor for Linux

$ sudo vnstat -u -i 'eth0' ; sudo vnstat -u -i 'eth1'

5分(以上)待つ

$ vnstat

                     rx      /     tx      /    total    /  estimated
 eth0:
         today    346.45 MB  /  105.00 MB  /  451.45 MB  /     594 MB

 eth1:
         today    104.35 MB  /  342.49 MB  /  446.83 MB  /     589 MB

/etc/cron.d/vnstat が5分ごとに記録を取ろうと試みてくれていたのに、初期 DB を作っていなかったから (冒頭の vnstat -u) なんにもなっていなかった。1年半も無駄に動いた cron.d/vnstat がなんだか可哀想になりました、とさ。

2009-01-31

[]tcmalloc (of google-perftools) と Emacs

LIBS='-lpthread -ltcmalloc' ./configure した Emacs 22.3 は make の途中で dump (unexec) した後、初回の起動 (list-load-path-shadows) で SEGV する。そもそも dump 時に警告が出ている。

...
Dumping under names emacs and emacs-22.3.1
**************************************************
Warning: Your system has a gap between BSS and the
heap (1574748 byte).  This usually means that exec-shield
or something similar is in effect.  The dump may
fail because of this.  See the section about
exec-shield in etc/PROBLEMS for more information.
**************************************************
1038439 pure bytes used
./emacs -q -batch -f list-load-path-shadows
Fatal error (11)make[1]: *** [emacs] Segmentation fault

temacs まではちゃんとできている。src/temacs -nw -q とでもすればちゃんと起動できるし、編集などもできる。M-x tetris も動く。この状態から各種 elisp アプリを動かすのは面倒なので、そこまではやっていないが、ちゃんとやればたぶん動く。


続きを読む

2009-01-29

[]ファンレター

件名: 最近のご活動は?
日付: 2009年01月30日 04時06分
宛先: ホシヒコ (id:crossage, id:carolineknew)

突然のメッセージ失礼します。ホシヒコさんの mix のファンです。 
mix 作っていらしたあの頃からもう5年以上も経つのですね。早いものです。 
最近はニコニコ動画をちょっと覗けば mix が溢れかえっている時代です。 
それでもホシヒコさんの mix をかけているときが一番リラックスできます。 
最近はどうされていらっしゃるのですか? 少し前までは AA 職人としてご活躍でしたようですが... 
お仕事がお忙しいのでしょうか。よろしければ近況をお聞かせ下さい。 
それでは失礼します。

という mixi メッセージを送りました。

ホシヒコさんの mix →no title


追記: Muxtape に言及するの忘れた

[]Web::Scraper たのしいです & WWW::Mixi::Scraper の自動テスト

WWW::Mixi::Scraper の list_message (受信箱) が動かなくなっていたので、なおしました。→CodeRepos Changeset 29215 アクティヴな方々にとってはいちいち言うことでもないんでしょうが。

そういう経緯で今更ですが Web::Scraper ちゃんと触りました。たのしいです。perldoc と冨田さんの404 ? Page not foundを読んで遊びました。


ところで WWW::Mixi::Scraper にはステキな自動テストがついているのですが document が見あたりません。やり方を書きます。勝手に。

cp live_test_sample.yml live_test.yml して、live_test.yml の <id> とかなっているところを有効な値に書き換えてから perl ./get_sources.pl すると、現在の mixi の各ページが t_live/html に download されます。この状態で以下のコマンド(普通の make test の対象を t_live/*.t に変える)を実行すると、先ほど download しておいたページに対してざくざく test が動きます。

PERL_DL_NONLAZY=1 perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t_live/*.t

ところで

はてなダイアリーで文中で固定ピッチフォントを使うにはどう書けばいいの。古い HTML でいうところの code タグ相当のことがしたいのですけども。はてな記法一覧 - はてなダイアリーのヘルプを見てもわからない。

2009-01-26

[]Mixin で無理やりメソッドを生やす

古い DBIC を使わなければならなくて、__PACKAGE__->has_many(rel => ...); と書いたときの $obj->rel_rs が使えないのを、has_many を奪って無理やりメソッドを作って解決する

package Foo::VersionDownMixin;
use strict;
use DBIx::Class::Relationship;

sub import {
    my $callpkg = caller;
    no strict 'refs';
    no warnings 'redefine';
    *{"${callpkg}::has_many"} = sub {
        my $class = shift;
        my($rel) = @_;
        $class->DBIx::Class::Relationship::has_many(@_);
        no strict 'refs';
        no warnings 'redefine';
        *{"${class}::${rel}_rs"} = sub {
            scalar(shift->search_related($rel, @_));
        };
    };
}

1;

使う側(スキーマクラス)では単に use する

package Foo::Schema::Bar;

use strict;
use Foo::Schema::VersionDownMixin;

__PACKAGE__->belongs_to('baz'=>'Foo::Schema::Baz','baz_id');
...

[]CD

ピッツ・アー・ザ・ピッツ(25 ゴールド=レア=デブリス 1992-2000)

ピッツ・アー・ザ・ピッツ(25 ゴールド=レア=デブリス 1992-2000)

なんかいろいろすげくてさっきから涙止まらんまじで

無意味に2枚目3枚目を買いに行きたい気分です


I love NP

I love NP

あと Sonicberry Favour の fairy e.p. 聞いてる。abcdefg*record の通販で買ったものです。


カヒミ・カリィのミュージックパイロット (NHK の深夜ラジオ) → citrus → Sonic Coaster Pop, Plus-Tech Squeeze Boxエイプリルズとか capsule とか... (→ もとから詳しくないがもはやそもそも全然ついてけなくなった) ていう遍歴

2008-12-21

[]kn-disable-interactive-function

(defun kn-disable-interactive-function (funcname)
  (fset funcname (lambda (&optional ignored)
                   (interactive)
                   (message "disabled"))))

(kn-disable-interactive-function 'w3m) ;work hard

2008-11-25

citrus - Complete Discography 2009/1/21

http://www.amazon.co.jp/dp/B001J5XM5K

光速で予約した

ピッツ・アー・ザ・ピッツ(25 ゴールド=レア=デブリス 1992-2000)

ピッツ・アー・ザ・ピッツ(25 ゴールド=レア=デブリス 1992-2000)

こういう人たち→ citrus ディスコグラフィ 6年前の 2ch スレッドの過去ログ

2008-04-24

[]wl-summary-subject-func

Subject が滅茶苦茶なひでー spam が来ても Summary buffer がなるべく崩れないように。wl-set-string-width でも同じようなことをしている。

;; 末尾に width 1 足してから width 1 削ってみてうまく削れない時は
;; うまく表示できない文字があるものとする
(let ((w (string-width subj))
      (s (concat subj " ")))
  (if (not (= (string-width (truncate-string-to-width s w)) w))
      (setq subj wl-invalid-character-message)))