2021年買ってよかったもの

2020年に買ったものも含まれちゃってますが、ざっくり2021年に買って生活を変えたものシリーズをまとめました。

Apple Watch SE

iPhoneを出さなくても通知を受け取れるのと電子マネーが使えるのが便利。主にiDもしくはVisaタッチ決済で使ってます。あと普通に時計として使える。

 

SwitchBotシリーズ

www.amazon.co.jp

温湿度計・ボット・プラグを組み合わせて象印の加湿器の自動化をしています。加熱式だと寝室みたいな狭い部屋では一瞬で湿度が上がってしまうし、加湿器自体の自動制御モードは全然うまく動かないので、SwitchBotを使った自動化が便利。カーテンや照明を自動的に動かすようにしてみたりもしたけど、うちの生活パターンだとあんまり恩恵を感じていないです。

あとカメラがめちゃ安くてアプリを含めた品質が良いです。娘が寝てるかどうか確認するのに使っている。連携はしていないのでSwitchBotである必要は特にない。

AfterShokz OPENCOMM

みなさんご存知のOPENCOMM。リモートワーク始まってからいくつか試してみましたが、自分が喋る必要がある会議のときはOPENCOMMが一番良かったです。聞くだけで良いときはAnker PowerConfを使っています。

JINSのくもり止めレンズ

www.jins.com

マスクが大の苦手なのですが、大きな原因は眼鏡が曇ること。薬局で売ってる曇り止めの液などは試してみたけど全然ダメで、たどり着いたのがこのJINSのくもり止めレンズ。本当に全然曇らないし、特にメンテナンスの手間もかからないので外出には欠かせないです。通常の反射防止コーティングがなくなってしまい、少し視界がギラギラしてしまうため家の中では普通のレンズのメガネをしています。たまにメガネ替えるのを忘れて出かけてしまうと絶望的になる。

マキタ 充電式ファンベスト

item.rakuten.co.jp

夏は一瞬外に出るだけで汗が噴き出して体力を全て持っていかれるところ、これを着てると全然違う。着てる間は涼しさを感じないのですが、しばらく歩いたあとの汗の量とHP消費量が段違い。電車の中で使ったりはできないと思うので、通勤する世界になったら使えないかもしれない。

メラトニンサプリ

jp.iherb.com

子供があまりに寝ないので色んなことを試す中で辿り着いた。劇的に早く寝るというわけではないけど、2時を過ぎても寝ない事故の確率が減少し、安定して0時前後に寝るようになった。あと自分自身も明け方まで眠れないことが結構あったんだけど、メラトニンサプリを飲むと2時頃までには寝られる。

子供がストロベリー味のグミタイプのやつしか食べないのと、iHerbの在庫が不安定なので調達は毎回苦労している。

家事代行ベアーズ

www.happy-bears.com

もともと片付けや掃除をあんまりやらない夫婦だったが、子供ができてからは子供が部屋を荒らすし、世話が大変すぎて家の中が大崩壊していた。マッチング系の家事代行サービスも試してみたけど、家が郊外にあるためマッチングせず。ひとまず大手におまかせしようってことでベアーズを試してみました。週1回3時間のプランでリビングと水回りの片付け掃除、ゴミ出し、洗濯物畳みをお願いしていて、QoLの維持に大貢献しています。特に細かな指示を出さなくても、在宅勤務中にいい感じにやってもらえるのがとても良い。料金は正直かなり高いので、子供が成長してきたら減らしていきたいとは思っている。

トヨタ シエンタ

2021年ダントツで生活を変えたシエンタ。18歳で免許を取って以来ずっとペーパードライバーだったものの、ふと思い立ってペーパードライバー講習に通ってレンタカーでお出かけをしてみたらあまりの楽さに勢いで購入しました。子供を連れて電車で移動するのは本当に疲れるもので、子供はじっとしてないわ、まっすぐ歩かないわ、ベビーカー乗せたら乗せたでホームは狭いわエレベーターは全然ないわでかなり覚悟を決めないとお出かけできないんですよね。都内なら自家用車がなくてもタクシーで良いよねというのも大人の論理であって、子供はタクシーを探してうろついたり10分間待つことが本当にできない。自家用車なら車にさえたどり着けばゴールというのがお出かけのハードルを2桁くらい下げてくれる。

