プログラミングのメモ

環境はLinuxなどすべてOSS。


    Bash

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

    Command

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

    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: プロジェクトのファイル
      • ワークスペース、プロジェクト・ルートの内容
      • アプリブートの流れとそのファイル
      • JavaScriptモジュールとNgModule
    4. Angular: AppRoutingModuleでルーティング
    5. RxJS: インストール
      • ObservablesとObserverの作成
      • subscribeとunsubscribe
    6. RxJS: オペレータでフィルタリングや加工
    7. RxJS: Subjectで複数のObserverにマルチキャスト
      • Subject、BehaviorSubject、ReplaySubject

    Security

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