iTermのprofileをコマンドラインで切り替える

最近、workspaceを頻繁に切り替える作業をしなくちゃならなくて しかもディレクトリ構造が非常に似ているため、 あれ、これどこで作業してんだっけ?となって pwd しまくってるのが辛いため 背景色を変更したiTermのprofileの複数用意してworkspaceごとに切り替える運用を試してみています。
 
これはこれで良いのですが、profileの切り替え自体をコマンドラインでできないかどうか調べてみると
Change iTerm2 color profile from the CLI (Example)
で以下のようなfunctionで切り替える方法が紹介されていました。

it2prof() { echo -e "\033]50;SetProfile=$1\a" }

 

公式を見てみると

iTemではescapeシーケンスで色々できるように実装されているようです。
Proprietary Escape Codes - Documentation - iTerm2 - macOS Terminal Replacement

 
昔は50だったけどxtermとかぶるから1337にしたよとのこと。

The OSC command 50 used to be used but it conflicts with xterm, so it is now 1337.

 

最終的には

こうしました。

itermprof() { echo -e "\033]1337;SetProfile=$1\a" }

githubのmarkdownに目次(Table of Contents)をつける

README.md がごちゃごちゃしてきたので、簡単に目次つけれないかと探していたら ekalinin/github-markdown-toc: Easy TOC creation for GitHub
というものがとても簡単だったのでご紹介。

How to use it

$ wget https://raw.githubusercontent.com/ekalinin/github-markdown-toc/master/gh-md-toc
$ chmod a+x gh-md-toc

localファイルもremoteファイルも実行できます。

$ gh-md-toc README.md

