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

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

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

LibreOffice Conference 2021雑感

naruoga.hatenablog.com

前の ↑ 記事でも予告したように、LibreOffice Conference 2021(以下LibOCon、りぼこんと読んでね)参加してきました。

libocon.org

LibreOfficeのコミュニティ活動辞めたっていってたのに何で年次カンファレンス参加してるの? といわれるかもだけど、LibOコミュニティには知人が多いし応援したいプロジェクトでもあるし、ただメンタル弱ってるので「継続的に価値がある貢献を、周りと議論しながらやっていく」みたいなのは約束できないしそれを求められるのは正直苦痛だけど、イベント参加したりそれをTwitterにメモったりこういうブログ書くことは、誰ともかかわらずに一人でできますので。はい。

つーてもおおむね当日の内容はTogetterに書いてしまったのでそっちを見てください*1

togetter.com

また、発表のビデオについては順次YouTubeに上がっているので、上のTogetterをみて「へーこの話面白そう」って思った方は、そちらを直接見ていただくのもいいかもしれません。

www.youtube.com

なのでこの記事は、個別のセッションがどうとかではなく、全体的になんとなく感じたことを雑にまとめたいと思います。

ちなみにクソ長いです。分割しようかなとも思ったけどそれも大仰なので適当に流し読みして、気持ちがひっかかったところだけきっちり読んでくださいませ。

イベントのスケジュール

今回、イベントはハンブルグのLUGとの共同開催ということになってて、イベント自体はハンブルグタイムゾーンで企画されてたんですが、その時間は12:00-17:30と、割と短めに設定されていました。 その理由は明確には確認してないのですが、もしかしたらタイムゾーンが離れた我々極東の民のことも考慮してくれてたんでは……って、ちょっとだけ思いました。 日本時間だと19:00-00:30で、去年朝5時まで起きてなきゃいけなかったことを考えると天国のようにラクショーでしたし。 もしそうだとしたらうれしいなあ。 オンラインイベントは参加こそ容易ですが、時差だけはなんともならないですからね。

また、イベントのスケジュールページ:

https://events.documentfoundation.org/libocon2021/schedule/events.documentfoundation.org

にて、ブラウザのロケール設定を見て? タイムゾーンが選択できるようになってたのもありがたかったです。これまでだと、聞きたいプログラムをチェックして、それをGoogleカレンダーに現地タイムゾーンに登録する、っていちいちやってたので……。

公式アプリの存在

ほかのイベント(COSCUPとか)だとよくあったんですが、今回、LibOConにも公式アプリがリリースされてました。Androidだけですけど、Play Store だけじゃなくて F-Droid でも公開されてたのがそれらしい。

タイムゾーンを端末設定で選べること、興味があるセッションにマークすると時間にアラームで知らせてくれること、スケジュール変更があればリアルタイムで通知が来ることなど、なかなかよくできていました。これはいろんなイベントで取り込んでほしいなあ。

コミュニティ、エコシステムの関係と「LibreOffice Technology」「LibreOffice Enterprise」

今年の大きなテーマの一つは、この部分だったのかなあと思ってます。

ここでいう「エコシステム」っていうのは、すごい大雑把にいえばLibreOfficeのフルタイムの開発者を雇用する組織のことです。多くはLibreOfficeに関するなにか(例えば長期サポート版などの派生した有償のプロダクト、導入支援、サポート、教育など)を顧客に提供して対価を得る企業であることが多いですが、昔のミュンヘンのように自分たちが使うための問題を解決するために開発者を雇用していた組織もあります。

LibreOfficeコミュニティが、「エコシステムの金銭的利益(さらに言えば持続可能性)とコミュニティの関係や利益にどう折り合いをつけるか」って議論は結構重要です。やはり多くの開発行為はエコシステムからなるものが多く、特に特定のバグ対策ではない大きい機能改善は、フルタイム開発者でなければ実現できないことも多いですし、フルタイム開発者は霞を食べて生きていくわけにはいかないですから。もちろんエコシステムはコミュニティの重要な一部であり、彼らのコードやその他(イベントのスポンサーシップやGSoCのメンタリングなど)の貢献なしにはLibreOfficeプロジェクトは継続していくことは困難です。

