徒然技術日記

Object.prototype.__noSuchMethod__

2021年の振り返り

今年は年賀状を作るのをやめようと考えているので,代わりに振り返り記事というものを書いてみようと思います.

テックリード就任

2019~2020年にかけて Web チームを技術的にリードする人が不在の時期が続いてしまい,弊害が無視できなくなってきたということで,CTO とチームリーダーから打診されて2021年1月に Web チームのテックリードに就任しました.

業務を兼務しすぎたことと自身の能力不足もあって今年はまだチームをリードできているとは言い難い状態で,反省点も数多くあります.来年は関わっている業務の整理や委譲をもっと進めて,チームが必要としている領域によりフォーカスして貢献できるよう,セルフマネジメント力を高めていきたいです.

対外活動

ほとんどアウトプットできなかった2020年と異なり,今年は気がついたらさまざまな対外活動をした1年になりました.

Web24

GW に Web24 という Web の話を24時間議論するイベントがあり,パフォーマンスのセッションオーナーとしてお誘いいただきました.

nodaguti.hatenablog.com togetter.com

アーカイブがないので今となっては何を話したのかわからないですが,公の場で登壇形式として初めてパフォーマンスの話をすることができました.

CA BASE NEXT

5月末には会社の若手が運営する技術カンファレンス CA BASE NEXT でパフォーマンスと信頼性について登壇しました.

ca-base-next.cyberagent.co.jp

3月くらいからパフォーマンスに加えて本格的にクライアント領域での SRE 活動に取り組み始めたので,両方の話について取り組みのアプローチを紹介する構成にしました.

結果として盛り込みすぎになってものすごく早口になってしまったのが反省点です.

WEB+DB PRESS

会社として連載を受け持つことになり,その中の一回として8月の Vol.124 でパフォーマンスの記事を寄稿しました.

gihyo.jp

パフォーマンスの定義と重要性,そしてデータドリブンに改善を進める方法について ISO 25000 や SLI/SLO を絡めつつ概観する内容に仕上がりました.

パフォーマンスに関して Core Web Vitals の普及や各種ツールの進化が進む中で,「なぜパフォーマンスに取り組むのか?」「どうやって改善を進めるのが王道なのか?」を改めて自分の中で整理するよい機会となりました.

ABEMA Developer Conference

12月に ABEMA として3年ぶりに開催されたテックカンファレンス ABEMA Developer Conference 2021 では,Web チームからパフォーマンスの取り組みにフォーカスしたセッションを行いました.

developer.abema.io

CA BASE NEXT での失敗を生かして内容を詰め込みすぎず,それでいて CA BASE NEXT と WEB+DB PRESS での話題を双方盛り込んだ 2021 年の集大成的なセッションにすることができました.

結果として今年はパフォーマンスに関するアウトプットを多くした一年になりましたが,来年はテックリードとしてより広い視野でのアウトプットを増やせるようになりたいです.

プライベート

引越し

年明けからメンタルの調子を崩してしまい,狭くて暗い部屋に一因があると考えて 1R から 1K に引っ越しました.

それまでは狭すぎてダイニングテーブルが物置になったり,ディスプレイを電子レンジの上において仕事をしたりしていましたが,引越し後は陽当たりがとてもよく,風呂トイレ別で非常に快適になりました.

そのおかげもあってか年の後半は回復して運動を再開したり旅行に行ったりできるようになり,健康的な生活を送れるようになったのがよかったです.やはり人間には太陽が大事.

旅行

遠出をせずに旅行気分を楽しめる方法として都内のラウンジ付きホテルに2回泊まりました.

また,就職してから始めた百名湯巡りの一環として石川県の片山津温泉に行きました.北陸に泊まること自体が初めてで,金沢の独特な文化を堪能できて楽しい旅行でした.

来年はスキー板を買ったのでスキーに行く回数を増やすのと,JGC 修行をする計画を立てているのでとりあえず年前半は羽田と那覇を往復する生活をする予定です.

2022年に向けて

さまざまなことを着実に進めつつ,視野と見識をさらに広げる一年としたいです.みなさまよいお年を!

「質とスピード」と SHIROBAKO

この記事は SHIROBAKO Advent Calendar 2021 の22日目です.

SHIROBAKO 7話で原画がなかなか仕上げられずに悩んでいる絵麻に対して,杉江さんは次のように声をかけます.

絵麻「うまくなれば速く描けるようになるんじゃないんですか?」

杉江「速く描くにはうまくなる.うまく描くにはいっぱい描く.いっぱい描くには速く描く.技術とスピードは実は全く別の問題でね」

