「TGWSAdmin」に関する日記

ここTGWSの管理のために作ったツール。当然ながら非公開だよ。

次>

カービィのエアライダーとアンパンマンワンドロとTGWSAdmin

カービィのエアライダー


おためしライドおしまい!
今日が本当の最終日でありましたが、時間が時間なのでプレイはしませんでした。


製品版は予約済みの支払い済みのダウンロード済みだから、製品版でまた会おう!

ゲーム機の記事も先に準備だけしておいて、発売後にスクショ載せて公開というのもいいかもね。
ちなみに今回は攻略ページや耳コピは作らない予定です。
他にやることいっぱいあるのにゲームにも時間割くことになるので、凝ったページ作ってる場合じゃないんですね。

アンパンマンワンドロ

参加者カウントのバグ、修正しました。
まあ、バグが直ったところで、重複チェックとかまだしてないのでリリースしてないんですけどね。

TGWSAdmin

GitHub Actions設定してみました。
これ自体はうち独自の管理ツールなんで見ている人には関係ないんですが、.NET Framework 4.6.1使ってると4.8や.NET 5以降では遭遇しないしんどさがあったんで、そのあたり何かの記事にしてみてもいいかもですね。
何かのとか言ってる間に書けって話だな!

アンパンマンDBとTGWSAdmin

アンパンマンDB(記事更新)

来週の放送情報。
再放送です。

TGWSAdmin


直近数回のエラー率をバーで表示するようにしてみました。
従来も直近1回のエラーを表示する機能はあったのですが、エラーの後にリトライで成功するとエラーが隠れてしまうし、逆にリトライさえすれば成功するタスクもエラー続きと同じ表示になっていました。
今度は過去数回のエラーまで見てバーを太くするので、隠れたエラーは発見できるし、エラー続きとたまのエラーも区別できるようになったのです。

TGWSAdmin


こんなこと書いたので、今日書いたことでも。

StatusMessage = $"予約ツイートの予約時刻「{tweet.TweetDate}」を大幅に過ぎています。";
StatusDetail = tweet.ToString();
new ToastContentBuilder()
.AddText(StatusMessage)
.AddText("予期せぬ実行を防ぐため、予約時刻を100年後に延期します。")
.Show();

こんな感じ。
アプリ通知の内容 - Windows apps | Microsoft Learn
昔実装したやつだから新しくはないけど、StatusMessageプロパティで一度受け止めて、メッセージ内容を残すようにしました。
トースト通知、意外と目立たないんですよね…。

アンパンマンDB(システム)

最新っぽい情報群SP | アンパンマンDB
久しく動いていなかったレンタルDVDとほうそうのおしらせの最新情報が取れるようになりました。
そして、アンパンマン最新情報Botとの連携は、アンパンマンDBで直接やるのではなく、RSS経由でTGWSAdminから行うようにしました。
RSSのほうは更新時刻もちゃんと出るようになっています。

アンパンマンDBとTGWSAdminとふにゃ1

アンパンマンDB(記事更新)

来週の放送情報。
ガレットさんは新キャラですね。
クレープの亜種みたいな感じ?折り畳みがポイント?

TGWSAdmin

いつも記入している定型データの記入が簡単になるようにテンプレート機能を追加。
簡単に実装できる割りに効果高いんだからもっと早く作っときゃよかった。

ふにゃ1

昨今の高解像度環境対応のため、画面サイズ変更機能を実装中。
実はふにゃさんでもやろうとしたことがあったんですが、あの時は頓挫してたんですよね。
今回はWPFなんで拡大縮小処理はフレーム側にお任せで楽ちんです。
まあ、今は画面写真を出せないぐらい挙動が変なんですがね。

Internet ExplorerとTGWSAdmin

Internet Explorer

browserconfigとか、link rel="SHORTCUT ICON"みたいな、IEや旧Edgeピンポイントな指定、流石に実用上はもう不必要だろうと判断して、消しました。
実はまだIEらしきアクセスはあるにはあるのですが、上記はどちらもfaviconの指定なので、最悪表示されなくても閲覧に支障は特にありません。
まあ、JavaScriptとかCSS周りは古いブラウザを遠慮なく切ってるのですが。

TGWSAdmin

例外をToStringしたら、普通は例外の型名とMessageとスタックトレースのセットが出てくるのですが、どうにも行儀の悪いライブラリがあるようで、Messageしか出さず、何のエラーがどのような経緯で起きたのかがわからないようなToStringになっているケースがありました。
ちょっとこれだと問題の追求が面倒になるので、型によらず同じ形式で例外情報を出すメソッドを自作して、例外自体のToStringに使うようにしてみました。

TGWSAdmin

先日のMisskey用ライブラリ、さっそく使ってみました。
Twitter系のタスクに、Misskey投稿の機能も追加しました。
Twitter用のタスクに後付けしたので、画像添付が4枚までしかできないとか、Misskey用としては微妙な部分もありますが、Misskeyに特化した投稿をしたい場合は手動で直接やればいいので、ここはちょっと妥協です。

