理系学生日記

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

GitLab CI/CD で textlint を実行する

きちんとしたガイドを書く、そしてそのガイドを多人数で変更するというケースでは、文章の揺れ等をで きるだけ防ぎたい。 このため、GitLab CI/CD で textlint を導入したい。 textlint 用 Docker Image の作成 フィルタ ルール Docker Image の build、push…

markdown を lint する

様々なドキュメントが Markdown で表現される今日このごろです。 多数の人が関わりつつドキュメントを成長させるのであれば、 Markdown ドキュメントについてもフォーマットを統一させたいものですね。 Markdown についても当然のように linter があるので、…

module に対する terraform validate が "The argument "region" is required, but was not set." エラーで失敗する

GitLab CI/CD を使い、自作の AWS 用 terraform モジュールに対して terraform validate をかけようとすると、以下のエラーメッセージが出て失敗しました。 Error: Missing required argument The argument "region" is required, but was not set. 原因 対…

GitLab CI/CD で terraform ファイルに tflint をかける

Terraform のスクリプトにも lint を自動で実行できるようにします。 lint ツール TFlint 設定の渡し方 GitLab CI/CD への組み込み 今後 lint ツール Terraform には terraform validate コマンドがあり、設定上のかなりの問題を検知してくれます。 一方で t…

AWS におけるマルチアカウント構成の動向

aws

AWS で環境を構築する際はマルチアカウントになることが多い、これは理解していたつもりでした。 stg 環境と prod 環境は AWS アカウントごと分ける。dev 環境も分ける。 しかし、世の中のベストプラクティスはもっと先を行っていました。 なぜアカウントを…

AWS Organizations を使って AWS アカウントを自動で作成する

AWS においてはマルチアカウント戦略が重要とされています。 たとえば、開発環境/ステージング環境/本番環境といった各環境は、セキュリティ、ガバナンス面で分離すべきです。 メンバーの権限管理がすっきりする 特定の環境の作業が他環境に影響しない この…

Terraform の S3 backend の構築と locking (排他制御) の有効化

前提 その前に state とは何か state の S3 管理 backend となる S3 を Terraform 管理のインフラと一緒に管理して良いのか backend の構築 backend の適用 (locking なし) backend の適用 (locking あり) 前提 Terraform によってインフラをチームで管理し…

Terraform の型と面白そうな Tips

Terraform の型 Primitive Types Complex Types Collection Types Structural Types null 興味深い機能 map の key に参照が使える パスの参照 Python の内包表記的な for splat expression String Template: if 文/for 文 Terraform の型 全部で 7 種類あり…

「実践Terraform AWSにおけるシステム設計とベストプラクティス」を読んだ

ぼくは新しい技術を学ぶときは、たいてい以下の戦略を取ります。 公式ドキュメントを読む 当該技術に対する書籍を読む 仕様があれば、その仕様 (RFC 等)に目を通す。ただし心が折れない程度に。 目的は以下 2 つの要素の獲得です。 体系だった技術知識の獲得…

Terraform + AWS ことはじめ

Terraform については 2 年前に触ってから完全に放置してしまいました。 いろいろあって、まずは AWS 上で色々構築していくことになるので、今日から頑張っていきたいです…。 aws-cli terraform とにかくローカル PC に aws-cli、terraform を入れたくない。…

「GitLab 実践ガイド」を読んだ

GitLab 実践ガイドを読みました。 GitLab実践ガイド impress top gearシリーズ作者:北山 晋吾発売日: 2018/02/01メディア: Kindle版 全体を通して プロダクトの長所 オールインワン CI/CD SaaS でもオンプレでも 最後に 全体を通して GitLab はこれまで使っ…

「AWS IAM のマニアックな話」を呼んだ

AWS 初心者なんですが、今後 AWS とガチで向き合う必要が出てきました。 AWS といえば、まず押さえるべきは IAM でしょうということで、「AWS IAM のマニアックな話」を読みました。 全体的な感想 IAM の運用 踏み台アカウントという概念 今後 全体的な感想 …

curl で telnet を代替する

TCP レベルの疎通確認のときにはよく telnet を使っていたのですが、最近いろいろな OS で telnet が入っていません。 こういうときに、実は curl で telnet を代替できます。 telnet をプロトコルとして指定するだけです。 以下の例では、google に 80 番ポ…

jq を使って CSV を出力する

jq

Qiita は API を提供しており、そこで抽出できるデータを Excel 化したかった。 これは jq の @csv を使うと容易に実現できます。 たとえば、ぼくの 9 月から今までの投稿のうち、興味がある部分を JSON Array として引き抜いたとします。 $ curl -sH "Autho…

なぜ仮想プレスリリースを書くのか、何を書くのか

新しいことを始めようとしていて、仮想プレスリリースを書くことを求められています。なにぶん初めての経験ではあるので、なぜ仮想プレスリリースが必要なのか、今後の自分のためにきちんと明文化しておきます。 仮想プレスリリースを書く目的 仮想プレスリ…

