「PCハード」に関する日記

次>

アンパンマンDBとキャラ倉庫とJC-GP20XBK

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

来週の放送情報。
そうめん…残暑だからまだ季節か。

キャラ倉庫

Bot対策しつつアクセスログから人気のページを集計するための仕組み、作ってみました。

(技術的な話)
mw.hook('wikipage.content').add(function () {
    const id = mw.config.get('wgArticleId');
    if (id === 0) {
        return;
    }
    const d = new Date().getTime();
    setTimeout(async () => {
        try {
            const url = '/a.md?' + id + '-' + d + '-' + (new Date().getTime());
            await fetch(url, { method: 'HEAD' });
        } catch (error) {
        }
    }, 5000);
});

グローバルスクリプトのMediaWiki:Common.jsに処理を書くことで対応しています。
このスクリプトでやるのは、集計に使えるリクエストをサーバーに送ってアクセスログに残させるところまでです。
実際の集計は、後日、これとは別に作ります。

まず前提として、ここではJavaScriptを使って行います。
私の個人的なこだわりとして、JavaScriptを使わずに済むなら使わずに済ませたいのですが、MediaWikiの時点でJavaScript使いまくっているので、相対的にデメリットは少ないかなと。
そして、Botはページ本文だけ見に来て、JavaScriptの実行まではしないことがほとんどですからね。

mw.hook('wikipage.content')は、コンテンツロード後に関数が発動するする仕組みです。

で、最初にページIDを取って、有効なページのときだけ処理を進めるようにしています。
特別ページなど、記事じゃないページを集計しても仕方ないですからね。
ちなみに、このMediaWiki:Common.jsのページも記事IDを持つ立派な記事なので、みんながこのスクリプトを見に行くと、スクリプトが人気ページになります。
まあ、これは今後実際に集計する仕組みを作るときに除外すればいいだけの話かな。

処理が進んだら、時刻を記録してタイムアウトを仕込んで、サーバーにリクエストを送ります。
このときのリクエスト先URLは、できるだけ短い名前にした静的ファイルのa.mdに、パラメータでページIDとタイムアウト前後の時間を加えています。
URLに時刻を含めることで、リクエストせずキャッシュからレスポンスが返るのを防ぎつつ、URLと実際のリクエスト時刻を照合してリクエストの整合性を検証できるようにしています。
タイムアウト仕込む前とタイムアウト後の時刻両方を含むので、ちゃんと待ったかどうかの検証もできます。
Botが昔見つけたURLをもう一度叩いても期限切れなので意味がないというわけですね。
もちろん、人間のアクセスでも、ちゃんと読まずに一瞬で通り過ぎた場合は集計対象になりません。
なお、ただのタイムスタンプなので明確な悪意があれば偽装は容易ですが、そんなことする意味もないので、偽装するやつはいないという想定です。

ちなみに、わざわざ有効な静的ファイルを用意しているのは、MediaWikiの手を煩わせないためです。
静的ファイルがあればそれを直接読むように設定してあります。
もしファイルを置かなければ、MediaWikiに処理が渡り、a.mdというありもしない記事を探した挙句、本来必要のないエラーログを残して404エラーを出すことでしょう。
そうさせないための、静的ファイルです。

そして、サーバーへリクエストを送る際は、HEADメソッドで送ります。
目的はあくまでも「リクエストを送ること」までなので、レスポンスは要らないし、ましてやリクエスト先のコンテンツなんかも全く必要ありません。
なので、コンテンツを返さないHEADメソッドが無駄がなくてよいということになります。
厳密に言うと、レスポンスヘッダは返ってきますが、不要なので受け取らずに捨てています。
Botはむしろリクエスト先の中身が欲しいので、GETメソッドでリクエストするでしょうが、HEADメソッドではないので集計対象にはしませんし、もちろんリクエスト先のa.mdの中身は無意味なものしか入っていません。

一応、a.mdの中身は下記リンクから見えるようにしておきますが、本当に意味のないことしか書いていませんし、これを読んだところで人気ページ集計には寄与しません。
a.md

というわけで、まとめると、こうなります。

  • 文字化け対策:ページIDを使って確実にページ特定
  • Bot対策:時刻をパラメータに含めて検証&普段使わないHEADメソッドでリクエスト
  • 負荷対策:静的ファイルにHEADメソッドでリクエスト

JC-GP20XBK(ゲームコントローラ)

なんかPCが一挙手一投足ごとにタスク切り替えだのゲーム起動画面だのが出てきておかしいなと思ったら、ゲームコントローラが誤作動していました。
USBケーブル差しなおしたら改善したので、どうやら繋ぎっぱなしだったケーブルが外れかけて接触不良を起こしていたようです。

