モノラルログ

マツオ ( @matsuoshi / monaural.net ) のざっくりしたブログです

xremap を使って、Ubuntu 上で Mac っぽい controlキーの挙動を設定した

中古で ThinkPad を購入し、Ubuntu 24.04 を入れた。

Ubuntu はおおむねいい感じで使えているのだが、普段触っている Mac と操作感の違いで気になるのは、Ctrl キーとコマンドキーの使い分け

Ubuntu だとコピペなど普段使う修飾キーは Ctrl が基本になる。Macでは親指でコマンドキーを使っていたので、じゃあキーカスタマイズして、Ubuntu でも親指のところに Ctrl キーをバインドしてしまえば解決か、というと意外とそれだけでもない。emacs風の ^H による文字削除、^A ^E でのカーソル移動なんかは 頻繁に使っていたし、特にターミナル操作で Mac だと ^C⌘C が明確に違うわけで、これに慣れてるとけっこう誤爆してしまう

キーリマップ系のツールを使ってなんとかできないかなと考えた

やりたいこと

こんな感じで使えるように設定したい

  • CapsLock (A の左隣) のキーを、Mac でいうところの Ctrl キーっぽくしたい
    • CapsLock + A, E, H あたりの emacsキーバインドを有効にしたい
    • ターミナル上では CapsLock + C で ^C にしたい
  • 左親指のところを、Mac でいうところのコマンドキーっぽくしたい
    • 保存 ^s、undo ^z なんかのショートカットは左親指のほうでやりたい
    • ターミナル上では Macみたいに コマンド+C, V でコピペできる感覚にしたい
    • ついでに左親指で押しやすい無変換キーを、「単独で押せば無変換キー、何かと一緒に押すとはコマンドキー」的な挙動にしたい (mod-tap)

xremap で全部できた

結論、ぜんぶできた

xremap というアプリケーションのおかげです。神ツールやん!?

github.com

設定ファイル

gist.github.com

やってることはざっくり、

  • modmap で CapsLock を右Ctrlキーにする
  • ターミナルの場合に限り、左Ctrl+C,V をコピペに設定する
    • これで CapsLock+C は通常の ^C, 左Ctrl+C はコピー、と使い分けられる
  • emacs風の設定を 右Ctrl+あれこれ、として入れていく
    • ただしターミナルはアプリ側でもともと設定が入っているので除外
  • 無変換キーの mod-tap 設定もすごく簡単だった

全部できたー

その他

インストールにあたっては Ubuntu で使われている GNOME Wayland 特有の設定がいるみたいで、xremap をユーザー権限で起動させるには、とか アプリケーション固有の設定を有効にするには、というところで少しハマった。ハマったけど、よくよく見ると全部 xremap の README に書いてあった。READMEのこのへん↓↓ 単に自分が説明書きをよく読んでいないというだけでした。xremap すばらしい。

If you want to run xremap without sudo, click here.

Install xremap's GNOME Shell extension from this link, switching OFF to ON.

満足です。

他者理解は好奇心 (書籍「組織を変える5つの対話」を読んだメモ)

オライリーの「組織を変える5つの対話」を読んだメモ

サブタイトルは「対話を通じてアジャイルな組織文化を創る」、原題は ”Agile Conversation”

5つの対話

組織を変える対話には5つのステップがありますよと

  • 信頼関係を築く
  • 心理的安全性を確立する(不安を乗り越える)
  • 共通の理念(WHY)を作り上げる
  • 約束をする(コミットメントを行う)
  • 説明責任を果たす

ふむふむ

それよりもまず、根底として 2つの価値がありますよと

2つの価値

  • 自己開示
    • 自分の意見を隠すところなく相手に伝えること
  • 他者理解
    • 相手の意見に関心を寄せて、相手の言葉を通じて意見を理解しようとすること

ふむふむ

ここまでは、そうね〜〜自己開示も他者理解も超重要よね〜〜という感じだったんですが、この「2つの価値」が英語だとどう書かれているかを知って、なるほど〜〜〜!!??となった

transparency と curiosity

  • 自己開示 = transparency
  • 他者理解 = curiosity

!!! めちゃしっくりくる。

自己開示は自分に対する透明性であり、他者理解は相手に対する好奇心。

これはすごく腹落ちした。

ほかにも、X理論Y理論とか、推論のはしごの話なんかも

推論のはしごについては、この記事がとても分かりやすかったな

medium.com

iPhone 12 mini を 3週間試して、Android に出戻った

コンパクトサイズのスマホが好きなので、普段は Android ユーザーなんだけど iPhone 12 mini を試してみた
結果、3週間ほどで iPhone 12 mini をあきらめて Android に出戻りした

その覚書きメモです

