kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

2019年の振り返りと2020年の抱負

既に1月後半になり,遅くなってしまったけど,毎年恒例の「振り返りと抱負」をまとめておこうと思う. 2019年の振り返り 幅広く技術を学べた 2019年の目標は「幅広く技術を語れるように学び続ける」としていた.未経験の技術は無限にあるし,苦手意識のある…

Envoy の route.HeaderMatcher を使う「Implementing Blue / Green Rollouts」を試した

今回は「Try Envoy」の「Implementing Blue / Green Rollouts」を紹介する.Envoy でサポートされている様々なルーティング設定の中から「HTTP Header ベースルーティング」と「加重ラウンドロビン」を学べる. Implementing Blue / Green Rollouts 手順は以…

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

前回の記事から少し時間がたってしまったけど,Material-UI を使ったプロトタイプ開発を続けている.今回は GridList コンポーネントをサンプルコードを参考に実装しながら理解を深めていく.グリッドリストはフォトリストのようにコンテンツを並べる UI の…

2019年(7-12月)のプルリクエストを振り返る

OSS に送ったプルリクエストを振り返ろうと思う.プルリクエストの振り返りは2016年からしているけど,2019年は前半に多く送った背景もあり,既に「2019年(1-6月)」の期間で記事を書いている.今回は後半として「2019年(7-12月)」を振り返ろうと思う.後半の…

Envoy の Health Checking と Outlier Detection の違いを学べる「Detecting Down Services with Health Checks」を試した

今回は「Try Envoy」の「Detecting Down Services with Health Checks」を紹介する.高可用性のために Envoy でサポートされている「ヘルスチェック (Health Checking)」と「外れ値検出 (Outlier Detection)」を学べる. Detecting Down Services with Healt…

mdline を使ってタイムライン(年表)を作ろう!

「mdline」を使うと「タイムライン(年表)」を簡単に作れる.実装は必要なく,Markdown から HTML に変換できる.シチュエーションは限定的かもしれないけど,非常に面白く,試してみた! github.com Ruby Releases History 今回は mdline を試すサンプルと…

Apollo Server と Apollo Client を写経しながら GraphQL を学べる「初めての GraphQL」を読んだ

2019年11月に発売された「初めての GraphQL」を読んだ.1度ザッと読んだ後に,気になっていた Apollo Server と Apollo Client の実装を写経しながら理解を深めていたため,書評をまとめるのに少し遅れてしまった. タイトルに「初めての」とある通り,Graph…

GraphQL Pokémon を使って楽しく学ぶ GraphQL クエリ

GraphQL クエリを学ぶ場合,気軽に使える API があると便利だと思う.よく見るのは GitHub GraphQL API や Star Wars API だけど,個人的に Star Wars の映画を観たことがなく,データの理解が難しいため,良さそうな API を探していた.すると,GitHub で公…

Envoy の EDS を REST API で体験する「API Based Dynamic Routing Configuration」を試した

今回は「Try Envoy」の「API Based Dynamic Routing Configuration」を紹介する.前回紹介した「File Based Dynamic Routing Configuration」と関連した内容だけど,今回は API を使った「ディスカバリサービス (xDS)」を学べる.特に Envoy は REST と gRPC…

JetBrains エディタで API リクエストをコード化できる「HTTP client」

実装した API の動作確認とテストをするときに,今までは curl と Postman を主に使っていたけど,最近は JetBrains エディタで使える「HTTP client」も併用している.今日は API リクエストをファイルに記述しコード化できる「HTTP client」の概要を紹介す…

Envoy のディスカバリサービス (xDS) を学べる「File Based Dynamic Routing Configuration」を試した

今回は「Try Envoy」の「File Based Dynamic Routing Configuration」を紹介する.今までの内容は envoy.yaml に static な設定をしていたけど,設定を dynamic に反映できる Envoy の「ディスカバリサービス (xDS)」を学べる.また Envoy は xDS として「Fi…

今から Ansible に入門する初学者は読むべし /「Ansible 実践ガイド 第3版」を読んだ

2019年10月に発売された「Ansible 実践ガイド 第3版」を読んだ.実は今年の頭に「第2版」を購入していて,読もう読もうと積読をしていたら「第3版」が発売されたため,すぐに買い直して積読の優先順位を入れ替えた.個人的にプロダクション環境だと Chef の…

Envoy で HTTPS 接続をする設定を学べる「Securing traffic with HTTPS and SSL/TLS」を試した

どんどんと「Try Envoy」を進めていく.今回は Envoy で HTTPS 接続を試すコンテンツ「Securing traffic with HTTPS and SSL/TLS」を紹介する.今まで nginx を使う場合は ssl_certificate や ssl_certificate_key を設定したり,HTTP から HTTPS にリダイレ…

nginx と Envoy の設定を比較して学べる「Migrating from NGINX to Envoy Proxy」を試した

