寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

Make でコマンド実行した結果を変数として使いたい

具体的には gcloud auth print-access-token の出力をMakeの実行に利用したかっただけなのですが、
書きっぷりに若干の癖があるのでメモ。

記述方法

hoge:
  $(eval TOKEN=$(shell gcloud auth print-access-token))
  hogecommand ~~~ --token="$(TOKEN)"

こんな感じ。

GCP のメタサーバから Project ID を取得する(Cloud Runでも)

GCPでアプリケーションを動かす場合、Project ID のパラメータをプログラム内から利用したい場合があります。

環境変数で渡す、というのも方法として悪くないと思いますが、
GCP環境で動いている場合にはメタサーバからProject IDを取得することができます。

今回はGoを用いてメタサーバから取得する方法をメモしておきます。

コード

import "cloud.google.com/go/compute/metadata"

~~ snip ~~

c := metadata.NewClient(&http.Client{})
pid, err := c.ProjectID()

~~ snip ~~

上記のような比較的簡単なコードでプロジェクトIDを取得することができます。

注意点

上記のコードは、GCP上のメタサーバへ接続する処理が内部で行われているため、
ローカルや、何かCI環境上で取得処理を実行する場合、接続先に到達できずtimeoutが発生します。
timeoutが発生すること自体は問題がないように思えるかもしれませんが、しばらくプログラムが止まっている状態になるので、
テストなどで呼ばれると非常に困ると思いますので、呼び出す部分でGCP上で実行されているか否かの判定処理などは必要になりますのでご注意を。

その他の関数

metadataの実装をサラッとみる限り以下のようなものが実装されています。

ProjectID
NumericProjectID
InstanceID
InternalIP
ExternalIP
Hostname
InstanceTags
InstanceName
Zone
InstanceAttributes
ProjectAttributes
InstanceAttributeValue
ProjectAttributeValue
Scopes
Subscribe

適当に抽出してこのような感じです。

参考

github.com

ではでは。

Cloud Run 上でデフォルトで設定されている環境変数

Cloud Run (go) 上で設定されている環境変数、たびたび何が設定されていたっけ?と調べることが数回あったので、
忘れないようにメモしておくことにした。

設定されている環境変数

goの os.Environ を叩いて取得できるものは以下。
コンテナは gcloud run deploy ~~ --source を利用しているので buildpack で作成されたものだと思う。

PATH=/layers/google.go.build/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOME=/home/cnb
CNB_USER_ID=1000
K_REVISION=go-log-00015-rog
PORT=8080
CNB_STACK_ID=google
CNB_GROUP_ID=1000
K_SERVICE=go-log
PWD=/workspace
K_CONFIGURATION=go-log
DEBIAN_FRONTEND=noninteractive

また同じことを検索する未来の自分のために...

ではでは。

Shokz OpenRun Pro を買ったが、ミーティング中に勝手にミュートされてしまう問題の対応

タイトルの通りですが、Shokz の OpenRun Pro (以下OpenRunと書きます)を買って、ミーティングに利用しようとしていたのですが、

  • MS Teams
  • Slack Huddle
  • Zoom

あたりでミーティングをしていると、OpenRun が勝手に「ミュートしました」と強制的に何度もミュートし、困ったので対応方法のメモを残します。

サポートに問い合わせ

自分「とにかくミュートされて困っている、なんとかなりませんか(要約)」
サポート「マイクの自動音量調整が問題かもしれないので、OFFにして試してみて」

なるほど、どうやら、OpenRun にはマイクの入力ボリュームが小さくなった時にミュートしてくれる "便利?" 機能があるようだ。
それがマイク音量を下げたと認識して自動的にミュートするという振る舞いになっているみたい。

対応

  • Slack : 設定 ⌘ + , → Audio & Video → Enable automatic gain control のチェックを外す

  • Zoom : 設定 ⌘ + , → オーディオ → マイク音量を自動調整します のチェックを外す

  • Teams : 多分それっぽいのがあるはず(いまTeamsをインストールした端末が手元にないので手抜き)

結果

1週間ほど上記の設定を適用して試してみていますが、今のところミュート問題は発生していないので、おそらくこの設定で解消される模様。
可能であれば Shokz 側の設定で、マイク音量が小さくなってもミュートしないという設定ができるようにしてほしいですね。
(おそらくミーティングしている最中の雑音とかも拾いやすくなってるのではないかと思うため。)

追記 2022/07/28

上記の通り、設定でマイクのゲインコントロールを無効にできるツールは良いのですが、
Google Meet, Spacial Chat(web), Tandem(web) などではゲインの調整ができないようだ。

困っていたところ、同僚が Disable Automatic Gain Control というツールを教えてくれて、
昨日1日使ってみた感じ良いかもしれない予感があるので追記した。

chrome.google.com

ではでは。

セキュリティエンジニアのための English Reading など資料メモ

エンジニアなら英語必要ですね。
独⽴⾏政法⼈ 情報処理推進機構 産業サイバーセキュリティセンター第5期中核⼈材育成プログラム「セキュリティエンジニアのための English Reading」プロジェクト
というもので、資料が公開されていたのでメモとして。

資料

セキュリティ英単語集 :

https://www.ipa.go.jp/files/000099578.pdf

セキュリティエンジニアのためのEnglish Reading

https://www.ipa.go.jp/files/000099580.pdf

Macを買ったときにやることメモ

最近ちょこちょこMacを新しく買うことがあり、何度も同じインストール手順を行なっているような気がしたので、メモを残します。
(作業中なので追々追記するかも)

適用する設定

caps lock キーを Control キーに置き換える

