kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

Mac の「画面共有」を使って「配信用 Mac」と「デモ用 Mac」を使い分ける

Mac

「リモート研修」を配信する場合「配信アプリ / 配信機材 / Chrome / PowerPoint / Visual Studio Code / iTerm2」など,必要最低限なアプリに限定したとしても,Mac の負荷(特に CPU と Network)が高くなってしまう.なお,環境としては MacBook Pro 2017…

GitHub Actions と hadolint を組み合わせて Dockerfile の静的解析を自動化しよう!

GitHub Actions と hadolint (Haskell Dockerfile Linter) を組み合わせて,今まで雑に実装してきた Dockerfile の静的解析を自動化する環境を作った.できる限り Dockerfile Best Practices を意識していることもあり,警告はあまり多く出なかったけど,や…

GitHub Actions に入門するなら GitHub Learning Lab の Hello World コースを受講しよう

GitHub を学ぶときに「GitHub Learning Lab」を使うと便利!という紹介記事を6月に書いた.最近 GitHub Actions を使う機会があり,入門するために「GitHub Learning Lab」の「GitHub Actions: Hello World」コースを受講した.今回も非常に良かった! kakak…

Woody もパネラーに!Mob Programming Gathering 2020 に参加した

6/26 にリモート開催された「Mob Programming Gathering 2020」に参加した.イベントは「Agile New England」コミュニティによって開催された.なお,開催時間は 12:00 - 14:30 EDT となり,日本時間だと 1:00 - 2:30 JST だから少し仮眠をしてから参加した…

Hugo の OGP 画像を自動生成できる「tcardgen」を試した

Twitter などソーシャル上でブログ記事に興味を持ってもらうために「OGP 画像」を設定することは重要で,必ず何かしらを設定するようにしている.代表的なブログプラットフォームだと,デフォルト画像だけじゃなく,記事からリッチな OGP 画像を自動生成でき…

Bot と一緒にインタラクティブに GitHub を学べる GitHub Learning Lab は素晴らしい学習体験だった

新しく技術を学ぶときに「どんな第一歩」を踏み出すか.僕は「体系的に学ぶ」ことが好きで,技術書を読むことが多い.全体感を把握することで安心できる性格であることも関係していると思う.さらに「実際に体験する」ことも好きで「学習コンテンツ」をよく…

リモートモブプログラミングで意識するべき15個の原則とは /「Remote Mob Programming」を読んだ

最近では,場所に制限されずに実施できる「リモートモブプログラミング」を採用しているチームも多いと思う.もともと「モブプログラミング」に慣れているチームなら,急に「リモート」に移行しても「特に変わらなかった」と感じるかもしれないけど,慣れて…

Keycastr と VS Code Screencast Mode を使って Mac で入力したキー操作を画面表示する

ブラウザ/エディタ/ターミナルなどを使いながら「入力したキー操作」を画面表示したデモ動画を収録する機会がたまにある.今回は Mac で使える選択肢として「Keycastr」と「VS Code (Visual Studio Code) Screencast Mode」を紹介する.Mac で幅広く使うな…

Dependabot の config.yml に「Automatic PR merging」を設定する

Dependabot を使うと「依存パッケージ」の更新を自動化できる.対応言語も幅広く,個人的には JavaScript / Ruby / Python / Docker をよく使っている.最高に便利なんだけど,例えば JavaScript などはリリース頻度が高く,すぐにプルリクエストが溜まって…

モノリポ時代に知っておくと便利な「git sparse-checkout」

今まで使っていなかった Git コマンドを学んでいく.今回は git sparse-checkout を試す. git-scm.com git sparse-checkout とは? コマンド名にある sparse は「わずかな」という意味で,Git リポジトリの「一部」を取得できる.git clone --depth を使っ…

Slack で /zoom コマンドを使って Zoom Meeting を作る

Slack に「Zoom App」をインストールすると /zoom コマンドを使って Zoom Meeting を簡単に作れる.Slack から「Join」ボタンを押せばすぐに Zoom Meeting に参加できるため,例えば「クイックコール」をするときなど,便利に使える. インストール 「Zoom A…

リモートモブプログラミングで Git Handover をシュッと実現する「mob」コマンド

「モブプログラミング」を採用すると「全員で同じタスクに取り組む (WIP 1)」ため,複雑な Git ブランチ戦略は必要なくなる.例えば master ブランチと develop ブランチだけで運用することもできる.今回紹介する mob コマンドを使うと,モブセッションで繰…

オブザーバビリティ(可観測性)とは何か?を学べる「Distributed Systems Observability」を読んだ

2019年頃から「オブザーバビリティ (Observability)」もしくは「可観測性」という言葉をよく聞くようになった(本記事では「オブザーバビリティ」という表記に統一する).「マイクロサービス」と同じように「バズワード」の側面があり「オブザーバビリティ…

仮想オーディオデバイス「BlackHole」を使って Mac から音楽を配信する

Mac

「リモート会議」や「リモート研修」のときに,Mac から直接音楽などを配信したかった.具体的には,リモート会議の開始前に無言で待っているのではなく,リラックスのために音楽を流したり,リモート研修の開始前にオーディオテストをするために音楽を流し…

便利すぎる!Mac のメニューバーでサウンド設定を変更するときは「Option キー」を使う

Mac