引き続き「Try Envoy」を使って Envoy を学ぶ.今回は nginx と Envoy を比較したコンテンツ「Migrating from NGINX to Envoy Proxy」を紹介する.nginx の nginx.conf を Envoy の envoy.yaml にどのようにマイグレーションするのか?を学べる. Migrating …

nginx でアクセスログを JSON フォーマットにする場合は「escape=json」を設定する

nginx で nginx.conf に access_log と log_format を設定すると,ログフォーマットをカスタマイズできる.log_format のデフォルト設定は combined だけど,ログ集計などを考慮して,JSON フォーマットに変更する場面も多いと思う.例えば,以下のように lo…

Dockerfile に HEALTHCHECK を設定すると「ヘルスチェック機能」が使えるようになる

今回は Docker で使える「ヘルスチェック機能」を試す.Release Note を読むと,機能としては Docker 1.12 から使えるらしく,3年前からあったなんて...!仕組みとしては,Docker デーモンからコンテナに指定したコマンドを定期的に実行する. Dockerfile 構…

「Try Envoy」で Envoy を学ぼう!「Getting Started with Envoy」を試した

Envoy のサイトに「Try Envoy」という学習コンテンツがあり,現在は以下の「計11種類」のシナリオから選んで学べる.実際にはブラウザベースで進められる Katacoda の学習コンテンツが埋め込まれているため,特別な環境構築をせずに進められるのは便利. Get…

Redash v8 を試そう!「Redash ハンズオン資料」v8 をリリースした

2019年10月末に Redash の最新バージョン「Redash v8.0.0」がリリースされた.多くの新機能と機能改善があり,既にまとめている. kakakakakku.hatenablog.com Redash ハンズオン資料 v8 リリース 2017年12月に公開した「Redash ハンズオン資料」も,Redash …

includeIf を使って git config をプロジェクトごとに読み替える

GitHub と AWS CodeCommit を併用したり,プロジェクトごとに別アカウントを使ったり,リポジトリごとに git config を変える場面もある.今までは個人用 GitHub を global 設定とし,別アカウントはリポジトリごとに git config --local コマンドで設定をし…

「Redash v8.0.0」で気になった新機能と機能改善

2019年10月末に Redash の最新バージョン「Redash v8.0.0」がリリースされた.Change Log を読むと機能改善が多くあり,今回は「個人的に気になった Redash v8 新機能と機能改善」を「計10点」紹介しようと思う.Change Log は以下の CHANGELOG.md で確認で…

変更可能なコードを書こう /「レガシーコードからの脱却」を読んだ

9月に発売された「レガシーコードからの脱却」を読んだ.本書はサブタイトルに「ソフトウェアの寿命を延ばし価値を高める9つのプラクティス」と書いてある通り,変更可能なコードを書くための「原則とプラクティス」に対する理解を深めることを目的にして書…

VS Code で Jupyter Notebook を便利に編集できる新機能を試した

今月 Visual Studio Code (VS Code) で Python Extension 機能のリリースがあり,例えば VS Code から直接 .py を実行できるようになった.個人的に注目したのは「Jupyter Notebook サポート」で,日頃から Python のサンプルコードを書いたり,トレーニング…

インターネットを支える DNS の理解を深めよう /「DNS がよくわかる教科書」を読んだ

2019年10月から2019年12月までの3ヶ月間を「弱点克服期間」と位置付けていて,自分自身「理解が浅いな」と感じる技術領域のインプット/アウトプットを意識的に増やしていく.最近 React 関連のブログを書いているのも,フロントエンド技術に対する弱点克服…

React Hooks 入門 : useEffect() を試す

React 16.8 で追加された新機能「React Hooks」は React の機能を効率的に使えるようにする仕組みで,具体的には useState() や useEffect() などを使う.日本語化されたドキュメントが非常に読みやすく,以下のドキュメントを読むと React Hooks の概要を学…

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

引き続き Material-UI を使ったプロトタイプ開発をしている.今回は Material-UI の Snackbars コンポーネントをサンプルコードを参考に実装しながら理解を深めていく.スナックバー(Snackbars)は Material Design に定義された UI で,画面上にメッセージ…

多くの解析メトリクスをサポートしたコード解析ツール「SonarQube」に入門した

前から気になっていたコード解析ツールに「SonarQube : Code Quality and Security」がある.25種類以上のプログラミング言語をサポートし,多くの解析メトリクスを出力できる点が特徴と言える.たまに「SonarQube」の話題を聞くけど,個人的に今まで使った…

シンタックスハイライトをしたコードを PowerPoint / Keynote に載せる

日頃からプレゼンテーション資料を作る場面が多く,PowerPoint と Keynote をよく使う.さらにプレゼンテーション資料にシンタックスハイライトをしたコード(JSON / YAML なども含む)を載せることもある.今まで何度も「どうやってシンタックスハイライト…

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

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

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

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

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

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