| @Mac/iPhone

Apple Watch

9 月頃、 Pebble Time Round 追悼のような記事を書いた。

この記事を書いた後くらいから Pebble Time Round の調子が悪くなり、 Apple Watch に買い換えた。

Pebble Time Round 、購入後半年くらいから充電されづらい問題はあったが、これまでだましだまし使ってきた。今年の秋頃から充電したのにバッテリー切れで死んだり、充電に異常に時間がかかるような症状( 8 時間使って 16 時間充電する感じ)が出るようになり、ある日一切充電されなくなってしまった。もうこれは寿命かなと思って 10 月に嫁さんに黙って Apple Watch を買った。しばらくはばれずに過ごしていたけど、風呂に入っているときに洗濯機の上に置いていたところを発見されはちゃめちゃに怒られた。

Apple Watch でどう便利になったか

Pebble に比べ Apple Watch はよくできている。生活が便利になったところをまとめていく。

生活の利便性向上

通知の受け取り

賢い通知の送付

Pebble は iPhone に通知が来たとき、 iPhone を操作中かどうかに関係なく一律にプッシュ通知を飛ばしてきて鬱陶しかった。 Apple Watch はそんなことなくて、 iPhone を使っている状態であればブルブル震えたりしない。プッシュ通知のプレビューも便利で、画像付きのプッシュ通知は画像を見ることができるのが便利だ。 iPhone との連携がとてもよくできている。

プッシュ通知のプレビュー

Mac のロック解除

Mac のロック解除を Apple Watch で

会社から貸してもらってる MacBook Pro はこれまで Touch ID でロック解除していたけど、 Apple Watch でロック解除できるようになった。 Apple Watch がロック解除済み(パスコードを入れて手首に装着済みの状態)であれば自動的にロック解除されるというものだ。 Touch Bar に指を伸ばすより Mac の前に座るだけで自動的にロック解除される方がはるかに便利だ。加えて、 Touch ID が付いていない私物の iMac もパスワードを入力することなくロック解除されるようになった。超便利だ。

最近、 1Password が Apple Watch で認証する機能をリリースした。 Mac のロックを Apple Watch で解除できるなら 1Password の認証もできたら便利と思っていたが、 Big Sur になるまで Apple がこの API をサードパーティーには提供していなかった模様。それが Big Sur で開放されて、 1Password のロック解除を Apple Watch でできるようになった。ただし、 T1, T2 チップを搭載した Mac でのみこの機能は有効で、私物の iMac は 2017 年モデルで iMac が T2 チップを搭載するようになったのは 2020 年モデルからなので残念ながら 1Password の認証はパスワードの入力が必要だ。 T1, T2 チップ入りの Mac と Apple Watch を持っていて 1Password を使っている人は是非お試し下さい。

マスクつけたままパスコードなしで Apple Pay

Apple Watch で Apple Pay

Apple Pay も便利になった。これまで iPhone の Apple Pay で支払っていたけどマスク時代になって Face ID でロック解除できずパスコードを入れるのが非常にわずらわしかった。いまは Apple Watch で Apple Pay を使えるようになったのでコンビニでマスクを外すことなく簡単に支払いを済ませられる。

家の中で行方不明になった iPhone の捜索

iPhone の捜索

Pebble にもペアリングしているスマートフォン側で音を鳴らすソフトはあったが、誰が作ってるのかよく分からない得体の知れないソフトを購入してインストールする必要があって尻込みしていた。 Apple Watch には標準で iPhone 側の音を鳴らす機能が付いている。 Find My で音を鳴らすこともできるが、家の中でちょっと見つからないときにわざわざ Mac のところまで行って Find My をしたり、家族に頼んで他の iPhone から探したりするのは大げさすぎる。手元でちょっと操作しただけで iPhone 側の音が慣らせるのは便利だ。

運動時の快適性アップ

iPhone なしでジョギング

iPhone なしでできること一覧

iPhone を持たず単体でジョギングに出かけられるのがいい。ランニングのログ取りと音楽や Podcast の再生が Apple Watch だけで完結する。 Apple 製のソフトだけでなく、 Castro のようなサードパーティのソフトでも Apple Watch 内に Podcast をダウンロードしておいて iPhone なしで利用できる。 iPhone がなくても Apple Pay が使えるので、 iD などに対応している自販機で飲み物を買うこともできる。

