2012年3月27日火曜日

jQueryとjQuery mobileのバージョンに注意

jQueryとjQuery mobileのバージョンに注意 jQuery mobile 1.00 final,1.0.1 ではjQuery1.6.4対応 jQuery mobile 1.1.0 RC1 ではjQuery1.7.1対応 jQuery mobile 1.00 final,1.0.1ではjQuery1.7では動作しません。(http://ja.wikipedia.org/wiki/JQuery_mobile)

phoneGap1.5 でコンパイルエラー

phoneGap1.5 でコンパイルエラー コンパイルするとすぐにエラーになるので、いろんなところに情報が載っている。(http://sage.uraroji.com/) 解決方法:phoneGap1.5プロジェクトを作成するときに”Use Automatic Reference Counting”をオフにする。     それをしなかった場合はビルドセッティングを変更      ”Build Setting” “Apple LLVM compiler 3.1 – Language” > “Objective-C Automatic Reference Counting” NOにする

 原因:phoneGapコードがAutomaticReferenceCountingに対応していないだけのようだ。

virtualbox 4.1.10 VBOX_E_OBJECT_IN_USE (0x80BB000C) エラー

virtualbox 4.1.10 VBOX_E_OBJECT_IN_USE (0x80BB000C) エラー かなり焦った。。。 
解決方法:ここに書いているように(https://forums.virtualbox.org/viewtopic.php?f=6&t=48527)     *.vbox,*.vbox-prev のisoを登録しているラインを消去。
 原因:多分リンク先にも書いているように”Install Guest Additions"が関係していると思います。    

Guest Additons関係のisoを登録しているラインを消去するだけで、動作可能になった為。    そのため4.1.10が直接関係しているかは不明です。

2012年3月20日火曜日

携帯電話を変えました

今までのAUのガラパゴス携帯からスマートフォンに変更しました。 スマートフォンと言ってもキャリアがイオン(bmobile)の低速低価格タイプです。月額費用は約2300円(http://www.bmobile.ne.jp/aeon/) スピードはやはり遅いですが、ナビは使えるので、最低限のスピードは確保出来ていると思います。 端末はXperia mini pro (http://juggly.cn/archives/27649.html) 小さくて(カードサイズ)、ハードキーボードがついているのが良いですね。この端末はイオンのサポートリストには記載は無かったですが、音声、データの送受信は問題なく出来ています。標準ではFOMAのエリアプラスに対応指定なのが残念。ネットをみているといろんな対応方法が有るみたいです。時間があるときに試してみようと思う。
一つ注意点が有ります。NMPをすると通話までに丁度二日ほど必要でした。(bmobileからsimが送られてきます)そのため二日間は携帯での通話は出来ませんでした。

2012年3月11日日曜日

昨日はWさんの送別会

どんどん元の会社の人が退職していく。昨日もwさんが。。。 時代の流れに乗れないと会社もどんどん衰退していきますね。。

賀名生梅林

今年も賀名生梅林に行ってきました。今年は一週間遅く行ったのですが、やはり梅は咲いていませんでした。残念。 今回は梅林の急勾配の中を自転車で登ったので、それなりに楽しめました。それにしても急だ。(一部の区間で二回歩きました) 殆ど梅は咲いていなかったので残念ですが、咲いたら奇麗だと思います。

2012年3月4日日曜日

rubyでメタプログラミング

rubyのライブラリを使うと宣言されていない関数が利用出る場合が有ります。大抵は以下で紹介するdefine_method,method_missingを利用しています。これを背静的言語で書くと引数に条件を入れて、大量のif文が書かなければならない事が想像出来ます。このようなプログラミングだけだと逆にわかりにくくなる事が有りますが、適度に使うのは有効だとは思います。(かなりの重複が排除される事が予想出来ます)
#メタプログラミング説明クラス
class Meta
 #==abc関数を動的に追加
  define_method(:abc){|a1,a2|self.add(a1,a2)}
  #==普通の関数
  # *data1:数字
  # *data2:数字
  def add(data1,data2)
    data1 + data2
  end
  #==関数として存在しない関数に対しての処理
  def method_missing(id,*arg,&block)
    #引数の個数が2の場合強制的にaddコマンドをコール
    return add(arg[0],arg[1])   if arg.count() == 2
    super
  end
end


m = Meta.new
p m.abc(10,20)        #=> 30 追加された関数abcに対して
p m.add(10,20)        #=> 30 通常の関数に対して
p m.hoge(10,20)       #=> 30 存在しない関数に対して
p m.hoge("a","b")       #=> "ab" 存在しない関数に対して

rails 3.1 でのajax 3

前回のajaxはrails同士のajaxでした。今回はサーバーはrails,クライアントは通常のajax(jQueryを使っています) コードは以下のような感じになります。railsが頑張ってくれているので特に難しい事はないです。 xxx.html.erb
<%= submit_tag '送信', :onclick => ("submit('');") %>
html内のjavascript:ajax非同期送信
function submit(send_data){
$.ajax({
type: "POST",
url: "http://192.168.100.242:3000/products/index2.html",
data: "data1=John&data2=Boston",
success: function(msg){/*alert(msg);*/}
});
}
こちらでも問題は有りません。
function submit(send_data){
$.ajax({
type: "POST",
url: "/products/index2",
data: "data1=John&data2=Boston",
success: function(msg){/*alert(msg);*/}
});
}

html.erbに書く場合は以下のようになります。

html
コントローラー:ajax送信がここに入ってくる
def index2
    @ret = "return data"
end
index2.js.erb:index2のコントローラーの処理が終了した後このjavascriptがコールされる
$('#hoge').html("<%=  @ret %>");
routes.rb:ルーティング
post "products/index2"
補足:/assets/javascripts/コントローラ名.jsにjavascriptを書く場合は以下はいりませんが、xxxx.html.erbに書く場合は以下は必要です。

xxxx.html.erb内では<%= %>は使えますが、コントローラ.js内ではつかえません。

ついにゴールド免許

自分の車を売ってから4年ぐらいかな?乗る車は家の車のみになったので、違反しなくなりました。 初めてのゴールドです。