Table of Contents
=================

   * [git-trend](#git-trend)
      * [Requirements](#requirements)
      * [Installation](#installation)
      * [Usage of a gem](#usage-of-a-gem)
         * [Fetch trending](#fetch-trending)
         * [Use language and since options](#use-language-and-since-options)
         * [Show enable languages](#show-enable-languages)
      * [Usage of a command line tool](#usage-of-a-command-line-tool)
         * [Fetch daily trending](#fetch-daily-trending)
         * [Fetch daily trending with JSON format](#fetch-daily-trending-with-json-format)
         * [Fetch daily trending without description](#fetch-daily-trending-without-description)
         * [Fetch daily trending by language](#fetch-daily-trending-by-language)
         * [Fetch weekly/monthly trending](#fetch-weeklymonthly-trending)
         * [Fetch number of trending](#fetch-number-of-trending)
         * [Show enable languages](#show-enable-languages-1)
      * [Tips](#tips)
      * [Implementation of other language](#implementation-of-other-language)
      * [Contributing](#contributing)

Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc)

sorce

ソース見て驚いたのですが、これbashなんです。
markdownをhtmlに変換して、h1-6 タグを sed/awk でごにょごにょして出力しています。

htmlの変換処理

githubmarkdown変換用のAPIを利用しているだけなんですが、こんなものがあったんですね。
Markdown | GitHub Developer Guide

$ curl -X POST --data '{"text": "Hello world github/linguist#1 **cool**, and #1!"}' https://api.github.com/markdown
<p>Hello world github/linguist#1 <strong>cool</strong>, and #1!</p>

その他

見るだけなら、こちらのbookmarkletが便利でした。
GitHub の Markdown に TOC (目次) を付けるブックマークレット (vanilla JS 編) - Qiita

習慣の力 読了

習慣の力 The Power of Habit (講談社+α文庫)

習慣の力 The Power of Habit (講談社+α文庫)

SOFT SKILLS 第10章で紹介されていた習慣に関する本です。
デール・カーネギーの人を動かすに続いて2冊目です。
SOFT SKILLS は良い本を紹介してくれます。

今のところ今年一番です。
読後に目次を読み直して、気になったところを一読することはあるのですが、
気になるところが多すぎて、ほぼ全部読み直してしまいました。

ざっくり

人の行動の4割を占めている「習慣」について、その仕組み、どう作られて、どう変わるか、習慣を使いこなす方法を個人・組織についての事例を実験や事実とともに記載された良書です。
そして最後の付録には、悪い習慣を変えるためのフレームワークが紹介されています。

第1部 個人の習慣

第1章 「習慣」のメカニズム

脳の基底核という部位が無意識の習慣を司っており、 習慣が「きっかけ」、「ルーチン」、「報酬」という一連のサイクルで成り立っていることがウィルス性脳炎の患者、てんかんの患者、ラットの実験から述べられています。

特にラット実験の脳の活性化を調べる実験、ウィルス性脳炎ユージン・ポーリーの話は面白いです。

第2章 習慣を生み出す「力」

ファブリーズが大ヒットした理由は「報酬」を期待させる「欲求」というものであったというのをジュリオというサルの実験とともにし紹介。
 
良い習慣を生み出すためのポイントです。

第3章 習慣を変えるための鉄則

「きっかけ」は変えずに同じ「報酬」を提供し、新しい「ルーチン」を組み込むこと、 またその習慣を永遠にするためには「信じること」が必要であることをフットボールのヘッドコーチ、アルコール依存更生会を例にして説明しています。

指を噛む癖を持つ女性の対処方法(「きっかけ」を感じたらチェックし、対抗方法として新しいルーチンを組み込むという)が印象的でした。

第2部 成功する企業の習慣

第4章 アルコアの奇跡

「キーストーン・ハビット」の説明。
成績不振のアルニウム・カンパニーが新しいCEOであるポール・オニールによって復活したという例。彼は「事故ゼロ」という目標だけを掲げて改革を行った。

また、マイケル・フェルペスの「ビデオ」の話も面白かったです。
彼は、頭の中に完璧な泳ぎを細かい部分までなんども繰り返し再生し、それぞれの一瞬に何が起こるか全て覚えようとしたそうです。コーチに家に帰ったら「ビデオを見ろ」、練習中に「ビデオをかけろ」、レース前に「ビデオを用意しろ」と言われたそうです。
彼にとってはこのイメージトレーニングが「キーストーン・ハビット」となり小さな勝利に結びついていったと。

他にも、食事の記録という「キーストーン・ハビット」で他の良い習慣が身についたという話も良かったので、これは現在やってみているところです。

第5章 スタバと「成功の習慣」

「意志力」という自分をコントロールする力についての話です。 これは、減るものでもあるが、鍛えることができるものであると。

以前読んだ、daigoの本にも 自分を操る超集中力 読了 - rochefort’s blog 「ウィルパワー」という言葉で紹介されているものに近い印象。

スタバでは、社員の教育にLATTEと呼ばれる意志力を発揮する習慣のループを取り入れているそうです。 Listen(耳を傾ける)、Acknowledge(不満を認める)、Take Action(行動する)、Thank(感謝する)、Explain(なぜその問題が起きたのかを説明する)。

客のクレームなどの「きっかけ」
マニュアルを作成し研修でLATTEで「ルーチン」が実行されるようにする
客や店長からの感謝という「報酬」があり
客を喜ばせたいという「欲求」を持つ

子供に習い事やスポーツをさせることは、意志力の向上に役立つということや 目標設定をさせた方がリハビリに効果的だった(転換点という「きっかけ」に対応すること)ことや 「丁寧な説明」と「無礼な扱い」の実験も面白かったです。
丁寧な説明をした方が、その後行った自制心を必要とするテストの成績が良く、無礼な扱いを受けた方の成績は散々だったと。

第6章 危機こそ好機

看護師と医師が対立し、組織の特有の習慣が生まれ、その結果医療事故を起こしたロードアイラン病院、縦割りの組織構造のために特有の習慣によって火事による死亡事故を起こしたキングス・クロス駅の話。 権力のバランスだけでなく、誰が責任を取るのかを明確にすることで転換できると。

第7章 買わせる技術

新しい習慣は古い習慣でくるんだ方が世界に受け入れられるという話。
 
購入履歴などから妊婦を特定しクーポンを配布するというマーケティングの仕組みを例にし、これを顧客に気持ち悪いと思われないために関係のない商品の間にこれらを挟んで提供するという話。
 
また、過去の曲をいろんな点から分析し、絶対ヒットする曲を判定する仕組みを例にし、これを本当にヒットさせるために、ラジオで紹介する際に聴き慣れた曲の間に挟んで紹介したという話。

第8章 公民権運動の真相

黒人差別の時代に、バスで白人に席をゆずることを拒否したローザ・パークスの周囲が中心となり、キング牧師を巻き込んで起こした市営バスのボイコットの話。そして、リック・ウォレンが社会的習慣に訴えて教会を作り、信者を増やしたという話。

第9章 習慣の功罪

普通の主婦だったアンジー・バックマンがギャンブルにより破産をした話とキャンピングカーで誤って妻を殺してしまった夢遊病患者のブライアン・トーマスの話。 トーマスは釈放されたが、バックマンは責任を問われた。この違いは「自分の習慣に気づいていたか」どうか。

付録

ざっくり書くと、以下のようなもの。
本書に具体例と合わせて記載されているので、気になる人は是非読んで実践してみると良いです。

変化の枠組み 1. ルーチンを特定する
2. 報酬を変える
 どのような欲求がルーチンを駆り立てるか
3. きっかけを見つける
 場所、時間、心理状態、自分以外の人物、直前の行動
 5つのカテゴリーでそれぞれ考える
4. 計画を立てる

See Also