ひよこインフラてっく!

ひよこインフラエンジニア「ひよこ大佐」による技術ブログ的なもの。インフラ技術や仮想化、Pythonなど。

リモートワークで集中力を保ちつつ快適に作業するために

こんにちは、ひよこ大佐です。

新型コロナ禍の影響でリモートワークをせざるを得ないという方、リモートワークになって通勤時間がなくなって嬉しいという方、もともとリモートワークだから変わらないという方もいらっしゃると思います。もちろんこの情勢下でもリモートワークできないという人もいらっしゃるでしょう。

リモートワークは、オフィスに行かないことで得られるメリットもたくさんありますが、同様にデメリットもあります。好むと好まざるとにかかわらず、しばらくはリモートワークをしつづけなければならない情勢が続き、ストレスが溜まっている方もいるのではないでしょうか。

私は今の会社に転職してから、普段はリモートワーク、週に1〜2回出社するという生活を2年近く続けています。その中で感じたことをいくつかまとめておきたいと思います。

今リモートワークにストレスを感じている方にぜひ読んでいただき、参考になるものがひとつでもあれば幸いです。

オフィスと家でのパフォーマンスを比較しない

リモートワークについて考える前に、まず最初に書いておきます。

オフィスは働くための場所です。ですが多くの人にとって家は働くための場所ではありません。

当たり前のことですがまずこの前提があり、その中で最大の作業効率を発揮する必要があります。家の環境は人によってさまざまです、狭いワンルーム、マンション、戸建、同居人や子供の有無、ペット、近隣環境など、考慮しなければならない環境的な要因が沢山あります。 自分専用の書斎でこもって作業できる人と、子供が走り回るリビングで仕事をする人では、同じレベルの作業効率になるはずがありません。どちらが望ましいという話ではなく、生活のスタイルやステージによって、家の中でできることには制約があり、その制約のなかで最大の作業効率を発揮できるように意識する必要があります。

私の場合はもともとリモートワークすることが多かったため、自分専用の部屋があり、PC専用のデスクとウルトラワイドモニターがあり、自宅でも集中できる環境を作れています。他の方と比較しても恵まれている環境と言えるでしょう。

f:id:hiyokotaisa:20200524194217j:plain

ですが、家庭がある人、子供がいる人はそういうわけにはいきません。どうしても作業効率はオフィスで働くときよりも下がってしまうはずです。しかしその作業効率を「オフィスにいたなら出せていたはずのパフォーマンス」と比較する必要はありません。なぜならそのパフォーマンスを自分の家で発揮することはそもそも無理なので、「本当はこんなはずじゃないのに」というストレスを溜めるだけになってしまいます。

働くための前提となる環境が違うのですから、発揮できるパフォーマンスも変動して当たり前です。集中して仕事ができないことに対してストレスを溜めすぎるのではなく、自分の置かれている環境のなかで最大限のパフォーマンスが出せるようにできればよいのではないでしょうか。

家族に「家で働いている」ということを理解し協力してもらい、なるべく静かで集中しやすい環境を整えるなど自分の努力と周囲の協力でやれることはありますが、限界もあります。オフィスと家でのパフォーマンスの違いについて悩みすぎず、「どうやったら今の制約の中でパフォーマンスを最大化できるだろう」と考えるほうが生産的です。

集中できる環境づくりのための投資を惜しまない

効率的なリモートワークのためには、集中できる環境づくりが必要です。そのためには多少の投資が必要な場合があります。

たとえばモニター、マウス、キーボードをより使いやすいものに買い替えたり、デスクやチェアをより長時間の作業でも快適なものにしたり、騒音が気になるようであればノイズキャンセリングヘッドホンなども有効でしょう。こういったものを購入するとお金がかかりますが、必要経費と割り切ったほうがいいです(10万円も支給されますし)。会社によってはそういった環境整備に対して経費精算を認めたり支援金を支給している会社もありますから、自分の会社でそういったサポートがうけられるか確認してみるといいと思います。

仕事とプライベートの「オン・オフ」を切り替える

