全力で怠けたい

怠けるために全力を尽くしたいブログ。

GitHub のコミットメッセージを CLI から検索できる gommit-m がとても便利。

commit-m: GitHubコミットメッセージの文例が検索できるサービス がとても便利なのだけど、CLI からも検索できるようにした gommit-m がとても便利だったのでメモ。

gommit-m の使い方

gommit-m 検索ワード で検索ワードを含むリポジトリとコミットメッセージを表にして出力してくれる。

$ gommit-m japanese
Search Result : 103 results : 1/4 pages
  url: http://commit-m.minamijoyo.com/commits/search?keyword=japanese&page=1

 Repository                                   | sha1    | url                                                                                                             | message 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 mozilla/pdf.js                               | 2da5727 | https://github.com/mozilla/pdf.js/commit/2da5727b6be34c3511c5147728c7885869c31c67                               | Japanese locale
 vhf/free-programming-books                   | 1764a9a | https://github.com/vhf/free-programming-books/commit/1764a9a7c587e026e4e276726eaa204e0f9778c4                   | Add Japanese book list
 vhf/free-programming-books                   | c4ed054 | https://github.com/vhf/free-programming-books/commit/c4ed054de9aa84a233dd99753ceac43f3990aa6c                   | add two japanese books
 adobe/brackets                               | d404fe1 | https://github.com/adobe/brackets/commit/d404fe10dba6f18857f498ddf8eaf5c19af91405                               | Translate to Japanese.
 torvalds/linux                               | 8b43626 | https://github.com/torvalds/linux/commit/8b43626f0cdfb3154c57d52e732679c9d3484369                               | HOWTO: sync Japanese HOWTO
 select2/select2                              | edddf96 | https://github.com/select2/select2/commit/edddf961a1fbe3a77f120d000349916e006cc14a                              | Add Japanese translation
 discourse/discourse                          | 3f049f4 | https://github.com/discourse/discourse/commit/3f049f4853c6162601bccb2c91244f3762bea6ca                          | Provides Japanese locales
 discourse/discourse                          | e383921 | https://github.com/discourse/discourse/commit/e383921b349719ef46164554e2de3b897772a527                          | Updated Japanese locales
 tiimgreen/github-cheat-sheet                 | 92141db | https://github.com/tiimgreen/github-cheat-sheet/commit/92141dbd831d58d8f1f3c9a04052858ef920ddf1                 | Update Japanese translation
 tiimgreen/github-cheat-sheet                 | 3a95b5e | https://github.com/tiimgreen/github-cheat-sheet/commit/3a95b5ea3cb382ddb3d0f8ac836dcf4ad3af9f76                 | Add Japanese translation
 h5bp/Front-end-Developer-Interview-Questions | 3b2098f | https://github.com/h5bp/Front-end-Developer-Interview-Questions/commit/3b2098ff5bb5b3c631efacf190065e9782831dc3 | Correct Japanese translateion.
 h5bp/Front-end-Developer-Interview-Questions | b79c222 | https://github.com/h5bp/Front-end-Developer-Interview-Questions/commit/b79c222d4566b65b4b3d999382a3078b0759644e | add Japanese translation
 airbnb/javascript                            | e484fa5 | https://github.com/airbnb/javascript/commit/e484fa58b13fffca55aae057eea406300bb05fc9                            | translate into Japanese
 mozilla/pdf.js                               | bf2ebd3 | https://github.com/mozilla/pdf.js/commit/bf2ebd37140643a9ae37d2c47e07c53e454f860e                               | Updated Japanese locale (#3228)

# 出力が多いので省略

検索ワードにヒットするコミットメッセージがたくさんあるときはページ処理されるので、1ページ目以外を見たいときは gommit-m 検索ワード ページ のようにするといい感じ。

