moonlanderを買って3ヶ月が経った

もっと経ったっけ。 とりあえず、今は結構慣れた。最初の1ヶ月くらいは結構速度が落ちてイライラしていたものの、2ヶ月めには記号もほぼ考えずに打てるようになっていて、こういう文章を書く上で苦労することはほぼなくなった。とはいえ長年指を最適化してき…

moonlanderを入手して1週間が経った

Realforceが壊れたとかではないのだが、他のキーボードを知らないまま死んでいくのかという気持ちに少しなったのと、分割キーボードは肩こりの対策に実際によいという話を聞いたので、Moonlanderを購入した。 www.zsa.io そこそこ慣れてきてはいるのだが、配…

nvimでローカルLLMと連携する

3/13追記: avante.nvimはollamaを1st class supportしたのでこの記事を読む必要はありません。 TL;DR avante.nvimからollamaに繋ぐときは、以下のIssue/PullReqに貼られているコードを使え github.com github.com

自宅鯖の死活監視をする

昨年末から下書きに眠っていた記事を発掘した。 自宅には何匹かサーバー的運用をしているマシンがいるが、中でも使用率の高いものにsamoyedと名前をつけているサーバーがいて、家用のwiki(日記やプライベートなメモ、公開するほどでもない技術メモなどが置…

toml11 v4.4.0をリリースした

しました。 今回は主に私自身が使っていて困った機能の実装なのでちょっと見切り発車です。 アクセスチェック機能の追加 概要 TOML11_ENABLE_ACCESS_CHECKを定義してコンパイルする or CMakeでTOML11_ENABLE_ACCESS_CHECK=ONにすると使えるようになる機能で…

toml11 v4.3.0をリリースした

新年なので初リリースです。 追加 toml::find<std::optional<T>>(...)をサポート 今まで無かったのかよという感じですが、面倒だったので後回しにしていました。ローカルに置いてあるROADMAP.mdを見るともうちょっと早めに実装する予定だったことがうかがえます。 こういうの</std::optional<t>…

Wshadowがenum classとの衝突に文句を言う場合と言わない場合

今回は短めです。流石に学習しました。 そういえば以前toml11 v3で発生していた-Wshadowの警告が特に意識しないうちに消えているな~と思って、確認していました。 以前出ていた警告は、以下のコードが原因の警告でした。enum classと型エイリアスが衝突して…

toml11を支える技術

先週、toml11のv4で入れた変更についての話をしました。 今回は、v3の頃から変わっていない機能も含めて、どういう理由でどのようにしているのかということについてつらつら書いていこうと思います。 とはいえ、メインはv4での実装のことになるとは思います…

toml11 v4をリリースした

しました。 かなり大幅な変更を導入し、パーサ関係もtoml::valueもほぼ全部書き換えたのですが、シンプルな使い方をしている場合は多分ほとんど変更なしでコンパイルが通ると思います。 ちょっと進んだ機能を使っていた場合は、色々と変更につき合わせるかと…

2023年のコンパイル時レイトレーシング

C++

これは qiita.com の12/16の記事です。やばいもう16日が終わってしまう! はじめに 太古の昔、あるC++プログラマ*1がtemplateの再帰と特殊化を使ってコンパイル時に計算ができることを「発見」*2*3したその日から、C++とコンパイル時計算は分かちがたく結び…

一人growiでvimのkeymapをやる

少し前に昼食を食べながら調べてたらdevelopper toolのconsoleでCodeMirror.Vim.map(...)をやればできることに気付いてそのままブックマークレットにしたのだが、手元で作業しながらたびたび編集していたら押すのが面倒になってきたのでもうちょっとだけ調べ…

可変長テンプレートでもstd::source_locationを使いたい!

この記事はC++アドベントカレンダー2021の記事です。 qiita.com 小ネタですが今日の分が埋まっていなかったので。 std::source_locationとは std::source_locationは、その名の通りソースコード中の位置を表す情報が入った構造体です。C++20以降で使うことが…

作って理解する浮動小数点数① 基本編

以前も浮動小数点数の記事を書いた(作る側の気持ちで理解する浮動小数点数 - in neuro)。だがその時は、浮動小数点数に関するアイデアの説明しかしておらず、実際の「浮動小数点数(IEEE754)」については説明しなかった。今回の記事の目的は、実際の浮動…

boost-ext/ut の使い方

C++

しばらくブログを書けていなかったのでちょっと準備運動をする。比較的長めのものをこれから書こうと思っているからだ。 github.com boost-ext/μtは、C++20用のテストライブラリだ。C++20らしくモジュールとしても使えるし、シングルヘッダオンリーライブラ…

Boost math constantsの変遷記録

C++

今日気づいたのだが、Boost.math.constants にある one_div_pi は Boost 1.71.0 以前には存在しない。 背景 Boost.math.constantsは、現時点ではC++で数学定数を取得するために最もよい方法だろう。これは、以下のようにして数学定数を取得できるライブラリ…

UARTで送受信

昨日の夜、"Hello World"を送信する回路がちゃんと動いて、安心して寝た。今日はPC -> FPGAの受信を書き、とりあえずこちらが送った文字をそのまま返すだけの回路を作った。少しは慣れてきたのか、シミュレーションでデバッグしたあと実機に焼いたら即動いた…

Artix-7で一周したら止まるLチカを書く

最初に書いたLチカは色を変えながらずっとループするものだった。その後、すぐにUARTを書こうとして文字の出力が止まらなくなった。今日は少し反省したので、謙虚にLEDを0から3まで順番に点灯させていって最後はすべて消して止まる、という回路を書こうと思…

Artix-7からUARTで通信しようとしていた

今のところ制御できていません。「A」と10回だけ出力しようとしたら「A」が無限に出力されてターミナルが埋まるし、「Hello World」と出力しようとしたら「・」が返ってきた。どういうこと? シミュレーションはうまくいってそうに見えるんだけど……。まあVer…

Artix-7でLチカ

突然何を始めたんだ?? 背景 高校の頃から生物を選択し、学部の頃は大腸菌の遺伝子を組み替えたりDNAで折り紙をしたりと割とWetな道をたどっていたはずなのだが、何の因果かどうやら回路設計に一枚噛む可能性が出てきたので、しばらくFPGA関係のことを調べ…

Windowsマシンを使う

というわけで設定していた。 初期設定としてやったことは、とりあえず Ctrl/CapsLockの交換 WSLでfish/powerline/tmuxを使う だ。これだけのことでメモしておこうと思うとは思わなかった。 Ctrl/CapsLockの交換 複数の方法が紹介されており、「そのためだけ…

特殊化が存在するかどうかをチェックする

C++

機能の紹介 toml11では、ユーザー定義型との間にいくつかの変換方式を提供している。 1つめはtoml::valueを受け取るコンストラクタを使用するもの。続いてfrom_toml(const toml::value&)というメンバ関数を定義するもの。最後にtoml::from<T>という構造体を定義</t>…

GCCの-Wshadowとその推移について、あとお前を消す方法

C++

-Wshadowは-Wallでオンにならない警告オプションで、shadowingを警告してくれる。 そもそも、実はC++にもshadowingというのはあり、ブロックを分けさえすれば同じ名前の変数を定義しても特に問題はない。ブロックが同じだとエラーになるのであまり便利ではな…

ビルドもできるヘッダオンリーライブラリ

C++

長いことまともな記事を書いていないのでリハビリをします。 ヘッダオンリーライブラリとして使えるものの、必要な場合はコンパイルできる、というライブラリはチラホラ見かける。例えば spdlog はその一つで、 "header only/compiled library" を名乗ってい…

ハンコを作ってもらった

技術記事ではない。

2020年にやったこと

去年同様、主にプログラミング関係のアクティビティを見直してみる。GitHubのActivityはこういうときとても便利だ。Starしたレポジトリの一覧にも日付が出てくれたらいいのにな。 読んだ本や論文とかのメモもひとところに纏めておいたらよいのだろうけど、テ…

Static Initialization Order Fiasco

C++

これはC++アドベントカレンダーが埋まっていなかったので急遽書こうと思い立って急いで寝る前にバーっと書いてたら気づいたときには2時を回っていた記事です。何かあったら教えるか見逃してください。 そもそも何の話? Static Initialization Order Fiasco…

__VA_ARGS__の引数をループするやつはなぜ動くのか

C++ C

今更マクロの話です。求められてるのはそういうのではなくモダンな解決方法の話だということは知っているけれど、例えばreflection TSとかは紹介するには重すぎるので……。まあとりあえず今回は伝統的なテクニックの話をします。他所でも解説されている可能性…

toml11でコメントが増えるバグを修正した

ちょっと面白いバグを直したので久々にブログを書く。最近は少し状況が悪く、あまりよそ事に手を出せていなかった。今もそんなに状況は改善していないが、明らかに書けるネタがあるので書こう。 直したバグはこれだ。 github.com 背景 問題の話をする前に、…

separo-rsの記事

もう三週間くらい前になると気づいて結構驚愕しているのだが、SEPAROというゲームの対戦相手を書いた。 SATySFiで有名な@bd_gfngfn氏が作ったSeparoというボードゲームで昔遊んだことがあり、また遊びたくなったもののルールを知っている/覚えてくれそうな人…

gcc 4.8.xでの標準ライブラリのバグについて

結構昔に書いていたっぽい下書きがあったので手直しして出しておこう。まあイマドキgcc-4.8.5を使う羽目になっている人はあまりいないだろうが、少なくともIssueが立つ程度には存在するようなので。 広く知られていることっぽいが、GCC 4.8系統の標準ライブ…