2022 ふりかえり

Job

昨年から入った顧客現場でのアーキテクチャ検討・アプリ基盤実装の業務を継続しています。

自社ではグループリーダー業務とテックサイト運営業務も継続しています。テックサイト運営業務は GitHub を使った記事執筆・レビューがメインで、公式 Twitter 運営、月次レポート作成などもやっています。GitHub や Netlify の機能を色々使って業務効率を上げています。リモートワークにおける社内コミュニケーションの場としても機能していて楽しくやっています。

Personal Development

個人開発については、会社テックサイトのアドベントカレンダーで書きました。

developer.mamezou-tech.com

記事にも書きましたが、今年は保守系の作業がほとんどだったので、またなにか新しいプロジェクト始められたらと思ってます。

Writing

会社テックサイトへの投稿

会社テックサイトに投稿した記事については四半期ごとにまとめてきました。今年は62本書いたようです。

3月に書いた Tauri の記事は僕にしてはかなりバズって、立ち上げ初期から半年ほど Google 検索からの流入を牽引しました。記事数だけでなく貢献できてよかったです。

developer.mamezou-tech.com

Software Design への寄稿

Software Design 7月号で久々に記事を執筆させていただきました。2015年7月号以来の7年ぶり。第2特集の「ソフトウェア開発のシン常識 - ツール、設計、開発スタイルからの多面チェック」です。

gihyo.jp

5月の連休を費やして3章構成の記事を書きました。これだけの分量は初だったのでけっこう大変でした。記事のアンケート結果や Twitter をエゴサした感じだと概ね好評のようでホッとしました。

Gadgets

M1 MacBook Pro 14 2021

Intel MacBook Pro の性能が限界だったので、プロジェクトの開発作業用に調達してもらいました。最初はApple シリコン向けのツールチェインが整っていないことが多くて Intel MacBook Pro を併用してましたが、最近はこの M1 MacBook Pro だけで作業ができています。

scrapbox.io

macOS の Sidecar を試しました。

kondoumh.hatenablog.com

Sidecar はすぐに使わなくなって、ユニバーサルコントロールで iPad を操作するようになりました。このセットアップは今も現役です。

kondoumh.hatenablog.com

あと、奥さん用に MacBook Air 2020(M1) を購入しました。最新版ではないですが、奥さんの MacBook Pro もすごく古いやつだったのでサクサクになりました。

来年 Mac mini の M2 版が出たら個人用にも買っていいかもと思いました。

ARZOPA A1 Gamut MINI

モバイルディスプレイを導入してみました。

scrapbox.io

持ち歩かず MacBook を3画面で使っています(真ん中下は iPad)。机が広ければフルサイズのディスプレイを縦置きして使いたいところです。

Pixel 7

発売と同時に購入。

scrapbox.io

Google Nest WiFi

Pixel 7についてきた Google ストアクレジットで購入。8年も使ってた AirMac Express をリプレースしました。スマホアプリでセットアップも簡単でした。

scrapbox.io

Software and Services

GitHub Codespaces

今年は Codespaces が GA になったのが大きいですね。

kondoumh.hatenablog.com

会社テックサイトにも記事書いてます。

github.co.jp

Gyazo

Scrapbox の Helpfeel が提供する画像共有サービス。

会社テックサイトの記事に貼るスクリーンショット置き場として重宝してます。矢印や枠を描き込んだり、モザイクかけられたりするのも便利です。デスクトップアプリも使いやすい。Pro に課金しました。

gyazo.com

Deno Deploy

Deno の開発元が運営するエッジコンピューティングサービスです。記事書いてます。

deno.com

Astro

MPA アーキテクチャを実現する SSG の Astro。これも記事書いてます。

会社テックサイトで採用している Eleventy も Astro と同様の機能を実装しています。

astro.build

Tauri

Tauri は記事にするためちょっとしたアプリを書いたぐらいでまだ本格的に使ってません。

最近モバイル対応機能もアルファリリースされました。Electron 代替として徐々に慣れていきたいと思います。

tauri.app

Mermaid