一方で、LibreOfficeを取り巻く状況としては以下のようなものがあります。

  • そもそもデスクトップでアプリを使う、というユースケース自身が縮退しつつあるのでは
  • OSSを単にサポートするというビジネスの成功例はほとんどなく、新たな展開が必要
  • 派生版を提供するエコシステムにとって、「LibreOffice」というブランド力に頼りたい半面、それを前面に出してしまうと自組織のブランドイメージが向上しない
  • 各OSベンダーが提供するStoreシステムからLibOをインストールしたいという要望に対して、Storeの要求に合わせるコストをだれがどう負担するか、その負担分をどう回収するか

それから、今までは「Poorman’s MS Office」でやってこれたとしても、MS OfficeがOffice 365のライセンス費用を相当抑えてきており、Googleも個人利用では無償、商用でも競争力のある価格設定をしている現在、エコシステムへのサポート込みでLibreOfficeを使うことは決してコスト的に有利にならない、したがって「安いMS Officeの代替品」という立ち位置ではない、LibreOfficeならではの魅力を強力に発信していく必要があるわけです。

そこでLibreOfficeコミュニティとして旗印として立てているのが「コアの共通性」と「ODF」の二本柱です。

コアの共通性というのは、前から紹介している通り、LibreOffice OnlineはサーバーサイドでLibreOfficeを動かし、そこでレンダリングした結果をビットマップタイルとしてクライアントに送信するということで、クライアントの状態によらない統一した、デスクトップ版と変わらない(例えば、ほかのクラウド系オフィスソフトでは実現できていない縦書きなどもサポートした)レンダリング結果を実現しています。またCollaboraが開発しているCollabora Office for iOS/Androidは、基本的にはLOOLサーバを内蔵して、アプリはWebViewでLOOLクライアントとしてふるまうという実装をしています。つまりデスクトップ、クラウド、モバイルにて、統一したレンダリングエンジン、統一したコア実装を用いており、ユーザーはどのプラットフォームでも、同じレンダリング結果と、ほぼ共通の機能を得ることができるというわけです。

もちろんこの実装には利点も欠点もあるわけですが、それはおいておいてもこの「共通性」を強みとしてしっかりアピールしていきたい、と、LibreOfficeコミュニティは考えています。

そしてODFは、LibreOfficeの標準ファイルフォーマットであるだけでなく、オフィスドキュメントの相互運用性ということに真摯に向き合った国際標準でもあります。アプリケーションから利用するにも、ZIPファイルをほどいて中のXMLを人間が見ても、プログラムから操作するにも優れたフォーマットです(詳しくは過去記事を参照)。イギリス政府が「編集可能な文書ファイル形式」をプレーンテキストとODFに限定しているのは、このような優位性を認められてのことです。その優れた点の一つが、ワープロ表計算、プレゼン、図形描画と同じスキーマを持っていることです(OOXMLが、スキーマはおろかXMLファイルのディレクトリ配置すら異なるのとは対照的ですね)。これが二つ目の「共通性」というわけです。

この二つの「共通性」を基盤とし、ワープロ表計算、プレゼンといったアプリ、そしてPC(デスクトップ)、クラウド、モバイルが同じ基盤に乗っていること、これをLibreOfficeの優位性として積極的にアピールしていこう、というのを表すのが「LibreOffice Technology」という用語、だという理解です。

f:id:naruoga:20211010231024p:plain
LibreOffice Technologyの説明図

そして、エコシステムベンダーは、自社ブランドを冠したプロダクトに「LibreOffice Technology」を使っている、というアピールをすることができる、というわけです。

また、LibreOfficeに対して「大きく革新的な機能開発」を行うには、やはりボランティア開発者だけでは利用できる時間的に難しく*2、フルタイム開発者の力が必要です。このような場合、①そのような機能を求める顧客の要望に求めてエコシステムが対応する、か、②LibreOfficeを資金面で支える非営利法人The Document Foundation(以下TDF)が資金を供給して開発者を公募し、それを受けた開発者やベンダーが開発を担当する、の二つの方法があります。顧客にとってわかりやすい魅力的でない改善であっても重要なものというものがあり、それを解決するには②の手段を取る必要があります*3