$ gommit-m japanese 2
Search Result : 103 results : 2/4 pages
  url: http://commit-m.minamijoyo.com/commits/search?keyword=japanese&page=2

 Repository                                   | sha1    | url                                                                                                             | message 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 tiimgreen/github-cheat-sheet                 | d6e4a83 | https://github.com/tiimgreen/github-cheat-sheet/commit/d6e4a8311cd435e3df3f3e883e6f79b1670c2eff                 | Add link to Japanese translation
 laravel/laravel                              | cbff59b | https://github.com/laravel/laravel/commit/cbff59b59b922fce13abb2276b35f9eaf271b5f7                              | Add Japanese language resource files.
 laravel/laravel                              | 2d2a6bf | https://github.com/laravel/laravel/commit/2d2a6bffa50c8057a42ea66ee183b4bbb06946cd                              | Add Japanese language resource files.
 django/django                                | f83e439 | https://github.com/django/django/commit/f83e439efac6a390d36e4da467db142eeb1003cc                                | fixed #2876: updated japanese translation
 django/django                                | 98d6eac | https://github.com/django/django/commit/98d6eac81c91c5852b4a84e412bcabc14f5b25c2                                | fixed #1909: updated japanese translation
 mozilla/pdf.js                               | 0df411a | https://github.com/mozilla/pdf.js/commit/0df411a3da2e373ad76f960fd706736ef478e7ae                               | Fixes non-Japanese characters spacing
 vhf/free-programming-books                   | 8bf883b | https://github.com/vhf/free-programming-books/commit/8bf883b60b10165425989156ba44111a59df2fdd                   | Add cpprefjp, C++ Reference Site in Japanese
 vhf/free-programming-books                   | a2d71fd | https://github.com/vhf/free-programming-books/commit/a2d71fd9cc390622d88a4e99fdde91b765179549                   | Fix some Japanese books for C++
 vhf/free-programming-books                   | 5279934 | https://github.com/vhf/free-programming-books/commit/5279934859e976ad04ca633a3877aa2c340203ea                   | Add Machine Learning docs in Japanese.
 vhf/free-programming-books                   | 2671fe4 | https://github.com/vhf/free-programming-books/commit/2671fe4b9cc5fba20b8f71f860711e3d1caec849                   | Add Spock Framework(Groovy) documents in Japanese.
 vhf/free-programming-books                   | 9012efc | https://github.com/vhf/free-programming-books/commit/9012efc964868ec344c86ef5575c15fe6bd9ff17                   | Add Groovy/Gradle/Grails documents in Japanese.
 vhf/free-programming-books                   | 2809bc8 | https://github.com/vhf/free-programming-books/commit/2809bc88e365e65924fc1e8c12e22f8c5df14a10                   | add into PHP section on Japanese
 Homebrew/homebrew                            | 05eceb8 | https://github.com/Homebrew/homebrew/commit/05eceb8eef84473ab7a4cd607721228160702cc9                            | tmux: Correct japanese sonant mark display
 adobe/brackets                               | 275bdfe | https://github.com/adobe/brackets/commit/275bdfe32bc27010212d4049c9e08d123c8d1776                               | Manually fix Japanese string and add URLs

# 出力が多いので省略

ちょっとした工夫 - 整形

gommit-m はとても便利なのだけど、少し気になるところもあった。 たとえば↓のようなこととか。

  • 表の横幅が大きいのでかなりフォントを小さくしないと折り返されてしまって見にくい
  • URL はあまり必要な情報ではない

そこで gommit-m 検索ワード | awk -F'|' '{print $1 $2 $4}' みたいなワンライナーで出力を整形したらかなりスッキリしていい感じになった。

$ gommit-m japanese | awk -F'|' '{print $1 $2 $4}'
Search Result : 103 results : 1/4 pages
  url: http://commit-m.minamijoyo.com/commits/search?keyword=japanese&page=1

 Repository                                    sha1     message 
