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

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

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

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

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

配列

[
  ["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(",") );
03 12月, 2009

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);
30 11月, 2009

Windows7雑感

MacにBootcampして64bit Windows7をいれた。
さらにVMWare Fusion 3をいれてBootcampのパーティションから起動したりもした。

Vista vs Windows7は全員がwindows7がいいって言うだろうね。
ただ、XP vs 7はXPって言う人は多いと思う。
Vistaはなんだったんだろう。

WIndows7は会社で導入するところ多そうだね。
XP使ってるってちょっと。。。っていう風潮でてくるんじゃないかな。

あとはIE9が開発中ということでMacがせっかく崩してきているシェアを守るんじゃないかなと予想中。

Macを使っている人はMacに不満があったりもするが、Windowsにもっと不満が多い。
Windowsを使っている人は不満を持っている人が少ないらしい。

これはリテラシーの比率にも繋がるからあれだけど、たしかにWindows使ってた頃はOSってモノに対して興味がなかったな。

こんな駄文を書いたのもすべて、このPV貼付けたかったからです。

「ムーンウォークかっけー。」

冬だから語りが続きます。

センチメートルとセンチメンタルて似てるよね。

そういってスペルを調べると「centimeter」と「sentimental」。
全然似てない。

そう、全部オレの思い込み。世界は全部オレの思い込み。

知らない事が世の中にはいっぱいあって、知っている事はそのほんの一部。
オレの価値観はオレの価値観だし。さらにいうと人間の価値観や倫理なんて人間だけのものだ。

ふとした事から、チョウチンアンコウの雄の壮絶さを知った
カマキリの雄の次に壮絶だ。

でもこいつらはそれを分かっていて、善悪すらなくそうやって命を繋いできた。
常識なんてものはなんて小さな世界で形成されているんだろうか。

ウェブは世界発信とかいわれているけれど、オレはもっと小さなオレの知っている世界の人たちに届いて欲しいなと思う。
あとは、相も変わらずもっと色んな事を知りたい。これはオレの病気らしい。

で、何がいいたいかって言うと「name」と「名前(namae)」って似てるよね。

21 11月, 2009

思考試行

冬。
白い息。
コーヒーがおいしい。

冷える体は暖を求め、
静かに時間が過ぎていく。

そんな冬がくる。

貼付けたビデオは、TRICERATOPSの「2020」って曲。
「2010」って曲だと思ってた。
2010って曲だと思っていたから、10年たってどんな歌に聞こえるか楽しみにしていたら2020だったしリリースが2002年。

ほんと、記憶って適当なんだな。
また10年後この曲を聞きたいと思う。

そのときどんな自分になっているのかとかそんな事を考えたりしながら
どんな自分になろうとしているのかとか、そんな事に向かいながら

久しぶりに日記的なものをこっちのブログに書いたな。
途中まで技術系の事書こうとしてどうでもよくなったんだ。

CentOS 5.4がきましたね。yum -y updateしたら勝手にインストールされたんですけどね。

しかしCentOSのパッケージは古い。RPMforgeのリポジトリもruby 1.8.5だしね。
Ruby 1.8.7や1.9.1など新しいバージョンのRubyを入れたい場合は、自前でコンパイルする必要がある。

自前でコンパイルした場合に一番こまるのは、yumなどで管理できないってこと。
なので一応RPMパッケージをローカルにつくってyumで管理する手順を説明する。

例としてRuby1.8.7をインストールするよ。
まずは、RPMパッケージを作成するためのcheckinstallをyumからインストールする。

# yum -y install checkinstall

これでRPMパッケージをつくることができる。
次にRuby1.8.7-p174をインストールする。
2009/10/22時点でこれが1.8系の最新なのだけど下記のサイトで最新が公開されているかもしれないので、その場合はそっちを使う。
おそらくp174ってところがパッチレベルなんだけどこれがもっと上の数になるはずだ。
その場合は下記のp174を適宜置き換えて欲しい。

# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.bz2
# tar xfj ruby-1.8.7-p174.tar.bz2
# cd ruby-1.8.7-p174
# ./configure --prefix=/usr
# make

これでRuby1.8.7がコンパイルされた。
つぎにcheckinstallをつかってRPMパッケージを作成する。

# checkinstall --fstrans=no

最初に聞かれるやつはRPMなのでRと入力してEnter。
他にも幾つか質問されるが全部Enterですすんでいこう。
ボクは一応メモとしてdescriptionのところだけ編集しました。

# cd /usr/src/redhat/RPMS/i386/
# ls

これでビルドしたRPMが表示されるはずだ。

最初にインストールする場合は

# rpm -ivh パッケージまでのパス

アップグレードする場合は

# rpm -Uvh パッケージまでのパス

です。

つまり今回初めて入れる人は

# rpm -ivh /usr/src/redhat/RPMS/i386/ruby-1.8.7-p174-1.i386.rpm

となります。
ボクはp72をいれていたので

# rpm -Uvh /usr/src/redhat/RPMS/i386/ruby-1.8.7-p174-1.i386.rpm

として新しくつくったRPMにアップグレードしました。
おしまい。

02 10月, 2009

私信

iPhoneは会社にあるよ。

ボクのマシンはMacBook(late2008)と呼ばれるMacBook Pro “13になる前のモデル。

先日Snow Leopardにアップグレードした。
ほとんどのアプリケーションが64bitで立ち上がっているのは結構気持ちがいいもので、地味なOSアップグレードだったけれども内部はかなり頑張っているんじゃないかなという印象。

MacBook AirやMac mini、そしてボクの持っているMacBookは64bit起動が可能なのに、64bit起動でない。どうやらProと差を付けるためだとかなんだとか、詳しい理由はわからない。

要は、「64bit起動できるマシンなのに出来ないようになっている」ということなのでどうにかこうにかすれば正常に64bit起動できる。

で、端折っていえば64bit起動できた。

以下方法。こういうの見つけてしまう人はほんとにすごい。

  1. /System/Library/CoreServices/boot.efiをリネームしてコピー
  2. コピーしたboot.efiをHexEditorにて編集
  3. /System/Library/CoreServices/に編集したファイルを入れる
  4. アクセス権限を変更
  5. 起動時にboot.efiでなく編集したファイルを読むようにする
  6. 32- or 64-bit Kernel Startup Mode Selector.appより64bit起動モードに設定する

ターミナル.appを利用するのでとっつきにくいがコピペでOKなのでチャレンジしたいところ。
自己責任でお願いします。

1./System/Library/CoreServices/boot.efiをリネームしてコピー

ターミナルを開き以下のコマンドを入力する($は入力しないので注意)。
これは/System/Library/CoreServices/boot.efiをユーザーフォルダにboot-k64.efiとしてコピーするという意味

$ cp /System/Library/CoreServices/boot.efi ~/boot-k64.efi

2. コピーしたboot.efiをHexEditorにて編集

HexEditorは以下よりダウンロード

HexEditor : http://park.zero.ad.jp/pautha/hexeditor.html

ユーザーフォルダにあるboot-k64.efiを開く。
図のように変更する。

3. /System/Library/CoreServices/に編集したファイルを入れる

再度ターミナルより以下を入力。

$ sudo cp boot-k64.efi /System/Library/CoreServices/

ここで

password:

と表示されるので、管理者のパスワード(大体の人は自分のパスワード)を入力する。

4. アクセス権限を変更

システムから読むファイルなのでアクセス権限を変更する。

$ cd /System/Library/CoreServices/
$ sudo chown root:wheel boot-k64.efi

5. 起動時にboot.efiでなく編集したファイルを読むようにする

$ sudo chflags uchg boot-k64.efi
$ sudo bless --folder /System/Library/CoreServices --file /System/Library/CoreServices/boot-k64.efi

6. 32- or 64-bit Kernel Startup Mode Selector.appより64bit起動モードに設定する

A hat full of skyよりhttp://www.ahatfullofsky.comuv.com/English/Programs/SMS/SMS.htmlをダウンロード。

起動したら色々きかれるけど構わずclose。そしてstart in 64bit modeにチェックをいれる。

あとは再起動したら終わり。

参考文献:
http://pc11.2ch.net/test/read.cgi/mac/1244528279/617
http://pc11.2ch.net/test/read.cgi/mac/1244528279/651
http://www39.atwiki.jp/macmini/pages/30.html