「ほっ」と。キャンペーン
タグ:Perl ( 31 ) タグの人気記事
Shibuya.pm #TT 12 に行ってきた
 Shibuya.pm TT #12 に行ってきました。スタッフ&関係者の皆様、おつかれさまでした&ありがとうございました。

 気になったところのちょっとした感想をば。

miyagawa さん - "Tatsumaki" I/O bound HTTP clients in web frameworks
 PSGI 関係のプロジェクトって、割と最近始まったばかりの気がするんだけど、ずいぶんと周囲の対応が速い事に驚いた。有名どころの WAF は、ほとんど対応済みらしい。
 Tatsumaki を使った chat アプリは見ていて楽しい。ハックしたくなる気持ちがわかる。

NoSQL vs. NoKVS ライトニングディスカッション
 普段 KVS なんて使わないもんで、いろいろと新鮮な話ばっかり。

mikio さん - Tokyo (Cabinet|Tyrant)
 KVS としてはメジャーどころなんでしょか?名前はちょくちょく聞くけれど。
 Tokyo Tyrant の運用事例の中に「バイオ」ってあったけど、具体的にはどこで使われてるんだろ?勉強不足で知りませんが。

halt さん - 毎秒11万回更新できるのはRedisだけ
 Redis という初心者向け (?) の KVS について。
 「KVS 使った事無い人?」という質問に対して、手を挙げたのは、会場の半分も居ない感じだった。KVS って、そんなに普及してるのか・・・。
 話を聞いていると、確かに取っ付きやすそうな感じを受けた。お試しで遊んでみるのにはよさそう。

kzk さん - Hadoop/hBase を動かしてみた
 hBase は、これから利用実績が伸びてきそうな印象を受けた。けど、Column Store という特徴ををうまく使うのはコツがいりそう。他の KVS と比べて、少し独特な感じ。

kazuho さん - NoKVS な RDBMS sharding 作ってみた
 KVS じゃなくて、RDBMS sharding のためのツールのお話。質問が他と比べて活発だったのは、なんだかんだ言ってみんな RDBMS になじみが深いからじゃないかと勘ぐってみたり。

LT - tokuhirom さん
 PL_keyword_plugin は、なんとなく Lisp のリードマクロっぽい気がする。いろいろ面白いことができそう。


 といったところで、21時ぴったりに終了。takesako さんは、自身のトークだけではなく、TT 全体も時間ぴったりに終わらせることのできる特殊な能力をお持ちのようです :-)。
[PR]
by fkmn | 2009-11-30 23:55 | 日記
Yokohama.pm #4 に行ってきた
 4/17(金) に開催された Yokohama.pm #4 に参加してきました。Yokohama.pm への参加は今回で2回目。運営のみなさま、どうもありがとうございました & おつかれさまでした。

 以下、それぞれのトークについての簡単な感想。

QudoxSkinny (id:nekokak)
 ちょっと遅れてしまったので、ちゃんと聞けたのは Qudo の話から。テストしやすくするために、真っ先に Qudo::Test を実装した等、プラクティカルな設計/実装周りの話が参考になった。

次世代?DIコンテナ Bread::Boardの今後 (id:lestrrat)
 DI っていうのは、「クラス間の依存性を外部に追い出す事で、クラスのすげ替えを容易にする仕組み」ぐらいの理解しか無かったんだけど、今回のトークでは「クラス (依存性) の組み立ての為に使う」という捉え方をしていて、目から鱗だった。
 Bread::Board には、今後注目していきたい。

優しいWAFの作り方(仮) (id:dann)
 これも、フレームワーク設計に当たっての考え方の部分が参考になった。

Amazon Elastic MapReduceでperlを使った処理をしてみる (id:lopnor)
 local::lib は、いろいろ便利に使えそうで、一度ちゃんと見てみようと思いつつ、なかなか見れてないなぁ。
 Amazon EC2 は、課金システムが結構えげつないらしい。

かんたんオブジェクト指向Simo入門 (id:perlcodesample)
 sub foo { ac } なアクセサの設定方法が、C# のプロパティを彷彿とさせて面白い。

CAPとBASEとEventually Consistent (yohei)
 CAP定理というものを初めて知った。Consistency、Availability、Partition tolerance の3つは同時に満たせないので、どうバランスをとって妥協していくか、という話。常にどこかしらで意識していないといけない問題だけど、はっきりとした概念/パターンとして説明されて、頭の中が整理された。

perl-completion.elの紹介 (id:IMAKADO)
 Perl コードの補完。に限らず、便利機能いろいろ。試してみねば。

DBを使わずの簡易ジョブキューシステム (id:masartz)
 memcached を使ったジョブキューシステム。memcached もジョブキューシステムも使った事ないので、あまりついていけなかった・・・。