モデルはFUNBASE(5人乗り)・ハイブリッド。夫婦2人+子1人でサイズとしては少し余裕があるくらい。一泊分の荷物とベビーカーを積むとピッタリという感じ。休日しか乗らないので燃費の観点ではハイブリッドはそんなに効いてこないんだけど、動き出しがスイっとしてて良いのと、AC100V電源で電気ひざ掛けが使えて寒がりの妻が凍えないので良い。シートとステアリングのヒーターもついてて助かった。ペーパードライバーだったのでもちろん安全装備は全部入りにした。クリアランスソナーと360°モニターなしでは車庫入れできない。フルモデルチェンジして全車速対応ACCが積まれたら買い替えたい。

転職1年の近況報告

早いもので昨年の8月1日に転職してから1年経ちましたということで近況報告です。

現在のポジションは社内のプライベートクラウドのSREです。クラウドの利用者(=アプリ開発チーム)からの問い合わせ対応やトラブルシューティングだったり、クラウド基盤の開発の支援やキャパシティ管理、安定運用のためのあれこれをやっています。

クラウド基盤はサーバ仮想化、ネットワーク、データベース、ストレージ、ロードバランサ、コンテナなど幅広い分野のコンポーネントで構成されているわけですが、私は「突出した得意分野がないけどだいたいそこそこわかる」おかげでトラブルシューティングの一次切り分けが得意だったり、複数の開発チームやデータセンタ管理チームと話が通じやすい、のようにうまく強みにできている実感があります。

ばりばりコードを書いて開発するという感じでもないですが、運用のためのスクリプトやツールをそこそこ書いています。Python, Ansible, シェルスクリプトなど。

f:id:Jinmen:20200731120027p:plain

GitHub activity

また、いわゆる「調整」ができることもプラスになっています。前職の経験のおかげですね。社内の大体のシステムはHTTP APIを持っていて、難しい調整をしなくても利用権限をもらうくらいでお互いに連携して動かすことができるようになっていますが、「連携先システムにこんな機能が欲しい」とか「APIが変更になるのでシステムと運用をこのように変更して欲しい」など、システム間・チーム間の連携をより円滑にして業務フローを改善するには最終的に人同士の調整になります。企画して、要件定義して、基本設計して…というSIer的スキルがこういうところで役に立ちます。

しかし、「だいたいそこそこわかる」を強みにしたいのにKubernetesが全然わからないんですよね。現職のプライベートクラウドKubernetesも提供していて、利用者がどんどん増えているのでキャッチアップしたいところです。

これは言い訳なのですが、育児の負担が大きくて新しい技術の習得が困難になっています。今になって気付いたのですが、これまで興味を持った新しい技術は業務時間外でドキュメントを読んだり動かしてみたりして入門レベルの知識を得て、サブ仕事にして知識を深めて、うまくいけばメイン仕事になるという流れで切り開いていました。うちの娘(2歳)は全然寝ない子供で、就寝時刻は24時頃のため、保育園から帰ってくる18時から24時に就寝するまでの間はハイパー育児タイムです。入門レベルの知識を得る入り口がなくなってしまったわけです。管理職ルートとは別の35歳定年説の壁かもしれませんね。緊急事態宣言で保育園が休園になった時は本当にしんどかったです。これはもう仕方ないので、時が解決してくれるのを期待しています。

12年勤めたNTTを退職しました

 修士卒で入社し、12年と4ヶ月間勤めたNTT研究所を退職しました。昨年話題になった id:kumagiid:hichihara の近くの部署です。自他ともにあんまり転職しそうにない人だと認めていた私がなぜ転職することに決めたのか、自身の振り返りの意味も込めた退職エントリです。

振り返り

入社まで

 高校生のときに趣味でプログラミングを始め、早々に進路は情報系で行くことを決意していました。大学は東京工業大学の5類・情報工学科に進学し、画像処理全般に興味があったため研究室ではコンピュータグラフィックス分野の研究をしていました。就活については、今ほどソフトウェアエンジニアのポジションが明確でなかった時代と記憶しています。いくつか受けた中で運良く内定がもらえてプログラミングもできそうなNTT研究所に就職することに決めました。

