桐生あんずです

日常やプログラミングについて書いています。

リングフィットアドベンチャーをやり始めた

今週の月曜日にリングフィットアドベンチャーのソフトのセットが届いたので毎日やり続けている。今日で4日目。

このゲームをやり始める前はフィットボクシングを50日ぐらい続けていたので少しだけ体力が付いてきた自信はあったのだけれど、こっちは有酸素運動より筋トレがメインのゲームになっており、ゲーム内で20分ほど今まで意識して使ってこなかった筋肉を酷使し続けた結果、初日からヘトヘトになっていた。

ただ、戦闘パートで筋トレやヨガの技を使って闘ったりマップ内をジョギングして走りながらリングコンを押したり引いたりしながら動くのはゲーム性があってすごく楽しい。

フィットボクシングは面白さよりかは運動不足のためにやっていたけれどリングフィットアドベンチャーは楽しくゲームをしながら運動もできて良い、みたいなゲーム目的でやっている感覚がある。

このようにハマってくるとゲームをとにかく進めたいが為に長くプレイしようとするのだけれど、現実の体力的に1日30分が限度になっている。「土日だったら朝夕合わせて1時間くらいはできるかもな……」と木曜の時点で楽しく妄想するくらいにはなっている。

その状況をリビングで見ていた母親も興味を持ち始めて遊び方を教えてみたところ、1日目でちゃんとステージ1のボスを倒すところまで終わらせていた。母親がこのゲームにめちゃくちゃハマってしまった場合、取り合いが発生しそうなので怖いのだけれどとりあえず母親が昼に遊んで私が退勤後の夜に遊ぶ構造になっているので今の所は大丈夫そう。

そんな感じでリングフィットアドベンチャー楽しいモードになっています。楽しいのは良いけど、そろそろ先週買ったReal World HTTPの読む速度を上げていこう……と他にやりたいことも頭の中に浮かびつつある近況でした。

睡眠改善の為に設定した生活マイルールを一週間実践した結果のまとめ

桐生あんずです。先週書いた記事の実践編の話です。

kiryuanzu.hatenablog.com

前回の記事で決めた生活ルールは以下の通り。

夜の睡眠の質を上げるためにやるべきこと

  • 就寝90分前に湯船に浸かって深部体温を大きく上げる。その後深部体温を下げていって布団に入るルーティンを作る。
  • 寝る前には脳を興奮させるような行動はしないように気をつける。寝る前に本を読んだりYoutubeでゆるい動画を見たりすると良いのかもしれない
  • どうしても寝れなかったら少量のお酒を飲んですぐに布団に入る(少量なら安眠効果がもたらされて良いらしい)

日中寝ないようにやるべきこと

  • 8時前には起きて光を浴びてサーカディアンリズムをちゃんと作る。
  • 起きてからすぐに朝食をちゃんと摂る。味噌汁など暖かいものを摂取して身体の体温を上げる。
  • コーヒーや紅茶を飲んでカフェインを一定量摂る。チョコを食べるのでも良さそう ガムを噛む(噛んで脳を活性化させる)
  • どうしても眠くなったら人と話したり文章を書いて頭をできるだけ覚醒させる

決めた生活ルールはシンプルなものが多かったので、実践ハードルは低めでスタート時から毎日続けることができている。 印象に残った変化を箇条書きで書き残しておきます。

  • 平日の日中に眠気を感じることはほぼなくなった

    • おそらく朝に日光を浴びてコーヒーやチョコを摂取するようになったのでカフェインの効果によるではと思われる。出勤前の癖になっていた二度寝も我慢することができるようになった。
    • ただし、眠気は感じなくとも生活ルールの変化に身体が追いついていないのか夕方〜夜に疲れを意識的に感じることが増えた
  • 実践前は入眠時間に2時間前後かけていたが、30分~1時間までに抑えることができた

    • 今までは布団に入っても頭が落ち着かなくて答えのないことをぐるぐる考えてしまい、気付いたら2時間ほど経過しているという地獄のような状況がよくあった
    • 行動を改善し始めてからは正しい眠気がちゃんとやってきて脳の興奮が抑えられるようになった気がしている
    • それでも普通の人に比べると入眠に時間がかかっている自覚があるので、寝る前に日本酒を飲む習慣を数日続けたところ一応スムーズに入眠できるようになった。ただ、毎日飲むようになると無意識にどんどんと量を増やしてしまいそうな予感がしたので数日に一度くらいが良いと思われる
  • 休みの日は眠気を我慢できず昼寝を一時間半してしまった

    • 今週の土曜は夕方まで用事があった為二度寝をせず過ごすことができた
    • ただ、完全オフの日曜の場合は午前に元気に活動を続けられても午後は眠気に耐えられず合計1時間半ほど眠ってしまった
    • 先週の土日は途切れ途切れで1日5時間ほど意識を失っていたのでそれに比べたらかなり改善された方だとは思う

