September 26, 2006

Lingua::JA::Hepburn::Passport でヘボン式ローマ字変換

ひらがな/カタカナからヘボン式ローマ字に変換するモジュール Tatsuhiko Miyagawa / Lingua-JA-Hepburn-Passport-0.01 - search.cpan.org をリリースしました。

同じようなことをするモジュールは Lingua::JA::Romaji, Linguua::JA::Romanize::Kana, Text::Kakasi といろいろあるんですが、日本の外務省パスポートのルール にあるヘボン式に則ったものは1個もなかったので車輪の再発明。

  use utf8;
  use Lingua::JA::Hepburn::Passport;

  my $hepburn = Lingua::JA::Hepburne::Passport->new;
  $hepburn->romanize("みやがわ");     # MIYAGAWA
  $hepburn->romanize("おおの");       # ONO
  $hepburn->romanize("かとう");       # KATO
  $hepburn->romanize("ゆうこ");       # YUKO
  $hepburn->romanize("なんば");       # NAMBA
  $hepburn->romanize("はっちょう");   # HATCHO

  # Indicate long vowels by "h"
  my $hepburn = Lingua::JA::Hepburne::Passport->new( long_vowels_h => 1 );
  $hepburn->romanize("おおの");       # OHNO
  $hepburn->romanize("かとう");       # KATOH

みたいにつかいます。long_vowels_h をつけるとオオ・オウの長音に H をつけるようになる。

Posted by miyagawa at 10:48 PM | Comments (2) | TrackBack (0)

September 12, 2006

学校では教えてくれないエンジニアリング英語 #2: Push the code

第1回はなかなか好評 だったようで、若干プレッシャー感じたりもしていますが、早速第2回いってみましょう。週1くらいでできるといいですねえ。

そういえば、何十回とたまったら書籍化なんかいいですね。始まったばっかりでいきなりそれかよ、って感じですが、こういう本ってなかなかまとまってないので面白いかも。

コードのリリース

今日のテーマは「ソフトウェアのリリース」。このリリースにはいろんな言い方がありますが、ライブのサービスでよく使うのが "Push" という言葉です。例文から。

"We just pushed the 2.1 code to the production. Test it away and let me know if you find any problems." (2.1 のコードを本番環境にリリースしたよ。テストして何か問題があれば教えてくれ)

push 自体には、手元からリモートに成果物を送り出す、というような意味合いがあります。QA 環境やステージ環境にあるコードをプロダクションに「送り出す」様子をイメージするとわかりやすいかも。"Code push" という風にすれば名詞として使えます。

"Code push just started now ... waiting for complete." (いまコードを本番化中... 完了まちです)

似たような言葉で "roll out" というのもあり、

"1.5 was rolled out this morning without problems." (1.5 は問題なく本番化されました)

"We tentatively schedule the rollout tomorrow morning PST." (本番化はPSTで明日の朝を仮で予定してます)

こっちのほうが「本番化」というのに近いかも。

rollout も push も実際に稼動しているサービスのコードを置き換えるイメージがあります。パッケージソフトウェアなどをダウンロード可能にする場合には、普通に release っていう感じかなあ。

"Movable Type 3.32 is released world wide right now." (MT 3.32 はたったいま全世界でリリースされました)

Examples

(Examples は Six Apart の Mailing List から、一部固有名詞を変更して抜粋しています。生きた英語!)

"We'll be pushing out a bug-fix maintenance release (version 1.01) for XYZ this afternoon at 3:30pm Pacific time. The changelog and roll plan are below." (今日の午後 3:30 太平洋時間に XYZ のバグフィックスリリース 1.01 をプッシュする予定。変更点とリリースプランは以下の通り)

"We are beginning our push of AAA 2.1 now at 2pm. This release introduces a small subset of changes that will help easy the transition when 2.2 rolls later this month." (午後2時に AAA 2.1 の本番化を開始します。このリリースに含まれる変更で、月末に予定している 2.2 のリリースがよりスムーズになる予定)

Posted by miyagawa at 10:46 PM | Comments (4) | TrackBack (0)

September 10, 2006

CPAN::Mini で CPAN のミラーをローカルに