自分が買ったのはセルラー回線なしの GPS モデルだ。 iPhone を持たずにジョギングはセルラーモデルを買えるような金持ちの専売特許かと思っていたがそうではなかった。ジョギング中に電話を受ける必要がなければ GPS モデルで十分だ。 Workout の GPS ログ取りも GPS モデルの Apple Watch 単体で全く問題ない。

ジョギング自体の快適性アップ

Apple Watch によってジョギング自体も快適になった。 Pebble 時代は Runkeeper を使っていて、 Runkeeper には Pebble 用のコンパニオンアプリがあった。ただ、 iPhone 側との接続があまりうまくいかず、 iPhone 側で Runkeeper をバックグラウンドに持っていくと Pebble との接続が切れてダメダメだった。 Runkeeper には 1km とか 5 分とか走ったときに教えてくれる機能あるけど、 Pebble に通知が来るわけではなく、イヤフォンを付けて iPhone 越しに音声で聞くしかなかった。マッチョな感じの外人女性の声で "Distance, 1 kilo meter" とか言われてもあまりテンション上がらなかったし、聞いてる音楽や Podcast の音量が下げられて上から覆い被さるようにしてアナウンスされるので使い勝手が良くなかった。 Apple Watch であれば 1km ごとにブルブルっと震えてラップタイムを教えてくれる。ちょうどいい。走ってる最中に現在のペースや心拍数、経過時間なども一発で確認できて便利。

ワークアウトの記録を Strava へ取り込み

走り始める前にランニング用のアプリを起動しなくて良いのも地味に便利で、とりあえず Apple 謹製の Workout を起動してランを始めれば良いというのも手軽。終わったら Apple Watch で記録を止めて、後から Strava に Workout のデータを取り込むことができる。心拍数付きでグラフが表示されて便利だ。

心拍数がわかることによる運動負荷の把握

心拍数の確認

これまでジョギングなどで自分の心拍数などを気にしたことがなかった。 Apple Watch で心拍数がわかるようになり、自分が結構無理していることがわかるようになってきた。 Health Care アプリの解説によると、心拍数は 220 - 年齢 が最高値らしい。この前何気なく登山をしていたら心拍数が 181 になっており、そんなに飛ばしているつもりはなかったのに最大心拍数になっていて驚いた。それでそこでしばらく休んで呼吸を整えたが、心拍数がわからなければ自分がいま無理をしていることを知らずそのままのペースでのぼってバテていたかもしれない。ジョギングはともかく登山ではバテてしまうとその場でへばってしまったり、疲れからくるふらつきで転倒、滑落したりしてしまうので侮れない。自分の偽りのない体力の限界を知れて便利だった。

褒められる

活動の記録とリング

アクティビティの記録

Apple Watch は運動すると褒めてくれるし、サボってたら「運動しませんか?」と促してくる。これはウザいと感じる人もいるだろうけど、自分の場合はうざくない。 Pebble にも似たような促し機能はあったがワンパターンだったし、メッセージ内容がぶっきらぼうでよく分からなかった。

睡眠の計測

目が覚めたときの表示

リングについても最初自分はウザいと思っていたが、運動して閉じることができると気分がいい。睡眠についてもメッセージを表示してくれて、朝起きてしばらくすると「ピロピロリン♪」と音が鳴って挨拶してくれ、その日の天気も教えてくれる。体験が良い。

結論

Apple Watch に限らずスマートウォッチというかウェアリングデバイスの良さは、これまで記録できていなかった自分の行動を記録してくれるところだと思う。有名なプログラミングの格言「推測するな、計測せよ」を自分の体で行う感じだ。

ただし、ただ計測するだけでは次のアクションに結びつきにくい。 Apple Watch は計測した数値をライトに評価してくれるところが良いところだと思う。ログをとることはその他のウェアリングデバイスでもできる。それをどう評価するかが難しくて、 Pebble の場合はあまり評価をせず、どういうアクションを取れば良いのかがわかりづらかった(いつもよりよく寝たねとか、今日はめっちゃ歩いたじゃんみたいなローカルプッシュはあった)。 Apple Watch は、それが自分の健康にどういうインパクトを与えるのか、読みものコンテンツ込みで提示してくれるのが良い。それでいて押しつけがましくないところもいい塩梅だと思う。

