トップ 最新 追記
RSS feed

ただのにっき


2011-02-05(土) [長年日記]

川崎フロンターレ2011年度試合日程

例年のとおり、Googleカレンダーに今年の試合日程を反映。カレンダー下部のcalendar_plus_ja.gifをクリックすると、自分のカレンダーに取り込めますん(ω)。

Tags: frontale

2011-02-04(金) [長年日記]

「東京Ruby会議05」でUnicode正規化の話を聴いてきた(えっ?)

[写真]全員"talker"と入った名札

そういえばRegional RubyKaigiに参加するのは初めてだ。今までは「大RubyKaigiの実行委員がRegionalに参加して(ただでさえ少ない参加枠を狭めるのも)申しわけないなぁ」と思って遠慮していたんだけど、今年は予告通りRubyKaigi2011の実行委員からは外れたので、遠慮するこたぁないのだった。というわけで東京Ruby会議05に参加。

場所は渋谷、ECナビの8Fにある「Ajito」という……なんだろう、そのビルに入っている各社の共同スペースみたいな? 趣向を凝らしたいろんな部屋がある、会議&イベントスペースというか。渋谷にこんな小洒落たフロアを持ってるなんて、ネット企業うらやましい!

冒頭は高橋さんによる「Rubyの楽しさ」に関する講演(台本なし、スライドなしの1時間)で、その後、事前に設定された9つのテーマに別れてテーブルごとのトーク。高橋さんの講演中、意外とWindowsでRubyを使っている人が多いということが判明したので*1、隣に座っていたartonさんと「Windowsの話をしよう」と「その他のテーマ」テーブルへ。

しかし、そこに川端さんがいたものだから話が予想外の方向に転がって、なぜかUnicodeの正規化の話に。Unicodeでは複数のグリフで構成される文字を、1文字でも表現できるし、グリフの組み合わせによる合成文字でも表現できるのだが*2、文字列を比較するにあたって、それをどっちかに統一してから(正規化)比較しないといけない。

で、正規化の手法には合成する方向(NFC、Windowsはこっち)と分解する方向(NFD、Macはこっち)があり、素人考えでもそうとう実装が面倒な世界だと思うのだが、「ruby 1.9にはNFCとNFDだけでなく、加えてNFKCとNFKDという4種類の正規化手法が実装されてるんです」「まじか」「成瀬さん変態すぐる」……みたいなやりとりが。その場では時間がなくて実機では確認できなかったのだが、帰宅してから調べてみた。

Encoding#normalizeとかEncoding#nfcみたいな安直なメソッドがあるわけではなく(内部的にはあるんだろうけど)、ユーザはいつものように万能メソッドEncoding#encodeを使うようだ。NFDされているMacOS Xのファイルシステム向けには「UTF8-MAC」のようなエンコーディングが用意されている:

% irb
irb(main):001:0> s = 'がぎぐげご'
=> "\u304C\u304E\u3050\u3052\u3054"
#     が    ぎ    ぐ    げ    ご
irb(main):002:0> s.encoding
=> #<Encoding:UTF-8>
irb(main):003:0> s.encode 'UTF8-MAC'
=> "\u304B\u3099\u304D\u3099\u304F\u3099\u3051\u3099\u3053\u3099"
#     か    ゛      き    ゛      く    ゛      け    ゛      こ    ゛
irb(main):004:0> s.encode('UTF8-MAC').encode('UTF-8')
=> "\u304C\u304E\u3050\u3052\u3054"

うわー、すげー。じゃあ、こんなのは?:

irb(main):005:0> u = "\u307e\u3099"
=> "\u307e\u3099"
#     ま    ゛       (←ジャイアント・ロボの鳴き声)
irb(main):006:0> u.force_encoding 'UTF8-MAC'
=> "\u307E\u3099"  (←存在しない文字を分解された状態で表現したことになる)
irb(main):007:0> u.encode 'UTF-8'
=> "\u307e\u3099"

おおー。合成できない文字はそのままなんや。すごいなぁ。

……とまぁ、あのテーブルはえらくフリーダムだったな。

第2セッションは「メタプログラミングRuby」のテーブルに入って、tDiaryのコードがいかにひどいかという話をするなど。みなさんメタプログラミングのデバッグで泣いていると。

これらのセッションの間は全員おしゃべりをしているので(名札には全員「talker」と書いてある)、この間Twitterにはなんの情報も流れなかった。当然Ustreamもないわけで、今回の東京Ruby会議05はその場にいないと得られない何かのために集まるという、Ust時代(以降)にあるべきカンファレンスの姿としていいモデルになるんじゃないでしょうか。

*1 最近のRuby界隈はMacに侵食されすぎていてひどいありさまなので、これはなかなか珍しいことである。

*2 話の発端はMacOS Xのファイルシステムでは機械的に文字を分解して使っていることから。つまり、Macで「が」というファイルを作ると内部的には「か」と「゛」の2文字分からなるファイル名になる。Finderではちゃんと合成後の表示になるが、コンソールでlsコマンドを叩くと悲しいことになる(のだそうだ)。


2011-02-03(木) [長年日記]

OnDeck 第3号がKindle対応

[写真]OnDeck03 on Kindle3

インプレスの電子雑誌「OnDeck」の第3号が出たんだけど、この号からなんとmobiフォーマットも提供開始。なんでも日本ではじめてらしい。いやー、がんばってるなぁ。

もっともmobiはEPUBとそっくりなので、変換は難しくないだろう……と思いつつ読んでいたら、CSSを微調整しただけであとはCalibreで変換したらしい。なぁんだ……。その証拠(?)にというか、あんまりKindle向けには最適化されていないようだ。

特に写真は、カラーのままで使っているせいで、Kindleで見るとコントラストが足らない(こないだJコミのPDFをKindlizeしたときのようにちょっと濃い目にすると良い)。記事中の写真はまだしも、広告まで薄くて読めないのはまずいんじゃないの。あと、Kindleは<table>の<caption>の実装がひどくて、表の1セルとして表示されてしまうから基本的に使ってはいけないんだけど、そのまま工夫なしに使っていたりして、もうちょっとかなーという感じだ。

まぁ、Amazonがもたもたしているせいで日本ではマイノリティになりつつあるKindleもターゲットに入れてくれただけでもありがたいものだけど。この調子で、有料化の際にはAmazon.comで買えるようにするのはどうですかね。

(ここまで雑誌の中身についての記述なし)

CES2011レポートは面白かったな。アメリカの電子出版業界が、例によってみごとな水平分業になっていて、スペシャリストが集まって自身の強みを生かしたビジネス展開をしている様子がよくわかった。翻って日本は、一部の企業が固まって共同出資で会社作っちゃったりして、すごく閉鎖的な垂直統合モデルに見えちゃうんだよなぁ。実際はAmazonやAppleの方がよっぽどクローズドなのに、日本のサービスの方が閉鎖的にみえてしまうのは、これはもう、プロモーションが下手としか言いようがない。

あと、ダイヤモンド社インタビュー。再販制度に守られてきたせいで、今まであまりマーケティングを意識してこなかった編集者が、電子出版を通してマーケティングに目覚めるくだりは実に面白い。だって、ドラッカーの本を出してる出版社がだよ? 「もしドラ」の中でも、主人公が真っ先に取り組むのがマーケティングなのに、まったく実践されてなかったってことだもんなー。電子出版がいろんなものを変えているってことで、これもまた喜ばしい(?)。

Tags: ebook kindle

トップ 最新 追記
RSS feed