ziguzagu.org

1月も半ばだけど2021年の振り返り。

健康

気持ち的なアップダウンがあるのは2019年以降相変わらずで、これはふっきれるにはだいぶ時間がかかるんだろうという気がしてる。 一方で完全にリモート&パンデミック状況下で物理的に会う人は家族以外ゼロに等しい中で、世間でいわれるような孤独感を感じることもなく。家族のおかげもあるだろうし、そもそも「孤独感」というものにかなりにぶいタイプとも思うけど。

身体的な面は、1年間週2回のランニングを続けれたのもあってかだいぶ改善された感じ。しんどい腰痛をやらかすことはなかったし、肩こりもほぼない。えらい。一方で体は随分と硬くなっているので今年はこの辺を改善できると良さそう。

あと4月から歯列矯正も始めた。問題だった前歯の上下がクロスしていたのはあっという間に矯正され、毎週1回は食事中に唇や下を噛んで激痛と共に血を流していたのが全くなくなってすごい。マウスピースの付け外し&都度歯磨きが面倒で、間食も減り水ばかり飲んでいるのも健康に寄与しているかもしれない。まだ終わってないけど基本的にはいいことしかないので、がんばってやりきりたい。

とにかく大きな凹みが1年間なかったのでよかった。

仕事

3月からフリーランスとして新しい仕事の仕方を始めた。といってもやることはソフトウェアエンジニアであり、ミクロな観点ではほぼ同じ。 ただし「組織に属さず働く」というのは良くも悪くも影響あったような気がしている。

良い面としては、コード書くこと&読むこと(レビュー)で貢献できたか?がほぼ成果指標の100%になったこと。

社員であることに加えマネージャーというものもやってたりすると、定性的な活動に費やす時間も結構あって、その活動の成果がすぐには見えないものやそもそも見えづらいものなんかも多かったけど、それが一変して「特定の開発業務で成果をだす」に(契約上も)変わった。良し悪しだとは思うけど、ある種のリハビリ感もある自分には必要な期間でもあり業務でもありでとてもよかったと思う。2社で時間を割っている以上1社あたりの時間はそれなりにはなってしまうけど、ある程度安心して仕事ふってもらえてる気はするのでもう少し頑張っていきたい。

一方で、チームメンバー含む所属組織から受ける影響というのがほぼなくなってしまって、しばらく覆い隠されていた冷めた性格・何事にも無関心な性格がまた出てきているようにも思う。もともとの社会性の欠如かもしれないし、心理的負担に対する過剰防衛かもしれないけど、なんかこうブレーキをかけがちになってる気もする。目立って悪い影響があるわけでもないので特に対策もないけど。どうしようかな、これは。

とりあえずフリーランスで10ヶ月過ごせて、リモートワークも特に苦じゃない状況的には前に比べれば随分明るい。

技術

もとも契約段階で2社ともに Ruby & Rails な仕事というのもわかっていたので、サーバーサイドエンジニアとしての感覚を取り戻す、スキルを少しでも伸ばすというのが1年間のテーマでもあったけど、2社で毛色の違う業務をできてるのも幸いして、Ruby / Rails については1年前より少しだけど確実に進歩した気はする。評価のしようがちょっとないけど、きっとそう。

これは今年もある程度継続したいところなのだけど、フリーランスを続けていくには Ruby & Rails を徹底的に磨くより、もう1個の別の何かをできるようにする方がよいなと改めて考えてる。前職マネージャー時代にもみんなに言ってたような、相乗効果のあるデュアルスタックな方向で。

と、考えると、自分の場合は自然と興味がいくのはこれまでやってきてわかってる部分もあり進化も速いインフラ側なので、そっち系かなぁとぼんやり。業務外で全然違うことに挑めるほどの時間はちょっとないし、フリーランスにスキルが乏しい分野の仕事を任せてもらえるなんて甘い話は(たぶん)ないので、このあたりは社員と違って難しいところ。

大学

ほぼ勢いだけで始めた大学生活。勝手がわからず、捻出できる時間もよめない中だいぶ控えめに履修科目を選択したものの、実際自分のミスで2科目試験受けれなかった(試験期を間違えた&時間がたりなくて課題にたどり着けなかった)。来月の試験を残してすべて合格できているけど、1年次に選択できる専門科目(情報科学系)は、社会人生活20年自力で学んできたことで全部カバーされていて何も新しいことがなかったので、当たり前といえば当たり前の結果。自分が一番やり(なおし)たかった数学はまだ取ってないし、今年は本当に様子見という感じで本番は来年からのつもりではあったので、早いうちにミスしたのも含めてよかったのかもしれない。

