blog.8-p.info

たまに Rust の勉強もかねて何かを再実装しようと思うんだけど、大抵は途中で飽きてしまう。一方で、最近に仕事で使っている雑なスクリプトをきれいに書き直して、これはなかなか楽しかった。というわけで、自分の中での楽しさを書き出してみようという試みです。

自分の生活が便利になった

仕事で書くスクリプトとか、個人的な便利コマンドとかはここの楽しさが大きい。

仕事で関わって製品としてリリースされるものが、自分の生活を便利にするかは、まあ半々くらい。「確かにこれあるといいですね。自分でも使います。」というものもあるし、正直いって自分は使わなそうなものもある。

コンシューマ向け製品だと、自分の好みはだんだんメインストリームとずれてきていて、それは将来に不安を感じる。携帯電話のプッシュ通知とか、なるべく来ないで欲しい。

無理そうなことが出来てかっこいい

昔に作っていた、SIMBL で Mac のアプリをフックして色々やるのはこの楽しさがあった。今の仕事だと firecracker-containerd もこの楽しさがあって、これはちょっと珍しい。

CRUD な Web アプリを作るとか、こっちのマイクロサービスとあっちのマイクロサービスをたたいて、結果をむこうのマイクロサービスに送るとかは、まあそれはやったらできますよね…という感じがある。実現可能性が高いのは良いことなのだけど。

バグが直ってすっきりした

バグを直すのは、パズルがとけたとか、伏線が回収されたとか、そういうのと同じ楽しさがある。このログがこうなっていて、あのメトリクスがこうなって、でも手元では再現しなかったのは、こういうことだったのか! という驚きと納得。

日々の開発で「なんでこのテストだけパスしないかなあ…。あー、これここで初期化されていないからだ!」みたいな局面は多々あり、これも楽しい。

自分の作ったものが世界中で使われていてすごい

いまの仕事はこれがあって良い。

意識の低さ

こうやって書き出すと、なんというか意識が低いなあ。会社や社会に貢献しようという意思を感じられない。まあ「プログラミングが」楽しいときの話をしているだけで、その他の種類の楽しさもあるし、仕事としてきたものなら、楽しさに関係なくちゃんとやりますよ。

ただ、例えば自分が AtCoder とか LeetCode とかのプログラミングパズルっぽいものにいまひとつ熱意がないのとか、冒頭に書いた再実装をがんばれないのも、自分の生活が便利にならないし、自分ができるかはさておき、誰かはできるのはわかっている、というので説明できる。趣味プロジェクトの評価基準としては悪くないように思う。

アンテナの歴史

Feb 2, 2021

アンテナウェア (2003) や、アンテナ(Webサイト更新時刻自動取得システム)の歴史 (2006) にある程度はまとめられているものの、年月日とセットになった、教科書には載らないニッポンのインターネットの歴史ヽ(´ー`)人(´ー`)ノ形式のものが欲しかったので、自分で作ってみた。

Linux Diary LinksRuby Hotlinks みたいな、アンテナのインスタンスについてもまとめたら面白そうだけど、そちらは大変そうなので、とりあえずはソフトウェアだけです。

1995/10/XX?: べんりくん、サービス開始

今日のさそり座(更新時刻取得ページ)

更新時刻取得Agentの元祖べんりくん。原作はかうぽんX氏。ぽくだい某音室の後輩いわくによって受け継がれて今にいたっている。

教科書には載らないニッポンのインターネットの歴史ヽ(´ー`)人(´ー`)ノ

藤井洋之氏のご指摘によれば, べんりくんの作者はかうち氏(当時北大知能研)であり, べんりくんの始まりは 1995 年 10~11 月頃のことであるそうだ.

1996/05/14: 朝比奈アンテナ、開発開始

朝日奈アンテナ V2.0以前の履歴

# 1996/05/14 0.00 新規作成

1998/05/29: えむだま、開発開始

なつみかん:ドキュメント:更新履歴

(天野のはうン移動前)3Webのサーバーの遅さとcore dumpの多さに耐えかねて、とりあえず作成。

後に同作者のなつみかんに統合される。

1998/10/16: みかん、開発開始

続MCP。更新時刻取得エンジン。

帰りの車内で、更新時刻取得エンジンを作り始めてしまう。とりあえず、朝日奈のhina.txt形式を内部データ構造に取得する部分と内部データを掃き出す部分は、できた。ような気がする(笑)。po.txtでしかためしてないからなぁ。SDBのデータだとうまく動かなかったし(笑)。

1998/XX/XX?: なつみかん、開発開始

