プレイヤーズ・ハイ

 雑多な日記

2018 年 3 月 20 日の小ネタ

brew update と upgrade の違い

  • brew update
    • brew update は、Homebrew そのものを最新版にし、Homebrew で管理している formula (パッケージ) も最新化する。
  • brew upgrade
    • brew upgrade は、Homebrew で管理している formula (パッケージ) を最新化する。
    • brew upgrade は、名前を指定して、特定の fomula (パッケージ) のみを最新化できる。

AWS Batch に必要な各種 IAM ロール

Compute environment の作成時に必要なもの。

以下の前提で話を進める。

コンピューティング環境のタイプ: マネージド型 プロビジョニングモデル: スポット

AWS Batch サービスロール

AWS Batch サービスロールとは、AWS Batch が、AWS Batch 内で、他の AWS サービスを使用するためのロール

  • IAM ロール名
    • ServiceRoleForAWSBatch
  • アクセス権限
    • 割り当てポリシー
      • AWSBatchServiceRole (AWS 管理ポリシー)
        • arn:aws:iam::aws:policy/service-role/AWSBatchServiceRole
  • 信頼関係

    • 信頼されたエンティティ
      • ID プロバイダー batch.amazonaws.com
  • 詳細

ECS インスタンスロール

AWS Batch の実行基盤は ECS インスタンス内の Docker コンテナーである。 ECS インスタンスの中には ECS コンテナーエージェントが起動しており、これが様々な AWS サービスを呼び出す。 ECS インスタンスにインスタンスプロファイルとして渡す権限が、ECS インスタンスロールである。

  • インスタンスプロファイル名
    • ECSInstanceRoleForAWSBatch
  • Role ARN
    • arn:aws:iam::XXXXXXXXXXXX:role/ECSInstanceRoleForAWSBatch
  • Instance Profile ARNs
    • arn:aws:iam::XXXXXXXXXXXX:instance-profile/ECSInstanceRoleForAWSBatch
  • アクセス権限
    • 割り当てポリシー
      • AmazonEC2ContainerServiceforEC2Role
        • arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role (AWS 管理ポリシー)
  • 信頼関係
    • 信頼されたエンティティ
      • ID プロバイダー ec2.amazonaws.com
  • 詳細

スポットフリートロール

AWS Batch のコンピュート環境を、Amazon EC2 スポットフリートインスタンスを使用するマネージド型にする場合、必要となる。

  • インスタンスプロファイル名
    • SpotFleetRoleForAWSBatch
  • Role ARN
    • arn:aws:iam::XXXXXXXXXXXX:role/SpotFleetRoleForAWSBatch
  • アクセス権限
    • 割り当てポリシー
      • AmazonEC2SpotFleetTaggingRole
        • arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
  • 信頼関係
    • 信頼されたエンティティ
      • ID プロバイダー spotfleet.amazonaws.com
  • 詳細

ジョブロール

  • ジョブロールは Job definition にて指定する。Compute environment に直接の関係はない。

Karabiner-Elements を使用し右コマンドキーを英数トグル用キーとして使う

Karabiner-Elements 単体で、タイトルの動きがようやく実現できたのでメモを残しておきます。

Complex_Modifications 機能の追加

Karabiner-Elements の Complex_Modifications 機能を使用します。

Complex_Modifications 用ディレクトリーを Finder で開いておきます。

$ open ~/.config/karabiner/assets/complex_modifications/

このディレクトリーに、以下の JSON ファイルを適当な名前で保存します。

{
  "title": "右 command key で「英数」と「かな」をトグル",
  "rules": [
    {
      "description": "右 command key で「英数」と「かな」をトグル。他のキーと同時押ししたときは通常の右 command key として働く",
      "manipulators": [
        {
            "conditions": [
              {
                "type": "input_source_unless",
                "input_sources": [
                  {
                    "language": "ja"
                  }
                ]
              }
          ],
          "type": "basic",
          "from": {
            "key_code": "right_command",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_command"
            }
          ],
          "to_if_alone": [
            {
              "key_code": "japanese_kana"
            }
          ]
        },
        {
            "conditions": [
              {
                "type": "input_source_if",
                "input_sources": [
                  {
                    "language": "ja"
                  }
                ]
              }
          ],
          "type": "basic",
          "from": {
            "key_code": "right_command",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_command"
            }
          ],
          "to_if_alone": [
            {
              "key_code": "japanese_eisuu"
            }
          ]
        }
      ]
    }
  ]
}

