Galaxy Nexusで気分良く音楽を聴き続けるために。

ようやく来たドコモ版Galaxy NexusへのAndroid4.2.2アップデートですが、適用するとBluetoothヘッドセットを使った音楽再生(A2DP)で問題が出るようになります。
再生自体は出来るんですが、高音部分になんかビリビリというようなノイズが乗るようになる。イコライザーで高音を落とすと抑えられるけど、そんなことしたくないし。
この問題、次の記事で紹介されてる方法で解消可能。ただしrootになれる必要はあります。
http://forum.xda-developers.com/showthread.php?t=2184333
作業としては、

  • 記事に添付されているzipファイルを展開し、中身の.so2つを転送
  • /system/lib/hwに入っているオリジナルの.soを上書き。オリジナルはリネームしてよけておいた方が無難。
  • 再起動

これで更新前と変わらない品質に戻りました。たぶん。

ナビタイムを試した話。

出かけるときの必需品にGoogle Maps Navigationがあります。これさえあれば迷わないし、1日500円とかのナビを借りる必要もなくなるんだけど困ったこともある。
渋滞のあしらい方が下手なんですよ。というより込み具合は気にせずに誘導してくれるので簡単に捕まってしまう。ルート上の渋滞を教えてくれはするけど、回避ルートは教えてくれないんですね。
これ以上を求めるのならやはり有料のが要るのかなと、よく名前を聞くナビタイムのドライブサポーターを試してみました。

良かったとこ

  • 渋滞情報を考慮して誘導。状況が変わるとリアルタイムにリルートをかけてくれるので、引っかかりにくい。
  • 案内時の音声読み上げ。交差点名なども音声がついてる。Googleマップは残りの距離と方向のみが音声なのでより親切。
  • 駐車場情報なども見られる

悪かったとこ

  • リルートが遅い。曲がりそこねてからかなり経ってようやくリルートがかかる。
  • しょっちゅうGPSシグナルをロストする。長いトンネルならまだしも、なんでもない所で突然ロストすることがしょっちゅう。しかも再捕捉があまりにも遅い。


結論: 解約。
渋滞考慮は良かったのに、その他がひどすぎた。
目的地付近でも平気でシグナルをロストするのですごく困る。やらかしてくれたあと、路肩に停めてGoogleマップに切り替えたらちゃんと連れて行ってくれたので、本当にGPSが使えなかったわけでもなさそう。
いつか、Google Maps Navigationが渋滞回避できるようになるといいですね。

AtomPub APIを実装しました。

カケラの樹にAtomPubで文書の操作ができるAPIを実装しました。
http://kakera.yumenosora.net/documents/1861
このAPIを使うことにより、外部のモバイルアプリケーションやWebアプリケーション等から文書の一覧取得・内容取得・新規作成・編集・削除と一通りの操作が行えるようになります。認可方式にはOAuthを使用しており、アカウントのパスワード等を用いず安全に利用できるようになっています。
利用はカケラの樹を使用できる方ならどなたでも可能です。メニューの『アプリケーション連携』からアプリケーションごとのキー発行が行えます。


どうぞご利用ください。

Ubuntuへの移行を目指して。

ってことで、なんとなーくUbuntuにしてみようかなと思ってとりあえず試してみました。
マシンはMacBook Pro late 2008。

まず、USB外付けHDDへのインストールを試してみたんだけど起動できず。どうやら外付けドライブからの起動がうまいことサポートされていないよう*1で?ダメみたい。

仕方ないのでHDD換装(元から付いていたドライブを換装済みなので、古いドライブに戻した)して*2、インストール実行。
使用したのはDownload Ubuntu Desktop | Download | Ubuntuから取得できる12.10の64bit版。グラフィックスの関係でインストーラがすんなり起動してくれないので、

  1. 電源投入後、紫の画面になったところで何かキーを押す
  2. F6を押してnomodesetにチェックを入れる

後はすんなりいく。
で、インストール後再起動がかかるとやはり起動中に死ぬので、

  1. shiftを押しながら起動
  2. 'e'を押す
  3. linuxで始まる行の最後に nomodesetと入力
  4. F10で起動続行

これでインストールできるので一応使えますけど遅いので、NVIDIAのドライバを入れる。
しかし普通に”システム設定”→”ソフトウェアソース”→”追加のドライバー”で入れられると思いきや、単にこの方法で入れると次の再起動後Launcherとかが出てこない*3ので、

をaptで入れてから実行。


意外と手こずりました。

*1:http://refit.sourceforge.net/help/usb_disk.html

*2:内蔵HDDのパーティションを切ってデュアルブートにするのはできるはず。その方が便利だけど、今回はとりあえずなので。

*3:http://askubuntu.com/questions/202677/nvidia-driver-doesnt-work-in-12-10

*4:今使っているカーネルのバージョンとあわせた方がいいのかも。

OpalでJavaScriptの要らない開発

は、無理ですけど。
Best Casino Sites in UK - Play at Best Online Casinos in 2018!
このコードトランスレータによって、それに近いことは可能になります。
導入や実際の使い方はドキュメントや解説記事に任せるとして、1週間ほど使ってみて分かったことをいくつか。

ちょっとした非互換性

$ ruby -v
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin10.8.0]
$ irb
irb(main):001:0> def foo
irb(main):002:1>   5.times do |i|
irb(main):003:2*     return 'foo' if i > 3
irb(main):004:2>   end
irb(main):005:1>   
irb(main):006:1*   return 'bar'
irb(main):007:1> end
=> nil
irb(main):008:0> puts foo
foo
=> nil
$ cat app/assets/javascripts/foo.js.rb 
def foo
  5.times do |i|
    return 'foo' if i > 3
  end
  
  return 'bar'
end
puts foo

JSコンソールの出力

bar

ブロック中でreturnした場合の結果が違う

ファイル分割

foo.js.rb

def foo
  puts 'foo'
end

bar.js.rb

puts foo

JSコンソール

foo

定義したモジュール、クラス、メソッド等は別のファイルに書いたコードからでも使える。
rubyコード中のrequireは意味がないようだ。

JSからRubyで書いた処理を使う

fooというメソッドをトップレベルで定義した場合、

Opal.top.foo()

でアクセス可能。

module Foo
  def self.bar
  end
end

とした場合は

Opal.Foo.bar()

で触れる。