2008-01-01から1年間の記事一覧

今日出会ったCPANモジュール

Readonly - Facility for creating read-only scalars, arrays, hashes. Readonly::XS - Companion module for Readonly.pm, to speed up read-only scalar variables. Perlで定数を使用する時は,まず上記2つのモジュールをCPANからインストールする。 実際…

ニコニコ動画を「ニコRSS」 + 「Plagger」で料理

先日ニコニコ動画もPlaggerで料理という記事を書きましたが,解決できました! まず,ニコRSSにアクセスし,「検索のRSS作成」の入力の所に, 【FF6】20代後半の叔母さんが頑張ります【実況プレイ】 と入力。それから「RSS作成」ボタンを押す。ワクワクしな…

今日出会ったCPANモジュール

CPAN::Mini - create a minimal mirror of CPAN $ du -hs ~/.minicpan 926M .minicpan/ 参考サイト CPAN::Miniの設定などなど use CPAN::Mini; CPAN::Mini で CPAN のミラーをローカルに acotieさんの記事でも触れられているが cpan> o conf prerequisites_p…

ニコニコ動画もPlaggerで料理

こんな事できたらいいなと妄想中。 ある特定の語句を動画のタイトルに含んでいる動画の情報を収集 ↓ それらの情報からフィードを生成 ↓ フィードが更新されていればGmailへ通知 最近「【FF6】20代後半の叔母さんが頑張ります【実況プレイ】」にハマってまし…

ハッシュや配列の命名規則 (こんなのもあるよ編)

