2017年6月の日記

<2017年07月 2017年05月>

ゲーム記

爆ボンのゲーム本編はホワイトアイスをうろつくだけで進んでいないんですが、爆ボンのページを好きなだけ更新しまくれるシステムを爆ボン以外にも使えるように一般化していました。
JPEG対応だったのがPNGにも対応。さらに対応フォーマットを増やすことも可能になりました。
ゲーム記以外にも使えるようになるかもしれません。

爆ボンバーマン

爆ボンのページを好きなだけ更新しまくれるようにシステムを作っていました。
Miiverse経由で取り込んだ画面写真を、自動的に切り抜いてサイズ調整して画像タグとリンクを生成します。
そして、.html拡張子でPHPプログラムを呼び出せるようにもしました。.html拡張子を直接PHPに関連付けるのではなく、ちゃんとPHPを用意したものにだけ適用されるようにしています。これにより、PHPで実装された上記便利機能が使えるようになります。
これらの機能は、爆ボンのページにも応用が利きそうなので、徐々に使う場所を増やしていこうかと思っています。

爆ボンバーマン

爆ボンがWii Uのバーチャルコンソールで出たよおおおおおおおおおおおおおおわああああああああああいやったああああああああああああああああまた遊べるよおおおおおおおおおおうれしいいいいいいいいいいいいいいたのしいいいいいいいいいいい

ハッ、コントローラパックが使えない。
※ゲーム記も更新しました。

アンパンマン日替わり紹介bot

劇場版上映開始の判定が間違っていて、上映日に関東圏で放送されるみたいなことを言いだしていたので、修正しました。
当日になる前に気付いてよかった。

アンパンマンDB

カテゴリ再編検討中。
ごった煮状態になっているキャラクターの性質や特徴などを、カテゴリーの種類ごとに分けて独立項目のように表示するというのを考えています。

アンパンマンDB

内部的な更新です。
これから機能拡張するためには、まずは要らない機能を削ってスリム化しなければいけないのです。
ということで、大きさなどの、設定にブレや範囲がある者を対象として設置する予定だったrange項目の機能をまず削除しました。これはそもそも実装していませんでした。
また、ボタンを量産するための、button項目機能も、未実装のまま放置されていたので、削除しました。こちらは、必要になることがあるかと思うので、折をみて本格実装したいと思います。ただ、本格的にやろうとすると、データベースアクセスが増えて重くなるので、その対策ができてから、ということになるかと思います。
一覧表示のときに最新コメントを表示する機能も別に要らないかなと思ったんですが、こちらは一応機能しているので、残しておくことにします。

ドラゴンクエスト10のプレイヤーイベントを検索および通知するサイトとドラクエ10

ゲーム本編とそのゲームのための便利サイトの話題でややこしいですが…

ドラゴンクエスト10のプレイヤーイベントを検索および通知するサイト

ドメイン及びTLS証明書を更新しました。
ドメインはまあ、普通に更新できたんですが、TLSのほうは、今まで使おう使おうと思っていて使えていなかったLet's Encryptを、やっと使えました。
今回はWindows版のLet's Encryptのソフトを使いました。今回もなかなかうまくいかなくて、暗号化なしのFTPを結局使ったんですが、もっとちゃんとした手順を確立したいところですね…。

ドラクエ10

しろいコキンもアストルティア★ラリー参加。今回はプクランドで。
東と西を間違えて関係ないところを探し回ったり、ヘルジュラシック型のドルボードにビビって逃げたり、ボスに必要以上の職業しばりで挑んだりと、変なことばっかりして時間を浪費してしまいましたが、なんとかクリアできました。

ドラゴンクエスト10

アストルティア★ラリー参加。
前回はプクランドで参加したので、今回はエルトナで。参加人数が少なかったのか、のんびりやっていた割には準位がよかったように思います。
たまには、あちこち走り回るのも悪くないですな。

なおった

18日夜から不調だったパソコンが直りました。
昨日買ったグラフィックボードが、昨日は全然動かなかったんですが、今日動かしてみると、何度かのリトライの末に、抜き差しして電源入れなおしただけなのに、なぜか動くようになりました。
なお、壊れていた旧グラフィックボードは、起動するたびに末期症状になっていっていました。たぶん今週末まで持たなかったことでしょう。
なお、グラボの電源については、そもそも補助電源不要なモデルだったようです。消費電力が減って、電気代が減って、ブレーカーが落ちる心配も減って、熱で壊れる心配も減るわけです。

