理系学生日記

おまえはいつまで学生気分なのか

B::Deparse で One-Liner を理解する

久しぶりに会社で Perl の話をしました。何の話かというと B::Deparseです。 最近 Perl を使うのは One-Liner くらいなのですが、一般に One-Liner は可読性が犠牲になります。 一体この One-Liner は何をしているのか、というのを説明するときには B::Depar…

GitLab CI/CD から ECR への PUSH

GitLab CI/CD から ECR へ PUSH するところを作りました。つらみがあって大変に時間を溶かしました。 alpine ベースの Docker Image に AWS CLI v2 をインストールするのがつらい Docker のバグを引いてしまって GitLab CI/CD 上での DinD がうまく動かなか…

シェルスクリプトから direnv を利用する

ディレクトリごとに環境変数を切り替えたいというユースケースはよくありますが、それを実現してくれるのが direnv です。 ぼくもこの direnv を利用して、AWS アカウントごとのアクセスキーを切り替えたりしています。 direnv は通常、各シェルの cd の実行…

なぜリソース効率とフロー効率が両立できないのか

リソース効率は、ほとんどの業界で重視されているのではないでしょうか。雇っている人にはできるだけ仕事をさせるのは、wikipedia:機会費用 の考え方からしても当たり前ですよね。一人のエンジニアには一人月の仕事を割り振るというのも、ある種リソース効率…

Terraform 0.13 系にあげるときの `Failed to decode current backend config`

Terraform 0.12 系から重い腰をあげて 0.13 系にあげる作業を進めていましたが、いくつかエラーが発生したので、その対応の顛末について。 terraform の version constraint でエラーになる terraform init で Failed to decode current backend config エラ…

デスク周りの仕事環境を整える

新型コロナの影響で、基本的に仕事は家で行うことになりました。 これまで平日は家で過ごす時間が少なかったため自宅での PC 環境をかなり蔑ろにしていたのですが、もはやそんなことは言っていられない。 ようやく重い腰をあげて、自宅の PC 環境を整えるこ…

Bash で endsWith (文字列が特定の文字列が終わるかを確認する)

Bash において、変数が特定の文字列で終わるかを確認したいケースがあります。 これ Bash のみで実現が可能です。 [[ ${user_arn} == *Terraformer ]] Bash における [ と [[ シェルスクリプトで使用される [ がコマンドである事実はよく知られていますが、[…

THIS IS LEAN (1) リソース効率とフロー効率

最近"アジャイル"について人に教えることが要求されていて、人に教える以上はきちんと学ばないといけないということで、改めていくつかの内容を振り返っています。 その中で、どうしてもきちんとした理解をしておく必要がある、と思ったのが「リソース効率」…

set -u した状態で変数に値が定義されているか否かの分岐を表現する

一般にシェルスクリプトでは set -eu しておけということを言われます。 -e はコマンド実行でエラーが発生した場合にそこでスクリプトの実行を終了する。 -u は誤って未定義変数を使用しようとしたときにエラーとする、という振る舞いになります。 shebang …

プレゼンテーション用スライドを作るときに気をつけていること

最近は研修用の資料をチームでいろいろ作っています。 研修はある程度の部分をスライドで伝える形になるのですが、チームでどのようなスライドを作るのかを考えるにあたり、自分の「スライドを作り方」を言語化する必要がありました。 自分がどういうことに…