名前の最後に前置詞(of,for,from 等)を追加すると,ハッシュや配列へのアクセスが理解しやすくなるそうな。 (by Perl Best Practices) → [ _ ]* サンプルコード my %title_of; my %ISBN_for; my @sales_from; while (my $month = prompt -menu => $MONTH_…

最近気になるMacBook Pro

PC

右を見ても左を見てもリンゴだらけ

プログラマなら思わずニンマリの名言

コードを書くときには、あなたのプログラムを保守する誰かが、 あなたの居場所を知っている凶暴な変質者であると心得よ 出典:Perlベストプラクティス 思わず一人ニンマリしてしまいました。Perlベストプラクティス作者: Damian Conway,クイープ出版社/メー…

DNBKなコードレイアウト それコードフォーマッタ

忘れそうなのでメモ。Perlの有名なコードフォーマッタ perltidyPerl Best Practices の推奨コードレイアウトにフォーマットするには,.perltidyrcファイルに以下の内容を書けばいいらしい。 -l=78 # Max line width is 78 cols -i=4 # Indent level is 4 col…

なんか耳に残るTrance Music

動画張りまくるとページが重くなるので嫌なんだけど,リンク切れするとイラットするし... でも×4そんなの関係ねぇCOOL!

【FF6】20代後半の叔母さんが頑張ります【実況プレイ】

最近これにハマってます。なんなんだこの癒されるというか落ち着く声は。最近はメッキリゲームはしていないが,FFシリーズは昔ハマってやってたなぁ。 特にFF6は好きだな。名曲と名ストーリーだよね。そんな懐かしさに浸りながら,新たな癒しの声と合わせて…

BLOG HACKS買っちゃった!

我が憧れの宮川 達彦氏が執筆された名著。 やっと手に入れたぞ〜!Blog Hacks ―プロが教えるテクニック&ツール100選作者: 宮川達彦,伊藤直也出版社/メーカー: オライリー・ジャパン発売日: 2004/08/07メディア: 単行本購入: 6人 クリック: 348回この商品を含…

フィードを配信していないサイト それPla

以前書いた日記で WizardBibleのサイトのRSSを作成するスクリプトを載せましたが,Plaggerで簡単に出来るんですね。Plaggerで 1. Wizard Bibleのフィードを生成 2. Gmailに送信 を行う為の設定ファイルです。 # base.yaml global: plugin_path: - /path/to/P…

Plagger Source Reading Point

現在,少しずつながらもPlaggerのソースを追っている。理解をもう一歩先に進めるには以下2点について仕組みを理解する必要がある事が理解出来た。 1. Hook処理 2. Rule処理 理解できたらまとめるつもり。Plaggerのソースを読んで理解できたら,おもしろいプ…

今日出会ったCPANモジュール

Dumpvalue - provides screen dump of Perl data. 今まで,ソースを読むときは Data::Dumper を使ってたけど,これも便利そう。 #!/usr/bin/perl use strict; use warnings; use Dumpvalue; my $d = Dumpvalue->new; my $h = { first_name => 'Tim', last_na…

Plagger: Pluginの有効/無効を設定

以下のように「disable」の値によって簡単に切り替えられる。 bloglines: - module: Subscription::Bloglines config: username: username password: password mark_read: 1 fetch_meta: 1 disable: 1 # 「1」で無効。「0」で有効。

Plagger: プラグインのテンプレート

package Plagger::Plugin::Foo::Bar::Baz; # パッケージ名は Plagger::Plugin::〜 とする use strict; # これ常識 use base qw( Plagger::Plugin ); # プラグインは Plagger::Plugin を継承する # register()メソッドは必ず必要 # Plaggerクラスのload_plugi…

Plagger: lib/Plagger/ConfigLoader.pm (Revision 1676)

以下のバグは2008/11/11にotsuneさんによりFixされたので,ご注意下さい。 バグだと思われる該当行は68行目。http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/ConfigLoader.pm#L68 $self->error("no such recipe to $_") unless $config->{defin…

今日出会ったCPANモジュール

File::HomeDir - Find your home and other directories, on any platform use File::HomeDir; $home = File::HomeDir->my_home; $desktop = File::HomeDir->my_desktop; $docs = File::HomeDir->my_documents; $music = File::HomeDir->my_music; $pics = F…

Plagger:YAMLの色々な書き方

Bloglinesの更新フィードをGmailへ送信する。以下は,得に有用な書き方という訳ではなく,Plaggerではこんな書き方もできるんだねという豆知識程度に捉えて下さい。 # base.yaml global: plugin_path: - /path/to/Plugin assets_path: /path/to/assets timez…

caller関数のメモ

#!/usr/bin/perl use strict; use warnings; package Foo; use Perl6::Say; sub foo { my ($pkg, $file, $line); $pkg = caller; say $pkg; ($pkg, $file, $line) = caller; say $pkg; say $file; say $line; } package Bar; Foo::foo(); # <実行結果> # $ p…

Plagger:ログ出力レベル

sub log { my($self, $level, $msg, %opt) = @_; return unless $self->should_log($level); ・・・ } my %levels = ( debug => 0, warn => 1, info => 2, error => 3, ); sub should_log { my($self, $level) = @_; # $level: 出力しようとしているログ出力…

Ubuntu 8.04から8.10へのアップグレード方法

Ubuntu 8.04はLTSだし,まだ8.10にアップグレードはしないけど,一応メモ。Ubuntu 8.10へのアップグレード手順と注意事項メモ: % cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=8.04 DISTRIB_CODENAME=hardy DISTRIB_DESCRIPTION="Ubuntu 8.04.1"

今日出会ったCPANモジュール

Scalar::Util - A selection of general-utility scalar subroutines Term::Encoding - Detect encoding of the current terminal

packageディレクティブのスコープ

package Foo; print __PACKAGE__ . "\n"; { package Bar; print __PACKAGE__ . "\n"; } print __PACKAGE__ . "\n"; # <実行結果> # ふむふむ,ブロックで package のスコープは変わるんだな。 # $ perl ./try.pl # Foo # Bar # Foo

use strict; と $a と $b

前にもハマって,今回もまた足を取られたのでメモ。昨日から以下のコードの結果に頭を悩ませていた。 #!/usr/bin/perl use strict; $a = 100; print "$a\n"; # <実行結果> # $ perl try.pl # 100 # あれ!? use strict; してるのに「Global symbol "$a" req…

コマンドライン行のQuote

zsh

以下のURLをクウォートしたい場合,URLを入力してから「ESC+'」もしくは「Ctr+[+'」を入力する。 すると,URLがクウォートされる。すばらしきかなzsh! $ http://www.youtube.com/watch?v=wrYP11gJ3X4 $ 'http://www.youtube.com/watch?v=wrYP11gJ3X4'ちなみ…

evalブロックの返り値

undefが返るケース ($@にエラーメッセージがセットされる) ブロック内でエラーが発生した (構文エラー or 実行時エラー) dieステートメントを実行した 上記以外の場合は,ブロック内で最後に評価した式の値が返る See Also: eval

Gmail再入門

Gmail 再入門(1) - 全てのメールをGmailに集約する Gmail 再入門(2) - ラベルを活用したメール引き出し術 Gmail 再入門(3) - ファイル管理もGmailで

YAML用vimの設定

Plaggerの設定ファイルはYAML形式で書く。YAMLファイルでは,タブは使えず,一般的にスペース2個でインデントして構造を表すらしい。普段vimの設定で,expandtabしているのでタブはスペースに変換されるけど,常は4文字分インデントするように設定しているの…

What time? What happen?

use がしていること # use strict; は内部的に以下のように展開される BEGIN { require 'strict' strict->import(); } BEGIN節, CHECK節 #!/usr/bin/perl use strict; use warnings; use Perl6::Say; say "When am I displayed"; BEGIN { say 1; } CHECK { s…