おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか

おがさわらなるひこ @naru0ga が技術系で興味を持ったりなんだりしたことをたまーに書くブログです。最近はてなダイアリー放置しすぎて記事書くたびにはてな記法忘れるのではてなブログに移行しました。

クリエイティブ・コモンズ・ライセンス
特に断りがない場合は、本ブログの筆者によるコンテンツは クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。

第99回カーネル読書会「Plumbers / LinuxCon 参加報告」

楽天タワーにて2009.10.13に行われた、第99回カーネル読書会に行ってきました。

いつものように主催の hyoshiok さん、会場ご提供いただいたうえボランタリーにいろいろ働いてくださった楽天のみなさま、スピーカーの皆様に感謝のみ述べておきます。


資料、動画ともすでに公開されているでしょうが、私視点でちゃちゃっとまとめたいと思います。と毎回書いてる割には長文になるんですが。

Plumbers / LinuxCon とは?

  • もともと Ottawa Linux Symposium (OLS) というのがあった
  • Kernel Summit 併設のため、ハッカー的に非常に盛り上がるコンベンション
  • しかし、今年は Kernel Summmit は日本開催となった
  • いい機会だし、コンベンションのスタイルを見直しましょう
  • 来年は Boston で LinuxCon + Plumbers + Kernel Summit ぜんぶやるよ!

Plumbers 報告 by 塚本さん@SCE PS3 Linux グループ & 吉川さん@NTT オープンソースソフトウェアセンター

1st Day
  • KeyNote: David Miller (N/W メンテナ)
    • あんまり中身覚えていない
    • Plumbers のサイトでスライドは公開されてます*1
  • General Track の Dave Hansen @ IBM の Out of memory のときにどうするかの話は面白かった。
    • アプリケーションサイドから見ると、OM Killer でプロセスが殺されたときには副作用が見えないので結局リブートしかない。
    • そこのところをカーネル側としてはどう考えているのか?
    • 結論としては、まだまだコミュニケーションが必要。
2nd Day
  • LinuxCon と同時開催
  • KeyNote: Mark Shuttleworth*2
    • ビデオはこちら。
    • 全部のディストロはリリース日を一緒にした方がよくね?
    • upstream のバージョンも揃うし
    • バグ情報とかも共有しやすくなるし、
    • 色々うれしいじゃん?
      • そりゃうれしいけど、各ディストロで戦略も歴史も違うから、難しいよねえ。
      • UbuntuDebian を同じスケジュールでリリースするとか考えられないし (^^;)
  • レセプション
    • オススメ:誰と会ってなにを話したいかあらかじめ考えておく。
    • 漫然と名刺を配って回るより、もっと深い議論につながる!
2nd day a.m. Tracks
  • General
  • Realtime (塚本さんはここに参加)
  • Security
  • Realtime
    • Preemption をより強力に
      • LinuxRTOS 並になる
      • でも多分その条件下だとドライバのバグがボロボロ出るので泣きながら修正するのとおっかけっこになりそう。
2nd day p.m. Tracks
  • General
  • Boot and Init (塚本さんはこれに参加)
  • Security
  • Boot and Init
    • Upstart のセッションが興味深い
3rd day a.m. Tracks
  • General
  • Kernel/User Space/User Interface (塚本さんはこれに参加)
  • Storage
  • Kernel/User Space/User Interface
    • USB 3.0 はデバイスがまだ出てきていないのでデバッグの進捗がよくない
      • でもちょろちょろ出始めているので加速するのでは?
3rd day p.m. Tracks
  • Embedded System
    • 日本のベンダが組み込み機器ベンダ、半導体ベンダ含めて誰も出ていない
      • これってすごくまずくね?
    • バグをみつけて当該プロジェクトで潰しても、プロジェクトが終わるとチームが解散されてしまうので Upstream にパッチを投げられない
      • したがって毎バージョン昔のパッチをポーティングするハメになる
      • 工数の無駄!
Last Session: Linus Torvalds – An Advanced Git Tutorial

ビデオはこちら

  • はっきりいって、このチュートリアルで git の使い方をなにか知ろうという努力は無意味
  • その代わり、Linus が git を使ってどんなことに関心があって目を配っているかを知るには非常に面白い
    • Plumbers の会期中にはマージウィンドウが開いていたので、そのなかでビルドブレイクを引き起こさないようにするにはどうするか、とか……。
全体総括
  • Plumbers は開発者向け
    • でも DevCon よりはギンギンじゃない感じ
  • LinuxCon はビジネスにも向いている
  • LinuxCon は one way なセミナーっぽい感じ。
  • Plumbers は discussion の場。
    • 前の方に陣取って議論に参加しようとしないとつまんないこともあるかも。