玄人志向 GF-GTX1050-2GB/OC/SF


グラフィックボード買ったけど、電源なくて大丈夫か?
そして今、実際、動かんぞ。

Tiny Core Linux

メインマシンはまださっぱりですが、Tiny Core Linux入れたマシンが復活しました。
長らく動いていなかったんですが、他のノートパソコンの電源ケーブルを差してみたら動きました。
正直、これで実作業できるかというと、さっぱりなんですが、行動の選択肢は増えました。

WPFのコンテキストメニューとポケモンピクロスとPHP-CS-Fixer

WPFのコンテキストメニュー

Sukeruに使ったWPFのコンテキストメニューのことを、プログラミングのページに記載しました。
結論としては「マニュアル読め」ってことなんですが、難しくないですよと言う紹介程度で。

ポケモンピクロス

ポケモンピクロスのページも準備中。
リリースから期間が経ってるし私も完全クリア済みだし、あまり多くは語らず、軽い紹介と自分の記録程度にしようと思います。

PHP-CS-Fixer

で、上記2つの更新をするときにはPHPファイルを触っているわけですが、Visual Studio Code上で編集するようになって、PHP-CS-Fixerで整形するようにしたので、TGWSWebAdminと同じく、.php_csファイルで整形のルールを指定することにしました。
今の.php_csファイルはこんな感じ。
厳しめなSymfonyルールを基本として、配列を省略表記して、PHPDoc関連は若干緩めています。

アンパンマン日替わり紹介bot

管理画面の予定表画面を修正。
全く何もない時間は枠自体を表示しないようにして、モバイルでも見やすくしました。
管理画面なのでまあ、普通の人には意味がありませんが。

ポケモンピクロス

完全にクリアしました。アナザーも、ミッションも、メダルも。
このことをゲーム記に書こうと思ったのですが、ゲーム記にポケモンピクロスのページ作ってませんでした。
そのうち作っておこうと思います。

Sukeru

中途半端な状態ですが、とりあえずバージョンアップしました。
ライセンス文書に他人の名前が入っていたのもこっそり直しました。

TGWSWebAdmin

TGWSAdminは平均して2分に1回動いているので、今のWebサーバー上で動かすようにするのはやっぱり非現実的かなーと思います。
ということで、結局VPSでTGWSWebAdminを心置きなく常時運転するのがいいのかなーというところに舞い戻ってきました。
とりあえず、テスト用タスクだけですが、生成できるようになりました。

TGWSWebAdmin

別にTGWSWebAdmin用のサーバーを別途立てなくてもよくね?という気がしてきました。
現状でも、TGWSAdminの機能の一部はWeb側に丸投げしている部分があります。だったらスケジューリングも含めて全部丸投げでいいんじゃないかなって。
その場合、自動的にスケジュール通りに動かす仕組みが必要になりますが…。

ドラゴンクエスト10

テンの日。
まあ、テンの日に関しては、毎度おなじみのチケットとカードを回収しただけですが。恐怖の記憶とか何とかもあったようなのですが、いつもとやること変わらないし、特別報酬も別に今の自分には要らないし、そっちは放置しました。
で、今までやってなくて参加権のたまりまくっていたモンスターバトルロードをやりまくっていたのでした。

TGWSWebAdminとプロフィール

TGWSWebAdmin

タスクリストの読み込みまで開発。
と言っても、読み込むデータがないのでまだ張りぼて。インターフェースをどうしようかと思案しながらなので、具体的な動作はまともにできていないのです。

そんなことより、TGWSWebAdminを開発しながらVisual Studio Codeの環境整備。
PHP-CS-Fixerの公式サイトを見ながらコード整形のルールを自分好みに整備しています。おおむねいたれりつくせりなSymforyのルールで、お節介すぎると感じたところは順次Offにしています。
PHP DocBlockerも入れて、ドキュメントコメントも入れやすくしました。
そして何より、PHP IntelliSenseを入れたので、関数の定義を参照できたり、コードの自動補完が利いたり、圧倒的に便利になったのです。
有料ソフトのPhpStormにはきっと遠く及ばないのでしょうが、ここまでやっただけでも、かなり快適になりました。