ただやっぱり Apple Watch は高い。 iPhone 、 Mac と定期的に買い換えるもののサイクルに Apple Watch も加わるとかなり懐的には厳しい。コロナ禍で飲みに出かけたり昼飯代でお金使うことがなくなったせいで何とかギリギリ大丈夫だろうと買う判断ができたけど、通常の生活ではとてもではないけど手を出すことはなかったと思う。 Pebble Time Round と同等の値段( 1.5 万円くらい)で気軽に買える Apple Watch が欲しいし、あったらもっとめっちゃ売れると思う。

買って良かった Apple Watch アクセサリー

以下はアクセサリー的なもののうち買って良かったやつです。冒頭の写真はこの二つを装着・利用した状態で撮影しています。

Apple Watch 用充電台

Apple Watch 、 Qi で充電できるものだと思っていたけど対応していないことを知って衝撃を受けた。なので付属の丸くくぼんでいる充電器で充電しないといけないのだけど、それだと机の上で収まりが悪い。というわけでこいつを買った。カチッと Apple Watch が固定されて、充電中は置き時計としても使えて便利。 Qi のスマートフォン充電台と一体型の商品もあるようなので、 Qi を持ってない人はそっちを検討してもいいかも。

液晶保護ケース

Apple Watch はアルミニウムモデルを買ったのでガラスがサファイアガラスではなく、またアルミニウムはステンレンスやチタンよりも傷つきやすいとのことだったので保護ケース的なものを買った。時計は結構いろんなところにぶつけるのでこういうのに入れておくと安心だと思う。装着しても Apple Watch がダサくならないので気に入っている。

| @旅行/散歩

ゼインアーツのテント

最近キャンプの話を何回か書いているけど、 2 週間前にもキャンプに行った。去年のゴールデンウィークに家族で行った別府の志高湖キャンプ場に元同僚の @taketin さん父子と行った。 taketin さんが Weber の高級バーベキューグリルを持ってきてくれてピザを焼いてくれた。

taketin さんが高級バーベキューグリルで焼いたピザ

taketin さんが高級バーベキューグリルで焼いたピザ

自分は最近、 GRiPS のブログを読んだり Twitter で銀座カプセル男 (@twiginza) さんという方のツイートを読んだり、ヒロシキャンプの YouTube 動画を見るようになってアウトドアの食事への考え方が変わってきていて、凝った料理を作るよりインスタント食品などを駆使して楽をして、むしろその状況では食べることができないものを食べることのギャップ(例えば山でほかほかの焼売を食べるとか)を楽しむようになってきた。なので今回はイオンの肉まんとソーセージ、生卵くらいしか持ってきてなくて、恐縮しながら taketin さんに食わせてもらった。食べるだけのキャンプというのは楽だった。

taketin さんが平生ヤクルト感覚で飲んでいる高級クラフトビール

taketin さん父子にテントで寝てもらって自分はハンモックで寝ようかとウキグモ Light とウンカイ Light を持ってきていたけど、志高湖は木へのハンモック取り付け禁止になっていた。ツリーストラップを使わず直接木にロープを巻き付ける人がいたのだろう。残念。それで急遽自分もテントのなかで寝ることにした。エアマットを膨らませ、下にウキグモ Light を敷き、上にウンカイ Light をかぶった。

ウキグモ Light とウンカイ Light

前回の嬉野広川原キャンプ場での経験から、ハンモック泊は随分寒いだろうと覚悟していたのだけど、予想に反してめっちゃ快眠できて初めてキャンプで 7 時間以上眠れた。ほとんど無風でテント内に風が入ってこなかったのも助かった。 taketin さんの息子殿よりも早く 10 時には一人で勝手に寝てしまって申し訳なかったけど、翌朝は 6 時前に目が覚めて志高湖の写真を撮って回ったりした。

白鳥と志高湖

朝靄がかかる志高湖

白鳥と志高湖

由布岳と鶴見岳

対岸の紅葉とテント

撤収がギリギリになって最後は大慌てだったがエンジョイできた。 taketin さん父子とは志高湖で別れて一人で久住方面に向かい、猪の瀬戸湿原を歩いたり、由布院でだんご汁を食べたり、長者原で温泉に浸かったりした。