将来また iPhone を試してみたくなったとき、読み返して色々思い出したい
時間経つと、良かったことも良くなかったことも、どんどん忘れていきそうなので

背景

  • 自分はコンパクトなスマホが好き
    • 6インチ超えると、でかいなーーーゴツいなーーーという感じがする
    • むかしは Unihertz Jelly 2 とか Rakuten mini とかの、極小系の機種も実際に使ってた
  • しかし、最近の Android は5インチ台でマトモなスペックの選択肢がほとんどない……
  • 140 x 70mm 程度のサイズ感で、いい感じのものがあるといいんだけどなあ
  • iPhone SEiPhone mini を試してみよう!

というわけで iPhone 12 mini を中古で買って、まずは数週間という気持ちで試してみた
だめだったら中古で売ればいいよね、Apple製品は中古でもそれなりの値段で売れるので、試しやすいわー、というノリでした

前提

  • iPhone を使うのは 6s 以来なのでかなり久々
  • 普段は MaciPad を使っているので、Apple製品に不慣れというわけでもない
  • 用途はブラウジングSNS、音楽再生、マップ、カメラ、ほかちょっとしたアプリを使う程度
    • ヘビーなゲームとかはやらないし、動画もあまり見ない

よかった

  • サイズ感は最高
    • これよこれ、という感覚
    • iPhone SE 3 もだいたい同じサイズ感だけど、並べてみるとディスプレイの大きさはかなり差を感じる
  • 本体の質感のよさ
    • お高いだけあるわ
  • カメラ
    • 他の iPhone に比べると劣ると聞いていたけど、それでも並のAndroid機とは比較にならない良さ
    • お高いだけあるわ
  • ケースの選択肢が多い
    • 気にしない人には全然気にしない点だと思うけど、気になる人にとっては iPhone一択になっちゃうポイントな気がする
    • 個人的にはとりあえずお試し期間だけでもってことで、近所の100円均一でサクッと手に入るのがありがたかった
  • 性能面は特に不満なし
    • ふつうに使う分には、性能面で困ることはなかった
    • 困ることがない、というのは素晴らしいこと

いまいちだった

  • バッテリー持ち
    • 中古でバッテリー状態 85% のものを入手したんだけど、普通に使って 1日持つかどうか
    • 自分のスマホの使い方ってブラウザと音楽再生程度で大したことないと思ってたので、それで 1日持たないかも、と心配しながら使わないといけないのは厳しかった
    • 小型スマホの宿命なのか……?
      • でも気持ちとしては小型だからこそ、モバイルバッテリーとか余計なモノ無しで1日使いたいんよなあ
  • ライトニング端子めんどい
    • 使う前から知ってたやつだけど、USB type-C からライトニングへの乗り換えはストレスだった
  • キーボードにカーソルキーがない
    • これも iPad 使ってて知ってたやつだけど、画面が小さくなると、ドラッグ操作などはより難を感じるように
  • 指紋認証がない & 顔認証との相性が悪かった
    • 顔認証、顔を向けるのがめんどい
    • 机の脇に置いてて通知がきて、それをチラっと見たいって時、指紋なら手と目線を動かすだけでいけるのよね
      • 顔認証だとよっこいしょって動かしてスマホ覗かないと、ってのがめんどい
    • 普段の顔認証の認識率も、4〜5回に1回は失敗する感じで、ややストレスがあった
  • SIM の 2枚切り替えが不便?
    • au系と docomo系の格安SIM 2枚(1つはeSIM)を設定してたんだけど、iPhone だと使い分けが面倒じゃない?
      • 通信に使うSIMカードを切り替えたい場合、毎回都度 APNプロファイルをダウンロードしてインストールしなおす必要が……ある……?
    • Android だと設定画面から選択肢ポチっと選ぶだけで自由にSIM切り替えできます
    • これ、自分が知らんだけで、もっと楽な方法あったのかなあ……?
  • 戻るボタンがない
    • これも知ってたやつだけど
    • iOSって、1つ前に戻るUIがアプリや状況によって異なるよね、左上の戻るボタンだったり、右上の閉じるボタンだったり、上から下にスワイプ、左から右にスワイプなど
    • まあ Android の戻るボタンの挙動も統一性あるようでないけど、iOS での戻るは操作方法自体に迷う感じだった
  • 通知の謎UI
    • 似たような話で、画面の上から下へスワイプして通知を表示するUI、これに慣れられなかった
    • スワイプする位置が、ノッチの左側か右側かで挙動が変わりますよね
      • 左側を下スワイプで通知センター、右側を下スワイプでコントロールセンター
    • 慣れの問題な気もするけど、左右の位置を気にしてスワイプしなきゃいけない気持ち悪さが勝つというか、自分と合わなかった……
  • ホーム画面のカスタマイズ性
    • これは大昔から、Andoroid だともっと自由に触れるのにな〜 と不満があるところ
    • ウィジェットとか昔よりは出来ること増えてるけど、それでももう一声というかんじ