これを聞いて,杉江さんの「技術とスピード」という言葉は IT 業界でよく話題に挙がる「質とスピード」の関係と似ていそうだと気が付きました.

speakerdeck.com

ソフトウェア開発の現場では「品質とスピードはトレードオフの関係にある」という考え方,すなわち品質を高めようとすれば開発に時間がかかり,品質を犠牲にすれば短時間でソフトウェアを完成させられるという考え方がよく信じられています.

しかし,実際には品質(特に保守性)が高ければスピードは上がり,スピードが速ければ仮説検証サイクルが多く回せるのでプロダクトの質が高まるという関係になっていること,そしてこの二つと真にトレードオフになっているのは教育であるということが事例研究や経験によって明らかになっています.

つまり,人材育成や技術調査といった「未来への投資」を行うかどうかが,品質 および スピードに影響するということです.


数年前に,教育コストを削減するためにジュニアエンジニアを採用せず,経験者(シニアエンジニア)だけでチームを構成しようとしている会社は次第にエンジニア組織が弱っていき,開発速度もソフトウェアの品質も上がらなくなるという話が話題になりました.これもまさに,教育と「品質およびスピード」がトレードオフの関係であることを示す好例といえるでしょう.

portalshit.net

ohbarye.hatenablog.jp

さて,SHIROBAKO の話に戻ると,冒頭の杉江さんの言葉を聞いた絵麻は,まさに質とスピードをトレードオフと捉え,質を犠牲にすることで速度を出そうとします.その結果,瀬川さんから「描き急いでいるせいで,全部の線がなんとなくでとりあえず」(7話) になっていると指摘され,全カットリテイクになってしまいました.

そのあとも丁寧さとスピードの狭間で悩み続ける絵麻でしたが,見かねた井口さんから「『まなぶ』って言うのは『まねぶ』っていうじゃん?みんな最初は誰かの真似.おんなしおんなし」 (8話) と周りのうまい人の技術を吸収して経験を増やすことの大切さをアドバイスされ,原画完成への希望が湧いてくるのでした.

なお,杉江さんも「技術とスピード」の話のときに「周りにうってつけの手本がいる.小笠原さんや井口さん,彼女らも安原さんと同じ壁を乗り越えてきたのだから,相談にのってもらえればいい」(7話) と先輩から技術を学ぶことを提案しています(残念ながらこのときの絵麻には響きませんでしたが).

作中で絵麻は優しい先輩からアドバイスと「秘密の並木道」を教えてもらって復活し,最終的に劇場版では作画監督を務めるまでになりました.しかし,これが能力・経験至上主義の現場であれば首を切られてしまい,絵麻個人としても武蔵野アニメーションという組織としても成長の機会を失ってしまっていたことでしょう.

SHIROBAKO のこのエピソードは,原画担当になったばかりの絵麻といういわばジュニアエンジニアのような立ち位置のメンバーに対して,組織として教育に投資をすることが重要だということを示唆しているように思います.

先行研究

scrapbox.io

game-pm.com

anication.hatenablog.com

過年度の記事

nodaguti.hatenablog.com

nodaguti.hatenablog.com

星野リゾート OMO7 旭川で2週間ワーケーションをした話【2020年】

去年(2020年)の話になりますが, 伊豆大島に引き続き,旭川でも2週間ワーケーション(リモートワーク+観光)をしてきたのでどんな感じだったのか紹介します.

nodaguti.hatenablog.com

使用したプラン(今年も実施中!)

使ったプランは,星野リゾートの都市観光ホテル OMO7 旭川が提供していた「憧れのリモート書斎プラン」です.これは15〜30連泊限定で素泊まり1泊3000円になる格安プランだったので,今回は最低泊数の15泊16日で申し込みました.

www.hoshinoresorts.com

さらに予約後に GoTo トラベル対象にもなったので,実質的に一泊1500円弱で泊まることができました!

星野リゾート予約システムの予約詳細画面

このリモート書斎プランですが,なんと今年も継続して提供されています.

www.hoshinoresorts.com

しかも7泊からでも OK と使い勝手が向上しています.予約サイトの表示によると残念ながら今年のプランは初めから「GoTo トラベル対象外」と明記されていますが,それでも充分お得なプランだと思います.

OMO7 旭川では「スキー都市宣言」として近隣へのスキー場へ無料送迎バスを出すなど,ウィンタースポーツへのサポートも充実させているので,平日は仕事をして休日はスキーを楽しむという滞在はいかがでしょうか?

www.hoshinoresorts.com

出発〜宿到着

今回が人生で初めての北海道でした.到着してから周辺の散策や買い出しなどを行いたかったため,余裕をもって AIR DO 83便 11:15 羽田発 12:50 旭川着の飛行機を選択しました.