HTML::AAFindの紹介 (id:komoriya)
 見事なオチ (笑)。のように見えて、「携帯で AA を見ると崩れてしまうよ!!」という携帯ユーザが抱える問題を発掘して解決したすばらしい事例だと思う。
 プレゼンそのものも面白かったし、見事だった。


懇親会
 飲み過ぎて、次の日大変だった・・・w
[PR]
by fkmn | 2009-04-20 23:55 | 日記
JPA という略称の日本の団体
Japan Perl Association の個人会員に登録してみたついでに調べてみた。
  • 日本パラグライダー協会 (Japan Paraglider Association)
  • 日本心理学会 (The Japanese Psycological Association)
  • 日本製紙連合会 (Japan Paper Association)
  • 日本写真作家協会 (Japan Photographers Association)
  • 日本煙火協会 (Japan Pyrotechnics Association)
  • 日本プリンティングアカデミー (Japan Printing Academy)
  • 日本ペンション協会 (Japan Pension Association)
  • 日本パワーリフティング協会 (Japan Power Lifting Association)
  • 日本養鶏協会 (Japan Poultry Association)
  • 日本劇作家協会 (Japan Playwrights Association)
  • 日本パレット協会 (Japan Pallet Association)
  • 日本小児科医会 (Japan Pediatric Association)
  • 日本パフィオペディルム研究会 (Japan Paphiopedilum Association)
  • 日本プレミックス協会 (Japan Prepared-Mix Association)
  • JPA (Japan Performing Arts)(通信制高校サポート校・池袋)
  • Java Persistence API
  • 日本プラネタリウム協議会 (Japan Planetarium Association)
  • 日本Perl協会(Japan Perl Association) ← New!
参考:JPA - Wikipedia

ずいぶんと多いな・・・。

# ちょっと気になったんだけど、
# Japan Perl Association は 日本Perl協会 と訳してしまっていいんだろうか?
# サイトのどこを見ても、日本Perl協会という文言は見つからないんだけど。
[PR]
by fkmn | 2009-04-09 23:55 | 日記
17歳教に入りたい
17歳教 どう書く?org

 三十路間近になってくると、17歳教に入りたくなる気持ちも分かるってもんです。

 ちなみに僕の年齢は、 2/20 の時点で
17歳と4633日
17歳と152ヶ月と5日


以下、コード。


use strict;
use warnings;
use DateTime;

die "usage: $0 year month day\n" if scalar(@ARGV) < 3;
my ( $year, $month, $day ) = @ARGV;

my $dt = DateTime->new( year => $year, month => $month, day => $day )
->add( years => 17 );
my $now = DateTime->today;

my $md = $now->delta_md($dt);
my $days = $now->delta_days($dt);
my $diff = $now - $dt;

if ( $diff->is_positive ) {
printf( "17歳と%d日\n", $days->in_units('days') );
printf( "17歳と%dヶ月と%d日\n", $md->in_units( 'months', 'days' ) );
}
elsif ( $diff->is_zero ) {
print "17歳の誕生日\n";
}
elsif ( $diff->is_negative ) {
printf( "17歳まであと%d日\n", $days->in_units('days') );
printf( "17歳まであと%dヶ月と%d日\n", $md->in_units( 'months', 'days' ) );
}

[PR]
by fkmn | 2009-02-19 23:55 | 日記
Perl の bless って
 1引数で書くことができるのか。初めて知った。

5 sub new {
6 my $c = shift;
7 bless $c;
8 }

33 my $human = Human::new({'name' => 'ビンゴ',
34 'age' => 1,
35 'bag' => {}
36 });
第31回 Perlでオブジェクト指向を書こう
 この書き方の問題点は二つあります。まず、コンストラクタを Human::new のように静的呼び出ししていること。もう一つが、blessを1引数で使っていることです。

blessは2引数で - a geek

 ただ、いろいろと問題があるようなので、実際にこういう書き方をすることは無いだろうな。
[PR]
by fkmn | 2009-01-26 23:55 | IT
"Higher-Order Perl" が無料ダウンロード可能・・・だと・・・・?
Higher-Order Perl
Higher-order Perl: A Guide To Program Transformation (Amazon)


404 Blog Not Found:Perl - "Higher Order Perl" が無料ダウンロード可能に

つい最近 (一ヶ月ぐらい前) 紙版を買った俺、涙目。