GitHub で対応されたこともあり、Markdown に Mermaid のコードブロックを書いて図を描くのが今年の初めにブームになりました。会社テックサイトでも Eleventy プラグインで導入されています。会社 Scarpbox でも Mermaid 用ユーザースクリプトをハッカソンで作った同僚がいて便利に使ってます。

mermaid.js.org

textlint

会社テックサイトで文章校正用に導入しました。指摘事項に対応していくと読みやすさの向上が実感できます。技術文書用のルールセットを適用しましたが、ブログ記事だと砕けた言い回しが却下されまくるのでそこはスルー。

github.com

Wordle

春先に流行り始め、毎日 bot のようにプレイ結果をツイートしてました。数ヶ月でやめてしまいましたが。

www.nytimes.com

マイナンバーカード

年初めにとうとうマイナカード作りました。確定申告や年末調整がオンラインでワンストップでできるようになりました。

www.kojinbango-card.go.jp

ドラクエウォーク

引き続きプレイ中。特級職やカジノが実装され、やることが多くなってしまいました。Pixel 7にスイッチしましたが、4年使った Pixel 3 XL はドラクエウォーク専用端末として稼働中です。

www.dragonquest.jp

ワークアウト記録用の Pixela。歩く量がキープできてるのはメリットです。

Twitter

来年どうなってるのか心配です。なんだかんだ依存しているので。

twitter.com

最後に

秋頃から週1出社して会社をコワーキングスペースのように使うというのをやってました。気分転換できるし家にいるより集中できるしわりといいです*1。来年も気分転換を図りながらマイペースでやっていきたいと思います。

*1:リモートワーク始めた頃は会社にいるより集中できていいと思ってたのですが。

2022 10-12月の会社テックサイトへの投稿記事

3Qのテックサイトへの投稿記事です。

10月

developer.mamezou-tech.com

WASI 対応 WebAssembly ランタイムである Wasmtime が v1.0 到達したので、Rust で簡単な WASM を書いて開発の流れをまとめてみた記事です。

developer.mamezou-tech.com

Spring for Apache Kafka を使用した開発で、Kafka の環境を構築しなくても Integration Test ができる EmbeddedKafka の使用方法を解説した記事です。

developer.mamezou-tech.com

GitHub の Code scanning alerts の結果を VS Code 上で確認できる SARIF Viewer 拡張について書いた記事です。

developer.mamezou-tech.com

Deno 連載3回目は SSR について書きました。

developer.mamezou-tech.com

GitHub Projects がリニューアルされてオートメーションも刷新されたので記事を書きました。リニューアルの記事自体は、7月に書いています。

GitHub Projects がリニューアル - スプレッドシートのビューが利用可能に | 豆蔵デベロッパーサイト

developer.mamezou-tech.com

ポータブルな CI/CD ツール Dagger でパイプラインを Go で書けるようになったので試して書いた記事です。

Dagger は4月の記事で紹介していました。

話題の CI/CD ツール Dagger を体験してみる | 豆蔵デベロッパーサイト

11月

developer.mamezou-tech.com

Deno 連載4回目は環境変数やプロセス周りなど OS 機能の処理、そして、FFI(Foreign Function Interface) の利用方法について書いています。

developer.mamezou-tech.com

Codespaces がベータから GA になり、言語やフレームワーク別のテンプレートを選んで使えるようになったので書いた記事です。

developer.mamezou-tech.com

Deno 連載5回目、WebAssembly の利用について書いています。Wasmtime や Wasmer のように WASI 対応ではなくブラウザ用の WASM がそのまま使えるのが逆にすごいと思いました。

developer.mamezou-tech.com

Deno 連載6回目、Deno Deploy の使い方と静的ファイルの配信方法を説明した記事です。Deno Deploy が正式公開されたら何かサイトを公開したいと思いました。

この記事で Deno 連載が Deno Land の kt3k さんに捕捉されておりちょっと嬉しかったです。

developer.mamezou-tech.com

Deno 連載最終回、大体書きたいことも書けた気がしたので、最後は Deno のサブコマンドをざっと紹介して終わりました。

