ま、そんなところで。

ニッチな技術系メモとか、車輪を再発明してみたりとか.

肥大化してしまったGitリポジトリのパフォーマンス低下を軽減するTIPS

Git

開発プロジェクトが長いとリポジトリが肥大化しがちです. 大きくなったリポジトリではcloneやcheckoutのパフォーマンスが重く、ストレスを感じることが多いと思います. そこで、大きくなってしまったリポジトリとうまく付き合っていくためのTipsをまとめてみ…

Debug構成以外でもライブビジュアルツリーからXamlへのコードジャンプを有効にする

Live Visual Tree のコードジャンプ Debug構成以外でXamlへのコードジャンプを有効にする (1) デスクトップアプリのプロジェクト (2) UWPアプリのプロジェクトの場合 参考リンク Live Visual Tree のコードジャンプ VisualStudioのデバッグツールには実行中…

[メモ] リファレンスブックマーク

リファレンスブックマーク集 PortableなLinuxバイナリの作り方 RunLevelの変更 仮想マシン向け I/O schedulerの変更 リファレンスブックマーク集 PortableなLinuxバイナリの作り方 $ORIGINについての解説あり nehckl0.medium.com RunLevelの変更 永続的なrun…

GRUB2で一時的にRunLevelを変更して起動する

一時的にRunlevelを変更して起動したい. Guiに何らかの問題があり正しくdesktopモード(runlevel5)Bootしなくなったときなどに 一時的にrunlevelを落として起動するための処置. www.if-not-true-then-false.com linuxのある行の最後にrunlevelを数値指定すれ…

Ubuntu 22.04.1 ある日突然 Dummy Output になった問題

ある日突然音声出力が Dummy Output に apt upgradeで誤ったカーネルがインストールされてしまっていた 参考サイト ある日突然音声出力が Dummy Output に apt full-upgradeしたら 突然Soundが Dummy Output となって音声がでなくなる現象に遭遇しました. Pl…

VirtualBox の Guest OS 上でビルドすると internal compiler error が多発する現象 (Ubuntu 22.04.1)

Guest OS 上でビルド中 internal compiler error が発生してビルドできない・・・ Ubuntu公式リポジトリのVirtualBoxとホスト側カーネルの不整合が原因 公式リポジトリのVirtualBoxをOracle提供のものに変更すれば解決. 参考サイト Guest OS 上でビルド中 in…

埋め込みpythonでのみモジュールのModuleLoadErrorが起こる問題

埋め込みpythonでのみモジュールがModuleLoadErrorを起こす!? pythonモジュール側のシンボルが解決できないのが原因 組み込み先のシンボルを可視化する --export-dynamicを指定してリンクする python組み込み先が共有ライブラリの場合の注意点 リファレン…

debugpyを使ったリモートデバッグ

直接起動できないpythonコードのデバッグに便利 Step1. 対象コードにdebugpyモジュールのコードを埋め込む Step.2 launch設定 Step.3 接続とアタッチ Windowsの場合は特殊な準備が必要 関数にしておくと便利 リファレンス 直接起動できないpythonコードのデ…

C/C++アプリケーションへPythonを埋め込む

アプリケーションの一部をPythonで作る (準備) 通常のパッケージをインストール テスト用最小コード (注意点1) embeddableにはDebug版が付属しない (注意点2) Py_SetProgramNameにはインタプリタのパスを指定する 結構使えそう リファレンス アプリケーショ…

家庭内LANでIPv6のグローバルIP(GUA)とLAN内専用の固定IP(ULA)の両方を使う

プライベートLAN内専用の固定IPv6アドレスがほしい IPv6対応の家庭用ルータが普及してきた IPv6のリンクローカルアドレスはどうにも使いづらい 自動構成のGUAと固定のULAを同時に持たせれば・・? あとから追加でULAを割り当てる方法なら意外に簡単 (準備) U…

pyenvでインストールしたpython環境でデバッグができなくて困った件

あれ?デバッガ起動できない・・? ctypeモジュールが見当たらない!? ビルド環境にlibffiが無いとctypesモジュールはビルドされない 参考情報 Red Hat Enterprise Linux の場合 macOSの場合 あれ?デバッガ起動できない・・? pyenv、 複数のpythonバージョ…

UbuntuのVSCodeでlldbを使ってRustコードをデバッグしたらブレークポイントが効かなくて困った

Rustコードのブレークポイントで止まらないんだけど・・・ 環境 ソースコードをsymlinkを含むパスにおいていることが原因 Workaroundみつけた! Rustコードのブレークポイントで止まらないんだけど・・・ UbuntuでVSCodeをつかったRustの開発環境を作ってた…

UbuntuでPPTPクライアントをセットアップする

とあるサーバーに固定IPで接続する必要がありまして、VPN接続を設定したのでメモ. 今回はInterlinkのMyIPというサービスを使いました. なかなか固定IPのサービスは高価なので、安価に固定IPを使用したいときは良いかもですね. Interlink マイIP 接続はWindow…

Windows10へUpgradeしたら遅くなった問題の対処メモ

Windows10へUpgradeしたら遅くなった問題の対処メモ ずいぶん前にWindows7→Windows10にUpgradeしたところ、かなりハイスペックなマシンだったのですが、あまりに遅くなりすぎて使わなくなっていました. ところが、ドライバをUpdateするとストレス無くPCが使…

debとrpmパッケージの命名規則

パッケージ命名規則 debパッケージの命名規則 debパッケージのバージョン比較テスト rpmパッケージの命名規則 rpmパッケージのバージョン比較テスト 参考 パッケージ命名規則 Linuxのパッケージを作ることになったので調査したメモです. debパッケージの命名…

