Magnolia Tech

いつもコードのことばかり考えている人のために。

ターミナルの色とフォントをカスタマイズする

色のカスタマイズ

ターミナルソフトウェアには色のカスタマイズ設定が用意されている。macOSのTerminalでは以下の設定画面が用意されている。

Backgroundは背景色、Textは文字色、Cursorはカーソル色、というのは文字通りの意味。

その他は、以下のとおり

  • Bold Textは、歴史的経緯で太字がサポートされていない端末では太字の代わりに色を変えて表示していたため、別の色が指定できる
  • Selectionは、マウスで選択した際の背景色を変え、わかりやすく表示するための色が指定できる(文字の色は変えない)
  • ANSI Colorsは、ANSIエスケープシーケンスにて指定した際の実際の色が指定できる
    • 黒、赤、緑、黄色、青、マゼンダ、シアン、白の計8色が用意されている
    • 8色それぞれに明るい色(bright)を指定した時に表示される色が指定できる
    • 色の種類の指定自体はアプリケーション側になるため、ターゲットを決めて確かめるとよい
    • アプリケーション側で独自の色指定を行っている場合は当然影響しない
    • 256色の指定も可能だが、色の種類ではなく、直接カラーコードを指定する カラーコードのカスタマイズができるターミナルソフトウェアも有るが、そこまで拘る理由もないので、ここでは割愛
    • 1670万色(24bit color)をサポートしたターミナルソフトウェアも有るが、エスケープシーケンスでRGB値を直接指定するため、ターミナルソフトウェア側の設定とは関係ない
  • カスタマイズの事例は、以下のサイトが参考になる github.com
  • iTerm2など、追加の色のカスタマイズ設定ができるターミナルソフトウェアも多い
  • 例えば、TerminfoをVT100にした場合、本来はモノクロのみサポートの端末のはずだが、OS独自の拡張により色が使えるようになっている

フォントのカスタマイズ

  • 基本的に、mono space fontを選ぶ

  • 日本語用の漢字フォントを含むものもある(見やすさを考慮して、漢字かな、いわゆる全角文字との比率が1:2ではなく、2:3のものもある)

  • powerlineのサポートの有無 専用のフォントを使うことでテキストベースアプリケーションのステータスバーの表示をかっこよくカスタマイズするPowerlineというツールがある github.com

    • source code proはpowerlineのグリフをサポートしている github.com
  • NERDFONTのサポートの有無 更に、NERDFONTと呼ばれるグリフセットをサポートしているフォントもある www.nerdfonts.com

  • 合字(リガチャ)

    • 合字をサポートしたフォントもある...例えばMicrosoftがリリースしているcascadia-code github.com

ここまで書いておいて、以前同じようなエントリを書いていたことを思い出した。

blog.magnolia.tech

で、あまり日本語の占める割合が高くないので、ずっとSource Code Proを使っている

『他者と働く--「わかりあえなさ」から始める組織論』を読んだ

「対話」によって、関係性の溝に橋をかけ、相手への理解を深め、新しい関係を築くための手法を、ナラティブというキーワードを軸に解説する本です。

自分は意見が合わない人が居ると、「この人がこのように発言する、意思決定することの裏にはどんな価値観があるのか?」ということを考えてしまうのですが、そのやり方が上手く形式知化、言語化されていました。

相手との新しい関係性を作る行為を「橋をかける」という表現で分かりやすく解説されています。


とはいえ、この本で解説されているように、そんな分かりやすく人の心が動くのか?というと、それは当然そんな簡単なことではないし、そんな簡単に分かり合える、なんてことも無いよなー、最後は結局「力こそパワー」みたいな展開になることも有るよなーとは思いましたが、まずは「価値観が違うんだ」という認識を持つことができればまぁいいんじゃないかなぁって思いましたマル。

『ドメイン駆動設計入門 』という本が出るそうです

ソフトウェアデザイン誌の過去のドメイン駆動設計特集記事がまとまった単行本が出るそうです。

これは読む用、保存用、教育用の3冊以上買いですね。

過去に感想エントリを書いていました。

blog.magnolia.tech

『読み手につたわる文章 - テクニカルライティング』を読んで、レビューテクニックを身につけよう!

booth.pm

mochikoさんが書かれた『読み手につたわる文章 - テクニカルライティング』という本を読みました。

この本はビジネスの現場で必要な「相手に伝えたいことを正しく伝える」ためのテクニックが詰まった本です。

大事なことがコンパクトに詰まっていて、何度も読み返したり、他の人に紹介するのに適しています。この辺はどうしても商業出版だと一定のページ数が無いと出版が難しいので、同人誌として出版するのに向いている構成ですね。