浮き沈みランチャー2とPay Per CrawlとJC-GP20XBK

浮き沈みランチャー2

課題、立てました。

Pay Per Crawl(Today I Learned)

早期アクセスを取得:Cloudflareクロールごとに課金のプライベートベータ版 | Cloudflare
先日言ってたAIに閲覧料支払わせる件、Cloudflareがサービスとして作っているようです。
まだ早期アクセス版、つまり完成前のお試し版的なものらしいですが、とりあえず申し込んでみました。
問題は、現在支払い能力を持っているのが、ごく限られた事業者に限られるということ。
まあ、迷惑しかかけてこないMetaはブロックを続けるとして、他は期待しない程度に設定しようかと。

JC-GP20XBK(ゲームコントローラ)


ELECOM GAMING 有線スタンダードゲームパッド GP20X - JC-GP20XBK
買ったコントローラ(GameSir T4 Pro)が、物理的にも入力的にもだいぶボロボロになってきたので、買い換えました。
T4が早々に無線機能ぶっ壊れてただの優先コントローラになってしまったのと、背面キーを誤爆して思わぬ事故が起こったりしていたので、今回はシンプルな有線コントローラにしました。
十字ボタンとLRトリガーがちょっと固いことを除けば、まあまあ快適です。
接続コードは硬いのでちょっと邪魔になるかも。
T4はケーブル変えられたからめちゃくちゃ柔らかいのに換装してたんよね。

キャプチャーボードとパイロットウィングス64

キャプチャーボード


なんとか音声も出るようになり、爆ボンも起動するようになり、配信できる環境にこぎつけました。
音声は、映像出力のほうをガチャガチャいじっていたら急に出るようになりました。
爆ボンは昨日起動できなかったんですが、端子部をきれいに拭いて、何度か抜き差ししていたら起動しました。
データは消えてました。

パイロットウィングス64

起動テストのためあれこれ差してプレイしていたんですが、なんか記録更新してしまいました。
ハンググライダーの一番難しいやつの最初のタスク、7→20点です!
100点満点中ね。
難しすぎんのよ。特に着陸。

ドラゴンクエスト10とキャプチャーボード

ドラゴンクエスト10(おきがえリポちゃん)

おきがえリポちゃん ~ 伝説の勇者の衣 ~
おきがえリポちゃん ~ 伝説の勇者の衣 ~ (2026/5/22)|目覚めし冒険者の広場
今月の貸衣装。
正統派の勇者っぽい衣装ですな。
そして伝説へ…

他の写真は以下から。
写真置き場「2026/05/25」

キャプチャーボード

EzRecorder 330と組み合わせて64のゲームキャプチャしようと思ったんですが、なぜか音声が出ず、比較のためにゲームキューブを繋いだら音声が出ないうえにコントローラも使えなくなっていました。
更にはEzRecorder 330と組み合わせるとこないだまで元気だったスイッチも音声が伝わらず。
うーん、あまりに残念。

キャプチャーボード

バイオ9で実況始めたわけだけど、別にバイオ9に限る必要もなく。
となると、PCでできないゲームが多い任天堂ハードのゲームも動画撮りたいわけで。
ということで…

AVerMedia | 4K HDMI 2.1 USB Capture Card | Live Gamer ULTRA 2.1 | AVerMedia
キャプチャーボード買ってきました。
以前にEzRecorder 330買ってましたが、あれはPCに繋げないのでちょっと扱いづらかったんですよね。
コンポジット入力はあっちにしかないので、レトロゲー目的なら組み合わせて使うことになります。

とりあえず、遅延とかも見るためスマブラで試したけど、遅延に関しては許容範囲かな。
一応声も入れて動画にはしてあるけど、これを投稿するかは微妙なところ。
もう何パターンか実験してみるか。

マウス

BSMBU26SMBK : マウス | バッファロー
買い換えました。
静音マウスなので、クリック音は小さめ。
クリック感は重すぎず軽すぎず、「静音なのに確かなクリック感」の謳い文句の通り。
ケーブルがちょっと硬いけど、ケーブルが邪魔にならない配置にしたから問題なし。
前回使っていたマウスより動きが遅くなったけど、これは設定をいじって解決。

一応ゲーミングマウスも検討したんだけど、マウスの正確かつ高速な操作が求められるゲームはしないし、3ボタンとホイール以外の機能は私にとって邪魔になったことしかなかったし、今回は除外しました。
有線タイプにしたのは、電池交換が面倒だから。
最初に入った電池で10年持つんなら無線でもいいんだけどね。

Microsoft Print to PDF

なんか保存先はおかしくなった気がする。
そもそも印刷はあまり使わないけど、気になる。

モニタ

