Panda Noir

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

HTML+CSSで画面を90度回転させたい

要はtransform: rotate(90deg)すればいいんですが、単にこれをやると高さと幅が異なったり、余計な余白ができます。それを回避するために、width: 100vhheight: 100vw を設定して中央寄せしてやります。すると横画面フルスクリーンを疑似的に再現できます。

以下コード

<div id="rotated">
  <h1>90度回転したコンテンツ</h1>
  <p>このコンテンツは90度回転しています。</p>
</div>
html, body {
  margin: 0;
  padding: 0;
  overflow: hidden;
  width: 100vw;
  height: 100vh;
  /* ↓#rotatedを中央寄せする */
  display: flex;
  justify-content: center;
  align-items: center;
}

#rotated {
  /* ↓ここのwidthとheightの設定がポイント*/
  min-width: 100vh;
  min-height: 100vw;
  transform: rotate(90deg);
  transform-origin: center center;
}

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

僕はかれこれ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アカウントでログインしてる必要があるなど制約あり