いくつか「そうだよねー」と思ったトピックを拾っておくと...

  • 読者層を決めてから書こう

    自分も何らかの文書を書く時は、「誰が読むのか?」というのを常に一番考えて書いています。特に、特定の読み手が想定できる報告書などの文書は、まずはどこまで相手の理解度を前提条件として想定できるか?ということを考えます。不特定多数の人向けの文書では難しいですが、特定の人向け、特に直接コミュニケーションがとてる相手であれば素直に聞いたり、確認のための質問を投げたり、色々な方法で相手のメンタルモデルが探れます。場合によっては、質問を投げることで相手も”察して”、結果としてメンタルモデルが形成されることもあります。文書の中に全ての要素を書くと冗長になってしまう、盛り込み過ぎになってしまう時に、「結論から書く」方式も有効ですが、それ以上に「メンタルモデル」を形成するためのコミュニケーションを取る、というのも有効なテクニックだったりしますね。

  • いつまでに何をしてほしいのかを書こう

    この人の文書は分かりづらいな、と思う時、自分がチェックするのは、「事実と推測が混ざっていないか?」「いつまでに何をやってほしいのか明確か?」という二つです。 特に後者に関して、ビジネス文書、特に報告書は「誰かの行動を変容するため」に書かれるはずなのに、そこがボヤけてしまうと何の意味もなくなってしまいます(でも案外、結論をボヤかす、何も言ってない文書を書く人って多いですよね...)

あと至るところでCahtGPTや、ATOKなど、道具に頼るところは頼ろう!というスタンスも、実用文を書くためのプラクティスとしてとてもいい姿勢だな、と思いました。そうですよねー、時間は限られていますし、何か名文コンテストをやっているわけでもないですからね。

そして、この本の最大の大好きポイントは、レビューに関する記載が充実しているところです。特に、特に、レビューする側の心得としての「4.1 レビュアー(レビューする側)のコツ」は年齢が高い、役職が上の人ほど絶対に読んで!今すぐ読んで!読まずにレビューしないで!と言いたくなる大事なことが書かれています。

ほんと目的を間違えたレビューだけはこの世から無くなって欲しいですよね...「このレビューの行き着く先は、精神的な鍛錬?」みたいなレビューは存在してはいけないのです。

と言うわけで、ビジネス文書作成に関わるみんなが読むべき1冊なので、みんなすぐに買いましょう!読みましょう!文書を書きましょう!レビューを(適切に)やっていきましょう!

『ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法』が出版されます

2021年にO'Reilly Media, Inc.から出版された「Learning Domain-Driven Design」の待望の日本語訳『ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法』がついに出版されます。

www.oreilly.com

訳者は、増田 亨さん!!


2020年代に、ドメイン駆動設計を学ぶための最初の入り口としてどの本を読めば良いかは、かなり悩ましい...というのはよく言われるのですが(元祖のエバンス本はさすがにだいぶ古くなってきたし、回りくどい表現も多いし...)、そんな時におすすめできる1冊です。

2021年に原著が出版された時に買ってざっと読んでいたのですが、パート1で戦略的DDD(主にビジネス面からの分析)、パート2で戦術的DDD(主に実装面のプラクティス)、パート3でそれを使った実践の方法という流れで、それぞれのトピックに集中できるようになっています。

特に後半は現代的なプラクティスや、アーキテクチャとの関係も明示されていて、1冊で基本的な知識をざっと習得する、という目的には丁度良い構成です。

個人的にはパート1と、パート2の結びつきが大事というか、パート1でユビキタス言語と、境界づけられたコンテキストが揃ったらもう実装に行く?というのは有りますが、この辺は実装例などと比較しながら読み進めた方が良さそうです。DDD百科事典ではなく、あくまで入り口に立つための本だし、そのために必要なところと、そうじゃないところをメリハリつけられているな、という印象でした。

読書会で、それぞれの経験とか、考え方を述べ合うと、その辺りが補完されることでしょう。


と言うわけで、今年の夏の課題図書確定の1冊なので、読んで、読書感想文をみんなで書きましょう!

『「何回説明しても伝わらない」はなぜ起こるのか?』を読んで、「まだ人類はニュータイプじゃないから、そんな簡単には分かり合えません」と言ってたことを思い出した

副題に「認知科学が教えるコミュニケーションの本質と解決策」とあるように、本書はそのタイトル通り、”説明しても伝わらない”が何故起こるのか、そのメカニズムを解説してくれる本です。


この本を読み始めて、昔「まだ人類はニュータイプじゃないから、そんな簡単には分かり合えません」と言ってたことを思い出した。

段々と、そのネタを聞いても分からない世代になってきたので、言わなくなってきたけど。

