思ってることってこんなもんだよ
コントリビューションから見たオープンソースの威力

ChromebookでWindowsファイル共有サーバにアクセスできるFile System for Windowsの最初のReleaseをしてから4ヶ月ちょいが経過。自分で使う上では特に問題なく動作してて満足なんだけど、世界中にいるユーザからは「うごかねーよ」「接続できねーよ」というフィードバックが日々報告されてくる。このアプリの性質上、接続相手のサーバの中で何が起きてエラーになったのか、僕から直接調査することができない。SMBプロトコル上では、サーバから4バイトのエラーコードが帰ってくるだけ。その数値から原因を特定することは、無理ゲーに近い。

それでも、DevToolsで通信内容のHexダンプを出して報告してもらったりして、自分の想定と違ったバイト列があるかどうか地道にチェックしてるんだけど、それも限界がある。

How to Capture the Console Log of DevTools

そう、世界中の機器を僕は入手することが当然できないので、報告された不具合を手元で再現させることができない。単にエラーコードがあるだけ。それで問題解決をするのは、本当に無理。「サーバに記録されたエラーを教えて下さい」っていうのも、ルーターに備わっているファイル共有機能とかだと、そもそもログ見るのも一苦労だったりして、情報収集もままならない。

上記のDevToolsのログを提出してもらうだけでも、本当にありがたいんだけどねー。そこから得られる情報は、残念ながら少なかったのが現実。

問題が発生するサーバの入手ができない状況で、正しい通信手順を知る方法、それはもう以下しかない。

「正常に通信できている際のパケットをキャプチャしてもらって、送ってもらう」

これ、専門家(?)でも難しく面倒な作業。ましてや、パケットキャプチャツールは、文字通りであって、他の何の役にも立たない。tcpdumpコマンドならまだしも、Wiresharkといったツールは、本当に一般ユーザにとっては「通常一生使わなくて良いもの」なはず。

でも、本当に根本的に問題解決をするためには、Wiresharkを入れてもらって、パケットキャプチャしてもらうしかない。その手順をわかりやすく書いて、「申し訳ないけど、この手順で正しい通信内容を僕にくれませんか?」と案内することを始めてみた。

How to capture packets with Wireshark

これを書いて案内したのは、このエントリを書いているたった2日前。それなのに、もう二人から「キャプチャしてみたよ、どうかな?」とWiresharkで収集されたパケットキャプチャ結果のファイルがメールで僕に届いた。

全く期待していなかったのに!すごい、たった2日間でもう二人から「こんな面倒な作業」をしてくれて結果を送ってくれている。

これが「オープンソースの威力」とか言っちゃうとなんか言い過ぎだし恥ずかしい気持ちもあるけど、ちゃんと使ってくれているユーザがいて、Pull Requestではないけど、問題を解決するために必要となる「貴重な情報」を送ってくれるコントリビュータがいることを、本当に嬉しく思う。もちろん、きっと送ってくれた人は僕と同じようなエンジニアなんだろうけど、それでも面倒な作業をしてくれたことに、本当に感謝の気持ちしかない。

既にFile System for Windowsは3万ユーザ数を超えていて、でも無償提供なので、「ああ、1インストール100円にしてたら今頃・・・」とか考えることもあるけど、こういう貢献をしてくれた人がいると、「よし、頑張って改善しよう!」って気持ちになるから、本当に不思議です。

こうやって、コツコツと「ユーザと共に」改善を繰り返していって、ソフトウェアは良くなっていくんだと思います。この積み重ねの先に、Chromebookのより良い未来がありますように。。。