入社直後

 当時は研究所全体にフレッツ光ネクスト開発の大きな流れがあり、初期配属の情報流通プラットフォーム研究所では、ネットワーク機能を活用したアプリケーションを検討していました。プログラミングをする機会はそれほど多くなかったものの、ネットワークプロトコルに関する知識を多く身につけることができました。

出向

 面談のたびに手を動かす仕事がしたいと言っていたら出向先としてNTTソフトウェア(現在のNTTテクノクロス)を見つけてもらいました。R&D寄りの部門だったこともあり、出向当初は特に決まった仕事がなく、研修室へ入り浸ってサーバやスイッチで遊ぶなどして身につけた知識で社内研修をしたり、プロジェクトの支援をしていた覚えがあります。そのうちRyuのプロジェクトに拾ってもらい、OSS開発を初体験しました。Ryuプロジェクトを通じてOSS開発の作法や、Linuxのネットワーキングの仕組みを学びました。

研究所帰任

 出向前に所属していた部署が再編されており、再編先のソフトウェアイノベーションセンタに帰任しました。前よりもソフトウェアに特化した研究テーマや人が揃っており、勉強になることの多い日々でした。ここではSheepdogの開発やトラブルシューティングをしたり、低レイヤ通信を使った新規研究テーマを検討してみたりしました。これらの仕事を通じてカーネルや低レイヤの知識を強化できました。

 直近では、社内向けのオンプレミスのGPUクラスタ構築をするチームのチームリーダーを任されており、初期設計とチームの立ち上げ、口コミでユーザを集めてトライアル運用までをやりました。ようやく軌道に乗りこれからというタイミングで抜けるのは心苦しくもありますが、頼りになるメンバー達なので任せて大丈夫と確信しています。

f:id:Jinmen:20190719153312j:plain
武蔵野研究開発センタ構内の桜並木

プライベート

 一方でプライベートではひたすら声優イベントに行って年間100イベントを越えたり、友人と一緒にイベンターノートの企画・開発をしたり、スマホゲーにハマったりしていて、仕事よりも趣味中心で生きてきました。昨年は子供が生まれ、2ヶ月の育休を取得し、マンションを購入し、持病の手術をし…とドタバタだったのでしばらくはゆっくりしたいと思っていて、転職するつもりはあまり無かったのですが…

f:id:Jinmen:20190719155412j:plain
堀江由衣さんのMV撮影地である小金井公園で1歳の娘と散歩

退職の理由

 特定の分野にこだわりがあって専門性を深めたい人なら異動は避けたいものだと思いますが、私の場合は定期的にリセットして別の分野にチャレンジできることはむしろ楽しいと思っていました。では何故転職を考えたかというと、実は何か決定的な理由があるわけではありません。長く勤めていると大小少なからず不満はあり、良いところもたくさんあったわけですが、そのバランスが転職に傾いたというのが実際のところです。その中で大きな理由を3つ挙げてみます。

管理職へ一直線のキャリアパス

 まだまだ技術を深く知り、コンピュータシステムに向き合い、手を動かし続けていたかったけれども、周りからはそのような役割を求められなくなったことが大きな理由の一つです。変化を感じ始めたのは4年前に役職が付いた頃で、もはや自分が手を動かして仕事をこなしたりリードすることよりも、新たな仕事を作り出す立場であることを強く求められてきました。研究テーマを検討して具体化し、目標を立ててロードマップを描き、実行のために必要な人員や経費に関してエンピツ舐めて資料を作り、幹部へ説明し…という、まあ要するに予算獲得の仕事です。

 特に私にとって重荷だったのは、指揮系統ラインに加えて暗黙のライン外のステークホルダーも多く、調整に次ぐ調整が必要で何かと意思決定コストが大きいことでした。計画を立てたら各所に説明し、意見を取り入れ調整し、計画に反映して再度説明し…と繰り返すうちに段々疲れてしまいますし、計画がやっと承認されていざ実行となっても今度は報告資料、気付いたら次期の計画作成…と、内部資料作成に多くの時間を割いていました。

 今年は管理職昇格に挑戦する節目の年です。これまで管理職見習いをなんとかやれたのは技術力がまだ生きているおかげだと考えています。それによって部下とスムーズに会話ができ、他部署との議論をリードすることができ、上司から信用を得ることができました。しかし、全く手を動かせない状況が続けば早晩技術貯金は尽きてしまい、管理職としてもダメになる可能性がありました。

 プログラマ35歳定年説の典型的なケースかもしれません。また、仮に管理職に昇格して勤め続けたとしても、いずれ役職定年を迎える頃には進退を考える必要があります。その頃には最新技術のことがわからなくなっていて再就職先に困るという事態も想像がつきます。であれば、今から技術で身を立て、必要とされるスキルを持ち続けることが結果的に将来の安定に繋がると考え、改めてエンジニアとしての道を選ぶことに決めました。