Ubuntu18.04にpyenvでpython3.7.3をインストール時にBUILD FAILED

対処メモです. pyenv install 3.7.3 でBUILD ERROR 行った対処 参考サイト pyenv install 3.7.3 でBUILD ERROR 環境は以下の通り. Ubuntu 18.04.2 LTS (Bionic Beaver) pyenv 1.2.11 pyenvはpythonのソースパッケージをDownloadしてきて、ビルドしてインスト…

(続)Unmanagedの C++ から Managedのクラスを使う

の続き. ManagedクラスとUnmanagedクラスの生存期間差の問題 msclr::auto_gcroot<T>テンプレートクラス スコープ利用に特化した msclr::auto_handle<T> テンプレート 参考情報 ManagedクラスとUnmanagedクラスの生存期間差の問題 Unmanaged C++からManagedクラスを</t></t>…

Unmanagedの C++ から Managedのクラスを使う

Pure C++コードから、.NET Frameworkベースのライブラリを使いたい・・・ UnmanagedクラスにManagedクラスのハンドル型を持たせられる? msclr::gcroot<T> を使え! じゃあ、value class の場合はどうするの・・? さあ、gcrootを使ってWrapperを作ろう. Wrappe</t>…

msbuildでビルドするときに自動でNugetパッケージを復元させる

Msbuildは自動でNugetパッケージを復元してくれない プロジェクトファイルに細工してNuget実行されるようにしよう 1. ソリューション一式のディレクトリ配置 2. カスタムターゲットを定義したプロパティシートを作成. 3. propsをプロジェクトファイルへImpor…

MacOS MojaveでCmakeがOpenMPを見つけてくれない件

CmakeをupdateしたらOpenMPが見つからないぞ!? テストでfind_packageしてみるけれども見つからない・・・ それ変数やない、キャッシュ変数や・・ 参考記事 CmakeをupdateしたらOpenMPが見つからないぞ!? MacでOpenMPを使ったクロスプラットフォームなC++コー…

C++でMessagePackを使ってみる(6)〜 Polymorphism(多態性)とシリアライズ 〜

多態性キープしてシリアライズしたいけど・・ ポリモーフィックシリアライズ対応 Step.1 ポリモーフィックシリアライズ対応を示すクラスを定義する Step.2 ポリモーフィック型シリアライズ対応の基底クラスを準備する Step.3 ポリモーフィック型シリアライズ…

C++でMessagePackを使ってみる(5)〜 msgpack::objectの読み書き 〜

msgpack::object を直接読み書きする 各種コンテナの型とタイプID object_str の読み書き object_bin の読み書き object_array の読み書き object_map の読み書き 参考記事 msgpack::object を直接読み書きする カスタムアダプタが対象とする型の書き込み実…

C++でMessagePackを使ってみる(4)〜 カスタムアダプタ 〜

シリアライズ/デシリアライズをクラスの外から定義する 定義できるカスタムアダプタの種類は5つ pack アダプタ(シリアライズ) object アダプタ(シリアライズ) object_with_zone アダプタ(シリアライズ) convert アダプタ(デシリアライズ) as アダプ…

C++でMessagePackを使ってみる(3)〜 シリアライズ/デシリアライズの流れ 〜

データ形態を変換する関数 3つのオブジェクトの形態 シリアライズ操作 C/C++オブジェクト → msgpack format bytes C/C++オブジェクト → msgpack::object 変換 msgpack::object → msgpack format bytes 変換 デシリアライズ操作 msgpack format bytes → msgpa…

C++でMessagePackを使ってみる(2)〜 派生クラスの場合 〜

継承クラスを含めてシリアライズ/デシリアライズする 継承クラスの場合は基底クラスのメンバ変数もシリアライズ/デシリアライズしなければならないため、すこし手を加える必要があります. クラスの定義 基本的な条件に加えて、 以下の条件を満たすように定義…

C++でMessagePackを使ってみる(1)〜 基本の使い方 〜

仕事でMessagePack - C/C++を使うことがあったのでメモ. MessagePackって何? 基本的な使い方 ヘッダのインクルード 使ってみよう 対象クラスの定義 シリアライズ デシリアライズ 参考記事 MessagePackって何? 様々なプラットフォームで利用できるオープン…

Google C++ Testをソースコードのままビルドツリーへ組み込む

C++

Google C++ Test ライブラリ作るのめんどくさーい どうやって・・? 1.以下の2つインクルードパスを設定する. 2. プロジェクト内でgtest-all.ccをインクルード Google C++ Test ライブラリ作るのめんどくさーい C++のUnitTestっていえば、GoogleC++Testの人…

Ubuntu 18.04 のターミナルフォントにリスト表示されないフォントを指定する

ターミナルで好きなフォントを使いたいんだが・・ あれ?フォントがリストにでてこない!? gsettingsというツールを使え! 参考記事 ターミナルで好きなフォントを使いたいんだが・・ 今まで使っていたメインPCのマザーボードがお亡くなりになりました. 急…

pyenv環境へOpenCVをインストールする

pyenvで作ったpython環境へ最新のOpenCVをビルドしてインストールする手順のメモです. 0. 前提環境 1. ソースコードのダウンロード 2. numpyをインストールする 3. OpenCVモジュールのビルドとインストール 4. python環境からOpenCVが使えるようにする 5. ロ…

pyenvでpython環境のバージョンを自由に切り替える

複数のpython環境を作るために pyenv をUbuntuとmacOSへ導入したのでメモ. 1. pyenvって何? 2. Install 2-1. Ubuntuの場合 2-2. MacOSX/macOSの場合 3. python環境の追加/削除 4. python環境の切り替え 1. pyenvって何? pythonのバージョンを簡単に切り替…