DECON で話してきたネタですがちょっと詳しく。

飛行機やら電車の中やらでオフラインハックするときに(たまに)問題になるのが CPAN モジュールの不足です。「あぁ、このマシンにはあのモジュール入ってねぇ~」とかでハックが滞るのは萎えます。というわけで minicpan。CPAN::Mini というモジュールで、CPAN モジュールの最新版だけを持ってきてミラーをつくることができます。

導入は簡単で、CPAN から install CPAN::Mini すると minicpan というコマンドが付属してきます。コマンドラインから使うには、

> minicpan -r http://ftp.funet.fi/pub/languages/perl/CPAN/ -l ~/minicpan

とかすれば finet から HTTP で同期できます。ftp:// を使うことも出来るのですが、モジュール1個ずつ anonymous ログインするのが無駄なので HTTP がベターです。あとはこれを crontab にでも登録してやれば OK。CPAN シェルからの利用は、

cpan> o conf urllist unshift file:///home/miyagawa/minicpan

のように。オフラインハック用じゃなくても、モジュールのダウンロードがローカルからで高速になるので、普段からやっておいて損することはないはず。ちなみに minicpan のミラーサイズは 500M くらいになります。CDROM におさまりますね。YAPC::Europe のオマケ CD にもプレゼン資料といっしょに入ってました。

Posted by miyagawa at 05:25 PM | Comments (0) | TrackBack (0)

September 09, 2006

DECON 2006 で講演してきました

Shibuya.JS DECON で講演してきました。

私のタイトルは "Hacking Vox and Plagger" で、Xen や yum/rpm を使った Vox のアプリケーションデプロイネタとか、Plagger のオープンソース型開発モデルとテストドリブン、リグレッションテストやスモークテストなどの話をしてきました。発表資料はこちらにおいておきますのでご参考まで(一部発表内容と異なるスライドがありますがご了承を)。

発表資料 (PDF)

Posted by miyagawa at 09:03 PM | Comments (1) | TrackBack (0)

September 07, 2006

Plagger World Tour が終わりました

20060902 267

8/30-9/1 とイギリスはバーミンガムで行われた YAPC::Europe 2006 に参加してきました。YAPC::NA, OSCON に続く World Tour 3部作がこれで終わりました。

バーミンガムはロンドンから電車で1時間半のところにあるということで、まずはヒースロー空港から svk の作者でもあるスーパーハッカー clkao の家に到着。最近は Best Practical で telecommute で働いています。

カンファレンスは200人程度、ヨーロッパの各地から来ていることもあり、英語の訛りもブリティッシュ(最初はきついが慣れれば問題なし)、フランス(ほとんど聞き取れない)、ドイツ(わかりやすいがたまに違和感)と各種さまざま。自分の発表は最終日の朝っぱら9時から Plagger ネタ、それと Lightning Talks で Google Maps Tilt をプレゼンしてきました。

Plagger スライドは YAPC, OSCON と同様の構成をベースにしていますが、フィードバックをもとに順序や細かい部分をアップデートしたので、今まで一番いい出来になっていると思います。とりあえず今年はカンファレンス終了かなという感じですが、他の場所でやってという声がかかれば、可能ならいきますので呼んでください。

20060902 139

カンファレンスの前後はロンドン観光。博物館にいったり、ノッティングヒルのカーニバルを見たりと楽しく過ごせました。ただユーロ・ポンドの影響か何でもかんでも物価が高いので、長期で住むのはきつそうだな、と思ったり。

ヒースロー空港は相変わらずセキュリティチェックが厳しくて、手荷物も1つまで。なんだかちょっと憂鬱になりましたが、オンラインチェックインで狙っていた席をゲットできたため、横の列が全部空席というすばらしい環境に。ミッションインポシブルIII やら ALWAYS やら見ながら、寝転がって寝れました。エコノミーの環境は席にかなり左右されるという例ですね。。。

帰国していきなりですが、明日は shibuya.js のイベント DECON (開発環境カンファレンス)にスピーカーとして参加します。まだネタとか決めてないですが(!)、来られる方は会場でお会いしましょう。

Posted by miyagawa at 09:10 PM | Comments (0) | TrackBack (0)