空港の出発ロビーでキャリーバッグの上にリュックサックを載せている様子

空港に到着し,自動チェックイン機でチェックインをしようとしました(AIR DO に乗るのも初めてだったので,スキップサービスの存在に気がついていませんでした).

しかし,予約確認番号を入力して発券しようとするも「ご指定の航空券は見当たりません」というようなエラーが出て発券できません.2回,3回と試すも同じでした.

ここでふと時計を見ると,そこに表示されていた時刻は 11:10.予約した便の出発時刻を再度確認すると 11:15 でした.路線検索サイトで到着時刻を指定するつもりで出発時刻の欄に入力してしまい,空港に到着したときには保安検査場の通過時刻を過ぎてしまっていたのです!

すぐにカウンターの方に相談したところ,「まだ飛行機が出発していないので次の便に振替いたします」とのことで,17:15発18:50着の便に振り替えていただけました.今回はたまたま離陸前に気がつけましたが,もし離陸してしまっていたらと考えると背筋が凍りました... あのときのグラウンドスタッフの方,本当にありがとうございました.

意図せず6時間の待ち時間が発生してしまったので,ラウンジで本を読みつつひたすら時間を潰し,なんやかんやで来た飛行機に乗り,ようやく旭川空港に到着しました.

「ようこそ旭川空港へ」と書かれた案内板 10.2度を指している空港の時刻温度計

そこからさらにバスで1時間揺られ,20時に宿に到着しました.

宿の部屋の様子.備え付けのベッド2台がL字型になっていて,ベッドの間に机がある.

部屋はスタジオルームという最も狭い部屋を選びましたが,コンパクトで機能的にまとまっていて充分快適でした.

仕事環境

宿の部屋を窓側から見た様子.手前から机,ベッド,ユニットバスがある.

部屋での仕事は,写真の手前にあるカウンターのようなテーブルですることになります.

PC だけなのでテーブルの広さはさほど問題になりませんが,ベッドに座ることになるので座面と床の高低差が小さくやや窮屈なこと,背もたれがないので長時間の作業にはあまり向かないことが難点かもしれません.私はよく壁に寄りかかって斜めに向いて作業していました.

また,テレビもかなり小さく,HDMI ケーブルを持っていきましたがサブディスプレイとしては使えないものでした.

一方で,一階のカフェスペースやラウンジは開放感があり快適な作業スペースでした.平日の昼間はほとんど人がいなかったため,会議がなければここでずっと作業することができました.無料ドリンクやお菓子も置いてあり,最高の環境でした!

カフェスペースの様子.手前に無料ドリンクが置いてあり,奥にテーブルと椅子が並んでいる. ラウンジの様子.テーブルとソファーが置かれている.

インターネットは星野リゾートなだけあって高速な WiFi が全館完備されており快適でした.

また,OMO7 にはあの『サ道』にも掲載されているサウナプラトーが併設されており,仕事上がりに無料でととのうことができました.

omo-hotels.com

浴槽や洗い場も広く,人も少なかったので気持ちよくリフレッシュできました.

食事

書斎プランは素泊まりなので,食事は自分で調達する必要があります.幸い OMO7 は市街中心地に近い好立地で,サツドラ (サッポロドラッグストアー)やイオンが徒歩圏内,繁華街の3・6街も近いので買い出しや外食には困りませんでした.

Map provided by OpenStreetMap

f:id:Nodaguti:20211111202616j:plain
駅前のイオン

f:id:Nodaguti:20211111202905j:plain
飲み屋が軒を連ねる5・7小路ふらりーとも近い

朝食

OMO7 の地下に電子レンジが設置されていたので,朝食はイオンで買ったパックごはんと納豆を食べていました.また,野菜不足を懸念して青汁の素を牛乳で割って飲んでいました.

机の上に乗ったパックご飯,納豆,牛乳,青汁の素の箱

到着翌日に買い物に行って,スーパーに大量の牛乳が並んでいるのを見て北海道を実感したりしていました.

大量の牛乳がスーパーの棚に並んでいる様子(その1)大量の牛乳がスーパーの棚に並んでいる様子(棚の続き)

昼食

お昼は歩いてすぐのところにある地元で有名な「七福弁当」というところによくお弁当を買いに行っていました.

colocal.jp

中身は決まっておらず,予算と好みのおかずを伝えると店員さんがその日のおかずからいい感じにチョイスして作ってくれます.400-500円くらいでお腹いっぱいになれるのでとても嬉しいお店でした.

透明なプラスチックパックが二つあり,左側は白米が詰まっている.右側にはハムカツ,のりメンチ,さつま揚げ,マカロニサラダ,煮物などのおかずが入っている.

