Mac OS X 上で Windows アプリケーションを動かす WineBottler なるものを発見しました。

このアプリケーションを使うと、Windows OS を持っていなくても、VMWare や Boot Camp をもっていなくても、Windows アプリケーションを Mac OS X 上で動かすことができるようです。

Web サイトを Mac で Windows の IE の表示確認をするために使ったので、そのメモです。WineBottler をもっと使いこなすには他のサイトを確認してみてください。

WineBottler を使いこなすための参考サイト

タイトル
Rubyベストプラクティス -プロフェッショナルによるコードとテクニック
著者
Gregory Brown (著), 高橋 征義 (監訳), 笹井 崇司 (翻訳)
出版社
オライリージャパン
Amazonで購入する

本書は、Ruby プログラミングの中級者向け指南書のようなものです。様々なコーディングテクニック(例えば、順序付き引数の使いどころ、ブロックの使い方、メソッド名のつけ方、メタプログラミング、関数型プログラミングテクニック、プロジェクトでRubyを使う際の慣習などなど)が満載です。

さすがオライリーといえる深い内容になっていて、Ruby を始めたばかりの人よりは、一通り Ruby でプログラミングをしたことがある人、Ruby を使いこなせているのか不安な人が読むと良いと思います。

今すぐ使えるテクニック!とはちょっと違うかもしれませんが、Ruby の動的な振る舞いや柔軟な拡張性を理解してさらに Ruby を使いこなすための一冊になると思います。

なお、Ruby1.9に対応していますので、サンプルコードは Ruby1.9で動きますし、最新 Ruby ではどうするの?を一発で解決できるようになっています。

Titanium は、JavaScript でコードがかけると言っても色々と制約があり、eval() を使うようなライブラリは使用できません。

2013/02/28追記

dom2json に渡すオブジェクトを dom.documentElement に変更しました。dom を直接渡すと、Android でエラーが発生することがあります。

2011/01/18追記

Titanium.include(“TiDOMParser.js”) だと実機のほうでエラーが発生するという報告を頂いたので、TiDomParser に変更しました。合わせて、プログラム中の TiDOMParser を TiDomParser に変更しました。ご報告ありがとうございました。

2010/09/15追記

eval() が使えないと書きましたが、使えることが判明しました。。。KitchenSink のサンプルにもありました。。 僕の環境で動かないと思っていたのは、eval(“1+1”); と試していたからで、eval() の中はコードになるので正確にはセミコロンが必要で、eval(“1+1;”); としないとダメでした。。訂正です。。

XML を JSON にするライブラリに、XML to JSON というライブラリがありますが、内部で eval を使っているため動きません。(中身を書き換えれば動きそうですね。。)

そこで、DOM から JSON に変換する XML.ObjTree というライブラリを元に、Titanium 上で XML を JSON に変換するライブラリを作ってみました。

ライセンスとか気にしたつもりですが、ObjTree のライセンスに引っかかるとかあればご連絡ください。すぐに対応します。

Mac のショートカットに、Command + Q でアプリケーションを閉じるというのがあります。多くのアプリでは、Command + W でウィンドウを閉じるので、ブラウザを使っている時なんかに間違って Command + Q を押してしまって「アプリケーション閉じちゃった・・・」となる場面が多々あります。(僕だけ!?)

それを防ぐ方法です。

  1. 「システム環境設定」を開く
  2. 「キーボード」-「キーボードショートカット」を開く
  3. 「+」ボタンをクリックする
  4. 「アプリケーション」に設定したいアプリケーションを選択する
  5. 「メニュータイトル」に「アプリケーション名 + ” ” + “を終了”」と入力する(例)Google Chrome を終了
  6. 「キーボードショートカット」に Command + Q 以外のショートカットを割り当てる

メニュータイトルのところが肝で、これは、アプリケーションの終了コマンドのメニュータイトルと一致させる必要があります。ほとんどのアプリケーションが「アプリケーション名」+ 「空白」+「を終了」になっているはずです。

スクリーンショット(2010-09-14 11.43.39).png

ジオ系を触っていて、緯度、経度から二点間の距離とその方向を計算するロジックは色々なところで必要になるので、メモ。

元記事は下で、JavaScript に書き直しただけです。

緯度、経度から距離と向きを算出

  • 緯度、経度から距離と向きを算出 - 中年プログラマblog

※現在リンク切れのため、ページのタイトルのみ記載させていただきます。

タイトル
メタプログラミングRuby
著者
Paolo Perrotta (著), 角征典 (翻訳)
出版社
アスキー・メディアワークス
Amazonで購入する

Ruby が人気のあるプログラミング言語である理由のひとつに、強力なメタプログラミングがあると思います。Ruby の本当の力を知るのは、このメタプログラミングを理解したときだとも思います。

本書は、Ruby の内部動作をきちんと説明した上で、メタプログラミングの説明をしてくれます。とても丁寧な説明で、少しでもプログラミングの知識があれば理解できる文章になっています。

プログラミング能力を高めるひとつの方法に、良いソースコードを読むことというのがあります。Ruby で書かれたフレームワークやライブラリのソースコードを読むと、なんでこんな動作になるんだろう?という疑問や、どうしてこんな風に書けるのだろう?という疑問が湧いてきます。

本書を読むと、そういった疑問の一つ一つが本当に紐を解くように理解できるようになります。Ruby の基礎を勉強した初級者が中級者になろうと思ったときに、ぜひ読むべき本だと思います。