ちなみに

火曜日の空は僕を押しつぶした。

久しぶりにランニングを再開した

最近睡眠が破滅していて、寝付きは良いのだけれど夜中に何度も目覚めてしまう。 それでも元気なんだったらいいのだけれど、全然大丈夫じゃなくて睡眠不足状態が続いていて生活もままならなくなっている。 具体的には家事をする元気がなくて、仕事終わったらすぐ寝てしまったりして家が荒れている。

どうにかしないといけないということで、別件でかかりつけの医師に相談したところ睡眠導入剤を処方してもらった。 長期間は眠れないけど、眠り始めの質を高めて睡眠時間が少なくてもなんとかなるようにする作戦。 しかし、結果としては全然効いてなくて、効果が全く感じられなかった。

原因として考えられるのはコロナ禍になって在宅勤務が続いて運動不足で太陽にもあたってないからというのがある。 こうなったらあとは運動だということで妻にも勧められたのでランニングを再開することにした。

久しぶりすぎるのでめちゃくちゃペースを落としてゆっくりと20分かけて3kmを走った。 これでもめちゃくちゃ疲れたのでやっぱり体力が地に落ちている。

しかし前回走ったときは初回がんばり過ぎて吐いてしまったので大人になった。

走ったあとはなんか頭もすっきりして良い感じだったのだけれど、そのあと疲れてぐったりしてしまって結局日曜日は溶けてしまった。 これだといつもよりひどい日曜日だ。

けどきっと睡眠は改善されるはず。さてさて。。。

f:id:Sixeight:20210614091506j:plain

うーん、ひとまず続けてみてどう変わるかを確認しよう。

久しぶりに Gem を作った

github.com

リハビリも兼ねてちょっと欲しかった Gem を作ってみました。

作り始める前に調べていたつもりだったのだけれど モロかぶりしているGem がすでに存在して名前もまったく一緒だったので諦めて simple みたいな無意味な名前になってしまった。

やりたかったことは Rails のアクションにアノテートしておいて一律でチェック出来るようにするという感じのこと。

class HogeController < ApplicationController
  include SimpleAnnotation::Annotatable

  def index
  end

  annotates :premium
  def show
    # 課金ユーザーだけ見られる何か
  end
end

こういう感じで書いておいてフィルターなどでチェックする想定です。 #annotate ってメソッド名に出来なかったのは ActiveRecord::QueryMethods#annotate があるから。

class PremiumFilter
  def self.filter(controller, current_user)
    action = controller.action_name
    return unless controller.class.annotated?(action, with: :premium)

    controller.redirect_to plans_path unless current_user.premium?
  end
end

class ApplicationController
  before_action -> { PremiumFilter.filter(self, current_user) }
end

こんなことしなくても実現は出来そう。

まあ、メタプログラミング完全に忘れていていたのでいい復習になりました。

新しいdocker composeで特定サービスのコンテナIDを得る

docker-composeで特定サービスのコンテナIDを得たいことがある。例えば docker attach したいときとか。

これまでなら以下のように書くと web サービスだけのIDが取得できた。

$ docker-compose ps -q web

しかし、新しい Docker Compose CLI では ps サブコマンドでサービスの絞り込みが出来ないのでちょっと工夫が必要。

$ docker compose ps --format json | jq -r '.[] | select(.Service == "web") | .ID'

突然 jq が出てきてちょっとびっくりしそう。もっと良い方法があればいいのだけれど。


$ docker-compose ps --help
List containers.

Usage: ps [options] [--] [SERVICE...]

Options:
    -q, --quiet          Only display IDs
    --services           Display services
    --filter KEY=VAL     Filter services by a property
    -a, --all            Show all stopped containers (including those created by the run command)
$ docker compose ps --help

Usage:  docker compose ps

List containers

Options:
  -a, --all             Show all stopped containers (including those created by the run command)
      --format string   Format the output. Values: [pretty | json]. (default "pretty")
  -q, --quiet           Only display IDs
      --services        Display services

M0ii0 を組み立てた

