投稿

Visual Studio 2022のぐち

Visual Studio 2022のぐちです。 これまでVisual Studio 2017を使っていたのですが、.NET6.0を使うためにVisual Studio 2022をインストールしてから約2ヶ月半。 Visual Studio 2017のときにはほとんど不具合にあったことなどないのですが、Visual Stuio 2022ではイライラすることが多い。 ・一番イラっとすることは選んでいるクラスソースが表示されないこと。 メインウインドウで複数のクラスをタブで切り替えて使うじゃないですか。でもタブ選択しても選んだソースが表示されず、タブだけが切り替わったように見えること多い。こういう時は表示されないタブを一度閉じて再度開くなどしないといけない。地味に面倒。 ・次にイラっとすることはデザイナが表示されないこと デザイナを開いたり、デザイナのタブを選んでもバックグラウンドで読み込んでいますとでていつまでもフォームデザイン画面が出ないときがある。フォームのプロパティ変更したいのにすぐに変更できないのはイラっとします。これも一度タブを閉じて再度開くと表示されることが多いのですが、デザイナの場合ちょっと時間かかるので余計にいらつくポイント。 ・保存しようとすると致命的なエラーが発生する 保存しようとするとときどき致命的なエラーが表示されて、保存できない。これはかなりイライラっとする。たまに発生する。一度でるともう絶対保存できない。唯一救いはエディタ画面はそのまま使えるので、いったん未保存のソースを別のテキストエディタにコピーしておけること。それでもリソースやプロジェクトプロパティの修正まではできない。 ・デザイナでデザインした内容がソースに反映されない。 これも時々起きるが、気づきにくくホントに頭来る。結構なボタンやテキストボックスを配置した後、コントロールを操作するコードを記述しようとして初めて気づく。デザイナに配置したはずのコントロールが未定義になる。そこで~.designer.csをコード表示してみるとデザインしたコントロールが一切反映されていない。VisualStudio2022を再立ち上げしないといけないし、デザインした内容は一切復活できない。時間をかけてデザインをすればするほど、徒労感虚無感とともに怒りがわく。 上の2つは頻発するし、下2つは致命的。 V...

C#で画面キャプチャしようとしたら遅かった原因が分かった件

イメージ
とあるゲーム…と、いうかオンラインのパチスロを打つプログラムを試しているところ。 パチスロなんだから高設定じゃないと勝てないのは普通だが、4号機時代の技術介入ができる台であれば、完ぺきに打つことができれば設定1でも100%を超える。 最近でもディスクアップなんかはどのホールでも設定1だけど、数千万回転の実践を集計すると100%をぎりぎり超えているらしい。 さて、パチスロはドラム1回転でたいてい21コマの図柄がループしているが、1分間で79.5~79.9回転程度の速度らしい。オンラインのパチスロゲームでも基本的には変わらない。 60(秒)÷79.5(回転)÷21(コマ) = 0.0359(秒/コマ)。1つの図柄をビタ押しするには35ミリ秒の勝負となる。 人間が目押しする場合は回転の間隔も体感で覚えれば、ほぼ完全目押しもできる。 自分がやろうとしているのは瞬間目押しである。余計なドラムの回転を待たずに1周目で目的のコマをビタ押ししてやろうということだ。 さてクランキー系でちょっくらやってみるかとプログラムつくってみたものの、これがどうにもうまく行かない。いや、うまく行くのだが、うまく行かない。 メインのPCは4年前に購入したPCで当時そこそこハイエンドのPCなので、性能的にはよい。このPCでコーディングして、試しに目押しさせてみるととほぼ想定のとおりに目押しできる。小役はおいといて、BIG時のリプ外しなんて完璧だ。やっとできたと思ったのに。 メインのPCは普段使いするので、パチスロでメダル稼ぎたいときは、サブのミニPCで勝手にメダル獲得しておいてほしいのだ。で、サブのミニPCにはディスプレイがつながっておらず、VNCを使ってリモートログインしている。そして、25,000円ぐらいでOSまでついているミニだが、当然性能は低いCeleron J4125。グラフィクスはIntel UHD Graphics 600だ。 性能的にイマイチでも、なんとかなるのではないかと思っていたが、やっぱりどうにもならない。やってみると、目押しが全くあっていない。遅れまくる。 なんでかとログを出力しながら確認したところ… 57:48.190 比較終了 57:48.190 画面取得開始 57:48.217 画面取得終了 57:48.217 比較終了 57:48.217 画面取得開始 57:48.25...

PlaywrightとGoogle reCAPTCHA

