Goの標準logでdebug出力する

Goには標準でlogというパッケージが含まれています。
このlogパッケージにはよくあるログレベル別の関数が実装されていません。

ヘルパー関数にPrint [f | ln]、Fatal [f | ln]、およびPanic [f | ln]が実装されています。

ログレベル別に分けて出力する必要がある場合、別のパッケージを使用、または拡張する必要が出てきます。

ただ別パッケージを使うほどの規模でも無いこともあり、
golang/goのmessage.goで実装されているコードを使用しました。

参照元
github.com

var debug = debugT(false)

type debugT bool

func (d debugT) Printf(format string, args ...interface{}) {
	if d {
		log.Printf(format, args...)
	}
}

デバッグのログ出力したい箇所に下記を記述

debug.Printf("[debug] %s", hoge)

便利

Visual Studio Codeの設定をGist同期できる拡張機能「Setting Sync」を試す

普段でコードを書く場合はVim, Visual Studio Codeを使用しています。

会社と自宅で同じエディターを使う場合、別々に設定や拡張機能をインストールするのはとても面倒です。

Ansibleで反映させるのもありかと思いましたが、設定ファイルを管理するのも面倒だし、変更の都度修正もしたくない。

そこで今回試したのが拡張機能の「Setting Sync」です。
GitHubと「Setting Sync」であれば簡単に設定を同期することが可能で、設定をGitHubに保存できるのでとても便利です。

Setting Sync

marketplace.visualstudio.com

使い方もマーケットプレースのページに載っています。設定も簡単です。

「Steps To Get a Personal Access Token from GitHub」参照
簡単な流れは下記のような感じです。

  1. VSCode > Setting Syncプラグインをインストール
  2. GitHubAccess Token作成
  3. Access Token設定
  4. Setting Syncを使ってアップロード

これだけで設定がアップロードされ、他の環境で同期すれば設定が共有できます。

Setting Syncの設定はデフォルトのままでもいいと思いますが、自分の環境では下記の設定を有効にしています。

  • Toggle Auto-Upload on change (変更後の自動アップロード ON)
  • Toggle Auto Download (起動時の自動ダウンロード ON)

会社で設定を変更したりするときに更新忘れがあることもあるので、設定しておくと良いかと思います。

最後に

どの環境でも設定が同期できるので、別の端末でも簡単に開発環境が構築できます。

複数端末で環境構築めんどくさいと思ってる方は使ってみてはいかがでしょうか。

ErgoDashキーボードを自作してErgoDoxから乗り換えた話

f:id:mkaigawa:20181107123447j:plain

 

  

ErgoDoxを2017年から1年半ほど使っていましたが、

外国人の手のサイズにあわせて設計されているのかキーボードが大きく、

親指部分のキーが一部届かず、不満が出てきたため乗り換えを検討

 

条件

  • 分離型
  • 親指付近のキー 1.5〜2Uサイズが使用可能

 

自分が知る限りで完成品に該当するキーボードがなかったため、

仕方ないので自作キーボードで何か良いものがないか探してみる。

 

なぜ自作キーボード?

ここ数年、国内の自作キーボード界隈が盛り上がりを見せており、

色々な自作キーボードが国内で簡単に手に入るようになりました。

 

技術系イベントやキーボードイベント、BOOTH等の通販サイトから購入可能です。

その中で見つけたキーボードが今回乗り換えたErgoDashです。

 

ErgoDashキーボードとは

booth.pm

「ErgoDoxはキー数が多いけど、自作キーボードはキー数が少ない」と感じている方におすすめです。

ErgoDoxから乗り換えるのに最適なキーボードですね。

ただし完成品を販売しているわけではないので、自分で組み立てる必要があります。

 

他にもキーキャップとキースイッチは付属していないので、別で用意する必要があります。

キーキャップの種類、キーの押し心地を変えられるため、こだわりをもって選んだ方がいいです。

 

今回キースイッチは静音タイプのGateron Silent Redを用意。

静電容量無接点方式の静かさと押し心地には負けますが、通常の赤軸より静かで押した感じも軽くていいです。

 

今回はこちらのサイトから購入しました。

talpkeyboard.stores.jp

 

作成方法 

設計者の方がビルドページを作成されています。とても簡単です。

github.com

 

はんだ付け、キーの配置を変更するためのファームウェアを書き込むあたりのハードルが高いらしいですが、基盤から設計しているわけではないので、書いてある通りに作っていけば何も難しくはありません。

 

必要な道具

実際に今回使用した道具を紹介しておきます。

はんだこては温度調節出来る物をおすすめします。

ピンセットやはんだ吸取り線、テスターはあった方がいいですが、最初はなくてもなんとかなります。必要になったときに購入するほうがいいです。

 

キーマップ変更

ビルドガイド通りにすすめると、最後に「Firmwareの書き込み」があります。

キーマップを変更するためには、qmk_firmwareを使用してビルド後ファームウェアに書き込みが必要になります。

 

ビルドするための設定も自分のOSにあった設定方法を行えば問題ありません。

github.com

 

ビルド方法はqmk_firmwareディレクトリで下記を実行するとビルド出来ます。

make ergodash/rev2:default

ビルド成功後に*.hexファイルが出来上がります。

 

あとはqmk toolboxを使用して、ファームウェアを書き込みます。

github.com

 

qmk toolboxの使用方法は

  1. Local fileにhexファイルを選択
  2. ergodash/rev2を選ぶ
  3. キーボード側のリセットスイッチを押す
  4. Flashボタンを押す

これだけで反映されます。

 

使用中のキーマップ

keymaps/keymap.c at master · mkaigawa/keymaps · GitHub

gist.github.com

 

  • 使用するレイヤーはデフォルトとLower
    Defaultとは別にLowerに矢印キーを設定しているのは、vimと同じ動作をさせたかったため
  • マウス移動をLowerに設定 (rules.mk MOUSEKEY_ENABLE = yes) 
    マウス移動はあると便利

最後に

会社のキーボードをErgoDoxからErgoDashに替えましたが、キー配置をErgoDoxに近づけているため違和感なく使えています。

作業スペースも広く取れるようになり快適です。

 

ErgoDoxもいいキーボードですが、同じように不満を持たれている方はErgoDashを検討されてはいかがでしょうか。

 

2019/01/30 追記

今のキーボードに合うパームレストがなかったので作成しました。

f:id:mkaigawa:20190130105727j:plain

東急ハンズで木材加工をお願いして、ヤスリ(120番と400番)で削ってるだけの簡単な物です。

材料・加工費込の1200円程度でしたので、自作キーボードと一緒に自作パームレストはいかがでしょうか。