Kaizen Platform 時代の上司だった石橋さん(創業 CTO )は冬も毎週末キャンプに行っててキャンプ場からリモートでミーティングしたりしてたのを思い出す。自分は仕事こそしなかったものの、今回キャンプ場からレアジョブのレッスンを受けるということをやってのけた。引き続き戸外活動頑張っていきたい。

| @旅行/散歩

平戸

去年( 2019 年)の年末、今年行ったところアドベントカレンダーに登録したが、いろんなアドベントカレンダーに登録しすぎて記事を書くことができなかった。 11 月に入って 2020 年のアドベントカレンダーの募集が始まったみたいなので、今年のシーズンが始まる前に去年のやり残しを片付けておきたくなった。ということで 11 ヶ月遅れで「今年行ったところ」です。


2019 年に行ったところでは 10 月に訪れた平戸が一番心に残っている。このときは平戸を訪れることが目的だったのではなく、平戸の手前、旧田平町にある中瀬草原キャンプ場1でのキャンプが目的で、キャンプに行ったついでで平戸の街に偶発的に立ち寄った。昼過ぎにテントを片付けて腹が減っていたし、このまま帰るのはもったいない(福岡から平戸までは車で 3 時間近くかかり、一泊キャンプしただけで帰るのはガソリン代や移動時間のコストパフォーマンスが悪い)と思われ、気まぐれで訪れたにもかかわらず、平戸の街は強く印象に残っている。

平戸大橋

平戸は島であり、平戸に入るには平戸大橋を渡る必要がある。平戸大橋の下には田平港があって、昔は船で海を渡っていたようだ。平戸を訪れたあとに読んだ司馬遼太郎の『街道をゆく 肥前の諸街道』では渡し船に乗っていた。

平戸の街に入り、平戸港交流広場に車を停めた。 2 時間までは駐車料金が無料だった。ここは港であると同時に観光案内所(とても綺麗なトイレがある)でもあり、観光スポット情報を集めた。

平戸にはオランダ商館(オランダ商館の跡地に建物が復元され資料館になっている)と松浦歴史資料館(旧平戸藩主まつ2から寄贈された松浦氏の私邸を資料館に改装したもの)、ザビエル記念教会がある。時間的に遅く全部回ることはできなそうだったので、まずはザビエル記念教会、その後オランダ商館に行くことにした。

平戸城

ザビエル記念教会

ザビエル記念教会は丘の上に建っている。おもしろいことにこの教会に辿り着くまでの坂道にはお寺がたくさん建っており、寺町を通り抜けて坂を登り切ると教会が建っているという不思議な空間になっている。教会からは竹林越しに平戸城が見える。

ザビエル記念教会

ザビエル記念教会

教会のすぐ下はお寺

教会のあとは平戸の街を通り抜け、オランダ商館を訪れた。

アンティークショップ

オランダ商館

オランダ商館

オランダ商館は復元された建物だ。平戸が貿易港として栄えていた頃に商館は作られたが、 1640 年に幕府の意向により貿易はすべて長崎の出島に集約されることになり、商館は破壊された。破風に西暦の年が書かれていることをキリスト教に警戒感の強い幕府から咎められたと言われているが、多分こじつけで、貿易の果実を松浦氏に独占させたくなかったのかもしれない。長崎ならば天領で、貿易の利益を幕府のものにすることができる。

商館には帆船の模型や松浦家が所有していた西洋の甲冑のほか、オランダ商館の家財や、当時貿易されていた品(器や香辛料など)が展示されている。商館の建物自体の構造も解説されていて、木造建築技術しかなかった 400 年前にいかにして貿易品を貯蔵するための巨大な貯蔵庫を建築したのかや、二階の窓から物品を積み下ろしするための巻上機(リフト)の構造を知ることができる。またオランダ人と結婚した日本人や、オランダ人との間に生まれた子どもがインドネシアに追放され、ジャカルタから「日本が恋しい」と綴って日本に送った手紙(ジャガタラ文)の展示もある。

オランダ商館の帆船模型

オランダ商館の帆船模型

松浦家に伝わる西洋の甲冑

荷物をリフトアップするための巻上機

商館は平戸瀬戸を見渡せる町外れにあり、平戸城や平戸の街を一望できる。平戸大橋も綺麗に見える。

オランダ商館から見る平戸城

