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

decoded_content

http://d.hatena.ne.jp/tokuhirom/20091004/1254672645を見て知ったんだけど、HTTP::Response(定義は HTTP::Message)には decoded_contentというメソッドがあって decodeした contentを返して くれるようです。perldoc HTTP::Messageに書いてあることだけで…

Config::Pitを使う

Web APIは普段は使わないけど、FTPでアップロードするための スクリプトはいくつか書いてます。その中で Passwordをハードコーディング していたところがあったので, Config::Pitが使えるなって思って使ってみた.ユーザ名とパスワードの指定は以下のように O…

grepのカラー化

lsとかは色がつけられるのに, なんで grepはカラーにできないだって 思っていたら普通にあった。 % grep --colorGNU grepはこれでいけるはずです。aliasしておくと良いでしょう alias grep='grep --color'最近は emacsの lgrepも使うようになったためか, カ…

Emacsのエンコーディング指定プラグマを挿入する

Emacsではエンコーディング方法や modeの指定をファイルごとに行う ことができます。 ;; -*- coding:utf-8 mode:cperl -*-です。コメントは別にいらないみたいなんですけど、当然コンパイラ等には 見せたくないのでコメントアウトするのが普通です. ファイル…

実行ファイルのフルパスの取得

会社の人に聞かれて強引な方法を提示してしまったで、 普通にできるだろってことで調べてみた。 Perl, シェルスクリプトどちらでも $0で実行ファイル名が 取得できます。それをフルパスにできればよいというわけです。 まあ basenameとか dirnameがあるんだ…

N-QueenをXSを使って実装してみた

とりあえず実装してみたまずは Makefile.PLの作成 use strict; use ExtUtils::MakeMaker; WriteMakefile ( NAME => 'Solver::NQueen::XS', VERSION_FROM => 'lib/Solver/NQueen/XS.pm', );次にモジュールファイルの作成. モダンPerl入門のまま. package Solv…

XSを初めて使ってみるための下準備

とりあえず簡単そうな例で性能に差が出そうなものということで NQueenを実装してみた. 仕事が忙しいため本日は Perlバージョンのみ. Mooseを使ったので, それのオーバヘッドもいくらか出ているかもしれない けど, 時間のかかるプログラムなので考慮する必要…

auto_deref

いろいろな人の書いた Mooseを使ったコードを見ていたら "auto_deref"というのがあった。 名前の通りなんですが、マニュアルを見ると ArrayRefとHashRefを自動でデリファレンスされる というものみたいですね。 foreach my $str ( @{$sample->array} ) { do_…

追記

qsortの引数に渡す比較関数には以下のような方がいい。 単純な引き算だと, bが INT_MINで aが正の数だったらオーバーフローするため static int compare(const void *a, const void *b) { int num1 = *(int*)a; int num2 = *(int*)b; if (num2 > num1) { ret…

極力遅いソーティング

プログラミング作法という本に極力遅いソーティングをしろという問題があったので それを実装してみた。当然ながら適当なループで時間稼ぎとかはなしで、答えを求めるのが 遅いというものね。 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <sys/time.h> static void late_sor</sys/time.h></time.h></stdlib.h></stdio.h>…

ファイル名抽出

http://example.com/hoge/fuga/sample.jpgみたいのがあったときに, sample.jpgを抽出する方法. File::Basenameの basenameが使えね〜だろって勝手に思っていて 以下のようなものでやっていた。 my $hoge = "http://example.com/hoge/fuga/sample.jpg"; ($fil…

Template Toolkitで utf-8を使う

あんまり日本語を出力したことがなくて調べてみた。何も気にせず utf8の文字列を出力すると、お馴染みの以下の警告が出る Wide character in print at /usr/local/lib/perl/5.10.0/Template.pm line 195 別に普通に出力されてるんだけど、何か気持ち悪いし、…