C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

tips

Rust の impl で pub る fn の第1引数の定義の方法と効果のメモ

主題 Rust の impl な fn の第1引数、つまり: struct S { } impl S { fn f(❤ここ❤) { } } ❤ここ❤ の部分の書き方と、書き方に応じてどのような効果、意図として扱われうるかを整理します。 fn f() fn f(self) fn f(mut self) fn f(&self) fn f(&mut self) す…

Adobe Acrobat Reader DC 20.009.20074 のホイールによるページの上下方向のスクロール量が体感0.1行単位くらいの遅さでつらい時に思い出したいメモ

default 状態でホイールのスクロール量が体感0.1行くらいでつらすぎる場合にスクロール量を数行単位程度へ改善する設定手順: Menu bar: Edit -> Preferences (CTRL+K) -> Page Display -> Default Layout and Zoom -> Page Layout Single Page Continuous へ…

逆引き風 roxmltree の基礎的な使い方のメモ; rust のたぶん今の所いちばん速くて安全な XML ぱーさー

https://crates.io/crates/roxmltree/ https://github.com/RazrFalcon/roxmltree/ https://docs.rs/roxmltree/0.13.0/roxmltree/ note: このメモは roxmltree-0.13.0 の時代に書きました。 はじめに知っておくとよいこと 与えられた XML ≈ Document を Node …

小さな XML のパース速度で比べる rust の XML crate たち; roxmltree vs. minidom ≈ quick-xml vs. sxd-document vs. sxd-xpath vs. amxml

結果 test benches::amxml_root ... bench: 40,783 ns/iter (+/- 6,365) test benches::amxml_sec ... bench: 28,487 ns/iter (+/- 1,295) test benches::minidom_root ... bench: 1,942 ns/iter (+/- 73) test benches::minidom_sec ... bench: 2,127 ns/it…

rust で XPath できる crate たちのメモ; (1) amxml, (2) sxd-xpath

XPath 使いたい需要に対応できる XML パーサーを crates.io で探すと有用そうな crate が2つ見つかりました。簡単な XPath で使い勝手を確認したメモです。 amxml sxd-xpath ( + sxd-document ) 1. amxml cargo add amxml #[cfg(test)] mod tests { /// 共通…

WSL で有効なコマンドの alias を巧く張る方法のメモ

↓こんな感じで alias を仕込むと WSL 環境でのみ alias を張れます: if [[ $(grep -i Microsoft /proc/version) ]]; then alias code="/mnt/c/Users/usagi/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code" alias display.blank="/mnt/c/Windows/Syste…

Rust で XML パーサー使いたいならどの crate を使うと嬉しいかもしれないか、のメモ

状況 crates.io には執筆時点では複数の XML お取り扱いらしい crate が存在しています: xml-rs 4,013kDL quick-xml 681 kDL xml5ever 183kDL xmlparser 232kDL sxd-document 63kDL strong-xml 0.7kDL trashy-xml 0.7kDL などなど。他にもいくつも登録されて…

VSCode via WSL2 で rust-analyzer が OUTPUT に Assertion failed: We don't expect to receive commands in CodeActions エラーを盛り盛り上げてきたら思い出すメモ

症状 WSL2 経由で動作する VSCode の rust-analyzer が一見動作しているように見えて OUTPUT に大量のエラーメッセージ: Assertion failed: We don't expect to receive commands in CodeActions を吐く。発症するとエラーが吐かれる度、作業中やログ監視な…

Rust で cdylib/wasm を吐く crate を分割したら依存先の機能を呼べなくなり、なんとなく extern crate を明示してみたら can't find されて5分くらい悩んだメモ

だいじな事: crate を分割したら、お呼ばれされる側の Cargo.toml で [lib] の crate-type が明示的に rlib を吐かない定義になっていないか確認しよう! 期待動作する例 # crate aaa に依存される側の crate bbb の Cargo.toml # ☆ ↓ src/lib.rs ありの cra…

React プロジェクトの src 内のコンポーネントから諸事情によりウェブサイト外部の SCRIPT を読む方法のメモ

