kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

Google Sheets で条件付き書式を使って「今日 / 週末 / 祝日」に背景色を設定する

最近(2022年8月頃)から新しく習慣化に取り組んでいることがあって Google Sheets に数値を記録している.そのときに Google Sheets で以下の画像のように「背景色」を設定している.設定するときに Microsoft Excel でも Google Sheets でも「条件付き書式…

多くのデータベースに対応したマイグレーションツール migrate を MySQL で試した

データベースのマイグレーションを行うツール migrate を試した.migrate は MySQL / MariaDB / PostgreSQL / Amazon Redshift / MongoDB / Cassandra など,多くのデータベースに対応している.GitHub リポジトリを見るともっと多くのデータベースに対応し…

脳波で評価するペアプロとモブプロの効果とは / 論文「Comparing Participants’ Brainwaves During Solo, Pair, and Mob Programming」

2021年に XP 2021 で発表された論文「Comparing Participants’ Brainwaves During Solo, Pair, and Mob Programming(意訳 : ソロ・ペア・モブプログラミング中の参加者の脳波の比較)」を読んだ.早稲田大学の論文だった.ソロプログラミング(1人)/ ペア…

モブプログラミングの導入実験から得られたプラクティス / 論文「Mob Programming: Find Fun Faster」を読んだ

2016年に発表された論文「Mob Programming: Find Fun Faster」を読んだ.調べると「モブプログラミング」に関連する論文も多くあって,気になった論文から読んでいる.本論文ではモブプログラミングを導入するという「実験」を通して得られたプラクティスを…

プログラミングの講義をうまく行う 10 Tips / 論文「Ten quick tips for delivering programming lessons」を読んだ

2019年に発表された論文「Ten quick tips for delivering programming lessons(意訳 : プログラミングの講義を行うための簡単な 10 Tips)」を読んだ.僕自身のキャリアとして「今まで」も「今後」もプログラミングを教える機会は多く,今までの教授戦略を…

使いたい API がきっと見つかる!public-apis リポジトリ

フロントエンドのプロトタイプ実装をするときや API を使ったアプリケーションを実装するときなど「ササッと使える API があると便利なんだけどー!」という場面はよくある!本当によくある.今回紹介する GitHub の public-apis リポジトリは,2022年8月時…

プログラミングを上手に教える 10 Tips / 論文「Ten quick tips for teaching programming」を読んだ

2018年に発表された論文「Ten quick tips for teaching programming(意訳 : プログラミングを教えるための簡単な 10 Tips)」を読んだ.直近は技術講師(インストラクター)として4年間ほどクラウドなどを教えていて,コースによってはプログラミングを教え…

Parson's Problems : 入門者にプログラミングを教えるときに使えるプラクティス

プログラミングを教えるときに使える「Parson's Problems(もしくは Parson's Puzzles とも言う)」というプラクティスを最近知った!「Parson's Problems」はコードの各行がバラバラになっていて,インデントも含めて正確に並び替えたら正解になるというパ…

ペアプロって本当に効率的なの? / 論文「The Costs and Benefits of Pair Programming」を読んだ

2000年に発表された論文「The Costs and Benefits of Pair Programming(意訳 : ペアプログラミングのコストと利点)」を読んだ.個人的にペアプログラミングやモブプログラミングの経験はそれなりにあって,メリットとデメリットは理解しているつもりだけど…

Killercoda : ウェブ上ですぐに試せる Kubernetes 環境 と Ubuntu 環境

今回の記事では Killercoda を使ってウェブ上ですぐに試せる学習コンテンツを作る.前回の記事で紹介した「Katacoda インポート機能」 ではなく,以下のドキュメントを参考にイチからシナリオを作る. killercoda.com 環境 現在 Killercoda は「3種類」の環…

Killercoda : Katacoda の学習コンテンツをそのままインポートできる!

Katacoda は「2022年6月末」にサービス停止になってしまった.今まで本当によく使っていたから残念だった 特に「ウェブ上ですぐに試せる手軽さ」や「学習コンテンツの豊富さ」や「独自コンテンツを作って公開できる仕組み」など,魅力的なポイントが多くあっ…

Pluto : Kubernetes apiVersion の「非推奨と削除」を検出する

Pluto を使うと Kubernetes マニフェストの apiVersion に対して deprecated(非推奨)と removed(削除)を検出できる.警告自体は Deprecated API Migration Guide | Kubernetes を見れば確認できるし,kubectl apply コマンドを実行したときにも表示され…

Python コードでアーキテクチャ図を生成できる Diagrams がめっちゃ便利!

「Diagrams」を使うと Python コードでアーキテクチャ図を生成できる.サポートされているアイコンセットがとても多く AWS や Google Cloud や Microsoft Azure もあれば,Kubernetes やプログラミング言語なども使える.試してみたけどめちゃくちゃ便利!ま…

tree コマンド風のディレクトリ構造を簡単に生成できる「tree.nathanfriend.io」

ブログ記事に「ディレクトリ構造」を載せるときは tree コマンドを使っている.ディレクトリ構造が深すぎるときは tree -L で深さを指定できるし,不要なディレクトリがあるときは tree -I で除外もできる.今まで書いたブログ記事にも多くディレクトリ構造…

jupyter nbconvert コマンドを使って Notebook を変換する

jupyter nbconvert コマンドを使うと Jupyter Notebook を Python コード / PDF / HTML などに変換できる.指定できるフォーマットの一覧は GitHub に載っている.また Jupyter Notebook で使える Download as メニューも同じ仕組みを使っている. github.co…

