Month: June 2021

YAYA Tc555-1で追加されたyaya_emerg.txtとは何なのか

 - by Don

まずは最新のYAYAを入手しよう

2021-06-26現在、最新のYAYAはTc555-3です。releasesの一番上から取得してください。

yaya_emerg.txtって何ですか?

YAYA Tc555-1のリリースノートに書いてある通りです。

辞書読み込みエラーが起きた時の緊急フォールバック機能追加
エラーが起きた際に、yaya_emerg.txtを設定ファイルとしてリトライし、最低限の動作を保つのを目的とします。

YAYAは辞書を正確に書かないとゴーストがまったく無反応になってしまうという、里々とは正反対な厳格なSHIORIです。ゴーストマスタはエラーログを確認しながらエラーが起こった箇所を修正してSHIORIをリロードし、無事にまた起動する、といった具合に開発していくことになっています。

あまり無いとは思いますが、うっかりエラーが起こった状態(ゴーストが無反応の状態)でネットワーク更新用のファイルをアップロードしてしまい、それがユーザさんの環境に届いてしまったら大変です。あるいは特定のフォルダの辞書を更新用ファイルに含めるのを忘れた、という場合も考えられます。無反応ですから再度ネットワーク更新で修正する道も断たれてしまいます(SSPならdescript.txtにhomeurlが書けるので、書いてあればなんとかなりますが)。

で、まったく無反応になってしまうのも困るので、最低限の動作(ネットワーク更新ができる、とか)を保ちましょう、という目的で作られたものなわけです。

対応する方法は?

GCさくらでYAYA製各種テンプレートゴーストやSSPBT所属のYAYAゴースト達が怒涛の更新を捕捉されていますが、まさにこの対応のためのようです。今からYAYAでゴーストを作ろうという人は、最新のテンプレートゴーストを使うことで対応可能です。

では既に各種テンプレートゴーストを利用してゴーストを作っていた人たちはどうするか。自分が利用していたテンプレートゴーストに新たに追加された以下のファイルをコピーして使いましょう。

yaya_emerg.txt
緊急時設定ファイル。これが無いと始まらない。テキストエディタで開いてみるとyaya.txtと同じノリで記述されていることがわかります。システム辞書の他に緊急時用の辞書ファイルを読み込む設定になっていると思います。
yaya_emerg_dic.txt等(ファイル名は任意)の緊急時用の辞書ファイル
緊急時用なので凝ったことをしても仕方ありません。とにかくミスの無い、シンプルで余計な記述のない最低限の辞書を用意しましょう。homeurl等は取得できることが望ましいので、別ファイルで用意して通常時と共有するのも良いですね。
yaya_shiori3.dic
もっとも基本となるシステム辞書が更新されています。主にエラーメッセージをSSPのエラーログに送信する機能が追加されています。現在のものに上書きして保存しましょう。

yaya_shiori3.dicにどういった変更がされているのか興味がある人はyaya-dicあたりを覗いてみると楽しいと思います。

よくわからないけど、対応しないとダメ?

んなこたーないっす。ちゃんとした人ならロクに動作確認もしないままネットワーク更新かけたりしません。ちゃんとした人なら。

私はちゃんとした人ですが対応しました。私は元々里々使いだったので、YAYAでもSHIORIリロードをショートカットキー(rキー)に割り当てているのですが、エラーが起きた状態でもrキーでSHIORIリロードが効くように設定しました。エラーを修正する際に便利なのではないかと思います。

麻雀サーバーゴーストを作った

 - by Don

外部アプリとしての麻雀ゲームからのイベント通知を想定した麻雀クライアントゴーストは以前作ったのですが、双方向での通信(何を切るかの問い合わせ等)がやりたかったのでゴーストで麻雀ゲームを作ることにしました。まだ七対子の形式しか対応していませんが、クライアントゴーストとの双方向のやり取りは上手く動いているようなのでキリの良いところで一度晒そうと思い立った次第です。

雀々BARIBARI
麻雀サーバーゴースト。製。まだ七対子しか対応していない。
雀-リンリン
麻雀クライアントゴースト。YAYA製。何を切るかを自身で思考する。
雀-チュンチュン
麻雀クライアントゴースト。華和梨製。何を切るかを自身で思考する。
雀-ホワンホワン
麻雀クライアントゴースト。里々製。何を切るかはサーバーにお任せする。

まだおよそ麻雀と呼べるような代物ではありませんが、七対子しか対応していないが故にかえって麻雀を知らない人の方が楽しめるかもしれません。

ゴースト同士ということで通信に\![raiseother]を使用していますが、昨日の記事にある通り、今後はDirectSSTPを使用した外部アプリケーションとの情報のやり取りにも対応できるよう柔軟な仕様の策定を見据えていきたいです。

夢はどこまでも広がりますが、まずは普通の形式(七対子以外)で和了れるようにしないとですね。

DirectSSTPでWindowsアプリとゴーストが会話できるようになった

 - by Don

SSP 2.5.03 – ばぐとらぶごる

+ "X-SSTP-Return-" ではじまるSHIORIからのレスポンスヘッダをSSTPのレスポンスにそのまま横流しする実験的仕様
例: X-SSTP-Return-Hoge: hogehogehoge

SSP 2.5.05 – ばぐとらぶごる

※ "X-SSTP-Return-" を "X-SSTP-PassThru-" に改名し、レスポンスだけではなくリクエストヘッダにも追加できるようにした。

SSTPを送信した側が、ゴーストからのメッセージを受け取ることができるようになりました。

応用例はいくつか考えられます。

  • 今までは音楽再生アプリが「再生している曲」を通知することしかできなかったが、「再生したい曲」を問い合わせることができるようになった
  • 今までは麻雀ゲームアプリが「何を切ったか」を通知することしかできなかったが、「何を切るか」を問い合わせることができるようになった
  • 今まではスケジュール管理アプリが予定を通知することしかできなかったが、ユーザとのデートの予定を勝手に入れられるようになった

ゴーストがますます主体的に「意思」を持つようになってくるかもしれません。

具体的にどうやるの

DirectSSTP送信テストツールとレスポンスを返すサンプルゴーストを作ってみました。

動いている様子

まだ実験的段階ですし

ゴーストからのレスポンスを利用したアプリがまだこの世には存在していないので焦って対応を考える必要はありません。ただ、ゴーストからのレスポンスを利用したいと考えるアプリケーション作者さんの目に止まればという願いを込めて、サンプルを公開いたしました。どうぞご活用ください。