basyura's blog

あしたになったらほんきだす。

やる気の源泉を探して

やる気が壊滅的すぎて全方位的に何もやる気が起こらない状態が続いている。定期的に発生するわけだけど今回は長くて先が見えない。やる気度の低下がひどい。自分にとってのやる気とは何かと分析すると、○○をやりたいという欲求よりも一つ一つに取り組む集中力が無い事になのかもしれない。本を読む、動画を見る、Web から知識を得ようとする。などなど。数分で飽きる。達成感がない。仕事も飽きるのだけどだましだましやっている。仕事は一人ではないので誰かにアウトプットをお願いすることもあるし、誰かから求められることもあるので強制的にやっている(やらされている)感じ。

ある時から仕事において一つのゴールを目指して深く取り組んでアウトプットをすることが無くなった。管理職ではないもののポジションが変わったのもあって複数のゴールを目指さなくてはならず、目指している間も同時多発的にゴールが増える。表面的になぞりながらさばくことが増えていった。最初はしんどいなぁと思っていたのに最近はなんとなくやれている。やれている、がただ鈍くなっているだけで脳みそを使わないで瞬間瞬間の判断でやっちゃうことのしっぺ返しと感じている。

気分転換と思って連休にしてみたもののゴロゴロしててなんだこれ状態になっている。仕事は仕事でコレやっててもなぁというのがあり、キャリア的に10年は既に死んでいて何者でもない者になるってのがコレかと思わなくもない。年齢の要素もあるだろう。長年やってきて楽になるどころかひたすらしんどくなっている。引き受けず流していくのもありかもしれない。

自分がどういう状態にあることに満足するのか、充足感を得るのか、改めて考えないといけない時期なのかもしれない。 と垂れ流す。

Raindrop.io

はてなブックマークを長年使っているけれど、そろそろ別に乗り換えたいと思いつつコレといったものが無かった。はてなブックマークのテクノロジー系を RSS でウォッチしているものの、自分でブックマークすることはほぼ無くなった。気になるページは RSS リーダーにお気に入りをつけるか、別にメモで持っておくか、Instapaper に飛ばしとくようになってしまった。あちこちに散らばることになっていて常々不便だった。

たまたま見つけた Raindrop.io が割と良く、実質乗り換えが終わった (はてなブックマークからのインポートはしていない)。コレクション (カテゴリ)ごとにアイコンを付けられるのが地味に良く、用意されているアイコンの種類が多いのも良い。コレクションを横断するタグも付けられるが、アイコンは指定できない。

専用アプリケーションとブラウザの拡張機能が有り、OS やブラウザに縛られず使えるのも良い。

ブックマーク数でランキングみたいなと思ってしまうけど、そうなるとはてブみたいになっていきそうな気がしてしまう。ユーザーの機能追加リクエストなどを受け付ける feedbackBookmark Notes (IN PROGRESS)Ranking system (PLANNED) があるので、はてブ化されるのは時間の問題かもしれない。

現状はひとまず Raindrop に未整理でブックマークしておいて、後で読み返してコレクションやタグを付けるようにしている。長文等は Instapaper に飛ばした後に Kindle に転送して読むことも多かったので、ここをどうしようか考え中。Kindle で読んで良いと思っても、Instapaper のお気に入りには入れられるけど、そうなると散り散りのままなので悩ましい。

概ね満足しているけど、個人的に付けてほしい機能は vim キーバインディングライクな j, k 移動かな。

MX KEYS mini / MX ANYWHERE 3

購入

YouTube Premium に入って広告を見なくなった代わりにガジェット系チャンネルを見るようになり、そのまま広告の代わりになってしまってる。どのチャンネルも褒めるので購入してみたけど満足度は・・・・?

現在進行系でずっと愛用しているキーボードは Apple Wireless Keyboard。

Windows 端末でも keyhacautohotkey を組み合わせて愛用し続けている。もう何年になるか記憶にない程につかっているけど既に販売終了している。

