Websocket とグラフィックライブラリ

node.js は普通の socket通信よりも websocket で通信するものらしい。

一方、C++でwebsocket通信をするならば Boost::Beast が良さげ。

websocketなexsampleがいくつか用意されているのがありがたい。

ただ、マルチプラットフォームなだけに、cmake なプロジェクトであり、

ビルドに苦労する。

階層的にCMakefile が配置され、部分的にビルドする場合の変数の受け渡し方法がわからない。ライブラリぱすとか。

グラフィックライブラリ

SDL2

Qt

skia

 

 

 

 

Mangaro と MX Linux

ふと思い立って、 Ubuntu なPCに VirtualBox をインストールした。

今どき流行りの Linux ディストリビューションを調べて、 Mangaro と MX をダウンロードした。

とりあえず、Mangaro をインストールした。

Docker や Kubernetes の勉強を始めたが、理解を深めるにはまずモノリシックなアプリケーションを作り、それをコンテナに分ける、というのが良いのではないかと思った。

なので。仮想マシン上に典型的なWebアプリケーションをモノリシックに作ろう、と思い立って VirtualBox と Manjaro をインストールしたのだった。

 

典型的なWebアプリケーションとしては

  • nginx
  • node.js
  • mongoDB

を想定する。 Express を使うと nginx って不要かもしれない。

【C++】関数スコープ静的変数の初期化のタイミング

いや〜奥が深い。

 

コンストラクタなしだと、main()より前に初期化される。

https://wandbox.org/permlink/oTDnnjBwE2cs0OYJ

しかし、コンストラクタを書くと、0で初期化されている。
関数を呼び出したあと、初期値で初期化されている。

https://wandbox.org/permlink/7VNXUFiQ5iRKATjc

上記は gcc での実験結果。

clang ではどうなるか、試してみた。

まず、コンストラクタなし。mainより前に初期化。

https://wandbox.org/permlink/9nkMD1iNGQjX2xMx

次にコンストラクタあり。やはり、mainより前は 0 クリアされており、
foo()で初期値で初期化されている。

https://wandbox.org/permlink/hWzk7sS2DIyG9iK9

static X x = {0xcafe, 0xbabe};

static X x{0xcafe, 0xbabe};

の結果は同じだった。(あたりまえ) 

https://wandbox.org/permlink/uQsN8hAOvpmAjyR9

 

もしかしたらコンストラクタ初期化子の部分だけはmain()関数より前に初期化されたりしないか?と思って試した。

https://wandbox.org/permlink/siR1Wp6Txc0n8z2M

new だとダメだった。

コンパイル時にアドレスが決まっている場合で試してみた。

https://wandbox.org/permlink/AreXSt1Xn9v2bRMj

やはり、初期化子リストは foo()まで実行されなかった。

Infrastructure as Code

Cloud nativeな今時は terraform が良いらしい。

www.terraform.io

5分で分かるTerraform(Infrastructure as Code) | セキュリティ対策のラック

10分で理解するTerraform - Qiita

Terraform職人再入門2020 - Qiita

AWSでTerraformに入門 | Developers.IO

 

全体像を掴むのに次の表がありがたかった。

f:id:kzono:20201225005907p:plain

IaaS構築自動化のためのツール一覧

 

 

Ansibleを使いこなす ❶ 基本の知識 - アイマガジン|i Magazine|IS magazine

www.imagazine.co.jp

Ansibleを使いこなす ❸ オンプレ環境のインフラ構築を自動化する - アイマガジン|i Magazine|IS magazine

 

IaC では設定ファイルにシークレットを書くことが躊躇われるが、シークレット管理サービスを利用すれば良いことがわかった。

External Secretsを試してみる - TECHSTEP

EKSでの機密情報の隠蔽にkubernetes-external-secretsを導入してみた - asoview! TECH BLOG

悩みに悩んだ Kubernetes Secrets の管理方法、External Secrets を選んだ理由 | PLAID engineer blog

 

 

 

【Memo】reStructuredText の Tips

表示の折りたたみ

HTMLに変換したとき、階層化した項目の内容を表示・非表示の切り替えをできるようにしたい。

SphinxをCSSとJavaScript(jQuery)で拡張する — Algo13 2016.12.17 ドキュメント

折り畳み(表示/非表示) — Algo13 2016.12.17 ドキュメント

目次の番号

サイドバーのアウトライン(目次)に番号をつけたい。

sphinx-users.jp

tk0miya.hatenablog.com

TOC Tree — Sphinxでウェブサイトを作ろう 0 ドキュメント

残念ながら numbered はHTML専用らしい。 PDF には反映されない。

reStructuredText のウェブサービス

blog.goediy.com

readthedocs.org

 

【Memo】reStructuredText の Tips

表示の折りたたみ

HTMLに変換したとき、階層化した項目の内容を表示・非表示の切り替えをできるようにしたい。

SphinxをCSSとJavaScript(jQuery)で拡張する — Algo13 2016.12.17 ドキュメント

折り畳み(表示/非表示) — Algo13 2016.12.17 ドキュメント

目次の番号

サイドバーのアウトライン(目次)に番号をつけたい。

sphinx-users.jp

tk0miya.hatenablog.com

TOC Tree — Sphinxでウェブサイトを作ろう 0 ドキュメント

残念ながら numbered はHTML専用らしい。 PDF には反映されない。