HOKYPOKY.BLOG

懐かしいとかそういう感覚

それなりにいろんな音楽というものを聞いてきて、いい曲だなーとか、
このジャンルが好きだとかそういうものができてきた。

バンドをやっていたからか、コード進行やリズムなどでテンションが上がったりすることもあるし、
反面、この歌詞まじで泣けるとかがなくなってきたなとか思う。

でもね、そういうんじゃなくてさ、それなりにいろんな曲を聞いてると「懐かしい」って言葉だけで最高な曲ってあるよね。
なにがいいって、何もかもが懐かしいっていうかさ。

未だ知らないこともいっぱいあるけど、それなりに知ってきたこともいっぱいあるなって。
そんな年の瀬。まだ仕事中です(´;ω;`)ブワ

JISキーボードの”いいところを残して”USへ移行

Macのキーボードの話。
少し長いので、上のビデオの曲を聞きながら読んで頂けたらと思います。

キーボードと鞍

米国西部のカウボーイたちは、馬が死ぬと馬はそこに残していくが、どんなに砂漠を歩こうとも、鞍は自分で担いでいく。馬は消耗品であり、鞍は自分の体に馴染んだインタフェースだからだ。今やPCは消耗品であり、キーボードは大切な、生涯使えるインタフェースであることを忘れてはいけない。

USキーボードに変えた理由

ボクは今までJISキーボードを使っていたのだけれど、キーバインディングや、ホームポジションの位置をよくよく考えると「USキーボードに慣れておいた方がいいかもしれない」という謎の強迫観念に襲われた。

  1. キーバインドはUSキーボード 中心
  2. JISキーボードとUSキーボードを並べると、JISキーボードはホームポジションが若干左に寄っている
  3. ほとんど慣れの問題だからどっちでもいい

まず1、リマップしなおせばよかったりするしJISキーボードの方が良かったりするシチュエーションもあるのが文字通りに受け取るとUSキーボードの方がいい気がする。

2については、今まで若干の違和感があったものの特に気になったことはないので良かったが、知ると結構違和感が大きくなってきた。

実は決め手が3。
どっちでもいいということはUSでもいいってことに気がついた事が大きい。
好きな方使えばいい。難しくない。
ボクの場合はUSキーボードってキートップがシンプルだし、プログラマっぽくてカッコいいじゃない?
それだけで十分な理由だったりするのです。

というわけで、USキーボードを購入。今のApple Wireless Keyboardって値下がりしてたのね。
しかも電池が2本だった。マウスとあわせてeneloop4本同時充電できちゃう。素敵。

問題

ここでUSキーボードにして困った点が3つ。

まずは慣れてない。
これは慣れればいいだけだし、そもそもUSキーボードに慣れたいから移行するわけで甘ったれたことを言ってすいませんって感じ。
でもこれが一番移行に踏み出せない理由なんだよね。

次にEnterが小さい。
これも慣れの範疇かもしれない。
ただ一つ言えるのは、配置が変わった事でメリット・デメリットは両方あるということ。
デメリットだけみてNOというのは勿体無い考え方だとボクはいつも思う。
逆にEnterまでの距離は短くなった(ホームポジションが左寄から中央にシフトしたから)ので実際ミスタイプはそこまでないし、慣れれば全然気にならないと思う。
人によってはこの配置がUSのいいところと言うでしょう。というかそう言えるようになりたい。

そして一番の悩みが「英数」「かな」キーがなくなったことだ。

今の仕事について初めてMacを触った時に先輩から「何かわからないことある?」と聞かれ、
その時「かな/英数キーはどこにありますか?」と尋ねた。
先輩は「ないね。気になる?」って言われたのを覚えている。

今となってはその意味がよくわかる。
かなキー、英数キーが二つにわかれていてアルファベットを打つ前には英数キーを必ず押す癖がついた。「今のモード」を気にせずとも、英語が打ちたいから英数キーを押してから入力をはじめるといった慣れてみれば逆にそちらの方がいい。

慣れればCmd+Spaceや、Ctrl+Shift+JとCtrl+Shift+;でもいいのかもしれない。
でもこれだけは10年考えてもJISキーボードの方が優れていると思う。
Windowsのかな/英数キーの方がまだましだ。

KeyRemap4MacBookを使う

2時間くらいUSキーボードをつかい、Cmd+SpaceなりCtrl+Shift+JとCtrl+Shift+;の切り替えでやっていたものの、イライラしていることに気がついた。

そして見つけたのが以下のリマップソフトだ。

KeyRemap4MacBook

やっとタイトルに沿った内容になった。
このソフトをインストールし、システム環境設定からKeyRemap4MacBookを起動し二つのチェックボックスを入れるだけだ。

commandL2eisuu

When you type Command_L only, send EISUU
When you type Command_R only, send KANA

この文言を見たときにUSキーボードはJISキーボードを超えた!と確信した。
スペースの両脇にあるCmdが英数、かなキーになるというのだ。
そしてそれはCmdキーとして難なく両立できる。実にスマートな解決方法。

「iPodとリモコン」とボクは勝手に読んでいるのだが、
HDDレコーダーのリモコンを見たときにびっくりしたのがボタンの数。
機能が増えるとボタンが増える。それは普通の事だと思うしかしiPodはボタンの数が減った。

これに似た衝撃的な発想にびっくりしてこの長い記事を夜中の3時だというのに書いているわけだ。

他にもいろいろな設定があり、自分好みの(基本的には拡張的な)リマップがカーネルレベルで行われるようだ。

TigerからSnow Leopardの64bitまで対応しているし、とりあえずJISキーボードをUSにリマップすることもできるのでハード的な位置やキーの数は変えられないもののUS配置にを体験できるので試してみてはいかがでしょうか。

ソースコードも公開されているので、自分なりのオプション作ってコンパイルしてみては!?
ボクはfn+[mjkluio789]がfn+[0123456789]になるようなオプションにトライしてみようかな。
ちょうどテンキーになるような

追記:デフォルトでなっていた。すばらしい!
http://pqrs.org/macosx/keyremap4macbook/img/keypad.png

話はかわりますが!

貼りつけてあるYouTubeのビデオはボクの会社の後輩。
日付かわってしまいましたが、12/9にCDデビューしました!
99radioserviceというバンドでベースやってます。

タワレコのPOPがドーンと

99radioservice-1

気分が落ち込んだときとかに良い感じの爽やかポップロックです。
身内だから逆に無闇やたらとプッシュするつもりはないけれど、普通にかっこいいバンドだね。

詳しくはこちら!
99RadioService Official Web Site

memo2 – 配列の総当たり

配列

[
  ["A","B","C"],
  ["1","2","3"]
]

"A1","A2","A3","B1","B2","B3","C1","C2","C3"

にする方法

直積というらしい。wikipedia 直積集合

  var directProduct = function (arr) {
    var ans = [];
    var mul = function (a,b) {
      var ret = [];
      for(var i in a) {
        for(var j in b) {
          ret.push(a[i] + b[j]);
        }
      }
      return ret;
    }
    for(var i in arr) {
      if(ans[0] == undefined) {
        ans = qArr[0];
      }else{
        ans = mul(ans,qArr[i]);
      }
    }
    return ans;
  }

  console.log( directProduct(qArr).join(",") );

memo

JavaScriptのprototypeベースでクラスのようなものを作る方法。

function object(o) {
  var F = function () {};
  F.prototype = o.prototype;
  return new F();
}
function SomeClass () {
  // class constructor;
  console.log("SomeClass");
}
SomeClass.prototype = {
  prop1: "value1",
  prop2: "value2",
  method1: function () {
    console.log(this.prop1 +"/"+ this.prop2);
  }
}
var myCar = object(Car); //"SomeClass"
myCar.prototype = {
  prop1: "changed value1"
}
myCar.method1(); //"changed value1/value2"

JavaScriptの関数型言語っぽいアプローチ

var sum = (function (x,y,z) {
  return (x+y+z);
})(1,2,3)
console.log(sum); //6

それの応用。
jQuery.noConflict()をしつつ$を使う方法。

//既存の$を上書きしない(prototype.jsとの共存)
jQuery.noConflict();
//関数型のアプローチでjQueryを範囲限定で$と呼ぶ
(function($){
  /**
   * @function lorem
   * jQuery plugin
   */
  $.fn.lorem = function () {
    this.html("Lorem Ipusum");
    return this;
  }
  //ready
  $(function () {
    //つくったプラグインloremを使ってみる
    $("p")
      .lorem()
      .css("color","#ff0000")
    .end();
  })
})(jQuery);