さすがにそろそろ別のキーボードに乗り換えないとやばいだろと思って HHKB Type-S に手を出してみたものの深めのキーが合わない体になってしまっていることに気がつく。手が疲れて腱鞘炎一歩手前になる。腱鞘炎は他人事だと思っていたけど、こういうことかと今更ながら気が付かされた。浅めのキーに体が慣れてしまったことも一因と思う。HHKB Type-S で挫折したので、これはもう Apple Wireless Keyboard で行くしかないと何本か買いためているので、案外定年までいけるんじゃないかと思っていたりする。

Apple Wireless Keyboard の欠点は構造的にホコリが入りやすいことで、キーを押したときに違和感が出るようになる。掃除しようとキーを外すとプラスチックの劣化部がパキッと逝ってしまう。年数が経っているものはエアダスター等を使ってこまめにホコリやゴミを飛ばす方がよい。

MX KEYS mini

話を戻してガジェット系チャンネルに影響されて買った MX KEYS mini は概ねいいのだけど打鍵感が微妙。Youtube では深めでしっかり押し込んでる感覚があるという話だったけど、実際にはそうでもない。

比較対象によると思うけど、若干のフニャニャ感。もうちょっと返しがほしい。電気屋にいって実機を試してみた時は「まぁ、大丈夫かな」と思ったけど、立ってなんとなく打つのと座って目的を持って長時間打つのとでは全然違うので参考にならないなと改めて学習した。

Apple Wireless keyboard は絶妙なんだよなぁといういつものパターン。このエントリを書きながら肩凝って来た気がするし腱鞘炎も気になってき始めたので Apple Wireless Keyboard に戻す。長文を書くことも辛いことが分かってしまった。