---------------------------------------------------------------------------------------------
 mozilla/pdf.js                                2da5727  Japanese locale
 vhf/free-programming-books                    1764a9a  Add Japanese book list
 vhf/free-programming-books                    c4ed054  add two japanese books
 adobe/brackets                                d404fe1  Translate to Japanese.
 torvalds/linux                                8b43626  HOWTO: sync Japanese HOWTO
 select2/select2                               edddf96  Add Japanese translation
 discourse/discourse                           3f049f4  Provides Japanese locales
 discourse/discourse                           e383921  Updated Japanese locales
 tiimgreen/github-cheat-sheet                  92141db  Update Japanese translation
 tiimgreen/github-cheat-sheet                  3a95b5e  Add Japanese translation
 h5bp/Front-end-Developer-Interview-Questions  3b2098f  Correct Japanese translateion.
 h5bp/Front-end-Developer-Interview-Questions  b79c222  add Japanese translation
 airbnb/javascript                             e484fa5  translate into Japanese
 mozilla/pdf.js                                bf2ebd3  Updated Japanese locale (#3228)

ちょっとした工夫 - peco と連携

gommit-m の出力を対話的にフィルタリングしたくなったので gommit-m 検索ワード | awk -F'|' '{print $1 $2 $4}' | peco みたいな感じで peco と連携させてみた。 出力が対話的にフィルタリングされるので検索ワードがどんな他のワードと組み合わせて使われているのかなどが視覚的に分かっていい感じ。

ちょっとした工夫 - GitHub のコミットページを見にいく

前のほうで URL はそれほど必要な情報ではないと書いたけど、ときどき「このコミットメッセージは実際のコミットはどうなってるんだろう」と見たくなることがあった。 ただ、URL はリポジトリ名と SHA1 ハッシュから求められるので URL 自体は出力に含めなくても大丈夫なようだった。 あと、常に実際のコミットを見たくなるわけでもないので以下のようなスクリプトを書いて、peco で行を選択したときに Github のコミットページをブラウザで開くようにして、peco を EscC-c でキャンセルしたときは何もしないようにしてみた *1

↓のスクリプトgm とか適当な名前で保存して使うときは gm japanese みたいな感じで使っている。

#!/bin/sh

if [ $# -eq 0 ]; then
    echo 'usage: gm keyword [page]'
    exit 1
fi

KEYWORD=$1
PAGE=${2:-1}

RESULT=$(gommit-m $KEYWORD $PAGE | awk -F'|' '{print $1 $2 $4}' | peco --initial-index 5)
if [ "$RESULT" = "" ]; then
    exit 0
fi
echo $(echo $RESULT)

REPO=$(echo $RESULT | awk '{print $1}')
SHA1=$(echo $RESULT | awk '{print $2}')
URL="https://github.com/$REPO/commit/$SHA1"
open $URL
# Mac を使ってるので open コマンドだけど Windows とかなら start コマンドとかでいい感じになると思う。たぶん。

コミットメッセージを書くのがだいぶ捗るようになった。

*1:あと雑なチェックとか

シェルで '{' を使った複数ファイルの指定が地味にいろいろと便利。

シェルはワイルドカードを使ったり '[', ']' を使うと複数ファイルを指定することができる。
最近 '{', '}' を使って複数ファイルを指定できることを知ったのでメモ。

深い階層のファイルを操作するときとか地味に便利。

$ mkdir temp/{a,b}

$ tree ~/temp
/Users/shurimp/temp
├── a
└── b

ディレクトリ階層の途中とかにも使えたりもする。

$ mkdir -p temp/{c,d}/e

$ tree ~/temp
/Users/shurimp/temp
├── a
├── b
├── c
│   └── e
└── d
    └── e

6 directories, 0 files

シェルって本当に便利。
シェルチカラをもっと上げてもっと楽したい。

IntelliJ IDEA や Goland のタイトルバーをダークモードに対応させるメモ。

IntelliJ IDEA や Goland のタイトルバーをダークモードに対応させるメモ。

Mojave のダークモードと IntelliJ IDEA の Darcula テーマを組み合わせるとかなりいい感じの暗色系画面になるのだけどタイトルバーだけが従来の色のままで少し違和感があった。それがいつの間にかタイトルバーの色も暗色に変えられるようになったのでメモしておく。

環境

やり方

以下は Goland でのやり方になるけど IntelliJ IDEA もまったく同じやり方でタイトルバーを暗色にできる。

f:id:ebc_2in2crc:20190403224809p:plain:w500

タイトルバーをダークモードに対応させる前。 あまり違和感はないけどせっかくのダークモードなのでタイトルバーも暗色にしたくなるもの。

f:id:ebc_2in2crc:20190403230941p:plain:w700

Preferences > Appearance & Behavior > Appearance > Use dark window headers にチェックを入れて OK ボタンを押す。

f:id:ebc_2in2crc:20190403224849p:plain:w500

こんな感じにタイトルバーも暗色になってすごくいい感じに。 これでプログラミングも捗るはず。


追記

2018.2 から使えたみたいだった……

samuraism.com

西暦と和暦を変換する wareki コマンドが新元号「令和」に対応しました。

元号「令和」への対応

wareki コマンド が新元号「令和」に対応しました。

2019年5月1日以降は令和を返すようになりました。

$ wareki 2019/04/30
H31

$ wareki 2019/05/01
R1

あと --reiwa オプションと -R オプションが追加されています。

$ wareki --reiwa 1
2019

$ wareki -R 1
2019

アップデート方法

brew でインストールしているなら brew upgrade wareki するだけ。

$ brew upgrade wareki

インストール方法

まだインストールしていない人向け。Homebrew でのインストールがおすすめ。

$ brew tap ebc-2in2crc/wareki
$ brew install wareki

使い方

ebc-2in2crc.hatenablog.jp

XVim2 で使える機能のメモ。

ebc-2in2crc.hatenablog.jp

XVim2 でどんな機能が使えるかを調べたメモ。 とりあえず自分が使うものだけ。

モーション

b, B, f, F, gg, G, h, j, k, l, w, W, t, T, 0, $, ^, %, +, -, {, }, (, ), n, N, ', `, M, H, L

自分が使うものはだいたい使えるみたい。カンマとセミコロンも使える *1

マーク

ma とかでマークしておいて 'a でマークしておいたところにジャンプできる。

スクロール

C-d, C-f, C-e, C-u, C-b, C-y, zz, zb, zt

ジャンプ

C-o, C-i, gd

C-iXcodeEditor-Structure-Re Indent 機能に割り当てられていたので Preference > Key bindings から Editor-Structure-Re Indent 機能への割り当てを解除した。

インサートモード

a, A, i, I, o, O

ナビゲーション

C-], C-t

C-]XcodeJump To Definition 機能にマッピングされていて、 C-tXcodeGo Back 機能にマッピングされているとのこと。

