plaggerでRule::Fresh

統計学関連なんでもありをPlaggerでGmailに送るようにしたのだが、うまくいかない。

日付しかパーズしてないのに毎日三回チェックしちゃだめジャン。

というわけで、時間もパーズするように書き換えたのだけどうま拾ってくれてないっぽい。

2006/10/30(Mon) 13:18
\d{4}/\d{2}/\d{2}\(\w{3}\) \d{2}:\d{2}

%Y/%m/%d(%a) %H:%M

これだとDateしか引っ張れない。DateTimeあたりで躓いてんのかなぁ、、、わからん。あとでちゃんと調べることにして取り合えずRule::Dedupedで重複チェックを。

あと、デバッグするのにPublish::CSVに出してたのだけど、こういう場合は普通どこに出力するのがよいのだろうか?

上等カレー本店

福島駅からちょっと歩いたところにある上等カレー本店。

上等カレー

カレーショップみたいな外観だけど、中に入ると和食の店みたいな店内でちょっとギャップに驚く。

上等カレー

トンカツカレーを注文。黄身が別盛りでついてくる。

トンカツカレー

甘いのに辛いという不思議な味わい。

とまとの里 信濃路

ラーメンデータベース経由で。

宝天麺というトマトラーメンを注文。

注文受けるとおもむろにトマトスープ具材その他を中華なべでいためはじめます。 酸味は意外にスープにあってた。具にはセロリとか白菜が入ってた。麺はストレートやや硬めでなかなか。
スープはあっさりしてるけどニンニクがやたら多いので注意。おばちゃんがひたすらニンニクむいてるだけのことはある。

なかなかうまい。

RB-338がフリーになってた

RB-338がフリーソフトになってたので、ダウンロードして遊んでます。とか思ったら1年も前の話なのね。いまさらだった。

「Rebirth RB-338」:本格テクノをフリーソフトで!

昔は3万とか4万とかしたよな(確か)

ところで、関係ないけどorgaのvividかっこよすぎ。そして明日から大阪です。

藤堂

行こうと思ってから三ヶ月ほど機会に恵まれなかったが、やっとめん処 藤堂に行ってきた。136よりは県道通ったほうが入りやすいかも。

藤堂

清澄の塩を注文。

清澄

スープの旨みというか甘みが感じられて、醤油より塩のほうが好きかも。個人的には毎度は醤油、藤堂は塩だと思う。U隊長はチャーシューを絶賛してたけど、僕はスープが凄いと思った。

あと、子供つれてたんで嫌がられるかナァと思ってたんだけど、店内広々としてるし、店員さんも凄く良かったので、時間とか考えれば子連れでもあまり気兼ねしなくていいのかも。

そういえば、喜八郎、毎度なんかも子供にフレンドリーだよな。

藤堂

belongs_toとhas_oneとmight_haveの関係

DBICのMLより

[Dbix-class] Difference between belongs_to and has_one

Belongs to is a child -> parent relationship Has one is a sibling <-> sibling relationship?

has_oneはちょっと違うんじゃないかと。

101号室より愛をこめてに詳しい解説があった。

家族の関係、核家族とか最近の4人家族のイメージだと

  • has_one,has_many
  • 親からみた子
  • might_have
  • 兄弟姉妹みたいな関係(いるかもしれんしいないかもしれん)
  • belongs_to
  • 子供からみた親の関係

ぐらいに捉えておけばいいのか。

統計学関連なんでもありをgmailで

最近、ANCOVAっておもろいじゃんって気付いた。こんなんは見つけたけど、もっとQSARの部分で使っている論文とかないのかな(コンビケム+ANCOVAみたいな)。
というわけで、統計も色々覚えないとなぁと統計学関連なんでもありなど眺めながら勉強してますが、やっぱメールで読むのは楽なのでCustomFeed::Config を使ってplagger+gmailで。

CustomFeed::ConfigはFilter::EntryFullTextみたいにYAMLを書けばいいので、便利ですな。で、初めてCustomFeed::Configをさわってみたのだけど、

  • リンクを辿ってbody抽出はFilter::EntryFullText
  • リンクを辿らないでbody抽出はCustomFeed::Config

