ま、そんなところで。

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

埋め込み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のバージョンを簡単に切り替…

(続)S/MIMEメールのsmime.p7mをOpenSSLで開く(multipartの分離)

の続き. smime.p7mに含まれている添付ファイルも気になって仕方がない smime.p7mに含まれている添付ファイルも分離してみよう その結果・・ 参考情報 smime.p7mに含まれている添付ファイルも気になって仕方がない Gmailに添付されたsmime.p7m, smime.p7sに添…

S/MIMEメールのsmime.p7mをOpenSSLで開く

S/MIMEの添付ファイルsmime.p7mが気になって仕方がない 実は凄かったopensslのコマンド 暗号化メールの覗き方 (追記) 参考サイト S/MIMEの添付ファイルsmime.p7mが気になって仕方がない S/MIMEってメール署名と暗号化ができて、仕事関係の内容をコソコソと関…

OpenSSLでx509証明書 (3) 〜 認証局(CA)からの証明書発行 〜

前に作成した中間認証局でhttpsサーバ用の秘密鍵/証明書を作成してみる. ルート認証局からの証明書発行の場合は、CAのパスを読み替えればOK. 3. 認証局から証明書を発行する 3-1. 秘密鍵と証明書署名要求(CSR)の作成 中間認証局で使ったコマンドとほぼ同じだ…

OpenSSLでx509証明書 (2) 〜 中間認証局(CA)を作る 〜

OpenSSLで中間CAを作ってみる. CAには以前作った自己署名ルートCAを利用する. 2. 中間認証局と中間CA証明書の作成 証明書を作成する手順で必要なファイルの準備を行う. ここでは中間認証局ディレクトリを「midCA」とする. 2-1. 認証局のディレクトリ構造とフ…

OpenSSLでx509証明書 (1) 〜 ルート認証局を作る 〜

OpenSSLを使って自己署名証明書の認証局(CA)を作ってみたのでメモ. 1. 自己署名証明書によるルート認証局を作る手順 1-1. 認証局のディレクトリ構造とファイルの配置 まず最初に証明書を作成する手順で必要なファイルの準備を行う ここでは認証局ディレク…

VS2012のスレッド関連C++ライブラリのバグ回避方法メモ

C++

VS2012のC++ライブラリに含まれるスレッド関係がボロボロ いまさらだけどVS2012で追加されているC++11関連のスレッド関係ライブラリがひどい。 もう使っているケースはあまりないと思いますが、注意喚起と対策をメモ。 1. std::threadのメモリリーク C++11規…