kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

TDD のリズムを体験しよう /「テスト駆動開発」を読んだ

今年の1月に書籍「テスト駆動開発」を購入し,1度ザッと読んだけど,まだ書評記事を書いてなく,後回しにしていたらもう9月になってしまった.最近「テスト駆動開発 (TDD : Test-Driven Development)」を教える機会もあるため,改めて本書を読み直し,学べた…

計画メンテナンス時に便利な Mackerel の新機能「ダウンタイム機能」を試した

先週 Mackerel で新機能「ダウンタイム機能」が使えるようになった.簡単に言うと「日時を指定して監視と通知を停止する機能」となり,サービスで計画メンテナンスが必要な場合など,運用上とても助かる機能と言える.今までは Mackerel ホストのステータス…

Material-UI の List コンポーネントを実装する

先週「React + TypeScript + Material-UI」を使ってプロトタイプ開発をする機会があった.今まで Material-UI は使ったことがなかったけど,ドキュメントを読むとコンポーネントも多く用意されていて,非常によくできていた.React で Material Design を簡…

アプリケーションとインフラのパフォーマンスをモニタリングしよう /「入門 Prometheus」を読んだ

今年5月に出版された「入門 Prometheus」を読んだ.本書は Prometheus の仕組みから,実際に本番環境で運用するときに必要になるデプロイの観点まで解説されているため「Prometheus に興味のある幅広い読者層」にオススメできる1冊だった.僕自身も Promethe…

Python + unittest を使ってテストパターンをパラメータ化するときに subTest() メソッドを使う

Python + unittest を使って TDD (Test Driven Development) の練習(ペアプログラミング)をしていたときに,リファクタリングのサイクルでテストパターンをパラメータ化することになった.Parameterized Test にリファクタリングをするために,期待値をパ…

Mac で「なめらかに」デモを見せるために必須なアプリと機能

Mac

技術講師としてプレゼンテーションをしながらデモをする場面が多く,無駄な操作をせず,Mac を「なめらかに」操作することを意識している.「なめらかな」操作をするために個人的に必須なアプリと機能があり,最近紹介する機会も増えているため,記事にまと…

nginx でリクエストを制限できるモジュール「ngx_http_limit_req_module」

nginx でリクエストを制限できるモジュール「ngx_http_limit_req_module」を使うと,Throttling や DoS 対策など,リクエストの過剰な増加に nginx で対応できるようになる.挙動を確認するため,Docker Compose を使って検証環境を構築した. nginx.org 検…

iTerm2 を Python から制御できる新機能「Python Scripting API」

7月末にリリースされた「iTerm2 v3.3」に大きく2種類の新機能がある.今回は「Python Scripting API」を中心に紹介したいと思う. Python Scripting API Scriptable Status Bar Python Scripting API 「Python Scripting API」を簡単に説明すると「Python で…

技術ブロガー必読!と言える「Technical Blogging, Second Edition」を読んだ

技術ブロガー必読!と言える「Technical Blogging, Second Edition - Amplify Your Influence」を読んだ.タイトルにある通り「技術ブログ」にフォーカスした本となる.本書は2012年に出版された歴史のある本で,最新版となる Second Edition が6月末に出版…

ドットインストールで「Lua 入門」を受講した

先月に「ngx_http_mirror_module」の検証記事を書いた通り,最近 nginx を調べ直している.次に「lua-nginx-module」を検証する予定だけど,今まで Lua 自体をあまり書いたことがなく,まずは Lua の基礎を学ぶことにした.まさに Yak Shaving! kakakakakku…

VS Code 拡張機能を実装する第一歩を踏み出すために「Get Started: Your First Extension」を試した

「VS Code 拡張機能」ってどう実装するんだろう.最近 VS Code を使う場面が多いため,便利な拡張機能にコントリビュートしたり,自分用に拡張機能を作ったりする機会もありそう.さらに今まで TypeScript をほとんど書いたことがなく,書く機会を探していた…

アジャイル開発の基礎知識を問う「アジャイルソフトウエア開発技術者検定試験 Lv.1」に合格した

昨日「アジャイルソフトウエア開発技術者検定試験 Lv.1」に合格した.試験問題に関係する内容は NDA を厳守するため書かず,今回は「試験紹介(普及のため!)」にフォーカスする.正直言って,まだまだ知られていない資格だと思う.また,あくまで理解度を…

nginx でリクエストを複製できるモジュール「ngx_http_mirror_module」

nginx でリクエストを複製できるモジュール「ngx_http_mirror_module」を使うと,簡易的な「Shadow Proxy」を構築することができる.例えば,本番環境のリクエストの一部を開発環境に流せるようになる.この「ngx_http_mirror_module」は nginx 1.13.4 で実…

投票サービス「DirectPoll」を使ってイベントを盛り上げよう

最近イベント中に「参加者アンケート」を取得する必要があり,普段はお手軽に挙手をして頂くことも多いけど,より臨場感のある演出を検証するため,前から気になっていた投票サービス「DirectPoll」を試してみた.投票するとリアルタイムにグラフが更新され…

2019年(1-6月)のプルリクエストを振り返る - kakakakakku blog

2016年から OSS に送ったプルリクエストを振り返る記事を書いている.今までは毎年年末に振り返っていたけど,今年は既にプルリクエストの件数が多いため,2019年(1-6月)の期間で振り返ることにした.過去の振り返りは以下にある.そして,2019年(1-6月)で「…

「DevLOVE X」に参加してスピーカーの情熱を感じた

