2009-01-01から1年間の記事一覧
YAPC::Asia 2009で「優しいモダンなWAFの作り方」と「CPAN::Packager」の二つの発表をしてきました。去年は聞く側として初参加したYAPC::Asiaでしたが、そこで自分の作った物を発表するperl hackerに影響され、技術者として自分の作った物をYAPC::Asiaで発表…
皆さんご存知のように最近PSGIの実装としてPlackが登場しています。HTTP::EngineからPSGIへの移行にともなって、angelosもPSGIの実装であるPlackに対応しました。そこで、YAPCでのトークも当初予定していたHTTP::EngineをつかったWAFの作り方から、今後主流…
CPAN::Packagerでは依存関係を再帰的に辿りながら、そのモジュールに依存するもの全てパッケージを作る事が出来るツールです。YAPCに向けて足りない機能を何点か追加して、一通り機能が揃ったのでリリースしました。今回の版では、walf443さんの協力もあり、…
以下の記事のscalaでDIの話はなかなかscalaらしい面白い解決策を提示してい面白いですね。 http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di/どんな方法かというと、 traitに抽象メンバ変数もたせて、DI対象のクラスではそれを参…
既存クラスにメソッド追加する使い方は面白いです。Javaのクラスにも追加できるのがとても面白い。Commons系のUtilityを既存の型につっこんだら結構いいんじゃないかなぁ。ActiveResourceを、Commons系ライブラリ+implicit defで実装するのは結構いいんじゃ…
Scalaは久々にすごいなぁと思える言語で、これからはScalaにかなりの時間を割こうかなぁと思ってます。色々と特筆すべきところはあるのですが、Rubyのように綺麗にかけて、それに加えて関数型言語の要素もくわわっていて、複数のパラダイムを混ぜる事で、向…
Javaは静的型付けがあるけれどとても冗長。これは型だけじゃなく、いたるところで冗長なコードしかかけない。 一方、Rubyは綺麗なんだけど、静的型がなく、遅く静的言語に比べて多くのテストをかかないといけない。そして、monkey patchingしててもどこでpat…
現状の言語の中で、極めて理想に近い形の言語だなぁと。
http://in.relation.to/Bloggers/Maven2YearsAfterここで知ったんですが、gradleはなかなか良さそうなbuild toolですね。長い事、antもmavenも複雑なビルドするには全くもって向いてないなぁと思ったんですが代替手段もないなぁと思ってました。gradleは、乗…
行かないと日本人じゃないといわれたので行ってきました。いやぁ、これはすごい!頭とか動いちゃったりして、40周年には歩き出しちゃうんじゃないかという感じでした。さすがに人が集まる訳だ、これは。 煙だしているガンダム 仁王立ちのガンダム ビルと同じ…
9/10にYAPC::Asia2009で発表しますので、是非聞きにきてください ;) http://conferences.yapcasia.org/ya2009/talk/2207 http://conferences.yapcasia.org/ya2009/talk/2208Perlコミュニティに参加したのは、去年のYAPC Asiaが初めてでした。Perlコミュニテ…
PubSubHubbubはなかなか便利そうですね。 http://pubsubhubbub.googlecode.com/svn/trunk/pubsubhubbub-core-0.1.htmlPubSubHubbub+ReverseHttpで、色んなフィードの通知をGrowlで通知なんて使い方すると意外と便利かもしれないなぁと。miyagawaさんのgithub…
Androidプロジェクトの作成 Androidプロジェクトから自動追加されたandroidのjarをremove プロジェクトのプロパティ表示 Javaのビルドパス選択 Add external jars sdkのディレクトリのandroid.jarを追加 android.jarにソースをattach androidのframeworkのソ…
世間の空前の非同期ブームにのっかって、androidでよく使う非同期処理を実現するためのクラスAsyncTaskについて簡単にまとめてみました。AsyncTaskは非同期タスク実行後、完了時に画面更新などのシンプルな非同期処理を実現するために使う物です。AsyncTask…
Googleの公式のドキュメントでは、パフォーマンス向上のための基本的な指針が提示されています。GCの方式の違いやプロセッサの違いなどで、一般的なJavaでの開発とはかなり違った形での開発が要求されるので、特にJava屋さんには注意が必要です。Best Practi…
typesterさんに誘って頂いて今日はAndroid Hackathonに行ってきました。今日はutility系のアプリとはてなダイアリーを編集するアプリを作ってました。はてなさんとTV会議システムで繋いでいたので、人数も数多く集まっていて賑やかで良かったですね。android…
Test::Continuousがbusy loopして、ファイル更新のチェックしているので、 File::ChangeNotify版を作ってみました。http://github.com/dann/test-continuous/tree/masterLinux::Inotify2をインストールしておけば、Linux環境だとinotifyが使われます。Enjoy!#…
Velocity 2009のTwitterのスライドを見ていて、何点か面白いなぁと思った物があったのですが、その一つがVarnishのESIによる動的コンテンツのキャッシュでした。ApacheとApp Serverの間にVarnishをはさんで、動的コンテンツをキャッシュするというものです。…
さきほどのTwitterのスライドで紹介されていたものですが、mod_memcache_blockというapacheモジュールを使っていると書かれていました。LiveDoorのスパムちゃんぷるーと似たようなものだと思うんですが、面白いのはblockしたい IPのリストをmemcachedで共有…
http://www.youtube.com/watch?v=U4Bk5rmIpicAndroidで開発するためのパフォーマンス上の工夫について、色々と述べられているので面白いですね。大分特殊な感じの開発になるかなという印象です。Android上では、オブジェクト指向開発は忘れてしまわないとい…
今までplaggerではてぶ2Deliciousはやっていたのですが、Web HookができたのでGoogle App Engine版をつくってみました。mattnさんのやつの、Web Hook版ですね。 http://github.com/mattn/hatenabookmark-meets-delicious/tree/master #!/usr/bin/env python …
angelosは元々Google App Engineで動かす事を目指して作っていたんですが、GAE for perlがでないので、pythonでWAF作るとどんな感じに作れるのかなと思って少し作ってみました。http://github.com/dann/gae-ploudy/tree/masterこれは基本部分の作り方のサン…
開発用途にどうぞ。 #!/usr/bin/env perl use HTTP::Engine; use HTTP::Engine::Middleware; main(); sub main { my $engine = setup_engine(); $engine->run(); } sub setup_engine { return HTTP::Engine->new( interface => { module => 'ServerSimpl…
#!/usr/bin/env perl use HTTP::Engine; use HTTP::Engine::Middleware; main(); sub main { my $engine = setup_engine(); $engine->run(); } sub setup_engine { return HTTP::Engine->new( interface => { module => 'ServerSimple', args => { p…
Jetpackで大分簡単に拡張を作れるようになっているので、gistからインストールできるようにしてみました。http://github.com/dann/gist-jetpacknizer/tree/master実行方法 perl gist-jetpacknizer.plブラウザでアクセス http://localhost:4567/<gist id>例えば、以下</gist>…
typesterさんの環境を見て、tiarra+irssi環境に移行してみました。基本的にiTerm+screenで使っているので、ターミナル内で環境が完結できると便利だなぁと。現状の課題は以下の二つで、これが解決できれば実用できそうな感じです。 nickで呼ばれたときの通知…
GWを利用して、沖縄がほこるPerl hackerのworemacxさんに会いに行ってきました。 ヴの中の人との出会い編 待ち合わせは、沖縄のぱいかじという居酒屋にすることにしました。ただ、woremacxさんの顔を見た事がないので、会えるもんかねーと思っていったわけで…
githubのIssues用API(http://develop.github.com/p/issues.html)ができたので、WebからIssueを参照できるようにしてみました。http://dann.github.com/angelos/# このIssue用のCLI作っとけばditzはもういらないなぁ。
少し探してみたけれど、なかったので作ってみました。 http://github.com/dann/gitz/blob/d1d637951ebb023c4716fb1a49891511ac3006fd/gitz.pl使い方 Usage: gitz.pl todo --project angelos gitz.pl close --project angelos gitz.pl add --title XXX --body…
開発しているAngelosを元にWAFの作り方について説明してきました。以下、スライドです。http://dann.github.com/presentation/yokohamapm4/start.html# 皆様おつかれさまでした!