vscode 上での Ricty のバッククォート文字の表示がおかしい

vscode 上で Ricty のバッククォート(backtick)文字がおかしい vscode で Ritcy フォントを指定してバッククォートを入力すると、以下のように後ろの文字が重なってしまうという問題があります。 例えば、以下の文字列を入力します。 `hoge` `fuga` vscode …

DevOps はじめました

業務で DevOps を本格的にしかけていくことになりました。 こういったことに手を付けるには、どれだけ自分の中にその概念を腹落ちさせるのかが重要だと思っています。 DevOps とは何か 各種資料・文献での定義 DevOps とは何でないのか DevOps は何で評価さ…

はてな Blog 用リポジトリを Public 化しました

本 Blog は GitHub 上で管理していたのですが、Public Repository に変更しました。 Private Repository で運用していた理由は API キーが設定ファイルに記されていたためです。Blog エントリを GitHub Actions にてはてな Blog へ投稿するときに使用してい…

textlint で特定の箇所をチェック対象外にする

問題 特定の箇所を textlint のチェック対象外にしたい 問題 この Blog エントリは textlint でチェックしたあとで投稿するようにしています。 しかし、ここで問題となったのが、以下のようなクエリパラメータ付きのはてな記法でした。 [https://speakerdeck…

研修を受講して認定スクラムマスタになりました

随分前になってしまいますが認定スクラムマスター研修を受け、その後の Web テストを経て、無事に認定スクラムマスターになりました。 なぜ認定スクラムマスターを取得しようと思ったか 認定スクラムマスター研修 品質の低いベロシティは存在しない 実績がな…

「自己組織的な開発チームを如何にして作り上げるか」というテーマで発表してきた

Developers Summit 2020にて、 自己組織的な開発チームを如何にして作り上げるかというタイトルで発表させていただきました。 これくらいの人数の前で話をするのって随分久しぶりでしたが、ほとんど緊張することもなく、とても楽しく良い経験になりました。…

おいしい珈琲を淹れる旅

妻とともにコーヒーがとにかく好きなのでコーヒーの味には気を使っているのですが、コーヒーメーカーでドリップしてもイマイチな味で何とかしたいと思っていました。 具体的な不満点は、ドリップのスピードが早すぎて、どうにも味が薄くなるという点になりま…

Dash を VS Code から使える拡張 Visual Studio Code Dash

VS Code を使用しているんですが、今の今まで知らなかった拡張が Visual Studio Code Dash です。 Dash プログラムを書いている際リファレンスを探すことも多いですが、そういうときに使用するアプリケーションとして Dash があります。 Java や Golang を始…

GitHub Actions・blogsync・textlint で実現するはてなブログ投稿のオートメーション

以前、blogsync と textlint を使ったブロク投稿について書きました。 そこに登場したのが、GitHub Actions です。 そこでぼくは考えました。おや、エントリを GitHub のリポジトリで管理しておきさえすれば、以下のようなエントリの PUSH による自動投稿が…

tar ボールの中から特定のファイルのみを抽出する

tar ボールの中から特定の「ファイルのみ」を抽出したいケースがあります。 たとえば、GitHub Releases で公開された tar ボールから、シングルバイナリのみを抽出して PATH の通った場所に置きたいケースです。 これをシンプルに行う方法についてです。 フ…

Macでのアプリケーションインストールの自動化

先述の通り、新年を迎えたことをきっかけに Mac を初期化しました。 面倒なのは、使っているソフトウェアのインストールなのですが、皆さんと同様 homebrew を使っています。 そういえばと思い立ったのですが、この homebrew で各種 CUI アプリケーションと…

英語キーボードでGoogle日本語入力を楽に使いたい

新年なので、自宅の Mac を完全初期化しました。新年になるとこういうの整理したくなるよね。そうだよね。 そういうわけで、毎年のように Mac を完全初期化しているわけなのですが、そこで毎回問題になるのが IME です。 もともと僕は AquaSKK を使っていた…

「エラスティックリーダーシップ -自己組織化チームの育て方-」を読んだ

「エラスティックリーダーシップ」を読みました。 前書きの言葉を借りれば、この本は、リーダーシップを取る立場を引き受けようと考えている人、あるいは、実際にリーダーシップを取る立場にいる人を対象にしていて、 自分の仕事に行き詰まってしまっている…

json schema を jq で再帰的に処理し、省略されている `"type": "object"` を付与する

jq

Qiita の json schema に"type": "object" がない "type": "object" の付与 jq での再帰的な処理戦略 参考文献 Qiita の json schema に"type": "object" がない Qiita の API レスポンスは json schema で表現されています。 https://qiita.com/api/v2/sche…

PRへの修正内容をReviewer側で提示できるsuggested changes

Github で上で PR をレビューしている方も多いと思います。 その中で、よくあるのが typo への指摘です。 Typo を指摘する際、 `type` は `typo` の誤りではないでしょうか? というような形で指摘することになると思うのですが、これをやっていると reviewer…