投稿者「ちはやふる」のアーカイブ

共有と共通

共有 / shared

  • shared library : 共有ライブラリ
  • shared strage : 共有ストレージ

 

共通 / common

  • common line : 電子回路における共通配線。たとえばグランド配線を共通化することで配線の本数を減らすことができる。
  • common ground : 共通点、妥協点
  • common sense : 常識

C/C++のヘッダファイルに記述すべき内容、記述すべきでない内容

[記述すべき] インクルードガード

インクルードガードの記述例

インクルードガードを記述すべき背景

ヘッダファイルの中から、さらに別のヘッダファイルをインクルードすることで、一つのヘッダファイルが2回以上インクルードされるときがある。インクルードガードが記述されていないと同一の定義や宣言が2回以上、1つの翻訳単位(~.cファイル)の中に現れてコンパイルエラーが生じるため。

define名に関する補足

接頭辞にアンダースコアを2回重ねたシンボル名は予約語です。 次のようなdefine定義名はシステム(コンパイラなど)の予約語と重複する可能性があります。予約語と衝突する不適切なdefine名の例: __FOO_H__

 

[記述すべき] 外部結合するグローバル変数の宣言

外部結合の例

 

[記述すべきでない] 内部結合するグローバル変数の宣言や定義

内部結合するグローバル変数の適切な記述位置

内部結合するグローバル変数の不適切な記述位置

初期化を記述することでグローバル変数の宣言ではなく定義になります。複数の定義が存在するとリンクエラーが発生するため窮余の一策(不適切な回避策)としてstatic宣言をしています。結果として名前が重複するstaticグローバル変数が複数の翻訳単位に存在する特異な状況が生じます。

 

[記述すべきでない] モジュール外部に公開しない関数のプロトタイプ宣言

関数のプロトタイプ宣言は省略せずに必ず記述しましょう。プロトタイプ宣言の記述を省略しても、たまたまコンパイルが成功することはありますが、一旦コンパイルが成功しても、その後のコード修正でプロトタイプ宣言のないコードのコンパイルが失敗することがあるため、かならずソースファイルの先頭、もしくはヘッダファイルに関数のプロトタイプ宣言を記述しましょう。

関数プロトタイプ宣言は必ずどこかに記述する。しかし、モジュール外(xxx.cの外部、xxx.oの外部)からアクセスする必要のない static な関数のプロトタイプ宣言をヘッダファイルに記述してはいけません。 *.c ファイルの先頭に記述しましょう。

内部リンク

[vscode] Gitワークツリーの自動検出を無効にする

課題

ソース管理のウィンドウにチェックアウトされた複数のワークツリーが自動検出(自動表示)されて煩雑なばあいがある。

解決方法

git.detectWorktrees 設定を無効 (false) にする。

表示を更新する(ワークツリーを非表示にする)ためには、一旦 Visual Studio Code を終了して再起動する。

References

[git] リモートブランチのチェックアウト

1. フェッチする

  • リモートリポジトリ名とリモートブランチ名を限定的に指定する方法がベターである。
    • リモートリポジトリ名を指定しないと全てのブランチを(無駄に)フェッチする。
    • リモートブランチ名を指定しないと全てのブランチを(無駄に)フェッチする。

2. チェックアウトする

2.1. リモートブランチ名と同名でローカルブランチをチェックアウトする

2.1. リモートブランチ名と異なるローカルブランチ名でチェックアウトする

続きを読む →

Insta360ファイル形式

静止画

DNG

Diginal Negative。Adobe Systemsが開発したRAW画像フォーマット。RAW形式保存を指定するとDNGとinsp(JPEG)の2つのファイルがストレージに記録される。

insp

EXIFを含むJPEG形式の画像ファイル。Insta360のDNG(RAW)形式ファイルは単体でエクスポート(現像)することができない。Insta360 StudioにおいてDNGとinspはペアで扱う。

jpg

JPEG形式の静止画ファイル。


動画

Irv

MPEG4形式のプレビュー用の低画質動画ファイル。

insv

MPEG4形式の高画質動画ファイル。

関数型まつり2025

2025年6月14日(土)、15日(日)と東京・中野セントラルパークで開催された技術カンファレンス「関数型まつり」に参加しました。一般参加者、発表者、スタッフを合わせて500名近くにのぼる大型イベントでした。いろいろな気づきがありましたので情報を共有します。私自身は関数型プログラミングほぼ初心者なので話半分に読んでください。

続きを読む →

現在引き渡し準備中です

引き渡し準備中

配送会社(クロネコヤマト)からは配送完了の通知が受け取ったのに「現在引き渡し準備中です」から変化しないため、おかしいと思ったら、引き取りに来るのを待っているだけでした。引き取り用のバーコードのリンクがはいったメールが「迷惑メール」に分類されてしまったため、引き取り可能になったのに気がつきませんでした。 😭

極私的『生成AI用語』

LLM

Large Language Model. 大規模言語モデル.

フロンティアモデル(Frontier Model)

最先端の基盤モデル(≒LLM)の総称。たとえば 2026年9月現在の “GPT-6 Astra” や “Claude Mythos 5.1” のこと。

各社のAIモデル

GPT

OpenAI社(OpenAI Group PBC, 旧OpenAI,Inc.)のAIモデル。

Claude

Anthropic社(Anthoropic PBC)のAIモデル。

Gemini

Google社(Google LLC)のAIモデル。 旧名称 Bard。

Jev

TypeSafe AI社(TypeSafe AI PBC)のAIモデル。

MCP

Model Context Protocol

CLI

Command Line Interface (例) GitHub Copilot CLI

Prompt

プロンプト。生成AIに対して自然言語(英語や日本語)であたえる指示(命令や問い合わせ)。

Skill

スキル。再利用可能で共有可能なワークフロー。何ができるかの能力(の記述)。生成AIの手足となる機能。

Hook

フック。生成AIの動作の前後(たとえば入出力)に処理を割り込ませる仕組み。

Harness

ハーネス。LLMを自律動作させるためのインフラや環境全般。

Guardrails

ガードレール。 AIが意図しない動作やリスクを引き起こすのを防ぐための安全制御の仕組み。たとえば個人情報を生成AIに入力させない、扱わせない仕組み。

RAG

Retrival-Augmented Generation. 検索拡張生成.

生成AI(LLM)が回答を作る際、外部の最新情報や特定のデータソースから情報を検索し、それを参考にして正確な回答を生成する技術

Hallucination

ハルシネーション。AIが嘘(事実ではないこと)をさも本当らしい情報として回答する現象。

Sycophancy

シコファンシー。迎合、おもねり。AIがユーザーの信念・前提・期待へ寄り添った回答を返してしまう現象。

Slop

スロップ。AIスロップ。原義は残飯や生ごみ。AIで粗製乱造されたコンテンツを揶揄する言葉。


内部リンク