久しぶりの OSS メンテ

仕事ではしばらく開発から遠ざかっていたのだけど、AI の波に乗ってスキマ時間でいくつか自作 OSS のメンテナンスをした。 一つの区切りをつけた話と、新しい道具を使ってツールを復活させた記録を書いておく。

NotHub をアーカイブした

自身の最初の個人プロダクトである NotHub を、正式にアーカイブした。
これは GitHub のリアルタイム通知を行う Chrome Extension で、14年前の開発当時、あまり使い勝手がよいとは言えなかった GitHub のタイムラインの自分用の代替として作ったものだ。

数年前から GitHub API の仕様変更に追従できず、サービスとしては実質停止していたものだ。自分の中でなかなか踏ん切りがつかず放置してしまっていたが、今回ようやく正式に幕を閉じることにした。

まだ自分がジュニアプログラマだった頃に、仕事でのプレッシャーと純粋な技術的関心の両方が重なって熱中して作ったプロダクトだ。当時は開発が楽しすぎて Mac を抱えたまま寝て、起きた直後からまた開発を再開するような生活を送っていた。

このプロダクトのリリースを通じて Web 開発の基本を一通り経験できたことは、間違いなく今の自分のキャリアの礎になっている。コードをアーカイブする作業は、当時の気持ちを思い出すようで感慨深いものがあった。

starseeker の復活

NotHub と同様にここ数ヶ月停止していた starseeker については、今回無事に修復して再リリースした。

これまでは「全ユーザーのスターをなるべく網羅的に取得する」ために全力でクロールしていたが、仕組みとして限界がきていた。 具体的には、クロール速度がスターの増加速度に追いつかず取りこぼしが発生していたこと、そして GitHub 側のキャッシュ仕様変更によりデータの更新頻度が極端に落ちたことだ。

そこで、これまでのクローラベースから、能動的にデータを取得しにいく仕組みへと大きく作り変えた。

今回の作り直しには Claude Code を活用した。 パフォーマンスの調整が一番の肝だったが、GraphQL によるデータ取得への移行や、適度な並列実行の導入など、実行速度とメモリ利用量の安定化を Claude との壁打ちを通じて進めた。

github.com

自分一人で向き合っているとまとまった時間が必要だった最適化も、AI に課題を投げて試行錯誤してもらうことで、現実的な実装にスムーズにたどり着けたのは大きな収穫だった。

おわりに

動かなくなったものをそのままにするのではなく、終わらせるべきものは終わらせ、活かせるものは今の技術で蘇らせることができた。

久しぶりの OSS メンテは、単なるコードの修正以上に、自分自身のプロダクトにとこれまで経験を再確認する良い機会になった。 復活した starseeker が、いまでも使ってくれている数十人の方々の役に立てば嬉しい。

EmberFest 2019 参加レポート day 1

毎年恒例となったこのレポートもついに3年目を迎えました 🎉
今年のEmberFestは、寒さがだんだんと厳しくなってきたコペンハーゲンにて行われました。

f:id:tricknotes:20191029221301j:plain
EmberFestのオープニングです

今年のカンファレンスでは、次のような発表が多かったように思われます。

  • 去年に引き続いての Ember Octane の進捗の発表
  • Ember に限定しない開発現場での工夫の話
  • サービス開発を行う上での Ember アプリの工夫の話

カンファレンスの参加者は200人で、去年とほぼ同じです。 主催者のアナウンスによると、これくらいの規模だとお互いに顔がわかって会話できるので、大きくしすぎることなく維持していきたいということでした。

では、各発表を簡単に紹介していきます。

続きを読む

EmberFest 2018 参加レポート day 2

2018年10月にアムステルダムで行われた EmberFest の二日目の参加レポートです。 f:id:tricknotes:20181011180358j:plain

一日目のレポートはこちら。

tricknotes.hateblo.jp

今回も印象に残ったトークをまとめています。

続きを読む

EmberFest 2018 参加レポート day 1

去年に引き続き、今年のEmberFest参加レポートです。 残念ながら日本では Ember.js の話を聞く機会は少ないので、ここぞとばかりにアムステルダムでのカンファレンスに参加してきました。

f:id:tricknotes:20181012022004j:plain

今回のカンファレンスで、自分がとくに印象に残ったトークをまとめました。

続きを読む

Rails Developers Meetup 2018: Day 2 で「リモートなチーム開発」というタイトルでお話しました

リモートワーク…というよりかは、リモートが前提となっている状態で自分がどういうことを考えながら(また、実践しながら)チーム開発と付き合っているかというお話でした。

speakerdeck.com

"リモートワーク"という言葉が指す範囲がすごく広くなってきている(し、ひとによっても違う)ので、ちょっと紐解いてみると上手くやるためのヒントが見つかるかもしれません。

イベントページの概要がよくまとまっているので、転記しておきます。

ここ数年でリモートワークを導入している会社はだんだんと増えてきましたし、その良さと難しさについては各所で語られるようになってきました。

わたしはここ七年間、リモートワークという働き方で多くのチーム多くのプロダクト開発に関わってきました。
その経験を通してわかったことは、リモートワークとは個人の働き方ではなくチームのあり方だということです。

リモートワークをしたいモチベーションはひとによって様々でしょう。
しかしチームが違えば価値観が違うように、チームに合うリモートワークのやり方も違ってきます。

この発表では、わたしのいままでの経験から見えてきたリモートなチーム開発をよい感じにするための心がけをお話しいたします。
これからリモートワークを始めようとしているチームにとってなにかのヒントになれば幸いです。

techplay.jp


また、今回登壇のお声をかけてくださった平野さん(@yoshi_hirano)たいへんありがとうございました!素晴らしいイベントでお話する機会をいただいて感謝するばかりです。

EmberFest 2017 参加レポート day 2

前回に引き続いて、EmberFest の二日目のまとめです。

f:id:tricknotes:20171024024436j:plain

本記事公開時点では多くの発表資料が未公開のため、詳しい説明や具体例がほしくなる部分があるかと思いますが気持ちで補って読み進めてください。

続きを読む