プロフィールページ

やっぱりどう考えても一覧に出てくる情報量が少な過ぎなのです。ほとんどの質問に対する回答は短く簡潔なのに、それすら削っているから、すごく読みにくいのです。
情報量を削っているのは、「読みに行く」というアクションを取らせて、回答を読んだ時の印象を強めようというのと、アクセス数の統計を取りたいという狙いがあったからなのですが、一言二言の回答まで削ってしまうのは、さすがにやり過ぎというものなのです。

ドラクエ10とPHP7.1

ドラクエ10

ミフミンもモンスターバトルロードランクAに到達。
しろいコキンのときもそうでしたが、自分の操作キャラの強みを理解し、意識的に活かしていくようにするとぐっと楽になりますね。何も考えずぶん殴りまくるだけだと苦戦します。

PHP7.1

いつの間にかPHPバージョン7.1が出ていましたね。
PHP7以上じゃないと動かないWebアプリやライブラリも増えてくると思うので、ちょっと自分の環境にインストールして試してみようと思います。

TGWSWebAdminとドラクエ10

TGWSWebAdmin

もっとも根幹をなすTaskの部分を作成中。
まだ何も動かない状態で、パッケージ管理ツールのComposerにも慣れながらの作業なので具体的な実装はほとんど進んでいませんが、とりあえずHelloWorld的なものを表示するだけの仮タスクだけは作りました。

ドラクエ10

しろいコキンのモンスターバトルロード進めました。
ランクCだったのを一気にAまで上げました!メインキャラのはずのミフミン(ランクB)を一日で軽く超えました!
絆のエンブレム2種と、虹パックをありったけ交換しました。

TGWSWebAdmin

TGWSAdmin、今はWindows10の個人PCを使って運用しています。
しかし、アップデートで勝手に再起動したり、そうでなくてもうっかり何かやらかして落ちたりということがたびたびあったわけです。で、遠隔地の安定したデータセンターに安価でサーバー機を仮想的に作れるVPSというものに興味を持っているという話を先月しました。
あのときは、Linuxに不慣れなまま時間が過ぎていって、いったんVPSを解約することになりましたが、そろそろまた具体的な行動を始めようかなと。

いきなりVPSを再契約するわけではありません。
プログラム自体は動く段階まで手元で持っていって、充分動くことが確認できたら、そのとき初めてVPSを契約し、プログラムを稼働させるのです。

VPSはLinuxで運用するつもりなので、まず、WindowsでもLinuxでも動くものを作らなければいけません。
当初、TGWSAdminが.NETでできていたので、Linuxでも動く.NET、.NET Coreを検討していました。実際、.NET Coreを両方の環境で動かす段階まではこぎつけました。
しかし、さらに検討を進めていくと、それは必ずしも得策ではありませんでした。
いくつか理由はあったのですが、大きかったのは2つ。
1つ目、同じ言語を使えるだけで、結局大改修が必要になってしまうということ。元のプログラムがWindowsフォームアプリケーションなので、ライブラリも動き方も、環境自体が大きく変化してしまうんですね。そうなれば、当然、プログラムも大きな変化が必要になるのです。
2つ目、ホットスワップ的なことをしたいこと。つまり、プログラムが動き続けている間に、プログラムの一部を差し替えてしまえるようにするのです。.NETアプリケーションは、基本的に、いったんシステムを全部止めてから、完成したものに全部差し替えるという作業が必要になります。タスクAが動いている間にタスクBを最新版に更新なんてことは、無理ではないにしても大変なのです。

そこで、目を付けたのが、PHPです。
元々サーバー上で動かすことを前提としていて、WindowsでもLinuxでも同じように動かすことができて、私自身、.NETに負けないぐらい使い慣れています。主にWebサーバーで動かすものなので、ユーザーインターフェースもWebアプリとして作れば済みます。
プログラムは大改修どころかフルスクラッチになってしまいますが、これを機に元のプログラムで良くないと思っていた設計も見直すつもりです。動作中のプログラムの一部差し換えは、PHPファイルをただ上書きするだけで済みますね。

と、いうことで、VPS版のTGWSAdminは、PHPで実装されたWebアプリとして提供され、各タスクはPHPファイルを適時呼び出すことで実現される、という形で実現しようと思います。

