サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
マンガ大賞候補作は
kakakakakku.hatenablog.com
仕事に関係なく「話したいなぁ〜」と思った相手とのミーティング(1on1 / 壁打ち / 技術雑談など)を気軽に申し込めるサービス「Calendly」を紹介する❗️ちょっと前から気になってて,試してみたら便利でさっそく導入(テスト運用中)もしてみた.機能は限られるけど,無料で使える "Basic" でも問題なさそう〜 calendly.com Calendly 操作イメージ🎤 Calendly を使って「ミーティングを申し込む流れ」を見てもらえばイメージは掴めると思う❗️ 1. Calendly サイトにアクセスする Calendly サイトにアクセスすると,設定しているイベント「1on1」を選べる.本当は「Blog 1on1」や「Tech 1on1」や「General 1on1」など複数イベントを設定したかったけど,Basic プランだと1イベントのみ設定できるようになっている. 2.
GitHub App「Pull Request Size」を使うとプルリクエストの差分量から "サイズを意味する" ラベルを付けてくれて便利❗️やってることは単純だけど「このプルリクエストは大きすぎるな〜」という判断材料にも使える.個人アカウントなら無料なのも嬉しい✌️ github.com ラベル一覧 ラベルに関しては以下の「計6種類」が用意されている! size/XS : 差分量 0-9 行 size/S : 差分量 10-29 行 size/M : 差分量 30-99 行 size/L : 差分量 100-499 行 size/XL : 差分量 500-999 行 size/XXL : 差分量 1000 行 以上 差分量の計算式と除外ファイル 「差分量」を算出する計算式は GitHub に載っていて,基本的には「追加 + 削除」になる.でも generated file(自動生成され
リアルなテストデータを簡単に作ってモック化までできるサービス「Mockaroo」を紹介する❗️データベースのテストデータを作ったり,フロントエンドを実装するときに必要になるバックエンド API をモック化できる.テストデータに test や hoge という文字列を使ってしまうと本番環境相当の確認がしにくく,できる限りリアルなテストデータを作りたい場面は多くあると思う💡 www.mockaroo.com Mockaroo の特徴としては,サポートしてるタイプがなんと現時点で「13 カテゴリ(169 種類)」もある.以下にカテゴリごとにタイプ数をまとめる.What's new を見ると,定期的にタイプは増えている. Advanced(10 種類) Basic(29 種類) Car(1 種類) Commerce(13 種類) Construction(6 種類) Crypto(7 種類) H
Parquet ファイルをサクッと読むときに parquet コマンドを使うと便利❗️ Homebrew なら brew install parquet-cli コマンドで簡単にセットアップできる.今回は最新 v1.12.3 を使う.そして parquet コマンドの実装は GitHub の apache/parquet-mr リポジトリにある.parquet help コマンドの出力だと引数まで細かく把握できず,実装を確認する必要がある.実装は parquet-cli/src/main/java/org/apache/parquet/cli/commands/ ディレクトリにある. $ brew install parquet-cli $ brew info parquet-cli ==> parquet-cli: stable 1.12.3 (bottled), HEAD github
HTTP ヘッダーを使ってアプリケーションのパフォーマンスメトリクスをクライアント側に返す仕様「Server Timing」を調べながら試してみた.詳細な仕様は以下の W3C ドキュメントに載っている.ドキュメントの Introduction に載っているけど,今まではクライアント側で "レスポンスタイム" は確認できても「どの段階でなぜ時間がかかったのか」という詳細までは確認できなかったという背景がある.そして Google Chrome 65 以上など,Server Timing をサポートしてるブラウザなら DevTools で可視化できる❗️ www.w3.org Server Timing 仕様 仕様としては HTTP ヘッダー Server-Timing にパフォーマンスメトリクスを設定してレスポンスを返す.フォーマットは以下の通り(W3C ドキュメントを引用). Server
Textual は Python を使って TUI (Text User Interfaces) アプリを構築できるフレームワークで,ドキュメントには "電卓" や "Color Picker" を実装したサンプルが載っている.アプリのデザインには CSS を使う.Python x CSS という技術スタックで,入門しやすくなっているのもメリットだと思う. textual.textualize.io Textual に入門するために Tutorial に載っている「ストップウォッチアプリ」を実装してみた.それぞれのストップウォッチで計測できて,ストップウォッチの追加/削除もできる.また dark モードと light モードを切り替えることもできる.簡単に実装できるし,何よりも楽しかった❗️Textual スゴイ✌️ また以下のギャラリー (Projects using Textual)
仕事でインストラクター(技術講師とも言う)になって4年を超えた.また直近2年半ほどはオンライン研修(リモート研修とも言う)をしている.インストラクターはただスライドに書いてあることを喋るのではなく,教授戦略を練って,インストラクションデザインを考えて,お客様の学びを最大化する.とにかく「やりがいのある」仕事だと思う. 当然ながら,インストラクターとしての「ベストプラクティス」的なものはあれど,最終的にはインストラクター自身の「個性(強みや特徴など)」を活かして研修を提供することが重要になる.個性は多岐にわたる!ただし,インストラクター育成をしながら「それは改善しようか!」と伝えることが多い「振る舞いに関するアンチパターン」がある.強制はしないものの今まで繰り返し伝えていて,今後はブログ記事を渡せるようにしたく,今回「汎化して」まとめることにした. 本題に入る前に注意点を載せておく.あくまで
ID を採番するときによく使われる UUID Version 4 の課題として「順序性がなくソートしにくい」という側面があり,ULID (Universally Unique Lexicographically Sortable Identifier) を使えばソートできるようになるという記事を前に書いた. kakakakakku.hatenablog.com 関連して調査をしていたら,標準化団体 IETF (Internet Engineering Task Force) によって,UUID Version 6, 7, 8 という新しい仕様が提案(ドラフト段階)されていることを発見した❗️UUID Version 6, 7, 8 の目的を簡単にまとめると「タイムスタンプ情報を使ってソートできる ID を採番できるようにする」となり,もしこの仕様が取り込まれると,UUID を活用する幅がさ
ブラウザ操作を自動化して,E2E (End to End) テストやスクレイピングをするときに使えるライブラリ Playwright を試す.Playwright の特徴としてまず「クロスブラウザ」があり,Chromium / Firefox / WebKit をサポートしている.また「複数言語」という特徴もあり,Node.js / Python / Java / .NET をサポートしている.今回は Playwright for Python を前提にする. playwright.dev Playwright の前に 過去の経験を思い出すと,Capybara + PhantomJS で E2E テストを実装していた(2015-2016年頃でなつかしい!).また最近だと Puppeteer や Amazon CloudWatch Synthetics を使う機会も増えている.しかし,個人的
2022年8月に「村上式シンプル英語勉強法」を読み直した.Amazon の購入履歴を見るとなんと2012年(新卒で入社した外資系 SIer に在籍しているとき)に購入していた!当時読んだ記憶はもう薄れているけど,10年たって改めて読み直した❗️って今だと Kindle で 624 円で買えるじゃん〜 村上式シンプル英語勉強法 作者:村上 憲郎ダイヤモンド社Amazon 本書は当時 Google アメリカ本社副社長をされていた村上憲郎さんが,30歳まで英語を話せず,そこからどのように英語を学習をしたかというプラクティスと体験談がまとまっている.本当に読みやすく,文章量も少なく,読むだけならすぐに終わると思う.2022年8月に読み直して,そこからコツコツと本書に載っているプラクティスなどに取り組んでいて,やっと書評記事を書こうと思った. 本書を読むと,とにかく村上憲郎さん学習量と学習時間がもの
データベースのマイグレーションを行うツール migrate を試した.migrate は MySQL / MariaDB / PostgreSQL / Amazon Redshift / MongoDB / Cassandra など,多くのデータベースに対応している.GitHub リポジトリを見るともっと多くのデータベースに対応していることがわかる.他にも GitHub や Amazon S3 に置かれたマイグレーションファイルを直接読み込む機能や Go ライブラリとしてアプリケーションに組み込める機能などもある.今回は MySQL を使ってマイグレーションの基本的な機能を試す❗️ github.com インストール macOS だと Homebrew を使って簡単に migrate CLI をインストールできる.今回は v4.15.2 を使う. $ brew install golang
コードを書き換えず,フラグを使って機能を有効化するプラクティスを「Feature Flag(もしくは Feature Toggle)」と言う.Feature Flag を実現するサービスとして「Unleash」があり,単純に機能を有効化するだけではなく,有効化する条件を設定したり,カナリアリリースもできる.多くの機能が揃っていて,管理画面もある.今まで使ったことがなく「Unleash」を試していく!数記事に分割する予定! www.getunleash.io Unleash Demo まずは「Unleash」の挙動を確認するため,公開されているデモ「Interactive demo」を試す.「Unleash」を導入したフロントエンドアプリケーション(React で実装された SPA)と管理画面を操作できる.管理画面にログインするためにメールアドレスを入力必要があるけど,特に認証は求められず,
フロントエンドのプロトタイプ実装をするときや API を使ったアプリケーションを実装するときなど「ササッと使える API があると便利なんだけどー!」という場面はよくある!本当によくある.今回紹介する GitHub の public-apis リポジトリは,2022年8月時点で「1400 以上」の API が載っていて,使いたい API がきっと見つかるはず! 僕自身は2019年頃から public-apis リポジトリを参考にしていて,今までブログで紹介していなかったことに気付いた!今回は public-apis リポジトリと個人的によく使っているおすすめ API を紹介する.ちなみに GitHub issue を見るとすぐに気付くけど,リポジトリ運営に課題があるらしく,特に今年になって状況は悪くなっていると思う.今後どうなることやら... github.com public-apis
2018年に発表された論文「Ten quick tips for teaching programming(意訳 : プログラミングを教えるための簡単な 10 Tips)」を読んだ.直近は技術講師(インストラクター)として4年間ほどクラウドなどを教えていて,コースによってはプログラミングを教える機会はあるし,2018年までは2年間ほど TechAcademy で Ruby / Rails 講師をしていたし,キャリアとして「今まで」も「今後」もプログラミングを教える続けると思う.そこで,今までの教授戦略を振り返るためにも本論文に興味を持った! (PDF) Ten quick tips for teaching programming 本論文に載っている 10 Tips は以下で,日本語訳は意訳してみた! Tip 1: Remember that there is no geek gene(ギ
プログラミングを教えるときに使える「Parson's Problems(もしくは Parson's Puzzles とも言う)」というプラクティスを最近知った!「Parson's Problems」はコードの各行がバラバラになっていて,インデントも含めて正確に並び替えたら正解になるというパズルのようなプログラミング学習スタイルという感じ.以下に載せた parsons.problemsolving.io のキャプチャ(お題 : 数列から最大値を見つける)を見ればイメージできると思う. 「Parson's Problems」は特に入門者にプログラミングを教えるときに効果的!コードを書かずにドラッグアンドドロップで試行錯誤できて,パズルのように楽しめる.また入門者がコードを読む機会にもなる.入門者にとって,コードをゼロから実装するのは難しく,挫折する理由になることもある.そこで,実際に教育の現場
2000年に発表された論文「The Costs and Benefits of Pair Programming(意訳 : ペアプログラミングのコストと利点)」を読んだ.個人的にペアプログラミングやモブプログラミングの経験はそれなりにあって,メリットとデメリットは理解しているつもりだけど,論文としてどうまとまっているんだろう?という点に興味を持った! 発表されてから20年以上も経過するけど,今読んでも内容は陳腐化してなく,参考になるし,納得感もあった.もし,現場にペアプログラミングなどのプラクティスを導入したくても「ペアプログラミング?単純にコスト2倍で非効率!ダメゼッタイ🙅」なんて言ってくる上司がいたらこの論文を使って説得しましょう!笑 (PDF) The Costs and Benefits of Pair Programming 開発時間は 15% 増えるけど...? 本論文を読ん
Pluto を使うと Kubernetes マニフェストの apiVersion に対して deprecated(非推奨)と removed(削除)を検出できる.警告自体は Deprecated API Migration Guide | Kubernetes を見れば確認できるし,kubectl apply コマンドを実行したときにも表示されるけど,Pluto は実行前に確認できて便利!パイプラインに組み込むのも良し! github.com セットアップ Pluto CLI は macOS なら Homebrew を使えば簡単にセットアップできる.今回は現時点で最新となる Pluto v5.10.2 を前提とする. $ brew install FairwindsOps/tap/pluto $ pluto version Version:5.10.2 Commit:0070fa70364
「Diagrams」を使うと Python コードでアーキテクチャ図を生成できる.サポートされているアイコンセットがとても多く AWS や Google Cloud や Microsoft Azure もあれば,Kubernetes やプログラミング言語なども使える.試してみたけどめちゃくちゃ便利!まさに Diagram as Code だ✌️ diagrams.mingrammer.com セットアップ 「Diagrams」は Graphviz に依存しているため,macOS だと pip と brew ですぐにセットアップできる. $ pip install diagrams $ brew install graphviz 試してみた さっそく Examples を参考にアーキテクチャ図を作ってみた! サンプル : AWS from diagrams import Cluster, D
ブログ記事に「ディレクトリ構造」を載せるときは tree コマンドを使っている.ディレクトリ構造が深すぎるときは tree -L で深さを指定できるし,不要なディレクトリがあるときは tree -I で除外もできる.今まで書いたブログ記事にも多くディレクトリ構造を載せてきた😆 tree.nathanfriend.io tree.nathanfriend.io を使うと tree コマンド風のディレクトリ構造をウェブサイトで簡単に生成できる.そのままコピーしてすぐブログ記事に貼れるのは便利〜👏 今まで同じようなツールを実装しようと思ったこともあったし,今後は tree コマンドと併用してみようと思う. tree.nathanfriend.io . └── Edit me to generate/ ├── a/ │ └── nice/ │ └── tree/ │ ├── diagram!
jupyter nbconvert コマンドを使うと Jupyter Notebook を Python コード / PDF / HTML などに変換できる.指定できるフォーマットの一覧は GitHub に載っている.また Jupyter Notebook で使える Download as メニューも同じ仕組みを使っている. github.com Python コード Jupyter Notebook を「Python コード」に変換するなら --to script オプションを使う.例えば,MLOps として「データサイエンティスト」の実装した Jupyter Notebook を「機械学習エンジニア」が Python コードにリファクタリングするときに使えたりする. $ jupyter nbconvert --to script xxx.ipynb PDF Jupyter Notebo
記述したテンプレートから YAML を生成するツール 「ytt」 を試す.ytt は YAML に対して「テンプレート機能」と「オーバーレイ機能」が使える.VMware 社を中心に開発されているツールセット Carvel に含まれている. carvel.dev YAML のテンプレート機能やオーバーレイ機能と言えば,特に Kubernetes の文脈だと Kustomize や Helm が代表的だと思う.ytt も似たように使えるけど Kubernetes に限らず「汎用的に使える」というメリットがある.他にはテンプレート構文を含めても「YAML フォーマットとしては valid のまま」という点もメリットに挙げられると思う.汎用的に使えるということは,例えば AWS CloudFormation テンプレートを生成することにも活用できる.ytt と関連ツールの違いは以下のドキュメントに
コンテナワークロードにおけるセキュリティ対策の理解を深めるため「Docker/Kubernetes 開発・運用のためのセキュリティ実践ガイド」を読んだ.実は本書は 2021年7月頃 に1度読み終わっていたけど,実際に気になった部分を試したり,CKS (Certified Kubernetes Security Specialist) を受験 しながら読み直していたら書評記事をまとめるのが遅れてしまった (;・∀・) 本書を読んで1番良かったと感じるのは「セキュリティに関して "知らなかったことに気付けた"」ことだと思う.苦手意識のあるセキュリティ領域に対して「視野を広げる」ことができた.本当に読んで良かったと思うし,何よりも「日本語で」読めることに感謝しかない!本書は 2020年2月 に出版されていて,Kubernetes 1.16.1 を前提にしていたり,ランタイムなども含めて多少のアッ
CNCF (Cloud Native Computing Foundation) の Kubernetes 関連資格 KCNA (Kubernetes and Cloud Native Associate) に合格した! ついに「4冠」になったー 🎉 まだまだ KCNA の日本語情報は少なく,資格の普及も兼ねて紹介記事としてまとめておこうと思う. www.cncf.io 前提と結果 ☸️ 僕自身は技術講師として研修で Kubernetes と Amazon EKS を教える機会があったり,既に Kubernetes 資格 CKAD (Certified Kubernetes Application Developer) と CKA (Certified Kubernetes Administrator) と CKS (Certified Kubernetes Security Speci
Kubernetes でコンテナワークロードの脅威検出として使える「Falco」に入門する.CNCF (Cloud Native Computing Foundation) で Incubating に位置しているプロジェクトで,今回は実際に Falco を使って Pod に対する操作(振る舞い)を検出したり,独自ルールを作る.Falco はコンテナに限らず,ホスト側のプロセスも監視できる. falco.org インストールをする 🦅 以下の検証環境を使う.ドキュメントに書いてある Ubuntu の手順をそのまま使って,ワーカーノードに簡単に Falco v0.31.1 をインストールできた.また Helm を使って Kubernetes 上に Falco を DaemonSet としてインストールをする選択肢もある.Falco は日本語ドキュメントがとても充実しててイイ✨ Kubern
前回の記事では seccomp (Secure computing mode) に入門するために「Docker と seccomp」を組み合わせて試した.docker run コマンドの --security-opt オプションを使って seccomp プロファイルを指定した. kakakakakku.hatenablog.com 今回は「Kubernetes と seccomp」を組み合わせて試す.設定や手順などは以下のドキュメントに詳しく載っている. kubernetes.io 検証環境 まず,kind を使って検証環境を構築する.以下の kind-config.yaml のように,ワーカーノードに seccomp プロファイルを置いたホスト側のディレクトリをマウントする(kubelet に読み込ませる).ドキュメントには ./profiles と書いてあるけど,今回は Docker
Kubernetes で Pod(正確にはコンテナ単位)に securityContext.readOnlyRootFilesystem: true を設定すると,ルートファイルシステムを読み取り専用にして書き込み操作を抑止できる.アプリケーションのセキュリティ対策として使える.補足をすると Kubernetes 固有の機能ではなく,Docker にも docker run コマンドに --read-only オプションが用意されている. securityContext: readOnlyRootFilesystem: true 検証 : BusyBox まず securityContext.readOnlyRootFilesystem: true を設定して BusyBox を起動するサンプルマニフェストを作る. apiVersion: v1 kind: Pod metadata: na
Kubernetes を使っていると,運用面で起動中の Pod を他のノードに移動(再スケジューリング)したくなる場面がある.以下に具体的な例を挙げる.理由としては,Kubernetes では kube-scheduler によって Pod を起動する前にノードが決まる仕組み(スケジューリング)になっている.よって,スケジューリング後の Pod は再スケジューリングされず,起動され続けることになる. ノードを追加した後に起動中の Pod を移動したい 一部ノードの使用率が高いので起動中の Pod を移動したい 後からノードに taint を追加したから条件に合わない Pod を移動したい Descheduler for Kubernetes 🧩 今回紹介する「Descheduler for Kubernetes」を使うと,設定した「戦略」によって起動中の Pod を再スケジューリングする
最近「Monokle」を使っている.Monokle(モノクレ)は「Kubernetes マニフェスト用エディタ」とも言えるアプリで,2週間ほど使って操作にも慣れてきたので紹介する!macOS でも Windows でもアプリをダウンロードすればすぐに使えるぞ! github.com 機能 ☸️ Monokle の機能(できること)はドキュメントに載っている.機能は本当に多くて,継続的にリリースもされている.今回は代表的な機能を4点紹介する!Monokle v1.6.0 を前提にする.UI は日々変わるかも! マニフェスト操作 Kustomize 対応 Helm 対応 Kubernetes クラスタ統合 kubeshop.github.io 検証環境 ☸️ 今回はブログ記事用にサンプルマニフェストを管理するディレクトリを作った(非公開).すぐに試すなら普段仕事などで使っている GitHub
「Software Design 2022年4月号」を読んだ.本誌の第2特集「堂々と使える!人に教えられる!本質から学ぶ Git」に寄稿をされた id:syobochim に献本(ギフトコード)をもらったので第2特集を中心にまとめる.献本ありがとうございます! Software Design (ソフトウェアデザイン) 2022年04月号 [雑誌] 技術評論社Amazon 第2特集 目次 本特集は以下の4章から構成されている.基礎的な内容から実践的な内容まで幅広くまとまっている.ただ内容的には 1,2,4 章と 3 章で前提となる技術レベルが違う気もするので,初学者は 1,2,4 章を読んで,Git の内部まで興味があれば 3 章も読んでも良さそう. 第1章 : コミットの記録、リポジトリの状態確認のやり方 第2章 : ブランチやリモートリポジトリの扱い 第3章 : 本質から学ぶ git コ
次のページ
このページを最初にブックマークしてみませんか?
『kakakakakku blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く