自分のに限らずいろんなソフトでぼやけの調整を試してみました。
基本は自作ソフトと同じく高DPI設定を「アプリケーション」に上書きでいい感じですね。
んで、それでレイアウトが破綻するようならどうにもならんのであきらめてぼやけたままにする、と。
ぼやけるのは基本古いソフトだからやむないところですね。

モニタとドラゴンクエスト10

モニタ

ドラクエ10と原神、試してみました。
画像ファイルでかいのでテキストリンクで。

どっちも4Kの解像度に対応していました。
原神は遠景も細かく描写されています。
ドラクエ10のほうは独自のビットマップフォントを使っているようで、文字が相対的に荒く見えていますが、キャラクターのほうは遠くに小さく映るキャラまでしっかり描写されていますね。
リフレッシュレートに関しては、どっちもゲーム本体のほうが最大60FPSなので、モニタ側の144Hzをフルに活かせるようなものではなさそうでした。
HDRに関してはよくわかんなかったけど、どっちもアニメ調のレンダリングだからHDRに対応してるか怪しいかも。
下に掲載していますが、ドラクエ10のほうのゲーム内写真では、4Kで実行していても1920x1080で保存されました。
まあ、原神と違ってサーバー保存だから仕方ないか。

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

天奏楽団

  • クエスト「天声を聞きし者/天声に至る者」をクリアした!

いよいよレベル126に達したので、レベル上限解放しました。
普通に強いミフミンやしろいコキンが万全の体制でもそこそこ時間かかっていたので、サポなしソロ専のァォィョッュでは前半20分後半30分かかってしまいました。

ボス戦を含むほかの写真は以下から。
写真置き場「2024/01/20」

アンパンマンDBとモニタ

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

来週の放送情報。
Aパートは大変な二人を引き合わせてしまって、収集つくのか?
Bパート、焼きそばに唐辛子はあまり聞かないけど、なくはないみたい。やるのかな。

モニタ

買いました。
4Kでリフレッシュレート144Hzで応答速度1ms(GtG)でHDRで音も出せるやつ。
このスペックをフルに活かせるゲームは今持ってなさそうな気がするけど、ドラクエ10と原神はちょっと試してみたいですね。

モニタ

ちょっといいモニタ検討中。
4Kでリフレッシュレートと応答速度高めのやつ。
お値段も相応にお高めになるので、いろいろ比較検討中。

GameSir T4 Pro

ドラクエ10で動かない症状再発。
一応PC再起動で復活するし、動きが悪いモードに切り替えると動くんだけど、動きが悪いモードは動きが悪いから嫌だし…。
無線接続でどうにかなるかと期待して無線用ドングルを装着したら接続もしないで謎のめちゃくちゃな入力が意味不明な速度で飛び交うし…。
保証期間はとっくに過ぎてるし、少なくとも有線接続においてはPC側では認識しているし、ドラクエ10側にお問い合わせしたほうがいいかなぁ。

マウス

マウス - Verbatim Japan(バーベイタムジャパン)
買い換えました。
個別の商品ページがないですが、有線の静音タイプです。
クリック感はちょっと固くて、以前と同じ感覚でゆるく持っていると、クリックできていなかったり、ドラッグ途中で押し戻されたりしました。
ケーブルもやや硬くて、箱から出した直後は下向きに癖がついてしまっていて、ちょっと浮き上がっているような感触がありました。
マウスカーソルの動きも遅いかなーと思いましたが、これは設定で動きを調整したので問題なしです。
前回使っていたのと比べると微妙かなって思うところはありますが、慣れれば気にならなくなるだろうとは思っています。

アンパンマンDBとEzRecorder 330とマウス

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

レンタルされたので実際の中身確認。
収録本数が14本ではなく12本だったので、減らしました。

こちらは新たに情報が出た方。
11月1日にレンタル開始です。
多分販売用のDVDも同日だと思いますが、記事作った時点ではAmazonになかったので、後日また確認します。

EzRecorder 330

ネットにも繋げたので、配信と録画を試してみました。
配信の方は初期設定の配信設定でゲームキューブのシステム画面を回すだけのものなので、公開はしていません。
で、録画したほうは、スマブラDXのアドベンチャーモードを一周したのでせっかくだから公開しようかと思ったのですが、配信では聞こえなかったマイク音声が入っていて鼻息まみれだったので、こっちも公開しませんでした。
一応、入ってないと思っていたマイク音声がうっかり入り込んでしまった以外は、システム的には特に問題なさそうでした。


