macOS でローカルLLMセットアップ
ollamaをインストール
$ brew install ollama
ollama を起動する
$ ollama serve
別のコンソールでollama操作 $ ollama list
qwen3:14b をインストール
Visual Studio Codeインストール
Connectプラグインインストール
モデルのAutoDetectでqwen3:14bに接続
C++で複数のクラスを継承した時のアップキャスト
まずはこちらのC++の挙動を見ていただこう。
class ICar { public: virtual void run() = 0; protected: virtual ~ICar() = default; }; class ICamping { public: virtual void camping() = 0; protected: virtual ~ICamping() = default; }; class Car: public ICar { public: Car() {} void run() override { } }; class CampingCar: public ICar, public ICamping { public: CampingCar() { } void run() override { } void camping() override { } }; int main(int argc, const char * argv[]) { auto car = std::make_unique<Car>(); printf("%p %p\n", car.get(), static_cast<ICar*>(car.get())); // 0x100865cb0 0x100865cb0 auto campingCar = std::make_unique<CampingCar>(); printf("%p %p %p\n", campingCar.get(), static_cast<ICar*>(campingCar.get()), static_cast<ICamping*>(campingCar.get())); // 0x100860c10 0x100860c10 0x100860c18 return EXIT_SUCCESS; }
継承するクラスが1つの時はアップキャストしてもアドレスは変わらないが、 継承するクラスが2つの時は最初に継承したクラスへアップキャストしたときはアドレスが変わらないが、 2つ目の継承クラスへアップキャストした時はアドレスが変わっていることが分かる。 static_castはC言語の型キャストとはかなり異なる機能を持っていることが分かる。
HHKBの日本語配列キーボードでWin11のスペースキー両脇のキーをMacの動作と同じにする
HHKBの日本語配列キーボードでWin11を使う場合、スペースキー両脇のキーをMacの動作と同じにする方法を解説する。
何年かに1回はやっているがメモとして参照できるようにブログに残しておく。
Windows11の場合
- スタートボタン >「設定」>「時刻と言語」>「言語と地域」の順にクリック。
- 「日本語」の右側にある「...」から「言語のオプション」を開く。
- 「キーボード」の項目にある「Microsoft IME」の「...」から「キーボードのオプション」を開く。
- 「キーとタッチのカスタマイズ」へ進み、「各キーに割り当てる」をオンにする。
- 「無変換」キーに「IME-オフ」、「変換キー」に「IME-オン」を割り当てる。
これでスペースキーの左のキーで英語モード、スペースキーの右のキーで日本語かなモードに切り替わり、Macと同じ体験ができるようになる。
2次のIIRフィルタの周波数特性をDesmosで表示してみる
IIRフィルタの周波数特性の説明についてはこちらがわかりやすかったです。
デジタルフィルタの実装入門とアナログフィルタとの関係 | Haratta Tech Lab
2次のIIRフィルタの周波数特性は結局のところ伝達関数の複素数の絶対値をシータ(0からパイ)の関数としてグラフ化すれば良いのだと分かります。 作ってみたのがこちら。 複素数モードというのを使うのがミソでした。
LowPassFilterになっているのが分かります。 変数をグリグリ動かしてみると、HighPassFilterになったり、特定の周波数部分を上げたり下げたりするようなフィルターになっているのがわかります。 欲しい周波数特性を得るにはパラメータをどうやって設定したらいいのか分かりませんが、やり方はあるようです。 この記事ではここまでとします。
std::shared_ptrでmutexによってロックされる操作一覧
shared_ptr
shared_ptr
void atomic_store(shared_ptr
void atomic_store_explicit(shared_ptr
shared_ptr
shared_ptr
bool atomic_compare_exchange_strong(shared_ptr
bool atomic_compare_exchange_weak(shared_ptr
bool atomic_compare_exchange_strong_explicit(shared_ptr
bool atomic_compare_exchange_weak_explicit(shared_ptr