もっと経ったっけ。 とりあえず、今は結構慣れた。最初の1ヶ月くらいは結構速度が落ちてイライラしていたものの、2ヶ月めには記号もほぼ考えずに打てるようになっていて、こういう文章を書く上で苦労することはほぼなくなった。とはいえ長年指を最適化してき…
Realforceが壊れたとかではないのだが、他のキーボードを知らないまま死んでいくのかという気持ちに少しなったのと、分割キーボードは肩こりの対策に実際によいという話を聞いたので、Moonlanderを購入した。 www.zsa.io そこそこ慣れてきてはいるのだが、配…
3/13追記: avante.nvimはollamaを1st class supportしたのでこの記事を読む必要はありません。 TL;DR avante.nvimからollamaに繋ぐときは、以下のIssue/PullReqに貼られているコードを使え github.com github.com
昨年末から下書きに眠っていた記事を発掘した。 自宅には何匹かサーバー的運用をしているマシンがいるが、中でも使用率の高いものにsamoyedと名前をつけているサーバーがいて、家用のwiki(日記やプライベートなメモ、公開するほどでもない技術メモなどが置…
しました。 今回は主に私自身が使っていて困った機能の実装なのでちょっと見切り発車です。 アクセスチェック機能の追加 概要 TOML11_ENABLE_ACCESS_CHECKを定義してコンパイルする or CMakeでTOML11_ENABLE_ACCESS_CHECK=ONにすると使えるようになる機能で…
新年なので初リリースです。 追加 toml::find<std::optional<T>>(...)をサポート 今まで無かったのかよという感じですが、面倒だったので後回しにしていました。ローカルに置いてあるROADMAP.mdを見るともうちょっと早めに実装する予定だったことがうかがえます。 こういうの</std::optional<t>…
今回は短めです。流石に学習しました。 そういえば以前toml11 v3で発生していた-Wshadowの警告が特に意識しないうちに消えているな~と思って、確認していました。 以前出ていた警告は、以下のコードが原因の警告でした。enum classと型エイリアスが衝突して…
先週、toml11のv4で入れた変更についての話をしました。 今回は、v3の頃から変わっていない機能も含めて、どういう理由でどのようにしているのかということについてつらつら書いていこうと思います。 とはいえ、メインはv4での実装のことになるとは思います…
しました。 かなり大幅な変更を導入し、パーサ関係もtoml::valueもほぼ全部書き換えたのですが、シンプルな使い方をしている場合は多分ほとんど変更なしでコンパイルが通ると思います。 ちょっと進んだ機能を使っていた場合は、色々と変更につき合わせるかと…
これは qiita.com の12/16の記事です。やばいもう16日が終わってしまう! はじめに 太古の昔、あるC++プログラマ*1がtemplateの再帰と特殊化を使ってコンパイル時に計算ができることを「発見」*2*3したその日から、C++とコンパイル時計算は分かちがたく結び…
少し前に昼食を食べながら調べてたらdevelopper toolのconsoleでCodeMirror.Vim.map(...)をやればできることに気付いてそのままブックマークレットにしたのだが、手元で作業しながらたびたび編集していたら押すのが面倒になってきたのでもうちょっとだけ調べ…
この記事はC++アドベントカレンダー2021の記事です。 qiita.com 小ネタですが今日の分が埋まっていなかったので。 std::source_locationとは std::source_locationは、その名の通りソースコード中の位置を表す情報が入った構造体です。C++20以降で使うことが…
以前も浮動小数点数の記事を書いた(作る側の気持ちで理解する浮動小数点数 - in neuro)。だがその時は、浮動小数点数に関するアイデアの説明しかしておらず、実際の「浮動小数点数(IEEE754)」については説明しなかった。今回の記事の目的は、実際の浮動…
しばらくブログを書けていなかったのでちょっと準備運動をする。比較的長めのものをこれから書こうと思っているからだ。 github.com boost-ext/μtは、C++20用のテストライブラリだ。C++20らしくモジュールとしても使えるし、シングルヘッダオンリーライブラ…
今日気づいたのだが、Boost.math.constants にある one_div_pi は Boost 1.71.0 以前には存在しない。 背景 Boost.math.constantsは、現時点ではC++で数学定数を取得するために最もよい方法だろう。これは、以下のようにして数学定数を取得できるライブラリ…
昨日の夜、"Hello World"を送信する回路がちゃんと動いて、安心して寝た。今日はPC -> FPGAの受信を書き、とりあえずこちらが送った文字をそのまま返すだけの回路を作った。少しは慣れてきたのか、シミュレーションでデバッグしたあと実機に焼いたら即動いた…
最初に書いたLチカは色を変えながらずっとループするものだった。その後、すぐにUARTを書こうとして文字の出力が止まらなくなった。今日は少し反省したので、謙虚にLEDを0から3まで順番に点灯させていって最後はすべて消して止まる、という回路を書こうと思…
今のところ制御できていません。「A」と10回だけ出力しようとしたら「A」が無限に出力されてターミナルが埋まるし、「Hello World」と出力しようとしたら「・」が返ってきた。どういうこと? シミュレーションはうまくいってそうに見えるんだけど……。まあVer…
突然何を始めたんだ?? 背景 高校の頃から生物を選択し、学部の頃は大腸菌の遺伝子を組み替えたりDNAで折り紙をしたりと割とWetな道をたどっていたはずなのだが、何の因果かどうやら回路設計に一枚噛む可能性が出てきたので、しばらくFPGA関係のことを調べ…
というわけで設定していた。 初期設定としてやったことは、とりあえず Ctrl/CapsLockの交換 WSLでfish/powerline/tmuxを使う だ。これだけのことでメモしておこうと思うとは思わなかった。 Ctrl/CapsLockの交換 複数の方法が紹介されており、「そのためだけ…
機能の紹介 toml11では、ユーザー定義型との間にいくつかの変換方式を提供している。 1つめはtoml::valueを受け取るコンストラクタを使用するもの。続いてfrom_toml(const toml::value&)というメンバ関数を定義するもの。最後にtoml::from<T>という構造体を定義</t>…
-Wshadowは-Wallでオンにならない警告オプションで、shadowingを警告してくれる。 そもそも、実はC++にもshadowingというのはあり、ブロックを分けさえすれば同じ名前の変数を定義しても特に問題はない。ブロックが同じだとエラーになるのであまり便利ではな…
長いことまともな記事を書いていないのでリハビリをします。 ヘッダオンリーライブラリとして使えるものの、必要な場合はコンパイルできる、というライブラリはチラホラ見かける。例えば spdlog はその一つで、 "header only/compiled library" を名乗ってい…
技術記事ではない。
去年同様、主にプログラミング関係のアクティビティを見直してみる。GitHubのActivityはこういうときとても便利だ。Starしたレポジトリの一覧にも日付が出てくれたらいいのにな。 読んだ本や論文とかのメモもひとところに纏めておいたらよいのだろうけど、テ…
これはC++アドベントカレンダーが埋まっていなかったので急遽書こうと思い立って急いで寝る前にバーっと書いてたら気づいたときには2時を回っていた記事です。何かあったら教えるか見逃してください。 そもそも何の話? Static Initialization Order Fiasco…
今更マクロの話です。求められてるのはそういうのではなくモダンな解決方法の話だということは知っているけれど、例えばreflection TSとかは紹介するには重すぎるので……。まあとりあえず今回は伝統的なテクニックの話をします。他所でも解説されている可能性…
ちょっと面白いバグを直したので久々にブログを書く。最近は少し状況が悪く、あまりよそ事に手を出せていなかった。今もそんなに状況は改善していないが、明らかに書けるネタがあるので書こう。 直したバグはこれだ。 github.com 背景 問題の話をする前に、…
もう三週間くらい前になると気づいて結構驚愕しているのだが、SEPAROというゲームの対戦相手を書いた。 SATySFiで有名な@bd_gfngfn氏が作ったSeparoというボードゲームで昔遊んだことがあり、また遊びたくなったもののルールを知っている/覚えてくれそうな人…
結構昔に書いていたっぽい下書きがあったので手直しして出しておこう。まあイマドキgcc-4.8.5を使う羽目になっている人はあまりいないだろうが、少なくともIssueが立つ程度には存在するようなので。 広く知られていることっぽいが、GCC 4.8系統の標準ライブ…