最近「リモート会議」や「リモート研修」も多く,オーディオインタフェース(入出力)をよく切り替えている.今回は Mac で簡単にオーディオインタフェースを切り替える Tips を紹介する.なんと「Option キー」を使うだけ! サウンドアイコンをメニューバー…

Autify で「JS ステップ」と throw new Error() を組み合わせてアサーションを実装する

Autify のレコーディング時にシナリオに追加する「検証ステップ」は,基本的に「〜を確認する」という「正常確認」のテストになる.例えば「URL を確認する」や「対象のテキストを確認する」など.しかし,実際には「特定の条件を満たさなかったらテストをエ…

Autify で「JS ステップ」と return を組み合わせて計算結果を入力値に使う

昨日の記事では Autifiy の「データ機能」を試した.テストデータのパターンを増やす場合に便利に使える. kakakakakku.hatenablog.com さらに E2E テストを検討していくと,「データ機能」のようにパターンを決めるのではなく「シナリオ実行時に動的に入力…

Autify でテストデータのパターンを増やすなら「データ機能」を使う

今までレコーディングをしてきた Autify のシナリオは,ある意味「固定的な」ステップだった.例えば「キーワード GitHub で記事を検索」や「Envoy カテゴリをクリック」など.実際に E2E テストを検討する場合,テストデータのパターンを増やしたくなる.例…

Autify で記事一覧から「1記事目」を厳密にクリックする

先週 Autify を使って kakakakakku blog の画面遷移をするシナリオをレコーディングしたときに「最新記事(1記事目)」をクリックするステップを作った(はずだった).しかし Autify のシナリオを数日間実行し続けたところ,実は「最新記事(1記事目)」を…

Autify を使って「スマホレイアウト」をレコーディングする

先週に続き「E2E テスト自動化プラットフォーム Autify」を試す.今回は「スマホレイアウト」をレコーディングする.Autify の基本的な操作などは以下の記事を読んでもらえればと! kakakakakku.hatenablog.com 「スマホレイアウト」をレコーディングする 今…

「iPad mini 4 + Elemiya タッチペン + Jamboard」で実現するデジタルホワイトボード環境

最近「リモート研修」や「リモート勉強会」も多く「デジタルホワイトボード環境」を作る必要があった.既にペンタブレット(GAOMON 製 と Parblo 製)を比較のために購入したけど,在庫がなく5月末発送になるため,暫定対応(できる限り安く)を考えていた.…

E2E テスト自動化プラットフォーム「Autify」を使ってシナリオをレコーディングする

2019年10月に正式リリースとなった「E2E テスト自動化プラットフォーム Autify」を試す.今回は Autify の CTO 松浦さん (@dblmkt) に期間限定の検証アカウントを作っていただいた.ありがとうございます! autify.com 今まで Selenium や Capybara (Polterg…

git diff の結果を HTML に変換する「diff2html-cli」

最近 git diff の結果を GitHub プルリクエストのようなインタフェース (HTML) に変換する必要があった.既にツールがあるだろうと思って調べたところ「diff2html-cli」を使えば git diff の結果を HTML に変換できるとわかった.今回は diff2html-cli を紹…

最高すぎる!Gmail のフィルタ設定をデプロイできる CLI「gmailfilters」

無限に届くメールを整理するために Gmail の「フィルタ設定」を使っている人は多いと思う. ラベルを付けたり アーカイブをしたり 削除をしたり 僕自身 Gmail を10年以上(メールを遡ったら2006年頃から)使っているため,歴史的な経緯から「フィルタ設定」…

今だからこそ読み直す「エンジニアのための時間管理術」

2006年に出版された「エンジニアのための時間管理術」を2009年(大学院時代)にはじめて読んだ.本書はエンジニアを対象にした書籍であり,その後 SIer でシステムエンジニアとして働きながら何度も読み直した.もともとプロダクティビティを追求することに…

Next.js 9.3 で使えるようになった getStaticProps と getServerSideProps

2020年3月にリリースされた Next.js 9.3 から,アプリケーションをビルドする戦略として以下3種類の API が使えるようになった.Next.js Blog では「Next-gen Static Site Generation (SSG) Support」と紹介されていた. getStaticProps 「ビルド時」にデー…

Next.js に入門するのに便利な create-next-app の with-typescript テンプレート

最近 Next.js Learn を使って Next.js に入門した.今度は Next.js でプロトタイプを実装しながら学ぶため,プロジェクトの初期構築として create-next-app を使うことにした.少し調べたところ,create-next-app はもともと Segment 社で実装されて,現在は…

Chrome DevTools で「オフライン環境」をエミュレートする

例えば「オフライン対応」のアプリケーションを実装して動作確認をするときなど「オフライン環境」が必要になる場合もある.単純に WiFi をオフにすれば良いこともあるけど,WiFi をオフにせず,部分的にオフライン環境をエミュレートできると便利.具体的に…

git checkout の代替としてリリースされた git switch と git restore

Git

2019年8月にリリースされた Git 2.23 から,Experimental(実験的機能)として新コマンド git switch と git restore が使える.今までずっと使ってきた git checkout は機能が多すぎたため,機能を分割し git checkout の代替としてリリースされた.個人的…

Kubernetes の CronJob に設定できる concurrencyPolicy と suspend を試した

Kubernetes の CronJob を使って Job を定期的に実行するときに,マニフェストに設定できるフィールド concurrencyPolicy と suspend を試す機会があった.振り返りながら整理しておく. kubernetes.io Concurrency Policy とは? CronJob では,例えば「ジ…