リモートワークでは、仕事とプライベートの時間を分離することが非常に難しくなります。うまくメリハリがつけられないと勤務時間後もだらだらと会社のメールやSlackを見たりしてしまい、気が休まらずに疲弊してしまいます。ITエンジニアの方は「仕事が趣味みたいなもの」という方も多く、私もそのうちの一人です。しかし、いままで「オフィス」と「家」という環境によるオン・オフの切り替えができていたものが、リモートワークで常に自宅にいることで、環境による切り替えができなくなってしまいます。特に私も含めITエンジニアの人は「過集中」に陥りがちです。特に一人暮らしだったりすると延々と作業に没頭できてしまうので、過集中に陥りやすいかもしれません。全く集中できないよりはよいのですが、寝食を忘れ作業に没頭してしまうと、生活リズムや生活そのものが破綻してしまう場合もあります。

仕事とプライベートにメリハリをつけ、過集中を防止するためには、自分の中で「切り替えのためのスイッチ」を持つことが重要です。

私の場合は、「調光機能のあるライト」を使って切り替えるようにしています。仕事中は「昼白色で明るい照明」に切り替えます。色温度の高い昼白色の照明は集中力が高まり、生産性が向上する *1 と言われています。そのため、仕事中はより集中できる昼白色のデスクライトを活用します。

仕事が終わったら、デスクライトを電球色に切り替え、明るさも最低にします。これにより、仕事後にリラックスできる環境を生み出すことができます。同じようにPCに向かっていても、照明によって受ける影響は大きく異なります。これ以外にも、「仕事終わりは温かいお茶を飲む」とか、「仕事が終わったらすぐにゆっくりとお風呂につかる」など、自分のなかでスイッチをオフにできるやり方を確立させることが重要です。

節度ある生活を心がける

リモートワークだと通勤時間がない分、朝遅く起きてもいいし最悪パジャマ姿でも勤務できます。そのためついつい夜ふかししたりしてしまいがちです。また、運動不足にもなりがちなので、寝付きが悪くなったりします。

睡眠時間の不足は直接翌日のパフォーマンスに響きます。作業に対するモチベーションが下がったり、ネガティブ思考に陥りやすく将来のキャリアや生活に対する不安が増大してしまうような場合もあります。 特にコロナの影響でネガティブなニュースばかりが報道され、自粛ムードで外に出かけることも憚られる現状では、特に不安を抱えやすい状況にあります。そこに睡眠不足が続くと不眠症になってしまったり、最悪のケースでは鬱状態になってしまう可能性もあります。 睡眠時間は絶対に6時間以上確保しましょう。

運動不足が気になるという方は、近所の散歩や家の中でできる運動を定期的にやるのがいいと思います。私はロードバイクをインドアトレーナー(ローラー台)を使って家の中でトレーニングしています。Zwiftなどのアプリを使うと、世界中の人々と一緒に仮想世界をサイクリングすることができるので、室内の運動に最適です。

そういった環境がない方でも、簡単なラジオ体操程度の運動でも続けることで効果があると思います。今はYoutube等にも簡単にできる体操が紹介されていますし、一時期流行した「リングフィットアドベンチャー」などをはじめてみるのもよいかもしれません。適度な運動は、健康な心身を維持するためには必要なものです。めんどくさく感じる日もあると思いますが、無理をしない範囲で体を動かすことを習慣化しましょう。

長々と書きましたが、人によって最適な働き方や環境はさまざまです。ここで挙げた例は私にとって重要と思う事柄で、これ以外にもいろいろなやり方があると思います。「こんなやり方やルーティーンがあるぞ!」という方は、ぜひTwitterで私に教えてください。

無限の知的好奇心と未知

技術書を読んでいると、たまに「こんなことも知らなかったのか」と思うときがある。周りのITエンジニアとの会話で知らない話題が出てきて恥ずかしく思うときがある。そういう場面に遭遇した時に、「もっとしっかり勉強しないと」と焦る。