オランダ商館から平戸瀬戸と平戸大橋

商館近くには荷物の積み下ろしに使われていた埠頭が残っている。埠頭といっても簡易な石造の階段で、こんな小さな石段を介して歴史を動かす交易が行われていたのかと思うと感慨深かった。

写真左下の石段がオランダ埠頭

商館自体は復元された建物だが、商館および商館員たちが暮らした居留地と市街の間には漆喰塗りの壁が現存している。オランダ塀と呼ばれていて、防火や市民の視線を避けるために作られていたものらしい。

オランダ塀

長崎の出島同様、オランダ商館は市街から隔絶されていたのかもしれない。長崎の街もだいぶコンパクトだが、平戸はさらに街が狭く、平戸城はもちろんのこと、町中の至る高台から商館を見ることができる。街がコンパクトなため、壁で隔てられていても完全に隔絶されているわけではない。商館と平戸の街との一体感のようなものを感じた。きっとそれは江戸初期も同じだっただろう。今日訪れてみても、長崎以上に異文化がすぐ隣にあったことを感じとれる街だと思う。

街並み

ちょうどこの日は平戸くんち最終日だったようだ。昼間は少々観光客がいたのかもしれないが、夕方になると街はがらんとしていた。平戸は福岡から遠いため、観光客の引きも早いのだろう。日本海側ということもあって、日が傾くとなんとも言えない寂しさが際立った。

街並みは木造建築を主として歴史的景観を保とうという努力が感じられる。信州の中山道沿いの宿場町のような雰囲気がある。おくんち期間中だったのでどこの家も松浦家の家紋ののれんを掲げていた。長崎も同様におくんちの期間にはのれんを掲げるが、支配者の家紋ではなく自家の家紋入りののれんを掲げる。また長崎は一部木造建築の建物もあるが、大多数は近代的なコンクリート造や鉄骨造の建物3で、歴史的な景観というのはほとんど見られない。その点で長崎生まれの嫁さんは平戸の街の景観に感銘を受けていた。

平戸の街並み

平戸の街並み

平戸の街並み

平戸の街並み

感想

正味の滞在時間が 3 時間くらいしかなく、ほんのちょっとしかいられなかったが、平戸はとても味わい深い街だと思った。オランダ、ポルトガルとの交易の歴史では長崎の陰に隠れがちだが、最初にポルトガル船が往来するようになったのは平戸だし、オランダとの交易を最初に始めたのも平戸だった。その前の時代には松浦党や倭寇の歴史もある。世界史で習う台湾の偉人の鄭成功は平戸生まれで母親は平戸の人だ。隠れキリシタンの歴史もある。キリシタン関係でも長崎市が注目を集めがちだが、江戸期に隠れキリシタンとして信仰を続けたのは五島や平戸の人たちだった。歴史のほかにも、海の美しさが挙げられる。平戸西部にある人津久海水浴場や根獅子の浜海水浴場は沖縄の海と見まごうばかりの美しさだ。

九州に住んでいてまだ平戸を訪れたことがない人は是非一度訪ねてみて欲しい。九州の日本海・東シナ海側には南国のイメージと違った、独特の雰囲気がある。 2016 年の「今年行った場所」で書いた唐津とセットで行ってみることをおすすめします。


  1. 去年利用したときは無料だったが、 2020 年の春から有料化されていている。料金は高め。持ち込みテントで 4,500 円、タープも別料金を取られるみたい。これでは利用する人減りそう。 https://nakazekamp.com 

  2. 松浦氏は中世の海賊・水軍松浦党の子孫。海賊が最終的には戦国大名になった。 

  3. 原爆で焼けたからではと思う人もいるかもしれないが、長崎で原爆が投下されたのは市北部の浦上のあたりで、室町時代から幕末にかけて貿易で栄えた長崎の中心部は原爆で大きな被害を受けておらず、歴史的な街並みを残そうと思えば残せたのに残さなかった、というのが長崎の実情。 

| @ブログ

インデックスページをいじって各カテゴリーの最新記事 4 件を配置するようにしてみた。最近の個人サイト復興ブームでみなさんインデックスページを工夫されているのを見ていて真似したくなってやった。

カテゴリーごとに最新記事 4 件を表示

