Perl

DotCloudを少しだけ使ってみた

気になったのでDotCloudでPerlを使ってみました。 今回はwebframeworkのMojoliciousを動かすことを目標としました。 実はほとんどここに書いてあるのですが、仕様変更なのか使えないコマンドがあったのでメモ代わりに書いておきます。 1. まずはDotCloudに登…

YAPC::Asia TOKYO 2011 に参加してきた

少し前になりますが、YAPC::Asiaに参加してきました! 噂に聞くすごい人達(miyagawaさんやyusukebeさんなど)を遠目に見てきました。 みんなプレゼンがうますぎてかっこよかったです。こういうお祭りは最新の技術事情が分かってとてもためになります。四国で…

香川大学図書館モジュール - Kadai::Library

ゆっくり訳の分からないものを作ってます。 今日は香川大学図書館のページをPerlから扱いやすくするために、 Kadai::Libraryというモジュールを作っています。 まだ全然機能がないので、 徐々に便利にしていきたいと思います! いまできること 自分の借りて…

Mojolicious::LiteとWebSocket

最近はMojolicious::Liteで遊んでいます。 その中で以下の記事を発見したので試してみました。 Mojolicious::Lite で WebSocket を使ったチャットを作る - naoyaのはてなダイアリー @DeveloperNews.com.ar でもそのままでは動かず、 Mojoliciousの仕様変更で…

Crypt::SSLeayのインストールエラー

数日前にMacの電源ボタンが水没し、電源が入らなくなりました...これはたぶん「パソコンを大事にしろ」ということだと思うので、 当分はLet's Noteで作業をすることになりそうです。 ということで本題に。PerlのNet::Twitter::Liteを使おうとして、依存モジ…

モジュールのバージョン確認

Perlのモジュールのバージョン確認の仕方(Terminalで) perl -MHTTP::Message -e'print $HTTP::Message::VERSION' HTTP::Messageのバージョンが表示されます。 ref: モジュールのバージョン確認方法

Instagram API

http://distillery.s3.amazonaws.com/static/home/images/instagramTitle.png:image:w400 Instagram APIを利用して画像を取得してみました。 通常はOAuth認証を行うみたいですが、 人気画像の取得は認証なしでもいけるみたい。 Instagram API Endpoints • In…

HTML::Templateでutf-8テンプレートの文字化け

少しハマったので記録しておきます。 PerlのHTML::Templateを使って、 utf-8のファイルを読み込んで表示すると、 日本語が文字化けしました。 以下の記述だと文字化けを起こします。 my $tmpl = HTML::Template->new(filename => $filename); 解決策としては…

OAuth::Lite::Consumerのget_request_token時にエラー

OAuth::Lite::Consumerを使っている時に、 consumer->get_request_token(); ができずに、 Can't locate object method "decoded_content" via package "HTTP::Headers" at (eval 14) line 1.が出た場合は、 HTTP::Messageを最新版に入れ替えるとエラーがでな…

Sign in with Twitter を実装する

最近、ユーザー登録とログインを管理するのが面倒だったりするので、 いっそ、Twitterの情報を利用すればいいのではないかと実験しました。 今回は依存のかなり多い、Net::Twitterは使わずに、 OAuth::Lite::Consumerを使う事にしました。 仕組みとしては下…

Cache::File で簡単キャッシュ

久しぶりに技術系の記事です。Cache::FileというPerlモジュールについて書きたいと思います。 よく、以下のやりとりの場に遭遇します。 「速くするためには?」 「キャッシュを使います。」 でも、実際、いまいち分かってなかったので、 モジュールを使って…

YouTubeで動画を検索 (gdata編)

YouTubeで検索して動画のアドレスを得るためには、 APIキーが必要だと思っていたのですが、あっさりできました。search_youtube.pl: #!/usr/bin/env perl use strict; use LWP::Simple; use XML::Simple; use URI::Escape; use Data::Dumper; my $word = shi…

Web::Scraper - めざましテレビ・今日の占い

めざましテレビ占いをスクレイプするプログラムを書いた。 #!/usr/bin/env perl use strict; use Web::Scraper; use URI; use Data::Dumper; use utf8; use Encode; my $baseurl = "http://www.fujitv.co.jp/meza/uranai/index.html"; my $scraper = scraper…

Image::Magick

久しぶりに Perl で Image::Magick をしました。いつも日本語フォントが残念なのですが、 昨日読んだブログにホットなエントリーがあったので使いました。 ベーシックで高品質で完全にフリーな日本語フォント - yayuguのにっき Script: #!/usr/bin/env perl …

Net::Amazon

Web::ScrapperでやっていたAmazonのクロールを置き替えることにした。 やってみると意外と簡単でサクサク動いてくれました。以下、ISBN-10で検索のサンプル #!/usr/bin/env perl use strict; use utf8; use Encode; use Net::Amazon; use Data::Dumper; # am…

ハッシュの値が大きい順に出力

久しぶりに、プログラミングをやるといたることろでつまずきます。 やっぱり、継続は大事ですね。 ということで、 ハッシュの値が大きい順に出力する方法をメモ。 for my $key (sort{ $hash{$b} <=> $hash{$a} } keys %hash){ print $key.":".$hash{$key}."\…

cpanm

cpanm がすごすぎます。 perlモジュールのinstallにcpanmを使う|perl|@OMAKASE 個人的に使う部分を抜粋すると... $ mkdir $HOME/perl $ mkdir bin && cd ~/bin $ wget http://xrl.us/cpanm $ chmod +x cpanm $ cpanm local::lib $ cpanm --self-upgrade.zs…

YAML

とりあえず、YAML::Tiny(YAMLの軽量版)。config.yaml Kagawa: Udon: 200 Takamatsu: 200 University: Kagawa: 100 Tiba: 300yaml-parse.pl #!/usr/bin/env perl use strict; use YAML::Tiny; use Data::Dumper; my $readfile = "config.yaml"; my $writefile…

flush

バッファをフラッシュ!! $l = 1;

文字コード

昨日、ナルホドエコを立ち上げたのですが、 メールで文字化けが多数... 問題は、エンコード と charset がでした。 2度と間違えないようにメモ。 use Encode; use MIME::Entity; # subject の文字コードを「utf-8」から「jis」へ Encode::from_to($subject,'…

Twitter::つぶやき

PerlからTwitterでつぶやいてみた。普段は Net::Twitter を使うのですが、 依存関係がすごいので、WWW::Mechanize だけを使ってやりました。 (香川大学図書館の情報をつぶやく、@kadai_lib を作りました。)下は面倒につぶやけるperlプログラムです。(メモ代…

LWP::UserAgent

忘れないようにメモUserAgentを変更するという単純なメモ。 #!/usr/bin/env perl use strict; use LWP::UserAgent; my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->agent("Mozilla"); sub main { my $url = "http://ja.wikipedia.org/"; my $req = H…

HTML::Template

Perlでhtmlを吐き出すのが汚ないと今日この頃。そろそろHTML::Templateとかと使いはじめると意外と使いやすかったので、メモ。 test.tmpl <html> <head> <title>Template</title> </head> <body> <b>I'm <TMPL_VAR NAME=MSG>.</b> </body> </html>test.pl #!/usr/bin/env perl use strict; use HTML::Template; my $template = HTML::Template-…