Playwrightは当然ロボット系のテストなので、Google reCAPTCHAに引っかかります。 なんですが、よくわかりませんが、reCAPTCHA v3をテストできるページでちょっと試してみたら意外なことが…。 まず予備知識としてreCAPTCHAにはv2とv3が今は出回っています。 v2は写真の中から「バス」を選択してくださいみたいな写真から選ぶやつ。 v3はブラウザ利用者は何もしないで判定される進化した版です。 当然v3であればユーザーは余計な選択などをしなくてもいいため、ユーザー利便性も上がりますが、導入側はボットと判断したときの処理を自前で作らなければならないという仕様です。 で、このボット判定ですが、Googleでやってくれるのはボット度合いを数値化した指数みたいなものを返してきます。 一応1.0~0.0で値が1.0に近ければより人間らしいということになります。 問題はv2と違って、v3は値をいくつの時にボットと判定するかはサイトの運営者が決めてくださいってこと。 閾値0.5ぐらいで振り分けるのが一般的なようですが、いろいろ読んでいるとボットでもないのに0.3と判断されたといった記事も見かけます。 さて、ではPlaywrightではどうかというと…。 v3のロボット閾値判定が0.7になるんですよ。上記にも書いたように0.9ぐらいなら間違いなく人間判定で、場合によっては人間の操作で0.5や0.3と判定値を返してくることすらあるらしいのに、Playwrightでアクセスしてみたら0.7って結果に…。 まじか。 ちなみにreCAPTCHA v2は音声での認証にしてMicrosoftのAzureの音声API通せば(Googleクラウドをあえて使わず)まず失敗しません。試してみたところ、Googleの無料の音声解析APIはまず聞き取ってくれません。Azureはほぼ確実に聞き取れます。 v3のほうはまあ、テストページが1つだけなので、いろんなページに移動する(各ページにreCAPTCHA APIが設置されている)場合はちゃんと0.3とか0.1になるのかもしれませんが、トップページとかお問い合わせのページにポツンと入れているだけだと、Playwrightでは通過できてしまうのかもしれません。 6/28 追記 いくつかのテストサイトで試してみましたが、0.3と判断...

マインスイーパーを自動で解いてみる