という状況でした。さすがに始めたばかりなので完全に改善できた訳ではないですが、今までの生活と比べるとかなり真っ当寄りに近づいてきたように思われます。

今まではめちゃくちゃな状態でもギリギリ持ち前の若さで耐えてきた(耐えられてない時もある)という感じでなんとかやってこれていたけれどそろそろ若いと言えない年齢でもなくなってくるので引き続き改善をして真っ当な生活を作っていきたいです……。

また、睡眠の質に直接結びついた話ではないですが、生活ルーティンをしっかり決めると余暇の時間のコントロールができて生産活動の時間を取りやすくなったように思います。

あとはコーヒーの美味しさに気付くことができたのが嬉しい。京都にまた行く機会があったら珈琲屋巡りをしたくなっています。

週末になると異様に眠気が降ってきて5時間以上寝てしまう問題への対策を考えた

桐生あんずです。

5月に入ってから特にそうなのだけれど土日になるとめちゃくちゃ眠くなって日中も5時間以上ずっと寝続ける日が増えてしまった。

新しい環境に入ったことで身体の疲労が溜まっているのかもしれないと考えて平日に無理やり9時間ぐらい寝て疲労を解消しようとしたのだけれど、一向に改善の余地が見られないので睡眠の勉強をちゃんとしてみようと思い「スタンフォード式 最高の睡眠」を読んでみた。

 

スタンフォード式 最高の睡眠

スタンフォード式 最高の睡眠

 

 

 

この本を読んだ結果、以下のようなことがざっくりと分かってきた。

  • 睡眠負債(睡眠不足が借金のように積み重なってあらゆる不調を引き起こす状態)」が溜まっていて長時間の昼寝をして無理やり返そうとしているが実際は返せていない
  • 累積した睡眠負債を返済するには相応な時間がかかるので週末の寝溜めだけで睡眠負債を返すことは現実的に不可能
  • 上記の話のように、睡眠の量を意識しても睡眠負債を効率的に返すことはできないので睡眠の質を上げることが必要
  • 質を上げるには、黄金の90分と呼ばれる最初の90分の睡眠を深くするだけで大きく改善される

 

この情報を元に考えると今の状態はかなり良くなさそうである。とりあえず今の状況を打開するためには「夜の睡眠の質を上げること」と「日中寝ないように気をつけること」を意識しながら、本に書かれているアドバイスを元に具体的な行動ルーティンを作って徐々に改善させていくしかなさそうだと感じた。

 

夜の睡眠の質を上げるためにやるべきこと

箇条書きだが以下の通りになりそう。

  • 就寝90分前に湯船に浸かって深部体温を大きく上げる。その後深部体温を下げていって布団に入るルーティンを作る。
  • 寝る前には脳を興奮させるような行動はしないように気をつける。寝る前に本を読んだりYoutubeでゆるい動画を見たりすると良いのかもしれない
  • どうしても寝れなかったら少量のお酒を飲んですぐに布団に入る(少量なら安眠効果がもたらされて良いらしい)

 

日中寝ないようにやるべきこと

  • 8時前には起きて光を浴びてサーカディアンリズムをちゃんと作る。
  • 起きてからすぐに朝食をちゃんと摂る。味噌汁など暖かいものを摂取して身体の体温を上げる。
  • コーヒーや紅茶を飲んでカフェインを一定量摂る。チョコを食べるのでも良さそう
  • ガムを噛む(噛んで脳を活性化させる)
  • どうしても眠くなったら人と話したり文章を書いて頭をできるだけ覚醒させる

 

言語化してみるとシンプルな話が多いのだけれど、大まかに言えば体温調整を意識すること、光を浴びるタイミングや食事によって噛む回数を増やしたり一定量のカフェインやアルコールを摂取して眠気をコントロールするだけでもかなり変わるように思われる。

元々今まで睡眠に対して意識したことがなかったのだけれど、仕事が始まってから明らかに睡眠に対しての問題を抱えている気がするので出来るだけ改善していきたい……。

睡眠改善の第一歩として普段の朝食と一緒にコーヒーとチョコを摂取しました。夜は寝る時間に合わせてゆっくり湯船に浸かって体温を上げてみたいと思います。