高DPI対応

いくつか試してみました。

浮き沈みランチャー

マニフェストで対応したらなんだかレイアウトがめちゃくちゃになった。
互換性の設定で高DPI設定を「アプリケーション」に上書きしたら文字はきれいになったけどアイコンが元のピクセル数のまま(小さく見える)で視認性がいまいち。

FNチェンジャー2

互換性の設定で高DPI設定を「アプリケーション」に上書きしたら文字はきれいになったものの、一部のレイアウトが元のピクセル数のままでレイアウト崩れ。

NeoMupl

同じく上書きで全体的にいい感じ。
ただし、違うDPIのディスプレイに移すと、ピクセル数が維持されるので見た目の大きさがおかしくなる。

TGWSAdmin

NeoMuplに同じく。
画像も適切に表示される。
.NET Frameworkのバージョンを上げると動作しなくなるので、互換性設定でしのぐつもり。

マニフェストでの対応がなぜか全体的にうまくいってないんですよねぇ。

TGWSAdmin

のんきなこと言ってたら、同じサーバーに置いてある別のメモリ食いなプロセスが死んでしまいました。
あっちはちょっとやそっとじゃ省メモリ化できないのでやはりこっちを頑張るしか…。

TGWSAdmin

アクセス解析タスクは現在の実装上めちゃくちゃメモリを食うのでメモリの潤沢なローカルマシンで動かしていたのですが、VPSのスペックアップをしたのでそっちに置いてみることにしました。
今のところはメモリ不足に陥ることなく、順調に動いているようです。
以前実装したAccessAnalyzerの逐次読み込み機能がそのあたりを根本解決するはずなので、取り入れていきたいところです。

TGWSAdmin


メディア設定ダイアログに貼り付けボタンを付けてみました。
これまでは一度ファイルに保存してから開かないといけなかったのですが、これで一部分だけ切り取ってから登録とか、スクショコピペとか一瞬でできるようになりました。
あと、ついでにファイルもクリップボード経由で貼り付けられるようにしました。

ちなみに冒頭の画像は、ひたすらメディア設定ダイアログをスクショ→貼り付けを繰り返したやつです。
これ、いちいちファイルに保存しながらだと手数が多くてやってられないんですよね。

今日の実装技術(Today I Learned)

この辺の実装に参考にしたサイト。

Clipboard.GetImageとClipboard.GetFileDropListですね。

こんな感じに、今日実装したやつに使った技術とか参考文献とかを日記に書いていくのもいいかもしれないですね。

AccessAnalyzer

実装を根本から変えた都合で、ちょっと仕様も変わりましたが、実装完了しました。
例外がすごく重い処理なので、なるべく例外を出さず、戻り値でエラーを報告するようにしています。
また、URLに日本語等が含まれている場合も、URLエンコードしなくなりました。
あと、ヒープ領域の確保も減らした…つもりだけど、正規表現使ってるから逆に増えてるかも。
まあ、急がない用途想定なので…。

#4実装中に見つけたやつ。
まあ、これ実際には使う予定ないんで、やらないと気持ち悪いからやるって程度なんですけどね。

AccessAnalyzer

ナマライザ&TGWSAdminのログ読み込みを効率化するため、#4に取り組んでいたら、HTTP/2.0を1.0に誤認するバグがあり、そもそもHTTP/2.0は想定すらしていなかったため、新たに課題を立てました。
HTTP/3がアクセスログに残るかどうかは調査中。

それはそうと、AccessAnalyzer自体が、もっと小回りの利くような仕組みにしたいなと思っていて、そうなると、各機能を別ライブラリにするのがいいんじゃないかと思い始めました。
これをやるとまた時間がかかりそうなので、ひとまずは考えるのは後回しにしようと思いますが。

アンパンマンDB(システム)

しばらく前からアンパンマンDBトップに表示される各記事のアクセス数が激減していて、まあ更新減ったし仕方ないなとか思っていたんですが、サイト内カウント月間30の「スターライトアンパンチ | アンパンマン用語DB」に対してGoogleからの流入だけで月間538もあって、さすがにおかしいなって気付きました。
おそらく、HTMLファイルによるキャッシュを導入した関係で、PHPファイルが呼び出されなくなり、PHPでのカウントが出来なくなったものと思われます。
TGWSAdminがアクセスログからアンパンマンDBのアクセス数を独自に数えているので、こっちの方をうまく使えばPHPに左右されずに正確なアクセス数を表示できるようになるのではないかと踏んでいます。

TGWSAdminとゼルダの伝説 ティアーズ オブ ザ キングダム

TGWSAdmin

更新情報ツイート機能復活しました。
アンパンマンワンドロの朝の告知も同じシステムを使っているので、そっちも復活です。

ゼルダの伝説 ティアーズ オブ ザ キングダム