社内システム環境の悪化

 一番大きい理由ではありませんが、転職をはっきり考え始めたきっかけとなったのが最近の社内システム環境の悪化です。ここ数年間、セキュリティ強化や働き方改革などを背景に、業務ルールの厳格化とそれに伴った社内システムおよび社内ネットワークのリプレースが急速に進んでいます。ところが、ルールやシステム同士がちぐはぐで業務の実態に合わない状態がずっと続いていて、なかなか改善に向かって行きません*1。結果としてOSSなどのソフトウェアの開発・検証や研究には大きな支障が出ていますし、資料作成やメール等の業務においても使っていて非常にストレスが溜まる事態になっています。

 部署やチームによっては全社のネットワークで仕事することを諦めて、独自にネットワークを構築し、クラウドサービスを導入してその上で快適に仕事ができるようになっています。私も先頭に立ってネットワークの整備をしたり、Slack/GitHub/AWSの導入を進めて維持管理し、自分と周りの人が少しでも快適に、今風のやり方で仕事できるよう努力してきました。ところが、そのような部署独自のシステムはセキュリティインシデントのリスクと見なされ、セキュリティ部門からリスクをゼロにするためのルールが大量に課されます。ルールが現実的で効果的であればまだしも、時代遅れで意味がないものも多く、またルールはどんどん追加され、その度にエクセルのチェックシートや管理簿が増え…と対応に疲弊する日々でした。

 セキュリティ対策は重要ですが、利便性や効果を十分に検討して導入する必要があります。的外れなセキュリティ対策は業務効率や従業員のモチベーションを下げるばかりか、ユーザビリティが低いことでシャドーITを誘発するため、むしろリスクを高めて逆効果になっているように思えます。また、長期間継続した場合、この環境を当たり前と考える誤ったコンピュータ・リテラシーを育ててしまう危険がありますし、既に一部はそうなりつつあります。本当に手遅れになる前に一刻も早く改善することを願っています。

 ちなみにサーバやPCなどのマシン自体は豊富に調達可能でしたので、マシンパワーの点では全く困りませんでした。

ソフトウェアエンジニアの市場価値の向上

 結局のところ給与と待遇が良いことが今まで転職を考えなかった理由だったと思います。同世代平均と比較してまあまあ多い年収と、そこそこ良い福利厚生がありますし、特に素晴らしいのは年間25日の有給休暇*2が100%消化を義務付けられていることです。勤務体系は裁量労働制で、生活の都合に合わせて午後から出社する人や16時頃に帰る人も珍しくありません。勤務時間が平均7.5時間/日を下回る月もありましたが、評価や昇格において不利になることは全くありませんでした。これは、純粋に業績や周りに与えた良い影響などによって評価していることの裏返しでもあります。また、育児休業*3や病気休暇*4を取得しましたが、問題なく昇格できました。対外的にアピール可能な目立った業績やスキルがない自分にとって、他社で同等以上の待遇を求めることは難しいと考えていました。

 ところが最近はソフトウェアエンジニアの市場価値が向上してると言います。また、知り合いが実際に高額オファーで転職している様子も目撃し、いざ自分の市場価値を確かめてみようという意味も込めて転職活動をしてみました。すると、これまで複数分野のプロジェクトで便利屋の如く問題解決してきた経験やスキルがSREの需要とうまく一致して、良いオファーをいただけたので転職を決意しました。

転職活動を終えて

 本気で転職活動を始めたのは2月後半頃です。コーディング面接対策にLeetCodeとAtCoderを毎日やるようにしていたのと、レジュメを書いて知り合いに添削してもらっていました。知り合いの紹介で数社を受けて、5月前半には転職活動を終えました。GWを挟んだので、実働は2ヶ月くらいです。コーディング面接やその他の技術面接に関しては問題なくクリアできたのですが、さらにキャリアアップを狙って行くには業績の積み重ねと英語力アップ*5が必須だと感じました。