学習のリズムは改善の余地がかなりある。平日のうち週4日働いて1日は学業と健康増進の日としていたけど、週1日だけだと単純に時間もたりず記憶効率も悪いというのは改めてわかった。ただ平日は子供と一緒にお風呂にはいり寝かしつけると自分もそのまま眠てしまい…、かといって朝おきれるわけでもなくただ睡眠が改善される、という感じ(むしろ良かったのかも)。2年目以降は自分の自力になってない科目も増えてくるので、この学習のリズムと計画は改善しないと結構悲惨なことになってしまうかもしれない…。

家庭

3歳と10歳のペアは相変わらず手がかかる。一緒に遊んでるかと思いきやすぐに下の子のわがままが始まり泣き、それをなだめるのを優先すると上の子がすね、じゃあたまには上の子に譲ってあげようとすると、下の子がますます泣き、自分もイライラがつのり不機嫌になり、その不機嫌をみた奥さんが不愉快になり…、みたいなどうしようもない悪循環起こすことももままある。

そんな中でも毎日朝晩の食事を用意し、保育園と習い事の送迎をし、週末は遊びに連れ出しなど、ようやっとるなとは思う。けど、とにかく毎日疲れる…。

だれも新型コロナには感染しなかったし、下の子が夏に1週間RSウィルスで熱出したのを除けばみんな健康だったのは幸い。毎年行っていた沖縄旅行には今年もいけずじまいだったけど、代わりに夏・冬と行った長野の森のコテージは全員楽しめて、新しい定番の旅ができた気がするのでよかった。

ぼやきもいろいろあったけど平和な家庭だとは思う。

まとめ

世界が変わってしまった2020年に続き、パンデミック継続な2021年だったけど、こうやって振り返ってみると自分にとっては悪くない1年で、厄も落ちてついに谷底から脱出しかけてる気がする。

2022年は果たしてどうなるかなぁ。

Emacs の設定ファイルを分割していたのをやめて、init.el のみにすべてを集約した。

新しい設定を追加しようと思うたびに「これどのファイルにいれるかなぁ?」みたいな、あまり意味のないことを考える必要がちょいちょいあったのだけど、この記事を読んで Helm から Vertico + Consult にシュッといってみよかな、と思ったときに、既存ファイルにいい場所がない、新しいファイル作るとしてファイル名は???というので悩んでしまったところで限界に達した。

そもそもなんでファイル分割してたのかも思い出せなかったくらいだし、分割の粒度やファイル名もいまいちだったのかもしれないけど、use-package が imenu サポートしてるということに気づいたのでガガガッとやった。