Complex_Modifications 機能の有効化

Kanabiner-Elements の Preferences を開きます。

Complex_Modifications タブをクリックし、Add rule をクリックします。

上記作業が問題なく完了していれば「右 command key で「英数」と「かな」をトグル」という項目が増えていますので、その右隣の Enable ボタンをクリックします。

以上で、

  • 右 command key を押下したときは、英数/かな のトグル
  • 右 command key を他のキーと同時に押下したときは、通常の右 command key の動き (command + A で全選択など)

という動きを実現できます。

以前、他のアプリケーションと組み合わせてこの動きを実現していたときは、英数かなの切り替えがモサっとしてて、ちょいちょいストレスが溜まりましたが、これで更に快適に使えそうです!

通勤

通勤

結論。通勤にはほとんど害毒しかない。

特に東京に住んでいると。

いつも通勤に使っているホームに、土日に訪れてみると分かるけど、まったく雰囲気が違う。 これから遊びに行く人たちばかりだから、明るくて、よいオーラに満ちている。 (あんまりオーラとかいう言い回しは好きではないが)

しかし、仕事に向かう人々のオーラは、大体疲れていたり、ストレスに満ちていたり、どうしようもない。 もちろん僕もそうなのだろう。

通勤は、乾いていて汚れている空気の中を歩き、ただ無数の人とすれ違い、いやなオーラを浴びるだけの、非生産的な、というか破壊的な行為なのだ。

唯一メリットがあるとすれば、満員電車ではなく確実に座れる場合は、一人の時間が確保できるというものがある。 このときに、読書したり、撮りためた映像を観るなどすれば、有意義な時間に変えられるだろう。

ただし、僕は、電車 -> 電車 -> バスと乗り継いで出勤するので、細切れに徒歩による移動が入り、ゆっくり読書などするのには向いていない。 なので音楽を聴きながら、運動になるように大股で、足の裏で地面を蹴って歩いている。 これはこれでよい。

しかし、会社勤めでいつも決まったオフィスに出勤する生活スタイルであれば、ほんと会社から徒歩 5 〜 10 分圏内に家を借りるのがベターなのかもしれない。その周りの各種施設の充実ぶりにもよりますが。

イライラの解消

イライラには必ず原因がある。

分析し、対策を練ったり、対応したりしなければ解消はされない。

原因が勝手にどっかに行ってしまい解消することもあるが、自力で解消できるスキルを身に付けるか、解消が実質的に不可能か、または非常に困難なケースであれば、イライラをスルーできるスキルを身に付けなければ、イライラの解消がアンコントローラブルになってしまいリスクとなる。

2018 年最初の小ネタ集

Python 仮想環境について

  • virtualenv で作成した Python 環境はアップグレードできない。作り直す必要がある。
  • venv で作成した Python 環境はアップグレードできる。
    • python -m venv <仮想環境へのパス> --upgrade

Python におけるモジュールとパッケージについて

  • モジュール
    • 単なる1枚ものの .py ファイル
  • パッケージ
    • あるディレクトリー配下に (複数の) Python モジュールがあり、__init__.py というファイルが必ず含まれている。

cron について

  • /etc/crontab (/etc/anacrontab)

    • hourly, daily, weekly, monthly に実行される処理が書かれている。
    • 以下の (定義済み) 変数が使用できる。
      • SHELL=/bin/bash
      • PATH=/sbin:/bin:/usr/sbin:/usr/bin
      • MAILTO="foo@example.com"
      • HOME=/
  • 各ユーザーごとの cron

    • crontab -e で編集
    • crontab -l で確認
    • 実体は /var/spool/cron/crontabs/<username>

CentOS の公式 AMI