昔ながらのブログだとインデックスページというのは最新の記事 10 件くらいが表示されていて、「次へ」を押すと古い記事が出てくるという構成になっている。以前のこのブログもそうだった。

しかし自分自身が他人のブログで「次へ」を押して次々に記事を読んでいくということをやった記憶がほとんどない。自分のブログでだって何か目的があって特定のキーワードで検索したあとに引っかかった記事を読むという感じなので、時系列に本文とセットで記事が 10 件ずつ表示される UI というのは意味をなしていないと思った。そもそもインデックスという名称なのに最近の記事数件しか表示していないのはおかしい。インデックスというからにはすべての記事の目次になるべきだ。

このブログはカテゴリーがあるので、サイトマップを作るとするとこんな感じになると思う。

+----------+        +------------+        +-----------+
|          |        |            |        |           |
|   Blog   +---+--->+  Category  +------->+   Entry   |
|          |   |    |            |        |           |
+----------+   |    +------------+        +-----------+
               |
               |
               |    +------------+        +-----------+
               |    |            |        |           |
               +--->+  Category  +---+--->+   Entry   |
                    |            |   |    |           |
                    +------------+   |    +-----------+
                                     |
                                     |
                                     |    +-----------+
                                     |    |           |
                                     +--->+   Entry   |
                                     |    |           |
                                     |    +-----------+
                                     |
                                     |
                                     |    +-----------+
                                     |    |           |
                                     +--->+   Entry   |
                                          |           |
                                          +-----------+

第一階層がインデックスページで、第二階層がカテゴリートップ、そして各記事がある。なのでインデックスページは二階層目の一覧ページになっているのが望ましいはずだ。しかし伝統的なブログはカテゴリーという記事をまとめる概念がありつつも、インデックスページから各記事ページへ直接遷移するのが主な導線だった。常に最新の記事が時系列順に並んでいるだけでは味気ないし、常連の読者ではないコンテキストを知らない訪問者には不親切だろう。

しかも SNS の隆盛で個人のブログのインデックスページが参照される機会というのはとんとなくなってしまった。個人が書いたブログ記事は SNS 経由で読まれ、個別記事だけが読まれる。インデックスページやトップページが読まれることはほとんどない。 SNS でシェアされている URL をクリックして個別記事を読んで、それ以上そのブログのほかの記事を読むことなく離脱してしまう。前後のコンテキストは無視して、一つのコンテンツだけがつまみ食いされてしまう。そんな流れにあらがいたいと思った。

これまで関連記事を記事下に表示するなどやってきたが、気に入っていくつか記事を読んで「ホーム」( = インデックスページ)を訪れたユーザーがもう少しブログを深掘りしてみたくなるようにインデックスページを各カテゴリーの最新記事一覧とするようにしてみた。このブログは現在カテゴリーが 13 個あるので、それぞれから 4 件ずつ記事を取得すると 52 記事になる。全カテゴリーからまんべんなく 4 記事ずつ取得して表示するのは簡単なようで結構難しい。普通の SQL ではできない。 OR マッパーではまず無理だろう。

いろいろ調べてみた結果、 MySQL では GROUP_CONCAT というのが使えそうだった。以下のような SQL を書いた。

select entries.id
from entries
inner join (
  select
    category_id,
    GROUP_CONCAT(id order by created_at desc) as entry_ids,
    max(created_at) as last_created_at
  from entries
  where entries.draft = false
  group by category_id
) as grouped_entries
on grouped_entries.category_id = entries.category_id
and FIND_IN_SET(id, entry_ids) between 1 and 4
order by last_created_at desc, entries.id desc;

GROUP_CONCATFIND_IN_SET という関数を組み合わせることで、各カテゴリーから作成日の降順に記事を 4 件ずつ取得できた。このクエリでは記事 id のみ取得して、もう一回 DB に記事を取得するクエリを ActiveRecord で投げる。 ActiveRecord でクエリを組み立てるときは N+1 が起こらないように関連テーブルを JOIN する。

query = <<~SQL
  select entries.id
  from entries
  inner join (
    select
      category_id,
      group_concat(id order by created_at desc) as entry_ids,
      max(created_at) as last_created_at
    from entries
    where entries.draft = false
    group by category_id
  ) as grouped_entries
    on grouped_entries.category_id = entries.category_id
    and find_in_set(id, entry_ids) between 1 and 4
  inner join categories on categories.id = entries.category_id
  order by last_created_at desc, entries.id desc;