どこでも料理台をアレンジしてどこでも砲台!
杭で壁のちょっと高いところに固定して、敵の射程圏外から一方的に攻撃できます。
そもそも、どこでも料理台自体が、ライネルの曲射を想定したであろう屋根付きの作りになっているので、多分もともと真の目的が料理じゃなくて砲撃なんです。
とはいえ、砲台をくっつけすぎると重量で自壊したり、ダメージが少なくて時間がかかったり、そもそも都合のいい壁がなかったら設置すらできなかったりと、必ずしも万能ではありませんでした。

それはそうとして、ついにマスターソードゲット!
写真は思いっきりネタバレになるので伏せておきます。


最後の大妖精も開放。
水を渡れないなら空を渡ればいいじゃない!
…ふぅ。

他の写真は以下から。
ゼルダの伝説 ティアーズ オブ ザ キングダム(2023/06/20)の写真

ドラゴンクエスト10とVPS

レース刺繍のウィング
バレンタインイベントの投票終わってました!
優勝はメレアーデさん!
プレゼントはレース刺繍のウィングでした。

ドラゴンクエスト10(ミフミン)

アスフェルド学園の菜園の家
家、建て替えました。
アスフェルド学園の菜園です。
外見は小さいのですが、中は異次元の広さになっています。

ドラゴンクエスト10(ァォィョッュ)

レンダーヒルズ
1億ゴールド貯まった!
9500万まで来たので、ラストスパートと思ってがんばったらあっという間でした。
で、レンダーヒルズの写真を撮っていますが、畑で栽培中のため引っ越しはまだもうちょっと先になります。
土地を先に取られていなければ420丁目に行くつもり。

他の写真は以下から。
写真置き場「2023/02/12」

VPS

ひとまず、XserverのVPSを契約してみました。
TGWSAdminがうまく動けばさくらのVPSから乗り換えます。
動かなければ…先日からあれこれ調べているFediverseの何らかのインスタンスでも建ててみますかね。

ドラゴンクエスト10とWellKnownUriParser

ドラゴンクエスト10

昔日のよろいセット
おきがえリポちゃん ~ 昔日のよろいセット ~ (2022/11/21)|目覚めし冒険者の広場
毎月のレンタル衣装。
25日の貸衣装だけど日付が変わってから借りたので26日です。
「むかしび」じゃなくて「せきじつ」って読むんですね。

他の写真は以下から。
写真置き場「2022/11/26」

WellKnownUriParser

NuGet Gallery | MifuminLib.WellKnownUriParser 0.1.0-alpha9
検索クエリのリダイレクト除外対応、出来たのでNuGetにアップしました。
TGWSAdmin側にもすでに入れたので、明日の検索フレーズ統計から反映されます。
ここで問題なければ、ナマライザにも反映ですね。

ドラゴンボール超とTGWSAdmin

ドラゴンボール超 スーパーヒーロー

映画『ドラゴンボール超 スーパーヒーロー』大ヒット上映中!
観てきました。
ドラゴンボールはGTまでしかまともに見てない、映画に至っては小学生の頃のおぼろげな記憶しかないレベルでしたが、楽しめました。

あんまりネタバレのない感想はこちら。

やっぱり、映像的なところで進化を感じましたね。
3DCGをベースにして、2Dで調整して、2Dアニメとして違和感のない3Dアニメとして仕上がっていました。
バトルシーンはもちろんのこと、日常の何気ない所作がいいんですよ。
ツイートではヘドのオレオのことばっかり言ってましたが、それ以外にも、パンの子供らしいせわしない動きとか、名前もわからないレッドリボン軍兵士とか、あとピッコロさんとかピッコロさんとかピッコロさんとか…。
最初だけ実はいかにもな3Dで違和感があったのですが、人造人間の目から見た映像だったので、意図的な表現だったのでしょう。

それと、当然と言えば当然なんですが、ガンマ1号と2号が魅力的。
スーパーヒーローと自称していたんですけどね、やっぱりヒーローなんですよ。
悪の手で生み出された都合で悪の手先みたいなことやってたけど、芯の通ったヒーローなんですよ。

TGWSAdmin

昨日対応したJPEGの回転対応が不充分だったので、修正しました。
再圧縮するときに回転を考慮するようにはなっていたのですが、再圧縮不要な場合にはそのままでした。
Twitterに投稿する分には再圧縮しなければそのままでもいけるので、再圧縮しないときは表示時だけ考慮するようにしました。

アンパンマンDBとTGWSAdmin

アンパンマンDB

「ドロリンとバケ〜るカーニバル」の作品情報を更新
キャラ「フワリー」を更新
映画のこと、書いてきました。
で、書き方で昨年の映画を参考にしていたら、昨年の映画のヒロインの情報が全然書けてなかったので、ちょっと追記しました。

TGWSAdmin

スマホで撮った縦長画像がうまく処理できていなかったので修正しました。
以下のサイトに、やりたかったことそのままのサンプルがありました。

EXIFの情報に基づいて画像を回転する - smdn.jp

PropertyItemsを見て回転、ですね。
サンプルは3種類の回転しか対応していなかったので、反転の方も対応して取り入れてみました。

次>