初のイベントだったがいってよかった。OLS の後継たりうるイベントだと思う。
来年のボストンは Kernel Summit も併催なのでより盛り上がるだろう。
みんな行け!

LinuxCon レポート by 小薗井 @ The Linux Foundation Japan さん

主催者側としてのレポート

概要
  • The Linux Foundation が主催するイベントのうち今年が始めて
  • 開発者のためのイベントだけでなく、もっと幅広く参加できるイベントを
  • Registration: 600, Actual: 520〜530
    • 有償イベントとしては大成功!
  • 対象者:ビジネス、管理者、エンドユーザー、もちろん開発者
    • でもバリバリのスーツ族はいなかった
イベントページ
  • Web 2.0 を活用したかっこいいページ。
    • クリック一発でプログラムの参加申し込みができる。
    • 自分の参加するトラックをファイルに落としたり印刷したりできる。
    • でも Social 機能はあまり使われなかった……。
Jim Zemlin (The Linux Foundation General Manager) の Opening KeyNote
Joe "Zonker" Brockmeier (openSUSE community manager) の KeyNote
  • なんで妙に Novell 露出多いんだろうと思ったらこのイベントのスポンサーなのね。
  • まあ四の五の言わずにビデオ観なさい、だそうです。僕まだ観てないけど。
ボランティアの力
  • スタッフ総勢600人
    • ウチ The Linux Foundation の employee は三人*5
    • あとイベント運営会社から少し。
    • 残りはほとんどボランティア!
  • Kernel Summit / JLS でもよろしくね!

LinuxCon 参加&発表報告 by NTT データ 原田さん

TOMOYO Linux プロマネの原田さんが、その経験を LinuxCon で発表した報告

参加の動機
  • LinuxCon は技術べったりじゃない、ビジネスやプロマネにもフォーカスしたイベント
  • しかも記念すべき第一回
  • 日本から発表しない手はない!
  • オープンソース精神:やった成果は共有したい
感想
  • LinuxCon はとても重要な会議になるだろう
    • 技術や開発からもう一段上がった話ができる場
    • しかも Plumbers というハッカー向けのイベントも併設
  • OLS と比べると、大分スマートなイベント
    • OLS では、みんな電源とネットワークケーブルを求めて床に座っている
    • OLS では、誰も入館証なんか見てない(有償イベントなのに)。だれでも入れちゃう
    • OLS はどことなく荒んだ雰囲気がある
      • が、なれるとそれが気持ちいい
  • あの雰囲気がなくなったのは寂しいが、Linux の発展の為にはよいことだと思う。
What he has presented?
  • もちろん TOMOYO がネタ元
  • 企業の文化と OSS の文化をどうすり合わせるか
  • 非常によい反響
    • どこの国でも同じような話はある。日本だけとくべつに閉鎖的なのではない。
総括
  • やはり成果を話すことは重要
  • LinuxCon は今後も要チェック

懇親会

一番印象的だった原田さんと塚本さんにお声をかけてお話しさせていただきました。
ぶっちゃけオイラも「日本の企業文化のなかで OSS をやる」ことに挑戦しているわけですから。

そしたら「えっと、個人的に OSS を仕事にしたい、という希望なら、会社止めた方がいいと思います。でも、OSS をやることが会社のためになる、だからやりたい、というなら、頑張ってください、としか言えません。ものすごく苦労すると思いますけど。大変ですよ〜〜〜」というありがた〜〜〜〜いお言葉が。
ええ、頑張りますよ。頑張りますともっ。

たとえば、たとえばですよ、管理職(課長・部長クラス)に Jim Zemlin のビデオを見せることができるか。
いや、もっと手前で、ZDNet の記事を読ませることができるか。
階層をあげて事業部長クラスならどうか。
企画や営業やサービスならどうか。
うーん、考えなきゃダメですね。

でもでも、それはわかっていてやっているので、頑張りたいと思います。
みなさん、貴重なお話ありがとうございました!

*1:2009.10.16現在、ビデオは準備中だそうです。

*2:ご存知南アフリカ生まれの大富豪、Ubuntu の創始者。

*3:Twitter で「UpstartCanonical 開発だよ」とご指摘いただきました。すみません。なんで間違えたんだろ。

*4:ウチの会社にも一度来てくれたけど、とっても聞き取りやすい英語を喋る人で、かつ非常に話がうまい人です。誰かが「アメリカの中古車屋さんみたい」とか言ってたな。

*5:ホントはスタッフでなく行ったはずの小薗井さんもなんやかんや手伝ったらしい。

日本語組版あれこれ

今朝方 Wassr でつぶやいたんだけど、ちょっと流しちゃうのもったいないからブログにペタンコ張って残しておきます。

