Ergodox ハードウェアシリーズ (基板1)

Posted by YpsilonTAKAI On 2016年9月21日水曜日 0 コメント
入手した基板は、作った人が手を入れていて、オリジナルとはキー配列が少し違います。

違い

Ergodoxの小指の外側のキーは、通常のキーの1.5倍(1.5uと表現されます)のものが4段になっています。
この上側の3段分のキーを普通のサイズのキー2個にしてあります。あと、一番下の段の一番外側のキーが無くなっています。

意図は変更した本人に聞いていないのでわからないのですが、
- そもそもErgodoxの標準のファームウェアだとあと2個キーを増やす余裕がある
- 小指の外にわりあてちゃえ
- 一番下の外って打ちにくそうだから、これも移動しちゃえ
ってな感じなのではないかと。

また、標準サイズのキーを使っている場所を増やすことで、コストのかかるキーキャップの調達を容易にするという目的もあるかもしれません。

実物

Ergodoxは左右別れているので基板は2枚になります。

 

で、すごいのは、これ、左右の基板は同じものなんです。右用と左用はひっくり返すだけ。配線を工夫してどちらでも使えるようにしてあるのです。ここがErgodoxのハイライトですね!




写真の基板はすでに各スイッチに対応するダイオードや、コネクタ類をハンダ付けした後のものです

READ MORE

ErgoDox やばいもの入手

Posted by YpsilonTAKAI On 0 コメント

エルゴ系のキーボードについて関心があるので、比較的早い時期からErgoDoxのことは知っていたのですが、手を出していませんでした。

状況

- 職場は Kinesis Advantage、 自宅や移動用は Typematrix

この組み合わせで一応満足はしている。 ただ、Typematrixの物理配列はいいのですが、単体でのリマップ機能が無いので論理配列がいじれない。これがすごく残念。
Davinciを使ってファーム部分を入れ変えてしまうプロジェクトは進行中だがいろいろあって、あまり進んでいない。この件はそのうち公開する(たぶん)。

- Ergodox自作なのに意外とコストがかかるのがわかっていた

自作=安く済むと思っているわけではありません。 ラジコンにしても、オーディオにしても、それなりにいいものを作るとなると、コストがかかります。 オーディオなどのように、一般消費者向けの大量生産品があるようなものであればなおさらです。

- TEKがあるじゃないか。