そんな感じで

いちばん良かったのはカメラで、引っかかったのはバッテリーでした

というわけで、Android に出戻ってきました
とはいえ Android でもコンパクト機にあまり選択肢がない状況は変わらずなので、引き続き

  • 5インチ台程度のコンパクトさで
  • バッテリー持ちがよい、1日以上は心配なく使えて
  • USB type-C で充電できて
  • カメラが良くって
  • 指紋認証ついてて
  • おサイフケータイつきで
  • SIM 2枚切り替えが簡単

スマホ探しの旅に出ます

もし iPhone の新機種出てそれが気になった時は、この記事をもっかい読んで思い出して考える

CSSでコードゴルフをする CSS Battle

CSS Battle とは

cssbattle.dev

お題となるデザインがありまして、それを HTML と CSSピクセルパーフェクトに再現しましょう、できるだけ短いコード量で!!! という参加型バトルサイト

いろんなお題があります

こんなデザインを、画像とかSVGとか使わずに HTMLとCSSだけで再現していこうというやつ。そしてコードの字数の少なさを競う

ちょっとトライしてみた

battle 1

cssbattle.dev

このデザインを再現すればOK

サイト内 左側のエディタにHTMLとCSSを書いて、右に表示されているお手本どおりに作っていく。カラーコードはお手本から拾ってくることができる。出力結果にマウスカーソルを乗せると、お手本との比較も詳細に確認可能。

まあ battle 1 は、div 1個置いて色とサイズ指定したらおわりかな。ということで、ひとまず深く考えずに素直に書いてみた。submit したら、ちゃんとピクセルどおりになっているかの判定をしてくれて、スコアが表示される。

132文字 100% match, よしよし。

では、世の中のみなさんの結果はどうなのかな、と Leadersboard 見を見てみると…… なんとトップの人は54文字で再現してしまうらしい。半分以下……!? ちょっと想像がつかん

cssbattle.dev

ちょっと試して div要素とか余白文字とか削ってみても 90文字だぞ…… まだ半分近く削らないといけない。どうなっとるのか、まったく違う発想が必要そう

<style>html{background:#5d3a3a}body{margin:0;background:#b5e0ba;width:200px;height:200px}

battle 9

cssbattle.dev

ひし形のボックス作るために transform: rotate(45deg) で要素を 45度傾けてみたんだけど、なぜか細い枠線が薄く表示されてしまい、そのせいでピクセルパーフェクトにならなかった。(99.8% match という判定)

謎だがくやしい

battle 95

cssbattle.dev

どっかで見たことのある球形

これはうまくいった

上下のカプセル部分は背景に linear-gradient を使い、一番上からここまではオレンジ、真ん中は透明、ここから下は白、と背景色を変えていくことで、1つの円でなんとかなった (黄色と茶色の部分は別のdivを用意)

ただし自分は 561文字で出来上がったのだが、トップの人は 145文字でこれを表現するらしい。……どういうことなの……

おわり

たのしい (なお実務に活かせる感じはしない)

難易度は高いと言うか、短く書く以前に普通に再現させるだけでもたいへん。いろいろなプロパティを使う工夫がいるので、その面では勉強になるかも。

CSS Battle answers とかでググると回答を集めたサイトとかも出てくるので、それ眺めてるだけでもおもしろいっす

書籍コーチングアジャイルチームスと「ネイティブワイヤリング」「BART分析」

書籍「コーチンアジャイルチームス」を買って読んでいます、いろいろとためになることばっかりだ

1章に出てくる「ネイティブワイヤリング」という言葉は初耳だった

8章の「BART分析」も同じく

BART分析

BART は Boundary, Authority, Role, Task の頭文字

チームや組織を BART で分析してみましょう、チームがうまくいかないとき、原因はこの BART に関連した何かであることが多いよ、というやつ

  • 役割: Role
    • 役割は明確に説明され、機能し遂行できているか?
  • 課題: Task
    • チームは、チームの目的や課題を明確に持てているか?
  • 権限: Authority
    • 各役割の権限は明確に定義され、全員が理解・遵守できているか?
  • 境界: Boundary
    • チーム内の様々な縄張りの境界は何か?

知らない分析手法なだったのでたいへん参考になりました

たとえばアジャイルフレームワークを使っている状態だとして、各ロールを担っている人が役割を全う出来ているか? 権限や境界を越えている部分がないか? などを探してみるところから始めるとよいかも。