われがわログ

最適化アルゴリズムとかプログラミングについて書きたい

C++

Visual StudioのDeveloper ShellをPowerShellのコマンドラインからactivateする

C++

WindowsでCMake & MSVCを使用する際はいつもスタートメニューから「Developer PowerShell for VS 2019」を起動していたが、いい加減面倒になって、コマンドラインから起動する方法を調べたのでメモしておく。 結論としては、profile.ps1(場所は$profile で…

MLflow TrackingのREST APIを叩くC++ライブラリを作った

C++

MLflow Trackingは数値実験のコード・設定等を管理できるソフトウェアであって、かなり使い勝手がよい。試行錯誤しながら計算をまわしていると「この結果のときパラメータどう設定したっけ、、」みたいなことがよくあるが、実験毎にパラメータを全てMLflow T…

プログレスバーを表示するC++ライブラリを作った

C++

成果物: github.com 背景 Pythonで重い処理をする際は、tqdmでプログレスバーを表示している。最近、C++でもプログレスバーを表示させたいと思ったのだが、既存のライブラリは微妙なものしかなかった。サーベイの結果は以下の通り。 tqdm.cpp: tqdmのC++への…

OmegaConfの便利機能をC++でも使いたいので実装した

C++

成果物 github.com 背景 OmegaConfは、設定ファイルを扱うためのPythonライブラリ。 OmegaConf — OmegaConf 2.1.0 documentation 詳細はこのブログが詳しいが、自分が特に便利だと感じた機能は次の2つ。 Variable interpolation Custom resolvers Variable i…

C++勉強メモ(文字コード変換&改行コード)

C++

文字コード変換と改行コード周りで勉強したことをメモ。Windowsだけ、あるいはLinuxだけ使うならあまり考えなくてもよいが、両方対応しようとしたらちょっと面倒だったのでメモしておく。なお、本稿途中のコードでは、最後に掲載するコードをライブラリとし…

温湿度計付き置時計 MHO-C303 へのラズパイからの時刻同期

210411追記 MHO-C303は廃版になったもよう、、 CO2計測ついでに湿度もロギングしたいなぁと思って色々調べた結果、 Xiaomi製、温湿度計付き置時計 MHO-C303を買った。*1 旧機種のlywsd02とは違い、電池が単4二つになっているので長持ちするのではと思う。た…

CO2Mini用C++ライブラリを作った

今年はリモートワークの機会が多かったのだが、どうもパフォーマンスが上がらず困っていた。そこで、CO2Mini(OEM元はこれ)を購入して室内環境の改善を図った。 www.monotaro.com CO2MiniをPCに接続するとHIDデバイスとして認識され、暗号化を解けば温度・C…

オススメのC++入門書【2020年8月版】

必要に迫られてC++に入門したので使用したテキストをメモしておく。 結論としては、「独習C++新版」か「江添亮のC++入門」がよい。 C++書籍の一覧は以下のサイトが詳しい。 cppmap.github.io プログラミング経験者を対象とした、C++17までカバーしている入門…

C++でのグラフ描画

C++から使用できるグラフ描画ライブラリを探したのでメモ。 matplotlib/MATLAB使いはmatplotlib-cppが一番使いやすいと思う。 ただし、Windows環境において、PythonをAnacondaでインストールしているとpython38_d.libがないためDebugビルドが通らない(38の部…

Eigenをcerealでシリアライズする

自分で若干コードを書かないとEigenオブジェクトをシリアライズできなかったのでメモ。 結論から言うと、C++17環境であれば以下のようにload(), save()を定義してやればよい。 #pragma once #include <cereal/cereal.hpp> #include <cereal/types/vector.hpp> #include <Eigen/Dense> #include <vector> namespace cereal { //E</vector></eigen/dense></cereal/types/vector.hpp></cereal/cereal.hpp>…