今回の電王戦用のponanzaが棋譜ファイルを保存できなくてなにやらお困りの様子です。
https://twitter.com/mizumon_/status/688601127982514176
https://twitter.com/mizumon_/status/688649536919621632
https://twitter.com/mizumon_/status/688651034349010944
@mizumon_ ponanzaが対局終了後に自動棋譜保存をオンにしていると棋譜保存できない問題なのですが、ponanzaの名前がいま[ponanza[feature:12345]]みたいになっていると思います。(続)
— 山本一成🌤️チューリングのCEO (@issei_y) January 18, 2016
原因は思考エンジン名に使われていた”:”にあるようです。将棋所では思考エンジン名をそのまま棋譜ファイル名に使おうとするのでファイル名で使えない文字を使うとそこで例外が出て将棋所が落ちてしまうのです。
私もこの問題8年ぐらい前にハマった覚えがあります。
将棋所、普通、そんなところ保存する前にエスケープするだろと。
というか、思考エンジン名ぐらい、GUI側で変更できるようにしとけよと。
まあ、言いたいことが色々無いではありませんが、例によって「文句言うなら、お前がGUI作れよ」というツッコミはご容赦願いたいところでありますよ。
>まあ、言いたいことが色々無いではありませんが、例によって「文句言うなら、お前がGUI作れよ」というツッコミはご容赦願いたいところでありますよ。
皆が便利になるように、、、と無償で作って公開して使ってもらって、、、。
最初は「便利だ」と感謝されて。
それで多くの人が使うようになって、、、。
知らぬ間に業界スタンダードみたいになって。
そのうちに今度は「あれが足りない、ここがよくない。」と不満タラタラ。
・・・・・
まあこれもネット社会の宿命のような気がします。
そうして、解決策はいろいろとあるように思われます。
でもキーパーソンは、やっぱり最初の作者さんになりますか。
思考エンジンから受け取ったエンジン名のエスケープをせずに(UCI/USI原案ではここに使える文字セットは規定されていないのに)ファイル名に使うのは、ユーザーからの入力をサニタイズせずにそのままSQLに使うぐらいの愚行であると思いますけどね。(この設計が意図的なものであるならば。)
この設計が意図的ではなく単なる人為的なミスなのであれば、「まあ、そういうこともあるよね~」ぐらいの笑い話でありますよ。