諸事情の例 コンポーネントの render 時に CDN やどこかしらから <script src="https://example.com/hogehoge.js" crossorigin></script> とかしたい コンポーネントの render 時に .jsx/.tsx の翻訳時には有効ではない ECMAScript コードをちょろまかしたい 4つの方法 もっとあるというのはさておき。 1. react-script-tag https…

MDN の wasm-bindgen の入門用チュートリアル "Hello, WebAssembly" の補足的なメモ

"Hello, WebAssembly" https://developer.mozilla.org/ja/docs/WebAssembly/Rust_to_wasm; MDN / WebAssembly / Rust から WebAssembly にコンパイルする 補足的なメモ 1. npm のアカウントとパッケージの公開は必要? MDNの記事そのものではそこも含めたや…

.asar ファイルをファイルエクスプローラーで探索するように確認したい機会がしばしば発生するようになった場合に便利な 7-zip プラグインのメモ

electron-pack で扱われてる .asar のナカミをファイル単位でぱぱっと確認できるようにしたくなったとき用のメモです。npx asar l something.asar にパイプしてにゃんにゃんCLIで叩けば手っ取り早いタイプの用途とは別に、GUIのファイルエクスプローラーでに…

electron と node_modules と client-side library と electron-builder と symlink と .asar についての Windows での挙動についてのメモ

状況 Electron アプリを作っています。 yarn/npm で client-side 向けの library X (仮) を追加しています。 X は開発環境では yarn/npm により node_modules/X ディレクトリーに取り込まれています。 Electron アプリの client-side の static なファイル資…

Electron アプリに electron-store で設定ファイル機能を追加する場合の example & tips 的なメモ

GitHub - sindresorhus/electron-store: Simple data persistence for your Electron app or module - Save and load user preferences, app state, cache, etc を使うメモです。 yarn add electron-store electron-store = 旧 electron-conf public/conf.js…

Electron アプリに i18next を追加して i18n/l10n 対応するメモ

基本的な使用の流れ yarn add i18next i18next-node-fs-backend public/i18n.js など適当に作り l10n 文字列を取り出したいソースで const i18n = require('./i18n.js') して 必要なら await i18n.changeLanguage('ja-JP') のように l10n 先を実行時に設定す…

Blender Scripting: head と tail の座標と適当なフィルター条件でボーンの親子関係を自動構築する `connect-bones` の作り方と Add-on 化の方法

こんにちは、Python初心者∧Blender初心者です。フィーリングやマウスぽちぽちよりパキッとコードで処理する方が得意なので、 un-h002; Atropos の cluster 対応で私自身に追加実装された Blener Scripting を入門講座を兼ねて整理します Note: 読者の想定=Py…

3D-Avatar: VRM を作って → detune して → cluster へアップロード成功するメモ; 2020-04-10版

経緯などはさておき、件について少し複雑ですので整理するメモです。時間がないけど結論だけ気になる人は最後のまとめだけどうぞ。 目次 (1) VRoid Studio や セシル変身アプリ でVRM を作って (2) cluster へアップロード -> 「アップロードに失敗しました…

vs. COVID-19: Folding@home の FAHControl でご家庭内で参加中の複数のクライアントをまとめて監視・制御する方法のメモ

ご家庭内から複数のPC端末等をクライアントとして Folding@home に参加する場合に、1箇所の FAHControl (管理画面ツール) でそれ自体はもちろん、他のクライアントも全て管理したい場合もあります。 例えば↑な具合で管理できるようにしたい、と。こうしてお…

Cargo.toml の [dependencies] の特殊化のメモ

例 1. crates.io に公開されている crate を使っている状態: [dependencies] neon = "0.4.0" 例 2. ローカルファイルシステムで改変中の独自版へ依存先を特殊化したい場合: [dependencies] neon = [ path = "../path-to-my-customized-neon" ] 例 3. feature…

WSL の内側の世界から、外側の Windows の世界の PATH が "何もしていないのに" 通っている件、をどうにかしたい場合のメモ

WSLの内側の世界では、外側の世界の Windows で実行可能なバイナリー「も」実行できます。 実際この機能はしばしば便利な事もあります。例えば、 諸事情によりWSLの内側の世界で作業中に PE32+ (†1) なバイナリーファイルを nm (†2) したいけど ELF (†3) じ…

