2009年08月24日

HTTP::Engine は国産か否か

最近「国産のHTTP::Engine」のような文章を立て続けに見たので、HTTP::Engineは国産なのかどうかを考えてみたけどやっぱり国産じゃないんですよね。
そりゃディストリ作り出してメンテやりだしたのは日本人だけども、コードベースはCatalystだしMoose化の際にはnothingmuchの多大なる貢献があったし、大元のアイデアはPythonからの物だしで、そんなに国産と言う思いは無かったり。

だってさ、Pugsが台湾産だなんて言いかた聞かないでしょ?強いて言えばPerlコミュニティ産ってのがしっくりくるなという感じ。

中の人が日本語ばっかり使うから日本人が使うには気軽で良いという点くらいしかないんだけど、それって全体で見ると利点でなくて英語の情報が余りにも少なすぎてあんま良く無いなと思ってる所なんだけど、日本語ですらドキュメント書けてない困ったちゃん状態。

Ruby(以下省略

Posted by Yappo at 11:27 | Comments (0) | TrackBack

2009年08月14日

iPhotoは取り込んだ写真にExif追加します

eyefiで上げまくる生活をした後にiPhotoに残ってる古い写真も上げようと思ったらeyefiで上げ済みの写真も上がっててバビった今日この頃皆様いかがお過ごしでしょうか。

iPhotoに取り込まれた写真はExif情報を追加するといったことが一般的に知られていますが、実際にどんなデータが追加されてるかを見てみました。

材料:iPhoto通してない写真 1枚
iPhoto通した同じ写真 1枚
下記のスクリプト

use strict;
use warnings;
use Image::ExifTool ':Public';

my $eyefi  = ImageInfo(shift);
my $iphoto = ImageInfo(shift);

while (my($k, $v) = each %{ $eyefi }) {
    my $iphoto_v = delete $iphoto->{$k};
    my $is_changed = 0;
    if (ref($v) eq 'SCALAR') {
        if (ref($iphoto_v) eq 'SCALAR') {
            $is_changed = 1 unless $$v eq $$iphoto_v;
        } else {
            $is_changed = 1;
        }
    } elsif ($v ne $iphoto_v) {
        $is_changed = 1;
    }
    next unless $is_changed;

    printf "key: %s¥n  eyefi: %s¥n iphoto: %s¥n", $k, $v, $iphoto_v;
}

print "¥niPhoto's append data¥n";
while (my($k, $v) = each %{ $iphoto }) {
    printf " %s => %s¥n", $k, $v;
}

さぁ実行しましょう

key: FileName
  eyefi: eKHPjLGE3hGDx7EShzBp6g.jpg
 iphoto: DLQpgnuI3hGrj3qvqAW5CQ.jpg
key: FileModifyDate
  eyefi: 2009:08:09 15:54:57+09:00
 iphoto: 2009:08:14 11:38:11+09:00

iPhoto's append data
 CMMFlags => Not Embedded, Independent
 ConnectionSpaceIlluminant => 0.9642 1 0.82491
 ProfileCMMType => appl
 ProfileDescription => Camera RGB Profile
 ProfileID => 0
 DeviceModel => 
 GreenMatrixColumn => 0.35332 0.67441 0.09042
 ChromaticAdaptation => 1.04788 0.02292 -0.0502 0.02957 0.99049 -0.01706 -0.00923 0.01508 0.75165
 BlueTRC => SCALAR(0x8356ec)
 RedTRC => SCALAR(0x8d5f84)
 ProfileClass => Input Device Profile
 BlueMatrixColumn => 0.15662 0.08336 0.71953
 PrimaryPlatform => Apple Computer Inc.
 RedMatrixColumn => 0.45427 0.24263 0.01482
 ProfileDescriptionML => Camera RGB Profile
 ProfileVersion => 2.2.0
 RenderingIntent => Perceptual
 ProfileCreator => appl
 ProfileFileSignature => acsp
 DeviceManufacturer => appl
 ProfileCopyright => Copyright 2003 Apple Computer Inc., all rights reserved.
 ProfileDateTime => 2003:07:01 00:00:00
 GreenTRC => SCALAR(0x8d60c8)
 DeviceAttributes => Reflective, Glossy, Positive, Color
 ColorSpaceData => RGB 
 MediaWhitePoint => 0.95047 1 1.0891
 ProfileConnectionSpace => XYZ 
ファイル名が違うのはImage::ExifToolの都合ですが、最終変更日が変更されてプロファイルやら何やらが追加されましたね。

メタデータ変わったら違う画像になるのか、それとも画像自体が同じなら同じファイルなのかとかそういう話もありますが今日はこの辺で。

ちなみに元画像はここから落とせます

Posted by Yappo at 12:22 | Comments (0) | TrackBack

2009年08月07日

YAPC::Asia 2009 で「Key Value Store と ORM」について話します

このところ、MySQL と KVS と ORM 関連のエントリをいろいろ書いていますが、それは、スケールアウト可能で、かつ、インフラの人に怒られないアプリケーションを、今まさに作っている、という理由があるからです。

ただ、ブログエントリだとどうしても細切れになるので、一連のモジュールやプログラムを組み合わせて、どうやってスケールするインフラと繋げる部分を作るのかという話を YAPC::Asia 2009 でさせていただくことにしました。

YAPC::Asia 2009 は9月10日(木)と11日(金)の2日間、東京工業大学大岡山キャンパスで開催されます。今日からチケット販売も始まったので、興味のある方はお越しいただければ、と思います。

YAPC::Asia 2009
Key Value Store with O/R Mapper: YAPC::Asia 2009 - Sep 10-11 in Tokyo, JAPAN

【参考文献】
http://d.hatena.ne.jp/hirose31/20090807/1249611130

Posted by Yappo at 11:18 | Comments (0) | TrackBack