2009-01-01から1年間の記事一覧

YAPC::Asia2009で発表してきました!

YAPC::Asia 2009で「優しいモダンなWAFの作り方」と「CPAN::Packager」の二つの発表をしてきました。去年は聞く側として初参加したYAPC::Asiaでしたが、そこで自分の作った物を発表するperl hackerに影響され、技術者として自分の作った物をYAPC::Asiaで発表…

Plackで作る優しいモダンなWAFの作り方

皆さんご存知のように最近PSGIの実装としてPlackが登場しています。HTTP::EngineからPSGIへの移行にともなって、angelosもPSGIの実装であるPlackに対応しました。そこで、YAPCでのトークも当初予定していたHTTP::EngineをつかったWAFの作り方から、今後主流…

CPAN::Packager 0.072 released !

CPAN::Packagerでは依存関係を再帰的に辿りながら、そのモジュールに依存するもの全てパッケージを作る事が出来るツールです。YAPCに向けて足りない機能を何点か追加して、一通り機能が揃ったのでリリースしました。今回の版では、walf443さんの協力もあり、…

scalaでDI

以下の記事のscalaでDIの話はなかなかscalaらしい面白い解決策を提示してい面白いですね。 http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di/どんな方法かというと、 traitに抽象メンバ変数もたせて、DI対象のクラスではそれを参…

scalaのimplicit conversionで既存クラスにメソッド追加

既存クラスにメソッド追加する使い方は面白いです。Javaのクラスにも追加できるのがとても面白い。Commons系のUtilityを既存の型につっこんだら結構いいんじゃないかなぁ。ActiveResourceを、Commons系ライブラリ+implicit defで実装するのは結構いいんじゃ…

Scala is awesome!

Scalaは久々にすごいなぁと思える言語で、これからはScalaにかなりの時間を割こうかなぁと思ってます。色々と特筆すべきところはあるのですが、Rubyのように綺麗にかけて、それに加えて関数型言語の要素もくわわっていて、複数のパラダイムを混ぜる事で、向…

Better Ruby, Better Java

Javaは静的型付けがあるけれどとても冗長。これは型だけじゃなく、いたるところで冗長なコードしかかけない。 一方、Rubyは綺麗なんだけど、静的型がなく、遅く静的言語に比べて多くのテストをかかないといけない。そして、monkey patchingしててもどこでpat…

scala++

現状の言語の中で、極めて理想に近い形の言語だなぁと。

gradle

http://in.relation.to/Bloggers/Maven2YearsAfterここで知ったんですが、gradleはなかなか良さそうなbuild toolですね。長い事、antもmavenも複雑なビルドするには全くもって向いてないなぁと思ったんですが代替手段もないなぁと思ってました。gradleは、乗…

1/1 scale Gundamを見に行ってきた!

行かないと日本人じゃないといわれたので行ってきました。いやぁ、これはすごい!頭とか動いちゃったりして、40周年には歩き出しちゃうんじゃないかという感じでした。さすがに人が集まる訳だ、これは。 煙だしているガンダム 仁王立ちのガンダム ビルと同じ…

YAPC::Asia 2009 で「モダンな優しいWAFの作り方」と「CPAN::Packager」について話します

9/10にYAPC::Asia2009で発表しますので、是非聞きにきてください ;) http://conferences.yapcasia.org/ya2009/talk/2207 http://conferences.yapcasia.org/ya2009/talk/2208Perlコミュニティに参加したのは、去年のYAPC Asiaが初めてでした。Perlコミュニテ…

PubSubHubbubは面白いかも

PubSubHubbubはなかなか便利そうですね。 http://pubsubhubbub.googlecode.com/svn/trunk/pubsubhubbub-core-0.1.htmlPubSubHubbub+ReverseHttpで、色んなフィードの通知をGrowlで通知なんて使い方すると意外と便利かもしれないなぁと。miyagawaさんのgithub…

EclipseでAndroidのフレームワークのコードを読む方法

Androidプロジェクトの作成 Androidプロジェクトから自動追加されたandroidのjarをremove プロジェクトのプロパティ表示 Javaのビルドパス選択 Add external jars sdkのディレクトリのandroid.jarを追加 android.jarにソースをattach androidのframeworkのソ…

Androidの非同期処理はAsyncTaskで

世間の空前の非同期ブームにのっかって、androidでよく使う非同期処理を実現するためのクラスAsyncTaskについて簡単にまとめてみました。AsyncTaskは非同期タスク実行後、完了時に画面更新などのシンプルな非同期処理を実現するために使う物です。AsyncTask…

