はじめに OS自作系の本を2冊、読みたくなった。 普段は組込みCを書いている。RTOSもスケジューラも「使う側」としては慣れているつもりだが、中身を自分の手で組み立て直したことがあるかと言われると、ちょっと自信がない。 そんなタイミングで、OS自作系の…
はじめに 用意したもの GitHub の SDV 系リポジトリを調べてみた 1. eclipse-sdv-blueprints/service-to-signal 2. eclipse-velocitas/vehicle-app-python-sdk(と vehicle-app-python-template) 3. eclipse-sdv-blueprints/fleet-management 4. SEA-ME(Pi…
ベアメタルで走る組込ペリフェラル開発完全ガイド 皆さんは、マイコン開発で「Lチカ」をする際、どのようなコードを書いていますか? Arduinoなら digitalWrite(13, HIGH);、STM32のHALライブラリなら HAL_GPIO_WritePin(...) でしょうか。非常に便利ですよ…
Rustよりもシンプルで、Cよりも安全な「第三の選択肢」を徹底解説 「C言語は古すぎるが、Rustは学習コストが高すぎる...」 「もっとシンプルに、でも低レイヤーを完全に制御したい」 そんなエンジニアの心の隙間を埋める言語として、Zig(ジグ) が爆発的な…
SDV時代のEPS(電動パワーステアリング)制御 ――ソフトウェア定義で進化する「曲がる」技術の最前線 1. SDVにおけるEPS制御とは? SDV(Software Defined Vehicle)におけるEPS制御とは、従来の「ハードウェア(モーター・ギア)性能に依存した固定的なアシ…
HBMとNANDを「比較」しないための比較 ―― メモリ階層から理解する役割分担と設計思想 1. はじめに HBM(High Bandwidth Memory)とNAND Flashは、しばしば並べて語られます。 しかしこの2つは、性能を競う関係でも、置き換え可能な技術でもありません。 それ…
EtherCAT入門 ―― 超高速フィールドバスの設計思想と実装イメージ、学習の指針 1. はじめに 産業用ネットワークの分野で EtherCAT は、すでに特別な存在ではありません。 サーボモータ制御、分散I/O、装置内ネットワークなど、「μsオーダの同期性」が求められ…
そのフラグ、誰が下ろす? ― 組み込みで“たまに壊れる”Cコードを徹底解剖(実例つき) 1. 導入 --- フラグが原因のバグは、だいたい再現しない --- 組み込み開発で一番やっかいなバグの代表格が「フラグ管理の失敗」です。テスト環境では動く。ログも綺麗。…
データの保存と速度性を両立するWeb技術のベストプラクティス ― 「都度問い合わせは遅い」「データ保持は大きくなりすぎる」をどう解くか ― はじめに(導入) Webアプリケーションを設計・運用していると、ほぼ必ず次の壁にぶつかります。 都度DBやAPIに問い…
ANC(アクティブノイズキャンセリング)の技術を基礎から理解する ― 仕組み・DSPアルゴリズム・実装コード・実製品まで ― はじめに(導入) 電車の走行音、飛行機のエンジン音、カフェの環境音。 こうした「不快ではないが集中力を奪う低周波ノイズ」を劇的…
TPUとは? ――GPU時代のその先にある「テンソル専用プロセッサ」 1. いまさらだけど「TPUって何者?」 TPU(Tensor Processing Unit)は、Google が自社の機械学習ワークロードを高速化するために設計した 専用プロセッサ(ASIC) です。 テンソル/tensor(…
AUTOSARとSDV ――クラシックECU時代からソフトウェア定義車両への橋渡し 1. なぜ「AUTOSARとSDV」をセットで考えるべきか ここ数年、自動車ソフトウェア界隈では AUTOSAR(Classic / Adaptive) SDV(Software-Defined Vehicle:ソフトウェア定義車両) ドメ…
点群 × 数学 × Python ――3次元データ時代のデータサイエンス入門 3次元点群処理と数学 1. 点群の時代に「ちゃんと数学」をやる意味 LiDAR、RGB-D カメラ、フォトグラメトリ、SLAM、3D スキャナ。 現実世界をスキャンしてそのままデータにする手段が一気に増…
C++ゲームプログラミング入門 ――ゲームループからデータ構造、WebAssemblyまで C++ゲームプログラミング入門 1. ゲームプログラムは「1本のループ」から始まる 2. C++でゲームを書く理由と向き合い方 3. ゲームループの設計:フレームと時間の扱い 3.1 デル…
C++ × CPU マイクロアーキテクチャで見るメモリアクセス性能 はじめに 「同じメモリを何度も読むだけなんだから、速いはずだろう」 最初にこのベンチマークを書いたとき、自分もそう思っていました。 しかし実際に C++ で計測してみると、同じアドレスを延々…
個人NASの比較ガイド 2025 ― Synology / QNAP / UGREEN NASync をどう選ぶか 1. そもそも「個人NAS」で何が変わるのか 写真・動画・ゲームデータ・ソースコード・ドキュメント。 気づくとPCやスマホのストレージはパンパンになり、クラウドも月額課金がじわ…
スマートグラス比較 2025 ― ディスプレイ型・AIカメラ型・オーディオグラス型を用途で選ぶ 1. スマートグラスの今 スマートグラスという言葉から連想するものは、人によってだいぶ違うと思う。 目の前に巨大な画面が浮かぶ「ARディスプレイ」 常にAIアシスタ…
キーボードの種類 ― QWERTYだけじゃない配列とレイアウトの世界 はじめに 普段なにげなく叩いているキーボード。 多くの人が「QWERTY(クワーティ)」配列を使っていますが、世の中には QWERTY 以外にも、実はかなり多様な配列やレイアウトが存在します。 文…
並行処理と並列処理をちゃんと区別する入門 はじめに 「並列処理」「並行処理」「非同期」「マルチスレッド」…。 どれもそれっぽい単語ですが、きちんと区別して説明してと言われると、ちょっと怪しい…という人は多いはずです。 この記事では、余計な用語を…
25下期から使える! V言語(V Language)入門 Vで「高速・安全・シンプル」を手に入れる 1. はじめに V言語(V Language)は、2020年代前半に登場した新興の静的型付けプログラミング言語です。 “Rust の安全性 × Go の簡潔さ × C の軽量性” を目指して設計…
良いタイプの開発者 〜チームを強くする“健全な個性”を整理してみる〜 1. はじめに 良い開発者は単に「技術が高い人」ではありません。 むしろ 行動特性・姿勢・周囲との関わり方 が、 チームの質を大きく左右します。 ここでは、扱いづらい開発者タイプの“…
ブリリアントジャークのような人たち 〜特徴で分類する「扱いづらい開発者タイプ」カタログ〜 1. はじめに 「ブリリアントジャーク(Brilliant Jerk)」という言葉は有名ですが、 実際の現場には “ジャークではないが扱いが難しい開発者” も数多く存在します…
MCFB を C++ で再現する 〜仮想軸シミュレータを作りながら理解する Motion Control Function Block の本質〜 1. はじめに 前回の記事では、MCFB(Motion Control Function Block)が「OOP化されたモーション制御の標準」であることを解説しました。 今回は…
MCFB(Motion Control Function Block)をC++エンジニア視点で理解する 〜PLCopen Motion Control規格に見る「制御OOP」の完成形〜 1. はじめに:Motion Control Function Blockとは? MCFB(Motion Control Function Block)は、 PLCopen Motion Control fo…
現代版 TestLink とは? 〜テスト管理は「ExcelでもTestLinkでもない」新しい選択肢へ〜 1. はじめに かつて、ソフトウェアテストの世界では TestLink が標準的なテスト管理ツールでした。 テストケースを一元管理し、テスト計画・実行・結果を記録する―― 20…
ブリリアントジャークは飼うべきか? 〜天才を取るか、文化を守るか。組織が抱える“静かな爆弾”〜 1. はじめに あなたのチームにも、こんな人がいませんか? 圧倒的な知識量とスピード。 コードレビューでは誰も逆らえない。 トラブル対応は神がかり的に早い…
DPDKとは何か? 〜モダンな通信処理を支える“超低レイテンシ”データプレーン技術〜 1. はじめに:ネットワークは「ソフトウェア」で動く時代へ かつて、ネットワーク処理(パケット転送やルーティング)は専用ハードウェア(ASIC, FPGA, NPU)が担っていまし…
ブリリアントジャークは再教育できるのか 〜「直らないベテラン」をどう扱うかという現実的判断〜 1. はじめに マネージャーやアーキテクトの多くが、一度はこう考えたことがあるでしょう。 「あの人は優秀なんだけど、チームを壊している。でも今さら変えら…
ブリリアントジャークの見極め方 〜「成果を出す人」と「チームを壊す人」を区別する指針〜 1. はじめに エンジニアリング組織を率いると、必ず遭遇するタイプがいます。 「とても優秀なのに、なぜか周囲が疲弊する人」。 その典型が ブリリアントジャーク(…
ST言語で学ぶOOP(オブジェクト指向)実践ガイド 〜IEC 61131-3(Structured Text)のクラス設計・継承・インターフェース・ポリモーフィズム〜 1. はじめに PLCの世界でも、IEC 61131-3 第3版以降はオブジェクト指向(OOP)の要素が標準化され、Structured …