それでも、知識不足を恥じて、知的好奇心が尽きない間はまだ大丈夫だ。人間にとって時間は有限で、人間らしい生活を維持しながら学習に充てることができる時間はごくわずかしかない。IT関連の知識だけに絞ったとしてもその分量は膨大で、そのすべてを識ることはそもそも不可能だ。だから焦りすぎる必要はない。周りがどんなに優秀で、自分がこの世で一番無能な人間だと感じたとしても、それはある一点においての話でしかなく、識るべきことが爆発的に膨張しつづける現代においては自分も周囲も等しく「無知」なのだから、自分が無知だと自覚し続けられる限りはまだ大丈夫だと信じている。

幸か不幸か、まだまだ学ばなければならないことも、知りたいこともたくさんある。時間が限られたリソースだとしても、知的好奇心は無限に湧き出て、知的好奇心を燃料にして探り続ける未知の世界も無限にある。それを発掘しつづけられる限りは毎日の学習は苦にならないし、日々の仕事も楽しくやっていける確信がある。

学習は、自転車操業に似ている気がする。学び続けるためには知的好奇心が必要だが、知的好奇心を維持し続けるには学び続けるしかない。知的好奇心は無限だが、発掘しなければ枯渇してしまう。学び続けるためには、学び続けなければならない。そのためには学び続けられる環境を維持するのは自分自身の責務だし、そうやって学び続けて10年、20年経った時にふと振り返り、自分が積み上げてきたものを確認して、前を見るとさらなる未知が永遠に地平線の彼方まで続いていて、その景色に驚嘆する。

そういう人生を歩みたいなぁと、ふと水曜日の朝5時に思い立った。

ひよこ大佐的 リモートワークに役立つデバイス5選

どうも、ひよこ大佐です。

COVID-19(新型コロナウイルス)の影響で、リモートワークを余儀なくされているというITエンジニアの方も多いのではないでしょうか。満員電車に揺られて通勤するのもしんどいですが、全く家から出ないのもそれはそれでフラストレーションが溜まりますよね。

私自身はもともとリモートワークが中心で、同僚や上司とのコミュニケーションもSlackやIRC、ビデオ会議が多いので、自宅ではリモートワークを前提とした環境を整備していました。そこで「在宅勤務をもっと快適にしたい」という方に向けて、私が実際に使用して非常に良かったと感じているデバイスなどをご紹介できればと思います。

「いいディスプレイ、カメラ、マイクを買いましょう」「高速なインターネット回線とPC、いい椅子を使いましょう」というのはリモートワークにおいて当たり前のことですのでここでは言及しません。この記事の趣旨は、「なくてもなんとかなるけど、あるとよりリモートワークが快適になる」という観点でオススメの小物類を紹介することにありますので、ご了承ください。

1) Razer Mouse Bungee V2

f:id:hiyokotaisa:20200429204249j:plain

私は電池交換や接続が不安定になりがちな無線マウスがそこまで好きではなく、自宅のデスクトップではもっぱら有線のゲーミングマウスを利用しています。 マウスバンジーはもともとFPSRTSなどのマウス操作が重要なゲームをもっと快適にプレイするためのデバイスで、私も当初はその目的で購入したものですが、日常作業でも非常に役立ちます。

マウスバンジーは、有線マウスのケーブルを吊り上げることでケーブルのよれやクセによる操作の引っかかりなどを軽減することができます。これだけの説明だとたいしたことはなさそうに見えますが、勤務時間中常に使い続けるマウス操作は、ちょっとした違和感がストレスとして蓄積し、作業効率やモチベーションに影響します。マウスバンジーを活用することでその「ちょっとしたストレス」が取り払えるので、値段以上の効果があると実感できました。ゲーマーではない方にもオススメです。

2) Anker PowerWave 7.5 Stand

f:id:hiyokotaisa:20200429204544j:plain

私のお気に入りのスマホアクセサリーブランド「Anker」のQi対応のスマートフォンなどのデバイスを充電できるワイヤレス充電スタンドです。

ワイヤレス充電の利点はケーブルを刺す必要がないというところに尽きますが、「デスク上にスマートフォンの定位置ができる」点が個人的に非常に気に入っています。定位置があることでデスク上が散らかることを抑制できますし、スタンドになっているのでスマホに通知が来てもすぐに気がつくことができます。充電速度は有線充電と比較すると遅いですが、在宅勤務ではスマホの充電が遅くて困ることはないので必要十分です。