なつみかん:ドキュメント:更新履歴

  • 「みかんver0.3」を元に改造を始める
  • ・・・が、結局プランを立てるだけで終わってしまった(汗;
  • 以後社員旅行で手つかず、帰ってみると「みかんver0.4」なるものができててガビーンだったり(汗;

1999/02/XX?: Document Information配布システム、サービス開始

KB for DI, OCAO for DI, JIN_GR_JP for DI, DI for ALL

1999年2月より JIN.GR.JP にてサービスが立ち上がった 、「Document Information配布システム」に関するサイトです。

1999/10/13: 更新時刻情報受け渡しデータ仕様 (LIRS) 仕様書、策定

Last modified Information Relaying Specification

LIRSとは、更新時刻取得エージェント(アンテナ)間で交換される有益な更新時刻取得情報の中で、もっとも必要である最小最低限の情報を選りすぐって、円滑に交換しあうために定義されたデータ形式および交換手段である。

2002/05/28: はてなアンテナ、サービス開始

はてな新サービス「はてなアンテナ」スタートのお知らせ

このたび有限会社はてなでは、新商品「はてなアンテナ」のサービスを開始いたします。「はてなアンテナ」とは、日頃、ユーザーがチェックしているホームページのアドレスを本サービスに登録すれば、登録したページにはてなアンテナが自動巡回し、それらのページが更新されているかどうかを定期的にチェック、ユーザーの持つ専用ページに更新記録を表示するものです。

2004/06/XX?: I know、サービス開始

I know.

お気に入りのページを登録すればあなたのかわりに I know が更新状況をチェックして、あなたのアンテナに更新順に表示します。ページの中でチェックする範囲も指定できます。

2003/06/11: 五月雨、開発開始

天泣記

しばらく前からアンテナを(再度)作っているわけだが、 思いついて名前を samidare と決める。

https://github.com/akr/samidare/commit/64967ab30c68c42a34ebe4fa700750a581f99c91

initial implementation.

2015/03/09: 大チェッカー、サービス開始

新サービス「大チェッカー」をはてラボにリリースしました

大チェッカーは、みんなで作るアンテナサービスです。アンテナを作って、チェックしたいページを登録すると、大チェッカーがどんどんチェックしてくれます。みんなで編集できるので、あなたの知らない良いページと出会えるかもしれません。

2019/01/10: はてなアンテナ、はてラボ下に移動

はてなアンテナをはてラボのサービスとしました

先日告知しましたとおり、本日、はてなアンテナ(http://a.hatena.ne.jp/)について、はてなの実験的サービスを展開するはてラボ(http://hatelabo.jp/)のサービスと位置づけるよう変更いたしました。

問題点と解決策の分離

仕事をしていると問題点と解決策の分離の大切さを強く感じる。しかし人間は愚かな生き物なので、問題点と解決策を分離することができず、解決策ベースで話を進めてしまう。ある問題点に対して、最初に思いついた解決策が正しいとは限らないのに、その解決策を実行することが目的化してしまう。

プロダクトマネージャーっぽい悩みだなあ、と思ったけど、考えたら最近に自分もそういうことが何回かあったので書いてみる。

私はそんなに偉いわけではないので「とにかく困っています!」というよりは「こういう問題があって、こういう解決策があると思うんですが、どうでしょうか」くらいの抽象度になった問題を解決することが多い。それで「いやー、できるんじゃないですか。ここがこうなって…」みたいな話をして、いざ進めようとすると、もうちょっとシニアなエンジニアが出てきて「うーん、これは…」みたいにブレーキをかけられることがある。

文章を書こう

実際のところ、問題点と解決策を完全に分離することは難しいと思う。「ここがだめです」という話ばかりをするのは辛い。

私の場合は、やろうとすることを文章にまとめて、人々とミーティングという、昔ながらの方法をとることが多い。プロトタイプを Lisp で一晩で作るハッカーになる予定だったのに…と思わなくもないけれど、文章にする方法は社内で広く普及しているので、まあ平和だし、もっというと私の意向にかかわらず、周囲から求められがちだ。

なので、ブレーキというのも、実際はミーティングで突っ込まれるくらい。実装が終わってからコードレビューで前提をひっくり返されるよりはマシだと、自分を納得させている。

書くのは、いわゆる PR-FAQ ではなくて、もうちょっと普通の

  • 問題の背景
  • こんなやりかたがあると思いますよ
  • やりかた1
    • 利点/欠点
  • やりかた2
    • 利点/欠点
  • FAQ

みたいなやつ。自分があんまりよくないと思っているやりかたを列挙していくのは正直だるいけれど、書いてみると実はそこまで悪くないことに気づけることもある。思えなかったときは本命案の引き立て役として書きましょう。

また、反対にそういうミーティングに呼ばれる立場になって、他人の書いた文章を読むと、やっぱり複数の方法が列挙してあって、利点/欠点を比較検討できた方が、読者としては納得感がある。

こうやっても、結局のところ問題と解決策は一緒になっているんだけど、1つの解決策に全賭けする感じはちょっとなくなると思います。

問題だけを考える方法はあるのか

どうなんでしょう。スプリントのふりかえりとかだと、問題を列挙する時間と、解決策を考える時間を分けたりもするけれど、でもそれは短い時間だからできることであって、問題だけを何日も何週間も扱うのは辛い。

メトリクスの類をグラフにしたダッシュボードはちょっと良くて「このページの読み込みに何秒かかります」とか「この導線ここで何パーセントくらい離脱してます」とかは、問題だけを扱う辛みが薄いように思う。問題になる前の、否定的な価値判断がついてこない、なんというか「現状」だからだろうか。

『理論疫学者・西浦博の挑戦 新型コロナからいのちを守れ!』を読んだ。

「8割おじさん」として知られる西浦博の語り起こし。編集はノンフィクション作家・小説家で、科学関係の著作も多い川端裕人。

西浦博は、本人の性格なのか、政府や行政との調整や、メディアへの出演などからは身を引いて、また本業の研究者に戻ったという立場からなのか、私だったら躊躇するようなことをさらっと話してしまう傾向があって、そこは野次馬的に面白い。

例えば、元上司である渋谷健司について、

僕にとっては、過去の上司が必ずしも感染メカニズムに大して深い洞察をせずにクラスター対策を頭ごなしに批判して日本を掻き乱す中で、実質はその正反対である押谷先生の考え方に立ち合い、そして本質的に重要な接触制限の問題をどうやって効率的に伝えていくのかという一番困難な問題に悩む、という葛藤の多い時期でした。

とか、メディアとの勉強会について、

本音をいうと、テレビの記者からもらう質問は新聞記者とだいぶ異なっていて、緊急事態宣言の話をしている中で、3割4割はダイヤモンド・プリンセスのはなしとか、そこに乗った岩田健太郎先生との確執についてとか、あるいは元感染症研究所の岡田晴恵先生がワイドショーで行っていた PCR の問題についてとか、本筋で議論すべき緊急の未来志向のテーマから外れがちではありました。

とか、あまりにあけすけで笑ってしまう。

しかし、専門家が、データ分析などの本業をしながら、政治家から国民全体までを含む非専門家とコミュニケーションして、さらにその内容が人が死ぬ類のリスクについてというのは、かなりの難局で、それを乗り切った西浦ら専門家会議の人々はすごいなあと思う。

デジタル庁やデジタルトランスフォーメーションの流行でもって、我々ソフトウェア開発者もそういう局面に立たされる場所があるかもしれない。ただ一方で、私の日々接しているリスクは「これ、3月には間に合わないですね」とかそういう平和なもので、人の生死には関わりない。ソフトウェア開発で人が死なない、というのは単純化しすぎだけど1、セキュリティ系の問題とかデータ流出とかにしても、攻撃側は人間で、ウィルスみたいな自然現象を相手にするよりはなんとかなるような気がしてしまう。


  1. ちょうど Hillel Wayne が Are We Really Engineers? のなかでその話を書いている。 ↩︎

友達が「梅田さん1みたいに、若者と過ごす時間を増やすとか」という話をしていて、そういえばそんなことをいっていたな、と思って探してみた。初出はフォーサイトという雑誌だけど『Web 進化論』にもその話を書いていたみたい。

Posted 6:24 AM by Mochio Umeda

本質的変化に関する一つ一つの直感を大切に、時間の使い方の優先順位を無理しても変えてしまうことで、新しい自分を模索していきたいと今は思っている。「自分(1960年生まれ)より年上の人と過す時間をできるだけ減らし、自分より年下の人、それも1970年以降に生まれた若い人たちと過す時間を積極的に作ることで次代の萌芽を考えていきたい」と思う気持ちが、最近、日に日に強くなっている。

これを書いたときの梅田望夫さんは41才。大企業でプログラマをする私と、自分の会社をもってコンサルっぽい仕事をする梅田さんとでは、私のほうが仕事で大卒新入社員とかインターンに接する機会は多いので、若者と接する機会は多い。

ただ、仕事とそとで会う人々は固定化/高齢化していて、これは流れに抗うような行動をするべきだとも思う。むかしに SIJP を手伝っていたころは、留学生に Amazon のオフィスを案内するというイベントが時折発生していた。ただ、社内を数時間だけ案内することで得られるものは、お互いにそこまでは無い。

そういえば、冒頭の友達は「価値観の更新」という話をしていた。私の感覚は古くなっているんだろうか。HTML なんてサーバーで生成すればいいじゃない、みたいなテクノロジーの好みの古さはある。社会全体についての広義の感覚は、あんまり古くなっていないと思いたい。


  1. 『ウェブ進化論』の著者として一般には有名。2000年代は梅田望夫・英語で読むITトレンドMy Life Between Silicon Valley and Japan で、ブロガーとしても活発に活動していた。株式会社はてな元非常勤取締役。 ↩︎