12月

developer.mamezou-tech.com

アドカレ記事第1弾、個人開発について振り返りました。

developer.mamezou-tech.com

アドカレ記事第2弾、CodeQL を VS Code で使う記事です。CodeQL については6月に記事にしていました。

GitHub の脆弱性検出機能 Code scanning alerts と CodeQL について | 豆蔵デベロッパーサイト

developer.mamezou-tech.com

Slack の GitHub に機能が追加されて GitHub Actions ワークフローの実行イベントを Slack に通知できるようになったので設定方法と使用感を記事にしました。これは便利なので使わないという選択肢はないと思いました。

developer.mamezou-tech.com

アドカレ記事第3弾、Wasmer 3.0 の目玉機能である、WASM からのバイナリ生成機能を試した記事です。

developer.mamezou-tech.com

アドカレ記事第4弾、private リポジトリの Action と再利用可能ワークフローが他のプライベートリポジトリのワークフローから呼び出せるようになりました。この機能2年前に欲しかった。

最後に

この四半期も月5本ペースで記事が書けました。Deno で連載記事にチャレンジしましたが、やはり単発記事とは違う労力が必要で、連載をいっぱい書いている同僚へのリスペクトが高まりました。4Qも引き続き精進します。

野良 Scrapbox アプリ - スタートページの導入

久々にリリースしました。

github.com

今回は、スタートページを導入しました。閲覧した Scrapbox プロジェクト、開いたページのタイムライン、直近の編集履歴、お気に入りページが表示・更新されます。プロジェクト横断的なリンク集って感じになってます。

https://i.gyazo.com/382c181109dda1f15970d7a7c95a22b0.png

  • Projects: 訪問した Scrapbox プロジェクトのリスト
  • Favs: お気に入りページのリスト
  • Timeline: 閲覧・編集したページをタイムライン表示(自分が作成したページ、編集したページは色を変えてます)
  • Recently edited: 最近編集したページのリスト

いずれもページのリンクなので、よく使うページを開いたり編集の続きをやったりするのにいいかなと。

2022 7-9月の会社テックサイトへの投稿記事

2Q のテックサイトへの投稿記事です。

7月

developer.mamezou-tech.com

Deno の Web フレームワーク Fresh が登場したので、書きました。この頃から Deno への興味が湧いてきてました。

developer.mamezou-tech.com

3月に書いた Taruri 記事へのアクセスが多く Tarui も v1.0 に到達したので、第2弾を書きました。この記事では Rust は書いてません。

developer.mamezou-tech.com

GitHub Project の Automated Kanban の使い方について書きました。

developer.mamezou-tech.com

野良 Scrapbox アプリのアーキテクチャーを刷新した話を書きました。1月に試してましたが、ようやく移行できました。

developer.mamezou-tech.com

Tauri 記事で取り上げた BPMN モデラーの開発元の Camunda のワークフローシステム Zeebe がよくできてたので、開発環境構築記事を書きました。

developer.mamezou-tech.com

Fresh で興味を持った Deno の CDN Deno Deploy を基盤とする Netlify の新機能 Edge Functions について書きました。

developer.mamezou-tech.com

GitHub Projects がリニューアルされてスプレッドシートのビューが導入され、リポジトリ横断でタスク管理ができるようになったので書きました。

developer.mamezou-tech.com

GitHub Teams(有償版) で利用可能になった Codespaces のコンテナイメージプレビルドについて書きました。パッケージレジストリがバックエンドで使われていて、GitHub Actions で実行されます。GitHub Actions ワークフローやイメージの管理については GitHub のマネージドになっているので楽です。

8月

developer.mamezou-tech.com

式年遷宮した野良 Scrapbox アプリを Electron v20 にアップデートする時に Renderer プロセスの Sandbox がデフォルトで有効になったので対応した記事です。

developer.mamezou-tech.com

M1 Mac で GitHub Actions のセルフホストランナーを動かしてみた記事です。GitHub Actions ランナーとセルフホストで M1 Mac と Intel Mac を Marix で実行するのも試しました。