これは余談ですが、私はAnkerのデバイスが割と好きなので、充電ケーブルやモバイルバッテリー、BluetoothスピーカーなどもAnkerブランドの製品を愛用しています。そのうちロボット掃除機も買うかもしれません。

3) TaoTronics LEDデスクライト

f:id:hiyokotaisa:20200429204355j:plain

作業する上で「明かり」は非常に重要なファクターです。例えばリラックスしたり考え事をしたいときは暖色で暗めの照明を、技術書を読んだり作業に集中したいときは寒色で明るい照明がよいとされています。

このLEDデスクライトは、暖色〜寒色、明るさもタッチ操作で操作でき、デザインもスマートでオシャレです。明るさも必要十分ですし、チラついたり文字が読みにくいといったこともありません。私の書斎は間接照明(ディスプレイ裏)を使っているので比較的暗いため、リラックスするのにはよいのですが読書をするには暗かったので不満でした。このデスクライトで明るさを調整できるようになったので非常に満足しています。

4) 6amLifestyle ヘッドホンハンガー

f:id:hiyokotaisa:20200429204423j:plain

ヘッドホンやイヤホンなどをかけておけるハンガーです。机の天板裏に両面テープで貼り付けることができます。

在宅勤務ではミーティングなどでヘッドホンを使う機会が増えるので、その置き場所に悩む方は多いと思います。このハンガーがあると机の下に目立たずに収納できるのでおすすめです。

5) マッキンリー USBポート&電源タップ付 机上ラック

f:id:hiyokotaisa:20200429204449j:plain

ディスプレイなどを上に置くことができる机上ラックです。この製品が優れている点はいくつかあるのですが、大きなポイントとして、「USBハブと電源タップとしても機能する」ところが非常に気に入っています。ガラス製ですので見た目もオシャレです。

私はこの上に34インチの曲面ウルトラワイドモニターを置いて、下にNUC(Hades Canyon)を設置しています。デスク上のスペースを有効活用できるだけでなく、ディスプレイを見る際の目線も高くなるので、作業中の体への負担も軽減できます。

現在この製品は品切れのようですが、似たような机上ラックはいくつかありますのでよさげなものを探してみると良いかもしれません。

皆様の快適なリモートワークライフの一助になれば幸いです。もし「こんなデバイスもオススメだよ!」というのがあれば、ぜひTwitterでこっそり教えてください。

Fedora 31でVagrantが使えなくなったときの対処と、Vagrant 2.2.6をVirtualBox 6.1に対応させる方法

どうもひよこ大佐です。

タイトルの通り、Fedora 31でカーネルのアップデートに伴ってVagrantが使えなくなってしまったので、その際の対処法をご紹介したいと思います。

発生した事象

メインのPC(Intel Hades Canyon NUC)でFedora 31を利用しています。この環境ではAnsible Towerの検証用にVagrantVirtualboxを利用しているのですが、いつも通り dnf updateカーネルの更新を含む更新パッケージを適用し再起動したところ、vagrant upしようとすると以下のエラーが発生するようになりました。

カーネルバージョン:

$ uname -r
5.4.7-200.fc31.x86_64

発生したエラー:

VirtualBox is complaining that the kernel module is not loaded. Please
run `VBoxManage --version` or open the VirtualBox GUI to see the error
message which should contain instructions on how to fix this error.

エラーの指定通り VBoxManage --version を実行すると、以下のWarningが出力されます。

$ VBoxManage --version
WARNING: The vboxdrv kernel module is not loaded. Either there is no module
         available for the current kernel (5.4.7-200.fc31.x86_64) or it failed to
         load. Please recompile the kernel module and install it by

           sudo /sbin/vboxconfig

         You will not be able to start VMs until this problem is fixed.
6.0.14r133895

上記指示通りに sudo /sbin/vboxconfig を実行するのですが、以下の通りエラーになります。

$ sudo /sbin/vboxconfig

vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: Look at /var/log/vbox-setup.log to find out what went wrong.

There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.  If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
them. Please see your Linux system's documentation for more information.

原因