ま、でも、実際問題、紙の方が読みやすいのは確かだし、いいんだけど。
べっ、別に強がってるわけじゃないんだからな!
[PR]
by fkmn | 2008-12-10 23:55 | 日記
Yokohama.pm #3 に行ってきた
 Yokohama.pm テクニカルトーク #3 に行ってきました。
 横浜在住横浜勤務の身としては、第一回から参加したかったのですが、仕事で都合が付かず、今回やっとの参加。

 今回一番面白かったのは、typester さんのライブコーディング。普通の発表という形態ではなかなか浮き上がってこない細かいノウハウが見られて、いろいろと勉強になりました。

 本編の後は、懇親会へ。
 perlcodesample さんの近くの席だったのですが、冒頭で「更新頻度が異常」などと失礼なことを言ってしまった気が・・・。あくまで褒め言葉ですので、許してやってください。
 他にも、kazuho さんが、自分の左隣に座っていたにもかかわらず、会の最後の方まで全く気づかなかったりと。
 とまぁ、個人的に若干やってしまった感のある懇親会でしたが、普段の職場ではあまりできないような Perl (やその他もろもろ) の話ができて楽しかったです。

 次回も参加できるといいな。
[PR]
by fkmn | 2008-11-29 22:23 | IT
0〜1000に含まれる0をカウントする (Perlで)
練習 - krystal: プログラミング超初心者(文系) - Rubyist
0〜1000に含まれる0をカウントする - ’(rubikitch wanna be (a . lisper)) 経由)

perl -e "print(join('', 0..1000) =~ tr/0/0/)"  #=> 193

 Perl だとこんな感じかな?

 学んだこと
[PR]
by fkmn | 2008-11-13 22:45 | IT
Imager かわいいよ Imager
 ディレクトリ中のjpgファイルの画像サイズを小さくするスクリプト。デジカメの画像サイズがやたらでかかったので、書き捨て用に作成。


use strict;
use warnings;
use Imager;

my $img = Imager->new;
my $regex = qr/(^RIMG\d{4})\.JPG$/;

opendir my $imgdir, '.';
my @files = grep { /$regex/ } readdir($imgdir);
closedir $imgdir;

for my $file (@files) {
$file =~ /$regex/;
$img->read( file => $file ) or die $img->errstr;
$img = $img->scale( scalefactor => 0.3 );
$img->write( file => $1 . '_small.jpg', jpegquality => 100 )
or die $img->errstr;
}


 それにしても Imager は良い。画像の取り扱いが非常に楽。簡単な画像処理系のお仕事は、これ一つで間に合っちゃいそう。
[PR]
by fkmn | 2008-11-08 23:55 | IT
XS ソースコードリーディング - List::Util編 -
 perlXStut(perlXStut - XSUB を書くためのチュートリアル)も一通り読み終わったので、perlxs(perlxs - XS言語リファレンスマニュアル)を参考にしつつ、実際に XS で書かれた CPAN モジュールのソースコードを読んでみることにした。。

 で、とりあえずは、動作が分かりやすい List::Util から読んでみたら、面白いコードがあった。

void
min(...)
PROTOTYPE: @
ALIAS:
min = 0
max = 1
CODE:
{
int index;
NV retval;
SV *retsv;
if(!items) {
XSRETURN_UNDEF;
}
retsv = ST(0);
retval = slu_sv_value(retsv);
for(index = 1 ; index < items ; index++) {
SV *stacksv = ST(index);
NV val = slu_sv_value(stacksv);
if(val < retval ? !ix : ix) {
retsv = stacksv;
retval = val;
}
}
ST(0) = retsv;
XSRETURN(1);
}

 ALIAS というキーワードを使うと、同じ関数を異なる名前で呼び出すことができ、呼ばれた名前に従って ix という変数に値がセットされるらしい。上のコードの例で言うと、min が呼ばれたときは ix に 0 が、max が呼ばれたときは ix に 1 がセットされる。なので、
val < retval ? !ix : ix 
というコードは、min が呼ばれたときには
val < retval ? true : false
という意味になり、max が呼ばれたときには
val < retval ? false : true
という意味になる。

 なるほどなぁ。

参考:perlxs - XS言語リファレンスマニュアル
ALIAS: というキーワードは、XSUB に対して二つ以上のユニークな Perl での名前を持たせ、また、起動されたときに使われている(そういったユニークな Perl での) 名前を知るための手段を持たせます。 Perl での名前は完全修飾されたパッケージ名とすることができます。それぞれの別名はインデックスとして与えられます。コンパイラは、使用される別名のインデックスが格納されている ix と呼ばれる変数をセットアップします。 XSUB が ix という名前と共に呼び出されたとき、その値は 0 となります。

[PR]
by fkmn | 2008-07-08 23:55 | IT


とあるWebアプリケーションエンジニアの日記
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
プログラミングが「出来る..
from とりあえず9JP?
Genographic ..
from ナンジャモンジャ
ジュセリーノ
from ありの出来事
くちこみブログ集(ライフ..
from くちこみブログ集(ライフ)(..
以降、丁寧語で行こう!
from エッセイ的な何か
人気ジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX