MySQL Cafe #11「MySQL 8.0日本語ドキュメント」登壇しました

ラクルさん主催の MySQL Technology Cafe #11 にて、登壇させていただきました。今回のテーマは「MySQL 8.0 日本語ドキュメント」。お声がけをいただいたときに、ちょうど、ドキュメントについて語りたい内容を持っていたため、発表枠のお時間を頂戴してお話をさせていただきました。

oracle-code-tokyo-dev.connpass.com


今回の私の発表は、内容三本立て
(1)MySQL 8.0 の日本語マニュアル嬉しいよ嬉しいよ超嬉しいよ!!!!
(2)過去バージョンの日本語マニュアルのおもいで
(3)最近のマニュアルの更新差分を眺めてるけど、面白いよ!
発表資料(スライド)は、本エントリ末尾にあります。

「スライド」って書いて思いだしたんだけど(関係ない話)、最近は、発表の時に「次のスライドおねがいします」って台詞を吐いたことのない人も、たぶん増えてきていますよね。

MySQL 8.0 日本語マニュアル嬉しい!!!

 
 英語圏で開発され、公用語が「下手な英語」であるMySQL界において、英語以外の言語でマニュアルが公式に用意されるというのは、極めて異例のことです。恵まれているんです。世界中見回しても、英語以外は日本語だけなんです。 オラクル社社内でものすごいネゴシエーションをして、日本語マニュアルを作るプロジェクトを通して、完成させてくれている人がいることに感謝するとともに、我々一般技術者も、「日本語マニュアル、作るのはコストかかるけど、それに見合うリターンもあるな」と開発元に思ってもらえるよう、経済的な力はもちろん、日本でのMySQLを盛り上げていくために、みんなで少しずつ力を出し合えたらいいなと思っています。

 さて、そのMySQL。ご存じの通りOSSオープンソースソフト)です。オープンソースですが、かなり複雑化、巨大化して、少なくとも私のようなレベルの人では、もはや「オープンソースの開発に、ソースコードで貢献」というのは、かなり難しくなってきました。そんな中で、私たちでも貢献できるのが「翻訳内容の修正」です。今回、現時点で公開されているMySQL8.0日本語マニュアルは暫定版なので、みなさんからの修正提案を募集しているとのことです。提案して採用されるかどうかはオラクル社次第ですが、普通に意味がおかしい部分を報告してリジェクトされることはたぶんないでしょう。MySQLというオープンソースの(ドキュメントはGPLではありませんが)活動に貢献できるチャンスです。あなたの提案がMySQLの公式マニュアルに残るのです。なんか嬉しいじゃないですか。
 個人的には、1つずつ報告するのもナニなので、幾つかまとめて報告してみていたのですが、どうも、ひとつずつポロポロ報告している人もいるようなので、それでいいみたいです(笑)。ぜひみなさんも、MySQL日本語マニュアルに記念パピコをしてみてはいかがでしょうか。なお、報告された修正提案は3月中下旬にまとめて反映するとのことです。


 報告されている修正レポートの一覧(bugs.mysql.com):
https://bugs.mysql.com/search.php?search_for=&status=Active&severity=&limit=50&order_by=id&cmd=display&direction=DESC&bug_type%5B%5D=Server%3A+Docs+JP&os=0&phpver=8.0&bug_age=0


暫定公開の MySQL 8.0 日本語マニュアルは以下(4月以降は本公開となりURLが変わります):
https://dev.mysql.com/doc/translation-refman/8.0/ja/

マニュアルの思い出

 詳細は発表資料をご覧ください。
MySQLでは、すべてのメジャーバージョンについて日本語マニュアルがあるわけではなく、結果としてひとつおきくらいに作られていました。 MySQL 5.1 の日本語化の時には、海外の翻訳会社に依頼した結果を、コミュニティの有志(希望者)で、svnのファイルをゴリゴリ更新していったという思い出があります。翻訳会社も章ごとに担当者がいたようで、特に意味の通じないひどい章があったりしたのも、楽しかったなぁ(笑)。
 あと、発表資料中では MySQL 4.1 には日本語マニュアルがない、と書いてしまったのですが、その後、手元のPCのフォルダを漁ってみたら、謎の「refman-4.1-ja.a4.pdf」というファイル(MySQL 4.1 日本語マニュアル)が出てきました。日本語マニュアル、あったみたいです。

マニュアルの差分を見てみて

 どれくらいの頻度で、どんな内容が更新されているのだろうと興味を持って、昨年末(2020年12月)から、簡単な仕組みを作って、差分を眺めています。diffを取って、目視で面白そうなものがないかを眺めているという程度ですが、いち早く最新情報をキャッチアップできたり(でも、その新機能を試せるのは半年後だったりするのですが)、言い回しの変更を見ながらドキュメントチームのこだわりに接して楽しんでいます。
 html化されたマニュアル(MySQLマニュアルは、XML形式の原簿から PDFやHTML形式へと変換されています)には、変換時につけられるIDのようなものがHTMLタグ中に多く含まれているため、そのまま、昨日のマニュアルと今日のマニュアルのdiffを取ってしまうと、実際には内容の変更ではない部分で、大量の差分が出てしまいます。また、HTMLファイルでは、1行が長くなる事も多く、差分を確認するには、ちょっと見にくい面もあり、そのあたりに対する工夫なども紹介しました(詳細は発表資料を参照ください)。

 現時点では、公開するための仕組みを作っていないので、自分でニマニマしながら眺めているだけですが、差分に興味を持ってくださった方もいるようなので、とりあえず手元にある差分ファイル群をお見せできる形にしてサンプルページを作ってみました(雑に手作業で作ったものなので、更新はしません)。ちょっと apache の設定がうまくいっていないみたいで、ブラウザによっては charset を正しく認識できずに文字化けしているところがあるかもしれません。そのときは UTF-8 にして見てみてください。

MySQL refman diff sample.

その他

 発表の機会のドサクサに紛れてちょっぴり営業活動しちゃおうかな、なんて少し思ったのですが、発表内容の分量も結構あったので、そんなことよりも1分でも内容の話に時間を割きたくなり、あんまりちゃんと語りませんでしたので、改めてここで。
 コロナの影響で、私のお仕事面、実は結構時間にアキがある状態になっています。「坂井がいるとなんかよくなる」という仕事をしているので、仕事内容を説明するのにいつも苦労するのですが、、、データベースそのものの技術だけではなく「データの流れ」を全体俯瞰することで、お客さんが本当は何をやりたいのか(要件)、それはどのように格納・出し入れしたらいいのか(RDBMS設計)、発生しうるリスクにはどのようなものがあり、どの程度対応しておくべきなのか(リスク管理)的な事について助言したり、必要に応じて実際に手を動かしたりなどを提供しています。チームに入り込んで一緒に考えたり助言したりというやり方ですので、貴チームでこのあたりのノウハウにお困り・お悩みでしたら、ぜひ一度ご相談ください。 

 というお話を、あの場でやるのは時間勿体ないですもんねー(笑)。(そもそもたぶん怒られるw)



最後に

 あらためて、MySQLのドキュメントチームに感謝! 日本語版作成に尽力くださった皆さんに感謝! そして、きっとこのマニュアルの修正提案をしてよりよいものにしてくれるみんなにも感謝!!!





発表資料:

www.slideshare.net