Virtualbox 6.0はLinux Kernel 5.4.xに対応していないため、エラーが発生します。 以下のChangelogにも、Virtualbox 6.1からサポートしている旨が明記されています。

https://www.virtualbox.org/wiki/Changelog-6.1

Linux host and guest: Support Linux 5.4

Virtualbox 6.1への更新のため、公式サイトからrpmをダウンロードしインストールしました。

Linux_Downloads – Oracle VM VirtualBox

Vagrantでエラー発生

インストールしたところVirtualboxは正常に動作するようになりましたが、今度はVagrantでエラーが発生するようになってしまいました。

Vagrantのバージョン:

$ vagrant --version
Vagrant 2.2.6

発生したエラー

Vagrant has detected that you have a version of VirtualBox installed
that is not supported by this version of Vagrant. Please install one of
the supported versions listed below to use Vagrant:

4.0, 4.1, 4.2, 4.3, 5.0, 5.1, 5.2, 6.0

どうやら、現在(2020/1/10時点)リリースされている最新版のVagrant 2.2.6では、Virtualbox 6.1に対応していないようです。

ワークアラウンド

以下のGitHubのIssueに記載されているワークアラウンドにしたがって対処します。 Vagrant 2.2.6 doesn't work with VirtualBox 6.1.0 · Issue #178 · oracle/vagrant-boxes · GitHub

1. plugin.rb の編集

/usr/share/vagrant/gems/gems/vagrant-2.2.6/plugins/providers/virtualbox/ 内の plugin.rb 内の module Driver (52行目) のブロックの末尾に、autoload :Version_6_1, File.expand_path("../driver/version_6_1", __FILE__) の行を追記します。

   module Driver
      autoload :Meta, File.expand_path("../driver/meta", __FILE__)
      autoload :Version_4_0, File.expand_path("../driver/version_4_0", __FILE__)
      autoload :Version_4_1, File.expand_path("../driver/version_4_1", __FILE__)
      autoload :Version_4_2, File.expand_path("../driver/version_4_2", __FILE__)
      autoload :Version_4_3, File.expand_path("../driver/version_4_3", __FILE__)
      autoload :Version_5_0, File.expand_path("../driver/version_5_0", __FILE__)
      autoload :Version_5_1, File.expand_path("../driver/version_5_1", __FILE__)
      autoload :Version_5_2, File.expand_path("../driver/version_5_2", __FILE__)
      autoload :Version_6_0, File.expand_path("../driver/version_6_0", __FILE__)
      autoload :Version_6_1, File.expand_path("../driver/version_6_1", __FILE__)
    end

2. meta.rb の編集

編集が完了したら、 /usr/share/vagrant/gems/gems/vagrant-2.2.6/plugins/providers/virtualbox/driver/に移動し、 meta.rb 内の driver_map (58行目) のブロックに "6.1" => Version_6_1, の行を追記します。

driver_map   = {
  "4.0" => Version_4_0,
  "4.1" => Version_4_1,
  "4.2" => Version_4_2,
  "4.3" => Version_4_3,
  "5.0" => Version_5_0,
  "5.1" => Version_5_1,
  "5.2" => Version_5_2,
  "6.0" => Version_6_0,
  "6.1" => Version_6_1,
}

3. version_6_1.rb の作成

最後に、2の手順と同じディレクトリ( /usr/share/vagrant/gems/gems/vagrant-2.2.6/plugins/providers/virtualbox/driver/ )で以下のコマンドを実行し、 version_6_1.rb を作成します。

$ sudo wget https://raw.githubusercontent.com/briancain/vagrant/fb4e6985e142da56bad143d70600cd3695c91757/plugins/providers/virtualbox/driver/version_6_1.rb

実行後、念の為パーミッションやオーナーが他のファイルと同じになっているか確認してください。