イメージ
マインスイーパーを自動で解いてみよう マインスイーパーのゲームで試す マインスイーパーをやっている様子 マインスイーパーを自動で解いてみよう 今更ながらにマインスイーパーを自動で解くプログラムを作った。 まずはマインスイーパーの問題を作るプログラム。 これは簡単。これに加えて、指定した場所から爆弾orパネルの開放する処理。 これも再帰するだけなので、簡単。 あっというま。ま、昔7行プログラムでできたぐらいだしね。 問題を作ったら、今度は問題を解くほうの処理。 自分で解いていくわけではないので、テキストで表示して解いていく過程を 見せるプログラムにした。 未開放のパネルに対し、爆弾の確率を設定する。設定した確率の内、最も低いパネルを開く。 ただそれだけ。 盤面を全体的に走査し、確実に爆弾の場所もしくは確実に爆弾ではない場所を調べる。 どちらかが見つかったら、その周囲の8マスの確率を計算し直す。 確率の計算が発生した場合は、再度盤面全体を走査する。 そして最後に爆弾の確率が最も低い基本的には確率0のパネルを開く。 それだけでもまあまあな正答率にはなる。でも、まあまあはまあまあ。 確率0のパネルがない時はそこそこの確率で爆弾を引いてしまう。 そこでさらに一工夫して、確率0が見つからない場合に 各地点の発生しうる爆弾の組み合わせを全通り試し、その結果矛盾が発生しない 全組み合わせのチェックの結果、爆弾が絶対発生する/絶対発生しえないパネルを 確定するようにする。爆弾の仮置きで矛盾がないかということね。 これらにより、まあまあの正答率はなかなかの正答率になる。 マインスイーパーのゲームで試す ある程度ロジックが問題ないレベルになったとおもわれるので、ウェブサイトのマインスイーパーで試してみる。 試したのは楽天ポイントモールのゲームセンター内のマインスイーパー。20x20のLevel5の盤面で試す。(ちなみにラクマ版ゲームセンター( https://fril.jp/games# )でも同じだしLINE版のゲームセンター( https://kantan.game/lightgame )もおなじ。) 盤面の情報などは外側から取得できる気がしなかったので、単純に画像を直接解析して、盤面情報を取得しようとした。 ところが、微妙にマス目ごと...

bitfinexのアカウントが制限された

イメージ
自分が仮想通貨の取引をしているのはbitfinexだ。 流動性を考えれば今ならbinanceで取引するのが一番いいのだろう。 bitfinexがハッキングされたのが2016年。その翌年2017年に口座を作ったが、そのころは世界でも最大クラスの取引所だった。 そんな愛用してきたbitfinexだが、今朝突然アカウント制限。 「令和4年3月3日以降に新規登録された日本居住者のアカウントは制限されます。」的なメッセージ。 そしてメール。 これである。 朝7:30に操作したら制限を受けた。 預入資産の移動をJune 01って3日しかない。 移動先のアドレスとかの設定ってセキュリティ上の確認のため1週間ホールドされるんじゃなかったっけ。 (以前、そんなことがあったような気がしたが、制限はなくなったのか見つからなかったけど) とにかく、ある意味一大事だ。 そもそも、2017年に口座開設しているんだからこんな制限おかしくないか? ということで、問い合わせ。 bitfinexのカスタマーサポート  に飛ぶ。 どれにも該当しない気がしたので、一番下のOther Issuesを選択。 Subject欄に「verify the status of my account」 Describe your issue欄には 枠内をクリックするとメッセージがクリップボードにコピーされます I received the following warning: Your Account has been flagged as belonging to a Japanese resident who signed up for a Bitfinex Account after 3rd of March, 2022. I believe my account does not fall under this restriction as it has been in use since I registered in 2017. You may check my transaction history. I have been ordered to transfer funds by June 1, do I have to do this? Due to the short deadli...

HUAWEI P10のRoot化 With MAGISK最新化できなかった

イメージ
自分のスマホはHUAWEI P10だ。マシンとしては発売後5年も経っている。 当時はまだHUAWEIが米国の制裁を受ける前で、GAppsも普通にインストールされていたし、OEMロックもHUAWEIのホームページでアンロックコードを取得することもできた。 だから、買ってすぐにアンロックコードを使ってブートアンロックしたうえで、カスタムロム+Root化していた。しかし、当時どうやって入れたかよく覚えていない。 OpenKirinのOMNI ROMを入れていたのだが、Androidのエミュレータの比較のついでにMagisk入れられないかと試しているうちに、そもそも実機のP10のMagisk最新化しようかと思い、挑戦。 しかし、現時点の最新のMagisk 24.3を入れようとしてあっさり失敗。RECOVERY_RAMDISK.imgにパッチ当てしたものの、OS起動後認識されず。 いろいろ調べてみるとどうもMagisk20.0まではHUAWEI P10に入れられたらしいことがわかる。 Magisk20.0まではインストール後の初回起動時にリカバリーROMで起動した場合に自動でリカバリー領域から起動するようにスクリプトがインストールされていたが、以降のMagiskではそのスクリプトが入っていないことが原因らしい。 そのため、RECOVERY_RAMDISK.imgに最新のMagiskでパッチを当てたものを用意し、TWRPでMagisk20.0をzipからインストールしたうえで、さらにパッチを当てたRECOVERY_RAMDISK.imgを同じくTWRPで焼き、そのままTWRPからリカバリーリブートすることで、Magisk20.0のスクリプトを利用したうえで新Magiskを入れられ、P10でも使えるという噂。 ところが、ここではまる。TWRPをfastboot flase RECOVERY_RAMDISK twrp-3.2.1.imgなどとして焼いてみた。しかしリカバリーブートしてみたら、TWRPのタイトル画面でハングアップ。 電源切ってもリカバリーブートモードになっていて、systemブートもbootloaderも起動できない。30分ほど格闘したが、どうにもならない。 文鎮化した…。 そこであきらめ。もう5年だし新しい端末買うかと思い、AliExpressでどうせならXiaom...

仮想通貨LUNAがひどいことになっているね

イメージ
私はいま、仮想通貨は持っていない。昨年11月までポルカドットを持っていたが、47.5ドルで清算して以来ノーポジ。というかドル建てで持っているので、円安による利益になっているぐらい。 そんな自分が最近注目していたのが、LUNAだった。BTCを含め軒並み下がっているのに、LUNAだけ上がっていると思っていた。 しかし、この3日で大変なことになっている。 約80ドルだったLUNAはいま(2022/5/11 21:00現在)で1.4ドルと-98%以上の下落だ。普通-50%程度のレベルまで下落すればリバウンドするもので、5chのLUNAスレッドでもリバウンド狙いをして買いを入れている人がいる。 ただ、これは無理だとおもう。 自分の理解はUSTがドルペッグを維持するために、1.0ドルを切った場合はLUNAを売ることでUSTを買い、ドルペッグを維持する仕組みだという認識。現時点でUSTは約0.5ドルと、いうことはUSTを1.0ドルにするためにLUNAはもっともっと売られないといけない。LUNAが下落しきって1.5ドルだろうが何だろうかTERRAのシステムのなかで最優先はUSTである。そしてUSTを1.0ドルに近づけるために、LUNAの価値がどんなに下がっても売り続けてUSTを買うことになる。 これがLUNAが大暴落した場合にUSTが維持できない危険性があるといわれていた問題なのだろう。そして、USTを維持できるほどLUNAが高く売れないので、USTは下がりさらにLUNAが売られる。さらに流通量を少しでも維持しようとしてLUNAが謎の大量発行され、インフレを起こし、さらにさらにLUNAの価値を下げる。というデススパイラルと言っていたものなのだろう。 UST=1.0ドルになるまではリバウンドなんて狙うべきではなく、限りなくLUNAショートすべき。 でも、USTが1.0に戻るのはここまでLUNAが下がってしまった以上もう至難の業。USTもLUNAも完全なクズコインに成り下がった。 つられてなのか、アルトコインもBTCもどんどん下がっている。もともと自分の予測では2022年8月にビットコインが30,000ドルを割り込み、買い時は2022年11月だと想定して時期が来るのを待っているのだが、9月ぐらいに買い込んでもいいのかもしれない。 ※2022/5/12追記。 1日たち、LUNAはさらに1...