| @労働

申し遅れましたが先月末からペパボで働いてます。Ruby on Railsで開発してます。社内IRCがあってVimやEmacs使ってる人がごろごろいて居心地いいです。前の会社よりも早く帰れるようになったのでNEETの頃みたいに毎日ブログ更新したいですね。以上、よろしくお願いいたします。

| @散財

Happy Hacking Keyboard Professional 2

Happy Hacking Keyboard Professional 2 を買った。HHKはLite2を持っていて、職場に持ち込んだりして楽しく使っていた。しかし打鍵感が安っぽいのと音がうるさいのを若干不満に思っていた。Proを所持している人からは「早く買った方がいい。自分は買ってからなんでもっと早く買わなかったんだろうと後悔した」とまで言われるので、ついに購入してしまった。買ったのはUS配列の墨バージョンで、印字はあり。

使ってみての感想

打鍵感はなんか以前ヨドバシカメラで触った展示品とは違う感じがする。もっと東プレっぽい感じを期待してたんだけど、スッカスッカで少しがっかりした。

しかし音は静粛で、押し込んだときに「コトコト」といい音を鳴らす。また墨風の手触りも良い。

US配列デビュー

US配列のキーボードは初めて購入したが、正直微妙な感じがする。プログラミングで多用する大括弧の開閉が左右に並んでいることなど、プログラミング時の利便性を考えての購入だったが、大括弧の開閉以外にはあまりメリットがないよう気がしなくも…。JIS配列では大きかったRETURNキーが小さくなっているのでその上に配置してあるDELETEキーを間違って打ってしまいがちだし、矢印カーソルキーがないのもやはり不便である。人はJKHLのみでカーソル移動をするにあらず。

VimとUS配列

またUS配列ではコロンの入力時にSHIFTキーの入力が必要となっているが、これはコマンド入力のプレフィックスにコロンを多用するVim利用時に問題となる。

noremap ; :
noremap : ;

と .vimrc に記述することでJIS配列通りの使い心地にできなくもないのだが、とりあえずはデフォルトの状態で様子を見ることにした。

全体的には、30歳になるまでJIS配列を使っていた人間が無理をしてUS配列に乗り換えても意味はないのかなぁ、という気がする。どうせMacは価格コムで安売りしてるJIS配列のやつしか買わないんだし。HHK Pro自体は、これに二万も出す価値があったのか、時間をかけて検証していこうと思う。

| @Mac/iPhone

仕事するときはWindowsでもLinuxでもVimを使っているので、最近ではVimが手足のようになっています。エレベーターに乗るときも j k を押そうとしてしまうほどです。しかしMacでコードを書くときはTextMateも使ってしまいます。TextMate Bundleが提供するスニペットや + R でスクリプトを走らせる機能とかやはり便利ですね。

しかしVimが手足のようになってる皆さんならお分かりいただけるかと思いますが、Vimmerは口より先に j k を連打してカーソルを動かそうとしますし、Ctrl + uCtrl + d による高速スクロール、Visualモードによる選択・一括編集、 #* を利用した検索なしのテキストエディティングなんて苦痛でしかないわけなんですね。

TextMateでVimのキーバインディングが使えないかなー、あるいはVimの中でTextMate Bundleが使えないかなー的なことを夢想していたら、それを実現しているテキストエディタがあったわけですよ。Vicoってやつでした。春頃チェックしてたんだけど、先日、「TextMate vim keybinding」みたいキーワードで検索していて改めてその存在を知ったので試用版をダウンロードして使ってみた次第です。まんまTextMate + Vimという感じ。

TextMateとの相違点としては、

  • Vimキーバインディング(Vimが使えない人には多分使いにくい)
  • デフォルトで日本語に対応!!!
  • デフォルトでサイドドロワーがついてる
  • ウィンドウ分割あり!!!

良くできてる点

  • TextMate Bundleが利用できる
  • GUIエディタとCLIエディタの長所をうまい具合に統合している。
  • TextMate同様、カスタムシェル変数を設定できる。
  • 従って + R でスクリプトを走らせるときに TM_RUBY という具合にシェル変数を設定しておくことで、RVMのRubyを実行時のインタープリタとして利用できる。

気になる点

  • テキストをインサートモード時にバックスペースで削除すると、削除するつもりのない文字を一文字余計に削除する
  • .vimrc を見て機能を拡張された状態のVimを使えるわけではなさそう
  • upコマンド(テキストが変更されていれば保存する機能)が使えない
  • なんとなく動作が不安定

このように気になる点がないわけでもないので、Vicoで書いていたこのテキストを途中でVimに切り替えて書いてしまっちゃった。Vimは .vimrc にごちゃごちゃ書いたりプラグインをインストールして始めて快適に使えるようになるので、キーバインディングだけviライクでもVimそのものの機能を提供してくれるわけではないVicoは、生粋のVimmerからするとちょっと使いにくいところがありますね。

それでも「j k 連打したい!」というVimmerの切実な欲求は満たしてくれますので、TextMate Bubdleは手放したくないというVimmerの皆様にはおかれましては導入をご検討いただければと思います。Mac App Storeで3540円ですが、以下から試用版がダウンロードできます。

| @労働

こういう会社で働けたら幸せだろうなと思います。

