ひつまぶし食べたい

メモ代わりのブログ

このブログをPelicanからHugoに載せ替えた

なぜ変更したか?

Pelicanは2014年から使っていたようで、そこまで文句があったわけではないが、やはり速度が気になっていた。それに加えて、どうしてもたまにバージョンアップして互換性が壊れたりして、たまに時間を取られていた。今回少し修正したいことがあったのだが、これを機に載せ替えるか、と載せ替えることにした。

載せ替え先の候補としては色々あったが、そこまで時間を使いたいわけではないので、利用者が多く、かつ、何かあったら自分がクイックに調べられる言語のものということで、Hugoを選択した。


マネジメント1年目振り返り on 2024-12

この文章はもともとはローカルで自分向けに書いていたもので、dumpしているだけのもの。 そのうちマネージャー業務のtopicごとに、自分なりにやっていることや、考えていることを書き起こしたい。


CloudFormation Stackを安全に削除する

以前、CloudFormation の不満点 というのを書いたが、諦めて大半のCfnをterraformに移行した。 その際、cfn リソースをきれいにするために、cfn stackを安全に削除する必要があり、その方法をメモしておく。


1Password CLIを使ってTOTPを取得する

2要素認証を必須にしたAWSのswitch roleで、temporary credentialsをCLIで取得したかった。 TOTPの数字を毎回調べるのが面倒で、簡単にできないか調べたところ、1Password CLIというのがあった。1Passwordユーザなので、これを利用する。 ただし、当然のことだが、2要素認証のデバイスとして、1Passwordが利用されている状況とする。


Python でコメント付きYAMLを扱う時には ruamel.yaml が便利だった

資料

背景

とある yamlで書かれたconfigファイル群(数百ファイル)を一括で変更したいことがあった。 sedで変更するには少し難しかったので、パースしてから条件判定して、書き換えたい。


CloudFormation の不満点

以下では「手作業で」というのは、「CloudFormation管理外で」という意味で使う。

要点

  • CloudFormation は、リソースが何かの理由で手作業で変更されていた場合に安全に操作できない
  • Drift 検出は誤検出が多すぎて使いづらい
  • Change Set は動いている状態との差分を見ていないので、信用できない

経緯

CloudFormation で管理されているリソースすべてについて、新しいタグをつけたくなった。 ただ、各サービスの担当者ごとにある程度自由にオペレーションできるため、手動で変更されていないか、一応調べておこうと思い、 2018-11 にリリースされたドリフト検出 を使って、 手作業で実施された変更点もCloudFormationに取り込みつつ、対応しようとした。


DebianでLuaJITTeXを使いたい

そろそろLuaTex使ってみたいなと思ったところ、LuaJITTeXの方が早い場合があるということで、試してみようと思った。

参考

未解決の問題

  • /var/lib/texmf/fmtutil.cnf-TEXLIVEDIST が自動生成されている、とコメントされているが、元ファイルがわからない
### This file was automatically generated by update-fmtutil.
#
# Any local change will be overwritten. Please see the documentation
# of updmap on how to override things from here.
#
###

準備

パッケージインストール


Debian でログインシェルをzshにしている人が snappy を使う場合の注意

Snappy について

Canonical が主導しているパッケージシステムで、Universal Linux Package と銘打つように、ポータブルなパッケージングができそうな感じ。 ポータビリティを上げるために、dockerみたいな感じで、依存ライブラリも全部パッケージに含めてしまうスタイルなので、多少debパッケージよりは大きくなる。 その分、sidを使っているとよく起きる、共通ライブラリの依存バージョンの不整合がおきる、という問題は起きない。


PyPIへパッケージをアップロードする

資料

手順

PyPIへユーザー登録する

PyPI には普段使われている本番環境とは別に、テスト環境がある。 アカウントがそれぞれ独立しているので、両方で作成する必要がある。


Google Cloud Pub/Sub をGolangから使おうとしてハマったことまとめ

概要

Google Pub/SubGoのSDK から使おうとしていました。 やっているといくつか詰まったので、メモしておきます。

  1. サービスアカウントを利用するためにCredentials JSONを指定する
  2. サブスクリプションの Pub/Sub サブスクライバー権限 を与えても Permission Denied になる

サービスアカウントを利用するためにCredentials JSONを指定する

権限の都合上、サービスアカウントのCredentials JSONを利用して認証したい、という要件がありました。 ドキュメントを見ていると、 ADC(Application Default Credentials) を利用して認証している場合が多いです。 これを使う場合、 GOOGLE_APPLICATION_CREDENTIALS という環境変数が設定されていれば、そのファイルを読んでくれるのですが、今回の要件では複数の Credentials を利用したかったので、Go プログラム中で指定する必要がありました。