Sukeru

ちょっと機能追加中。
流石に何のUIもないというのはあんまりなので、コンテキストメニューだけ設置。
そして、実行時にパラメータでファイルを渡すと最初から画像を表示するように。
ちょっとしたミスのせいでだいぶ悩むことになってしまったけど。
あとは、背景色を変える機能を付けられれば、Sukeruでやりたいことはやりつくせるかな。
やりつくせなくても、来週ぐらいにはいったんリリースする予定です。

NeoMupl

追加機能のリリースが一段落ついたので、何年も悩まされている勝手に落ちる問題への対応に着手。
UI側と、再生側を別プロセスにして、再生側で問題が起きてもUI側が巻き添えで落ちないようにします。
再生側をサーバーとして、UIがクライアントになって、サーバーに対して再生リクエストを送る感じです。
んで、サーバーは、落ちる原因が結局はっきりしないので、落ちる前に再起動です。
原因はわからないのですが、開始後すぐに落ちることがないことだけは分かっているので、常に「開始直後」の状態を維持するのです。
果てしなく非効率的になってしまうのですが、原因を解決できない以上、こうするしかないと思っています。

ゲーム記とアンパンマンDB

ゲーム記

ドラクエ10のページを更新しました。
冒険日誌アーカイブへのリンクです。各キャラクターの項目に入れているので、見に行きたいときはそちらからどうぞ。

アンパンマンDB

タイトルジェネレータの管理画面を改良しました。
以前は追加しかできなかったのですが、編集もできるようになりました。予定では検索もできるようにするつもりでしたが、そっちはCtrl+Fで済ますことにしました。

コメント時に一部の人の前に現れる、クイズ認証を改良しました。
以前は問題数が一つしかありませんでしたが、数が増えました。ずっと前に言っていた、クイズ機能の真の目的です。みんなが楽しく遊んでいるクイズから、正解率の高いものを選んで、ちゃんとわかっている人ならわかるはずという問いを出して、コメントを書くに値する「人」かどうか、判断します。
ただ、クイズそのものの改良はまだまだ必要だと感じますね。問題数もまだまだ少ないし、もしかしたら、本来なら正解になるパターンでも間違いと判定されてしまう場合があるかもしれません。そのためには、まず回答を分析する必要があるのではないかと思います。となれば、今後必要なのは、回答履歴機能、ということになるかな…。

PHPCRSSとNeoMupl

TGWS内のPHPコードをphp-cs-fixerで整形してみました。
管理の都合でイレギュラーな書き方にしている部分も多々あるので全部とはいきませんでしたが、だいぶすっきりしました。true/false/nullの大文字小文字の不統一や、publicの付け忘れなどが解消したのが特に有益でした。

PHPCRSS

で、同じのをPHPCRSSにも使ってみました。
動作内容が何も変わっていないのでダウンロードコーナーは更新していませんが、GitHubで今のURLにて修正版を公開しています。
https://github.com/mifumi323/PHPCRSS

以前も言ったように、PHPCRSSそのものに対する開発モチベーションはすでにありません。
アーカイブ形式をLZHからZIPにするぐらいはしてもいいかなって思ったりもしますが、それをする価値もあるかどうか…。

NeoMupl

最新版公開しました。

NeoMuplとドラクエ10

NeoMupl

しばらく再生していたら落ちる問題は当分解決しそうにないし、新機能とかはまだ公開できてないし、今自分で使ってるのほぼそのままでいったん最新版として公開することにします。
正直、今更何の需要もないとは思いますが、一応成果が出るには出ているので成果物は出しておきたいところです。
INIファイルがない初回起動時にエラーが出ていたのですが、これも解消する見込みです。
とりあえず、今日は準備だけで、実際の公開は改めてテストしてから、明日以降ということで。

ドラクエ10

きゅっぴりーんの全体報酬獲得。ダサい服と福引券250枚。福引券の報酬倍率って一番支援した人の金額で決まるってことだったみたいですね。参加者本人の支援額だと思っていました。「全体報酬」だから全員同じってことですね。

しろいコキンの姿を元に戻しました。いつまでもコスプレ系というのも自分らしくなかったのでね。まあ、しろいコキンの時点である種のコスプレ的なものですが。
ミフミンとァォィョッュはまだ戻していません。

<2017年07月 2017年05月>