われがわログ

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

BJ-AKIさんの飛廉を買った

久しぶりの投稿ですが、技術系じゃなくて趣味のサントラ系の話です。 まとめ 切ないピアノ曲が好きな人は「飛廉」おすすめ 作曲者さんのウェブページのフォームから購入の意思を伝えればデータorCDを購入できる 本文 いい曲がないかネットで調べていたとき、…

転職活動振り返り

メーカー研究職から他社開発職へ転職することになった。その転職活動をこの記事で振り返る。なお、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搭載マイコンボードで、そ…

捜索理論勉強メモ

完全に自分の勉強メモ。 静止目標に対する捜索活動の最適化についてまとめた。 参考書は下記の2つ。 コロナ社から出ている本の方が入門向けだが、省かれている部分もある。ただ、不完全定距離センサーの横探知確率や、同センサーの区域捜索に関する議論はコ…

Near-identity diffeomorphismsを用いた差動二輪ロボットの制御

Turtlebot3をシミュレータ上で動作させて以来、「差動二輪ロボットの駆動則(速度指令値から進行方向速度・回転角速度への変換則)って何があるんだろう」と思っていたのだが、よさげなやつを最近発見したのでメモしておく。 東工大&Georgia Techによる論文…

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

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

マイクラっぽい地図ビューワを作った

↑こんなんを作った。 ここ↓からグリグリ動かせる https://estshorter.github.io/VoxelMapViewer/ 業務でマイクラ風3次元地図ビューワが欲しくなったのだが、Matplotlibのvoxels()は重すぎて使用に耐えないし、どうしたものかと思っていたところ、以下のサイ…

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

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

Bruno Wen-li は誰か / Who is Bruno Wen-li?

Bruno Wen-li = 市川淳

ROS Noeticのrobot_state_publisherはtf_prefix引数をとらない(2020/11現在)

ROS

ROS MelodicからNoeticにアップデートして手持ちのプログラムを動作確認したところ、動かなかった(rvizの可視化でエラーが出た)のでその原因をメモしておく。 根本原因は、robot_state_publisherパッケージがtf_prefix引数をとらなくなったことである。 こ…

Pythonでループ内でlambdaを使う際には注意しろ

Pythonでlambdaで関数オブジェクトを作り、リストにループで突っ込んだところ、 意図した結果にならず盛大に時間を溶かしたのでメモしておく。 まとめ C++の std::bindみたいにPythonのlambdaを使う場合には functools.partialを使う。 本文 以下のコードの…

WSL2でのROS (Melodic)の初期設定

ROS

ROSを触る機会があったのでまとめておく。 ROSはMelodic、OS はUbuntu18.04、XサーバはVcXsrvを想定。 XサーバにX410を使いたいとき → Using X410 with WSL2 - X410.dev WSL2インストール docs.microsoft.com aptのサーバを日本にしておくとDLが早い。 sudo …

agoutiを使ってスクレイピングするときの余分な表示を消す

Golang + agouti + ChromeDriver + Chromeでスクレイピングをしていたが、プログラム実行時に毎回「DevTools listening on ws://127.0.0.1:2441/devtools/browser/8fd65422-e774-4d35-a0cc-036de4564b9a」のような表示が出て煩かったので、これを非表示にす…

W32TeX でいれたTeXでaamas.clsやacmart.clsを使う

TeX

W32TeX でいれたTeXでaamas.clsやacmart.clsを使おうとしたらパッケージがなく warning/errorが出たのでメモ。 なお、最初はwarningを見落としており、公式のとは違ったフォーマットのPDFファイルが出力されて焦った。 手順 まず、以下のパッケージをインス…

「週末レイトレーシング 余生」を読んだ

前々回記事で紹介した「週末レイトレーシング」の第3巻を読んだのでメモ。 waregawa-log.hatenablog.com inzkyk.xyz 原著: https://raytracing.github.io/books/RayTracingTheRestOfYourLife.html この本まで読むと、確率密度関数を使って重点サンプリング…

「週末レイトレーシング 第二週」を読んだ

前回記事で紹介した「週末レイトレーシング」の第2巻を読んだのでメモ。 waregawa-log.hatenablog.com inzkyk.xyz 原著: https://raytracing.github.io/books/RayTracingTheNextWeek.html 感想としては、効率的に衝突を判定するデータ構造であるBVHのところ…

週末レイトレーシングを読んでレイトレーサを作った

レイトレーシングのやり方が気になったので、以下のページを読みつつレイトレーサをつくったのでメモ。 英語のタイトルは「Ray Tracing in One Weekend」。 著者はNVIDIAの社員とのこと。すごい。 inzkyk.xyz 成果物は以下のリポジトリにおいた。 github.com…