SQL
entry_ids = ActiveRecord::Base.connection.select_all(query).rows.flatten
entries = Entry.includes(:category, :user, :tags, :comments).where(id: entry_ids)

PostgreSQL のときに最初に取得した entry_ids の並び順通りに結果が受け取れるかは怪しいが、 MySQL の場合は一回目のクエリで取得した id 順に各レコードが ActiveRecord のクエリ結果として取得できた。あとはこれをカテゴリーごとにグルーピングして View でよろしくやれば良い。

なお各カテゴリーはカテゴリー内の最新の記事の作成日で降順ソートするようにしている。例えば現在のインデックスページの最下部には音楽カテゴリーがあるが、これは音楽についての記事を最後に書いたのが一年以上前だからだ。もしいま音楽の記事を書けば音楽カテゴリーがトップに浮上するようになっている。

見た目に関しては各カテゴリーの記事最新一件は大きなサイズで表示している。最も最近書かれた記事なのでより多く人の目に付いた方がよいだろうという考えだ。またすべての記事にサムネイルというか、アイキャッチ画像を表示するようにした。画像がない記事に関してはデフォルトのサイトアイコン画像を表示するようにしている。やっぱり視覚的に情報を捉えられるのは重要だ。画像がごちゃごちゃ表示されるのを嫌う人もいるかもしれないが、テキストだけでは人間の認知というのはどうしても追いつかない。

あわせて今回、インデックスページの冒頭部にこのサイトについての説明文を載せることにした。ながしまきょうさんr7kamura さんがやっているののパクりだ。伝統的なブログのインデックスページは初めて訪れた人のことを無視しすぎていたと思う。そのブログ自体について説明するページがあるブログは少ない。最初の記事でブログを始めた経緯みたいなことが書かれたきり、そのブログは何なのか、誰が書いているのかが書かれることは希だ。きちんとブログについての説明ページと著者についての説明ページがあっても、左右のサイドバーやトップのナビゲーションの端っこに押し込まれて見られることはない。これではいけないだろう。というわけでインデックスページの一番目立つ位置にブログと自分自身の簡単な紹介を入れた。

インデックスページトップに紹介文を表示

ブログはなぜ衰退したかを考えてみると、 Facebook や Twitter の隆盛はあるにせよ、ブログ自体に初めて訪れた人に読まれるための工夫が欠けていたのだと思う。誰も自分のブログの継続率を計測したりコホート分析したりはしない。読者が前後の記事を読んでいることを前提に書かれた記事やサイト構成では初めて訪れた人はどうやっても離脱してしまう。特に書き手が芸能人でもない一般人の場合はなおさらだ。誰も RSS フィードを購読していないし、ほとんどの読者は初めて訪れる人なのだから、そういう人たちが読んでブログのテーマや著者の人となりが分かる構成にしていかなければならないのだと思う。でないと SNS でたまにバズったときだけ読んでもらえる、ソーシャルメディアの肥やしにしかならない。

この新しいインデックスページが正解なのかどうかは分からないが、ブログ衰退の流れにあらがっていきたい。

| @ブログ

画像を拡大できるようにしたいという欲求は前々からあった。この手のものでは Lightbox が有名だが、 jQuery べったりなのでいまさら使いたくない。 P_BLOG の頃は FacyZoom というやつを使っていて好きだったが、 2008 年から更新されていない。何かいいのがないかなと探していて Medium Zoom というのを見つけた。

ブログサービスの Medium の画像拡大機能のコピープラグインだ。 npm パッケージになっているので導入も楽だった。

実際のこんな感じ。

Medium Zoom 利用風景

| @ブログ

blog.8-p.info の過去記事ページの真似をして、 Archive ページにタグを表示するようにしてみた。

Archive ページにタグを表示

タグはあまり使っていなかったのだけど、一覧で記事タイトルだけ並んだときその記事にどんな内容が書いてあるのかを把握するためにはタグが便利だなと思い直し、タグを表示させてみることにした。いくつか過去のタグが付いていない記事にタグを振ってもみた。