そんな中でも MX KEYS mini がいいな思った点に接続先を 3 つまで変えられるところがある。端末毎に keyboard を持ってくるのも不毛だなとさすがに思い始めているので良かった。ただ、iPad につなぐと US 配列と認識されてしまうのが辛い。このキーボードに限らず純正以外の問題らしい (Apple のサイトで iPad Pro と同時に買った logicool のキーボードも US 配列になっちゃうけど)。iPad で使いたいケースは少ないけど、使いたいと思ったときに使えないのは辛い。繰り返しだけど打鍵感が微妙なので他の端末でも切り替えて使うかというとそうならなさそうなので、切り替えられる機能があったところで(略。

もう一つ付け足すと、Apple Wireless Keyboard に慣れているのもあって Command+Tab (Alt+Tab) が Option+Tab (Win+Tab) に誤爆しがち。これは Karabiner-Elements を使って回避中。

キーボード探し中に Satechi もなり気になったけど評価を見ると不具合が多そうなのでやめた。 そもそもキーが浅いから合わないだろうなとは思う。

MX ANYWHERE 3

これがまた・・・。MX KEYS mini と同様に 3 つまで接続先が変えられるところに惹かれて購入。マウスの "スピンがー" と Youtube ではどのチャンネルでも言ってるけど・・・そんなに良いか?と。そんなにスピンしたいのどういう時なんだろう・・・と。 アプリをインストールすればスクロールの負荷を変えられるけど、どう変えてもしっくりこない。ホイールの重さがそのまま負荷として腕に来る感じでこれまた腱鞘炎の危機を感じる(なったことないけど)。

僕はブラウザ、ノートアプリ (inkdrop) 、 Excel といったアプリケーションで vim のキーバインディングにしている。キーボード主体の操作をするのでマウスのスクロールが微妙でもなんとかなるのではあるけど、スクロールの使用頻度は高いので違和感があると集中できないので辛い。

いま使ってるのは Microsoft のマウス。

マウスは有線のころから Microsoft 製を使っている。昔は 1 万円超えてた気がするのだけど、最近は数千円で買える。マウスも logicool を含めて他に乗り換えようとチャレンジしたけど、他に乗り越えると腱鞘炎(特にスクロール)の危機や違和感が拭えないので Microsoft 製に何回も出戻っている。Microsoft 製でも薄いマウスは微妙で・・・適度に膨らみがある方が好ましい。

この Microsoft マウスの前は Arc Mouse を使ってた。

見た目も使い心地も良く、折り畳めるので重宝していたのだけどこの型は販売終了になってしまった。故障率が高かったんだろうと推測。折り畳めるギミックの影響かクリックやホイールの挙動がおかしくなることがあり、定期的買い換えることになる。安い方ではないがこれまた買いためていたけどストックがなくなった。復活を願う。

まとめ

Apple Wireless Keyboard と Microsoft Mouse の組み合わせで長年辛さを感じていないので、結局このままいきそうな気がしている。

最近読んだ記録

Docker + SQLServer + Azure Data Studio

はじまり

SQL をそろそろ真面目にやらないとレビューアとして成立しないなと重い腰を上げる。SQL 知識皆無ではないしパフォーマンス改善のための活動はしていたのだけど、詳しい人に頼りつつ回している状況だった。詳しい人が抜けてしまったので改めて。JOIN があると悩み始めるレベルで、凝ったクエリになるとウンコードといっしょじゃんと思ってしまい思考が停止してしまう。脳力が低いのでコードを書くときは理解しやすいよう気をつけてやってきたのに、このクエリときたら・・・となる。分解して考えれば分かるとは言われるものの、それはそうだけどもうちょっとなんとかならないのかなと思う。

Docker で SQLServer (mssql) を入れる

# イメージ取得
$ docker pull mcr.microsoft.com/mssql/server
# コンテナ起動
$ docker run --name mssql \
          -e "ACCEPT_EULA=Y" \
          -e "SA_PASSWORD=<strong password>" \
          -e "MSSQL_LCID=1041" \
          -e "MSSQL_COLLATION=Japanese_CI_AS" \
          -p 1433:1433 \
          -d mcr.microsoft.com/mssql/server
# コンテナに接続
$ docker exec -it <container_id|container_name> \
          /opt/mssql-tools/bin/sqlcmd \
          -S localhost \
          -U sa \
          -P <your_password>

パスワードポリシー に従って SA_PASSWORD を設定しないと起動しない (コンテナが起動してすぐ落ちる)。

既定で、パスワードは 8 文字以上の長さにする必要があり、次の 4 つのセットのうち 3 つから文字を含める必要があります。 大文字、小文字、10 進数、記号です。

これに気が付かずダメなのかと思って諦めかけた。

Azure Data Studio

業務では SSMS を使っているけど、構築環境が mac なので Azure Data Studio を使ってみる (SSMS は起動が遅いし、起動後も微妙に CPU を食うのが嫌)。

zip をダウンロードして展開するだけなので簡単。

接続設定

DB 作成

DB 作れた

見た目が VSCode と一緒だなと思ってバージョン情報を見ると、Electron、Chrome、 Node.js と書いてあるので一緒なんだろう。あまり触れてないけどやりたいことは十分できそうなので驚いた ( MS 網に包囲されまくっているのが日々嫌に思っているのだけど流石だなと認めざるをえない)

実行計画を表示

出し方が分からなくてさまよってしまった。

  • 「Command + Shift + P」でコマンドパレットを開く
  • コマンドパレットから「Preferences: Open User Settings」を開く
  • ユーザー設定画面で、「workbench.enablePreviewFeatures」を検索
  • 左側の鉛筆アイコンをクリックし、「false」から「true」へ変更

まとめ

Docker と MS のおかげではあるけど、サクッと環境を作れたのであとは学ぶのみ。 とりあえず JOIN の種類からおさらい・・・。

※ 最近の若者としゃべると DB を (でぃーびー) と言ってるのだけど、おっさんとしては慣例的に DB (でーびー) で定着してしまってるあたりがギャップを感じざるをえない。

Inoreader - Space のスクロール量を調整する

// ==UserScript==
// @name         inoreader
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://www.inoreader.com/*
// @match        https://jp.inoreader.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=inoreader.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    const ele = document.getElementById("reader_pane");
    ele.addEventListener("keydown", (e) => {
        if (e.code == "Space") {
            let value = 100;
            if (e.shiftKey) {
                value = -1 * value;
            }
            ele.scrollTop += value;
            e.stopPropagation();
            e.preventDefault();
        }
    })
})();