Today’s Cambly lesson with Sarah R.

6 分ほど遅れての開始となった。その理由は前のレッスンが遅れたからとのこと。そしてなぜ前のレッスンが遅れたかというのを丁寧に説明してくれたのだが、前のレッスンの生徒がトルコの人で、なんとトルコで大地震が発生したようだ。それを聞くまでその情報は知らなかったのだが、「トルコ地震」と検索するとつい 2 日前ほどに発生したという情報がすぐに出てきた。正確には 2023 年ガズィアンテプ地震というらしい。マグニチュードは 7.8 で、死者は 1 万人近くに登ったようだ。

日本も全然他人事ではないし、むしろ南海トラフ巨大地震は今回のトルコ地震よりはるかに被害が大きくなることが予想されているので、ますます怖くなった。

トルコ地震の概要を聞いたあとは日本の巨大地震の話になった。ちょうど以前にも地震の話をしたことがあったのでもってこいの話題だろう。カナダに行くのは自身が怖いからなのかという質問を受けたのでそうだと答えたのだが、実際、ワーキングホリデーで地震を避けられるとは思えない。予想では 2030 年代に来る確率がかなり高いということで、それまで 7 年はあるし、ワーキングホリデーはたった 1 年しかない。そう考えるとワークビザもしくは永住権を取得する必要があるが、これは前にも書いたとおりそう簡単ではない。ワーキングホリデーの間に働いていた会社で運良くワークビザを斡旋してもらう方法くらいしかないが、正直それはかなり非現実的な気がする。

だから、状況的にはかなり切羽詰っているような気がする。地震はいつ来るかわからないし、ワーキングホリデーを経験したは良いものの、そのあと帰国してもたもたしている間に日本で被害を受けてしまう可能性も充分にあり得る。

未だ英語の勉強のモチベーションは上がらないが、それでも本気でやらないといけないくらい状況は逼迫しているようだ。

プロフィール更新

レッスン後に、あなたはもう初級者レベルではありませんよ! というメッセージが来た。なんのことだと思っていたら、添付されていた画像にあったのは自分のプロフィールのスクリーンショットだった。Cambly のプロフィールはしばらく更新していなかったので英語レベルが “Elementary” になっていた。それを指摘してくれたのだろう。

ということでレベルをひとつ上の “Conversational” に上げた。ついでに他の項目も更新した。

プライベート日記を通常日記と融合することに成功した!

2 月 6 日に、4 ヶ月半ぶりにプライベート日記を更新した。それをきっかけにプライベート日記のほうも Raspberry Pi の Web サーバで見られるようにしたいなあと思った。そして昨日の夜、ダラダラと YouTube や Netflix を見ながら片手間でプライベート日記の配信準備をしていた。

ところが、途中まで作業しているところであることに気づいた。通常の日記と全く別々でサーバを建てるくらいなら、通常日記に融合してしまったほうが確認しやすくなるのではないかと。プライベート日記のほうは Web サーバで配信することを想定していなかったので、ただ日記のファイルがあるだけで、Jekyll 用の設定などは用意されていなかった。ほぼ似たような設定ファイルをプライベート日記のほうにも用意するのは冗長だし、さらに systemd や Nginx (OpenResty) の設定などもほぼ一緒である。それならまとめて一つのサイトとして配信したほうが冗長にならずに済むし 2 つの日記が同時に確認できるので効率的ではないかということに途中で気づいた。

いろいろとやり方を模索したところ、以下のような方法でうまくいけた。

いろいろと調べながら作業したので作業時間は数時間程度かかったが、変更量としてはそれほど複雑にはならなかった。_private/ 以下を .gitignore に加えることで、コンテンツ自体は通常日記リポジトリとは完全に分離されているし、この設定のまま GitHub Pages で配信しようとした場合も、条件分岐していて _private/ 以下が存在しない場合は何も変化はないので影響も起きないはず。

旧日記サイトのように、通常日記の文章の間にプライベートな単語や文章を突っ込むことはさすがに難しいが、それでも Jekyll だけで同一ページ内に通常日記とプライベート日記を共存させることができたのはかなり便利だと思う。

ただし、2 つだけ制約がある。

YAML Front Matter が必要

どういう理由なのかはわからないが、Jekyll の collections 機能を使う場合には、その対象となるマークダウンファイルは YAML Front Matter が必須となる。これがない場合は Jekyll のビルドでトラッキングされない。

_posts 配下にある通常日記のマークダウンファイルは YAML Front Matter がなくてもちゃんとコンテンツファイルとして認識されるのだが、なぜか collections を使った場合はそれがうまく機能しないのだ。

ただ、いろいろ試してみたところ、YAML Front Matter の中身は空でも良いということがわかった。つまり、プライベート日記のコンテンツファイルの先頭にハイフン 3 つの行を 2 行連続で書いておけばとりあえず認識するようだ。

---
---

通常日記と比べて若干手間は増えてしまうものの、ハイフンだけだったら、日付のように毎回変わる文字列を入力する必要がない (テンプレートなどを作る必要がない) のでまあ許容範囲とみて良いだろう。

通常の日記が同日に存在しない場合は Not Found になる

たとえば 2022 年 5 月 10 日にプライベート日記を書いたが、通常日記は書いていなかったとすると、そのプライベート日記は見ることができない。日記一覧ページにも表示されないし、詳細 URL に該当する URL に直接アクセスしても Not Found になってしまう。

これは、あくまで通常日記ディレクトリをメインとする配信で、詳細ページを表示するときにもしプライベート日記があればついでにそれも表示する、というような仕組みになっているからである。プライベート日記のほうは判定基準に含まれていないのだ。

collections ではなく固定ページ的な認識としてプライベート日記のファイルを設置しておく方法も検討してみたが、そうすると KNOWLEDGE.mdTIMELINE.mdTEMPLATES.md などのファイルと同じような扱いになってしまうのでうまくいかなかった。

まあここらへんはそれほどクリティカルな問題ではないので今すぐに気にするほどでもないだろう。解決策が見つかったらまたそのとき改めて対応すれば良い。


会社の PC でプライベート日記を書くことも解禁したし、通常日記に混ぜることもできるようになったし、これでプライベート日記の更新も捗りそうだ。もちろんプライベート日記は永年プライベートにしなければいけないくらいセンシティブな内容のみを分離するためのものなので、毎日書くことはないだろうが、書くための障壁を減らすのは、そういう込み入った内容を記録として残す点において重要だ。

残る対応としては、プライベート日記のほうも通常日記と同じく自動的に git pull して更新分を反映させる仕組みを導入することだ。

Amazon.com の国別ドメイン一覧を Gist でまとめてみた

なんとなく Amazon.com の国別ドメインをリスト形式でまとめたくなったので Gist にまとめてみた。

https://gist.github.com/noraworld/0ee7af8b6b068d5d7b6d97caded18bab

もともと dnsmasq.priv で Amazon.com 一覧をブロックしていたのだが、そこに国名をコメントで入れたくなったのが発端だ。でもコメントで入れるくらいなら別でリスト化したほうが見やすくて良いだろうなと思ったので Gist でまとめることにした。

ドメインブロックする際にドメイン一覧は一通り調べていたのだが、改めて調べてみるとベルギーが含まれていないことに気づいたのでこの過程でドメインブロックのほうにもベルギーのドメインを追加した。