developer.mamezou-tech.com

ソフトウェアのビルド、リリース、デプロイ というサプライチェーンへの攻撃の対策として、成果物の出所を検証可能な署名を付与するワークフローを利用してみた記事です。あまり書かない分野の記事でしたし、調査にもけっこう時間がかかりました。

developer.mamezou-tech.com

3月に書いた GitHub Actions の再利用可能ワークフロー記事の続編です。ネスト呼び出しや、Matrix strategy がサポートされ、かなり複雑な使い方ができるようになりました。大規模なプロジェクトでは役立つと思います。

9月

developer.mamezou-tech.com

GitHub issue と Jira のチケットを自動リンクしたりできる機能の仕様が変わったということで書きました。そもそも外部のサービスの自動リンク機能自体知らなかったし、未だに使ったことはないですが。

developer.mamezou-tech.com

Astro というイケてる SSG が v1.0 になったので使ってみた記事です。アイランドアーキテクチャで動的 UI をハイドレートするっていうの最近 SSG 界隈で流行っているようです。

developer.mamezou-tech.com

GitHub Pages はリポジトリのおまけ機能みたいな感じで、SSG でビルドしたアセットをリポジトリ管理しないといけないところがちょっといけてないのですが、GitHub Actions で GitHub が管理する基盤でアセットを配備してくれるようになります。現在ベータですが、正式公開が待ち遠しい人も多いのではないでしょうか。

developer.mamezou-tech.com

Deno をちゃんと勉強しようってことで養成ギブス的に連載を始めました。

developer.mamezou-tech.com

Deno 連載第2弾です。

developer.mamezou-tech.com

これは Deno 連載ではなく単発ブログです。Slack が Deno による新プラットフォームをベータ公開したのを知り、触ってみた記事です。

最後に

7月はここで紹介した記事とまとめ記事を合わせて9本も書いてましたが、8月はペースダウンしました。9月は6本で後1本で通算50記事に到達ということであがいてたのですが、無理でした (何と戦っているんだという話もありますが)。GitHub Actions と Deno 関係が多かったですね。

iPad でコードを書く Mid 2022 - Codespaces 編

3年ぐらい在宅ワークで iPad でコードを書くなんてことはなかったのですが、週1ぐらいで出社したりするようになって、重いラップトップ持っていくのが嫌なので、iPad でちょっとしたコード書きをしたいシーンが出てきました*1

Cloud IDE 界隈で最近一番のイノベーションは GitHub Codespaces です。会社のテックサイトに記事書きました。

developer.mamezou-tech.com

developer.mamezou-tech.com

個人のリポジトリについては今のところ課金されません。iPad では Safari で使う方が Chrome より問題が少ない印象です。

イメージの Prebuild については個人のアカウントでは使えませんが、環境を破棄しない限り設定が残っているので1人で使っている分には特に困ることはありません。

VS Code が普通に iPadOS の Safari 内で動いてとても実用的ですが、以下の問題があります。

  1. 他のアプリにスイッチすると、結構な短時間でコネクションが切れて再接続が必要、しかも再接続が失敗しやすい
  2. ブラウザからクリップボードのコピペがセキュリティの関係?で失敗する時がある
  3. 動作しない VS Code 拡張がけっこうある

特に1番目は面倒なので、Codespaces を起動すると他のタスクは iPad ではなくスマホやったりしてます。

でもこれまでの iPadOS のエディタ、Cloud IDE、Terminal での接続などと比較して格段に体験がよく、かなり重宝しています。

*1:今は iPad Pro 2018 を Magic Keyboard で使っています

野良 Scrapbox アプリ - リニューアル

kondoumh.hatenablog.com

半年ぐらい新アーキで簡素な UI で作りつつ、時折ないと不便だと感じた機能だけ移植しながら自分だけで使ってきました。UI を Vuetify にして、ベータ版を Pre-release で出してましたが、もういいかなってことで正式リリースしました。

技術的な詳細はこちらに書きました。

developer.mamezou-tech.com