f:id:Jinmen:20190723021440p:plain
AtCoderのコンテスト実績

 また、NTTの管理職は向いていませんでしたが、技術寄りのエンジニアリングマネージャーなどのポジションには興味があり、改めて今後のキャリアの選択肢として考えたいと思っています。

 ここに至るまで大分遠回りしてきましたが、35歳でようやくソフトウェアエンジニアとしてのキャリアをスタートできたという気持ちでワクワクしています。商用環境を直接面倒見たりコード書いたりする仕事は初めてですし、純粋にエンジニアとしてチームで仕事をすることも初めてと言っても良さそうです*6。妻子がいる中で今後のキャリアについて少なからず不安もありますが、ずっと楽しく仕事していけたらいいなぁと思います。

*1:id:kumagi の退職エントリでも言及されていたが、あれから8ヶ月さらに悪化し続けている

*2:年次休暇20日+夏期休暇5日

*3:2ヶ月間、新生児期の2~3時間授乳の夜シフトを担当

*4:療養含め2ヶ月間、持病の手術のため

*5:8年前に受けたTOEICスコアが615で、読み書きはギリギリいけるが会話は絶望的なレベル

*6:これまでは1人プロジェクトだったり、チーム仕事でもリーダーだったりした

新型光ポータブル(PWR-Q200)のWi-Fiがプチプチ切れる

昨年、光ポータブル(PWR-100F)をレンタルしてからiPhoneのモバイルデータ通信(iPhone本体の3Gデータ通信)をOFFにしてドコモの高速回線でそこそこ快適に利用していました。最近ときどきフリーズしたり3G通信止まったりするし調子悪いなーと思っていたところ、新型光ポータブル(PWR-Q200)がいつの間にかリリースされていたので早速申し込みました。

2週間待って12/23に納品。そして感想。

新光ポータブルのWAN側を自宅のフレッツに繋がってるWi-Fiにしてみたけど不安定だFri Dec 23 10:26:11 via Tween

早速怪しいです。そして2日後。

なんか通知関係がおかしいのは新光ポータブルに変えてからのような気もする。スリープ後にWi-Fi接続切れてること多いし。Sun Dec 25 02:56:33 via SOICHA

このあと今日までの約2週間試行錯誤を繰り返して、設定可能な部分は色々とパラメータを変更して試してみました。

  • Wi-Fiチャネル、送信出力
  • 無線暗号化方式(WPA2-PSK、WPA-TKIP、WEP、暗号化なし)
  • 暗号キー更新間隔
  • ビーコン間隔
  • 省電力設定オフ

しかしピクリとも改善せず。スリープ状態でなくてもとにかくLAN側のWi-Fiがプチプチ切れます。モバイルデータ通信(iPhone本体の3Gデータ通信)をOFFにしてるため、Wi-Fiが切れると次の問題が起こります。

  1. プッシュ通知が来なくなるときがある
  2. 「モバイルデータ通信はオフです」のダイアログが出てうざい

1についてはWi-Fiが切れたら必ずしもプッシュ通知が来ないわけではなく、来たり来なかったり再現性が見つかりませんでした。ViberやFBメッセンジャーなどで連絡に利用しているのでプッシュ通知が来ないのは困ります。2については動画を見ていただくとWi-Fiアイコンが一瞬消えたあとダイアログが出て、Wi-Fiが復活しているのがわかります。

色々と検証を行なっているうちに、あることがわかってきました。PWR-Q200にiPhone 4SiPhone 3GSノートパソコンをつないでロックさせないで30分ほど置いたときの最初の10分のログが下記です。なお、残り20分くらいも同じようなログでした。