この画像は、実際に録画した動画から切り抜いたもの。
動画ファイルは、(少なくともコンポジット入力に対しては)DVD画質で記録するようで、720x480の解像度で保存されました。
動画ファイルである限りはアスペクト比も同時に記録されるので正しい縦横比で表示されるのですが、静止画にするとドットバイドットで表示されるので、少し横に膨らみます。
HDMI入力だったらフルHDのまま記録されるのかな?

マウス

昨年買ったマウスが、中央クリックを認識しにくくなりました。
力を込めてぐりぐり押し込まないと反応しません。
1年持たなかったけど保証期間6ヶ月だからもう保証切れだなァ。

EzRecorder 330

まだネットには繋げてないけどそれ以外の配線とストレージの準備は完了。
画面出力の即応性なども確認したいため、スピーディなゲーム性に定評のあるスマブラDXで動作確認。
私自身の反応速度が鈍いのはともかくとして、画面の遅延は特に気になりませんでした。
この辺りは、さすがゲーム実況を想定した製品なだけはあります。
画質に関しては、想像以上にぼやけていて、正直残念な感じ。
まあ、映画とかを想定したものなら超解像技術とかで頑張ってほしいけど、そのために画面に遅延が発生したらゲーム用には使い物にならないので、ここは仕方ないかなというところ。
ストレージは以前使っていたスマホのmicroSDカードを流用。
もともとのFAT32だと拒否された(マニュアルにもダメって書いてある)ので、NTFSでフォーマットし直して差したら認識されました。
録画はまだ試してないけど、これも動きの良さの確認のためスマブラDX使うのがいいかな。

アンパンマンDBとEzRecorder 330

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

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

EzRecorder 330

EzRecorder 330 - ER330 | AVerMedia
買いました。
ビデオキャプチャー機器です。
PCに繋がなくても簡単に~みたいな売り文句でしたが、どっちかというとコンポジット端子に繋げてレトロゲー録画できる方が個人的には重要ポイントでした。
PCに繋がなくてもいい反面、PCに繋げないので、OBS Studioとかで追加情報を表示しながら配信みたいなことはできないのがマイナスポイント。
まあ、リアルタイム配信しない前提なら、microSDカードに保存して後で編集すればいいんですが。
うーん、HDMIパススルーをUSBに変換すれば一応繋げるか…?

WellKnownUriParserとアンパンマンDBとGameSir T4 Pro

WellKnownUriParser

Googleのリダイレクト用URLを除外 · Issue #5 · mifumi323/WellKnownUriParser
昨日の件はWellKnownUriParserの管轄なので、課題立てておきました。
パス部分での条件を追加する感じですかね。
テキストテンプレートを久しぶりにいじるので思い出さないと。

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

記事個別編集の投稿時のエラー処理作成。
ただ、必須項目不足には抜け穴があるので、その対応はまだ必要です。

GameSir T4 Pro


以前買ったゲームパッドがドラクエ10との相性微妙…。
一応、切り替え操作でちゃんと動かせるモードに切り替えることもできるんですが、不定期にいきなりうまく動かないモードに切り替わってしまうのです。
モードを固定できればいいのですが…。

パソコンデスク

パソコンのデスク周りを模様替え。
接続周りのメンテナンス性が良くなかったので、そのあたりを広くとるようにしてみました。

アンパンマンDBとスマホとマウス

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

「ポッポちゃんとブリキッド」の作品情報を追加
「ホラーマンとコキンちゃん」の作品情報を追加
来週の放送。

スマホ

移行したいデータはおおむね移行完了。
オンラインストレージとパスワードマネージャを真っ先に移行すればスムーズでした。

マウス

チャタリングはしないけど、ボタンがちょっと固くて、クリックしたつもりができてない、と言うのが発生しがちです。
前と同じタイプの方が良かったかも。

マウスとゲームパッド

マウス

買い換えました。
私の好みは、有線・3ボタン・静音タイプ。
同じのはあったのですが、別のを買いました。

抗菌 有線 静音 BlueLEDマウス (3ボタン) - M-BL27UBSKRD
こいつです。
操作感は、前回買ったのと大体同じです。
ケーブルがちょっと柔らかいので取り回ししやすいかな。
あと重視してなかったけど抗菌。

ゲームパッド

パソコンでゲームするのにこれまでプレイステーション2のコントローラをアダプタで繋いでいたんですが、さすがにそれはないだろうということで、こっちも買い換えました。
こっちはケーブルが邪魔だったので無線タイプ、ただしパソコン側にブルートゥース受信機能がないので有線も併用できるものを、そして電池交換も煩わしいので充電式を、という条件で選んだら、以下のにたどり着きました。

GameSir T4 Pro Multi-platform Game Controller – GameSir Official Store

ニンテンドースイッチにも使えるらしいです。
この場合、カテゴリはゲームハードなのか?PCハードなのか?

次>