v3.0.0 としてリリースして、直後にバグフィックスして v3.0.1 をリリース。

github.com

かなりシンプルなアプリになった気がします。

https://i.gyazo.com/5314e24354451448a0cb2aee1315f986.gif

2022 4-6月の会社テックサイトへの投稿記事

7月になったので、1Q の会社テックサイトへの投稿記事をレビューしたいと思います。

サイトの機能追加のおかげで、執筆者別の記事リストが見えるようになりました。

developer.mamezou-tech.com

4月

developer.mamezou-tech.com

Apple Silicon 対応の Electron バイナリを作る方法を知らなかったので、ちょうど使い始めた M1 MacBook Pro で試して書いた記事です。結果、electron-builder を使うとバイナリやインストーラは、Intel Mac でも M1 Mac でも作れるし、Universal バイナリにすれば、どちらのアーキテクチャでも動くということがわかりました。

developer.mamezou-tech.com

複数のジョブから構成される GitHub Actions ワークフローの実行で、失敗したジョブだけリランする機能について紹介しました。長い長いパイプラインの最後の最後で失敗して徹夜みたいなことがよくあったので、この機能はもっと早く欲しかった。

developer.mamezou-tech.com

Minikube でプロファイルを切り替える時の config との関係がちょっとわかりづらかったので tips 的な記事にしました。

developer.mamezou-tech.com

Docker 開発者によるポータブルな CI 構築ツール Dagger が話題だったので試して記事にしてみました。

5月

developer.mamezou-tech.com

Gitpod が IntelliJ IDEA のリモート開発環境をリリースしたというブログを読んだので試してみた内容を記事にしました。

developer.mamezou-tech.com

GitHub Actions ワークフロー実行時に作成される Summary ページに情報を付加できるジョブサマリー機能を紹介しました。

developer.mamezou-tech.com

GitHub Codespaces のベータテストが僕のアカウントで解放されたので試用レポートを書きました。

developer.mamezou-tech.com

Kafka のようにステートフルな分散システムは Kubernetes での運用が難しいですが、これをかなり簡単にしてくれる Operator Strimzi について、導入から通常運用まで詳しめの記事にしました。

6月

developer.mamezou-tech.com

Electron のテストフレームワーク Spectron が discon になってどうしようかと思ってたら Playwright が対応してきてたので使ってみた記事です。ただ、Electron のサポートはまだ実験的段階で、GitHub Actions のワークフローで使ってみても大体タイムアウトでエラーになるので、しばらく静観します。

developer.mamezou-tech.com

3月に書いた再利用可能ワークフローの続編で、再利用可能ワークフローとマニュアルトリガーワークフローの入力値取得が統一され便利になった話を記事にしました。

developer.mamezou-tech.com

GitHub の Dependabot にライブラリのアップデートの Pull Request も作ってもらって更新をタイムリーに行う方法について紹介しました。

developer.mamezou-tech.com

GitHub のセキュリティ脆弱性スキャンの機能の紹介をしました。そこで使われている静的コード分析の言語 CodeQL が面白かったので記事にしたものです。

developer.mamezou-tech.com

M1 Mac で Minikube は、まだ Hyperkit が未対応で実質使えないですが、QEMU ドライバーに対応したリリースが出たので試してみました。結果、まだダメだったという人柱系記事です。

developer.mamezou-tech.com

同僚の人のリクエストで書いたのですが、PR のレビューについて、インラインコメントの conversation をちゃんと使おうねという記事でした。

会社ブログでも1Qのふりかえり記事を投稿してます。

developer.mamezou-tech.com

この四半期の記事は GitHub の新機能の紹介が多めでした。記事のネタを探して GitHub の ChangeLog を購読してたりします。PR レビューの機能はみんなが知ってると効率も品質も上がるので記事にする価値があると思いました。

けっこうなペースで記事を書いてるのでネタに困ることもありますが、テックブログなどで情報を得て、試してみてインプレッションを書くというのが割と自分に合ってる(というかテーマ性のある連載などができない)というのもあり、しばらくこういうスタイルで続けてみようかと思っています。