$ ls -la
合計 172
drwxr-xr-x. 2 root root  4096  1月 10 13:38 .
drwxr-xr-x. 7 root root  4096  1月 10 13:32 ..
-rw-r--r--. 1 root root 15850 11月  8 07:41 base.rb
-rw-r--r--. 1 root root  6188  1月 10 13:34 meta.rb
-rw-r--r--. 1 root root 18521 11月  8 07:41 version_4_0.rb
-rw-r--r--. 1 root root 22909 11月  8 07:41 version_4_1.rb
-rw-r--r--. 1 root root 23969 11月  8 07:41 version_4_2.rb
-rw-r--r--. 1 root root 25784 11月  8 07:41 version_4_3.rb
-rw-r--r--. 1 root root 28392 11月  8 07:41 version_5_0.rb
-rw-r--r--. 1 root root   357 11月  8 07:41 version_5_1.rb
-rw-r--r--. 1 root root   357 11月  8 07:41 version_5_2.rb
-rw-r--r--. 1 root root  3811 11月  8 07:41 version_6_0.rb
-rw-r--r--. 1 root root   357  1月 10 13:38 version_6_1.rb

これで、エラーが解消されました。同じ事象に悩んでいる方は参考にしていただければ幸いです。

OSSU(Open Source Society University)でコンピューターサイエンスを学ぶ

新年明けましておめでとうございます。ひよこ大佐です。

コンピューターサイエンスを基礎からしっかりと学び直したいと思っているITエンジニアの方は多いのではないでしょうか。

私自身、文系大学からそのまま新卒でIT業界に飛び込んだため、基本的な知識は業務上身につけていますが、体系的にコンピューターサイエンスを学ぶ機会がありませんでした。

私現在ではオンラインで卒業できる大学院や、edXUdacityなどの大規模オンライン講座(MOOC)により、ハーバードやMITなどの一流大学の良質な講義を無償で受けることもできるようになりました。また、JAISTAIITなどでは社会人でも入学しやすい社会人コースを設けており、働きながらでもコンピューターサイエンスを学ぶことが容易になってきました。

つまり、もはや文系のITエンジニアだったとしても、やる気と時間さえあればいつでもコンピュータサイエンスを学ぶことができる素晴らしい環境にいるわけです。

前述したとおり現在ではさまざまな「学び方」がありますが、「どこから手を付けたらいいのかわからない」「コースが多すぎて混乱する」という方もいるかと思います。今回は「OSSU(Open Source Society University)」というプロジェクトについてご紹介します。

OSSUとは?

OSSUとは、オンライン上の教材を利用してコンピューターサイエンスを自己学習するためのプロジェクトです。edXやcorsera、Youtubeなどのオンラインの教材を組み合わせ、体系的にコンピューターサイエンスを学ぶことができるようになっています。

(GitHubページのSummaryから引用)

The OSSU curriculum is a complete education in computer science using online materials. It's not merely for career training or professional development. It's for those who want a proper, well-rounded grounding in concepts fundamental to all computing disciplines, and for those who have the discipline, will, and (most importantly!) good habits to obtain this education largely on their own, but with support from a worldwide community of fellow learners.

Webページ: ossu.firebaseapp.com

GitHub: github.com

どうやって学習するのか

OSSUのGitHubにある「Curriculum」に沿って学習を進めていきます。初学者であれば、「Core CS」からスタートするのがよいでしょう。基本的なCSの知識をすでにある程度持っている方は、「Advanced CS」から始めることもできます。

始めるコースを決めたら、あとはカリキュラムに書かれている「Duration」や「Effort」の時間を目安に、学習を進めていきます。

例えば、Core CSの「How to Code - Simple Data」であれば、edX上で提供されているコースなので、edXでEnrollし学習を進めます。コースでの学習が完了したら、カリキュラムで指定されている次のコースに進みます。

詳細なコースの一覧については、GitHubのページを参照してください。 computer-science/README.md at dev · ossu/computer-science · GitHub

学習すると何が得られるのか

edXや各種サービスに散らばっているコンピューターサイエンスの教材を基礎から進めていくことができるため、無料で体系的にコンピューターサイエンスを学ぶことができます。もし「コンピューターサイエンスをどう学んだらよいかわからない」という方で、英語に抵抗がないのであればぜひ活用してみてください。

OSSUが向いている人

  • 独学が苦にならない人
  • できるだけお金を使わずに学びたい
  • 学位が欲しいのではなく、コンピューターサイエンスを学び直せればよい
  • 英語の教材でも苦痛ではない

