プログラミングのメモ

環境はLinuxなどすべてOSS。


    Bash

    1. Bash xtraceオプション: コマンド展開のデバッグ
      • `bash -x`, `set -x`

    Command

    1. psコマンド: プロセスの状況

    File

    1. JSON: 概要
      • JavaScriptと違う部分
      • `JSON.parse()`、`JSON.stringify()`

    Linux

    1. docker-compose: YAMLで定義のサービス(複数コンテナ)を起動
      • docker-composeのインストール
    2. Docker Swarm: 複数ホストでDockerコンテナのオーケストレーション
      • オーバレイネットワーク、ファイアウォール
      • Swarm初期化・参加
    3. Docker Swarm: サービス稼働
      • サービスのスケーリング
      • ルーティング・メッシュ、ロードバランシング
    4. Docker: 独自のレジストリ(HTTP)を配備
      • HTTP APIを使う
    5. Docker: HTTPSによるレジストリを配備
      • レジストリの設定YAML
      • パスワードによるアクセス制限
    6. KVM: 仮想マシンをインストール、管理
      • `virt-install`, `virsh`
      • ネットワーク設定: NATモード
      • キックスタート(CentOS)
    7. KVM: ゲストをホストと同一ネットワークにする
      • ネットワーク・ブリッジ作成
      • ファイアウォール
    8. ロケール: 言語、地域の設定
      • 日本語ロケールja_JP.UTF-8の設定
      • localedefで追加
    9. systemd: Linuxシステム起動・管理
      • ユニットファイル、targetとserviceユニット
      • [Unit]セクション、ユニットの依存・順序関係
      • [Install]セクションにより`systemctl enable`を使う
    10. systemd: timerユニットで起動日時制御
      • 単純なタイマー、カレンダー型タイマー
      • `systemd-run`
    11. タイムゾーン: 標準時の設定
      • /etc/localtime、環境変数TZ

    Network

    1. curlコマンド
      • HTTPヘッダ表示、HTTPメソッド
      • パーセントエンコード
    2. Locust: サーバ負荷テスト
      • 負荷テストのシナリオをPythonでコーディング
      • テストをブラウザでモニタリング
    3. ncatコマンド: ネットワーク調査
      • TCP/UDPで読み書き
    4. nginx: Webサーバ(Dockerイメージ)
      • nginx.conf: ディレクティブ
      • http, server, locationコンテキスト
    5. nginx: ラウンドロビンやIPハッシュによるロードバランシング
      • HTTPヘッダ調整: 転送先でクライアントIPを得る

    Programming

    1. Angular概要: インストール
      • Hello Worldアプリを動かす
      • コンポーネントクラス・テンプレート・スタイルの連携
      • 本番用ビルド
    2. Angular: ワークスペースとプロジェクトの構成
      • `ng new`、`ng generate application`
      • 同時作成、プロジェクト追加、後からライブラリを`npm install`
      • angular.json
    3. Angular: NgModule概要
      • `@NgModule`デコレータ
      • ルートモジュール、標準ライブラリ、フィーチャーモジュール
      • `ng generate module`コマンド
    4. Angular: プロジェクトのファイル
      • ワークスペース、プロジェクト・ルートの内容
      • アプリブートの流れとそのファイル
    5. Angular: AppRoutingModuleでルーティング
    6. MongoDB: Node.jsからアクセス
      • ドライバインストール
      • コレクション、ドキュメントCRUD操作
    7. MongoDB: サーバ概要
      • インストール、サーバ起動
      • TARファイル、Dockerの場合
    8. MongoDB: mongoシェル
      • コレクション、ドキュメントCRUD操作
      • Dockerコンテナでmongoシェル
    9. RxJS: インストール
      • ObservablesとObserverの作成
      • subscribeとunsubscribe
    10. RxJS: オペレータでフィルタリングや加工
    11. RxJS: Subjectで複数のObserverにマルチキャスト
      • Subject、BehaviorSubject、ReplaySubject

    Security

    1. /dev/random, /dev/urandom: カーネル乱数ソースデバイス
      • エントロピー・プールから乱数を読み出すときのインターフェース
    2. firewalld: firewall-cmdコマンド
      • ファイアウォール管理ツール
      • ゾーン、サービス、ポート
    3. firewall-cmd: インターフェースとソース
      • ホワイトリスト
    4. JSON Web Token: 認証に使える
    5. openssl: 概要、主なサブコマンド
      • 乱数、ハッシュ関数、共通鍵暗号、公開鍵暗号
    6. openssl encコマンド: 共通鍵暗号による暗号化と復号
      • ブロック暗号とストリーム暗号
      • ソルト、パディング、利用モード
    7. openssl genpkeyコマンド: 公開鍵暗号の鍵ペア作成
      • `openssl pkey`: 鍵の変換
    8. openssl: ハッシュ関数
      • `openssl dgst`、`openssl passwd`コマンド
      • HMAC
    9. openssl x509コマンド: 公開鍵証明書の閲覧
      • 認証局、証明書署名要求
      • X.509とDER、PEM
      • X.509バージョン3の拡張情報
    10. openssl: ディフィー・ヘルマン鍵共有
    11. openssl reqコマンド: 証明書署名要求の作成
      • 自己署名証明書の作成
      • ルート証明書(認証局)の作成
    12. openssl: 電子署名と検証
      • `openssl dgst`、 `openssl pkeyutl`コマンド
    13. openssl x509コマンド: 証明書署名要求に署名(公開鍵証明書作成)
      • 拡張情報を追加