第30話

 新しいルーズリーフの上に、罫線なんか無視して、二海はまた『サーバー』や『ブラウザ』、『WebSocket』『データ』などと書いていった。


(WebSocketでデータをやりとりしてるのはわかったし、そのデータの中身もわかった。でも、そのデータの中身が意味わからない)


 二海は『???』と『データ』の横に付け加えた。シャーペンをノックしながら、二海は考えた。


(でも変だよね……意味はわからないけど、実際に地図は動いてるんだから、ブラウザとサーバーはこのデータを理解してるんだ。じゃあ、これは適当に文字を並べたわけじゃなくて、意味のあるもので……ブラウザはどうやって解釈してる? そういう処理はJavaScriptでやるから、そうだ、JavaScriptのコードを見てみよう)


 二海はJavaScriptのファイルをダウンロードし、エディターで開いた。『WebSocket』で検索し、ヒットした周辺のコードを読む。


 データを受け取った後どうするかを書いてあるところの処理で、二海は見慣れないものを見つけた。『Base58』というオブジェクトだ。見た限りでは、この『Base58』は受け取ったデータに何かをしている。


 Base58、について二海はまた調べた。エンコード方式の一種、つまり文字や画像や様々なデータを、英数字だけを使って表現するやりかたの一つということだった。データをやりとりするときには、通信の相手や通信の間にはいっているものが、英数字以外の文字を扱えないことがある。なので、例えば『あ』は『4g1』という英数字で代わりに表すことにするというルールを決めておくのだ。こうすれば送りたいデータを英数字だけに変換し、受け取った相手もそれをもとに戻せばどんなデータでも送り合うことができる。


 なら、この意味のなさそうな文字列の並びも、もとに戻す処理をしてやれば……。二海はオンラインでBase58に変換したりもとに戻したりするツールを見つけ、先程の文字列を入力した。


『{

"longitude": 139.741398,

"latitude": 35.699399,

"comment": "あああ"

}』


と出た。


 思ったとおりだ、と二海は軽く何度も頷いた。緯度経度と、コメントをやりとりしていたのだ。


 二海はその前後の、ブラウザから地図サービスに送っているデータの中身も調べた。緯度と経度を指定し、Base58で変換して送れば、コメントが取れることがわかった。後は富士山の緯度と経度を調べて、それを送ってやればいい。


 富士山の緯度経度は、気象庁のサイトでみつかった。Base58に変換して送信するデータの用意もできた。後はWebSocketで送るだけだ、となって、二海はWebSocketでどうやってデータを送ったらいいのか知らないことに気がついた。


 二海は問題ページからHTMLとJavaScriptをまるっとダウンロードした。それを自分のパソコンの中に置いて開き、JavaScriptを富士山の緯度経度を送るように編集する。WebSocketを使う処理はもうこのサービスの中にあるのだから、それを改造すればいいと思ったのだ。


 それでも、改造はすんなりとはいかなかった。一箇所を変更するとエラーが出て、エラーメッセージを調べては書き直す。書き直してはブラウザをリロードし、また直してはリロードした。夢中だった。まだまだ解くべき問題は残っているのだから、こんなところでずっと止まっているわけにはいかない。


 何回目、何十回目かのリロードで、エラーを示す赤い丸が消えた。そしてコンソールに、『"comment": "ajsec_junior_{5460afc950b41eb4fbd7e7614a4270c7}"』という、輝かしい文字列が現れた。


「やった!」


 イエス、ともフウウー、とも言うべき場面だった。二海はがたりと立ち上がった。しかし一人でそうしているのはなんだか意味がないようで、二海はちょっとしてからおとなしくまた椅子に戻った。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る