会社を休んで趣味のコードを書いたり Dnsmasq を設定して YouTube を遮断したり Qiita に記事を書いたりしていた

今日は仕事を休んだ。この日記サイトにテンプレートを追加する実装をしていて、その実装が中途半端になっていた。具体的には untracked な状態で自分の MacBook に保存されていた変更があったので、どうしてもキリの良いところまで進めて git add したかったのだ。

というのも、実は昨日の日記で書き忘れていたのだが、昨日、同期と夜ごはんを食べているときに、もくもく会をやろうという話になった。趣味で開発がしたいけど、家に帰るとついつい YouTube などのコンテンツを観てしまうんだよね、という話をしたら、じゃあもくもく会やってみるのありだよねという話になったのだ。

自分は趣味の開発などに関しては一人でガッツリ集中したいタイプなので、最初はあまり乗り気ではなかった。しかし、そんなことを言っているといつまで経っても趣味でコードを書く時間なんか取れない。ならば、せっかくの機会だし、お試しでもくもく会に参加してみるのもありなんじゃないかと考えその話に乗ったのだ。

ただし、もくもく会は雑談をしてしまうイメージがあったので、会話をせずただもくもくとコードを書くという制約を設けることにした。というか本来はそういう意味で「もくもく会」なんだろう。

そんなわけで、今日から夜の時間帯を使って 1 時間半ほどもくもく会をやることになったわけなのだが、そのためにはまず中途半端になっている untracked な差分をキリの良いところまで進めて GitHub にプッシュする必要がある。ところが、昨日帰ってきたのが遅かったためにその時間を取ることができなかった。

なので、今日の朝、なんとか GitHub にあげようと思ったのだが、当然キリの良いところまで進めることはできなかった。この時点で、今日は一日休んでがっつり開発をしたい気分になり、休むことを伝えた。

そして、そこから昼過ぎくらいまではずっとこの日記サイトの開発を進めていた。

この日記の本文に子要素として紐づくテンプレートの内容を、本文の投稿と一緒に DB に保存するという処理を前回実装していて、それがどうしてもうまくいかなかった。そして、今回も全然うまくいかなくてかなり歯がゆい思いをしながら悩んでいたのだが、いろいろコードを修正しているうちに、なぜかうまくいくようになった。

create メソッド内の @article.templated_articles.build を削除しただけのような気がするが、なぜかうまくいった。Rails の内部がどうなっているのかが全くわからないのでこういう基本的なところでハマってしまうのだろうなと思った。もう少し基礎的な部分から Rails を学び直したほうが良いのかもしれない。

それはともかく、今までどうがんばってもうまくいかなかった部分がようやくできてかなりすっきりした気分になった。

このへんの記事を参考にしていた。

Money Forward のエンジニアブログでは、accepts_nested_attributes_for は使わないほうが良いと書かれていたが、使わない方法もうまくいかず、結局使うほうがうまくいったのでそれに落ち着いた。本当はうまくいかない理由が理解できていないのは良くないことだと思うが、今はとにかく実装を進めたい。

そのあと 3 時ごろから昼ごはんを食べた。

昼ごはんを食べている最中に、今日なぜここまで集中できているのかについて考えた。もちろん会社を休んでいるから働く分のエネルギーが余っているというのもあるだろうが、やはり YouTube を観ないことが大きく関わっているということに気づいた。

昼ごはんを食べようとするときも、いつものように YouTube を開こうとしていた。でも休日の感覚で言うとこのあとはずっと YouTube を観続けて一日が終わってしまうということがもうはっきりとわかっていた。せっかく会社を休んで丸一日有意義な時間を使おうというのだから観ないようにしたのだ。

それに気づいたとき、やはり YouTube は遮断するべきだと判断した。そこで、一旦日記サイトの開発自体は中止して、youtube.com を遮断する作業に入った。

具体的には、OpenVPN に Dnsmasq をインストールして、Dnsmasq で youtube.com127.0.0.1 に向けるようにする。そしてその Dnsmasq を使って名前解決するようにしたのだ。こうすることによって youtube.com だけ名前解決ができない1ようになるのだ。

前に大学時代にこれをやったことがあって2、そのときの知見を Qiita にまとめていた気がしたのだが、気のせいだった。なのでいろいろ調べながら設定していた。

ちなみに、ずっと前からなぜか VPN サーバ(さくら VPS)に SSH できなくなってしまっているので、Web のコンソールで作業していた。正直めんどくさかったが、逆に Web のコンソールに行かないと設定がいじれないのは、むしろ簡単にもとに戻せないという意味では良いのかもしれない。怪我の功名だ。

このあたりを参考にした。

設定としてはそれほど難しくはなかった3が、53 番ポートを開放するのを忘れていて、どのサイトにもアクセスできなくなったところで躓いていた。

ちょうどそのころ、昼ごはんを食べて眠くなっていたこともあって、50 分ほど仮眠を摂った。仮眠に入る直前にポートを開放すれば良いのではないかと気づいていたので、昼寝から目が覚めたあとそれを試したらすぐに解決できた。

これで youtube.com にアクセスできないようになった。横道に逸れてしまったが、これで今後、趣味の開発をする時間が少しでも多く取れることを考えれば、この環境設定に費やした時間は良い投資だったと考える。

そして、このあと日記サイトの開発に戻ろうと思ったのだが、この知見を Qiita にまとめたくなったのでまとめた。

そして、20 時半くらいになった。YouTube のブロックでだいぶ時間を使ってしまったが、YouTube を観すぎて時間を使ってしまうときとは違った。これはこれで自分にとっての成長のための時間だという認識があったので、有意義な時間を過ごすことができた。