Truly Ergonomic Keyboard (https://www.trulyergonomic.com/store/index.php) です。
開発中からマークしていたんだが、リマップもできるし、これいい。 自宅用に買うつもりだった。
ただ、リマップ機能がどんなものか発売になってもよくわからなかったりして、あーだこーだしていて、
「まだ買ってない」状態が今でも続いている感じ。
ただ、これ、やっぱりちょっと持って歩くにはでかいかな。

- Kinesis Advantageをもう一つ買うという選択もある

発売からだいぶ経つし、なくなるんじゃないかなんて話も出ていたりしたので、もう一つ買うという選択もあった。だが、最近 Advantage2 が出たので、まだしばらくは新品が入手できそうなので、放っておく。

- planck いい!

Massdropでplanck(http://olkb.com/planck/)っていうキーボードを知った。これいい。 40%。完全に格子配列。ミニマム。これ持ち運びによさそうだよねー。


状況が変った

日本でキーボードの情報ってあまり手に入らないんだけど、こういう情報の常として、「2ch」にはいくつかのキーボード関連のスレが立っていまして、いちおうチェックしていたりするわけです。

また、去年の秋ごろあたりから、海外の共同購入サイト(ちょっと毛色が違うけど)のMassdrop(https://www.massdrop.com)で、Ergodoxの完成品が売られるようになったりして、日本でも局所的なブームが訪れていました。

そんなとき、2chのスレに、突如Ergodoxの基板を作っている人が現れ、日本でもいるんだなーと思っていたら、なんと余ってるやつを1組500円で売るという。

500円ですよ。

とりあえず買うでしょ。

コンタクトしてみると、スイッチとキーキャップとケース意外の部品もだいたいあって一緒に譲ってくれるとのこと。基板だけ入手してあとはぼちぼち考えようと思っていたのですが、いきなりゴールに近いところに。

作りはじめましたよ。

ということで、作り始めたのですが、完成の目処が立ったので、ブログ記事にしようかということになりました。


以降、過去の内容も含めて、つらつら記事にしていきます。
READ MORE

Euler: Problem 101

Posted by YpsilonTAKAI On 2015年6月21日日曜日 0 コメント
久し振りにProject Eulerを解きました。
(※ なんと4年前に書いた下書きがそのままになっていた)

数列がはじめからN個与えられたときに得られる母関数では、N+1まで行くと間違った値(BOP)が出ます。 与える数列を増やしていったときに得られるすべてのBOPの和を求める問題です。

そういえば、こういうのって、補間法かなんか使えば出るんじゃなかったっけ…と思って解いたら解けました。
ウィキペディアで調べたら、ラグランジェ補間法ってやつだったので、まあ、そのまま、式にした感じです。

コメントにも書きましたけど、もうちょっとclojureらしく書いたほうがよかったのかもしれないんですが、そうすると、たぶん、元の式の形がなくなってしまいそう。


READ MORE

cider 0.9.0 がでましたね。 ->

Posted by YpsilonTAKAI On 0 コメント
twitterでciderの 0.9.0 が出たという情報が流れてきました。
 ->> もう、 0.9.1 になってます。 (6/27 追記)

マイナーバージョンが1上ったということで、いくつか新しい機能が追加されています。

メンテナのBastovさんがブログで、いくつかの重要な変更について書いています。

アップデート

ciderを入れ替えるお決まりの作業は以下の2つ。
  • emacs lisp のパッケージをアップデートする。
    僕は、melpa_stableのを入れてます。
  • $HOME/.lein/profiles.clj の cider/cider-nrepl のバージョンを変更する。
ですが、今回は、起動時に、
WARNING: CIDER requires nREPL 0.2.7 (or newer) to work properly
と怒られてしまいます。 これは、 leiningen 2.5.0 (2.5.1でも)の依存している、cider-nrepl が 0.2.6だからのようです。

  • $HOME/.lein/profiles.clj の :dependencies の tools.nrepl のバージョンを0.2.7以上にしてやる必要がある。
僕は、 0.2.10にしときました。 結果、僕の .lein/profiles.clj はこんなふうになってます。
{:user
 {:java-cmd "D:\\Java\\jdk1.7.0_79\\bin\\java.exe"
  :dependencies [[org.clojure/tools.nrepl "0.2.10"]]
  :plugins [[lein-localrepo "0.5.3"]
            [cider/cider-nrepl "0.9.0"]]
  :jvm-opts ["-Dline.separator=\"\n\""]}}

デバッガ

デバッガは最も要望の多い機能だったそうです。作者のMarabarbaさんのブログに簡単な説明があったのでちょっと使ってみた。 emacsのelispデバッガのedebugに触発されて作ったとのことですが、初版なので、ステップ実行と、値の注入(injection)ができるだけのようです。
動作については、Marabarbaさんのブログのgifアニメを見て、自分でやってみるのがいいでしょう。

僕も、使ってみるのに何か書こうと思って、久し振りにProject Eulerを解いてみた。
途中で、2,3回使ってみたけれど、なかなかよい。

依存の独立

ciderが依存しているライブラリが、プロジェクトから切り離されたとのこと。
これは僕にはよくわからなかった。なんのことでしょう?

コード補間の表示がリッチに

company-modeでのコード補間に、アノテーションが付きました。
たしかに付いてるんですが、windowsであるためか、全部左に寄ってしまって、ちと見にくい。


ほかにもまだまだ機能が追加されているようですが、いずれそのうち。




READ MORE

MSYS2 + emacs 24.5 で magit ができない件

Posted by YpsilonTAKAI On 2015年5月7日木曜日 0 コメント
emacs 24.5 の Windows 64bit 版 を見つけたのを機に、 MSYS から MSYS2 に変更してみました。

MSYS2 は git が使えて、パッケージマネージャの pacman も使えるので、移行する価値がありそうです。

だいたい上手く動いたのですが、magit を起動しようとすると、

magit-get-top-dir: d:/d/userdata/xxx/xxx/xxx/ isn't an existing directory

と言われてしまい、起動に失敗します。どう見ても、パスの取得がうまくいってませんね。
ググってみると、以下のページを見つけました。

https://github.com/magit/magit/issues/1318

cygwin でも同様のことが起るようですね。

中程にMSYSでの対応策が書いてあって、

(defun magit-expand-git-file-name--msys (args)
  "Handle Msys directory names such as /c/* by changing them to C:/*"
  (let ((filename (car args)))
        (when (string-match "^/\\([a-z]\\)/\\(.*\\)" filename)
          (setq filename (concat (match-string 1 filename) ":/"
                                 (match-string 2 filename))))
        (list filename)))
(advice-add 'magit-expand-git-file-name :filter-args #'magit-expand-git-file-name--msys)

とりあえず、これを、scratchで実行してみると、問題解決。

init.el に入れて使うことにしました。


READ MORE

kinesis advantage のリマップ

Posted by YpsilonTAKAI On 2015年4月12日日曜日 0 コメント
メインのキーボードとして、もう10年以上、kinesis advantageキーボードをDvorak配列で使っているわけですが、先の投稿で、Dvorak programmerという配列、と言っても、最上段の数字と記号を入れ替えたものなわけですが、これを試してみようと思って、キーボードのマッピングを改めて見てみたわけです。

出発点ということで、現状の配列のコメントを。 リマップ後の画像は前にも投稿してますが、まあ、コメント付きということで。

オリジナルのマッピング

advantage の dvorak のもともとの配列は、こんな感じです。


この配列には、大きな問題がありまして、

○ 左にスペースキーが無い

左にスペースキーがないのです。 UNIX系の作業をしていると、コマンドをコピペで作るときに、右手でポインティングデバイスを使って、スペースを挟みながら貼り付けていくことが多いのです。 そのとき、左にスペースキーが無いと困ります。

○ いいところに、変なキーがある。

まあ、キーボードとしては、普通なんでしょうが、「Aの左のCapsLock」と「Sの右のバックスラッシュ」はちょっとどうなんだろう。

リマップ

で、こんな風にリマップしてます。

○ 左親指

BackSpace と Del を一つずつ右にずらして、バックスペースのあったところをスペースにしてます。
Endキーは、潰されてしまっていますが、ふだん使わないので(Homeも使わない)どこにもアサインしてません。

○ 右親指

PageDown のところを、Ins にしてます。 ターミナルエミュレータで、Shift-Ins、 Ctrl-Ins、 Alt-Ins を使うので、Insが裏にあるのは面倒です。 PageDown/PageUp は使わないのでこれも潰したまま。
WinKey 使わないのと、Emacsで Alt を Meta として使っているので、WinKey を Ctrl に、 元の Ctrl を Alt にしてます。

○ 左

CapsLock は、Esc にリマップ。  Solaris系のサーバーを使うと、kshを使うことになるのですが、これ、emacsモードだと、入力補完がEsc-Escに割り当てられてます。 多用するので、ここをEscにしちゃってます。 最近は、kshはあまり使わないのですが、Emacsを使うときにも意外と便利だったりします。
qの下を、マクロでAlt+~ にしてます。 IMEの起動なのですが、最近は、SKKを使っているのでほとんど使いませんね。

○ 右

バックスラッシュとハイフン(ー)を入れ替えてます。 ハイフンは、日本語の長音とか、プログラミングでたくさんつかうので近くにあると便利です。


さて、現状こんな感じです。



READ MORE

Dvorak, QWERTY, COLEMAK で DvorakJPかつSKK

Posted by YpsilonTAKAI On 2015年3月22日日曜日 0 コメント
突然ですが、こんなサイトを見つけたので、試してみました。

日本語

まずは、日本語だったらどんな分布だろうと思ってタイプしてみました。
入力したのは、Wikipediaの「それから」の説明文を、DvorakJPでSKKを使って入力したものです。

SKKはシフトキーを多用しますが、カウントされてませんが、大文字のときのシフトは数に入れないのがこの測定ツールの仕様みたいです。

Dvorak

やっぱり、なんか、理想的ですよねー。


QWERTY

だいたいにおいて、入力をDvorakJPでやってるので、それをQWERTYにしたときの結果が不利になるのはわかりきってますが、いかにも、ホーム行の使用率は低いですね。
DvorakJPでは、か行にcを使うので、kの頻度はcの頻度になるはずです。


COLEMAK

Dvorakよりも優れていると言われるCOLEMAKですが、これだけ見ると、Dvorak配列の方が良さそうに見えますね。
COLEMAKに合った方式にしたらよりよくなるかもしれません。


Clojureのソースコード

こんどはclojureのソースでやってみます。
コードは、手元にあった適当なやつです。

DVORAK

dvorakです。括弧、角括弧を多様するので、シフトキーの使用率が高くなってますね。
たしかに、右上の方を使うことが多いと感じます。


DVORAK-PROGRAMER

プログラマ用のDVORAK配列ってのがあるようで、なんと、4段目の無シフトのところに各種記号がわりあてられています。数字の配列も独特です。 そう言えば、もともとのDvorak配列ってこんな感じじゃなかったかなぁ。
シフトの使用頻度が下った分、負担のバランスが平均化されてる感じです。 これ、試してみようかな。


QWERTY

まあ、こんな感じでしょうね。

COLEMAK

やっぱり、英語ベースだと、なかなかよさそうな配列なんですね。


おしまい

Dvorak Programerってなかなかよさそうですよね。 数字を別面に持って来てしまうという手もあるし、実現方法を含めて検討してみようかなぁ。



READ MORE