無題
新しいものだけに自動テスト導入すればいいと思っていたけど、古いものを新しいものに差し替えるときにも、動作が変わっていないか確かめるテストが必要なのか…。
プログラミング関係の話題。プログラミングコーナーを更新したとか、プログラミングの内容に踏み込んだ話とか。
新しいものだけに自動テスト導入すればいいと思っていたけど、古いものを新しいものに差し替えるときにも、動作が変わっていないか確かめるテストが必要なのか…。
ローカル環境で作ったComposer環境をそのままサーバーにアップするのはやめて、ローカルはローカル、サーバーはサーバーで別個にComposer環境を作ることにしました。
ローカルはPHPUnitつきで、サーバーは--no-devで。
QiitaにGraphQLの記事投稿。
GitHubのAPIを呼ぶPHPできました。
自分で使うのとは別に、これをネタに何か書こうかと思います。
新規投稿後は新規投稿一覧に飛ぶようにしました。
既にリリース済みですが、見るだけの人には関係ないし、新機能やバグ修正というほどでもないので、更新履歴での告知はしていません。
欲しい情報を取得するGraphQLを構築できました。
しかし、GraphQLを呼び出すプログラムの作り方がまだよくわかっていないので、もう少し調べる必要もありそうです。
今更ながら、導入してみました。
ちゃんとしたテストはまだ作っていないですが、お試しでちょっとしたサンプルコード的なものを仮に作っておきました。
サイト全体に適用するのはさすがに無理があるので、これから作る部分から順次作っていくことになりそうです。
テンの日。
あと、ァォィョッュもバトエンのクエストをクリアして、全員バトエンできるようになりました。
GraphQLについて調べもの。
旧来のREST APIを使えばたぶん手っ取り早いんだけど、せっかく新しいのが出たんだから使ってみたい。
何度もリクエスト投げなくてもいいとか、必要なデータだけ取ってこられるとか、REST APIより有利な部分があるようですし。
申し込めるようになっていたので、お試しで始めてみました。
とりあえず、自作のUWPアプリが動くところまで確認。
この時点で、VPSに今回期待していたことができないことが分かったので、今のところは、無料期間だけで撤退するつもりです。
で、ついでに、UWPでのタイマー処理もいくつか試してみました。
ThreadPoolTimerと比べてDispatcherTimerがいまひとつな印象。
管理メモのAmazon最新情報を更新。
AmazonのAPIで指定できるサーチインデックスは一通り試してみました。
その中で、意味のある結果が返ってきたものを全部出すようにしてみました。
日別画像アップロード実装完了。
画像をそのままアップするのと、放送日当日用の切り抜きを行うパターンができています。
それ以外のパターンは、今のところは、アップロード前に加工してからそのままアップですね。
サルベージのステージがユニークな形ではかなり高難度でした。
プロセス分離がまだ時間がかかりそうなので、暫定対応として、エラーで落ちる前に自主的に再起動できるように、再起動メニューを作ってみました。
暫定対応なので最終的になくせればいいなと思うのですが、とりあえずは再起動メニュー自体に問題がないかどうか確かめてから、いったんリリースしようと思っています。
地味ーに再起動処理と二重起動防止がかち合うという現象が発生したので、これをネタにプログラミングコーナーを更新してみるというのもいいかもしれませんね。
試してみよっかなーとか思ってさくらのVPS覗いたら、売り切れでした。
自前でサーバー機持とうとすると、Windowsって、特にWindows Serverって、まともに買うとすごく高いし、ハードウェアだって、保守が結構大変になってくるしで、物理サーバーは持ちたくないのですな。
うーん、しかし、売り切れなら仕方ないか…。
記事中のカテゴリの並びを修正しました。
ドラクエ11→ドラクエみたいに50音順にしては不自然な流れだったのを、ドラクエ→ドラクエ11みたいに並べるようにしました。
元々は区切り文字ごと自然順ソートしていて、数字と区切り文字を比較しようとして、数字が先に来てしまったということなのですね。
あくまで自然順で比較したかったので、区切り文字を含まないようにして比較するようにしました。
あと、カテゴリ提案のため、ちょっとした統計を作っています。
ちょっとどころじゃないメモリを食うのですがね…。
プログラミングコーナーにない記事を作成。
Form.Showをusingで囲んじゃだめだよ - Qiita
TGWSAdminでやらかしていた失敗を記事にしました。
10で11とのコラボアイテム取得。
…なのですが、なにか1個足りない…。
時間に追われてゲームを無理やり進めるのはもう嫌なので、コラボアイテムはさっさと他人の呪文で手に入れて、11はゆっくり好きなペースで残りを片付けていこうと思います。
昨日のことですが、Qiitaに登録してみました。
mifumi323 - Qiita
単にプログラミングの知識を置いておく場所としては、自分のサイトで事足りていたのですが、細かい単発ネタとかをぼちぼち投稿していこうかなと。
コメントの重複チェックを入れました。
今まではあとから管理画面で処理していたのですが、今回からは投稿前に止めます。
ただ、コメントが重複するシチュエーションを考えると、エラーで止まるのはよくないんじゃないかな、という気もしています。
管理側ですが、スケジュール表を任意を日付で出せるようにしました。
1年先の投稿をあらかじめ作っておくこともあるので、これまでの向こう1か月間の表示では足りなかったのです。
似ているキャラ似てないキャラ(または質問)を判定するのは勝手な基準で計算した類似度より、相関係数のほうがいいんじゃないか。
1に近ければよく似ていて、-1に近ければほぼ反対、0に近ければ無関係となるわけです。
1に近すぎるキャラは、同じキャラかもしれない、または差別化できておらず見分けがつかないことを意味します。
-1に近すぎるキャラは、どちらかが不適切な回答結果かもしれないことを意味します(本来は「いいえ」が多くなるのでみんな多少は正の相関を持つはず)。
質問についても極端な相関関係は問題がある可能性がありますが、逆に0に近いものは、独立性が高く良質な質問と言えます。
すすすすすすぷりがんがががががががおもってたいじょうにつつつよくくくくくくく…
というわけで、レッドマウンテンの攻略ページ、実際に攻略しつつ、ボスまで書き終わりました。
もろもろの都合により、全ステージ最弱状態からスタートしていたので、敵の攻撃が激しいこのワールドはかなり苦戦しました。
不慣れなWiiUでの操作とはいえ…ボス戦であんなに死ぬとは思わなかった…。
とにかく、攻略ページは作れたので、近々更新します。
昨日言っていたBOMのページ、更新しました。
新デザインの適用と、初期ディレクトリの変更と、あとついでにいろいろ修正しました。
ディバイン装備お試し。
爆ボンのページの編集をしていたら、久々にBOM付きPHPを見つけたので、他にも余計なBOMがないか探していました。
ついでに、プログラミングコーナーのBOMの記事も書き直したので、明日にでもアップしようかと思います。
自動アクセス解析のアクセス数統計のデータ形式をXMLから単純なTSV形式に変更。
私、一時期XML万能説を信じていて、何でもかんでもXML形式にしようとしていたんですね。
確かにXMLは柔軟性や拡張性が高いのですが、表現はかなり冗長です。XMLの柔軟性・拡張性が必要ないときには、適材適所で選んでいくべきだったんですね。
TGWSAdminで使う場合、TGWSサイトと通信を行うので、通信に適したコンパクトなデータが適切だったというわけです。
TSVに似たCSVという手もあったんですが、解析内容にはコンマを含む可能性が高く、タブが含まれる可能性は低かったため、エスケープ処理を少なくできるTSVを選びました。
PHPプログラムをテストなどしやすくするため、環境変数への依存を減らしています。
クッキーみたいに外部から来る変数ありきのページもありますが、ドキュメントルートなど、本当は環境変数に頼らなくてもわかる項目も多いんですね。
スタジアム装備の試着など。
海のイベントも始まったそうですが、そちらは未着手です。
プログラミングコーナー更新しました。
どっかで見かけて不思議だったコードの話です。素直に書いたら普通に速かったという、しょうもない話です。
色選択を実装しました。凝ったカラーピッカーとかではなく、Colors構造体にあるプリセットの中から選ぶ方式にしました。
特に問題がなければ、また来週にでもリリースしようかと思います。
ァォィョッュのストーリー進行。
アズランのメインストーリーと、ガタラのメインストーリーをクリアしました。
アストルティア★ラリーに参加したくて進めていたんですが、キーエンブレム全部は時間までに間に合いそうにないし、たとえ間に合ったとしてもラリー最後の強ボス戦にァォィョッュのレベル&しばりで耐えられる気もしなかったので、ラリーは諦めてキーエンブレムも今回の2つを加えた計3つで妥協。
第3回アストルティア★ラリーまでには全キーエンブレムを手に入れて、強ボスにも耐えられる力をつけたいですね。
先日の爆ボンの画像を自動で作るプログラムを作るときにちょっと気になったので、調べてみました。
pathinfo関数で得られるディレクトリが、ディレクトリなしのパスを渡されたときに何を返すのか、です。
結論は今日更新したページに書いてあるのですが、ここにも書いておくと、ドット「.」でした。
Sukeruに使ったWPFのコンテキストメニューのことを、プログラミングのページに記載しました。
結論としては「マニュアル読め」ってことなんですが、難しくないですよと言う紹介程度で。
ポケモンピクロスのページも準備中。
リリースから期間が経ってるし私も完全クリア済みだし、あまり多くは語らず、軽い紹介と自分の記録程度にしようと思います。
で、上記2つの更新をするときにはPHPファイルを触っているわけですが、Visual Studio Code上で編集するようになって、PHP-CS-Fixerで整形するようにしたので、TGWSWebAdminと同じく、.php_csファイルで整形のルールを指定することにしました。
今の.php_csファイルはこんな感じ。
厳しめなSymfonyルールを基本として、配列を省略表記して、PHPDoc関連は若干緩めています。
タスクリストの読み込みまで開発。
と言っても、読み込むデータがないのでまだ張りぼて。インターフェースをどうしようかと思案しながらなので、具体的な動作はまともにできていないのです。
そんなことより、TGWSWebAdminを開発しながらVisual Studio Codeの環境整備。
PHP-CS-Fixerの公式サイトを見ながらコード整形のルールを自分好みに整備しています。おおむねいたれりつくせりなSymforyのルールで、お節介すぎると感じたところは順次Offにしています。
PHP DocBlockerも入れて、ドキュメントコメントも入れやすくしました。
そして何より、PHP IntelliSenseを入れたので、関数の定義を参照できたり、コードの自動補完が利いたり、圧倒的に便利になったのです。
有料ソフトのPhpStormにはきっと遠く及ばないのでしょうが、ここまでやっただけでも、かなり快適になりました。
やっぱりどう考えても一覧に出てくる情報量が少な過ぎなのです。ほとんどの質問に対する回答は短く簡潔なのに、それすら削っているから、すごく読みにくいのです。
情報量を削っているのは、「読みに行く」というアクションを取らせて、回答を読んだ時の印象を強めようというのと、アクセス数の統計を取りたいという狙いがあったからなのですが、一言二言の回答まで削ってしまうのは、さすがにやり過ぎというものなのです。