実家の犬

桐生あんずです。

実家に戻ってきたことで6年ぶりに実家の犬(トイプードル・11才)と毎日一緒に生活を送ることになったのだけれど以下のような出来事がここ2ヶ月くらいの中であった。

 

 

 

 

 

 

 実家の犬、基本的に素行は良くない方で人から褒められないと主食のドッグフードを食べようとしなかったり、突然吠え出したり、すぐに人を噛んできたりするのだけれど、人間でいえば3歳児くらいの愛嬌とずる賢さがあって憎めない存在になっている。

素行の悪さに関しても人間が甘やかしてちゃんと躾をしなかったのが根本的な原因だし、自分も甘やかされて世間を知らないまま育ってきてしまった自覚があるので哀しい仲間意識のようなものが芽生えている面もある。

 

出会った時の話をふと思い出したので書いておく。実家の犬を飼い出したのは中学2年生の頃だった。

親が突然「犬を飼おう!!!」と言い出してペットショップに行ったら小さい赤茶色のトイプードル4頭と一緒にやけにサイズが大きいアプリコット色のトイプードルがいた。

小さいトイプードル達より2~3万円ほど値下げされていて「小さい犬達はすぐに飼われていきそうだけれど、この少し大きい犬はこのまま売れ残ってしまうんじゃないか」と思ったのと他の犬達よりも色もサイズも違って存在感があって印象的だったのでその犬を実家に迎え入れることにしたのだった。

 

そこから気付いたら11年も経っていて、最初家に来た頃は2~3キロぐらいだったのに8キロの巨大なトイプードルになってしまった。

11才という年齢を考えるともうかなりおじいさん犬ではあるので、元気な姿を見られるのはあと何年くらいだろうかと考えることも増えてしまったのだけれど、居なくなったらきっと寂しいので出来るだけ長生きしてほしいと思っている。

 

湿っぽい話をちょっと書いてしまったけれど、今の所は大変元気なので楽しく一緒に過ごしていきたい。でも夕会の時になると異様に鳴きまくるのは少し恥ずかしいので自重してほしい。(メンターの方々に犬の声に気付かれて「今2回鳴きましたね〜」という会話が発生していたりする)

谷山浩子を毎日のように聞いている

桐生あんずです。

大昔から家にあるipod touchTSUTAYAで借りてきた谷山浩子のアルバム曲を入れたことがあったのだけれど、いつの間にか母親がそのipod touchを使うようになりリビングにある古めのスピーカーで連携させて谷山浩子の曲を流すようになった。

ipod touchに曲を新しく入れる方法を母親は知らないので、延々と谷山浩子の曲を流すようになっている。

 

谷山浩子に関する大学時代の思い出 

谷山浩子に関しては大学二回生の頃にやくしまるえつこがカバーしている「恋するニワトリ」を聞いて大ハマりした流れから原曲を辿ったことがきっかけで知った。

そこからしばらくしてTSUTAYAで「白と黒」と「HIROKO TANIYAMA '80s」のアルバム二つを借りて谷山浩子の世界観に浸かることになったのだった。

ねこの森には帰れない」「カントリーガール」「まっくら森の歌」「てんぷら★さんらいず」「意味なしアリス」辺りのメジャーな曲に特にハマるようになり、一瞬だけ下宿先にあったストラトエレキギターでネットでコードを見て弾き語りをしてみるなどの思い出もある。

その時期に京都公演ツアーがあって友達に誘われて生の本人を見たこともある。

調べてみたら当時のツイートがあったので掲載。

この時には行ったばかりということもあってポジティブな感想を述べているのだけれど、裏を返せば「意味なしアリス」と「まっくら森の歌」以外は知らない曲がメインで、リクエスト形式のコンサートだったこともあり谷山浩子のガチオタク達が「いかに大衆からは知られてなさそうなニッチな曲を言えるかどうか」選手権と化しており、かなり凄まじい場になっていた。

 

それからもぽつぽつと谷山浩子の曲を聞いていたけれど、社会人になって実家に戻ってからは最初の話通り毎日のようにリビングで流れてくるので聞く頻度はかなり上がっている。

 

谷山浩子と現在

毎日のように聞くようになってから、今まで聞いたことのあるアルバム以外の曲を聞いてみようと思い、デビュー40周年記念コンサートのCD音源をiTunesから購入した。

music.apple.com

