誰がために君を想い、Salmoniaを放置するのか

Nintendo Switch

Salmonia

tkgstrator/Salmonia
Download JSON from Nintendo and Upload SalmonStats automatically. - tkgstrator/Salmonia

以前、「次、任天堂の仕様変更があったらアップデートしない」と明言しましたが、それを守って放置しているSalmoniaです。

イカリング2へアクセスするための認証トークンが正しく取得できないので、当然正しく動作しません。動作させるためには自分で認証トークンを設定する必要があります。

今回の変更点は修正が難しいのか

そんなことはありません。

flapg APIが(ここでは書けない)素晴らしい仕組みを使っているため、おそらく今後のアップデートに対しても(理論上、原理的に)対応できないということはないでしょう。

flapg APIが認証トークンを生成する上で必須となり、最も計算がややこしいfの値を求めるのに必要な鍵である以上、fを生成するflapg APIが正しく動作するならばその他のところをプログラム開発者が修正するのは難しいことではありません。

実際、今回のSalmoniaのアップデートは:%s/1.6.2/1.8.0/gというコマンドをiksm.pyに対して実行すれば対応できます。むしろ、このコマンドで対応できることを調べるほうがめんどくさいです。

すぐできることを何故しないのか

ここまで読むと皆さん感じると思うんです。

「え、すぐ直せるなら直したらええやん?」と。それはごもっともな意見だと思います。

ただ、留意してほしいのはSalmoniaはオープンソースのGPL v3ライセンスであり、第三者によるアップデート(改造)や配布を(GPL v3ライセンスを継承する前提で)無条件に認めているということです。

要するに誰でも「勝手に修正・改変していいし、それを配布しても良い」ということになります。それに加えて今回のアップデートはコマンド一発でできる簡単なものなのです。

じゃあここまで書いてぼくが何を思うかというと「誰でも直せるなら誰かが直せばええやん」ってことなんですよね。

Salmonia自体はPythonで書かれており、比較的読みやすい言語です。かつ、元々のiksm.pyが洗練されたコードになっているのでどういう処理が必要かも非常にわかりやすいです。

frozenpandaman/splatnet2statink
Takes battle data from the SplatNet 2 app and uploads it to stat.ink. - frozenpandaman/splatnet2statink

それに加えてドキュメントが公開されており、どのようなステップを踏んで認証トークンが生成されるかも書いてあります。なら(プログラムができるなら)誰でも直せるよね?ってなるわけです。

たとえ話をする

どういう状況かというと「ご飯を炊くことができるたかしくん」と「ご飯も炊けるしカレーも作れるお母さん」がいる場面を想定してください。

全く準備ができていない状況からなるべく早くカレーを食べようと思ったら、お母さんはまず最初に何をすべきでしょうか?

二人一緒にご飯を炊いても意味ないですよね?二人で炊いて倍早く炊きあがるならいいんですが、現実はそう甘くはないです。

ならお母さんがカレーつくっている間にたかしくんがご飯を炊くお手伝いをすればいいわけです。要するに「能率を上げるために自分しかできないことを優先しよう」というわけです。

まとめ

結局何が言いたいかというと、誰でも直せて読みやすいPythonで書かれてるSalmoniaは直したい人が直せばいいということです。

初学者の方でもそういうアップデート方面からプログラムを学んでいただければ良い学習材料になります。ぼくもPythonを触ろうと思ったきっかけがsplatnet2statinkのバグ修正をしようと思ったことだったりします。

一方、RN版SalmoniaやSwift版Salmoniaはとっかかりにくいという点があります。ソースコードを直す手間は一緒ですが、それぞれビルドしなければいけないからです。Swift版の場合はMacを所持している必要があり、それが余計にハードルを上げています。

正直、Salmoniaを修正してリリースするのは五分でできます。なのにやらないのは、一人でサポートをし続けることにより「整備できるのがぼくだけになる」という状況を防ぐためです。ぼくが飽きてアプデしなくなったらどうすんの、と。

今は飽きてはいないので「どこをどう修正すべきか」をツイッターで逐一報告してます。あとは該当箇所を直すだけなので皆さん頑張ってください。

記事は以上。

コメント

タイトルとURLをコピーしました