f:id:Sixeight:20210530160828j:plain

yohewi さんによる30%キーボード M0ii0 が届いたので組み立てました。予定だと6月30日発送だったのでだいぶ速い。ありがたやー。

ソケットとリセットスイッチをはんだ付けするだけなので簡単。今回は先週のキーボードニュースで取り上げられていた MMK Frog を使ったのでルブもなし。

最初はけっこう軽い音がするなあと思ったもののプレートにフォームを入れてみたらだいぶ良い感じになりました。

かわいいのが嬉しくてこだわって写真撮ってみたら #KEEB_PD で優勝してしまってめっちゃ嬉しい。

問題は常用するにはキー数が少なすぎることですね。

この記事は M0ii0 で書きました。

Acperience12 を作った

booth.pm

キーボード沼にはまってすぐくらいに右も左も分からずにGBにinしていたかっこいいマクロパッド Acperience12 が届いたので組み立てました。 予定より大幅に早く届いてありがたすぎます。

yynmt.hatenablog.com

詳しい解説は設計者の id:yynmt さんのブログにて。僕が分かることはかっこいいということだけです。

表面実装は高校以来で久しぶりだったのですが、あんまりブランクを感じさせないような感じでうまくやれました。 体が覚えているというやつでしょうか。

uni ポスカを使用して各PCBの側面を塗装します。 PCB側面の塗装にはuni ポスカがもっとも適しています。 この作業を怠るとマクロパッドとしての性能を十分に発揮できなくなるため注意してください。

ビルドガイド にはPCBのサイドを塗装しないと機能を十分発揮出来ないと書かれているのでがんばって塗っていきました。 しかし不器用すぎてうまく塗れなくて指が真っ黒に。。。

一番最初に買ってうるさすぎて使わなくなった Kailh BOX スイッチ の白をのっけてみました。 マクロパッドだったら押すごとに音のフィードバックがあっても良い感じ。

キーキャップどうするかが非常に悩ましいですね。やっぱり黒がかっこいいけどそれだと洋服のマネキン買いみたいになるし。うーん。

完成です。このままお気に入りのキーボードが並ぶ棚に飾ってもいいでしょう。しかしその前に必ず、かっこよく仕上がったAcperience12の写真を撮影してください。そしてSNSで自慢してください。この手順を省略することはできません。必ず行ってください。

キーキャップが決まらずに写真を撮れてないのでまだ完成ではありません。早く完成させたい。

make.dmm.com

ケースも注文したので届くのが楽しみです!

この記事は The Mark: 65D60 の疑似セパレートで書きました。

その後

完成した

ミュートにし忘れていることに気付くために

f:id:Sixeight:20210516190122p:plain

blog.nishimu.land

以前、Discordのマイクがオンになっていることに気付けるようにしたのですが、Zoomはマイク状態をデフォルトではメニューバーに出せないのでなんとかしないとなと思っていました。しかし、なんとかしたところで今後同じような通話アプリが出てきたときに同様の問題が起きてしまいます。

そんなとき以下のアプリを見つけました。アプリ毎じゃなくてグローバルでマイクのオンオフをホットキーで制御することが出来ます。

MuteKey

MuteKey

  • Dave Cheng
  • ユーティリティ
  • 無料
apps.apple.com

もちろんメニューバーにマイクの状態が表示されるのでBartendarでマイクが入っているときだけ表示することも可能です。

git open

f:id:Sixeight:20210510183234p:plain

いま見ているリポジトリのブランチをGitHub上で見たいときがあります。

最近だと GitHub CLI を使うのが便利なので使っているのですが、毎回 gh repo view -w みたいに書くのも面倒なので以下のような alias を設定して使っています。

open = !gh repo view -w -b $(git symbolic-ref --short HEAD)

これで git open と打つとみているブランチが GitHub で表示されます。

昔はこういう場合に gho みたいなシェルのaliasを切ったりしていましたが、だんだん頭が劣化してきて覚えられなくなってきたので、基本は省略せずに入力するようにしています。 補完が効くので別に苦じゃない。