そのあとは、今日はひたすら作業をしていて全く運動をしていないことに気づいたので、速歩きで 30 分ほどウォーキングをしたあと、途中で夜ごはんを買って帰ってきた。

ウォーキングは実に爽快だった。今日一日がとても有意義に過ごせたおかげで、かなり速歩きで元気よく歩くことができて、良い汗をかくことができた。

帰宅してからは軽く筋トレをしてお風呂に入ってプロテインを飲んで夜ごはんを食べて、今日記を書いているのは 23 時過ぎだ。

このあと趣味の開発に戻りたい気もする。というのも、まだ untracked な状態のままなのだ。それを GitHub にプッシュしないことには明日ももくもく会には参加できない気がするのだが、実はそれともう一つ、スマホのアプリの整理もしたいのだ。

昨日、ヘルスケアやフィットネスの投稿を Twitter から Mastodon にしようとして大量の Mastodon アプリを入れたりしたので、アプリがごちゃごちゃになっている。しかもまだ Mastodon に移行しようか決めかねているせいで、ショートカットも中途半端な状態で放置してしまっている。

これもすっきりさせたいので、まだまだやりたいことが山積みなのだ。

というわけで、正直明日も休もうかと思っている。でも、今の気持ちは、会社を休んででも本当に自分のやりたいことを徹底的にやりたい気分なのだ。だから、気が咎めたりはしていない。むしろこのやる気の波に乗っているときにこそ大事なことに集中すべきだと考えている。

明日も引き続き自分のやりたいことをやる一日にしよう。これが片付いたら、頭をすっきりさせた気分で仕事に臨もう。

今日一日はとても楽しかった。

昨晩は全然寝られなかった

ところで、今日は最高の一日を過ごすことができたのだが、昨晩は全く寝ることができなかった。寝たのは 4 時くらいになってしまった。

原因としては昨日の夜、帰るのが遅くなったせいで日記を書くのが遅れたのが原因だと思っている。

やはりあまり夜遅くまで外で長居をしてしまうのは良くないなと感じた。1 時間程度でも、十分な楽しい会話はできるはずなのだ。一回の食事で 2 時間も 3 時間も会話に時間を取るのではなく、それを定期的にやることで、友好関係を深めたりリラックスしたりするほうが健全だと思った。

今日の大発見

「ショートカット」の「共有」を使えば Twitter や Mastodon アプリを開かずに投稿することができる、いわゆる送信専用の仕組みを作ることができることを先日発見したのだが、自分はどうもそのあと、投稿されたかどうかが気になってアプリを開きたくなる衝動に駆られる。

でも、そこでアプリを開いてしまうと、嫌でもホームタイムラインが見えたりしてしまうし、通知が来ていたらそれが目に入ってしまう。それをなんとかできないものかなあと思っていたのだが、よく考えたら、アプリではなくウェブページの URL をそのままブラウザで開いて見るようにすれば良いということに気づいた。

だから、つぶやきを投稿したあとは、Twitter や Mastodon のウェブページを開くように「ショートカット」を組めば良さそうだ。

社内 Slack の times から Twitter と Mastodon のインテグレーションを削除した

Twitter や Mastodon でつぶやいたらその内容が社内 Slack の自分の times にも流れるようになっていた。でも、Qiita を投稿したときに自動で投稿した Twitter の発言が Slack に流れてしなうのは、今日会社を休んでいるだけに、なんかちょっと不穏だ。だから流れないようにした。

でも、それは本当はただのきっかけに過ぎなくて、本当の理由は別にある。Twitter や Mastodon ではほとんどフィードバック(つぶやきに対するメンションなど)は返ってこない。だが個人的にはそれが良いと思っている。フィードバックを気にすると SNS に時間を取られる元になる。

自分が Twitter や Mastodon に投稿するのは、誰かに「すごい!」とか「大変だったね」と同情してもらうことじゃなくて、単に自分の思ったことを、ライフログ的な感じで記録して、将来的に自分が見返せるようにするためだ。だから、ひどい言い方かもしれないが、フィードバックなんてものは、むしろ邪魔でしかない。

ところが、Slack の場合はそのフィードバックが存在してしまっているのだ。社員のみんなは優しいから、自分がなにか発言するたびに、何かしらのアドバイスや共感を Slack に書き込んでくれる。SNS というのはそれが醍醐味なのかもしれないが、自分にとってはそれが心の蟠り(わだかまり)になってしまっていることがあるのだ。

つまり何が言いたいかというと、単に自分の思ったことを書きたいだけなのに、そこに何かしらのコメントが入ることが常に頭の中にあると、何かを発言することを躊躇してしまうことがあるのだ。それは他人の悪口を言うとかそういう類のものではなく、「その発言をすることによって、Slack の誰かが反応する可能性がある」ということが脳裏に過るだけで、それがどんな発言であっても、躊躇ってしまうというか頭にもやがかかった状態になるのだ。

それはちょうど、この日記があまり見られていないからこそ自由に書けるのと似ていて、自分の身近な人が見ているという認識があるだけで、自由に書けなくなるのと一緒だ。「今日会社を休んだ」ことだってまさにそうだ。

この感情をあまりうまく表現することができないが、そういう感情に悩まされてきた。でもそれは Slack に Twitter や Mastodon の発言を流しているから発生することなので、それをやめてしまえばそんなことを気にする必要はなくなると気づき、インテグレーションを削除した。

つい先ほど削除した。一応削除したことのログは残るが、深夜なので誰も見ていないし気にも留めないだろう。気に留めないでほしい。

  1. 厳密にはできているが 127.0.0.1 に向くようになっている。 

  2. 当時は Twitter を遮断していた。 

  3. だから大学時代に Qiita に記事を残さなかったのかもしれない。そのときのことはよく覚えていない。