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

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

how to

rust の wasm ターゲットのプロジェクトで surf-1.x を surf-2.x へ差し替える場合に必要な対応のメモ

surf surf-1.x 系では↓のように Cargo.toml にバージョン番号または所在だけ書けば wasm 向けにもそのまま使えました。べんり。 # surf-1.x [dependencies] surf = "1.0.3" surf-2.x 系から↓のように Cargo.toml に default-features と features を明示的に…

Electron アプリに electron-localshortcut で非グローバルでMenuのアクセラレーターも使わないキーバインドを追加するメモ

準備: yarn add electron-localshortcut; https://www.npmjs.com/package/electron-localshortcut 実装例(public/electron.js): const electron = require("electron"); const app = electron.app; const browser_window = electron.BrowserWindow; const lo…

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 先を実行時に設定す…

Inkscape-1.0: 新規作成されるSVGドキュメントの背景色のデフォルト値を変える方法; ダークモードのテーミング&defaultドキュメント背景の設定方法のメモ

Inkscape-1.0 では Theme 機能が実装されたので、 Edit -> Preferences -> Interface -> Theme を設定するとダークモードに優しいテーミングができるようになりました。嬉しいです。しかし、闇の世界に住む私たちの目にInkscapeの画面で最も眩しくて困る部分…

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

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

vscode extension: 開かれている vscode.TextEditor を列挙する方法のメモ

import * as vscode from 'vscode' // 列挙した TextEditor を格納する array const es: vscode.TextEditor[] = [] // 次の TextEditor を取得するトリック let nextTextEditor = async () => { await vscode.commands.executeCommand( 'workbench.action.ne…

nodejs: child_process.spawn とシェル実行の方法の模範解答についてのメモ(あるいはバッドノウハウを広めないための自分用の戒めとしてのメモというかあけおめ生存報告のメモ)

最初に答え let spawn = require('child_process').spawn; // 模範解答(たぶん) let p = spawn( 'echo', [ 'hoge' ], { 'shell': true } ); p.stdout.on( 'data', payload => console.log( `[spawn/stdout]: ${payload.toString().trim()}` ) ) p.stderr.o…

Windows 10 で 64GB 以上の USB マスストレージデバイスを FAT または FAT32 でフォーマットしたい時のメモ

状況 メインボードの BIOS アップデートに USB マスストレージデバイスを使おうと思ったら FAT または FAT32 じゃないと認識してくれないとかそういう状況がたまによくある。 Windows 10 で 64 GB 以上の USB マスストレージデバイスは exFAT または NFTS で…

CITIES: SKYLINES の MOD 開発環境の整え方、デバッグ出力の出し方

(note: Windows 10, Visual Studio 2017, STEAM 環境向け) ① MOD 開発環境の整え方 理屈はめんどくさいので解説しないよー CITIES: SKYLINES を STEAM で導入 Visual Studio Installer で Workloads タブの Game development with Unity を導入 Visual Stu…

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

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

XAML: 同じ ItemsSource を持つ複数のコントロールの効率的な定義の仕方、あるいは ItemsSource を StaticResource で別定義する方法

例えば同じ要素軍を選択肢として提示する複数のコンボボックスを配置したいとしよう。以下のコード例は何れも <Window> の内部に定義している。 <ComboBox Name="CB1"> <ComboBoxItem Content="選択肢1"/> <ComboBoxItem Content="選択肢2"/> <ComboBoxItem Content="選択肢3"/> </ComboBox> <ComboBox Name="CB2"> <ComboBoxItem Content="選択肢1"/> </comboboxitem></combobox></window>

UE4/C++: USaveData 系のセーブデータの Slot 群をすべて取得する方法

USaveData 派生型のセーブデータを作り UGameplayStatics::SaveGameToSlot, UGameplayStatics::LoadGameFromSlot を用いてセーブとロードを実装する手法を用いるとそれ自体の実装労力は節約できて嬉しい。しかし、これらの API は UE4 プロジェクトの開発時…

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

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

UE4/C++ Interface の作り方

おさらい: ふつうの C++ の “インターフェース"(=抽象型) C++er 的には virtual なメンバー関数に =0; 定義を入れた Abstruct な class ( or struct ) を作れば広義のプログラミング言語の意味での Interface になるって思うじゃん・w・ // ふつうの C++…

openSUSE Build Service に darkhttpd パッケージを作ってみた

openSUSEでのパッケージの探し方も心得られてきた。 software.opensuse.org: Search 基本的には↑で探す。そしてどうやら↑はarchlinuxで言うところのAUR、Ubuntuで言うところのPPAとかそんな雰囲気が漂っている。恐らく必要なら私もパッケージをメンテナンス…

openSUSE-12.2 に OGLplus を導入

OpenGL3以上のCなAPIをC++らしく扱う為のライブラリーOGLplusをopenSUSE-12.2に導入する。 OGLplus - a C++ wrapper for OpenGL® version 3 and higher. zypperに対応したパッケージは無いので普通にソースを拾ってビルドしてインストールする。 OGLplus ソ…

QtCreator-2.5.0 + QtOpenGL + GLUT ==> teapot

(いちおう)エディターたるVimから、IDEたるQtCreatorでの開発を勉強中。先ずはお約束の第一歩、teapotの備忘録。 プロジェクトをQtの雛形から作成 File --> New file or Project (CTRL+N) Projects: Applications --> Qt Gui Application 以降、仮にプロジ…

Eclipseを使わない人のAndroid SDK & NDK の開発メモ

今期はAndroid開発の講座も担当させて頂いていて、学生さんに「Eclipseを使わないでAndroid開発する方法」を教える事になったのでメモ。 開発環境の準備 Android SDK の準備 公式/インストール解説 http://developer.android.com/sdk/installing.html 要約: …

Freenect.hs - haskell の OpenKinect/libfreenect wrapper の使い方メモ

おソース https://github.com/chrisdone/freenect/blob/master/src/Freenect.hs メモ contexts なにはともあれ context を初期化せにゃー使えんのよ。ってわけで基本: do context <- newContext initialize context -- hogehoge -- fugafuga shutdown contex…

端末で扱えないファイル名をどうにかする方法

とあるCMSで運用されていたウェブサイトが更新を終了したのでコレを静的HTMLに変換しようとしたところ次のようなファイル名(やディレクトリ名)のファイル郡が得られてしまった・w・;先ずはウェブサイトを丸ごとごっそりとwgetにミラーリングオプション付…