dotfiles管理方法まとめ
この記事は前職のブログに書いた内容を再構成してます。 前職のブログは これ 。
ここ数年の僕のdotfiles管理方法をまとめました。
先に結論
homeshick をつかってGitHubに登録したdotfilesを配置、管理してます。
homeshickとは
homeshickとは https://github.com/andsens/homeshick で公開されているdotfilesを同期するためのツールです。 homesick というRubyGemがあるのですが その機能をまねて作られたそうです。 bashで動くのでインストールの手間と環境依存が少ないので僕はhomeshickを愛用しています。
後述のdotfiles用のレポジトリの作成、ファイルの追加、追加したファイルのsymlinkを作成するなど、便利なコマンドがそろっているのがhomeshickの便利なところです。
dotfilesをGitHubで管理する
僕のdotfilesは https://github.com/jiska/dotfiles_castle で公開しています。 dotfilesをgitで管理することで設定変更時の差異を確認したりちょっと書きかけだけど保存しておきたいなど気軽に作業できます。 またGitHubで公開することで他の環境からも参照しやすくしています。 たとえば家で設定した内容を会社で使ったりなど、環境構築が楽できます。
特別な設定を行っているdotfiles
いくつかのファイルには特別な設定を行っているのでかいつまんで記載します。
~/.ssh/config
~/.ssh/config
は公開はしたくないけどバージョン管理したいファイルのかなり上位に上がると思います。
こういったものは GitHubのプライベートレポジトリに保存しています。
手順は homeshick link
するだけなので簡単です、環境によってブランチを変えるだけで設定を変えることもできるので便利です。
~/.gitconfig
~/.gitconfig
では include や includeIf で特定ファイルを特定条件で読み込むことができるので以下のように ~/.gitconfig.local
を読み込むようにしています。
僕は会社とか自宅とか、git commitする環境でユーザー名やメールアドレス、GPGKEYを変更したいので以下のように設定しています。
$ cat ~/.gitconfig.local [user] name = yusuke mori email = XXXXXXXXXXXXXXXXX signingkey = XXXXXXXXXXXXXXXX # ...他にもつらつら記述してますが割愛
オワリ
皆さんもお試しください。
Claw44で自作キーボードデビューした
2019/09/07に 遊舎工房 さんで Claw44 を購入して組み立ててきました。 組み立てのサポートをしてくれた遊舎工房のスタッフの皆様に感謝します。
Claw44
Claw44 はふく( @yfuku_) さんが設計したキーボードです。大きな特徴は 左右の親指で押すキーが円状に4つ配置されている デザインです。 みやおか さんが使ってるのを見てこの見た目に一目惚れしたので、今回無事に組み立てることができて最高です。
ビルドガイド も細かく詳しく記載されているので作業に困ることはありませんでした。 はんだ付け作業は20年以上やってなかったのでできるか心配でしたがなんとかなりました。
組み立て完成までのタイムライン
当日のタイムラインは以下の通りです。閉店時間間際まで作業していて時間ギリギリでした。
時刻 | 出来事 |
---|---|
13:48 | 作業スペースに着席してビルドガイドに目を通す |
14:00 | ダイオードを曲げ始める |
14:16 | PCBにダイオードを差し込む |
14:31 | ┣ 1枚目終わり |
14:43 | ┗ 2枚目終わり |
14:45 | ダイオードのはんだ付け |
15:04 | ┣ 1枚目終わり |
15:18 | ┗ 2枚目終わり |
15:20 | キースイッチ用ソケット取り付け |
16:11 | ┣ 1枚目終わり |
16:33 | ┗ 2枚目終わり |
16:35 | TRRSとリセットボタンの取り付け |
16:44 | ┗ 2枚とも終了 |
16:45 | ProMicroの取り付け |
16:50 | ┗ 2枚とも終了 |
休憩 | |
17:20 | PCBにプレートの取り付け |
17:50 | ┗ 2枚とも終了 |
キーユニットを取り付けて動作確認 | |
18:50 | 動作確認完了!!! |
18:53 | 作業スペースレンタル代を清算して退店 |
組み立て作業のはまりどころ
キースイッチ用ソケットは取り付け慣れるのに時間がかかりました。あらかじめはんだを盛っておいたところをはめ込む直前に溶かすのですが、ゆっくりしているとはんだが固まってしまうし、斜めに刺さったまま固まってしまったり…。
また、動作確認の際に反応がないキーが3つありました。原因はキースイッチの針を取り付け時に曲げてしまったことでした。スイッチを外してラジオペンチで針をまっすぐに直してから挿し直しました。
4時間ほど使ってみての感想
今まさにこの記事を書くのにClaw44を使っています。率直に言うと 慣れるまで大変そうだけど慣れたら強い相棒になる と感じています。 僕は初めて40%キーボードに触ったため、数字キーや一部記号キーがないことが大変に感じる原因だと思います。まずは配置に慣れること。この量の文章書くだけで200分くらいかかっている(文章推敲のぞく)のでしばらく練習が必要です。
- 小指が無意識にenterやbackspaceを押そうとしてさまよう
- 親指を使うよう意識する
- aを押したつもりがsだった、eのつもりがfだった
- この記事を書いているうちに慣れてきた
- 記号の場所がわからない
- %とか#とか@とかどこにあるんだ
SHIFT + Command + [
などの入力がしんどい
慣れた先には快適なキボードライフがある予感がしています。
今後やりたいこと
- OLEDモジュールを追加したい
- キーマップを変更したい
- 日本語キーはいらない
- 右SHIFTを有効に使えてないので何か別のキーを割り当てたい
- キーキャップ変えたい
- 別のキースイッチも試してみたい
- TRRSケーブルとプレートの色を合わせたい
- なんならプレートの色を自分で塗装して変えてみたい
etc etc ...
やってみたいことがどんどん湧いてくる、なるほどこれがキーボード沼…。自分好みのキーボードを作る作業がこれから続きそうです。
Homebrewでインストールしたphp53とphp54を切り替える
という名のはてなブログにgistを貼り付けるてすと
Homebrewでインストールしたphp53とphp54を切り替える
という名のはてなダイアリーにgistを貼り付けるてすと
See you next gathering
2012年3月24日に開催されたAgile Samurai Dojo Gathering 2012に参加しました。
原著者であるJonathan Rasmussonさんの基調講演から始まり監訳者の西村さんの講演に至るまでとてもとても濃度のこいイベントでした。
僕個人は2011年9月のアジャイルサムライ他流試合に引き続き当日スタッフとして参加できたことを光栄に感じています。
他流試合に参加したときのエントリーがはてダにあげてあります。
さて、当日のことのふりかえりは様々な方がまとめていらっしゃるので僕個人はまとめません。
僕はJonathanに帰り際、「See you next Gathering, We well go to Canada.」と酔っ払いかつ拙い英語で伝えました。(ちゃんと伝わったかそもそも喋れていたか不安)
“アンタが書いてくれたアジャイルサムライを読んで俺らはこんなことやったんだぜ!”
と彼に恩返しをしたいのです。たとえば事例発表を彼の住む街へ乗り込んでやるなどのがいいかなと思ってます。
そのために次回以降もこの素晴らしいイベントの火種を燃やし続けて何かしらの価値を届けることができれば、できねばならぬ。
いまは単なる妄想ですが、いつか実現できるように考えています。
PHPUnit起動時のバージョン表示を消したい
自分用メモ。
PHPでのテスト駆動開発においてPHPUnitは大変便利でありどんどん使うべきですが、
たまにターミナルに出力されたテスト結果ログをいろいろ編集するときにPHPUnitのバージョン表示が邪魔だなぁと思うこともあります。
具体的にはこれです。
$ phpunit hogeTest.php PHPUnit 3.6.7 by Sebastian Bergmann. Configuration read from /home/jiska/Workspace/hoge/phpunit.xml ...I..
とりあえずPHPUnitのソースをいじることでこの表示を消したいと思います。
[PHPUnit]/TextUI/TestRunner.php の versionStringPrinted プロパティの初期値を TRUE に変更するだけです。
UbuntuでPEARでインストールした場合、PHPUnit /usr/share/php/PHPUnit にファイルが配置されています。
$ sudo vi /usr/share/php/PHPUnit/TextUI/TestRunner.php
/** * @var boolean */ protected static $versionStringPrinted = FALSE;
これを TRUE に変更して保存します。
/** * @var boolean */ protected static $versionStringPrinted = TRUE;
これでコンソール表示もちょっとだけすっきりします。
$ phpunit hogeTest.php ...I..
Ubuntu ServerにJenkinsをセットアップしてGitレポジトリと連動するまでのまとめ
さくさく行きます。
前提条件
Jenkins, Gitレポジトリのあるサーバー共にUbuntu Server 11.10 (64bit) です。
Gitレポジトリの管理にはgitosisを使用します。
git clone, pullにはsshを使用するので公開鍵登録を行います。
sshのポートは標準の22ではなく10022を使用します。
Jenkinsのインストールとセットアップ
公式ページ ( http://pkg.jenkins-ci.org/debian/ ) を参考にしつつPPAを追加してapt-get installします。
Gitのプラグインも一緒にインストールします。
$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - $ echo "deb http://pkg.jenkins-ci.org/debian binary/" | sudo tee -a /etc/apt/sources.list $ sudo apt-get update $ sudo apt-get instal jenkins $ wget -O jenkins-cli.jar http://localhost:8080/jnlpJars/jenkins-cli.jar $ java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin git $ java -jar jenkins-cli.jar -s http://localhost:8080 safe-restart $ rm jenkins-cli.jar
インストールが終わるとjenkinsユーザーが作成されます。
jenkinsユーザーにGitレポジトリのクローン時に必要になるssh鍵やgitconfigの設定を行います。
$ sudo -u jenkins -H git config --global user.email "jenkins@jenkins-server" $ sudo -u jenkins -H git config --global user.name "jenkins" $ sudo -u jenkins -H ssh-keygen -t rsa -C jenkins@jenkins-server
/var/lib/jenkins/.ssh/id_rsa.pub がgitosisで必要になるのでコピーしておきます。
鍵の名前も変更しておきます。
作業しやすいように作業ユーザーにchownしておいてください。
$ sudo cp /var/lib/jenkins/.ssh/id_rsa.pub ~/jenkins@jenkins-server.pub
.ssh/configを編集してGitレポジトリサーバーのsshポートを登録します。
$ sudo -u jenkins vi /var/lib/jenkins/.ssh/config
Host git-server Port 10022
Gitレポジトリサーバーと通信するために一度known_hostsに追加する必要があるのでsshを試みます。接続する必要はないです。
$ sudo -u jenkins ssh git-server (known_hostsに追加していいか聞かれるのでyesを答える)
Gitレポジトリの作成
gitosisを使ってアカウント管理とかレポジトリの管理をします。gitosisは便利です。
gitosisの説明や使い方は gitosisによるgitサーバーの管理 ( http://dora.bk.tsukuba.ac.jp/~takeuchi/index.php?%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2Fgitosis%20%A4%CB%A4%E8%A4%EB%20git%20%A5%B5%A1%BC%A5%D0%A1%BC%A4%CE%B4%C9%CD%FD ) が参考になります。
gitosis-initで管理用のレポジトリを作ったところで作業を開始です。
$ git clone gitosis@git-server:gitosis-admin.git
gitosis-adminにJenkinsサーバーの公開鍵とユーザー情報を追加します。
Jenkinsがpushすることはない(あっても困る)ので読み取り専用権限でいいと思います。
そこでreadonlyグループを作成し、clone, pullができるGitレポジトリの名前を登録します。
サンプルではyourprojectとします。
$ cp jenkins@jenkins-server.pub gitosis-admin/keydir $ vi gitosis-admin/gitosis.conf
[gitosis] [group readonly] members = jenkins@jenkins-server readonly = yourproject
これでJenkinsからGitレポジトリへのアクセスができるようになりました。
gitosis@git-server:yourproject.git
でアクセスできるようになります。