(eval-when-compile
  (setq use-package-enable-imenu-support t)
  (require 'use-package))
(require 'bind-key)

移行自体は、もともと use-pacakge を大体のところで使っていたので、分割して読み込んでいた↓ のようなところを、順次コピペ・削除して移動自体はシュッと完了。

(add-to-list 'load-path "~/.emacs.d/init")
(load "init-appearance")
(load "init-modeline")
(load "init-scratch")
(load "init-dired")
(load "init-general")
(load "init-yasnippet")
(load "init-company")
(load "init-completion")
(load "init-helm")
  :
  :

ついでに use-package 使ってなかったところもぼちぼち use-package に移行して imenu で移動・検索しやすくした。

ファイル分割時代とくらべると、

  • git grep(helm-git-grep) で検索・移動から、imenu で検索・移動になったのが圧倒的に楽
  • あたらしい設定追加時も「どのファイルにするか」というのを考えなくてよくなった

という点がとにかく快適でよい。

悪くなった点はいまのところ何もないのでもっと早くやっとけばよかったなという感じ。

https://github.com/ziguzagu/dotfiles/.emacs.d/init.el

2月中旬、ドライブ中の会話。

  • 僕:いろいろあったので今年はなんか趣味を作りたい。なんかアイデアないですか?
  • 妻:うーん。料理は?申し訳ないけど、毎日作ってるでしょ。もういっそ趣味って言ったら?
  • 僕:あれは家事です。暇だから料理しよう、とはならない。せっかく作るならと思ってたまに手の込んだもの作ったり、新しいレシピ探したりするけど、基本的に使命感でやっております。
  • 妻:・・・。
  • 僕:なんか作るなら1日とか短い時間で1回が終わらないやつ。長く続けないと完成しないやつがいい。
  • 妻:・・・・・・。
  • 僕:この前久しぶりにプラモデル作ったけど、飾って楽しむとかポーズをとらせて楽しむとかそういうのが全くないことがわかった。作ってる最中は楽しいんだけど完成が見え始めるとやる気もなくなって、実際微妙に完成しないまま1ヶ月放置してたし。なんとか作り終わったけど、とっておく場所もないし1ヶ月くらいで捨ててしまった。
  • 妻:めんどくさいな・・・・・・。
  • 僕:・・・・・・。
  • 妻:あ。大学は?
  • 僕:!?
  • 妻:言ってたじゃん。後悔があるって。
  • 僕:!!!!!
  • 妻:新しい趣味探すのもいいけど、そういう過去やりたかったけど出来なかったことやったほうが確実でお得じゃない?
  • 僕:すぐに損得勘定したり元を取ろうという発想になるのはいかがなものかと思うけど、そういえば、すっかりわすれてた。大学。
  • 妻:ひとこといらない。

という会話をきっかけに、いろいろ考えた結果、タイトルのとおり(社会人)大学生になった。

10年くらい前までは「いつか大学に」というのはずっと考えてはいたけれど、子供が生まれて自分の時間が徐々になくなり始め、2人目も生まれてさらにへり、仕事で忙しくしたあげく2年前に一瞬体も壊して精神も削ってしまい、とかとかで、もう完全に記憶の彼方にいっていたやつが急に呼び起こされた。

帰ってからすぐに調べたら「工学・情報科学の学士がとれて通信制」という2条件で選択肢が(いまだに)1つというのに若干がっかりもしたけど、大学選びで迷う必要はなくなり、このタイミングでいくのか行かんのか、ということだけになった。3月からフリーランスという新しい働き方始めるのもあり、仕事も体調もどうなるかわからないので願書の準備はしつつも提出はギリギリまでねばり、3月後半に「なんかしんどいんだけどタイミングはいましかないかなぁ」という気になった結果提出して、先週無事入学通知がとどいた。

高卒なので1年から。観測範囲での社会人大学生はほとんど大卒で2年・3年次入学が多い気がするのとか、仕事はもちろん継続だし、下の子が小学生になるまでの後4年間は引き続きひたすら時間がないはずだし、仕事も別に余裕があるわけではないし、また単に自分を追い込むだけの無理ゲーを始めようとしているのでは?とも思う瞬間もあるけど。

趣味で、好き好んでいくわけだし、なんかこういきりたって「仕事に役立てるのである」とかそういうのもあまりなく、ただ単に勉強したいだけといえばだけなので気楽にやりたい。何か新しい発見があることも期待して。

卒業は良くて6年、普通にやって7年、バッファ持って8年という感じだろうと思うので、たぶん50歳くらい。なかなか字面的に迫力のある年齢になってきた感。

Netlify にこのブログを移すタイミングで、ドメインレジストラを Google に移行して、DNS は Apex 使っている関係もあって Netlify の DNS を使っていたけど、両方とも Cloudflare に移行した。

以前使っていたドメインがもうすぐ更新で、なんとなく Google ではないどこかないかなぁ、Netlify がAレコード直指定サポートしてくれてるとはいえあんまりやりたくないしなぁ(実際この期間にアドレス一度変わってる)、とか思いながらぼんやり Netlify のドキュメントを眺めていたら、Cloudflare の DNS で CNAME Flattening というのがサポートされていて、CNAME に Apex ドメインが設定できるというのを知り、レジストラもやってて値段はドメイン原価のみというのもあってシュッと移行した。

使い勝手としては通常のドメインレジストラとはちょっと違って、Cloudflare にサイト(ドメイン)を登録して NS レコードを Cloudflare に向けるところまでやって「Cloudflare をエッジとして使う準備ができたドメイン」についてのみ移管できる、という感じの流れになってた。ドメインの価格を原価のみに設定するというのは、つまりはそういうことだろうなとは思ってはいたし、Netlify の CDN が日本に Edge がなくてさして速くはないというのもあってうっかり速くできたら儲けもんくらいのノリもあったので、これは支障にならなかった。

実際移行して Cloudflare の無料機能も使ってみるといろいろ面白い。キャッシュヒット数が可視化されてるのはもちろんのこと、帯域幅やDNS のレスポンスタイムの可視化、HTTP/TLS バージョン別のトラフィック統計とかとか、エッジ周りのいろんなイベントが可視化されて見える。Netlify でもできる JavaScript/CSS の Minify に加え、Brotli 化するのもできて、Cloudflare でどれだけ帯域節約・速度向上させたかの可視化なんていうのもある。

レイテンシーについては Netlify CDN と比較するとそこまで改善していなさそうな気配。Netlify はエッジが日本になく Cloudflare は東京と大阪にあるようなのでちょっと期待してたけど、無料プランだしそもそもたかが知れたアクセス数というのもあってかキャッシュミスヒットも多くて、でも DSA 的な部分でちょっと速いくらいの感じ。

とはいえ、Apex 使うために DNS 的制約があった部分が払拭できたのに加え、エッジのもろもろな機能をおまけで使えるのは大変良いので、しばらくこれで安泰。

【2021-04-14 追記】 どうも Cloudflare の Proxy (CDN) を有効にしてしまうと Netlify 側が正常動作しないっぽく警告が消えないのと証明書の更新ができならしい。フォーラムでも警告されてたりした。残念ながら DNS のみ使うことに。まぁ、料金は安くなったからいいか…。

3月からフリーランスとして仕事を始めて1ヶ月がたった。

いまのところ週4日勤務で、1社は火〜木曜の3日、もう1社が金曜という感じで始めてみている。

メインにしてる週3勤務の方は Rails 中心のサービス開発で、開発が始まって数年のサービスだけどコードベースでは過去経験した中ではすでに一番大きい規模感。関わってるエンジニアの人数も多いし、社全体のエンジニア人数も多くて、いろいろ目新しいものや仕組みがいっぱいな感じで、その辺りは望んでいた通りで大変良い。

勤務としては中4日間隔があくせいか、少しのブランクのせいか、衰え(?)のせいか、コードベースや業務知識について理解を深めるスピードがとても遅く感じていた。もちろん参加した時にはすでに一人で全部理解するのは難しいサイズになってるし、そもそも結構複雑なことをやっているサービスでもあるので、単純にキャッチアップが難しいのかもしれないけど、毎日書くコード量があまり増えていかないし精神的にはちょっときつかった。

ただそれは、頼まれてもないのに基準を厳しく設定していて自分を追い詰めていただけのようで、3月最終日に簡単なフィードバックをもらい「いい動きしている」「安定感があって安心」といった風に言ってもらえて、ほっとしたというか、あぁまたやってしまう寸前だったかぁ、と思った。性格なのだろうけど。

もう1社は、契約前の面談では、技術的に大きな課題感があるものの週1日なので技術全体のディレクションとかを中心に、みたいな希望を聞いていた。ただ、それだけで1日使うかなぁ?というのと、どうであれやれることはいっぱいありそうなのでとりあえず入ってからタスク決めましょという形で始めさせてもらった。

初日に最新の内情を聞きつつも、ちょうどひとりイキのいいエンジニアが入って現状の運用とか開発体制改善みたいなのは着手し始めてる、という感じだったので、当初話にあったような業務はその方にお任せしつつ見守りつつとして、自分のタスクは、重要度・難易度は高いけど緊急ではない(あるいは時すでに遅しなのでとにかく終わらせることの方が大事な)技術的な業務に集中させてもらうことにした。

こちらも Rails でサービス開発していて、Ruby と Rails どちらもバージョンアップが必要な状況の中、まずは Ruby のバージョンアップを優先してやることに。ドメイン知識の獲得がそれほど必要なく、前職での経験もあって調査もコミットもどんどんできるし、Ruby と Rails について掘り下げる機会にもなって大変ありがたい。

あとは組織課題に関しての相談なんかも。昨日のミーティングの最後に「体調のいい時の酒井さんやっぱピカイチだわ」と、本当に褒められてるのかよくわからない言葉ももらったけど、他人からそう見えてるのであれば体調はやはりよくなっているのかもしれない(前日にメインのところのフィードバックもらって精神的に少し楽にはなっていたのもある)。

なんとか大丈夫っぽいので今後はもう少しリラックスして挑みたい。