Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

昇降式デスクはいつ昇降するのか?

僕はかれこれ2年半近く使ってきて、日常的に昇降させています。

しかし、ちまたでは「昇降式デスクを買ったけど、昇降させることなんかないよ〜」という話をよく聞きます。そのため 「いつ昇降させるんだ?」と思う人はけっこう居ると思います。 今回は、いつデスクを昇降させるのか、ユースケースを紹介します。

1. 腰が痛いとき

このデスクを買った最大の目的です。腰が痛い時に上げて立って仕事してます。 一番オーソドックスですね。最近は座りっぱなしでもそこまで腰が痛くないのであまりやってませんが。

2. デスク下の配線をいじるとき

僕は配線を机下に全部収めてるので、配線を変えるには机の下に潜り込む必要があります。 このとき、デスクを一番上まで上げておくと作業がやりやすいです。頻度は高くないですが、いざやるときやはり便利です。

3. 掃除するとき

椅子に背もたれがあるので普段はデスクの下に完全に椅子を格納できませんが、デスクを一番上まで上げれば、机の下に背もたれごと椅子を入れられます。 ルンバをかける前とかによくやってます。

番外編: 昇降機能 = 高さ調節機能

そもそも、デスクをちょっと高く/低くしたくなることはたまにあります。

  • 椅子を変えたとき
  • キーボードを新調したとき
  • エアロバイクを椅子がわりにしたいとき

こういうとき、高さ調節機能として昇降機能が使えます。 これは案外見落としている人が多そうですね。

まとめ

このように、腰が痛いとき以外にも昇降機能は用途があります。昇降機能がつくと価格が高くなるので自分の用途と照らし合わせる必要はありますが、僕は買って良かったと思ってます。

日報をすぐ書く技術 ver.2

NVIM_APPNAME を使えばかなり快適にいけるんじゃないか? と気付いたので書き直し。ver.1はこちら

この方針だと、日報を書くときにだけ使う設定が足せる。プラグインを入れたり、カラースキームを変更するのが簡単。

手順

  1. ディレクトリを作る (mkdir ~/.config/nvim-memo)
  2. 各ファイルのシンボリックリンクを作る (ln -sf ~/.config/nvim/lua ~/.config/nvim-memo/lua)
  3. init.lua を書く
  4. エイリアスを設定する (alias memo="NVIM_APPNAME=nvim-memo nvim")

init.lua はこんな感じ。先頭の方は通常時のinit.luaとだいたい同じ。後半に日報ファイルの生成処理とかが追加されている。

---@diagnostic disable-next-line: undefined-global
if vim.loader then vim.loader.enable() end

-- 通常のinit.luaと同様の設定を読み込み
require('options')
require('disable-providers')
require('keymappings')
require('install-lazynvim')
require('userautoload.indent')
require('userautoload.filetype')

require 'lazy'.setup('plugins', {
  change_detection = { notify = false },
})

-- ====================
-- ↓ 以下が日報用の設定

local function get_weekdays()
  local today = os.date('*t') -- 今日の日付を取得
  local month = today.month   -- 現在の月
  local year = today.year     -- 現在の年

  local res = {}
  for i = 1, 31 do
    local d = os.time({ year = year, month = month, day = i, hour = 0, min = 0, sec = 0 })
    local d_table = os.date('*t', d) -- 日付をテーブル形式に変換

    -- 月が変わった場合はループを終了
    if d_table.month ~= month then break end

    -- 週末の場合はスキップ
    if d_table.wday == 1 or d_table.wday == 7 then
      goto continue
    end

    -- 結果をフォーマットしてリストに追加
    table.insert(res, string.format('# %d/%d/%d(%s)',
      d_table.year, d_table.month, d_table.day,
      ({ '日', '月', '火', '水', '木', '金', '土' })[d_table.wday]))

    ::continue::
  end

  -- 結果を逆順に並べ替え
  local result = {}
  for i = #res, 1, -1 do
    table.insert(result, res[i])
  end

  return table.concat(result, '\n') -- 結果を結合して返す