たまに旭川ラーメンを食べに行きました.

焦がしラードがのっていてスープが真っ黒なラーメン
ラーメン蜂屋の醤油ラーメン
透明なスープにのり,チャーシュー3枚,煮卵がトッピングされたラーメン
ラーメンすがわらの塩ラーメン

夕食

市内に1800店以上あるという飲食店を大いに満喫するべく,夕食は基本的に外食していました(もちろん一人,黙食,店員さんと会話するときは常にマスクを着用するなど感染対策はしっかり行っていました).

ginneko.co.jp

「ぎんねこ」さんで旭川名物新子焼きを食べたり

テーブルに乗っている焼き鳥串と奥に焼き網 新子焼き

bashotrip.com

孤独のグルメにも出てきた「自由軒」でクリームコロッケを食べたり

ご飯,クリームコロッケ,メンチカツ

robata-yukar.info

ホッケと刺身で地酒を楽しんだり

ホッケ,白身の刺身,ホタルイカの塩辛,日本酒(国士無双)

daikoku-jgs.com

本場のジンギスカンを堪能したり

ジンギスカン鍋に野菜とラム肉が乗っている

www.shichirinya.info

旭川名物ホルモン焼きと道産サフォーク赤身肉の焼肉を食べたり

ホルモンがテーブルにのっている サフォークの赤身

していました!

ちょうど「5・7小路ふらりーと」ではスタンプラリーを開催していて,足繁く通った結果3店舗のスタンプが集まり,なんと道産の新米真空パックセットがもらえてしまいました.商店街の方々ありがとうございました!

新米300gの真空パックが9つ格子状に入っている箱.ゆめぴりかが6つ,ななつぼしが3つ入っている.

店舗の情報はホテルのロビーの大きな地図に紹介されていたほか,OMOレンジャーという地元ガイドの方と街巡りをして教えていただくことができ,たくさんの飲食店から迷わず美味しいお店をチョイスすることができました.

ご近所マップとして壁に取り付けられている巨大な地図に,近隣の飲食店情報が書き込まれている様子

11月の旭川の気候

初めての北海道ということで寒さにはかなりビビっていましたが,11月は大体0度〜10度くらいと,東京の真冬と同じくらいでさほど寒くはありませんでした.東京の2月くらいと違ってわりあい薄着な周りの人を見ていると,次第にこちらも寒くないような気がしてくるから不思議でした.

f:id:Nodaguti:20211111221453j:plain
マフラーをつけたサックス奏者と犬の銅像

滞在中一回だけ最高気温が0度近くまで冷え込み,雪が降ったことがありました.ロードヒーティングのおかげなのか凍りつくこともなく数日で溶けていきましたが,紅葉と雪が同居する幻想的な風景でした.

OMO7 の前で雪が降って道路が白くなっている様子 赤く紅葉した木に雪が降り積もっている様子

散歩・観光

宿から10分くらい歩いたところに,市のシンボルとして親しまれている「旭橋」があります.

旭橋.トラス状のアーチが上部にあり,アーチ中央が丸く膨らんでいる.

ここからいつも石狩川に沿って遊歩道を散歩していました.

川沿いの遊歩道の様子.雨上がりで路面が濡れて空が反射している.

休日には旭山動物園旭川市博物館に行きました.

まだ雪が積もっていなかったので残念ながらペンギンのお散歩は見ることができませんでしたが,展示の方法や掲示物に工夫がされていておもしろかったです.

f:id:Nodaguti:20211111221922j:plain
ペンギンのトンネル
f:id:Nodaguti:20211111222012j:plain
手書きで書かれた説明板
こっちを向いているアザラシのぬいぐるみ
かわいい

博物館では,関東の学校では学ぶことの少ないアイヌの方々について詳細に解説されていて,とても興味深く勉強になりました.

f:id:Nodaguti:20211111222246j:plain
アイヌに関する展示

おわりに

立地の制約もありホテルに篭っていた伊豆大島と違い,旭川ではまさに暮らすように滞在しながら,仕事にグルメに観光にと街を思う存分味わうことができました.

今回は晩秋でしたが,真冬だと厳寒と雪で全く違う雰囲気の滞在となりそうです.スキー旅行を兼ねてぜひまたワーケーションしてみたいと思う体験でした!

Web24 というイベントで Web Performance に関する議論をします

connpass.com

Web のことをただひたすら 24 時間議論する

5/7 18:00 ~ 5/8: 18:00

YouTube Live, 無料, アーカイブなし

登壇者の発言は個人のものであり所属する組織とは関係なし

というイベントです.その中の Performance セッションの情報はこんな感じ:

私 (@nodaguti) はこの Performance セッションのセッションオーナーを Jxck さんから依頼されまして,一緒に議論をしたい!という方を選んで依頼をし,快諾いただけました.

twitter.com twitter.com twitter.com

Web に限らずブラウザエンジンやパフォーマンスのアカデミックな話題にも造詣が深い方・BtoB サービスのパフォーマンスチューニング経験がある方・クライアントだけでなくインフラやエッジを含めて総合的にパフォーマンス改善を進めている方など,バラエティに富んだメンバーが揃いました! 所属や詳しいバックグラウンドは当日も紹介を行わない予定なので,気になる方は Twitter から各自の情報を探ってみてください.

事前打ち合わせは避けるようアナウンスがあり,台本もないため当日どのような話になるのか私も想像がついていません.Core Web Vitals,事業の中でパフォーマンス改善を進める方法,パフォーマンスとはそもそもどのように計測するべきなのかなどいろいろな話題を議論できるのではと期待しています.

アーカイブも残らないことになっていますので,その場の生な議論をお楽しみいただければと思います.当日をお楽しみに!

ほかの登壇者のアナウンス

saneyukis.hatenablog.com

好きなことを仕事にするということ

この記事は SHIROBAKO Advent Calendar 2020 の15日目です.

今年は劇場版が公開されたと思ったのも束の間,その前後から他作品の公開延期や映画館の休館などが相次ぎ,周囲の状況も気にしながらいつ見に行けるのかとハラハラさせられた一年でしたね.今回はその劇場版から,丸川元社長のセリフについて考えてみたいと思います.

みゃーもりが思い悩んで丸川元社長に会いに行ったとき,みゃーもりに次のような言葉を投げかけます.

「好きなだけでは続けていけない。作ることで何をしたいのか考えないと。」

f:id:Nodaguti:20201214211941p:plain (画像は劇場版『SHIROBAKO』本予告より引用)

最初に劇場版を見たとき,最も印象に残ったのがこの言葉でした.

私は Web エンジニアとして働いていますが,もともとプログラミングを始めたのは13歳の時で,楽しさにハマってずるずる続けた結果そのまま仕事になってしまったパターンです.社内の目標設定でその四半期にやることは決定できても,数年後に自分がどうなっていたいのかという中長期な目標は曖昧で明確なものがありません.直近ではパフォーマンスチューニングに興味を持ち,ありがたいことにそれを専任でやるチームを任せてもらっています.楽しくて好きなことを自由にできる環境をいただいているのでとても幸せなことなのですが,そうであるからこそ丸川さんの「作ることで何をしたいのか考えないと」という言葉が深く刺さったのでした.

みゃーもりは TV アニメ24話で,「これからどうしたいのか」という問いに対して「アニメを作ることとアニメを作る人が好きだから,アニメを作り続けたい」という思いを発見しました.劇場版のこの言葉は,それをさらに一歩進めるものといえそうです.劇場版でのみゃーもりは入社6年目でラインプロデューサーを任され,厳しいことや辛いこともはじめの頃の比ではなく襲いかかってきます.そんなときに最後までやり抜く力を発揮するには,「好き」という気持ちだけでは足りず,「成し遂げたいこと」「届けたいこと」というより強く根源的な思いが必要だと諭してくれているのではないでしょうか.

「サービスを速くしてより快適な体験をユーザーに届けたい」「界隈で有名になりたい」「技術力を上げてたくさん稼ぎたい」... 「何をしたいのか」という部分は依然として私の中で定まりきっていないところがあります.常に目標に向かって走り続けるのは疲れてしまいますが,せめて「何をしたいのか」という軸だけでも引き続き探していきたいと思います.

劇場版SHIROBAKO 通常版 [Blu-ray]

劇場版SHIROBAKO 通常版 [Blu-ray]

  • 発売日: 2021/01/08
  • メディア: Blu-ray

伊豆大島へ一週間ワーケーションに行ってきた話

東海汽船が出した,5万円で伊豆大島に7泊8日できるリモートワークプラン

https://www.tokaikisen.co.jp/news/134866/www.tokaikisen.co.jp

(リンク先が消えてしまっているようなのでアーカイブ)を使って10月最終週にワーケーションしてきたので,記録がてらどんな感じだったかを書いてみようと思います!

残念ながら執筆時点でこのプランはもう完売御礼とのことですが,そもそもワーケーションってどうなの?いろいろなところがプラン出してきてるけどどんなことに気をつけて選べばいいの?という疑問にも答えていきます.

伊豆大島とは?

伊豆大島は東京都の伊豆諸島のうち,最も本州の近くにある大きな島です.自分も今回申し込むまで知らなかったのですが,竹芝桟橋からジェット船で2時間足らずと割と気軽にいくことができる島でもあります.