ヤンク、ペースト、変更

d, dd(d), D, y, yy(y), Y, c, cc(c_), C, r, s, S, x, X

行結合

J

シフトブロック

, >>, <, <<

大文字と小文字の変換

Visual mode: u, U, ~, gu, gU

ノーマルモードではサポートされていないみたい。 自分は主にビジュアルモードで使うから問題なさそう。

元に戻す、やり直し

u, C-r

ビジュアルモード

v, V, C-v

C-v + Shift-i は動かないと書いてあるけど動くっぽい。

検索と置換

/, ?, #, , g, g#, :s, n, N

Vim ライクな検索は本当に便利。

テキストオブジェクト

ib, iB, i(, i), i{, i}, i[, i], i>, i<, i", i', iw, iW ab, aB, a(, a), a{, a}, a[, a], a>, a<, a", a', aw, aW

とても便利。

Recording

q, @

自分の環境ではうまく動かなかった。

ドットコマンド (.)

自分が使う範囲では十分に使える。

その他

Ex コマンドも結構使えるようで XVim オリジナルの Ex コマンドもあるよう。 まだ XVim をインストールして間もないのだけど「Xcode 使いにくいなー」と思っていたことの結構な部分が Vim キーバインドが使えないことだったかもしれない。

*1:むしろ M, H, L とか使わなすぎて忘れてた

Xcode に XVim2 をインストールしたメモ。

XcodeXVim2 をインストールしたときのメモ。

環境

  • macOS Mojave (10.14.3)
  • Xcode 10.1
  • XVim2 5c7aaa56e2d39ed2dd9ad42b7f14e4c91ee59218

インストール手順

README どおりの手順でインストールできた。

自己署名証明書の作成と Xcode の再署名

https://github.com/XVimProject/XVim2/blob/master/SIGNING_Xcode.md を参考に自己署名証明書を作成して Xcode を再署名した。
証明書の名前は XcodeSigner にした。

XVim2 のブランチ

master: for the lastest GM Xcode.

と書いてあったので master で。

Xcode を再起動して

あれだけ使いにくかった Xcode が手足のように感じられた。感動した。

1人で始めた職場での改善活動の1年をふりかえってみたメモ。

職場で勝手にやっている改善活動のメモを取り出してから1年たったのでふりかえってみたメモ。

書くこと

  • #俺俺改善活動 ツイートで追うカイゼン
  • 変わったこと
  • 実際にやっていたこと
  • まとめ

ハッシュタグ #俺俺改善活動 ツイートで追うカイゼン

メモはハッシュタグ #俺俺改善活動 を付けて Twitter へツイートしていた。*1

1月: 新しい環境へ

新しい環境でのカイゼンへ意気込む。

2月から7月: 空白期間

通常業務があまりにも大変で表に出せるカイゼンは何もできなかった。
ただ、あらためてふりかえると水面下ではカイゼンを推し進めていく要素が少しずつ育っていたように思う。

8月から年が明けて2月まで








変わったこと

  • 定期的な知識共有の場ができた
  • ドキュメントを書く人が増えた
  • ドキュメントの内容も「知っている人なら読める」から「知らない人を助ける」ものへ
  • メンバーが自分用に書いたシェルスクリプトワンライナーを周りに公開してくれるように

実際にやっていたこと

  • 暗黙知を探し出して自分の知識にする
  • 自分の知識になった暗黙知形式知に変換する
  • 新たにその領域に入ってきた人に形式知を共有する
  • 間違えやすい作業は、注意深くやる→マニュアル化→自動化へ変えていく

基本的には「自分が味わった苦労は他の人、特にあとからその領域に入ってきた人には味わってほしくない」を行動基準の軸にしている。

まとめ

新しい環境に移ってから1年以上がたっているが、まだカイゼンは始まったばかりだと感じている。
自分たちのチームはもっともっとカイゼンできるはずだし、カイゼンすることによって新たにカイゼンできることがさらに増えていき、なにより業務そのものの質を高めていける、そう思っている。

自分たちのカイゼンは始まったばかりだしカイゼンに終わりはない。
また1年後にそれまでの1年間をはてなブログに書きたい。

*1:あとで検索するのが楽なので