このアルバムではコンサートの生歌が収録されていて、今まで聞いてきたアルバムの曲も多く収録されているのだけれどほんのちょっぴり違ったテイストに仕上がっていて別の曲として楽しめる良さがある。(谷山浩子の曲、様々なアルバムで既存曲をリメイクして別の音源として録り直していることがよくあるので好きな曲を様々なバージョンで聞くという楽しみが存在する)

 

また、デビュー時から今までの思い出を振り返るトークも収録されており、それが谷山浩子の背景を知る上でかなりよかった。

トークの中では、「この頃はメルヘン歌手というジャンルが存在しなくて珍しがられました。音楽評論家の人に記事で『いいとは思うけど、このままだとメルヘンババアになるよ』って言われてました。それで、この通りメルヘンババアになりました!」と語っていたり、

「若くなくなることが怖いんじゃなくて、年をとるにつれて年齢にふさわしい自分をプロデュースできるんだろうか?そういうのできないんじゃないか?どうしよう?と怖くなっていた。でもそうして30年、40年経ったけど変わらないまま過ごせました。(中略)どういう年をとっていくか分からない人がいると思うんですけど、そのまま年とります。」と、加齢していく自分の立ち振舞いを考えることはありつつも、自分らしさを追求して保ったまま生きてきた人なんだなあということがすごく伝わってきた。

 

谷山浩子の曲調は確かにメルヘンチックなところもあるのだけれど、失恋や叶わない恋についてよく歌っていたり、「行ったらもう帰れない/帰らない」という言葉をやけに強調している曲が多く、切なさを強く感じるのが魅力的であるように思う。

 

そもそも、自分が元々音楽に興味を強く持ったのがSound Horizonからで物語要素の強い音楽に対しては実家のような安心感を覚えてしまうことも谷山浩子の曲に惹かれてしまう理由の一つのような気がするのだけれど、そこを掘り下げると話が長くなりそうなのでここで締めます。

 

コロナが収束していれば2年後には50周年ライブをやってくれるはずなのでも変わらずに健やかに過ごしていて欲しいです。近況を追ってみるとTwitterどうぶつの森を実況し続けていて元気そうでよかった。

 

MySQLでSQL文を書く時に末尾に\Gを付けるとちょっと見やすくなる

桐生あんずです。

研修でSQLをちょろっと書くときがあったのだけれど、そのときに先輩社員の方から「SQL文の末尾に\Gを付けると縦に表示されてちょっと見やすくなりますよ」という知見を教えてもらったのでメモ。初めて知りました。

比較

SQL文の末尾に\Gなし

mysql> SELECT * FROM rules WHERE id = 1;
+----+-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------+
| id | title | description | created_at | updated_at |
+----+-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------+
| 1 | 毎日フィットボクシングを30分やる | リモート続きで不健康になっているので家で運動しようと思い購入して意外と長続きしています | 2020-05-01 03:53:09.882505 | 2020-05-01 05:22:53.956537 |
+----+-------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------+
1 row in set (0.00 sec)

SQL文の末尾に\Gあり

mysql> SELECT * FROM rules WHERE id = 1 \G;
*************************** 1. row ***************************
         id: 1
      title: 毎日フィットボクシングを30分やる
description: リモート続きで不健康になっているので家で運動しようと思い購入して意外と長続きしています
 created_at: 2020-05-01 03:53:09.882505
 updated_at: 2020-05-01 05:22:53.956537
1 row in set (0.00 sec)

便利〜。

追記

\G;の代わりなので末尾に;を付けなくても動作するとのことです。セミコロンのことを気にしなくても大丈夫なのもありがたいですね。

意図に沿ったHTML要素でマークアップすることの重要性(アクセシビリティ)を考える

桐生あんずです。 ここ最近は新卒研修のカリキュラムとしてオリジナルのWebサービスRailsとAngularを使って開発していて、社内の人たちから毎日コードレビューを受けています。その中で、以下のようなやりとりがあって興味深かったので学んだことを書き残しておきます。

経緯(書いたコードと指摘の内容)

最初、以下のように<a>タグでAngularのRouterModuleで用意されているrouterLink属性を利用して画面遷移のリンクを用意するコードを書いたのだけれど、

<a routerLink="/rules/{{ rule.id }}">詳細を見る</a>

<button>タグのブラウザのCSSを使い回したくなったのと、この後の記述に<button>タグで用意した削除の処理のボタンをマークアップしていたのでどちらも<button>タグで書いた方がすっきりするのでは?と思いつき、以下のように書き換えたのだった。

<button class="a-rule-show__button" routerLink="/rules/{{ rule.id }}">詳細を見る</buttton>

