Posts for: #Remote Work

家に帰るまでが旅行

実家へ帰って疲れていたせいか、21時過ぎから寝てしまって2-3時間ごとに起きて5時半に起きた。親はもっと早くから起きているからその時間から朝ご飯が出てくる。

ドキュメント書き

持ち帰ったばかりの机とバランスチェア を使って初めてのリモートワーク。とくに問題なく作業できたのでよさそうに思う。今日は早くお仕事を切り上げるために7時からお仕事を始めた。issue の対応を見守りながらドキュメントをまとめて書いていた。新規追加した機能やまったく違う仕組みに置き換えたものがあるため、ドキュメントの変更量が多い。

お昼にメンバーからも qa テストの完了報告が届いて、私も自分がもっている issue ではバグ修正もすべて終えていて、あとはドキュメントと最後の GA 向けのパッケージングぐらい。いつもそう思うけれど、終わってみれば順調に予定通り開発のイテレーションを完了できた。今回は機能開発に約3ヶ月、QA に1ヶ月の約4ヶ月のイテレーションとなった。開発の状況をみながらマイルストーン (2週間) を増やしたりもした。その程度の調整もした上で予定通りと言える。3ヶ月のイテレーションに対して、私がマネジメントをしていれば前後2週間程度のズレしか出ない。こんなの当たり前だと思うが、以前お手伝いしたスクラム開発でのストーリポイントでは2ヶ月の見積もりに対して4ヶ月を要した。見積もりがめちゃくちゃだったと言える。

帰路に着く

てらださんが鳴門から淡路島南 IC に15時30分に着くという予定を教えてもらっていた。そのため、15時にお仕事を切り上げて、迎えに行って、それから神戸に一緒に帰ってきた。

たこせんべいの種類

帰路の途中で たこせんべいの里 へ立ち寄った。津名一宮 IC のすぐ近くにある。おそらく私は行ったことなかったと思う。長居するような観光施設ではないが、立ち寄ってみたらそれなりにおもしろかった。てらださんの奥さんがたこせんべい好きらしくて、いろいろ教えてくれた。50種類ぐらいある。たこせんべいっていろいろ入っていることは知っていたけど、こんなに多くの種類があるとは知らなかった。たこせんべいの個別試食ができて、コーヒーも飲めて、工場見学して、お土産にせんべい買って帰った。16時半には出発した。

新神戸駅

快調に高速道路を走って、3号神戸線を迂回して7号北神戸線から神戸へ戻る。道中で若宮-芦屋間で渋滞18kmとか出ていた。いつものこと。てらださんに 3号神戸線のうんちく をたくさん語って満足。この日のためのネタだ。17時には新神戸駅に到着して送り届けられた。無事に旅程をこなせてよかったと私がほっとした。

小旅行の所感

てらださんがオープンセミナー参加のために香川県へ来られるという話しを聞いて、車も買ったばかりだし地元だから案内しようと考えた。その延長で LT 発表しようと思いつき、ある記事を翻訳したらちょっとバズって世の中の役に立ったのかもしれない。

私はなにも用事がなければ出掛けないことが多い。いまは基本的にずっと会社のお仕事をしているし、そんな毎日でも不満もない。だからこそ、なおさらこういった縁の機会が大事だとわかるようになってきた。てらださんが来られなければ、この3泊4日の小旅行はあり得なかった。そして 車中泊の経験 も得られなかった。新しいことを学ぶ機会そのものが尊い。旅程を通して関わってくれた周りの人たちに感謝したい。

これは昔はらさんからも助言をいただいたことを覚えている。私が交際費を年間で2-3万円しか使っていなかったときのこと。

放っておいて会社にお仕事が舞い込んだりしない。
いまのお仕事がずっと続くことはあり得ない。
将来のために新しい縁を自分から探しに行かない限り、会社を継続できない。

台風の暴風雨にびびった

台風が来るということだったので昨日は18時には家に戻ってきてゆっくりしていた。とくに何をしていたわけでもないけれど、なぜか眠れなくて3時ぐらいまでは起きていた気がする。あまりちゃんと眠れない中、7時に起きた。朝から外の暴風雨がすごくて人が飛ばされそうな勢いだった。さすがにオフィス行けないなと諦めて家でリモートワークしていた。お昼過ぎぐらいまで暴風雨が続いていたと思う。夕方になってから外に出たら普通の雨になっていてそれからオフィスに来た。

課題管理とプロジェクトマネージメントの話を熱く語る

理由があって先日 チェックした音声データ とは違う音声データを使って昨日の夜に公開された。週末働いてバテていたせいか、昨日は余裕なくて聞けなかったものの、深夜に聞き始めた。よいこと言っているなーと自画自賛しつついくつか間違ったことも話してしまっているけれど、私の話しにそこまで注意して聞く人はいないでしょう。

課題管理の話題になると、ついつい熱中して話してしまう。「熱く語る」と書かれてしまうのはこの分野に熱意をもっている人が稀だからかな。私はこの1-2年この分野をずっと調べているから、ここで話した10倍ぐらいのコンテンツをもっている。勉強会の資料も数個はあるし、スライドは200枚ぐらいある。そして、調べれば調べるほど私が分かっていないことも分かってきて、もっともっと調べたいことがある。しかし、いまいまはもう体力と気力がない。

エージェントアプリケーション開発

