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

2009年を振り返って

こんばんは、明石家サンタが楽しみなdannです。今年も色々なことがありました。今年も残すところ後僅かになったので、KPTで今年を振り返ってみます。 Keep 今年やって良かったことは YAPC::Asiaにスピーカーとして参加 Perlコミュニティに参加し始めたのが去…

Plack::Middleware::Maintenanceを作ってみた

メンテナンス画面を出すMiddlewareであるRack::MaintenanceをPlackに移植してみました。http://github.com/dann/p5-plack-midddleware-maintenance以下のようにメンテナンス画面のパスを指定することで、その画面を表示するmiddlewareです。 use Plack::Buil…

Plack::App::HTTP::Router - A Plack component for RESTful dispatching

RESTfulなdispatchをするPlack Appを作ってみた。 http://github.com/dann/p5-plack-app-http-router使い方 use Plack::Builder; use Plack::App::HTTP::Router; use HTTP::Router::Declare; use lib 'examples/lib'; my $router = router { match &…

Data::Model::Driver::Memcachedで超効率データ保存

data-model trackの17日目のエントリを書きました。 http://perl-users.jp/articles/advent-calendar/2009/data-model/17.htmlData::Model::Driver::Memcachedは、KVSをデータストアとして使うために、空間効率を意識した設計がなされています。具体的には、…

App EngineのLogをXMPPで飛ばす (Python版)

gae

GAEのログをXMPPで送るという素晴らしいアイデアを書かれてたので、pythonに移植してみました。 http://d.hatena.ne.jp/hidemon/20091211/1260512565 loggerのXMPP用のhandler # -*- codign: utf-8 -*- import logging from google.appengine.api import xmp…

JPerl Advent Calendar 2009 #07

こんにちは、記事を早く書きすぎた dann です。もう今年も残すことあとわずかですねー。今年もJPerl Advent Calenderの季節がやってきました。去年に引き続き今年もJPerl Advent Calendarを書かせて頂きました。 テスト関連の便利モジュールとして、7日目の…

Plackathonにいってきた!

HTTP::Engine hackathonに引き続き、miyagawaさんにPlackathonに誘って頂いたので、Plackathonに行ってきました。以下の3つのMiddlewareをつくってみました。 pythonのmiddleware(DispatchMiddleware)porting版 完成した直後に、それURLMapでできるよ!とい…

VimでPythonを快適に編集するための設定

python編集できるようにvimの設定をしてみました。perlでも殆ど同じような事をやっていたんですが、補完と保存時のsyntax check、それとpython周り固有のindent設定ですね。 indentが異なってるとエラーになるのでindent周りの設定 save時にsyntax checkして…

Kindleのupdateが最高に素晴らしい件

Kindle2を持ち歩き用、DXを自宅用にほしいdannです。今回のKindleのファームのupdateで、「PDFが読める」ようになっただけでなく、「日本語のPDFも読める」ようになりました!これはかなりいいですね。PDFが読めるようになったので、今までのmanningの本を全…

たこthonに行ってきた!

http://d.hatena.ne.jp/tomyhero/20091120/1258718763隔月でいっているたこthon。今回は、たこ焼きだけでなく、タコライスも投入され、モダンたこthonになりました。先週は家でGAEthonをやっていた影響で、今週も引き続きpythonをやってました。Eric S. Raym…

WSGIベースのメタフレームワーク werkzeug

mopemopeさんのblogに werkzeug が紹介されてました。 http://d.hatena.ne.jp/mopemope/20090118/p1これを使えば、 http://dann.g.hatena.ne.jp/dann/20091121/p1 で書いたようなmappingの大方のところは、必要ないですね。ちょっとコードみた感じだと、ORM…

Pasterのtemplateを作ってみた

Pasterのtemplateを作ってみた。 http://github.com/dann/python-simple_package_templatepasterのtemplateの作り方は、以下のページに。 http://pythonpaste.org/script/developer.html#id6templateを作るときのポイントは、以下の通り。 entry_pointsに、[…

noseでテスト

nosetestsは、proveみたいなものです。plugin機構があって拡張できるようになっているので、prove以上に色んな事ができます。使い方は、いかのとおり。 インストール pip install nose pip install rednoseテストの色づけ.noserc [nosetests] verbosity=3 no…

python雑感

GAEはじめてみようかなということで、pythonをここ1週間ほど触ってみてます。pythonの言語仕様で面白いのは以下かなぁと。 callables, iteratables これが組み込みなのは、 decorator AOP的なもの。perlだとMouseのaroundみたいなもので、Javaだとannotation…

Pasterでのmoduleのskeltonの生成

Yoshinoriさんに、pasterでmoduleの雛形が作れるというコメントを頂いたので、試してみました。PasteScriptのインストール sudo pip install pasterscript pasterコマンドがインストールされるので、これを使う。新規モジュールの作成 paster create paffy使…

