kakakakakku blog

Weekly Tech Blog: Keep on Learning!

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

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月)のプルリクエストを振り返る

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年半前の登壇資料(アウトプット駆動学習を習慣化する)にも書いた通り,僕はアウトプットの延長線として「教えること」に強く興味があり,プログラミ…

Markdown Extensions / 検索機能などをサポートした静的サイトジェネレーター「VuePress」を試した

ポートフォリオ的な静的サイトを実装する機会があり,選択肢として Gatsby と Hugo も検討したけど,前から気になっていた「VuePress」を試すことにした.VuePress は Vue で実装された「Vue-Powered な」静的サイトジェネレーターで,Markdown で書くことが…

HashiCorp Learn の Consul コース「Getting Started with Kubernetes」を実施した

引き続き Consul を検証している.前回の記事では「HashiCorp Learn Platform」を活用して,Consul の「Getting Started」を実施したので,今回は「Getting Started with Kubernetes」を実施した.Consul に限らず,Kubernetes と Envoy を使ったマイクロサ…

HashiCorp 学習コンテンツ「HashiCorp Learn Platform」を活用して Consul を学ぶ

最近 Consul を検証する機会があり,まず全体概要を把握するために「HashiConf 2018」で発表された「HashiCorp Learn Platform」を活用することにした.「HashiCorp Learn Platform」は HashiCorp が提供する学習コンテンツで,現在は Vault / Consul / Terr…

監視を育てよう! /「入門 監視」を読んだ

今年1月に出版された「入門 監視」を読んだ.出版前から予約をしていたけど,他に積読もあり,読み始めるのが少し遅れてしまった.評判通り素晴らしく,特に「監視」というテーマをうまく言語化している本だと感じた.目次を見るとわかる通り,「あれも監視…

ドキュメントにある「リンク切れ」を検知できる「textlint-rule-no-dead-link」

textlint のルール「textlint-rule-no-dead-link」を使うと,ドキュメントにある「リンク切れ」を検知することができる.最近とあるドキュメントをレビューするときに,比較的リンクが多く,作業を効率化するために導入した.インストール手順は GitHub に書…

楽しく成長できるモビングを目指そう /「モブプログラミング・ベストプラクティス」を読んだ

2月に出版された「モブプログラミング・ベストプラクティス」をさっそく読んだ.僕はモブプログラミングの経験があり,例えばインフラ構築など,プログラミング以外の場面でも「モブ」のエッセンスを取り入れてタスクを進めることも多いけど,本書の目次を見…

Jupyter Notebook に環境変数を設定する

最近 Jupyter Notebook を使って Python コードを実装しているときに,設定値を直接コードに書くのではなく,環境変数から取得する必要があった.小ネタとして「Jupyter Notebook に環境変数を設定する方法」をまとめておく.結論として,今回は direnv を使…

ブログ記事のクオリティに悩む人に読んで欲しい /「理科系の作文技術」を読み直した

2017年12月から「ブログを楽しく習慣化して書く」ことを支援するために「ブログメンタリング活動(完全無料)」をしている.既に1年以上継続していて,現在メンタリング中のメンティを含めると,計20名を超えている.「ブログを楽しく習慣化して書く」ことを…

WIP プルリクエストの誤った merge を避ける GitHub Apps「WIP」と GitHub 新機能「Draft pull requests」

チーム開発をしていると,プルリクエストを WIP (Work In Progress) として送る場面は多くある.例えば,コードを書く前に設計相談をしたり,レビュー依頼をする前にパッケージ構成など全体感を相談したり,プロトタイプなどを一時的に公開することもある.…

自分自身の情報収集スタイルを定期的に見直そう /「ソフトウェアエンジニアの情報収集について」を読んだ

@nikuyoshi に献本を頂き,去年「技術書典4」と「技術書典5」で頒布された「ソフトウェアエンジニアの情報収集について(改訂版)」を読んだ.本書は約50ページと薄く,すぐに読むことができる.重要なのは本書を読み終えることではなく「自分自身の情報収集…