このコードをプルリクで出したところ、以下のようなレビューコメントをいただき「なぜそうしてはいけないのか」について考えてみることになった。

「いきなり結論から書きますが、特別な理由がない限り、リンクナビゲーションを <a>タグ以外で実装することは避けるべきです。 なぜなのかは、いったん自分で調べて考えてみてください。ちょっと難しいので考えても浮かびそうになければslackで聞いてください!」

そして色々調べて考えてみたところ、以下のような理由でこの記述はアンチパターンに当たることが改めて理解できたので紹介します。

セマンティクスに沿ったマークアップ設計はアクセシビリティを向上させる

HTMLで用意されている標準のタグ(<h1>, <nav>, <li>など)はそれぞれ意味が定義付けられており、今回使用した<button>タグならば「クリック操作を受け付ける」という意味を持っている。そして、<a>タグはナビゲーション、つまりリンクの行き先を示す時に使われる。

developer.mozilla.org

このように「○○は〜を表すものである」という考え方は セマンティクス(意味論) と呼ばれており、コードの断片に対して役割・意味を位置付けをするものである。

developer.mozilla.org

その考え方にしたがってブラウザの中で標準用意されたCSSはHTMLタグに対してそれぞれ文字のサイズや幅などのプロパティをセットしており、HTMLタグをマークアップするだけでユーザーがある程度想定している画面を用意してくれる。

ただ、標準のCSSをリセットしたり上書きをしてしまえばその見た目を打ち消すことは容易である。

(当たり前だけれど、多くのサービスのUI/UXは標準のCSSを打ち消してクラスを追加して綺麗なUI/UXを用意している)

そのようにCSSを打ち消した上でもHTMLタグを意味通りに使うことを正しく求められるのは、アクセシビリティに優れたページを作り上げる必要があることが一つの理由であると言える。 アクセシビリティについてはMDNの「アクセシビリティとは?」の記事の中で以下のように定義されている。

アクセシビリティというのはあなたのウェブサイトを可能な限り多くの人に利用してもらうようにすることです。かつては我々はアクセシビリティのことをハンディキャップを持つ人々のためのものだと考えていましたが、現在はモバイルデバイスや遅いネットワークを利用している人々のためのものでもあると考えられています。

ここで自分のコードに立ち戻る。

<button>タグを使ってナビゲーションを用意しているが、もし読み上げ機能でHTMLのサイトを巡回している視覚障害者の方がいたと仮定する。

その場合、<button>タグを読み上げられても「クリック操作を受け付ける」ということしかわからず、「ナビゲーションリンクがある」という発想にたどり着くことまでに時間がかかってしまうことが予期される。

このシチュエーションはアクセシビリティが悪いという状態に陥っていると形容できる。この状況を改善するためには、本来「ナビゲーションリンクがある」という意味を持った<a>タグに置き換えることが求められるのである。

この具体例は断片に過ぎないので詳しくはMDNのアクセシビリティ関連の記事を読むのがお勧めです。

developer.mozilla.org

developer.mozilla.org

まとめ

一言で説明すると「使い方が定義付けられているHTMLタグをその意図に沿わずにマークアップを行うとアクセシビリティが低いサイトが出来てしまうのでやめましょう」ということなんだけれど、この結論に至るまでにはアクセシビリティとは何かについてまず考える必要がある。

その理解を深める中で、MDNの記事内で事細かになぜアクセシビリティを重視すべきかということが解説されていてWeb開発をやる上で一読しておくとすごく為になると思った。

そして、「正しいマークアップを行うだけでハンデを抱えた人が情報をインプットできる」という世界観があるのは結構すごい話だなと思っていて、これもWebの力だなあとエモい気持ちを感じた始めたところでそろそろ締めます。

補足

正しいマークアップを意識することはアクセシビリティを考える以外でも必要な理由があるので、補足説明としてそれらについても羅列しておきます。

MDNの「HTML: アクセシビリティの基礎」から引用

  • より開発しやすい——上述のとおり、ある種の機能がただで手に入りますし、それに、より理解しやすいという点はまず間違いないところです。
  • モバイル機器に関して、より優れている——意味的な HTML は非意味的なスパゲッティ・コードよりも、ファイルサイズの点でほぼ間違いなく軽量ですし、レスポンシブにするのも簡単です。
  • SEO に関しても良好である——検索エンジンは、非意味的な
    などに含まれるキーワードよりも、見出しやリンクなどの中のキーワードの方に重みを持たせているので、ドキュメントが顧客に見つけてもらいやすくなるでしょう。