Map provided by OpenStreetMap

椿と明日葉が有名で,大島椿の黄色いパッケージを見たことがある方もいるのではないでしょうか?

www.oshimatsubaki.co.jp

他には,最近ブラタモリでも紹介された三原山という火山がよく知られています.

www.nhk.jp

そこそこ活発に活動している活火山で,直近では1986年に大きな噴火を起こし全島避難したそうです.

プランの詳細

今回宿泊したのはそんな三原山の7合目あたりにある大島温泉ホテルというホテルです.

www.oshima-onsen.co.jp

竹芝桟橋からの往復ジェット船と朝夕の2食つきで5万円,GoTo キャンペーン適用で 32,500 円 + 地域共通クーポン 8000 円だったので実質交通費込み一泊3,500円で泊まることができました!

島への往路

浜松町駅から徒歩8分,独特の形状をしている竹芝桟橋から出発しました.

竹芝桟橋

2階建のジェット船に乗り込みます.

ジェット船の外観

中はこんな感じ.

乗船チケットと船の中の様子

出発前に撮った桟橋周辺の様子です.天気に恵まれました!

船から見た竹芝桟橋周辺の様子

ジェット船は海水を船の下から吹き出すことで船体を浮かせながら航行するため波の影響をほとんど受けず,しかも大島への航路は大半が東京湾内なので全然揺れませんでした.波から波へとジャンプするいわゆる高速船を思い浮かべていたので驚きました.

うとうとしているうちに予定どおり2時間弱で大島に到着です.

船から見た大島

武田港に泊まるジェット船

武田港の様子

ホテルの様子

ホテルは年末まで外装工事を行っており,ぐるりと足場が取り囲んでいる状況でした.

ホテルの外観

本来は三原山が綺麗に見えるであろう食堂にも足場がかかっていたので,この辺りも今回の格安プランを提供するきっかけになったのではないかと思います.

食堂からの眺め

お部屋は純和室です.ここにも足場が設置されています.

お部屋の様子

広縁と外の様子

お食事

このプランのすごいところは二食付きなところです.ワーケーションプランでは大抵安い代わりに食事なしなことが多いからです.例えば星野リゾートに一泊3000円で泊まれる!と話題になった OMO7 旭川 も食事なしです.

しかも,内心「安いプランだから通常の場合よりも簡素な食事になるんだろうな...」と思っていましたがそんなことはなく,他の宿泊客と変わらないクオリティの食事が出ました!

海鮮や明日葉を椿油で揚げて食べる椿フォンジュとサザエご飯

椿フォンジュ

サザエご飯

刺身舟盛り

刺身舟盛り

金目鯛のしゃぶしゃぶ

金目鯛のしゃぶしゃぶ

金目鯛の煮付け

金目鯛の煮付け

朝食も毎朝豪華でした!

朝食

毎日ちょっとづつメニューが変わるので飽きませんでした.

また,仕事するにあたって気になる昼食ですが,フロントでお弁当を予約することができたため山を降りて調達する必要もありませんでした(別料金700円).

お昼のお弁当

工事をしている職人さんにも出しているのでは?と思ってしまう山盛りの弁当だったので,座り仕事のエンジニアにはちょっと多い気もしましたが,朝晩が基本的に海鮮なので肉が入っている弁当はまた新鮮な気持ちで食べられました.

仕事環境

さて,本題の仕事環境ですが,まず気になるのはネットワーク環境です.

出発前に

というツイートを見ていたので心配していました.ただ,このツイートからは単に WiFi の電波が弱いだけとも読めるので,部屋ガチャによってはルーターに近く安定して通信できる可能性もあります.

自分が泊まった部屋は 208 でしたが,

廊下にある WiFi ルーター

の写真からもわかるとおり扉を出てすぐのところに WiFi ルーターがあるというかなり高ポジションをツモることに成功しました.

ではネットワークが安定していたのか?というとそれが微妙なところで,

WiFi アクセスポイント一覧

fast.com の測定結果: 32Mbps

のとおり電波は強めで運がよいと 32 Mbps くらい出るときもありました.

しかし,接続状況はわりと不安定で1時間安定して繋がることもあれば10-15分に一回途切れることもあり,特にルーターから離れる部屋の奥で顕著でした.Zoom での会議もできなくはないのですが頻繁に映像や音声が止まるため,安心してミーティングができるという環境ではありませんでした.

また,和室なのでどうしても座椅子での作業となって腰や首が辛いという問題もあります.テレビの下が収納になっていたので広縁の椅子を持ってきてマシな作業スペースを作ることもできましたが,前述のネットワークの問題で結局ほとんど使わずじまいでした.