その場合、資金の出どころはTDFということになるのですが、TDFにおける収入の大部分は実は寄付によっており、そして寄付は個人やSMB(中小企業)によるものがほとんどで、大規模な組織、つまりエンタープライズ(大企業、政府機関、自治体、学校法人など)からは行われていないというのが現状です。そして彼らがエコシステムにもお金を払っていないのであれば、いわばそれはエコシステムを含むコミュニティの成果にフリーライドしている、ということになります。

したがって、エンタープライズが寄付を行うつもりがなければ、積極的にエコシステムに対価を払うべきである、というのがLibreOfficeコミュニティからのメッセージで、それを表す言葉が、TDFからリリースされているバージョンに対する「LibreOffice Community」と、それに対してエコシステムが提供する「LibreOffice Enterprise」です。

このように、エコシステムの持続性をコミュニティの持続性と積極的に結び付け、エコシステムがより多くの利益を得ることでLibreOfficeがより良い方向に発展していく、というメッセージを強く発信したカンファレンスであった、と、感じています。

これは非常に重要なことで、当然意見は一様でなく、ここ数年の間、さまざまな議論を経て今回のメッセージを出すところまでようやっとたどり着いた、そういう風に考えています。 丁寧に議論を重ねてきたコミュニティメンバーたちには敬意を示すところです。

が……。

TDFメンバー・コミュニティメンバーに対する調査と取り組み

この手の議論はもちろん大事で、オープンな場で透明性を持った形で議論するのは望ましい……と、理屈ではそう思うのですが、この手の議論は紛糾するとひたすら長文の英語のメールが延々と流れることになり、そしてあまり英文読解が得意でなく、かつ議論のすべてを機械翻訳に通すほどの元気もない私は、「なんか対立関係が表面に出てきている」という印象だけを受け取ってしまいがち、ということがありました。

前にも書いたけど私がつらくなった一つの要因に「なんかグローバルなコミュニティでもギスギスした雰囲気を感じてた」ことがあるんですが、それは、こういう議論がとにかく紛糾しているけど詳細を追い切れるほどの気力も能力も欠けていた、ただ紛糾している雰囲気だけが見て取れてそれがつらかった、ということがあります。

その中の一つには、エコシステムの一つであるCollabora Productivity(以下単にCollabora)が一強になりすぎたってこともあると思います*4

エコシステムに開発の多くを依存しているLibreOfficeプロジェクトにおいては、エコシステムのビジネスが健全に発展し続け、十分な利益を得ることができ、それにより多くの貢献者が開発だけでなくその他の活動で生計をたてられる、あるいはサイドビジネスとして十分な利益を得られることは非常に望ましいです。

一方でSun Microsystemsという一組織に依存していたことからプロジェクトが継続できなくなったOpenOffice.orgの反省から、エコシステムとの距離感に対して警戒感を持つ人も少なくなく、ボランティア貢献者の中には「今のTDFは過剰にエコシステム方向を向きすぎている」とか「ボランティアによる貢献をエコシステムがタダ取りしている」などと考える人もいるようではあります。

先に書いたとおり私はそういう議論を逐一追えてはいないのですが、とにかく一種の緊張関係があるのは事実。私の目から見ると、今回のカンファレンスは、そういう緊張関係に対して、なんらかの解決を目指そう、という姿勢を感じました。それはTDFとして目指していくところをより丁寧に説明しようという点もそうですし、TDFのメンバーシップ委員会が企画した「コミュニティインタビュー」に対する振り返りとディスカッションというセッションの存在についてもそうです。

コミュニティは当然いろんな思惑がある人がいろんな動機で参加してくるところなので、「全員の思いや行動を揃えよう」とするのではなく「違いを尊重しつつ一緒にできることをやっていこう」というふうになればいいなと感じます。そしてそう思っている人はTDFのコアにも確実にいる、そういう思いを感じたカンファレンスでした。

LPIやUdemyと協業した新しい認定プログラム

このブログやTwitterなどで紹介したことがあるのでご存じの方はいるとは思いますが、TDFにはその公式の認定制度があります。

