tetsunosukeのnotebook

tetsunosukeのメモです

perl

LDRのpinをdel.icio.usに投げるのを作ってみた

http://d.hatena.ne.jp/kidd-number5/20071205/1196831510の続き。作ってみた。苦戦したのがApiKeyを投げる部分。cookieのreader_sidを投げるとは。ポイントは以下。 公式なAPIではないので、認証をWWW::Mechanizeで対応 /api/pin/all はJSONで取得 /api/pin…

LDRのpinをdel.icio.usに投げる

最近pinの管理がだるくなってきたのでメモ。 ログインからやらないとダメ。 WWW::Mechanize使わないとダメ。 $res = $mech->get('http://reader.livedoor.com/reader/'); $mech->submit_form( form_name => 'loginForm', fields =>{ livedoor_id => '<id>', pass</id>…

毎回思うんだけど

install Bundle::CPANが今まで成功したことがない。

OSX に perl 環境構築しているのだけど

sudo cpan install LWPとかしてもうまくいかないのは何??su - してからrootで入れないとだめなのかな?

Twitterのみんなのステータスをとりあえず表示

#!/usr/bin/perl use strict; use CGI; use Net::Twitter; use YAML; use Data::Dumper; use Encode; my $config = YAML::LoadFile('config.yaml'); my $cgi = new CGI; print $cgi->header("text/html;charset=euc-jp"); print "<html><body>"; my $twitter = new Net::</body></html>…

Mail::POP3Clientでメールを読む

use Mail::POP3Client; use Encode; use YAML; my $configFile = 'config.yaml'; my $config = YAML::LoadFile($configFile); my $pop = new Mail::POP3Client( USER => $config->{mail}->{userid}, PASSWORD => $config->{mail}->{password}, HOST => $conf…

PlaggerのEntryFullTextで

ベーシック認証が必要なサイト(全て同じrealm配下)を見る場合、どうすればいいだろうか・・・? sub init { my $self = shift; $self->SUPER::init(@_); $self->load_plugins(); $self->{ua} = Plagger::UserAgent->new; $self->{ua}->add_header( Authori…

Pluggableなモジュールの書き方を勉強しなきゃ

最近「Plugin」にしたほうがよいものを作ることになった。YAPC::Asiaのmiyagawaさんの資料読んでみた。 http://www.slideshare.net/miyagawa/writing-pluggable-software試してみないと。 Class::Trigger+Module::Pluggableね。メモメモ。

Forkが気になりつつthread

id:ablaboさんがParallel::ForkManager使ってなんかやってるんで、自分はthreads使ってみた。*1いろいろあってオリジナルとおなじじゃなかったりちょいダサだったりしますが気にしないで。 use strict; use threads; use threads::shared; use Data::Dumper;…

Catalystのデフォルトページはべた書き

Catalist.pmのwelcome_messageのルーチンにHTMLが書いてある。全てのページで自分の好きなwelcomeページ(というかエラーページ)を作成するには、コントローラのrootで作成するしかないのかな?

xamppにCatalyst入れた。

インストーラなしタイプのxamppにCatalyst入れてみた。 xamppのzipを解凍する D:\xampp add-onを解凍してd:\xampp\perlを上書き CPANをアップデート d:\xampp\perl -e MCPAN -e shell install CPAN install Bundle::CPAN reload CPAN Catalyst入れちゃう cpa…

xamppにPerl-AddOn入れた。

よく見たらxamppには、デフォルトではperlはperl.exeしか入ってない。なのでCPANモジュールとかが入れられないことに気づいた。あわてて"add-onをダウンロード"してきて入れる。結構でかい。

Plagger::Pluginを継承(?)する方法は??

Plaggerでメール送信といえばPublish::Gmailなわけですが、このメールの文面を変えたいと思ったらどうすればいいのかな?と思った。というのはひとつのYAML内で(多分)二つのassetが設定できないので、となれば複数のPluginを呼ぶしかないかなと思ったワケ…

Plagger::Plugin::CustomFeed::MixiにてCalendarが動作しなかったので

ここら辺でテキトウにログとかを出してみて、テストちぅ。 my $meth = $MAP->{$type}->{get_list}; $context->log("debug" => $meth); my @msgs = $self->{mixi}->$meth($response); #$context->log("debug" => $response->content); my $items = $self->con…

CGI::ApplicationでTemplateToolkitを使うためには

CGI::Application::Plugin::TTPlaggerとかでもTTはよく使われているので、この期に勉強してみるかな。

PHPのPear::Authの代わりは・・・?

CGI::Application::Plugin::AuthenticationでOK? [note]CGI::Applicationで、run_modesに含まれないmodeが来たときの挙動は・・・? No such run mode 'XXXX' になってしまう。これをカスタムエラーページ(404)にする方法は? [note] デフォルトのテンプレ…

Auth_TypeKeyに再チャレンジ。

bcmathも、gmpもPHPから使えないのではAuth_TypeKeyが使えないじゃないの!ってことで、それでも諦めずになんとかしようとしてみています。とりあえず、両方とも使えないと、結果的に_dsa_verifyが呼ばれるんで、それをちょっと勝手に実装。つまり、verifyの…

TypeKey signature verification failed

PerlのAuthen::TypeKeyを使っているのですが「TypeKey signature verification failed」というメッセージが出て認証に失敗します。tokenもちゃんと設定しているはずなのでなぜこうなるのかさっぱり・・・。とりあえず_verify関数の中で数値がどうなっている…

WWW::Mechanizeって・・・

このページなんだけどさ→ https://yoyaku.city.shinagawa.tokyo.jp/syukai/web/htdocs/servlet/PInstMonthServletフォームの探索ができんとです。

XML::Parserを使ってXMLを解析する

"XMLファイルの属性値を一覧にするPerlスクリプトを作りたいです。"って質問があったので考えてみた。以下そのスクリプト。基本は"以前"書いたのと同じ考え方で、要素を開いたらその要素を配列(スタック)に突っ込んで、閉じるときはそれを戻すことによって…

WWW::MixiをOpenPNEに使いたい

というか、WWW::OpenPNEとかないのか・・・HTMLを内部的に解析しているというやりかたでは無理なのかもしれないのだが・・・

標準入力から受け取った文字列を、元文字コードから変換先文字コードに変換

perl -MEncode -e "print encode('変換先文字コード', decode('変換元文字コード', <STDIN>));"</stdin>

perldoc のPHP版ってないの?

perlの関数を調べたいときに perldoc -f printとかあるわけなんですが、PHPの場合同じようなことってできないんでしょうか。今日即席でファイルアップローダを作りたいというシーンに出くわしたんですが、マニュアルがないと何もできないという罠。くう。二…

Base64DecodeするOneLiner

perl -MMIME::Base64 -e "print decode_base64('44K144OI44Km');" サトウ

log4perlでrotate

"リクエスト"があったので調べてみる。 まだメモ段階。 Log::Dispatchを入れないといけない Log::Dispatch::FileRotateをいれないといけない 設定ファイルの書き方は多分こう。(前回のに追加してみた) log4perl.logger.mylogger = DEBUG, FileAppndr1, Rolli…

benchmarkしてみた。

ファイルの読みこみをする方法がいろいろあるみたいで、ちょっと気になってベンチマークをとってみました。 use Benchmark; local $file = "bench.perl"; my $retry = 10000; timethese( $retry, { test1 => '&func1()', test2 => '&func2()', test3 => '&fu…

WWW::Mechanize でフォームの投稿自動化・・・(案)

覚書。 WWW::Mechanizeを使うと、ページの解析が簡易的にできるのでこれを使って自動POSTしてユニットテスト・・・!(悪魔)

コマンドライン引数のオプションを簡易に。

これも昔メモったシリーズだけど。 Getopt::Longの場合 use Getopt::Long; my %args; my $result = GetOptions ("integer=i" => \$args{'integer'}, "string=s" => \$args{'string'}, "flag" => \$args{'flag'} ); # 各指定されたパラメータで処理を行う。 p…

Test::Unit,Test::Classモジュールを用いたUnitTestの行い方

Test::Classを使ってみた。 必要なのは以下の構成でのライブラリ lib/Test/Class/MethodInfo.pm /Class.pm /Devel/SymDump/Export.pm /SymDump.pm おためしなので以下の二つのファイルを作ってみた。 TestedModule.pm testRunner.plTestedModule.pm: package…

配列の添え字に負の数を使うと後ろから数える

「わな」にはまりました。以前こちらの記事 http://d.hatena.ne.jp/kidd-number5/20060201/1138783615 で書いたプログラムで、負の値を入れると異常としてくれないという報告をid:ablaboさんから頂いていたわけなんですが、 Negative array subscripts now c…