OSSUが向いていない人

  • 学位が欲しい
  • 一緒に学ぶ仲間がほしい
  • 日本語でコンピューターサイエンスを学びたい

学習の方法にはそれぞれ向き、不向きがありますので、自分にとってどのような方法が良いのか、考えながら学習スタイルを決めると良いと思います。

私もこれから地道にOSSUの学習を進めていきつつ、学習レポートなども定期的にアップできればと思います。

ひよこ大佐とロードバイク: (1) ロードバイク納車

2020年、明けましておめでとうございます。今年も宜しくお願いいたします。

私のTwitterをフォローしている方はご存知だと思いますが、ロードバイクにハマり、遅いながらも週末にロングライドに出掛けたり、Zwiftでバーチャルライドを楽しんだりしています。2020年はじめての投稿は、そのロードバイクを購入した経緯と、「ひよこ大佐、新宿で立ち往生」事件についてお話したいと思います。

購入までの経緯

転職をきっかけにロードバイクを購入することになるのですが、ロードバイクが欲しいと思ったのはこれがはじめてではありません。

もともと中高生のころにルイガノのTR1という安いクロスバイクに乗っていたので、スポーツバイク自体は経験がありました。しかし、ロードバイクは「細いタイヤで怖い」「スポーツ志向の人が乗るもの」というイメージがあり、価格の高さもあってずっと手を出せませんでした。

しかし転職を機に、いままでずっと気になっていたけれども手を出せなかったロードバイクを買いたい!という気持ちが強くなりました。自分自身はとんでもなく運動音痴で、走れば常にビリ、体育の授業は本当に嫌いで、高校の部活で1年くらいテニスをしていた程度で、社会人になってからはことさら運動とはほとんど無縁でしたが、自転車で走ること自体は好きだったので、いつかその自転車の最先端であるロードバイクには乗ってみたいとずっと思っていました。

最初は予算の兼ね合いもあり、GIANTやルイガノなどの比較的低価格なモデルを検討していましたが、TREKのサイトを見たときにEmonda ALR5のマット塗装の美しさに一目惚れしてしまい、その日のうちに六本木のTREKショップで思い切って購入しました。確か18万ぐらいしたと思います。

f:id:hiyokotaisa:20200102003618j:plain

TREK EMONDA ALR5

ただ、ロードバイクを買えばそれで終わりではありません。「他にも揃えないといけませんよ」と店員さんに言われ、サイクルコンピューターとサドルバッグとライトはBontragerのものを購入しました。

ペダルとヘルメット、ポンプや工具類はTREKで買うと高かったので、Amazonで揃えました。PWTの工具は安くてそこそこ使えるのでオススメです。

まだ転職したばかりだったのでロードバイクとその他もろもろを合わせて20万の出費は痛かったですが、初めて納車された瞬間は「ああ、このカッコいいロードバイクが自分のものになるんだ」と感動したのを覚えています。

納車初日、そしてはじめてのパンク

2018年4月、TREK六本木で無事にエモンダを受け取りました。乗り出すと、クロスバイクと比較にならないほどスイスイ進むロードバイクに感動しながら、40km近く離れた埼玉の自宅を目指し走り始めました。慣れない道で迷ったりしながらも、新宿に着くまでは比較的順調な道のりでした。

事件は新宿で起きました。大通りを右折したところで「あれ?進まないな」と思い、タイヤを見てみると後輪がペシャンコになっていました。どうやら路肩のガラス片か何かを踏んでしまったようで、完全にパンクしてしまっていました。

幸いパンク修理キットは持っていたので、とりあえず自力で交換をしようとスマホで手順を調べながらおそるおそる作業をはじてました。

しかしはじめてのパンク修理、うまくタイヤを外してチューブを入れ替えることができません。30分ほど格闘しますが、外れる気配もなく、全くどうにもなりません。

「もうこれはプロに頼むしかない」とGoogle自転車店を探すと、まだ閉店していないスポーツサイクルショップの大手Y店がヒットしました。「これでなんとかなるかもしれない」と店の前まで押して歩き、店のドアを開けると店員さんに怪訝な顔をされてしまいました。めげずにパンク修理をお願いできるか聞いてみたところ、「いやーあと30分で閉店するので無理ですね」とあっさり断られてしまいました。結局店を追い出されてしまい、状況はまた振り出しに戻ってしまいます。