この認定制度は、例えばMicrosoftOracleCISCOといったベンダー認定と違い、「LibreOfficeに対して十分な知識と専門性を持っており、貢献の実績がある」ことを示すもの……という側面が強いものでした。なので、例えば移行専門家であれば「過去にこのような移行を推進した・支援した実績がある」といった証拠となるドキュメントを提出し、認定委員会による面接を経て認定される、というものでした。認定専門家には移行(マイグレーション)、トレーニング、開発が存在します。

もちろんこれらの認定制度は、どの企業にも属しないコミュニティベースのプロジェクトであるLibreOfficeでは重要な役割を果たしてきましたが、一方で以下のような課題がありました。

  1. 「利用者がLibreOfficeの使い方を正しく把握しているか」といった、例えばMOSOracle MasterCCNAのように「履歴書に書ける」資格が存在しない。たとえばLibreOfficeやODFを政府機関で採用している国や自治体においてはこのような資格は就職に有利に働く
  2. 認定専門家(特に移行とトレーニング)は当然、LibreOffice/TDFからのメッセージを正しく使える「代弁者」としての責務を担うことになるが、認定専門家が正しくその理念を伝えているとは限らないし、認定専門家の品質が悪いと逆にプロジェクトやコミュニティにネガティブな印象を与えうる
  3. 失効期間が曖昧で、アクティビティが低下している人でも資格持ち、という状態になりうる

このような問題意識のなかから、今回はいくつかアナウンスがありました。1. の解決手段として、LPIとの協業による新たな資格を用意するとのことです*5。すばらしいニュース! ただ、まだ検討を始めた段階であり実際のローンチには少し時間がかかりそうです。

また 2. と 3. については24か月ごとの活動状況の再チェックと、活動的でない認定専門家については再認定などを検討しているとのことです。そして「LibreOffice認定済(LibreOffice Certified)」的なポジションが用意され、これは基本的な面接を受けた後にUdemyから提供されるビデオ講座を受講してなることができるそうです。その資格を受けてから12か月以内に今の認定試験同様の基準を満たすことで(つまり移行やトレーニングの実務を行ったことを示すことで)、初めて今の「認定専門家」になれると。ただしTDFメンバーである場合は「LibreOffice認定済」を経ずに直接移行専門家の試験を受けられることにすることのこと。

まだ詳細決まってないことはあれど、いずれにせよ認定制度としては正常な進化だし、こういう方向でよりLibreOfficeの認定がカジュアルに取得でき、かつその利益が取得者にとって得られる社会に近づけばいいなと感じました。

LOOL(COOL) vs. WASM

ここの vs. は煽り気味です、はいw

開発についてのトークについてはこれというテーマがある感じではなく、これはもちろんデスクトップオフィスソフトとしてのLibreOfficeの成熟度を示しているってことはあるとは思うのですが、その中でしいていうならこのテーマですかね。

LibreOffice Online(LOOL)はブラウザベースでLibreOfficeを動かす仕組みで、なおかつCollabora Office for iOS/Androidはこれを応用して実現されているので、クラウド時代におけるLibreOfficeの新たな地平を開く、LibreOffice Technologyの鍵となる技術です。しかしLOOL自体はTDFのリポジトリに存在して一部外部の貢献者もいたものの、本体の開発および、LOOLの機能のためのLibreOfficeのコアの開発の多くはCollaboraのメンバーによりなされていました。そのためTDFリポジトリのLOOLは更新が凍結されて、Collabora Online(COOL)としてCollaboraのGitHubプロジェクト配下で管理されるようになりました*6

もちろん、COOLは相変わらずOSSでありCollaboraメンバー以外のPRやその他の貢献も受け付けていますし、GitHubベースになったことによって「モダンな」開発者にとっては参加の敷居が下がったと思われますし、さらに言えばCollaboraとビジネスパートナーになればCOOLをベースにした自社商品もリリースできる(想像です)と思うのですが、前述のようにLibreOffice Technologyの重要なキーが特定のエコシステムベンダーのものとなったことに嫌悪感や危機感を持ったコミュニティメンバーも少なくない、というのが私の感じているところです。

