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

RFC822形式の日付形式の解析

RSSの更新日時の形式として ISO8601と RFC822形式が見られますが、 後者の方の解析がよくわからなかったので調べてみた。 CPANを探したところいくつかモジュールが見つかったんで とりあえず DateTime名前空間にある DateTime::Format::Mailと いうモジュー…

Google APIで天気を取得

Google API から天気の取得 - みずぴー日記 を見て Perlで書いて みました。 #!/usr/bin/env perl use strict; use warnings; use XML::LibXML; use LWP::Simple; binmode STDOUT, ":utf8"; my $region = shift @ARGV or die "usage google_weather.pl regio…

RSS, Atomの URLを探す

RSS, ATOMを探すのを自前で書いていたけど、Feed::Findという モジュールがありました。RSS、Atom対応しているサイトが <link rel='alternate'... />というタグだったらいいんですけど、そうじゃないサイトもあるので 自前で書いてました。ソースを確認したところ、結局自前で書いている</link>…

WebScraperのフィルター機能

Web::Scraperのソースコードを見ていると、processの引数に無名配列を 与えると、得られた値にフィルターに通すことができることがわかった。 perldocにも書いていないっぽいので自分で書いてみた。 Yahooの AV女優のブログカテゴリから 名前と URLを取得す…

Google Suggestでどんな言葉が一緒に検索されるかを調べる

Perlでそんなことができるものを作ってみた。 #!/usr/bin/env perl use strict; use warnings; use URI; use LWP::UserAgent; use JSON qw(decode_json); use Encode; my $query = shift @ARGV or die "Usage suggest.pl query\n"; my $uri = URI->new("http…

List::Util shuffle

配列をシャッフルしたいけど、どうするんだっけってよくなるので、 自分のためにメモ。 List::Utilパッケージに shuffleという関数があって それをリストに対して適用すればいいだけど、 #!/usr/bin/env perl use strict; use warnings; use List::Util qw(s…

Higher order perl 1_2

Higer order perl 1_2は階乗に関するお話。 factorialで再帰の例題でよく使われる例ですね。 人によるとこんなに再帰で使うべきでないから逆に 教えるなといいますよね。でもまあ勉強なんで。 比較のコードを書いてみた。 #!/usr/bin/env perl use strict; u…

Higer order perl 1_3

1_3。ハノイの塔。いかにも再帰な問題ですね。 初めて学生の授業でやったときは意味不明でしたね。 大学院でプログラミングの授業で教えるお手伝いをした ときに意味が完全に理解できました。再帰のすごさを知る いい問題だと思います。 Mooseで書いてみたが…

Higher order perl 1.1

Higher order perlという本を買いました。他の本を読んでいる途中なので ちら見した程度ですが、とりあえず 1.1を読みました。 10進数を2進数にするというものですが、その関数が再帰関数であるという ことが特徴的なんですかね。 で、比較のコードを書きた…

Carbon Emacsを色反転して起動

Macの /Applicationフォルダに入っているアプリを起動オプション付きで 実行する方法がわからなかった。基本的にいらないんだけど、Emacsに関しては reverse(rv, r, reverse video)オプションを有効にして起動したかった。 で、color-themeを使って適当に調…

Mac OS X Snow Leopardでの QEMUの構築

なんとなく Macで QEMUが使いたいな〜と思って portで調べたら i386と PPCしか説明に出てこなくて(実際は他のアーキテクチャもあるの かもしれないけど), それならビルドするかってことでビルドしてみた。 Linuxではビルド経験があって普通に configure, mak…