Android開発でのパフォーマンス設計のBest Practice

Googleの公式のドキュメントでは、パフォーマンス向上のための基本的な指針が提示されています。GCの方式の違いやプロセッサの違いなどで、一般的なJavaでの開発とはかなり違った形での開発が要求されるので、特にJava屋さんには注意が必要です。Best Practi…

Android Hackathon #1 @kayac にいってきた!

typesterさんに誘って頂いて今日はAndroid Hackathonに行ってきました。今日はutility系のアプリとはてなダイアリーを編集するアプリを作ってました。はてなさんとTV会議システムで繋いでいたので、人数も数多く集まっていて賑やかで良かったですね。android…

Test::ContinuousのFile::ChangeNotify版

Test::Continuousがbusy loopして、ファイル更新のチェックしているので、 File::ChangeNotify版を作ってみました。http://github.com/dann/test-continuous/tree/masterLinux::Inotify2をインストールしておけば、Linux環境だとinotifyが使われます。Enjoy!#…

Varnishによる動的コンテンツのキャッシュ

Velocity 2009のTwitterのスライドを見ていて、何点か面白いなぁと思った物があったのですが、その一つがVarnishのESIによる動的コンテンツのキャッシュでした。ApacheとApp Serverの間にVarnishをはさんで、動的コンテンツをキャッシュするというものです。…

memcachedモジュールを使った特定IPからのブロック

さきほどのTwitterのスライドで紹介されていたものですが、mod_memcache_blockというapacheモジュールを使っていると書かれていました。LiveDoorのスパムちゃんぷるーと似たようなものだと思うんですが、面白いのはblockしたい IPのリストをmemcachedで共有…

Google I/O Writing Real-Time Games for Android

http://www.youtube.com/watch?v=U4Bk5rmIpicAndroidで開発するためのパフォーマンス上の工夫について、色々と述べられているので面白いですね。大分特殊な感じの開発になるかなという印象です。Android上では、オブジェクト指向開発は忘れてしまわないとい…

はてぶからDeliciousに自動投稿するApp Engine用アプリを作ってみた

今までplaggerではてぶ2Deliciousはやっていたのですが、Web HookができたのでGoogle App Engine版をつくってみました。mattnさんのやつの、Web Hook版ですね。 http://github.com/mattn/hatenabookmark-meets-delicious/tree/master #!/usr/bin/env python …

Google App Engineで動くpythonのWAFの作り方

angelosは元々Google App Engineで動かす事を目指して作っていたんですが、GAE for perlがでないので、pythonでWAF作るとどんな感じに作れるのかなと思って少し作ってみました。http://github.com/dann/gae-ploudy/tree/masterこれは基本部分の作り方のサン…

HTTP::Engine::Middleware::Staticで静的ファイルを扱う

開発用途にどうぞ。 #!/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…

HTTP::Engineでsessionを扱う方法

#!/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…

Gist Jetpacknizerをつくってみた

Jetpackで大分簡単に拡張を作れるようになっているので、gistからインストールできるようにしてみました。http://github.com/dann/gist-jetpacknizer/tree/master実行方法 perl gist-jetpacknizer.plブラウザでアクセス http://localhost:4567/<gist id>例えば、以下</gist>…

LimeChatからirssiに移行

typesterさんの環境を見て、tiarra+irssi環境に移行してみました。基本的にiTerm+screenで使っているので、ターミナル内で環境が完結できると便利だなぁと。現状の課題は以下の二つで、これが解決できれば実用できそうな感じです。 nickで呼ばれたときの通知…

ヴの中に人に会ってきた!

GWを利用して、沖縄がほこるPerl hackerのworemacxさんに会いに行ってきました。 ヴの中の人との出会い編 待ち合わせは、沖縄のぱいかじという居酒屋にすることにしました。ただ、woremacxさんの顔を見た事がないので、会えるもんかねーと思っていったわけで…

githubのIssue用APIを使って、Issueを表示

githubのIssues用API(http://develop.github.com/p/issues.html)ができたので、WebからIssueを参照できるようにしてみました。http://dann.github.com/angelos/# このIssue用のCLI作っとけばditzはもういらないなぁ。

gitz - ditz likeな github issuesのCLIを作ってみた

少し探してみたけれど、なかったので作ってみました。 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…

Yokohama.pm #4で発表 - Angelosで学ぶ優しいWAFの作り方

開発しているAngelosを元にWAFの作り方について説明してきました。以下、スライドです。http://dann.github.com/presentation/yokohamapm4/start.html# 皆様おつかれさまでした!