なお私はプリンタ屋さんだからこういうことを知っているわけではなく、プリンタは上位層(アプリケーションから OS を経由して)から「こう印刷しろ」と言われるだけなので、むしろプリンタ屋は組版のことをさほど知りません。特に超高速機は完全に市場が違うので、我々オフィスプリンタメインの人間は、どういうワークフローで印刷物が出来上がっているのすら知らない人間がほとんどです。
ということで、私の和文組版についての知識は素人知識です。10年以上前の学生時代、TeX: The Program を読んで感動し、日本での事情をしらべたり、研究室の先生がたまたまそういうことに造詣があったおかげでいろいろ教えていただいたのが主で、あとは業務上、周辺知識を少しかじったぐらいです。
ので、デタラメな記述などあるかもしれませんが、ぜひぜひご遠慮なくご指摘いただければ幸いです。

和文組版と字間 (glue)、行間

そもそも活版印刷では同じ幅の活字をつめていくので字間に glue (糊、伸び縮みを許す空白。ただし空白はサイズ0でもありうる) は入りません。その伝統を踏まえ、電算写植の時代になっても、文字は綺麗に縦(横書きの場合。むろん縦書きの場合は横)に揃うのが美しいとされています。ただしここは異論もあるようで、川(縦の文字の流れが見えてしまうこと)が生じるので行頭インデントを1.5文字程度にすべきというデザイナさんもいらっしゃるようです。
PC のプロポーショナルフォントのように、和文なのに仮名文字がプロポーショニングするのはこの伝統からすると非常な違和感があり、なぜあのようなフォント設計になったのか理解に苦しみます*1
なお、文字枠にぎっしり字がつまるケースが多いのと、川が生じても見にくくならないように、和文の組版においては行間は文字間の 1.25〜1.5倍にするのが常識です。CSS を書くときでも行間指定するだけで大きく見やすくなりますしね。

行末均等処理

和文の場合行末も揃うのが普通なのですが、すべて仮名漢字であればよいのですが、そうでもない場合がある。これを glue がないのでどうやって合わせるかというと役物で合わせるのが普通。役物とは「、。!?」などの記号のこと。ちゃんとした出版物を見てみると分かるのですが、役物の前後のスペースというのは常に等幅とは限らないのです。ここに微妙な空白のツメをすることで行末を合わせるのがテクニック。
同じような話に、行頭の "「" の問題があります。PC の普通のフォントの引用符 "「" は、括弧を構成する矩形のほぼ中央に縦のストロークがありますが、これを「行頭一字下げ」のルールとどうすり合わせるかということです。
まあ、ごくごく一般的には、

 何々は、次のように言った。
「ボクチン、ぽんぽんすいたー」
 それにより一同は、思ったより時間が経過していることに気づいた。

のように、単純に引用符文字をそのまま行頭一字下げなしで入れる組み方をする場合が多いようです。
まれに、縦のストロークを行頭一字下げの線に合わせるという組み方もあるようです。ただこの組み方だと縦に文字が揃わないので、新旧合わせていくつか参照しましたが、このケースは見つけられませんでした。

英文まじりの和文

一つ難しいのは英単語 (ドイツ語だともっと難しいね) の扱いで、基本戦略は単語間に glue を入れ、多少伸びをよくすること。ただし行末にきた場合はさすがにつらいので、まずはハイフネーションで逃げる。これでもだめなら行末に英単語が来た場合は行末揃えはあきらめ、切れるところでブレークする。
昔の日経BPの出版物(日経BYTEとか)は三段組みなのにこれをやってなくて、英文が入ると文字間がにょろーんと伸びてすごいみっともなかったですね。デザイン担当の美意識を疑ってしまったことを告白しておきます。
なおどうしても英文の比率が多い、例えば専門書や論文の場合、なおかつ段組みにする場合は、行末を揃えない組にするという選択肢もよくとられるようです。

ルビについて

あと和文組版といえばルビの扱いについてなのですが、これはちょと奥が深すぎるのでさわりだけ。非常にヒューリスティックの塊です。これを自動化しているシステムとか存在するのかしら?
基本的には 1/2 幅の活字を載せる(そして小字、ゃゅょっなどは存在しない)関係上二文字ずつ載せることになるのですが、例えば「小学校」にどうルビを振るか考えてみると面白い。
手抜きなシステムだと「小学校」という箱の上に半分の大きさの字で書いた「しよ|うが|つこ|う」をセンタリングで載せるんですが、これだと「小学校」の前後に空きが出て美しくない。やむを得ず「う」だけ次の文字にはみ出させる手もありますが、改行と重なると困ったりもします。逆に前にはみ出させ「し|よう|がつ|こう」とする手もあります。
なおはみ出る場合に難しいのはさておくとしてスペースが余る場合。といっても一文字に二文字しかルビは乗らないので、漢字一文字の読みが一文字、という場合ですね。これは右寄せ、左寄せ、センタリングしかないわけですが、基本は右寄せが多いと思います。
なお Wassr で面白い課題提起をされました。「百舌鳥」はどうルビを振るか。いろんな流儀があると思いますが、私なら