で、たいていはその後に、「だからこそ相手にどうやって伝わるか考えて、その相手に合わせた情報の整理や、話し方が必要なんですよ」とは言っていたけど、果たしてどれだけの人ができていたのだろう。

よくビジネスにおける会話術で「結論から先に言う」というのが有るけど、あれは割と極端で誤解を生みやすい表現だと思っていて、聴く側にそれなりの準備や共通の前提条件が無ければいくら結論だけ言われても納得はしないので結局「で?」となってしまう。

この本では冒頭で、興味関心に関する枠組みを認知心理学で「スキーマ」と言うとあり、これが合わなければ伝わらない、ということが出発点になっています。

確かに、データベースでもスキーマが合わなければ、データの参照は正しくできないですからね、なるほどね、と思いました。


第2章では、伝わらない場面と、その理由 第3章では、ではどうやって伝えていくか、その方法

が語られていきます。

特に第2章は豊富な事例をもとに解説が続くので読みやすく、すいすい、読み進めることができます...が、果たして、著者の伝えたいことは本当に自分に伝わっているか、それは一度立ち止まって、読み返してみるといいかもしれません。

そして大事なのが第3章の後半です。ここで、正しく伝えるために「抽象」と「具象」を行ったり来たりしながら説明することの大切さが語られます。そして、誤った抽象の方法も併せて語られます。ここがこの本の一番の注目ポイントです。

プログラミングでも、抽象と具象のレベルをコントロールすることで疎結合な、わかりやすく、拡張しやすいプログラムが書けるか?ということが大きなテーマになるのと同じくらいコミュニケーションでも同じように大事なテーマなのです。


blog.magnolia.tech

このブログの前回のエントリで『状況報告、報告を受ける側が知りたいのは尽きるところ「ヤバいか、ヤバくないか」「それで次に行動するのはオレかお前か」というところです』と書きましたが、”ビジネスにおける報告のゴール”は「次に誰が何をいつまでにやるのかを決める」なので、整理していくとこうなるわけですが、だからといって上司に「ヤバい、なんとかして」だけで伝わることはめったにありません(たまに存在する、超絶に察する能力が高い上司は通じちゃいますけどね)。

要約するとそうであっても、それが正しく伝わるためには色々なお膳立てや、工夫が必要になってきますし、報告する相手の思考を十分に考慮する必要があります。

そんな時に、この本を読んでおくと、そのメカニズムが分かって、スムーズに行くと思います。

キングジム『ビジュアルバータイマー』を買った

去年、作業時間の管理にTimeTimerを使うようになって、割り込み無しで10分〜30分くらいの集中度がだいぶ上がるようになりました。

TimeTimerはクルっと測りたい時間をダイヤルで決めて、時間になるとアラームが鳴る、以外の機能が何も無いところがいいのですが、アラーム鳴らないでほしい、みたいな場面もあるのでオンオフできるタイマーを探していたところ、キングジム『ビジュアルバータイマー』が目に止まりました。

見た目通り、時間がカウントダウンのバー形式で表示されるので、TimeTimerと同じで「なんとなくあとこのくらいかー」と感覚で掴めるところが良いところ。

横に正確な時間も出ているけど、敢えて視界に入れない、という選択肢がとれそうなギリギリの大きさ、というのが上手いバランス

4月の発売時には品薄だったみたいで注文から到着までに1ヶ月くらいかかりましたが、今は普通に買えるようです。

10分、1分、10秒という単位を組み合わせて時間を決められるところがデジタルらしい便利さ。

あと、リピートモードという、作業時間と休憩時間を交互に設定できる、ポモドーロ・テクニックに便利なモードが用意されているところもポイント高いです。


ただのタイマーといえばそれまでなので、あとはどんどん使っていきましょう、という以上の話も無いのですが、気になった点を挙げると...

  • 置き場所の都合もあるけど、机の上に置いた時に角度が付けられないのでちょっと見えづらい

    裏にマグネットが有って、冷蔵庫とかに貼る使い方ならいいけど、机の上だと手元にあると、その大きさと相まって絶妙に液晶が見えない(バックライトとかもないし)

  • 電池別売りはもう少しパッケージとか説明に大きく書いておいてほしい

    届くまで別売りに気づかず、数日放置になってしまった

  • 無音か、大きめのアラート音の2択なので、音量が調整できると良い

  • 設定の変え方は分かりづらい...一回リセットしないといけないのが最初戸惑った...直感的じゃない


最初だけ使い方に戸惑うところはありますが、慣れてしまえばそんなに気にならないレベルなので、次世代機は改善されるといいな、くらいでしょうか。


自分の使い方だと、日常的な作業管理は今後もTimeTimerをメイン使って、午後いっぱいリピートモードで管理したい、みたいな時に使うかな、というところです。