6/23,24 に開催された「DevLOVE X」に参加した.少し遅れてしまったけど,印象に残っているセッションを中心に紹介したいと思う.どのセッションもスピーカーの情熱を感じた.DevLOVE X では,久し振りに会う人がいたり,ブログメンタリング卒業生に会えたり…

Packer 未経験者に最適な HashiCorp Learn の Packer コースを実施した

少し前に Consul を学ぶために活用した「HashiCorp Learn Platform」の学習コンテンツに最近「Vagrant / Packer」も追加されていた.今年3月末時点では「Vault / Consul / Terraform / Nomad」の4種類だったため,現在は6種類になっている.Packer は AMI (A…

技術ブロガーを育てる!ブログメンタリングで何を教えているのか

週末に開催された「DevLOVE X」に参加し,2日目に発表をしてきた!今回の発表タイトルは「技術ブロガーを育てる!ブログメンタリングで何を教えているのか」で,今まで約1年半続けている「ブログメンタリング」の事例紹介をテーマにした.さらに関連する話題…

Docker Experimental Features を有効化すると使える docker build の --squash オプション

Docker コンテナを本番運用する場合,コンテナイメージのサイズをできる限り小さくすることを意識すると思う.具体的には「レイヤー」を意識することにより,Dockerfile に記述する RUN を減らしたり,一時ファイルを消す場合に同じ RUN で rm をする.最近…

Redis で特定のコマンドを無効化できる設定「rename-command」

最近 Redis の公式ドキュメント「Redis Security」を読んでいたら「Disabling of specific commands」というトピックを発見した.簡単に表現すると redis.conf に rename-command という設定を定義すると,特定のコマンドを無効化したり,別名のコマンドに変…

Shell で「テンプレートエンジン」のような仕組みを実現できる envsubst コマンド

少し前に envsubst コマンドの存在を知った.envsubst コマンドを使うと,変数展開など,Shell で「テンプレートエンジン」のような仕組みを実現できる.例えば,設定ファイルを生成するときなどに使える.なぜ今まで知らなかったんだろう!と思うけど,今回…

文化である DevOps の誤解を紐解こう /「Effective DevOps」を読んだ

先週から「Effective DevOps」を読んでいた.去年出版されたときにパラパラと気になる箇所を読んだけど,書評記事を書いていなかったこともあり,改めて読み直すことにした.本書は「DevOps」をテーマにしつつ,その本質としてはサブタイトルにもある「4本柱…

コマンド失敗時に Mackerel にアラートを通知できる mkr wrap を試した

今年2月頃にリリースされた mkr コマンドの新機能 mkr wrap を試した.mkr wrap を使うと,指定したコマンドの失敗時に Mackerel にアラートを通知できるようになり,Worker プロセスなどのモニタリングに役立つ.詳細は以下の公式ドキュメントに載っている…

JMESPath Tutorial と jp コマンドを使って JMESPath を学ぶ

JSON をパース(集計/整形など)するときに,よく使われているのは「jq」だと思う.僕も jq をよく使っている(構文は毎回調べるけど).今回は jq 以外の選択肢となる「JMESPath」の理解を深めることにした.JMESPath も JSON をパースできるクエリ言語(…

さぁ!コンテナを設計しよう /「分散システムデザインパターン」を読んだ

4月に出版された「分散システムデザインパターン」を読んだ.サブタイトルに「コンテナを使ったスケーラブルなサービスの設計」とある通り,コンテナを設計/運用するときに,どのようなデザインパターンを知っておくと良いのか?という点を学べる内容になっ…

小学生に限らず幅広い層に役立つドリルだった / ドリルの王様「たのしいプログラミング」を3冊解いた

少し前に書店をブラブラしていたら,なんと!小学生の学習書コーナーに「プログラミング」をテーマにした「学習ドリル」が追加されていて,とても驚いた.2020年からプログラミング教育が小学校の必修科目になることは知っていたけど,まさかもう学習ドリル…

最新バージョン Redash v7.0.0 をすぐに試せる「Redash ハンズオン資料」

2019年3月末に Redash の最新バージョン「Redash v7.0.0」がリリースされた.2018年12月に「Redash v6.0.0」がリリースされたので,比較的ハイペースにメジャーバージョンアップが進んでいる.Change Log を読むと「Redash v7.0.0」の新機能が多くあり,既に…

マイクロサービスの学習に使えるサンプルアプリケーション「Sock Shop」

個人学習用にマイクロサービスを体験できるサンプルアプリケーションを探していたら,Weaveworks から公開されている「Sock Shop」を発見した.「Sock Shop」は名前の通り「靴下 EC サイト」で「ユーザー登録/商品閲覧/カート/ウィッシュリスト/購入(ダ…

SQL 選択実行など便利な新機能が追加された「Redash v7.0.0」紹介

2019年3月末に Redash の最新バージョン「Redash v7.0.0」がリリースされた.Change Log を読むと機能追加が多くあり,今回は「個人的に気になった Redash v7 新機能(もしくは UI 変更)」を「9点」紹介しようと思う. redash/CHANGELOG.md at master · get…

どうすればうまく教えられるのか /「インストラクショナルデザイン」を読んだ

アウトプットとは「情報を伝えること」であり,視点によっては「教えること」と言い換えることもできる.1年半前の登壇資料(アウトプット駆動学習を習慣化する)にも書いた通り,僕はアウトプットの延長線として「教えること」に強く興味があり,プログラミ…