end

local dir = os.getenv('HOME') .. os.date('/Documents/daily-report/%Y')
local filename = os.date('%m.md')
local filepath = dir .. '/' .. filename

-- 今月の日報ファイルが存在しなければ作成する
os.execute('mkdir -p ' .. dir)
local file = io.open(filepath, 'r')
if file then
  file:close()
else
  file = io.open(filepath, 'w')
  if file then
    file:write(get_weekdays())
    file:close()
  end
end

-- 日報ファイルを開く
vim.cmd('e ' .. dir .. '/' .. filename)

-- 今日の日付の行にnマークをつける
local date_table = os.date('*t')
vim.fn.search(string.format('%d/%d/%d(', date_table.year, date_table.month, date_table.day))
vim.cmd [[normal mn]]

-- 昨日の日付の行にyマークをつける
if vim.fn.search(string.format('%d/%d', date_table.year, date_table.month), 'W') ~= 0 then
  vim.cmd [[normal my]]
end

-- 今日の日付の位置にジャンプ
vim.cmd [[normal `n]]

Apple watchが意外と便利

物欲に負けてApple watchを購入してみた。

思ってたより便利そう(だけど恩恵をフルで受けられていない)。

最大の利点: mac のロック解除機能がすこぶる便利そう

Apple watchは、macのロックを解除する機能がある *1。これがすこぶる便利そう。

というのも、クラムシェルモードでmacを使っていると、パスワードを手動で入力する必要があるのだが(touch idが使えないから)、apple watchがあれば操作なしでmacのロックを解除できる。これはなかなか便利。クラムシェルモードで使っている人はこのためだけに買っても良いだろう。

…ただ、僕はクラムシェルモードで使ってないのであまり恩恵がない。普通にtouch idで解除したほうが早い。悲しい。

ほかの利点: バンドがつけやすくて蒸れない

ほかの利点として、バンドが使いやすいというのがある。伸縮性があり通気性もいい ので、長時間つけてても不快にならない。また、バックルがなくてバンドも薄くて柔らかいので、PC作業時などに外す必要もない。革ベルトや金属ベルトの時計だとどうしても作業の邪魔になりやすいので、これは地味に大きい。

まあ、革ベルトとかと比べると流石に見劣りする。そこは利便性とのトレードオフ。使い分けるのが良さそう。

バッテリーは思ってたよりもつ

実は結構前からほしかったんだけど、「バッテリーが丸1日ももたないのがなぁ…」というのがネックでずっと購入を見送っていた。けど、いざ買ってみるとそこまで気にならない。iPhoneとだいたい容量が同じなので、iPhoneを充電するタイミングで一緒にセットするみたいなルーティンになりつつある。

あと、急速充電ができるので1日1回程度で済んでるのもあり、今のところそこまで負担に感じてない。シャワー浴びてるあいだに充電終わってるくらいなのが有り難い。

felica は思ってたほど便利じゃない

まだ慣れてないのもあるが、felicaを反応させるのに結構苦戦する。 思ってたよりスムーズに支払いできない。これは慣れていけば解消されるのだろうか?

バンドが柔らかくてくるっと回して時計を手首側に移動させられるので、これを利用すれば良い感じになるのかな?まだわからん

まとめ: まあまあ

時計にしては高めだし 、言うほど便利ってわけじゃなかった。まあでも物欲を満たせたのでヨシ!

*1:同一Appleアカウントでログインしてる必要があるなど制約あり

電子ペーパーで卓上カレンダーをつくる

完成品

こんな感じのものができる。予定はgoogleカレンダーから引っ張ってきている。

完成品

8時間おきに画面を更新している。裏にraspberry piがついていて、これで画面表示を制御している。

ハンダ付けすらしてないので、電子工作といえるかはかなり微妙かも(ケーブル繋いでピン刺しただけ)

用意するもの

あわせると15000円程度で揃えられる (ACアダプターやケーブルは家に余ってると思うのでノーカン)。

ソケット同士を差し込んだりする作業しかないので、ハンダごてすら要らない。

電子ペーパーディスプレイの選び方

電子ペーパーのみ選ぶとき注意が必要なので解説する。

今回購入したのはコレ↓。よく分からなければとりあえずコレでよい。

(公式サイトより画像引用 )

7.5inch E-Paper E-Ink Display HAT (B) For Raspberry Pi, 800×480, Red / Black / White, SPI

選ぶときの主な観点は2つ。

  • 画面サイズと解像度 (インチ数が同じでも解像度が異なるパターンがある)
  • いくつ色がつかえるか
    • 赤や黄色など、他の色も使えるか?
    • 白と黒の2色のみか? 灰色も使えるか?

サイズと色を決めたら、ドキュメント もチェックしておく。 ドキュメントにpythonのデモが入っているものを選ぶとよい。 C言語しかデモがないと大変だと思うので。

カレンダーの作成手順

全体の手順はこちら。各手順の詳細は後半に記載。

  1. raspberry piのセットアップをする
  2. 電子ペーパーとraspberry piを接続する
  3. デモプログラムを実行して動作確認をする
  4. カレンダープログラムを書く

1. raspberry piのセットアップをする

ここでは簡単な流れだけ書く。もっと詳しい記事やドキュメントが大量にあるので、わからなければ他の記事をあたってほしい。

  1. Raspberry Pi Imager をダウンロードしてインストールする
  2. Imagerでwifiやsshの設定をする
  3. Imagerを使ってmicroSDカードにOSを書き込む (色々あるがLite版でよい)
  4. raspberry piにmicroSDカードを入れて電源を接続する
  5. raspberry piが自動的に立ち上がる

起動が完了すると ssh [設定したユーザー名]@raspberrypi.local で接続ができるはず。できない場合はwifiの設定などが間違えている可能性がある。

2. 電子ペーパーとraspberry piを接続する

まず、ドライバーHAT(小さい青いパーツ)の黒い部分を立てる。これがロックになっている。 ロックを外したらディスプレイのオレンジの端子を挿入する。 ロックしたままだとかなり力を入れないと入らない。

小さい青いパーツと電子ペーパーを接続した様子

ドライバーHAT(青い部品)とraspberry piの接続は簡単だ。GPIOピンを差し込めば良い。 結構深く刺さって固定されたら完了。

GPIOピンで接続されている様子

3. デモプログラムを実行して動作確認をする

必要な各種ライブラリをインストールし、デモプログラムを動かしてみる。うまくいくとこのような画面になる。

デモプログラムが動くとこのようになる

注意として、インチ数、解像度、色が合致しているデモプログラムを選ばないと動かない。 デモプログラムのファイル名にはインチ数しか書いてないので、ドキュメントに記載されているデモファイル名をチェックしよう。

4. カレンダープログラムを書く

あとはカレンダープログラムを書けば完成だ。 カレンダープログラムはデモプログラムをもとに改造すれば自ずと書けるはず。 なので解説は省く。各々でデザインしよう。

僕が作ったものはこんな感じ。このリポジトリをクローンしてセットアップしたらすぐ動かせる。

github.com

仕様はこんな感じ

  • googleカレンダーから自分のカレンダーのicsファイルをダウンロード
  • googleカレンダーから祝日のicsファイルをダウンロード
  • カレンダー画像を生成

そんなに難しいことはしてない。pillowというpythonライブラリで画像を作って、作った画像をディスプレイに送って表示している。

まとめ

今回 トータルで15,930円かかった (家にあったものを除く)。しかし、毎年ロールカレンダーを買っていた手間が無くなると考えれば 十二分すぎるほど安上がりだ。 個人的には大満足である。