Hatena::Groupcatalyst

dann@catalyst このページをアンテナに追加 RSSフィード

2008-02-17

Test::Continuous

| 22:04 |  Test::Continuous - dann@catalyst を含むブックマーク はてなブックマーク -  Test::Continuous - dann@catalyst  Test::Continuous - dann@catalyst のブックマークコメント

http://search.cpan.org/dist/Test-Continuous/

コードが正しくなるタイミングとファイル変更のタイミングは違う気がするから、ファイル変更時に自動テストをするということの有効性があまりわかっていないのだけれど、何か使い方考えれば使えるところあるのかなぁと思って気にしている。

Rails界隈ではそこそこZenTestも使われているみたいだから、何か良い点があるのかもなぁ。Catalystのテスト環境としてなんか使えないかなと思っているのだけれど。

Catalyst用のsnippet

| 21:56 |  Catalyst用のsnippet - dann@catalyst を含むブックマーク はてなブックマーク -  Catalyst用のsnippet - dann@catalyst  Catalyst用のsnippet - dann@catalyst のブックマークコメント

id:spiritlooseさんのsnippet

http://d.hatena.ne.jp/spiritloose/20080217/1203245464

おぉ、これは大分早くコーディングできそう。

Tabはautocomplのほうとバッティングするから、<C-B>に割当てみることにした。

Catalystでマルチバイト

| 20:57 |  Catalystでマルチバイト - dann@catalyst を含むブックマーク はてなブックマーク -  Catalystでマルチバイト - dann@catalyst  Catalystでマルチバイト - dann@catalyst のブックマークコメント

hide-kさんの素晴らしいまとめ。

http://blog.hide-k.net/archives/2007/03/catalyst_2.php

ユーザーの入力、DBの入出力、ユーザーへの出力の3点で気をつける必要がある。Perlの場合、UTF-8フラグ周りの文字化けではまりがちなので、その点上記を抑えておけばはまりどころが殆どない。

アプリケーションの文字コードと国際化の全体方針は最初に決めておいたほうがよくって、こういうのはstarterでやっておくのがいいかなと。starterには組み込み済み。

自分用のcatstarter

20:37 |  自分用のcatstarter - dann@catalyst を含むブックマーク はてなブックマーク -  自分用のcatstarter - dann@catalyst  自分用のcatstarter - dann@catalyst のブックマークコメント

lang/perl/misc/catstarter/dannに移動

http://coderepos.org/share/browser/lang/perl/misc/catstarter/dann

catgen.shなどもコミットした。

Catalystでi18n

| 20:32 |  Catalystでi18n - dann@catalyst を含むブックマーク はてなブックマーク -  Catalystでi18n - dann@catalyst  Catalystでi18n - dann@catalyst のブックマークコメント

Catalyst::Plugin::I18Nを使う。

これを使うことで、locメソッドが使えるようになる。

メッセージの国際化の方法

Pelrモジュール

$c->loc('Hello World');

TT内

[% c.loc('Hello World') %]

で、localeに応じた切り替えが可能。

POファイルの置き場所

poファイルは、MyApp/I18N/ に配備する。

POファイルの生成

catstarterで、以下のようなscriptscript/myapp_update_po.sh に生成するようにしている。

script/myapp_update_po.sh で、MyApp/I18Nにpoファイルを生成するようになる。

TTのテンプレートとPerlモジュールが国際化対象。

#!/bin/sh
(find root/templates/ -name '*.tt2' ; find lib/ -name '*.pm' )| xargs xgettext.pl -o lib/MyApp/I    18N/ja.po
(find root/templates/ -name '*.tt2' ; find lib/ -name '*.pm' )| xargs xgettext.pl -o lib/MyApp/I    18N/en.po

POファイルを生成したら、charsetはutf-8に変更しておくこと。

msgid ""
msgstr ""
"Project-Id-Version: XXX\n"
"PO-Revision-Date: \n"
"PO-Revision-Date: \n"
"Language-Team: XXX\n"
"Last-Translator: XXX\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

考察

Catalystにべったり依存した構造にするのであれば、これでもいいかもしれない。ただ、Catalystに依存しないようにとモジュールを作った場合に、そのモジュールがcontextにアクセスできないと国際化ができなくなるので、その点で国際化機構をCatalystのプラグインにしてしまうというのは、困ることはありそう。

国際化機構は、Catalystのフレームワークとは別の枠組みで作ったほうがいいかなというのが、今のところの印象。

TODO

  • POファイルの生成部分の改善

Catalystでキャッシュ

16:23 |  Catalystでキャッシュ - dann@catalyst を含むブックマーク はてなブックマーク -  Catalystでキャッシュ - dann@catalyst  Catalystでキャッシュ - dann@catalyst のブックマークコメント

基本的なキャッシュの種類

http://www.thinkit.co.jp/free/marugoto/2/1/6/1.html

  • HTTPキャッシュ
    • HTTP 1.1ではキャッシュ機能が強化され、より細かいキャッシュコントロールが可能
  • 出力キャッシュ
    • 動的に生成したページをディスクなどに保存し、DBクエリ、ページ生成負荷を軽減
  • クエリキャッシュ
    • DBサーバーへのクエリ結果をキャッシュし、クエリ数を削減

これに対応させてみると、

  • HTTPキャッシュ,出力キャッシュ
  • クエリキャッシュ

後は、

See also:

http://catalyst.perl.org/calendar/2005/11

GalangGalang2012/10/31 00:53I suppose that sounds and smlles just about right.

serowtserowt2012/11/01 06:46dg9QAM , [url=http://lguawwokcygh.com/]lguawwokcygh[/url], [link=http://znungxozrjzp.com/]znungxozrjzp[/link], http://etsniywijzoa.com/

pcoposfcuyapcoposfcuya2012/11/01 13:21FcmCUk <a href="http://fnojtbacntmu.com/">fnojtbacntmu</a>

vgozepoqvgozepoq2012/11/02 02:125rliHl , [url=http://ishgorqhgyly.com/]ishgorqhgyly[/url], [link=http://cugddjtgnaxl.com/]cugddjtgnaxl[/link], http://xhbdujjoggle.com/

トラックバック - http://catalyst.g.hatena.ne.jp/dann/20080217