ytt を使ってテンプレートから YAML を生成する

記述したテンプレートから YAML を生成するツール 「ytt」 を試す.ytt は YAML に対して「テンプレート機能」と「オーバーレイ機能」が使える.VMware 社を中心に開発されているツールセット Carvel に含まれている. carvel.dev YAML のテンプレート機能や…

実験管理を便利に行う MLflow Tracking に入門した

実験管理やモデルレジストリなど,機械学習ライフサイクルをうまく管理するプラットフォームとして有名な「MLflow」に入門する.GitHub リポジトリの Star は 12000 もあってスゴイ!MLflow は MLOps の文脈でもよく聞くので,1度試しておこうと思った. 現…

CKS 対策にもおすすめ /「Docker/Kubernetes 開発・運用のためのセキュリティ実践ガイド」を読んだ

コンテナワークロードにおけるセキュリティ対策の理解を深めるため「Docker/Kubernetes 開発・運用のためのセキュリティ実践ガイド」を読んだ.実は本書は 2021年7月頃 に1度読み終わっていたけど,実際に気になった部分を試したり,CKS (Certified Kubernet…

Kubernetes 関連のエントリー資格 KCNA (Kubernetes and Cloud Native Associate) に合格した

CNCF (Cloud Native Computing Foundation) の Kubernetes 関連資格 KCNA (Kubernetes and Cloud Native Associate) に合格した! ついに「4冠」になったー まだまだ KCNA の日本語情報は少なく,資格の普及も兼ねて紹介記事としてまとめておこうと思う. w…

Kubernetes の Service で「環境変数」を使ったサービスディスカバリを試す

Kubernetes の Service ドキュメントを読み直していたら「サービスディスカバリ」のモードとして「環境変数」と「DNS」をサポートしていると書いてあった.一般的によく使うのは「DNS」で {ServiceName}.{NamespaceName}.svc.cluster.local というレコードで…

kubectl で Taint を一覧するコマンド例

Kubernetes でノードの Taint を確認するときに「一覧する」コマンドがなくて困るときがある.--show-labels オプションのように --show-taints オプションがあったら良いのに!例えば kubectl describe node xxx | grep Taints コマンドを実行すれば「ノー…

Pandas で指数表記を無効化する

Jupyter Notebook で Pandas のコードを実装しているときに「指数表記を無効化」する場合は pd.options の display.float_format を設定する.以下にサンプルとして「桁数 2」と「桁数 6」の例を載せておく. # 小数点以下 桁数 2 pd.options.display.float_…

Re:VIEW で「節単位」に分割したファイルをビルドする

Re:VIEW で catalog.yml に設定するファイルの分割粒度は「章単位 (Chapter)」になっている.しかし,文章量が増えてくると運用面で「節単位 (Section)」にファイルを分割したくなってくることもある.例えば,以下のように「1章(1節)」と「2章(2節)」と…

CKS (Certified Kubernetes Security Specialist) に合格した : 勉強方法をまとめる

Kubernetes の資格 CKS (Certified Kubernetes Security Specialist) に合格した やったー!Kubernetes 関連は3個目! 今回の記事では「勉強方法」をまとめようと思う. www.cncf.io 時系列で書くと,2021年2-3月に CKAD (Certified Kubernetes Application…

Kubernetes と Falco を組み合わせて脅威検出に入門する

Kubernetes でコンテナワークロードの脅威検出として使える「Falco」に入門する.CNCF (Cloud Native Computing Foundation) で Incubating に位置しているプロジェクトで,今回は実際に Falco を使って Pod に対する操作(振る舞い)を検出したり,独自ルー…

Flux v2 で Image Ops を実現する「自動イメージ更新機能」を試した

GitOps ソフトウェアの Flux v1 にはイメージレジストリを監視してイメージタグを自動的に最新化する「Automate image updates(自動イメージ更新)機能」が組み込まれている.別名で「Image Ops」と言ったりもする.具体的には Deployment YAML などの anno…

Pod でルートファイルシステムを読み取り専用にする securityContext.readOnlyRootFilesystem

Kubernetes で Pod(正確にはコンテナ単位)に securityContext.readOnlyRootFilesystem: true を設定すると,ルートファイルシステムを読み取り専用にして書き込み操作を抑止できる.アプリケーションのセキュリティ対策として使える.補足をすると Kuberne…

kubelet が他ノードのラベルを操作しないように制限できる NodeRestriction を試した

Kubernetes で有効化できる Admission Plugin である「NodeRestriction」の動作確認をした.簡単にまとめておく! 「NodeRestriction」は kubelet に対して Node / Pod の操作範囲を制限できる.具体例を挙げると kubelet によるラベル操作を自ノードに制限…

Re:VIEW で textlint-filter-rule-comments を使う

textlint で textlint-filter-rule-comments を使うとコメント記法で「特定のルールを無視する」範囲を設定できる. github.com しかし textlint-plugin-review と組み合わせて Re:VIEW で textlint-filter-rule-comments を使う場合は ではなく #@# という…

Kubernetes と AppArmor を組み合わせてファイル操作を制限する

AppArmor (Application Armor) とは Linux Security Modules の1つで,プログラムに対して「ファイル操作」や「マウント操作」などを制限する.詳しくは以下のドキュメントに載っている. ubuntu.com コンテナワークロードのセキュリティ対策として,AppArmo…