頼みの綱のY店に断られ、今から六本木に戻ることもできず、夜9時過ぎに新宿のど真ん中で、走れないロードバイクを抱えたまま僕は途方にくれてしまいました。家まではまだ30km以上あります。その時は鍵もないので、駐輪場に置いて電車で帰ることもできません。もちろん輪行袋なんか持ってないので、電車やタクシーに載せて帰ることもできません。 

それでも何とか家にたどり着かなければ、明日の仕事にも行けなくなってしまいます。そのためには、どうにかしてパンクを直す必要がありました。

まだ空いている自転車店はないかと必死にGoogleマップを調べたら、たった1軒だけ、小さな自転車店が営業中になっていました。

「これでだめなら自宅まで30km歩くしかない」と祈るような気持ちで電話を掛けたら、店主の方に「もうそろそろ閉店するけど、修理するからとりあえず持っておいで」と言われ、思わず泣きながら「すぐいきます!」と叫びました。

1kmほど離れた店まで自転車を担いで走り、すぐにパンクを直していただけました。夜遅くに嫌な顔せずに修理してくれたうえ、温かい声をかけていただいた「プロジェクト・エス」の店主の方には本当に今でも感謝しています。

プロジェクト・エス

結局18時過ぎには六本木のショップを出発したのに、家についたのは23時過ぎでした。何度も坂で脚が攣り、お尻が痛くなり、ヘトヘトになりながらなんとか帰宅し、「絶対にパンク修理を練習しよう」と心に誓いました。

こうして無事(?)ロードバイクを入手する流れとなりました。

(2)につづきます。

【小ネタ】GitHubのIssueのステータスをAnsibleから確認する

この記事は、「Ansible 3 Advent Calendar 2019」14日目の記事です。(遅刻してすみません) qiita.com

どうも、ひよこ大佐です。

今回も役に立ちそうで役に立たない、でもちょっとだけ役に立つAnsibleの小ネタをご紹介します。

Ansibleから、「どうしてもGitHubのIssueを確認して、ステータスに応じてなにかしたい!」ということ、ありますよね? 多分あると思うんです。 ないよという方は考えてみてください。ほら、ありますよね? あるんですよ!

なので、今日はそんなときにとても役に立つモジュールをご紹介します。

github_issue

github_issue」モジュールは、特定のGitHubのIssueの状況を確認できます。以下のように指定することで、registerに指定した変数にGitHubのIssueの情報を格納することができます。

---
- hosts: localhost
  tasks:
    - name: Get GitHub Issue via Ansible Playbook
      github_issue:
        organization: ansible
        repo: awx
        issue: 2139
        action: get_status
      register: result

    - name: Show result
      debug:
        msg: "{{ result }}"

パラメーターに、参照するリポジトリやIssueの番号を指定します。今回は私が作成してまだOpen状態になっている以下のIssueを参照してみます。

github.com

「action」パラメーターは、「get_status」以外にもいろいろ指定できそうな雰囲気を醸していますが、現時点では「get_status」しか指定できません。そのうち新しい機能が追加される可能性もあるので、楽しみに待ちましょう。

実行する

では、実際に実行した結果を確認してみましょう。

$ ansible-playbook -i hosts test.yml 

PLAY [localhost] ***************************************************************

TASK [Gathering Facts] *********************************************************
ok: [localhost]

TASK [Get GitHub Issue via Ansible Playbook] ***********************************
changed: [localhost]

TASK [Show result] *************************************************************
ok: [localhost] => {
    "msg": {
        "changed": true,
        "failed": false,
        "issue_status": "open"
    }
}

PLAY RECAP *********************************************************************
localhost                  : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

「issue_status」が「open」となっているので、現在このIssueがOpenであることがわかります。このステータスをもとに、後続のタスクの条件分岐させたい場合などに活用できます。 現時点では、そのIssueがOpenかClosedのどちらかであることしかわからないので、今後の機能拡張次第ではより有用なモジュールになると思われますので、今後に期待しましょう。