VSCode の extension にコマンドを追加する時に使わない方がよい文字のメモ

"category" に _ (アンダースコア文字) を入れてしまうと、実際に使う時にコマンドの絞り込みが期待動作しなくなって悲しい。 例: category を hoge_fuga として description を puyopuyo にすると…: CTRL+SHIFT+P して >hgp とか >gapu とか入れてもコマン…

ラヴ・クロイガメンの処方箋: Chrome の DARK READER の動作モードの切り替えと良い感じの闇ぐあいについて

概要 いぜん、 Qiita に 「白い画面恐怖症患者のためのChrome系ウェブブラウザーの処方箋」なる文字列を投稿していました。今回はその続編というかおまけ。 現在の DARK READER は動作モードを4つの切り替えから選択できるようになりました。 Filter Filter+…

Pro Micro と qmk_firmware と WSL-Ubuntu と avrdude のメモ

自作キーボードを Windows 10 な PC で楽しみたいけど WSL-Ubuntu でにゃんにゃんしたいメモ。 WSL-Ubuntu での AVR 開発環境の準備 sudo apt install -y gcc-avr avr-libc binutils-avr avrdude WSL-Ubuntu での qmk_firmware の make によるビルド git clo…

tetraface Metasequoia ユーザーが Autodesk Fusion 360 を使うときの QUICK SETUP メモ

自作キーボード設計に Metasequoia では少々つらいので Autodesk Fusion 360 を導入しました。趣味の工作で売り上げもへったくれも無いので無償使用できます ↓ Metasequoia のユーザーは最初の QUICK SETUP の CAD Experience は Thinkercad を選択するとそ…

XAML: DataContext へ Properties/MySettings.settings を XAML だけで完結して束縛する方法

前提: Visual Studio 2017 でプロジェクトを作成してWPFアプリをデザイナーを使って作る際のはなし。 1. はじめに。 C# コードで束縛する場合 // 例えば MainWindow の DataContext へ // MainWindow の ctor で Properties/MySettings.settings に // 用意…

MHW, STEAM: モンスターハンターワールドSTEAM版のユーザー視点からの観測とTips

モンスターハンターワールドのSTEAM版、7月のうちにお布施のつもりで購入してありました お布施のつもり、というのは PS4 版で既にトロフィーをコンプリートしてエンドコンテンツも全て楽しく遊ばせて頂いてしまっている状態で、事前からどうもセーブデータ…

UE4/C++: http(s) リクエストに FHttpModule 系を使う場合の OnProcessRequestComplete/FHttpRequestCompleteDelegate の成否フラグの注意どころ

UE4 の FHttpModule の OnProcessRequestComplete / FHttpRequestCompleteDelegate には若干、罠どころがある // UE4/C++ でフレームワークに用意された方法で HTTP リクエストを発行し、 // HTTP レスポンスを得て何かしたい場合のコード例 auto http = &FH…

UE4: std::unordered_map だと少し面倒だけど TMap なら簡単にできる Key の書き換え

// てきとーな TMap TMap< FString, int32 > m; m.Add( "hoge", 123 ); m.Add( "fuga", 234 ); m.Add( "piyo", 345 ); // マップの対を逐次参照で列挙しつつ Key を書き換える for ( auto& p : m ) p.Key = p.Key .Replace( TEXT( "g" ), TEXT( "G" ) ) .Rep…

UE4: バイナリー配布や実行時リンク向けのライブラリーを UE4 プロジェクトへ組み入れる方法を mecab で解説

概要 UE4 のプロジェクトの C++ コードへ UE4 とは特に関係の無い一般のライブラリーをリンクするのは少々面倒な事がある。ヘッダーオンリーなライブラリー、例えば Eigen や stb あるいは Boost の一部をリンクするような場合は困らない。しかし、バイナリ…

UE4: 点や線を簡易的に3D空間内へ描画する方法、あるいは UKismetSystemLibrary::DrawDebug 系の紹介

概要 見栄えはともかく、3D空間内の任意の座標へ、点や線、あるいは立方体や球などを、さっくりと簡単に表示したい事がしばしばあります。特にデバッグ用途でそのような表示機能を上手く仕込んで置くと開発効率が向上します。 そのような場合に、わざわざ Bi…