オライリージャパンから出る PSP Hacks に 2本原稿を寄稿しました。オライリーサイトで TOC が見れます が、
48. iTunesのプレイリストをPSPで再生する
50. YouTubeの動画をPlaggerでダウンロードする
の2本です。PSP 好きな方はぜひ手にとってごらんください。
# Plagger Hacks への布石?
Plagger でメーラを UI に、というと Gmail を連想する人が多いかと思います。実際キラーアプリの例として Bloglines を Gmail で読む という原点があって Plagger が生まれたわけで、依然として Plagger のフロントエンドとして Gmail を使うことはオススメな使い方の1つですね。Publish::Gmail というプラグインの名前にしても、「Gmail イカス!既存のメーラ捨て!」という(アーリーアダプター的性格を持った)人にアプローチしていくのが Plagger のマーケティングとして(当初は)正攻法だろうという意識があったのだなあと、いま振り返ると思えてきます。
けど、takesako さんの LLRing での活躍 などのおかげで新しいユーザ層にもアピールしている昨今、「Plagger って結局 Gmail ないとだめなのね」とかいう誤解がもしあるとすればとっぱらいたいなぁ、というわけで。Gmail は先週から招待がいらなくなったみたいなので障壁という意味では少なくなっているとは思いますが、通勤中にオフラインで読みたいんだよ、というニーズにはGmail では答えられなかったりというのもありますし。
前置きが長くなりましたが冒頭のスクリーンショットは Becky! で Bloglines の新着フィードを表示した様子。Becky! はデフォルトで HTML メールの表示が可能なのでとくに無設定でイケる。なんでこれをやろうとしたかというと、明日から YAPC::Europe に向けてロンドンへ12時間のフライトなのでその前に Gmail にためてるフィードを POP3 でダウンロードしてみようかなと。Publish::Gmail で mailto: を自分のサーバ (Gmail 以外) にしてももちろん OK ですが、今回は Gmail の POP3 機能をつかって、Plagger 専用アカウントのメールを全部吸い出してみました。
実際オフラインでこれを見ると画像つきのフィードは img src でオンラインの URL にリンクしているので表示は出来ないと思われますが、
- module: Filter::FindEnclosures - module: Filter::FetchEnclosure - module: Publish::Gmail config: attach_encosures: 1
とかすれば画像を全部ダウンロードして添付ファイルにして、cid でリンクできるので無問題。
フィードのロゴ画像やエントリの author icon は現在 enclosure として扱われていないとか、 Gmail のカンバセーション機能に相当することは Message-Id などでスレッド管理をしないと とか問題はありますが、ちょっとしたハックで解決できそう。
ソフトウェアエンジニアリングの現場で使うような英語って、たまにクセがあったりしてわかりにくかったりすることってありますよね。年に半分程度US出張も含めて外資系で1年半やってきた経験から、エンジニアの日常会話で使う英語を解説していくシリーズを不定期連載してみようかとおもいました。
よく海外在住の日本人ブロガーの方が同じような企画やってますが、エンジニアリングに直結したのは少ないかなとおもったので。あと当然ですが、僕はネイティブじゃなく、業務やら日常会話やらで覚えてきた内容をもとに書いているので間違いがあれば指摘は歓迎です。
第1回の今日は、記号の読み方。最初、結構とまどったんですよね。
"-" をなんと読むか。日本人だとハイフンが多いでしょうか。アメリカ英語では、"dash (ダッシュ)" と読みます。"minus (マイナス)" でも通じるけどダッシュのほうがおおいかなあ。単語の間にあると dash で、- が単語の先頭にあると minus、といってもいいかも。hyphen 通じるかもしれないけどあまり使っているのを見たことがない。
"foo-bar" は「フー・ダッシュ・バー」
"ls -l" は「エレス・マイヌスエゥ」
みたいな感じ。余談ですが a と u の発音の違いを意識するために、基本 "u" は "ゥ" と読むようにしてます。bug は「バグ」じゃなくて「ブゥグ」。
_ は普通に underscore で OK.
# は「シャープ」と読んでしまいがちですが、音楽記号の #「シャープ」と ASCII コードの # はUnicodeでは別のコードポイントであることからもわかるように、れっきとした別の文字。Microsoft の C# が ASCII の # を使っているのは、# が ASCII コードで sharp に字が似ているから、という理由らしい。via Wikipedia
で、アメリカではなんて読むかというと基本的には "Hash mark". 文脈に応じて "Number" や "Pound" と読むこともある。
foo#bar は "foo hash mark bar"
#123 は "Number one twenty-three"
#plagger は "Pound plagger"
よりくわしくは Wikipedia: Number Sign にて。
* は「アスタリスク」ではなく、"star" あるいは "star mark"。星(★)に似てるからですかね。
英語の末尾に使う記号「ピリオド」ですが、アメリカ英語では "dot" あるいは "point"。
foo.html は "foo dot html"
2.0 は "two point oh"
まあこの辺は Web 2.0 やらなんやらで日本でも聞きなれてきているかもしれませんが、数字の 0 を oh (オー) というのも最初はとまどうかも。zero といってもいいけど、アメリカ人で数字の中の 0 を zero という人はほとんどいない。逆に1個もモノがない状態を "zero state" といったりします。
"We should display a fancy error message if the database is in zero-state." (データベースに1個もエントリがなかったら、こぎれいなエラーメッセージを出さないとね)
ということで、記号の読み方はあんまりエンジニアリング関係なかったですが、結構最初はとまどったなぁという紹介でした。
次回以降に向けて質問とかあったらコメント欄や Email miyagawa at gmail.com までお気軽にどうぞ。不定期なので1回目で企画倒れする可能性もなきにしもあらずですが ... ネタはもう少しあるので3回ぐらいは少なくともやるとおもいますw
Perl Best Practices 日本語版発売記念ということで、Plagger のユニットテストに Test::Perl::Critic を組み込んでみました。
組み込むといっても実装は簡単で、t/99-perlcritic.t なファイルをつくって、以下のように書き込むだけ。
use strict; use Test::More; eval { require Test::Perl::Critic; Test::Perl::Critic->import(-profile => "t/perlcriticrc") }; plan skip_all => "Test::Perl::Critic is not installed." if $@; all_critic_ok("lib");
lib ディレクトリ以下の .pm ファイルに対して、 Perl::Critic で PBP で推奨されたスタイルかどうかをチェックして、なければエラー (test failure) になる、というシンプルなコードです。Perl::Critic のデフォルト (PBP のデフォルト)だと厳しいルールがいくつかあるので、t/perlcriticrc なファイルをつくって、以下のようにしました。
# for mkdir $dir, 0777 [-ValuesAndExpressions::ProhibitLeadingZeros] # we do eval $asset_pl a lot [-BuiltinFunctions::ProhibitStringyEval] # no strict 'refs' [TestingAndDebugging::ProhibitNoStrict] allow = refs
コメントにある通りですが、filemask に使う leading zero, eval $string, no strict 'refs' を許容しています。
実際にこれでチェックしたところ、use strict してないファイルや 2引数の open を使っているコードがいくつかあったので、まとめて 修正。ポリシーでは許可しないけど、このコードだけでは使いたい、というようなときは、
my $value = $res->header($header) or return undef; ## no critic
のように no critic と ## を利用したスマートコメントに書けば Perl::Critic が無視してくれます。
これで、Plagger コードに perlcritic 非互換なコードをコミットすると Chimps Server で見つかって #plagger(-ja) に IRC でアナウンスされてしまうというわけ。これはベンリですね。
Carson Workshops Summit - The Future of Web Apps
Two-day conference focusing on the development technology you'll be using tomorrow.
サンフランシスコで Carson の Future of Web Apps サミットが 9/13-14 に。この時期は US 出張いってないので参加できないのが残念。。。 この豪華なスピーカーで $295 なら良心的だよなぁ。
YAPC::Asia 2006 のスピーカーを中心とした執筆陣が豪華なまるごとPerl が明日発売です。自分は Plagger の導入から実際のいくつかのサンプル config で動かしてみるあたりまでの記事を書いてみました。16p ぐらいあるので結構ボリューム大目で、導入としては一番まとまっているかも。
他にも面白い記事がつまっていて、全篇 Perl の話題満載なので、ぜひ見てみてはいかがでしょうか。
ちょっといまさら気味ではありますが、カルチョビットの紹介。
ベストプレープロ野球以来の園部氏ファンとしてははずせないというわけで買ってみたんですが、やっぱ面白いですわコレ。ほかのパリティビットゲーム同様、自分は監督なので試合は見てるだけなんですが、なんか見入ってしまいます。暇な時間にまとめてやるというよりは、寝る前とか起きたときにちょろっと数試合ずつやっていく感じになるわけですが、この育成ゲームっぷりがいいです。
体調は一覧でみたいなとかネットで対戦したいとか、いろいろ不満・改善点はありますが、自作が DS で出れば解決するかなー。ダビスタは PSP で出るみたいだけどゲームはやっぱり DS でお願いしたいですね。
この夏はカンファレンスで各地に行く予定が入っているのですが、まずは6月下旬から7月にかけて YAPC (Yet Another Perl Conference: http://yapcchicago.org/) でシカゴ、ボストン、ニューヨークと移動してきました。本格的に英語圏の参加者を対象に英語でプレゼンテーションをするのははじめての経験になりますが、まずまずうまくいったのではないかと思います。 ... 今回は US オフィスでの開発チームにはどういった人がいるか、をざっと紹介することにします。 Six Apart は創業者夫妻の Ben と Mena Trott が 28歳(=私と同い年です)であることを筆頭に、とくにエンジニアリングやデザインなどの人材は年齢層的にかなり若いといえると思います。
この続きは、↓で。