こんな認識でいいのか?

CustomFeed::Config用のYAML

author: kzfm
match: http://aoki2.si.gunma-u.ac.jp/taygeta/statistics.cgi
extract: <table border=0 cellpadding=2><tr>.*?<b>(.*?)</b></font>.*?(\d+/\d+/\d+)
.*?<font color="#000000">No.(\d+)</font>.*?<font color="">(.*?)</font>
extract_capture: title date link body
extract_date_format: %y/%m/%d
extract_after_hook: $data->{title} =~ s/^Re: //;

Config YAML

plugins:
  - module: Subscription::Config
    config:
       feed:
         - url: http://aoki2.si.gunma-u.ac.jp/taygeta/statistics.cgi

  - module: CustomFeed::Config
  - module: Filter::BreakEntriesToFeed
    config:
      use_entry_title: 1

  - module: Filter::Rule
    rule:
      module: Fresh
      mtime:
        path: /tmp/toukeinanndemo.tmp
        autoupdate: 1

  - module: Publish::Gmail
    config:あとは一緒

これで、新着をgmailで読める。

タギングの実装方法に関して

ここ半年以上、pubmedに特化したdel.icio.usクローンをcatalystで作って運用している。個人的には重宝してるが、Catalyst覚えたての頃作ったので、コードが汚かったり、タギングのあたりに色々不満があったので最近また書き直してる。

書き直すモチベーション自体が、DBICを覚えたいという動機だったりするので、ほとんどスクラッチからっていう状態になってるが、pathinfoの再考できたりするのでこれはこれでいい感じ。

で、ナイスなタイミングでTags and search and DBIx::Classというエントリがでてたので、ちょっと参考にしようかと。

コメントで、Mysqlでの例が紹介されてたけど、 多分Tags: Database schemas のことでしょう。でも、これって単に正規化のレベルの話なんじゃ?

いま動いてるのはとりあえずブックマークサービスを用意したいという要求から始まっていたので、MySQLiciousみたいなタグをスペース区切りで一つのフィールドに押し込むようにしてたんだけど、やっぱ多対多っぽくちゃんと正規化(“Toxi” solutionみたいに)すべきかナァと。

でもこの場合、DBICって面倒じゃないんだろうか?deleteするときは一気に消せばいいだけだけど(cascadeってどうなるんだろうか?)、タグを消したり増やしたりする場合にはどういう感じに処理するんだろう?

MySQLicious みたいなテーブル構成だと何も考えずにアップデートすればいいだけだったのであんま考えなくて楽だったんだよね。まぁ、逆にタグの集計とか面倒なんだけど。

というわけで、そのうちちゃんと書いてみようと思った。

シロノセンダングサ

よく子供の頃、服にくっつけあいした謎の実はシロノセンダングサっていうらしい。まぁ、ど田舎だったからな。

シロノセンダングサ

はなと散歩していると、原っぱとか田んぼとか見ながら歩くので、子供の頃の記憶がふとよみがえったりする。

犬缶

そしてあいつは無防備すぎる。そろそろ二歳だ。

h2xsからModule::Starterに変えた

最近テストファーストの楽チンさがわかってきた気がしてテストから書き始めるのが楽しい今日この頃。

ProductName Perl Testing: A Developer's Notebook (Developers Notebook)
Ian Langworth
Oreilly & Associates Inc / ?円 ( 2005-08 )


いつもh2xs -AXnでモジュールを作成してたけど、なんとなくmodule-starterに変えようかと。

module-starterはh2xsと違ってboilerplateのテストが組み込まれているので、最初のmake testはいきなり失敗する。なんで、全OKを出すために、最初にPodのボイラープレートつぶしするし。その際、synopsisちゃんと考えながら、メソッドとかインターフェースとかとりあえずの形を念頭におけるのがいい。

最近のTDDの話も追っかけてて参考になった。Test::Baseも使おうと思った。