kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

モノリス分割はこうやる!「How to break a Monolith into Microservices」を読んだ

研修中に「マイクロサービス」の解説をしていると,たまに「モノリス分割」に関する質問が出てディスカッションをすることがある.当然ながら万能な分割アプローチはないけど,例えば DDD (Domain-driven design) などのアプローチを選択するなど,選択肢は…

Argo CD に入門するために「Getting Started」をカスタマイズしながら試す

今回は Argo CD に入門するためにドキュメントに載っている「Getting Started」を試す.任意の Kubernetes クラスターに Argo CD をセットアップして,アプリケーションのデプロイを体験できる.また Argo CD UI を使った画面操作も体験できる.しかし GitOp…

Kubernetes を網羅的に学ぶなら「Kubernetes 完全ガイド 第2版」を読むべし

「Kubernetes 完全ガイド 第2版」を読んだ.今年6月に「第1版」を読み終わって,書評記事を書こうと思っていたら,タイミング良く今年8月に「第2版」が出版された.出版おめでとうございます!最初は目次を見ながら差分を中心に読んでいたけど,大幅にアップ…

kind を使って Feature Gates を有効化した Kubernetes クラスターを構築する

Mac のローカル環境で Kubernetes の検証をするときに,お手軽な Docker Desktop for Mac "Edge" を使っている.Feature Gates を有効化した Kubernetes クラスターで検証をするときは minikube に --feature-gates オプションを指定して使うこともある. Do…

入門から実践まで CircleCI のノウハウが凝縮された「CircleCI 実践入門」を読んだ

9月に出版された「CircleCI 実践入門」を読んだ.素晴らしかった!なぜ CI/CD が必要なのか?という背景から,CircleCI 入門,CircleCI 実践まで,網羅的に解説されている.ボリュームは多く,読みごたえはあるけど,必要な箇所から読むこともできる.また「…

「Slack Orb」を使って CircleCI から Slack に通知する

CircleCI のジョブ結果を Slack に通知する場合,今までは CircleCI の Webhook と Slack の Incoming WebHooks を組み合わせて実現していた.最近読んでいる「CircleCI 実践入門」に「Slack Orb」を使う方法が載っていたので,プライベートで使っている Git…

2年間も積読していた「スタンフォード式 最高の睡眠」を読んだら朝スッキリと起きられるようになった

8月に「スタンフォード式 最高の睡眠」を読んだ.今さら?と思われるかもしれないし,僕が「睡眠」に興味を持っていることに驚かれるかもしれない.本書は「2017年2月」に出版されていて,友人に「読んでみたら?」と薦められたこともあり「2018年8月」に購…

Brewfile で Homebrew のライブラリを管理しよう!

Mac

Homebrew で Mac の環境構築をする機会は多いと思う.ライブラリをインストールするときに brew install xxx と実行すればすぐに使える.ただし,Mac を移行したり,再インストールするときに brew install を再実行するのは面倒で,今回は Homebrew Bundle …

Flux と kustomize を組み合わせた GitOps 入門チュートリアル「Using Flux with Kustomize」を試した

昨日の記事では GitOps に入門できる Flux のチュートリアル「Get started with Flux」を紹介した.次は Flux と kustomize を組み合わせて,ベースマニフェストに対して環境ごとに異なる設定値を適用する流れを学んでいく. kakakakakku.hatenablog.com チ…

Flux を使った GitOps 入門チュートリアル「Get started with Flux」を試した

最近よく聞くようになった「GitOps」というデリバリ戦略があり,Single Source of Truth として Git を採用し,Kubernetes リソースなどを継続的にデリバリーしていく.GitOps では,直接 kubectl などを実行せず,例えば GitOps Operator などを使って,Ope…

python-pptx を使って PowerPoint ファイルの「発表者ノート」を抽出する

PowerPoint を使ってプレゼンテーションをするときに,原稿や関連情報を「発表者ノート」に書いておく人は多いと思う.最近 PowerPoint ファイルの「発表者ノート」を抽出して別のファイルにコピーする必要があった.具体的にはプロンプターに投影する原稿を…

Finder で開いているディレクトリを VS Code や iTerm2 ですぐに開ける「OpenInTerminal」

macOS を使っていると,Finder で開いているディレクトリを Visual Studio Code (VS Code) や iTerm2 で開きたくなる.誰しもあるシチュエーションだと思う.今までは cdtoを使ったり,AppleScript を実装したこともあるけど,最近 OpenInTerminal に移行し…

kustomize の configGeneration を使って ConfigMap リソースをデプロイする

先週の記事に続き kustomize の Examples を試していく.前回は「helloWorld」を試した.今回は ConfigMap リソースでローリングデプロイのような挙動を実現できる kustomize の configGeneration を試す. kakakakakku.hatenablog.com 前提 今回も Docker D…

Kubernetes の YAML をカスタマイズする kustomize の基本を学べる Examples「helloWorld」

「Kubernetes 完全ガイド 第2版」で「第14章 マニフェストの汎用化を行うオープンソースソフトウェア」を読んでいたら「第1版」では紹介されていなかった(正確には名前は載っていた)kustomize の解説が新しく追加されていた.本書を読みながら概要を理解し…

Kubernetes でバイナリを ConfigMap (binaryData) に登録する

今年の4月頃に「Kubernetes 完全ガイド」を読み終えたけど,まだ書評を書いていなかった.そしたら8月に「Kubernetes 完全ガイド 第2版」が出版されたため,さっそく購入して,読み直している.読みながら気になった機能を試していく.今回は ConfigMap にす…