テレビ台と広縁の椅子を使った作業スペース

ネットワーク環境さえよければ HDMI ケーブルを持ってきて TV をディスプレイ代わりにできた可能性もあるだけに残念です...

ただ,一人で作業している分には部屋に篭る必要もないですし,大自然に囲まれているという利点を生かして気分転換も気軽にできます.

ロビーに PC を持っていって作業したり...

ロビーでの仕事風景

ロビーでの仕事風景その2

行き詰まったら温泉に浸かって三原山を眺め,

温泉からの三原山の眺め (上記画像は 大島温泉ホテル 公式サイト からの引用)

風呂上がりにアイスを食べたり...

大島牛乳アイス

朝はホテルのすぐ裏から三原山山頂まで続いているトレッキングコースを散歩して,爽やかな気持ちで仕事を始められました.

温泉コースの看板と木漏れ日コースの入り口

「いつか森になる道」から望む三原山

最終日はちょっと早起きして,日本唯一の砂漠「裏砂漠」を散策してから部屋に戻って朝会に出席しました!

裏砂漠の様子

裏砂漠から見る温泉ホテル

2枚目で遠くに見えるのが温泉ホテルです.ちなみにこの裏砂漠はモバイル回線の電波がフルで立っていたので,ここに PC を持ち込んで仕事をすることも不可能ではないと思います(国立公園の特別保護地区に指定されているので派手なことはできませんが).

清掃面では,仕事中に掃除に来られてしまうと困るので基本的に Please Do Not Disturb を扉にかけていましたが,毎日扉の脇に替えのタオル,浴衣,水,アメニティ,そしてお菓子まで補充して置いていただけたので快適に滞在できました.

替えのアメニティ

観光

土曜日の到着だったので翌日の日曜日と,余っていた代休を取った水曜日の計2日間を観光に充てました(同じプランで滞在していたと思しき他の人はミーティングだけ出てもっと観光している人もいたようです;)

自転車を借りて海辺を漕いだり

海辺の道と自転車

地層切断面を見にいったり

地層切断面

名物べっこう寿司を食べにいったり

べっこう寿司

山頂までトレッキングにいったり

ジオ・ロックガーデンの巨岩

三原山の火口

山頂から望む伊豆諸島

三原神社と伊豆半島

しました!

ワーケーション滞在先の選び方

シティホテル,ビジネスホテル,温泉宿などいろいろなところがワーケーション・リモートワークプランを提供し始めており,今後もじわじわとワーケーションは広まっていくのではないかと思います.今回自分は東海汽船のリモートワークプランを Twitter で発見してから即申し込みをしてしまいましたが,この経験を踏まえてどのような観点で滞在先を選べばよいかまとめてみました.

WiFi 環境

東海汽船のアナウンスには 館内Wi-Fi設備も充実しております と書かれていました.わざわざ「リモートワークプラン」と銘打って出すくらいだから高速で安定した回線を用意したのだろう,と鵜呑みにしてしまいましたが,蓋を開けてみるとビデオ会議をするには厳しい環境でした.

  • 全ての部屋,部屋のどの位置からでも安定して接続できるのか
  • 複数人がビデオ会議をしても遅延が起きない高速な回線が用意されているのか

などは仕事をするには重要な観点ですが,公式サイトには明記されていないことがほとんどです.もともとビジネス用途を多く受け入れてきたシティホテルやビジネスホテルはネットワーク品質も安定している可能性が高いですが,この度のコロナ禍をきっかけに新しく始めた温泉宿などを検討する際には,直接ホテルに問い合わせたり口コミを調べるなどして情報収集に努めた方がよいでしょう.

和室か洋室か

エンジニアなど PC に向かってキーボードを叩くことが主な仕事の場合,和室は作業にあまり向いていないと言えます.テーブル・椅子など快適な作業空間が確保できるのか,事前に館内設備や間取りを調べておくことをお勧めします.

都会か田舎か

都会であれば食事の調達に困りませんし,急な出費など何かあった場合でも対応できる可能性が高くなります.一方で田舎は自然豊かでリフレッシュできますが,利便性には劣ります.食事の有無と絡めて目的地を考えるとよいでしょう.

仕事の予定を見極める

今回は重要なミーティングが詰まっているという状況ではなかったため,ネットワークの問題もさほど影響を受けずに仕事を進められました.また,極端な話ですが急に出社の必要が出た場合でも旅先ではなかなか難しくなります.諸問題が発生しても影響を抑えられるよう,あまり多忙な時期は避けた方がよいでしょう(問題が起こらなくても現地に行くと観光したくなりますし).

