keyword 備忘録
- この MarkDown は system,os における用語をまとめるための備忘録である。
炎上時の増員について🔥
炎上時の増員は要員を増やすことによるメリットもあるが、デメリットもあることに注意がいる 以下のデメリットがあることに注意しよう
- コミュニケーションのチャネルが増える
- 仕事のレベルのバラツキが増える
- プロジェクトの新規参画者が理解してパフォーマンスを発揮するのに時間がかかる。
clz
count leading zero の略(先頭何ビットが 0 かというやつ)
マングリング
C++では関数の多重定義などに対応するため関数のシンボル名に引数の型などの情報が付与される。
名前空間や多重定義などで同じ名前の関数が複数定義可能であり
コンパイラは適切な関数へのリンクを行うためにそれらを区別できる情報を付与します。
関数の名前や型をシンボルに埋め込むことをマングリングと言うそうです。
pdb
- 端的に言うと linux のコンソールで使えるpythonの debuger
-
ただし、DBにおけるPDBは
プラガブルDB
という意味合いもある
(コンテナ型のDBみたいな。。) - pdb
python は pdb モジュールを利用することで以下のようなデバッグ機能を利用することができます。
1. ステップ実行
2. ブレークポイントの設定
コールチン
サブルーチン
がエントリーからリターンまでを一つの処理単位とするのに対し、
コルーチン
はいったん処理を中断した後、続きから処理を再開できる。
接頭辞 co は協調を意味するが、複数のコルーチンが中断・継続により協調動作を行うことによる。
ガベージコレクション(GC)
C#などでメモリリークが起こらないよう自動でリソースの解放が行われる仕組み
やっていることは知っているけど名前が出てこないので、メモっとく
ダイクストラ
単一始点最短経路アルゴリズム
動的計画法
関数の再起呼び出しなどを行う際に、実行済みの結果を保存しておき、 再度呼び出した際に繰り返し処理を実行させないための仕組み
WebSocketとWebRTCの違いについて
-
WebSocket
TCP接続に双方向通信のチャンネルを提供するための通信プロトコル。
接続においてはサーバーを経由する
ため、WebRTCと比較すると通信効率は劣る。 -
WebRTC
ブラウザ間
でのリアルタイムメディアコミュニケーションを可能にするための規格。複数のブラウザをダイレクト
に接続する「Peer to Peer」型。
(通信方式はP2P・MCU・SFUがある。)
通信 | ユースケース |
---|---|
WebSocket | チャットなど |
WebRTC | オンライン会議など |
WebRTC通信方式 | 特徴 |
---|---|
P2P | 一般的なWebRTCの通信方式。通信量が大きくなり過ぎるため多人数の同時通信には向いていない。 |
👇 | 👇通信経路爆発問題に対するソリューション |
MCU | ユーザから受け取ったメディアデータをサーバーにて合成してユーザに返す方式。データの通信量は少ないもの、遅滞が大きい。 |
SFU | ユーザから受け取ったメディアデータを他の通信先にサーバーかた経由する方式。遅滞は少ないものの通信量は多くなる |
ライブ動画配信/リアルタイム動画配信について
一般的にライブ動画配信
というのは、あるところで撮影している動画を、最大数分程度の時差=遅延で視聴者に見せる
ようなもののことをいうようです。
リアルタイム動画配信
というのは、zoomなどのようにインタラクションを行うためにほぼ同時のタイミングで視聴者に動画を配信するようなもののことです。
双方向にコミュニケーションするためには、遅延は数秒以内にチューニングされている必要があります。
一般的にはHLS ≒ MPED-DASH > RTMP > WebRTC
の順に遅延が少ない
- RTMP(Real-Time Message Protocol)
以下が使用されるポートである。
- デフォルト: TCP: 1935番ポート
- HTTPを介してTCP: 80番ポート
RTMP Tunneled(RPMPT)
- HTTPSを介してTCP: 443番ポート
RTMP over SSL/TLS(RTMPS)
Adobe が開発している、Adobe Flash プレーヤーとサーバーの間で、音声・動画・データをやりとりするストリーミングのプロトコル。flashベースのため、2020年末にサポートが終了している。
MFC(Microsoft Foundation Class) C++ 関連
シンプルなデスクトップ アプリケーションの作成にも使用できますが、複数のコントロールを使用する複雑なユーザー インターフェイスを開発する必要がある場合に最も役立ちます。 MFC を使用すると、Office スタイルのユーザー インターフェイスを持つアプリケーションを作成できます。
- MicroSoft 公式リンク
- MicroSoft mfc samples
- 以下サンプルになりそうなリンクを貼ってく
WebSocketについて
いままでのWebアプリではAjaxやGET/POSTなどのクライアント側(curlやブラウザ) を起点に接続してデータのやり取りをしていた。 しかし、この方法では一回の通信毎に接続処理が発生してしまうため リソースの負荷が高かった。
そこでWebSocket
で接続をキープし、サーバ側/クライアント側の両方を起点
とした双方向通信を実現されている。
node.js,C#,Pythonなどでライブラリが存在する。
三項演算子
- 🚨3項演算子は可読性を考えて使うこと
condition(bool) | 戻り値 | 備考 |
---|---|---|
true | consequent | |
false | alternative |
言語毎の三項演算子書き方をまとめる
// 🌟C++/C#/JavaScript/
condition ? consequent : alternative
# python
consequent if condition else alternative