Windows向けにElectronアプリをビルド時にrcedit-x64.exe関連のエラー

結論:WSLを使うな。windows power shell上でビルドすると上手くいった

ちなみにこの解決策はChatGPT4が提案してくれたもので、ググるよりも圧倒的に早く答えに辿り着けた。(最初はwindows power shell使うのが嫌で、ググって別の解決策がないか1,2時間粘った)


ビルド時だけでなく、開発中もwslからアプリを起動すると画面にグリッチが入ったり細かいエラーがでたりで困っていたが、windows power shellからnpm startするとネイティブのWindowsのネイティブwindowが開いてエラーも出ずにすんなりいろいろな問題が解決した。

こういうのを体験すると、Unityとかのクロスプラットフォーム出力をやってくれる裏には、泥臭いことをいろいろ面倒みてくれているんだろうな、という感想。

nvmなどでnodeをダウングレードすると、webpack実行でMODULE_NOT_FOUNDがでる問題

解決方法:node_modulesディレクトリを消してもう一度npm installからやり直すとうまくいった

ChatGPT4に聞くと

npm cache clean --force

を実行すると治るかもというヒントでnodeのバージョンをダウングレードしたことが原因かもとピンと来たが、上のcache cleanだけではうまくいかなかった。
そこでnode_modulesディレクトリを消すとうまく行った。

web3.js + web3j でmetamaskの署名検証

web3.js と web3jの組み合わせは地雷が多い。

ここにいろいろまとめられているが、要するにfrontとbackend間にprefixやエンコードなどのルールに差があることでうまくいかない。
https://lyhistory.com/docs/blockchain/ethereum/eth_web3.html

解決方法

この記事のコメントに解決方法がかかれていた。
https://www.toptal.com/ethereum/one-click-login-flows-a-metamask-tutorial


曰く

Sebestyén Csorba • 3 years ago
Thx for the article! Side note: I had a hard time with the web3j backend integration (the java library), until I found out, that

web3.personal.sign(web3.fromUtf8("aaaa"), web3.eth.coinbase, console.log);

means singing the original message prefixed with a constant and the length of the message, like this:

web3.eth.sign(web3.eth.coinbase, web3.sha3("\x19Ethereum Signed Message:\n4aaaa"), console.log)

frontは↑のやり方で署名する。
で、backendは下のやり方で検証する。
https://www.jianshu.com/p/f781cf3e8fc7

この組み合わせでうまくいった。

headless chrome で認証付きproxyを使う方法

headlessでないならこのやり方
how to set proxy with authentication in selenium chromedriver python? - Stack Overflow

headlessのchromeなら下のやり方しかなさげ。

os.environ['https_proxy'] = "http://user:pass@host:port"
os.environ['http_proxy'] = "http://user:pass@host:port"
os.environ['HTTPS_PROXY'] = "http://user:pass@host:port"
os.environ['HTTP_PROXY'] = "http://user:pass@host:port"

ただしdriverをインスタンス化する前に上記を定義しておく必要があり、その後は変更できないので、プログラム中で動的にプロキシーを変更することができない。


また、remote-debugging-portを使い場合はすでに存在するプロセスが使われることがあるが、そのプロセスがproxy適用前に生成されたものだと、proxyが適用されていない挙動をするので注意。
以下のコマンドで古いプロセスがあるかを調べ、あればkillする。

netstat -pna | grep 9222

Steamworksに日本語の法人名で登録する方法

例えば「株式会社あいう」だと、「Aiu, Inc.」などの英語名で登録することになるが、それだと税務審査のところで、登記上の法人名と一致していないという理由でリジェクトされます。
そこで再審査では、法人番号公表サイトの英語表記のページを提出したところ通過しました。