われがわログ

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

2021-01-01から1年間の記事一覧

転職活動振り返り

メーカー研究職から他社開発職へ転職することになった。その転職活動をこの記事で振り返る。なお、from, toの企業名や退職理由は書いていない。 サマリは下記の通り。 自身のスペック 機械系博士卒(力学・制御あたりが主専攻) 理論(アルゴリズム開発)も…

Argon ONEのファン制御ソフト Argon One Daemon (argononed)

Argon One Daemon (argononed)を布教するために書いた。 私はRaspberry Pi 4にArgon ONEというケースをつけて使っている。 www.switch-science.com このケースには30 mmファンが付いており、ファン制御用のソフトウェアは公式から配布されている。 url: http…

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だけ使うならあまり考えなくてもよいが、両方対応しようとしたらちょっと面倒だったのでメモしておく。なお、本稿途中のコードでは、最後に掲載するコードをライブラリとし…

QMK Firmwareが焼けるマクロパッド「YMD09」を買った

自分でファームウェア(QMK Firmware)を焼けるマクロパッド「YMD09」を購入したのでメモしておく。 ja.aliexpress.com Teamsのミュートショートカット(Ctrl+Shift+M)を押せるマクロパッドを探しており、最初はStream DeckかKoolertronのマクロパッドを買お…

いいかんじのLatexテンプレートをつくった

TeX

LaTexは慣れれば非常に良い技術文書作成ツールだが、残念ながら、その段階に至るまでの道のりが険しすぎる。文献リストから参考文献を自動生成するためにbibtexまわりを調べたり、キャプションをいいかんじにするためにcaptionパッケージやsubcaptionパッケ…

M5Paper公式ライブラリのOSSライセンス違反について

M5Paperの公式ライブラリであるM5EPDのコードを読んでいたところ、ソフトウェアライセンス的にまずい点を見つけたので記録しておく。なお、issueは以下の通り約1か月前に投稿済みだが、返答なし。 github.com まずい点は、MITライセンスで公開しているにもか…

中心力場における単一質点の軌道の可視化

最近、V.I.アーノルド「古典力学の数学的方法」を読んでいるのだが、かっこいい図があったので自分で描いてみた。 古典力学の数学的方法作者:V.I.アーノルド発売日: 2003/05/28メディア: 単行本 円環の中、至るところ稠密な軌道 エディタのAtomみたいな画像…

M5PaperでNTPサーバの時刻をRTCに正しく設定する

M5Paper開発の際、NTPで取得してRTCに設定した時刻がたまにズレて困っていたが、configTzTime()を呼んだ後にsntp_get_sync_status()で同期状態を確認するようにしたら直った。sntp_get_sync_status()を紹介している日本語記事は見当たらなかったので、短いが…

dアニメストアの今期アニメ配信情報をGoogleカレンダーに登録する

しょぼいカレンダーにはアニメの放送日をGoogleカレンダーに表示できる機能があり、以前までは便利に使っていた。以前まで、と書いたのは、私は最近、録画派からdアニメ派に鞍替えしており、dアニメ視聴だと上述の機能が使えない*1ためである。 そこで、Gola…

PlatformIO + ESP32をC++14 (or C++17)に対応させる

※21/04/17現在の情報です。 M5Paperを開発していたところ、ちゃんと設定しないとC++14以上の機能が使えなかったのでメモ。 PlatformIO + ESP32環境をC++14に対応させるには、platformio.iniに以下を設定すればよい。 build_flags = -std=gnu++14 build_unfla…

M5Paperで部屋の環境監視用ダッシュボードを作った

最近発売されたM5Paperで、部屋の温湿度・CO2監視用ダッシュボードを作ったのでメモしておく。 成果物は下記の写真の通り。 M5Paperの画面 ソースコードは以下に置いた。 github.com M5Paper M5Paperは2020/11/27に発売されたESP32搭載マイコンボードで、そ…