このブログは技術情報からポエム、日々の日記まで何でもありのごった煮ブログなので、カテゴリーによる情報分類には限界がある。現在 13 個のカテゴリーがあるが、記事数にバラツキがあり、情報分類としてあまり機能していない。カテゴリーの粒度をもっと荒くして緩い分類に変更し、そこから先はタグによって超細かくラベリングすると情報の分類としてはまともになるのではないかと思った。

いま、カテゴリーの内訳がこんな感じ。

- "雑談":303
- "技術/プログラミング":272
- "映画/ドラマ/テレビ":150
- "Mac/iPhone":134
- "WWW":113
- "散財":95
- "旅行/ハイキング":70
- "ブログ":69
- "音楽":63
- "読書":34
- "写真":32
- "料理/食事":31
- "労働":27

もっと緩い分類にして以下みたいな感じにするとよさそう。

- 雑記
- パソコン・インターネット
- 見た・読んだ・聞いた
- 出かけた・撮った・食べた

カテゴリーとタグの使い分けは 10 年以上前から悩んでいる気がする。

情報分類の手法でありつつコンテンツの内容そのものを指し示すものでもあるからだろう。インスタグラムで #ラーメン #からの #うどん とかやってる投稿を見るととても嫌な気持ちになるのだけど、そういうことがされるくらいにタグというものは不安定なもので、正しく使おうとか気負わず、もっと緩く使えばいいのかもしれない。

もう廃れてしまったが、フォークソノミーが勢いを取り戻して、情報の発信者ではなく受け取り側がコンテンツにタグ付けできるような世の中になるとおもしろいのかもしれない。

| @登山/ランニング

山頂でコーラ

8 月の最後の日曜日に脊振山から金山まで縦走した。 2 年前の糸島四座縦走(未遂)以来の長い日帰りソロハイクだった。歩いた距離は平坦地の距離も合わせて 21km 。くたくたに疲れて思わず山行中にコーラを 3 本飲んでしまった。

いつかは脊振山系全山縦走(福岡県と佐賀県を隔てる県境の山系で西端の十坊山から東端の基山まで 70km ある)をやってみたいと思っていたけど、今回脊振山・金山を縦走してみて自分は到底そのレベルに到達することはできないなと思った。脊振山から金山へ縦走していて、途中のところでくたくたに疲れて地面に座り込んで休憩してしまった。山ではがんがん登山するよりも、ほどよく休んでコーヒーいれて飲んだり、冷凍焼売を蒸して食べたりだとか、ピクニック + ハイキング的なものの方が自分の性分に合っている。

鬼ヶ鼻岩で焼売

帰りの交通機関の時間を気にしながらの登山は目的が達成できたときはうれしいが、ゆっくり写真を撮ったり食事したりすることができず少しせわしない。かといって車を使った登山をするのは負けた感じがするし、車を使わない縦走ならではの下山後の酒というご褒美がなくなってしまう。となるとある程度歩く登山の場合は日帰りではなく山に泊まることを考慮すべきなのかもしれない。

脊振山へのルートは沢が多くもみじが美しかった。新緑の季節や秋に訪れると最高だろう。

もみじの美しい谷

金山も山頂は眺望がイマイチと聞いていたが、脊振山・金山間の縦走路は稜線歩きの快適な道が多く、脊振山まで車で来て鬼ヶ鼻岩くらいまで歩いて引き返す、というような感じだと家族連れでも楽しめそう。

九州自然歩道

白砂の眺望の良い場所

鬼ヶ鼻岩からの景色

猟師岩山・金山間は歩く人が少ないのか笹藪が茂っているし、結構痩せ尾根があって万が一転倒すると簡単に落命しそう。

金山までの縦走路

予定では金山から花乱の滝コースで下山する予定だったが時間が押してしまい、バスの時間に余裕がある坊主ヶ滝ルートで下山することにした。

当初の予定ルート(花乱の滝方面から下山)

実際のルート(坊主ヶ滝方面から下山)

ただし坊主ヶ滝ルートは罠があって、登山口までの時間は確かに短いが、バス停まで 40 分程度舗装路を歩く必要があって結局バスに間に合わず、本数の多いバス停までさらに 1km 程度歩いた。疲れた体にはこたえた。

日暮れ後の田んぼ

バスで西新まで移動して、一人しめやかに祝杯を挙げた。ラーメン一杯 290 円の店で 1300 円くらいお金使った。

西新のラーメン屋で