持っていくと便利なもの

持っていったものと持っていけなかったものがありますが,あると便利と感じた品々です.

  • モバイルルーター,あるいは充分な通信量の余裕があるモバイル回線を契約しているテザリング可能なスマホ
    • 現地で用意されているネットワーク環境に問題があった場合にバックアップとして利用できます
  • HDMI ケーブル
    • 備え付けのテレビをサブディスプレイとして使うことができるようになります
  • 外付けキーボードとトラックパッド (またはマウス)
    • MacBook Pro のディスプレイの位置を調節して作業ができます
  • イヤホン
    • 宿の壁が薄い可能性があるので,イヤホンをしてミーティングに出ると安心です

おわりに

しょっちゅう映像が止まる状況にも協力していただいた同僚には感謝しきれません.本当にありがとうございました!

観光も仕事も中途半端になるのではないかと初めはワーケーションに懐疑的でしたが,結果として今回のワーケーションはとてもいい気分転換になりました.GoTo トラベルが残っているうちに試してみてはいかがでしょうか?

vendor.js の終焉と Granular Chunks

webpack を使った code splitting のベストプラクティスとして,v3 以前の CommonsChunkPlugin の時代から node_modules 以下に置かれている依存ライブラリを vendor.js という単一の chunk にまとめる方法が紹介されていました.

これは webpack の公式ドキュメント Caching | webpackGoogleMake use of long-term caching  |  Web Fundamentals  |  Google Developers でも説明されている通り,「ライブラリのコードはアプリケーションコードに比べると更新頻度が低い」という仮定のもと vendor.js にライブラリコードを切り出すことで,キャッシュ効率をよくすることが主な目的でした.

しかし時は流れ,いつしか「ライブラリのコードは vendor.js に切り出すもの」という習慣だけが根付き,特に理由を考えずに盲目的に実施するものになってしまったように思います(少なくとも私はそうでした.webpack v4 から導入された SplitChunksPlugin の Examples には全てを vendor.js に固めるのはやめた方がよいと書かれているのできちんとドキュメント読みましょうという話ではあるのですが...).SplitChunksPlugin のデフォルト設定が vendor.js を生成するようになっていることもそうした習慣を後押ししたかもしれません.

その間にパッケージの更新を取り巻く状況は大きく変化しました.Greenkeeper,Renovate,Dependabot といった依存パッケージの更新を Pull Request の形で通知してくれるサービスが広まり,場合によっては automerge 機能で半自動的なパッケージ更新まで行えるようになったことで,ここ数年で毎週や毎日などの高い頻度でパッケージを更新する習慣が急速に普及しました.

このような環境では,前述した「ライブラリのコードはアプリケーションコードに比べると更新頻度が低い」という仮定は全く成り立たなくなります.スプリントごとにリリースしている場合にはほぼ確実にリリースごとに vendor.js のキャッシュが無効化されることになりますし,Continuous Deployment で一日に何度もリリースしているプロダクトでもアプリケーションコードと同等以上にライブラリが更新されるでしょう.

vendor.js の利点であったキャッシュ効率のよさがなくなってしまうと,今度はその欠点が目立つようになってしまいます.それは「特定のページでしか使われていないライブラリも vendor.js に固められることで,すべてのページで読み込まれるようになってしまう」という点です.せっかく routes ごとにアプリケーションコードを分割していても,依存ライブラリが同じところに固まっていては片落ちといえるでしょう.

この問題を解決する一つの方法が,Next.js 9.2 で導入された Granular Chunks と呼ばれる設定です.これは GoogleChrome チームによる研究に基づいたより効率的な chunk splitting の方法で,以下のような戦略からなります:

  • 160 KB 以上の依存パッケージは個別の chunk に分ける
  • react, react-dom などのフレームワーク(≠ライブラリ)を一つの chunk にする
  • そのほかの共通モジュールを必要な分だけ切り出す(デフォルトよりもかなり多くの chunk を生成する設定になっている)

実装のより細かい部分や誕生の背景などを含めた詳細については Improved Next.js and Gatsby page load performance with granular chunking を参照いただきたいのですが,これだけでも Granular Chunks が依存ライブラリを過度に特別視することなく可能な限り chunks を分割することで,各 route において必要最小限のコードを読み込むようにしようとしていることがわかるかと思います.

まとめ

  • 依存パッケージを高頻度に更新しているプロジェクトにおいては,vendor.js に依存パッケージを固めるのは却って悪手となる
  • vendor.js のように「一つの chunk に共通モジュールを全てまとめる」という戦略は非効率であり,Granular Chunks はそれに対する一つの解である
    • しかも Google Chrome チームの研究という裏付け付き