2009/10/08


Javaで...
class test{public static void main(String[]a){for(int n=1;n<101;n++)System.out.println(n%15>0?n%3>0?n%5>0?""+n:"Buzz":"Fizz":"FizzBuzz");}}
むー139バイトで46位。遠いなー。

じゃぁRubyで...
puts (1..100).map{|i|i%15==0%1?:FizzBuzz:i%3==0?:Fizz:i%5==0?:Buzz:i}
むむー。72バイトで65位。遠いよー。

なっ...ならばLuaで!!!汗...
for v=1,100 do print(v%15>0 and(v%3>0 and(v%5>0 and v or"Buzz")or"Fizz")or"FizzBuzz")end
88バイトで11位。ムキーーーーッ!

寝る!
Posted at by



2009/10/07


以前、Growl For Windows紹介記事gntp-sendという単純なCのプログラム(パスワードハッシュのみサポート)を書いたのですが、github上でpsinnottさんという方がforkしてUDP送信機能を付けてくれました。オープンソースの素晴らしい所ですね。
さらにlibgrowlというライブラリとしても使える様にしたので、アプリケーションに簡単に組み込む事が出来ます。
GNTPプロトコルは今のところWindowsだけしか使えませんが、UDP送信であればアイコンは出ないものの、他のプラットフォームでもGrowl出来る様になっています。現在WindowsとLinuxで動作確認出来ています。
なお、Windowsの場合はGrowlNotifyというDLLエントリポイントをrundll32用にエクスポートしてありますので
C:\>rundll32 growl.dll,GrowlNotify localhost:23053,MyApp,MyNotify,これはすごい,よーわからんけどね!,http://mattn.kaoriya.net/images/logo.png
と実行する事でGrowl For WindowsでGrowlされる様になっています。gntp-sendという付属コマンドもありますがコマンドラインからrundll32経由で使えて便利ですね!
誰得な機能っていわないで!><
Posted at by



2009/10/05


spiritlooseさんがPSGIなapacheモジュールを書いてくれたのでWindowsにポーティングしてみた。
mod_psgi を実装してみた - spiritlooseのはてなダイアリー

PSGI を実装したApache2モジュール。

http://d.hatena.ne.jp/spiritloose/20091002/1254467284
ちょっと気持ち悪いpatchになるけど、一応動いている。
巷にあるライブラリなどではWindowsポーティングされた時にUN*Xライクな型を自前で定義している事があるんだけど、Apacheモジュールのapr.hなんかや、Perlなんかでuid_t/gid_t/pid_tなんかが定義されている事が多い。

apr.h
typedef int uid_t;

perl.h
typedef long uid_t;

もちろんこのヘッダを同時に読み込むとエラーになるんですが、こういう場合に私がよく使う手として
#define uid_t _uid_t
#include <apr.h>
#undef uid_t
#include <perl.h>
てな具合に前の宣言を逃してやって、後の宣言を有効に出来る。今回はこの気持ち悪いhackを使ってWindowsにポーティングしました。

Commit 03fb93ebf27f0b98c3fbcc616ce736129e747912 to mattn's mod_psgi - GitHub
http://github.com/mattn/mod_psgi/commit/03fb93ebf27f0b98c3fbcc616ce736129e747912
今の所ご機嫌よく動いていて use strict;
use warnings;
my $count = 0;
my $handler = sub {
    my $content = "Hello World".$count++;
    return [ 200, [ "Content-Type" => "text/plain", "Content-Length" => length($content) ], [ $content ] ];
};
# vim:set ft=perl:
こんなPSGIなアプリもうまくちゃんとリクエスト毎にカウントアップされています。
もちろんpreforkだと同じ結果が現れる事がありますが
まだマージして頂いていないので、捨てコードになるかもしれませんが...

AWSWORD:perl:
Posted at by