昨日の続き 。昨日レビューをしっかりしてもらってマージした。windows ad サーバーとの dirsync の通信のところを、一切動かさず、既存のコードをインターフェースにあうように作り直したものの、実際に動かしてみると非同期の制御が意図したデータフローでなかったり、windows ad サーバーの知らない仕様があったり、細かいバグもあったりで半日ほどかけてデバッグしながらバグ修正してた。単体レベルのテストでこのバグ数だと、qa レベルだとさらにバグありそうだなという感触だけ確かめた。その後 dirsync の検索も非同期になった方が嬉しいなと思ってちょっとリファクタリングして検証がてら提案してみた。特別なことをしなくても go-ldap の非同期検索を使ってそのまま動くことも確認できたのでこれはこれで役に立つと思う。

scim 調査に着手

22時に寝て24時に起きて4時に起きて6時に起きた。実家だとやることないので寝るのも早くなる。早く起きているので始業も7時半ぐらいになる。早起きは三文の徳。

リモートワークのタグを新設

神戸のオフィスに行かなかった日は day off というタグを付けている。名前の通り、お休みしたということを表す。この定義に従うと、実家に帰ってリモートワークをしたときもお休みになってしまうため、それを区別するように remote work というタグを作った。

scim 調査

id 連携の文脈で System for Cross-domain Identity Management (頭文字をとって SCIM、すきーむと呼ばれている) という標準がある。基本的には rest api とスキーマを扱うように仕様が決められていて、それに準拠したサービス間で id 連携を標準化する狙いがある。id 連携と同じ用途を表す用語として id プロビジョニングという用語もあるが、多くのクラウドサービスでは id プロビジョニングのために scim 対応していたりする。

たまたまサイボウズさんが okta と scim 連携に対応しているプレスリリースをみかけた。

その延長で調査していたところ、go の scim ツールを提供していることに気付いた。しかもこれを作っているのが Maki さん。これはソースを読んでおこうと思った次第。Maki さんはメルカリに所属していたと思うのでこれは副業でやっているのかな?

scim-server は scim ライブラリを実際に使うときの参照実装としてアプリケーションの開発者に開発の雰囲気を伝えるための実装になっている。これ自体をプロダクトのサーバーとして使うわけではない。sqlite を使ってユーザー/グループの crud な操作と検索機能を提供している。

scim ライブラリのソースコードも軽くざっと読んでみた。github.com/lestrrat-go/sketch という go でスキーマを記述してコード生成する Maki さん製のツールがある。これを起点に scim のプロトコルやリソースの仕様にしたがって go のコードでスキーマを定義し、リソースに関する go のコードと scim スキーマを自動生成している。sketch というツールに関連して他にも Maki 製のメタプログラミングライブラリを多用していて、scim の標準化されている部分のエンドポイントやリソースのインターフェース部分をすべてコード生成している。

go generate やコード生成の実際の応用例として非常に参考になる。このライブラリは scim のプロトコル仕様に関する開発者と、そのエンドポイントの実際の処理 (バックエンド) の開発者を明確に分離するという開発体制を期待している。scim に関するところは Maki さんが独りでコード生成を多用してオープンなプロトコル仕様の開発を担当し、そのバックエンドをサイボウズさんの開発者が実装するという分業体制を想定しているようにみえる。

scim 対応のアプリケーション開発のプロトコル部分を外部に委譲するといった設計になっているが、scim が十分に安定していてプロトコルの仕様が変わらないのであれば理に適っているとも考えられる。バックエンドの開発者はいくらか sketch の学習コストを強いることになる。そのため、アプリケーションはその学習コストを支払ってもコード生成のメリットが上回るだけの規模や特性を要求する。おそらく scim はそれだけの価値があると判断されたのだと推測する。

私はメタプログラミングが好きな方なのでこういうやり方もあるんだなと設計の参考になった。またコード生成の要件があったときにソースを参考にしようと思う。

実家での初めてのリモートワーク

23時に寝て2時に起きて4時に起きて6時に起きた。親が4時頃から作業し始めるからそのぐらいからだらだら起きている。その影響で8時前からお仕事を始めた。

パスワードの表現の答え合わせ

先週末に課題としていた パスワードの表現 になかなか苦労したようで半日ぐらいかかった。私が答えを言うのではなく、本人が自分で考えて、自分で調べて実装できるまで粘り強く待っていた。概ね、私の模範解答に近いものを実装してきて、コードレビューで少し手直しはあったものの、go でコンストラクタに近いものを実装する方法を学んだと思う。

実家の離れスペースで働いてみた

今朝は軽く雨が降っていて、それ以降もずっと曇っていた。天気がどんよりしていたのもあり、エアコンは除湿に設定してソファで働いてみた。数年前から淡路島に帰ってきてリモートワークをしたことは何度かあったが、すべてマクドナルドへ行って電源を借りて作業していた。実家で丸1日リモートワークで働いたのは今回が初めてだと思う。どんな施設でもインターネットとエアコンさえあれば働けるということを改めて実感した。実家なのでお昼になったらおかんがお昼ご飯だと呼びに来る。食べるものも考えなくてよい。

iphone で作った wifi ルーター の 2GiB プランで契約している。普通に macbook でリポジトリを操作したり、課題管理を使ったり、ブラウザで調べものしたり、slack でやり取りしたりしていたら約9時間で 987 MiB の通信量となった。いまやネットワークの通信量を意識することはないと思うが、普通にお仕事したらいまの時代1日 1GiB ぐらい使うもんなんやと気付いた。

iijmio の管理画面で日次の通信量を当日分も含めて確認できる。

1週間とか、実家でリモートワークするなら 2GiB プランだと全然足りない。機をみて 5/10 GiB 程度のプランに変更するとよさそう。これでコワーキングスペースにして複数人が使う想定なら光回線をひかないとネットワークが厳しいということも理解できた。光回線をひくと安くても5,000円/月は固定費がかかってくるので維持費の問題は悩ましいことも分かってきた。