標準の Control キーの位置だと押すのがちょっと疲れるので、caps lock キーを Control キーに置き換える。既存の Control キーはそのまま。

設定 → キーボード → 修飾キー → Caps Lock を Control に変更

マウス/キーボード周りの設定

  • スクロールの方向 : ナチュラル のチェックボックスを外す。
  • キーのリピート、リピート入力認識までの時間、をそれぞれ最大に(いちばん右)

他のマックとのファイル共有(同期)

  • デスクトップフォルダと書類フォルダの同期をON。(iCloud Driveの設定)

スクリーンショットディレクトリの変更

スクリーンショットディレクトリを標準のものから、書類/screenshots に移動する。
こうすることで複数のMac間でスクリーンショットを共有することができる。

shift + command + 5 → 保存先 → その他の場所 → ディレクトリ選択

ホットコーナーの設定

OS 9 から OS X に移行したぐらいの太古の昔からこの設定で利用しているのでこれになっていないと生産性が上がらない。

スペースの並べ替えをさせない

デフォルトだとスペース(仮想デスクトップ)がよく使う順に整列されてしまうので、それを無効化する。(いつも同じ場所に同じものがあるのが良い)

設定 → Mission Control → 最新の使用状況に基づいて操作スペースを自動的に並べ替える。

ホスト名を変更(パソコンの名前を変更)

これを変更しておかないと、ネットワーク越しに接続する際にどのPCなのかわからなくなるので変更しておくのが吉。

設定 → 共有 → 最上段の 「コンピュータ名」を変更する

ことえりの自動変換のオフ

ことえりが自動で変換する機能、便利に使えるという人もいるみたいだが、自分の場合、正しく入力したと思った値が後から勝手に書き変わるような挙動をするのが気持ち悪いので無効化する。

設定 → キーボード → 日本語 - ローマ字入力

の2つのチェックボックスを外し無効化する。

また、

は有効にしている方が個人的に使いやすいので有効化しておく。

ことえりの文字変換時の候補のフォントと表示サイズの変更

変換する際の候補文字、大きくてゴシックの方が見やすいので変更する。

ことえりの入力時に数字が全角入力がデフォルトになっているのを半角に

これもエンジニアなら全角数字を打つ機会がむしろないと思うので無効化しておく.

  • 数字を全角入力

のチェックを外す.

画面の一部をズームできる機能(アクセシビリティ)を有効化する

画面上の小さい文字や、何か図を詳しく見たい場合、画面を部分的にズーム(拡大)する機能がおっさんになってくると非常に嬉しいので有効化する。

設定 → アクセシビリティ → ズーム機能 → 「スクロールジェスチャと修飾キーを使ってズーム」を有効化する.

この設定を有効化すると、 Control (設定で変更可能)とマウスホイールの操作でカーソルが当たっている画面の部分を拡大することができる。便利。

コマンドエイリアスの設定

alias ll='ls -l' を設定する

F1, F2 などのキーをファンクションキーとして利用する

F11, F12 で音量の上げ下げができるのは便利だが、IDEなどを利用する際にファンクションキーを利用できた方が便利なので、
通常時はファンクションキーとして利用できるように設定する。

設定 → キーボード → F1, F2などのキーを標準のファンクションキーとして使用

のチェックを入れる。

Ctrl + Space を無効化する(OSの入力ソース切り替え)

設定 → キーボード → ショートカット → 入力ソース → 「前の入力ソースを選択」、「入力メニューの次のソースを選択」

両方チェックボックスをOFFにする。

スペース2連打するとピリオドが入るのを止める

Markdown などを書いているとスペース2回連続で打つことが多いと思いますが、
ことえりの標準(?)だと二連打した際にピリオドを入れる制御になっているようなのでこれを解除します。

設定 → キーボード → ユーザ辞書 → スペースバーを2回押してピリオドを入力 のチェックを外す


インストールするツール

  • Chrome : ブラウザ、これがないととりあえず始まらない。
  • Alfread : ランチャー、アプリケーションの起動を基本的にはあいこんクリックから行わず、アプリ名から起動するのでこれを利用する。
  • BetterSnapTool : ウィンドウを複数開いて、画面の左右分割などを行うために利用する。
  • Slack : チャットツール、これがないと仕事にならんので。
  • home brew : これがないと始まらない。 インストール方法はこちら
  • alttab : アプリケーションをwindowsのalt-tabよろしく切り替えるツール (brewが入っていれば brew install --cask alt-tab で終了)
  • VS Code : テキストエディタ
  • IntelliJ : テキストエディタIDE
  • Sourcetree : gitをGUIで利用するツール
  • Spark – Email App by Readdle : いい感じのメールクライアント

  • Stream deck : Stream Deckを利用するためのツール

  • G Hub : ウェブカメラ用のツール

参考サイト

chidakiyo.hatenablog.com

alt-tab-macos.netlify.app

VSCodeをVimキーバインドで使いたい(VSCodeVim版)

Macが新しくなり、VSCodeも新たに入れ直したのでVimの設定がされていない、、、
これでは生産性が全く上がらない、、ということでVim設定します。

Neo Vimと連携するものも最近はあるようですが、以前から使ってるコチラを設定した。

インストール

shift + command + X を押し、メニューを表示。
テキストボックスに vim と入力し、 Vimをインストールする。

設定など

インストールが完了すると既にVimとしての最低限の動作行える状態になっている。

カスタマイズは setting.json に記述する必要があり、
Command + , で設定を開き、直接jsonを変更することで設定が可能になるようだ。
今回の記事で現状は詳しく書きません。(気が向いたら or リクエストがあれば追記する可能性はありそう)

ではでは。