rsp

オーディオアンプ製作 (1)

ずっと、プリント基板を描いて中華の製造業者などに発注するのをやってみたいと思っていました。 マイコンにプログラムを書き込んで何かするのは 昨年やった ので、こんどは受動部品を主に使ったアナログ要素のある回路を作りたくなったのでした。 まず思い…

OBS プラグインのビルド方法 (Windows, Visual Studio 2022)

obs-plugintemplate を使いましょう。

返却期限を忘れない (図書館→Googleカレンダー自動同期)

3行でまとめる scarper で貸出資料一覧を取得 Google Calendar API で資料ごとに登録・更新・削除 AWS Lambda + Cloud Watch で定期実行

電子工作に入門して加湿器を制御した

単純機能の加湿器をマイコンで制御した

『アイの歌声を聴かせて』を観た(ネタバレ有)

ネタバレです。

井の頭線踏破

井の頭線沿線を歩く (1日) 吉祥寺からスタート

NieR Replicant ver 1.22 の今の所の感想

プレイ途中だけれどいいところといまいちなところを書きます ネタバレあります。

京王線踏破 (6) 芦花公園~新宿

京王線沿線を歩く Day6 同区間営業キロ程 9.1 km

京王線踏破 (5) 国領~芦花公園

京王線沿線を歩く Day5 同区間営業キロ程 5.1 km

京王線踏破 (4) 府中~国領

京王線沿線を歩く Day4 同区間営業キロ程 7.7 km

京王線踏破 (3) 聖蹟桜ヶ丘~府中

京王線沿線を歩く Day3 同区間営業キロ程 4.4 km

京王線踏破 (2) 高幡不動~聖蹟桜ヶ丘

京王線沿線を歩く Day2 同区間営業キロ程 3.4 km

京王線踏破 (1) 京王八王子~高幡不動

京王線沿線を歩く Day1 同区間営業キロ程 8.4 km

Linux Kernel 起動時パラメータの渡され方

ブートローダが Linux Kernel を起動するとき、パラメータを渡すことができる。 wiki.archlinux.jp これはどうやって渡しているのか気になって*1、ブートローダのソースを読んだ。 結論としては何のことはなく、C 言語上でアーキテクチャの calling conventi…

C コンパイラをつくってみる (6) ひとまず完結&総括

低レイヤを知りたい人のためのCコンパイラ作成入門 ステップ11-15を参考にしています。 前回 (5) 識別子を、[a-z] から [a-zA-Z_][a-zA-Z0-9_]* に拡張 参考: ステップ11 コード差分 ローカル変数をスタックフレーム内にどう割り当てるか、パース時に保存し…

C コンパイラをつくってみる (5)

低レイヤを知りたい人のためのCコンパイラ作成入門 ステップ9-10を参考にしています。 前回 (4) 次回 (6) 仮完結編 ローカル変数 変数を使うには、代入 a = 1 とそれを使った計算 a + 1 などができないと話にならないので、先に文法に 文はセミコロンで終端…

C コンパイラをつくってみる (4)

低レイヤを知りたい人のためのCコンパイラ作成入門 ステップ5-6を参考にしています。 前回 (3) 次回 (5) 単項 +, - 演算子 結合順として乗算 * と項 (...) の間に、単項演算子を入れる。生成規則 unary := term | "+" term | "-" term として、構文解析のロ…

C コンパイラをつくってみる (3)

低レイヤを知りたい人のためのCコンパイラ作成入門 ステップ4を参考にしています。 前回 (2) 次回 (4) 構文木の導入 1+2*3 を 1+(2*3) として計算するためには、トークンを左から消費していくだけではいけない。 加減算と乗除算の生成規則を階層立てて定義し…

C コンパイラをつくってみる (2)

低レイヤを知りたい人のためのCコンパイラ作成入門 ステップ1-3を参考にしています。 前回 (1) 次回 (3) 整数1つからなる言語 前回の、整数1つを a0 レジスタに入れて OS に返すアセンブリをもとにする。 ソースコード(ここではコマンドライン引数)として…

C コンパイラをつくってみる (1)

純粋にコンパイラの構成に興味が出てきたので挑戦。 低レイヤを知りたい人のためのCコンパイラ作成入門 を参考にしてみようと思う。 ターゲットはせっかくなので RISC-V (64bit)。 環境構築 Ubuntu 18.04 先日リリースされた 19.04 を入れてみていたが、壊れ…

長い MIDI System Exclusive に迫る罠 (JUCE on macOS での1バイト欠落問題の原因)

sigboost ソフトウェアエンジニア @skb_apos です。 midiglue を作っています。 記事の概要 MIDI Exclusive を濫用応用してファイルを送信するプロトコルを作って実装したら macOS でのみ「周期的に 1バイト欠ける 」問題が起きた ユーザーコード → JUCE フ…

国際学会で口頭発表をするにあたって準備したもの/こと

初(にして最後?)の国際学会とやらで登壇したので、半年間何を準備したか文書に起こします*1。 フランス・パリ コンピュータ/インダストリ関係の学会 口頭発表の採用に付随し、提携論文誌(査読付)への投稿権利が得られる というものでした。 6ヶ月前: Ex…

それ、連打する必要ないですよ (あるいは、怠惰にテキスト編集するために)

他の方が PC を操作しているのを見てて、頻繁に「それ、そんなに連打する必要ないよ」と言いたくなりますが、こういうのを指摘すると嫌われる[要出典]ので、ブログにでも書いてみよう。 という趣旨です。 検証が面倒なので、以下の環境を前提として書いてし…

Softbank光 遅い [検索]

事情があり、2月に光回線を契約した。いま住んでいる部屋にフレッツの「光コンセント」があり、光回線はすでに敷設されているようなので、フレッツ網をつかった「光コラボ*1」のなかから1社選び、契約することにした。 ONUが配送され、簡単に接続できたので…

関数への参照と関数ポインタ、func と &func

C++

機能を引数にとりたいとき複数の方法があり、 関数ポインタ、 std::function 、などは何度もつかってきたものの、「関数への参照」に出会って少しとまどったので記録します 関数への参照 int func(double x){ return x; } と定義されているとき、func の型は…

Cython で連続メモリ領域としてアドレスを取れる配列たち

Cython で C API との連携をする際、 連続メモリ領域を確保してアドレスを渡すような場面によく遭遇します。 libc.malloc を使わずに*1これを実現するためには、 cdef 宣言できるような型が用意されている 必要があり、それを叶える方法がいくつかあります。…