Makefile.PLとsetuptoolsのsetup.pyの対応関係

抑えておけばよさそうなのは、依存関係まわりの以下のような関係。 perl python requires install_requires recommends extras_require test_requires tests_require pylonsの書き方みてれば、大体やりたいことは実現できそうです。 http://pylonshq.com/pro…

PerlとPythonのWAFの要素のmapping

Pythonの勉強がてら、良く知っている領域ということで、WAFの要素における ライブラリ間のマッピングをとってみました。simpleなwafはライブラリがそろってるので、さくっと作れそうな印象です。 Category Perl Python WSGI Plack wsgiref req/res Plack::Re…

perlとpythonとrubyのmapping

GAEで遊ぶのも兼ねて、pythonとperlのツールのmappingしようかなと。LLでは言語のシンタクスや機能は方言程度の違いしかないため、ライブラリやミドルでのマッピングを知っておく事のほうが意味があると思っているので、少しまとめてみました。 言語関連ツー…

GAEでzipで圧縮されたモジュールを使う

gae

http://code.google.com/appengine/articles/django10_zipimport.htmlpip zip でzipに固めて、sys.path.insert(0, lib_zip_path)で良さそう。 Module archives use additional CPU time the first time a module is imported. Imports are cached in memory …

pythonでOpenSocial

http://d.hatena.ne.jp/asannou/20091109security tokenをgadgetから渡せば、外部サーバーからでもREST APIでopensocial containerにアクセスできるという話なので、pythonでも試してみました。 python版はgoogleの中の人が作っているものがあるので、それを…

Django on GAEで作るmixiアプリ

まりもが大人気のmixiアプリに惹かれて、ちょっと入門してみました。 セットアップ GAEのインストール http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/devenvironment.html app-engine-patchのインストール GAE用にdjangoにpatchをあ…

mixiアプリtips

OpenSocial系のJSのAPIは、それをvalidationするための仕組みがないので、Persistent APIなどで、個人が書き換えすることがアプリとして許されるデータ以外は保存しないというのが基本方針。これはassanouさんが書かれてるグリモンを見れば、どんなことがで…

Ark入門

PSGIにも対応しているモダンなWeb application frameworkであるArkに入門してみました。まずはアプリの生成から ark.pl newapp Happy::WeddingこれでModule::Setupをつかったフレーバーからアプリのひな形が生成されます。続いて、Controllerをつくります。 …

Kindleが英語学習端末として圧倒的に優れている3つの理由

Kindleを使い始めたのですが、かなりいいですね。洋書を読む環境としてだけでなく、英語学習環境として優れています。理由は、以下の3点です。 英英辞書の統合 カーソルに単語をあわせると、その場で英英辞書で引けるというのが本当に素晴らしい。知らない分…

Kindleが素晴らしい3つの理由

先ほどのエントリでは英語学習環境として素晴らしいと書きましたが、本好きな人にとってもありがたい端末だと思います。Kindleを使ってみて素晴らしいと思うのは、以下の3つの点です。 手元に60秒で本が届く 技術書は、翻訳をまっていると1年以上遅れてしま…

snippetをautocomplpopで補完する

vim

id:ns9tksさんが作られているautocomplpopのv2.11以降でsnipMateと連携したsnippet補完が実装されています。これはLifechagingですね。 インストール方法 autocomplpopの設定は以下の通り。 " ============================================ " autocomplpop.…

snippetをneocomplcacheで補完する

vim

Shougoさんが作られているneocomplcacheも最近試してみています。autocomplpopのような補完やsnippetの補完などがneocomplcacheという一つのプラグインで実現されています。以下が設定です。snippetは、.vim/snippetsに置く設定になっています。 設定 " ====…

Practical API Design

最近はシステムプログラミングの本ばっかり読んでいて、古典しか読んでないので、これといって紹介する本がないんですが、最近読んだ本の中で良かった本を1冊だけ。Practial API Design http://www.amazon.com/Practical-API-Design-Confessions-Framework/d…

CPAN::Packagerでパッケージ作成時にテストをする

YAPC::Asiaで、CPAN::Packagerでrpmのpackageのbuild時にモジュールのテストをしたいというリクエストを受けたので、RPMのほうもデフォルトでモジュールをテストするようにしました。RPM版、Debian版ともに、依存関係の深い順のモジュールをインストールして…

YAPC::Asiaで受けた質問について

YAPC後すぐに休みにはいってたので、大分遅くはなりましたが、CPAN::Packagerのセッションで頂いたコメントをまとめました。 Q&A Q1: 古いバージョンのモジュールを残したい場合はどうすればいいか? A: cpanminiなどでカスタムのミラーサーバーを作るか、カ…