と組むと思います。
大雑把なアルゴリズムを言うと、

  • 各文字のルビ割付が一文字または二文字以内なら各文字のルビを左詰めで振る。
  • 三文字以上の読みがある文字がある場合は、
    • 前後どちらかの二文字で処理できる場合はそこで処理する。
    • できない場合は、各文字に対する読みの割付を無視し、とにかく全部詰めて載せてしまう。
      • これでもはみ出る場合は単語の前後にはみ出させる。はみ出させ方は「一番美しい見え方」なのでここはルール化が難しい。簡単な例としては先の「小学校」であれば「しよ|うが|つこ|う」を上に載せるのが基本ですが、「小学校」の直後に改行が来ているのであれば、「し|よう|がつ|こう」で組むでしょう。

この雑文の意味

もちろんこれ以外にもいっぱい考えるべきことはあって、和文の組版というのは実に奥が深いのですが、こういう文化は DTP で壊滅的な打撃を受け*2*3、Web 時代になって滅びさろうとしている *4
僕は滅びて欲しくないので、KnuthTeX: The Program で欧文のハイフネーションアルゴリズムを一生懸命考察したように、いま書いたようなことを自動で解決できるレンダリングエンジンの開発を切に望むものなのであります。


2009.10.16 追記

id:wanderingdj 様より「活版からの流れが無視されててわらう」とのぶくマコメントをいただきました。

ご指摘のとおりで、少なくとも DTP でない電算写植までの組版ルールは活版印刷によるところ大なのは知識として知っていますが、なぜ文字の組み(基本的に伸び縮みしない)以外で活版との流れを無視しているかというと、非常に単純に私がよく知らないからです。

そんなことも知らないで書くな、というご意見もあろうかと思いますが、私レベルの知識でもお酒の席とかで話すと「知らなかった」「そういう話もっとしてほしい」という声が度々聞かれたので、今回まとめてみた次第です。まとめたと言っても、もとはミニブログの書き込みですので、お気楽な読み物以上のものにはなっていませんが。

私ネットの健全性を信じておりますので、もし私の記述がデタラメだとすれば(そうではないと信じたいですが)、どこかできちんとした記述がなされ、訂正されるでしょう。その呼び水になれば幸いです。

あと一個(むしろこっちが本題)参考文献を提示し忘れたので。

W3C:日本語組版処理の要件(日本語版)

日本語組版のルールは JIS X4051 で規定されていますが、このドキュメントはその抜粋と考えていいと思います。
非常に参考になりますので、このエントリを読まれて日本語組版にいささかでも興味を持たれた方は読まれることをおすすめいたします。

なおこのドキュメントの存在を知っていてなお「日本語版 TeX: The Program 的なものが欲しい」と書いたかと言うと、このドキュメントは規則は書いてあっても、実装指針は触れていないからです。そこを解き明かすことが望まれる、というのが発言の趣旨になります。

長々と補足失礼しました。

2009.10.17 追記

上で「活版については知らないし僕はプロじゃないので間違ったこと書いてたら誰かちゃんとしたこと書いてくれるよね?」と能天気に甘えたことを書いていたら、id:wanderingdj さんが Twitter の発言をまとめたエントリの中で私のエントリに欠けた視点を指摘してくださいました。d:id:wanderingdj:20091017:1255716495 9:22 から 9:30 までのポストが該当します。

私のエントリですら「奥が深い」といったコメントを寄せてくださる方がいらっしゃるのに、さらに現場は奥が深いというお話ですので、ぜひご一読を。

id:wanderingdj さん、ありがとうございました。

*1:なお MS UI ゴシックについては「1 バイト仮名を追放する」という大方針があったので仮名のプロポーショナルはやむを得ないと認識しております。

*2:というと DTP を仕事で真面目にやっている人に申し訳ないのですが、初期の DTP 組版はめちゃくちゃなものがおおかったこと、それによって読者の目もならされてしまったことは事実だと思っています。むろん PageMaker や Quark Express、InDesign などのソフトに日本の事情をどれほどフィードバックしたのかということもあります。

*3:2009.10.15 追記:Wassr でコメントいただきました。ツール面においては今は DTP でも遜色ない組みができるようになってきていて、「壊滅的な打撃」という状況は歴史的事実であるということです。関係各位の努力に敬意を表したいと思います。ただし、それを運用する側で、昔の低機能な DTP ツール群しかなかったころにノウハウの断絶があったことは否定できないようです。

*4:Web はコンテンツありきで組みの結果は読み手の環境に依存するので、結果を見て組みを制御することができません。そこが問題を難しくしています。