Redash v9 で採用されたジョブキューライブラリ RQ (Redis Queue) の基本機能を試した

Redash v9 で「ジョブキューライブラリ」として採用された RQ (Redis Queue) を試した.今までの Redash では Celery を使っていた.RQ は Redis を使って「ジョブ登録 (enqueue)」と「ジョブ実行 (work)」の機能をサポートする.ドキュメントを読むと,多く…

最近 Cyber-Dojo に導入された「実行結果予測 : predict?」機能

環境構築に悩むことなく「テスト駆動開発」や「モブプログラミング」を試すときに「Cyber-Dojo」をよく使う.一部は Cyber-Dojo Blog にも載っているけど,今年4月頃(時期は少し曖昧)から「Cyber-Dojo」に新機能と機能改善がリリースされている.代表的な…

モブプログラミングパターンを紹介した記事「Harvesting Mob Programming Patterns」を読んだ

Agile Alliance の Experience Reports として公開されている記事「Harvesting Mob Programming Patterns: Observing how we work」を読んだ.本記事は「モブプログラミング」で遭遇する「振る舞い」を「モブプログラミングパターン」として紹介している.モ…

gibo コマンドを使って .gitignore のテンプレートを簡単に作成する

ブログに載せるサンプルコードを管理したり,仕事でプロトタイプを実装することが多かったり,とにかく Git リポジトリを新しく作る機会が多くある.そのときに毎回似たような .gitignore を作ることになり,面倒だった.共通的な設定はホームディレクトリの…

2020年6月にリリースされた「Redash v9.0.0-beta」の新機能と機能改善を「計10点」紹介

2020年6月に Redash の最新バージョン「Redash v9.0.0-beta」がリリースされた.正式リリースまでに変更される可能性はあるけど,Change Log を読むと新機能と機能改善が多くあった.今回は実際に試しながら「 Redash v9.0.0-beta の新機能と機能改善」を「…

Mac の「画面共有」を使って「配信用 Mac」と「デモ用 Mac」を使い分ける

Mac

「リモート研修」を配信する場合「配信アプリ / 配信機材 / Chrome / PowerPoint / Visual Studio Code / iTerm2」など,必要最低限なアプリに限定したとしても,Mac の負荷(特に CPU と Network)が高くなってしまう.なお,環境としては MacBook Pro 2017…

GitHub Actions と hadolint を組み合わせて Dockerfile の静的解析を自動化しよう!

GitHub Actions と hadolint (Haskell Dockerfile Linter) を組み合わせて,今まで雑に実装してきた Dockerfile の静的解析を自動化する環境を作った.できる限り Dockerfile Best Practices を意識していることもあり,警告はあまり多く出なかったけど,や…

GitHub Actions に入門するなら GitHub Learning Lab の Hello World コースを受講しよう

GitHub を学ぶときに「GitHub Learning Lab」を使うと便利!という紹介記事を6月に書いた.最近 GitHub Actions を使う機会があり,入門するために「GitHub Learning Lab」の「GitHub Actions: Hello World」コースを受講した.今回も非常に良かった! kakak…

Woody もパネラーに!Mob Programming Gathering 2020 に参加した

6/26 にリモート開催された「Mob Programming Gathering 2020」に参加した.イベントは「Agile New England」コミュニティによって開催された.なお,開催時間は 12:00 - 14:30 EDT となり,日本時間だと 1:00 - 2:30 JST だから少し仮眠をしてから参加した…

Hugo の OGP 画像を自動生成できる「tcardgen」を試した

Twitter などソーシャル上でブログ記事に興味を持ってもらうために「OGP 画像」を設定することは重要で,必ず何かしらを設定するようにしている.代表的なブログプラットフォームだと,デフォルト画像だけじゃなく,記事からリッチな OGP 画像を自動生成でき…

Bot と一緒にインタラクティブに GitHub を学べる GitHub Learning Lab は素晴らしい学習体験だった

新しく技術を学ぶときに「どんな第一歩」を踏み出すか.僕は「体系的に学ぶ」ことが好きで,技術書を読むことが多い.全体感を把握することで安心できる性格であることも関係していると思う.さらに「実際に体験する」ことも好きで「学習コンテンツ」をよく…

リモートモブプログラミングで意識するべき15個の原則とは /「Remote Mob Programming」を読んだ

最近では,場所に制限されずに実施できる「リモートモブプログラミング」を採用しているチームも多いと思う.もともと「モブプログラミング」に慣れているチームなら,急に「リモート」に移行しても「特に変わらなかった」と感じるかもしれないけど,慣れて…

Keycastr と VS Code Screencast Mode を使って Mac で入力したキー操作を画面表示する

ブラウザ/エディタ/ターミナルなどを使いながら「入力したキー操作」を画面表示したデモ動画を収録する機会がたまにある.今回は Mac で使える選択肢として「Keycastr」と「VS Code (Visual Studio Code) Screencast Mode」を紹介する.Mac で幅広く使うな…

Dependabot の config.yml に「Automatic PR merging」を設定する

Dependabot を使うと「依存パッケージ」の更新を自動化できる.対応言語も幅広く,個人的には JavaScript / Ruby / Python / Docker をよく使っている.最高に便利なんだけど,例えば JavaScript などはリリース頻度が高く,すぐにプルリクエストが溜まって…

モノリポ時代に知っておくと便利な「git sparse-checkout」

今まで使っていなかった Git コマンドを学んでいく.今回は git sparse-checkout を試す. git-scm.com git sparse-checkout とは? コマンド名にある sparse は「わずかな」という意味で,Git リポジトリの「一部」を取得できる.git clone --depth を使っ…