2012/01/04 20:27:10 LAN WLAN: got WPA STA ASSOCIATE event!
2012/01/04 20:27:10 LAN WLAN: STA(d0:23:db:XX:XX:XX) is associated!
2012/01/04 20:28:18 LAN WLAN: got WPA STA ASSOCIATE event!
2012/01/04 20:28:18 LAN WLAN: STA(1c:4b:d6:XX:XX:XX) is associated!
2012/01/04 20:28:42 LAN WLAN: STA(d0:23:db:XX:XX:XX) is deauthed!
2012/01/04 20:29:23 LAN WLAN: got WPA STA ASSOCIATE event!
2012/01/04 20:29:23 LAN WLAN: STA(c4:2c:03:XX:XX:XX) is associated!
2012/01/04 20:29:31 LAN WLAN: got WPA STA ASSOCIATE event!
2012/01/04 20:29:31 LAN WLAN: STA(d0:23:db:XX:XX:XX) is associated!
2012/01/04 20:33:32 LAN WLAN: STA(c4:2c:03:XX:XX:XX) is deauthed!
2012/01/04 20:33:33 LAN WLAN: STA(d0:23:db:XX:XX:XX) is deauthed!
2012/01/04 20:33:33 LAN WLAN: got WPA STA ASSOCIATE event!
2012/01/04 20:33:34 LAN WLAN: STA(c4:2c:03:XX:XX:XX) is associated!
2012/01/04 20:33:43 LAN WLAN: STA(c4:2c:03:XX:XX:XX) is deauthed!
2012/01/04 20:33:45 LAN WLAN: STA(c4:2c:03:XX:XX:XX) is deauthed!
2012/01/04 20:33:45 LAN WLAN: STA(c4:2c:03:XX:XX:XX) is deauthed!
2012/01/04 20:33:47 LAN WLAN: got WPA STA ASSOCIATE event!
2012/01/04 20:33:47 LAN WLAN: STA(c4:2c:03:XX:XX:XX) is associated!
2012/01/04 20:34:06 LAN WLAN: STA(d0:23:db:XX:XX:XX) is deauthed!
2012/01/04 20:35:36 LAN WLAN: STA(d0:23:db:XX:XX:XX) is deauthed!
2012/01/04 20:36:00 LAN WLAN: STA(c4:2c:03:XX:XX:XX) is deauthed!
2012/01/04 20:36:08 LAN WLAN: STA(c4:2c:03:XX:XX:XX) is deauthed!
2012/01/04 20:36:10 LAN WLAN: got WPA STA ASSOCIATE event!
2012/01/04 20:36:10 LAN WLAN: STA(c4:2c:03:XX:XX:XX) is associated!
2012/01/04 20:36:16 LAN WLAN: STA(d0:23:db:XX:XX:XX) is deauthed!
2012/01/04 20:36:18 LAN WLAN: got WPA STA ASSOCIATE event!
2012/01/04 20:36:18 LAN WLAN: STA(d0:23:db:XX:XX:XX) is associated!

1分半置きくらいでWi-Fi切断を示すと思われる"deauthed"が出ています。iPhoneからは1分半置きというほど頻繁に切断されている感じはしないので、恐らくすぐに再接続できた場合は影響がないのでしょう。しかし、よく見るとノートパソコンだけ切れてません。ノートパソコンはほっといても色んな通信をしていますから、比較的短いオーダーで一定時間通信が途切れると切断されてしまうのではないかという仮説を立てました。そこで、ロードし続けるWebページをiPhone 4Sで表示したままにしておいたところ…

2012/01/04 21:45:32 LAN WLAN: got WPA STA ASSOCIATE event!
2012/01/04 21:45:32 LAN WLAN: STA(d0:23:db:XX:XX:XX) is associated!
2012/01/04 22:15:33 LAN WLAN: STA(d0:23:db:XX:XX:XX) is deauthed!
2012/01/04 22:15:39 LAN WLAN: STA(d0:23:db:XX:XX:XX) is deauthed!
2012/01/04 22:15:39 LAN WLAN: STA(d0:23:db:XX:XX:XX) is deauthed!
2012/01/04 22:15:41 LAN WLAN: got WPA STA ASSOCIATE event!
2012/01/04 22:15:41 LAN WLAN: STA(d0:23:db:XX:XX:XX) is associated!

30分間切断されずにもちました。この時は暗号鍵の更新時間を30分に設定していたので、それが原因で切れたと思われます。暗号鍵更新で切断されるのもどうかと思いますが…。結論としてはiPhoneにずっと通信をさせておけばWi-Fiが切れないことがわかりました。

これ、ファームウェア更新とかで直るんでしょうか。PWR-Q200を返品してPWR-100F使い続けてもいいかなぁ…。