Rhythm & Biology

Engineering, Science, et al.

perlの実行時間計測とInline::Cのすごさ

研究として数値計算をやることが多いのですが、やはり実行時間が気になってしまうものです。 perlに限らず、スクリプト言語はやはり速度面でのネックがありますが、まずは実行時間を計測してどれぐらい遅いのかを知りたいと思いました。簡単な数値積分(Euler…

perlでhttp client

webアプリの開発をするようになって、テスト用にHTTP Clientを書くことが多くなりました。とは言え、まだまだwebの知識が無いため、モジュールの力を借りてゴリゴリ書いています。まずはGET METHOD。 use HTTP::Request::Common qw/GET/; use LWP::UserAgent…

Haskellを始める

以前からhaskellには興味があったのですが、中途半端な勉強で、結局何も頭に残っていない状態です。 そもそも関数型言語の耐性がまだ出来ていないので、まだまだ身構えてしまいます。今後haskellに加えてerlangもやっていきたいと考えているので、勉強しつつ…

String::Random

単純にランダム文字列が欲しいときがありますね。例えば秘密鍵の文字列を作りたいときなど。自分で乱数を使って書いてもそれほど大したコードにはならないのですが、String::Randomを使えば非常に楽に書けます。特に正規表現を使った方法は強力だと思います…

change the entry point

C

C言語をはじめ習うときには、 #include <stdio.h> int main(void) { printf("Hello World\n"); return 0; } なんて書かされますね。そして「どんなプログラムでもmain関数からはじまる」と教えられます。でも、 #include <stdio.h> __attribute__((constructor)) void first() </stdio.h></stdio.h>…

URI::Escape

webアプリを書くなら、URLエンコード処理は必須ですよね。 URI::Escapeはその処理を1行でやってくれるCPANモジュール。 $enc = uri_escape($message); # encoding $dec = uri_unescape($message); # decoding GETやらPOSTやらで送る前にエンコード、送られて…

Inline::C

perlの中でCが書ける、そう聞いただけでワクワクします。 自分の専攻だと、どうしても実行速度を気にしてしまいます。Cで書いても実行に1日かかるようなものが多いので。楽したいところはperlで、カリカリにチューニングしたいところはCで、なんて住み分けが…

Term::ReadLine

ちょっと自分用に簡単なスクリプト書いてみました。その時にTerm::ReadLineが便利だったのでメモ。 普通にユーザの入力を受け取ろうとすると、 my $input = <STDIN>; なんて書きますけど、これだとemacsのキーバインドとかが使えなくて(自分の環境では)、Ctrl+Hを連</stdin>…

Starting Hatena::Diary

いろいろブログ試してみたものの、結局はてなに落ち着きそうです。なんといっても、ソースコード貼るのが楽なようで。 例えばperl。 #!/usr/bin/perl use strict; use warnings; my $test = 'Hello'; print $test; うん、いい感じ。