日曜日, 1月 25, 2009

[Linux] Kirin

相当今更感があるのですが、Kirinという画像のリサイズなどが行える、画像変換のWebAPIを使ってみました。アプリキーをもらってから使うものなのですが、、説明に書かれている"呼び出し元サーバ名"って、、変換したい元画像が置いてあるサイトのドメイン名を書くのですね。。。うーん。
http://kirin.tatamilab.jp/

via kwout

たまたまGIF画像のリサイズをしてみたので気がついたのですが、戻しはJPGなんですね(JPGのコメントにはしっかり"Kirin Library 1.11 2009/01/25 0"と入っていました)。

火曜日, 1月 20, 2009

[Scala] TwitterもScalaで

Twitterでユーザ間のメッセージ送受信を実装するために使っている(のであろう)、キューイングシステムが、Rubyから(!)いつのまにかScalaにて書き直された、とのこと。その上これはソースも公開されているので、ぜひ勉強がてら読んでみたい(最近githubが増えてきましたね9。

[Perl] 携帯サイトのアクセス分析!

MovableTypeを携帯対応する一番簡単な方法は、mt4iなわけですが、このアクセス解析をapacheログでやるのも面倒に思いました。
なので、最近出たGA4Kという、GoogleAnalyticsに携帯アクセスを流すPHPライブラリ(まぁ原理的にはココでも紹介されているとおり、たいしたことはないのですが)を、Perlモジュールに作り変えてみました(以下ソース。ウェブプロパティID(utmac)とウェブサイトURL(utmhn)は書き換えてください!)。
#
# This code is test module for k-tai web site (ex mt4i)
#
package Onamon;

sub accessGoogleAnalystics{

use Sys::Syslog;
require HTTP::Request;
require LWP::UserAgent;

my $utmac = 'UA-179xxxx-2';
my $utmhn = 'http://onamon.com';
my $utmn = 1000000000 + rand(9999999999 - 1000000000);
my $cookie = '';
my $uservar = '';
my $random = 1000000000 + rand(2147483647 - 1000000000);
my $today = time();
my $referer = $ENV{'HTTP_REFERER'};
my $utmp = $ENV{'REQUEST_URI'};

if($ENV{'HTTP_X_UP_SUBNO'}){
$uservar = $ENV{'HTTP_X_UP_SUBNO'};
}elsif($ENV{'HTTP_X_DCMGUID'}){
$uservar = $ENV{'HTTP_X_DCMGUID'};
}elsif($ENV{'HTTP_X_JPHONE_UID'}){
$uservar = $ENV{'HTTP_X_JPHONE_UID'};
}
$cookie = $uservar;

my $urchinUrl = 'http://www.google-analytics.com/__utm.gif?utmwv=1&utmn='.$utmn.'&utmsr=-&utmsc=-&utmul=-&utmje=0&utmfl=-&utmdt=-&utmhn='.$utmhn.'&utmr='.$referer.'&utmp='.$utmp.'&utmac='.$utmac.'&utmcc=__utma%3D'.$cookie.'.'.$random.'.'.$today.'.'.$today.'.'.$today.'.2%3B%2B__utmb%3D'.$cookie.'%3B%2B__utmc%3D'.$cookie.'%3B%2B__utmz%3D'.$cookie.'.'.$today.'.2.2.utmccn%3D(direct)%7Cutmcsr%3D(direct)%7Cutmcmd%3D(none)%3B%2B__utmv%3D'.$cookie.'.'.$uservar.'%3B';

my $ua = LWP::UserAgent->new;
my $request = HTTP::Request->new(GET => $urchinUrl);
if ($ENV{'HTTP_ACCEPT_LANGUAGE'}) {
$request->header('Accept-language' => $ENV{'HTTP_ACCEPT_LANGUAGE'});
}
if ($ENV{'HTTP_USER_AGENT'}) {
$request->header('User-Agent' => $ENV{'HTTP_USER_AGENT'});
}
my $response = $ua->request($request);

openlog(__FILE__, 'cons,pid', 'local4');
if ($response->is_success) {
syslog('debug', 'OK('
.$ENV{'REQUEST_URI'}
.'^'.$ENV{'HTTP_USER_AGENT'}
.'^'.$ENV{'HTTP_X_DCMGUID'}
.')'
);
} else {
syslog('debug', 'NG');
}
closelog();
}
1;
汚い、というか何も考えていないソースで恥ずかしいですが、一応。mt4iに適用するなら、mt4i.cgiと同じディレクトリに上記ソースをOnamon.pmとして保存し、mt4i.cgiの最初のほうに、
~略~
use FindBin qw($Bin);
use List::Util qw(first);
use HTTP::Date;
use CGI::Carp qw(fatalsToBrowser);

# ★ここから
use Onamon;
if($ENV{'REQUEST_URI'} !~ /(png|jpg)$/){
Onamon::accessGoogleAnalystics();
}
# ★ここまで

my $bin;
my $log_pl;
our %cfg;

BEGIN {
~以下略~
と足します。お名紋贈り物ブログに適用してみたのですが、、果たして動くことやら。

日曜日, 1月 18, 2009

[Perl] CTPP2テンプレートエンジン

CPANのPerlモジュールがひたすらupdateされていて、頑張っている感のあるテンプレートエンジン(C++で書かれていて各種言語でバインディング可能なもの)。
http://freshmeat.net/projects/ctpp2/

via kwout

気になるのでメモ(Perlのモジュールはコチラ)。

土曜日, 1月 10, 2009

[Flash] JPEG格納フォーマット

以下ページに良くまとまっている。
http://pwiki.awm.jp/~yoya/?Flash/JPEG

via kwout

こられとやまさんページのFlashをswfmillで解析中(珍しくFlashLite1.1で出来たスライドショー)。

月曜日, 1月 05, 2009

[Life] XMLファイルをきちんと扱う

最近ミドルウェアの設定ファイルをXMLで書かなくてはならないことが多くなってきた。
可読性が意外と低いので、きちんとXMLを解釈して折りたたみなどができるエディタを探していたのだが、とりあえずjEditでできることまでわかった。

Pluginが1つ必要(その名もXMLというやつ)なのだが、PluginマネージャというGUIでさくっとインストールできる。

希望していた動きをするので、今しばらくはこれで行こうと思う。