kakakakakku blog

Weekly Tech Blog: Keep on Learning!

2020-01-01から1年間の記事一覧

iTerm2 上でコマンドを組み立てられる新機能「Composer」を試した

2020年11月にリリースされた「iTerm2 v3.4」に追加された新機能「Composer」を使うと「iTerm2 上でコマンドを組み立ててから」実行できるようになる.例えば,ワークショップを試すときに <ここを修正> や <REPLACE> や {id} など,実行するコマンドの中に含まれてい</replace>…

Pod に「優先度」を設定できる PriorityClass と Non-preempting 機能を試した

Kubernetes の「PriorityClass」を使うと Pod に優先度(プライオリティ)を設定できる.例えば,通常 Pod を起動するために必要なリソースを確保できない場合は Pending になるけど,そういう場合でも優先的に起動できるようになる.逆に「優先度を低くした…

2020年のプルリクエストを振り返る

2016年から毎年 OSS に送ったプルリクエストを振り返る記事を書いている.2019年と比較すると,2020年は大きく減って「計4件」だった.GitHub は毎日のように使っているし,多くあるプライベートリポジトリに定期的にコミットもしているけど,OSS への貢献に…

nginxdemos/nginx-hello イメージを使うと簡単に「コンテナ ID」を確認できる

コンテナを複数起動して,ロードバランサーなどを使って「期待通りに振り分けできているよ!」という挙動をデモで見せたいときがある.実際に最近あった.例えば nginx:alpine イメージを使うと,全て同じ index.html から Welcome to nginx! とレスポンスを…

python-docx を使って Python でリッチな Word ドキュメントを作る

python-docx を使うと Python で Word ドキュメントを操作できる.新しく Word ドキュメントを作ることもできるし,既存の Word ドキュメントから文章を抽出することもできる.前に紹介した python-pptx と関連している.最近 PowerPoint の文章を Word に繰…

python-pptx で PowerPoint の「非表示スライド」を判定する

Python で PowerPoint を操作するライブラリ python-pptx は本当に便利で,前に「発表者ノート」を抽出するサンプルコードを紹介したけど,引き続き今も使っている.PowerPoint ファイルの文章レビューを自動化したり,業務で使うスクリプトも増えてきた.作…

DevOps Topologies : DevOps 文化を築くベストプラクティスな組織構造とは

DevOps 文化を築くときに知っておくと便利なサイト「DevOps Topologies」を読んだ.「アンチパターン = DevOps Anti-Types」な組織構造(計7種類)と「ベストプラクティス = DevOps Team Topologies」な組織構造(計9種類)が紹介されている.サイトではそれ…

「5分あったらやること」をリストアップしよう /『「ひとり会議」の教科書』を読んだ

書籍名に惹かれて『1日10分であらゆる問題がスッキリする「ひとり会議」の教科書』を読んだ.「ひとり会議」とは「積極的にテーマを持って自分に質問を投げかける場」のことで,簡単な「セルフコーチング」と表現しても良さそう. 僕自身,平日は朝イチに「…

複数ユーザーでも簡単に画面共有ができる「Screego」を試した

リモートで働くことが増えたであろう今年は「画面共有」を使う機会も増えたと思う.例えば,ミーティング中に資料を投影したり,リモートペアプロ(モブプロ)をしたり.僕自身は技術講師として,演習中にトラブルになっているお客様の問題解決をするときに…

簡単にできる!macOS で PDF を結合する Tips

Mac

macOS のデフォルト機能で簡単に「PDF を結合する」Tips を「3種類」紹介する.以下の3世代で動作確認をした. macOS Mojave macOS Catalina macOS Big Sur 1.「プレビュー」アプリを使う 特定のページを選択して結合したいときに! PDF を「プレビュー」ア…

Docker Compose で複数コンテナの準備完了を TCP / HTTP で待機できる「dockerize」を試した

Docker Compose を使って複数コンテナを起動するときに,タイミングによっては接続エラーになってしまう場合がある.具体的な例としては「データベースコンテナ」の起動が遅いために「アプリケーションコンテナ」が接続エラーになってしまうことが挙げられる…

よく使う "hub" コマンドを調べて "gh" コマンドに移行した

最近まで GitHub リポジトリを操作するときに ghq コマンドと hub コマンドを使っていた.リポジトリを git clone したり ~/ghq 直下のディレクトリに移動する場合に ghq コマンドと peco を使って,その他の操作は hub コマンドと git コマンドを使っていた…

Secret を暗号化して Git 管理を可能にする「Sealed Secrets」を試した

Kubernetes で設定値や機密情報を管理する場合,ConfigMap と Secret が代表的な選択肢として挙げられる.しかし Secret は暗号化ではなく Base64 でエンコードをする仕様になっているため,Git リポジトリで直接マニフェストを管理できないという懸念点があ…

Mac でターミナル操作をレコーディングしてシュッと公開できる「asciinema」

Mac で「ターミナル操作」をレコーディングしたくなる場面がある.ブログに載せたり,GitHub リポジトリの README.md に載せたり,プレゼンテーションでデモを行う場合のバックアップ用途として使ったりする.今までは Terminalizer や ttyrec + ttygif を使…

モノリス分割はこうやる!「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)」の機能をサポートする.ドキュメントを読むと,多く…