Insta360 X5 で撮影した全天球写真をブログにアップロードする極私的な方法。
Pannellum
Web用 軽量パノラマ写真ビューア
オルタネイト・スイッチとモーメンタリ・スイッチ
- オルタネイト・スイッチ
- 押下しているあいだだけ状態を保持する。 (例) リセットスイッチ
- モーメンタリ・スイッチ
- 押下して離上したあとも状態を保持する。 (例) トグルスイッチ、ラジオスイッチ
リンク
[ITRON] メールボックスとデータキューの違い
共有と共通
共有 / shared
- shared library : 共有ライブラリ
- shared strage : 共有ストレージ
共通 / common
- common line : 電子回路における共通配線。たとえばグランド配線を共通化することで配線の本数を減らすことができる。
- common ground : 共通点、妥協点
- common sense : 常識
C/C++のヘッダファイルに記述すべき内容、記述すべきでない内容
[記述すべき] インクルードガード
インクルードガードの記述例
1 2 3 4 5 6 |
#ifndef FOO_H #define FOO_H /* 中略 */ #endif /* FOO_H */ |
インクルードガードを記述すべき背景
ヘッダファイルの中から、さらに別のヘッダファイルをインクルードすることで、一つのヘッダファイルが2回以上インクルードされるときがある。インクルードガードが記述されていないと同一の定義や宣言が2回以上、1つの翻訳単位(~.cファイル)の中に現れてコンパイルエラーが生じるため。
define名に関する補足
接頭辞にアンダースコアを2回重ねたシンボル名は予約語です。 次のようなdefine定義名はシステム(コンパイラなど)の予約語と重複する可能性があります。予約語と衝突する不適切なdefine名の例: __FOO_H__
[記述すべき] 外部結合するグローバル変数の宣言
外部結合の例
1 2 3 |
extern int number_of_record; extern int list_of_record[]; extern const char name[]; |
1 2 3 |
int number_of_reservation = 0; int list_of_record[255] = {0, }; const char name[255] = "Alice"; |
1 2 3 4 5 6 7 8 9 10 11 12 |
#include "foo.h" number_of_reservation = 0; /* ... 中略 ... */ int list_of_record[i] = 0; /* ... 中略 ... */ const char* user_name = name; |
[記述すべきでない] 内部結合するグローバル変数の宣言や定義
内部結合するグローバル変数の適切な記述位置
1 |
static const char name[255] = "Alice"; |
内部結合するグローバル変数の不適切な記述位置
1 |
static const char name[255] = "Alice"; |
初期化を記述することでグローバル変数の宣言ではなく定義になります。複数の定義が存在するとリンクエラーが発生するため窮余の一策(不適切な回避策)としてstatic宣言をしています。結果として名前が重複するstaticグローバル変数が複数の翻訳単位に存在する特異な状況が生じます。
[記述すべきでない] モジュール外部に公開しない関数のプロトタイプ宣言
関数のプロトタイプ宣言は省略せずに必ず記述しましょう。プロトタイプ宣言の記述を省略しても、たまたまコンパイルが成功することはありますが、一旦コンパイルが成功しても、その後のコード修正でプロトタイプ宣言のないコードのコンパイルが失敗することがあるため、かならずソースファイルの先頭、もしくはヘッダファイルに関数のプロトタイプ宣言を記述しましょう。
関数プロトタイプ宣言は必ずどこかに記述する。しかし、モジュール外(xxx.cの外部、xxx.oの外部)からアクセスする必要のない static な関数のプロトタイプ宣言をヘッダファイルに記述してはいけません。 *.c ファイルの先頭に記述しましょう。
[vscode] Gitワークツリーの自動検出を無効にする
課題
ソース管理のウィンドウにチェックアウトされた複数のワークツリーが自動検出(自動表示)されて煩雑なばあいがある。
解決方法
git.detectWorktrees 設定を無効 (false) にする。
表示を更新する(ワークツリーを非表示にする)ためには、一旦 Visual Studio Code を終了して再起動する。
References
[git] リモートブランチのチェックアウト
1. フェッチする
1 |
$ git fetch |
2. チェックアウトする
2.1. リモートブランチ名と同名でローカルブランチをチェックアウトする
1 |
$ git checkout [リモートブランチ名] |
1 |
$ git checkout apple |
2.1. リモートブランチ名と異なるローカルブランチ名でチェックアウトする
1 |
$ git checkout -b [ローカルブランチ名] [リモートリポジトリ別名]/[リモートブランチ名] |
1 |
$ git checkout -b momiji origin/kaede |
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形式の高画質動画ファイル。
[vscode] タイトルバーなどのカラーカスタマイズ
ワークスペース毎にタイトルバー(ウィンドウ上段)やステータスバー(ウィンドウ下段)の色をカスタマイズする方法。