こんにちは、ダーツマシンはDARTSLIVEよりPHOENIXの方が好きなmizuno_asです。春までにはBフライトになりたいですね。
プログラマーたるもの、キーボードには少なからずこだわりがありますよね。過去に弊ブログでご紹介したこともありますが、弊社社員もそれぞれ、色々と個性のあるキーボードを使っています。
筆者はキーボードというと、オープンソースマガジンに掲載されていた連載「まつもとゆきひろのハッカーズライフ」内において引用された、以下の談話を思い出します。
米国西部のカウボーイたちは、馬が死ぬと馬はそこに残していくが、どんなに砂漠を歩こうとも、鞍は自分で担いでいく。馬は消耗品であり、鞍は自分の体に馴染んだインタフェースだからだ。今やPCは消耗品であり、キーボードは大切な、生涯使えるインタフェースであることを忘れてはいけない。
いいキーボードというのは、それなりのお値段がするものです。数万円するものも、決して珍しくありません。時には「キーボードなんて、ヨドバシのワゴンに1000円以下のがあるじゃない!」と言わんばかりの、家族の冷たい視線と無言の圧力に耐えなければならない時があるかもしれません。
そういえばイチロー選手のバットは、30万円くらいするという話を聞いたことがあります。野球に興味のない人からすると「木の棒に30万かよ!」と驚いてしまうわけですが、あの棒で年間数億を稼ぐと考えてみると、ひょっとしたら安いのかもしれません。プログラマーにおけるキーボードも、同じようなものなのではないでしょうか。
閑話休題(それはさておき)
先日弊社に配備された、スマートフォン連動型ダーツボード「DARTSLIVE 200s」を覚えていらっしゃるでしょうか? スマートフォンとダーツボードはBluetoothでペアリングして遊ぶのですが、そこでエンジニアであるダーツ部の面々は当然のように考えます。
PCとペアリングして、200sが投げてるデータをうまく解析できれば、ゲームアプリを自作できるんじゃないだろうか?
結論から言いましょう。できました。200sはなんと、ちょっとお高いBluetoothキーボード ((冒頭の伏線をここで回収。)) だったのです!
調査の結果、アウター、インナー、ダブル、トリプル、インブル、アウトブルにそれぞれキーコードが割り振られていることがわかりました。その配置は以下の通りです ((あくまで弊社にある個体を調査した結果に基いています。他の200sがすべて同じ配列かどうかは不明です。)) 。
ここまでくると、もう誰でも一度はやってみたくなりますよね。
ダーツボードを普通にPCのキーボードとして使ったらどうだろう!?
はい、やってみました。とはいえプログラムを書くのは難しそうなので、手始めにシェルを操作してみることにします。たとえばlsコマンドを実行するには
1. double 17
2. triple 15
の順にダーツを命中させてからPlayer Change(Enter)ボタンです。
前述のキーコード表を見た人なら誰もが気づいたと思いますが、このキーボード(認識違)にはBackspaceキーが存在ません。なぜならダーツプレイヤーたる者、一度放った矢をなかったことにするなどできないからです。とはいえこの男前すぎる仕様。ミスタイプは許されず、パーフェクトに狙った場所に、順番通りにダーツを入れ続けなければならないため、3文字以上のコマンドは入力難易度も青天井です。メーカーは一体何を考えているのでしょうか ((注:メーカーの想定外の使い方をしています。)) ?
しかし幸いなことに、STARTボタンにTabキーがアサインされています。そう、シェルならばコマンド補完という神の力が使えるのです。
それではエディタを起動して文字を入力してみましょう。nanoを起動するには
1. inner single 19
2. double 5
3. inner single 19
4. double 18
の順にダーツを命中させなくてはいけませんが、Tabキーを使うことで最後の「o」を省略できます。
なんでnanoかと言えば、emacsの起動コマンドは
1. outer single 6
2. triple 13
3. double 5
4. inner single 11
5. triple 15
で、入力難易度がとても高いからです ((筆者は休日に1時間ほどダーツを投げ続けたのですが、emacsを起動することはできませんでした。せめて「ema」まで入力できればTab補完でいけるのですが、ダブルに当てるの難しいです……。)) 。ちなみに「v」のキーが存在しないので、viやvimを起動することはそもそもできません ((大文字のVは存在します。OS XのHFS+はデフォルトでCase Insensitiveなので、Macを使えば「Vi」とダーツを当てることでviを起動できますね。キモいですが。)) 。Vimmer各位におかれましては、ハードウェアの仕様ということでご了承ください。
さて、筆者が実際にやってみた感想は
無理ゲー
の一言につきます ((やってみなくても自明だろう、というツッコミはなしの方向で。)) 。このキーボード(認識違)でサーバーメンテができるようになる頃には、むしろプロダーツプレイヤーに転職できるんじゃないでしょうか。
もしも「え、普段からダーツでPHPをバリバリ書いてるよ?」という凄腕ダーツプログラマーの方がいましたら、会ってみたいので応募ページからこっそり教えてください!