また技術的には、LOOLはいわゆるクライアント・サーバーモデルなので運用が結構大変ですし(個人やSMBで立てるのと、エンタープライズでごりごり使うにはノウハウが必要)、またCOOLとLibreOfficeコアのリポジトリが分かれているにもかかわらず密結合なところがあるので双方を見られる人じゃないと大きな機能追加は難しく、またメモリ使用量も比較的大きい重量級のシステムです。

と、いうことで、新たに注目されているのがWASMベースのLibreOfficeのポーティングです。2015年ごろにも構想されたもののWASM自体もツールチェーンのemscriptenも問題が多く挫折したのですが、W3Cの標準となり多くのブラウザで実装された現在、再びチャレンジすることになったということです。 これは、もちろん前述の技術的問題へのカウンターであることもそうですが、主に牽引しているのが、ドイツCIB社から分社したばかりの若いエコシステムベンダーであるallotropia社であることから、単純に技術的な挑戦だけではないのではと邪推しています。

とはいえWASMへのポートは相当いばらの道のようで、今年2月のFOSDEM 2021ではまだまだ戦いは始まったばかり、という感じでしたが、今回のカンファレンスのトーク聞きそびれたのでビデオ公開が待たれるところです。

WE WANT YOU!

長くなってきたので残りはなるべく手短に。

TDFの雇用メンバーに新たに加わったHossein Nourikhah氏は「Developer Community Architect」という役割で、これから新たな開発者を開拓していこうという取り組みをいろいろしていますが、氏による「Getting Started with LibreOffice Development」という90分のセミナーをはじめとして、LibreOffice SDKのサンプルを再構築しましょうとかLibOのソースはこう読めとかデバッグをこうやれとかそういうトークが多かったとします。日本からの参加者、案浦さんのGraphQLのエクステンション作ったよな発表もこの枠かな。

その中の一つ、Ilmari Lauhakangas氏によるセッション「A legendary bug reporter」がめちゃくちゃ面白かったので、ぜひYouTubeで公開されてるビデオ見てください。

日本でCJKバグを直すためのハンズオン的なものやりたかったらTDFは協力してくれるかな?と、マーケティング担当のMike Saunders氏を経由してHosseinさんに伝えてもらったらメールもらって「LibOConで講演するからまずはそれを見てね、手伝えることがあったら連絡ちょうだい」と言われてるんだけど、いまだに返事を返せていません……興味ある、参加したいって人は私のSNSなりなんなりで反応ください。個人的にはビルドやってなにやってって話もそうだけど、CJKバグに対する単体テストを書く、見たいなハンズオンをやってみたい。

って、継続した貢献はお約束できない、って言ってるぼくがいうのも変な話だな。まあ、単発のイベント回すぐらいならできるんで……。

終わりに

去年の似たようなエントリ

naruoga.hatenablog.com

で、来年は参加するかわかんない的なことを書いたけど、やっぱり参加したしやっぱり楽しかった。 あとはなあ、知り合いともっと話できるチャンスがあるといいんだけどなあ。ビール片手に。でもそれは時差がある分難しいですね。

来年の開催は「現在状況を見ながら慎重に議論を重ねていて、今話せることは何もない」だそうです。 オフライン開催になればいいけど、それでも日本から私が行けるかどうかはわからないしね(そもそもまだLibreOfficeコミュニティの一員として活動を復帰するとは言っていない)。

まあともかく、いろいろな中イベント開催に尽力してくれたみんなには感謝感謝です。ありがとでした!

*1:Togetterは公開期間にリミットがあるから、ずっと残したいコンテンツは別の手段を取った方がいいという説もありますが、まあ、イベントログ自体生モノなので、そこのところはあまり深く考えない方向で。

*2:可能な「すごい人」がいないとは限りませんが。

*3:もちろんエコシステムベンダーが「自発的に」そのような改善を行うこともありえますが。

*4:ここについてはあんまり大っぴらに書きにくい話も聞いたことがありますが、それは直接聞いてくれればお話ししますw

*5:今年のLibOConはLPIがスポンサーになってて、ありがたいことだけどちょっと意外、と感じてたんですが、このアナウンスを聞いてなるほどと。

*6:この説明はかなり雑なので、うのみにしないで詳細はCOOLのFAQなどを参照してくださいね。