理想の会社

  1. Gitでソースコード管理している。
  2. 会社のGithubアカウントがある。
  3. 外部に公開されている技術ブログがある。
  4. IDEよりVimやEmacsを使うことが奨励されている。
  5. 社員が勉強会に参加することを奨励している。
  6. オープンソースコミュニティに貢献している。
  7. 音楽を聞きながら仕事できる。
  8. Rubyで開発できる。
  9. 会議が短い。
  10. アジャイル開発を実践している。
  11. テストコードがある。
  12. エンジニアは全員ノートパソコンで開発して、好きかってに席を替わってペアプログラミングとかやってる。
  13. MacとLinuxしかない。
  14. 優秀なデザイナーがいる。
  15. でかい本屋が近くにある。
  16. プログラムを書くことが好きな人たちが集まっている。
  17. SEという肩書きの人がいない。
  18. 大所帯でない。
  19. 金曜の夜はみんなはやく帰る。
  20. イスに金をかけている。
  21. 社員がfoursquareで会社のMayorの座を競い合っている。

| @WWW

Backlogユーザーのミートアップに行ってみた。Cacooなどで注目されているヌーラボのイベントなので何か面白い話が聞けるのではと期待して行った。

Backlogのそもそもの開発経緯は、自分たちが受託開発のプロジェクト管理のために作ったものを公開したのだそう。37signalsのBasecampと一緒だなと思った。『小さなチーム、大きな仕事』に書いてある。「自分たちが必要なものを作れ」、「最初の顧客になれ」ってやつ。自分たちすら必要としないものは誰からも欲しがられないのだろう。

ユーザーの活用事例で面白かったのがドメインの失効管理にBacklogを使うという使い方。前勤めてたとこでドメイン切れ事故が起きてしまったんだけど、ああいうのはExcelで管理してるだけじゃ確かに忘れやすい。Backlogに課題として登録してリマインダーの設定しとくと安全だなと思った。

意外に知らなかったのが開発者向けAPIの存在。シャノンの堀さんはAPIにアクセスするプログラムを書いて月初にBacklogにタスクを登録してしまうそう。これをアジャイル開発の手法であるスクラムと組み合わせて運用しているとのこと。生産性が3倍以上になったそうです。

人生初体験だったワールドカフェもなかなか興味深かった。テーブル上の紙にどんどん各人がアイディアを書いていき、時間を区切って席を替わりながら討論していく。紙の上にアイディアを書くので、声が小さい人の話も紙の上に残るし、話し好きの人が延々話し続けるタイプのディスカッションより話題に広がりが生まれるなと感じた。

ワールドカフェの議題は「あなたなら今後のBacklogをどうしますか」というもの。自分はGit対応や、37signalsのBasecampが幅を利かせている海外で勝負するには、オープンソースコミュニティには無償で使わせてあげるとPRになっていいのじゃないだろうか、といった意見を出した。

SkypeやGoogle Appsとの連携を希望しているユーザーが多くいる一方で、非ウェブ系企業ではファイル共有はおろかSVNさえ外部のリポジトリを利用することが禁じられ、Backlogの機能を十分に生かし切れていないとのことだった。

Backlogという製品に関してよりも、いろんな業種の人が異なる様々な条件でウェブサービスを使ってるんだなーということを知ることができて楽しかった。

また懇親会ではアラタナ研究所の @shunsuk さんとVimやRubyトークに花が咲いて非常に楽しかった。阿蘇にいた頃は技術の話ができる人が身近にいなくて悶々としてたもんだから、田舎から出てきて良かったなーとしみじみと感じた。天神で Kumamoto.rb やりたいです。

ヌーラボさんにはこのような場を提供していただき感謝しております。楽しかったです。ありがとうございました。

| @技術/プログラミング

MacVimでコピペできないのって仕様?

MacVimに他のアプリケーションでコピーしたものを貼り付けられないのって仕様? いろいろ調べてみたけどストライクな解決方法はないみたい。結局CLIのVim使ってる。

| @技術/プログラミング

iTerm 2が素晴らしいということなのでiTermをぼちぼち使ってるんですけど、Vimを起動したときに矢印キーで移動できないことが分かった。「Vimで矢印キーでカーソル移動とか小学生かよ」みたいなご意見もあるでしょうけど、入力モードのときに移動したくなったら j, k, h, l じゃ移動できないでしょ? そこで矢印キーですよ。

iTermでVimを使っているときも矢印キーでカーソル移動できないものかと、軽くググってみたところ次のような記事に遭遇した。

これを参考にとりあえず以下のように .zshrc に書いた。

case "${TERM_PROGRAM}" in
iTerm*)
  export TERM=dtterm
esac

しかし、これはちょっと自分的にはいただけなかった。

export TERM=dtterm

ってやると、termcap的な何かの作用で、Vimを閉じたときにコンソールを復元できなくなる(参照: Vimで編集を終了した後、元のコンソールの状態を復元したい)。僕はVimを閉じた後はコンソールを復元したい派なので、このやり方は受け入れられなかった。

.termcap に何か書くことも考えたけど、 .termcap で条件分岐する書き方が分からなかったのでさらにググってみた。すると外人が「iTermの設定で何とかできる」みたいなことを書いてるのを発見した。

なるほど、 .vimrc とか .zshrc とか側で回避する方法ばかり考えていたけどiTermで回避する方法を考えればよいわけか。

で、iTermを開いてみたところ、iTerm 1の頃から引き継いでいるBookmarkのDefaultの設定がよくなかったみたい。具体的には矢印キーそれぞれに ^[[A とか ^[[B みたいなキーが割り振られていて、このせいで矢印キーが使えなくなっていたわけだ。

Load Presetから "Use xterm Defaults" を選んでみたところ、無事矢印キーでカーソル移動できるようになった。めでたしめでたし。