ぎゃらぎゃらぎゃらくし~。

持ってそうで持ってなかったぼくですが、ついに小宇宙を燃焼させ買ってきましたスマートフォン。 🙂

今まで使っていたケータイさんは 3年もので、ポケうちは相変わらず素早いし、じぐついさんは賢いしで悪くなかったのですが、電池が持たなくなってきたのと、ついったーとかで出力できない Unicode 文字があるという、もういじれる範囲では如何ともしがたい問題がでてきましたのでついに機種変更となりました。

あ、いまどきは「変更」とはいわないですか。 周りの人も Android が多くなってきたので操作を覚えておこうなんてのもありでござる。 🙂

というわけで、なんだかとても速くてよさそうだった Samsung Galaxy SII です。

 galaxy00

とりあえずファーストインプレッションは画面でっかくてぬるぬる動いていいですねぇ。

で、ややしばらくぽちぽちいじって、…なんとなくつかんだ!

sp モードでの iモードメール送受信も、うまく動いているようです。

galaxy00

ちゃんと iチャネルも動いております。

Songbird とか Firefox とかあるのが Android さんの自由な部分。 😀

galaxy01

ちなみに音のほう。 上部端子ヘッドフォンアンプは、なんというか遠路はるばる走り切り疲れ切ったような音がするようです(笑) まぁまぁぼくの初代 iPod touch も似たような感じで、こんだけ無線とばす機械でオーディオ的な音を期待するのも厳しいのでしょう。 外で聴く分には十分です。 おしりのラインアウトからだしてみるのも面白そうですね。

音楽とかメディア系ファイルは適当に USB のマスストレージで送りつけると、転送後サーチして認識してくれるようで、Linux にも優しい作りになっております。 何を隠そう、Windows で iTunes を起動するのが面倒で、永遠に同じ曲しか再生されないぼくの iPod touch くん。。

てなわけで、Android の SDK は Linux での開発もサポートされております。 Ubuntu 11.04 でも以下の方法で実機とデバッグ接続できました。

USB を設定。 ファイルつくって権限つけます。 (ベンダーID は Samsung さんのです)

$ pwd
/etc/udev/rules.d
$ cat 51-android.rules 
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
$ ls -laF 51-android.rules 
-rwxr-xr-x 1 root root 56 2011-06-25 22:39 51-android.rules*

でもって、実機側の設定 –> アプリケーション –> 開発あたりで debug をオンにして から Ubuntu に USB 接続。

あとは SDK と Eclipse のプラグイン入れて、プロジェクトつくって、、

galaxy02

AndroidManifest.xml の Debuggable を true にして Java のプログラムを Android Application 実行すれば実機転送されプログラムが実行されます。

実は以前も実機なしですがちょっと Eclipse 上で遊んでいたことがあって、エミュレータおっそいなぁと思っていたのですが、実機転送のほうが全然快適なんですね。。 こりゃええわ。

[tegaki]お気にいった![/tegaki]

いろいろ遊んでみたいと思います。 😀

ぐるぐるぐる~び~。

ぐるぐるぐる~び~(挨拶) というわけで、プログラム言語 Groovy。

最近、このブログをみてくれている会社の人から仕事でぐる~び~という言葉を聞いたり、帳票作成 Jasper Reports の標準スクリプトが Groovy に設定されていたり、あなたの生活にそっと忍び寄る Groovy。 ぼくも内部的なツールをつくるときや、エクセルからソースを起こすときなんかに大変便利に使っております。 🙂

さて、Groovy の楽なところの一つにランタイムがポータブルであるというところがあげられると思います。 JVM と Groovy の jar がひとつだけあれば動作。 インストールいらないし、埋め込んで executeble jar にしてしまえばもう Groovy であったことすらわかりません。

$ java -jar groovy-all-1.8.0.jar hoge.groovy

 

カレントに jar 置いておけば、スクリプトファイルもこんなんでコンパイルかかってプログラムが動作してしまいますしとても便利です。

もうひとつ面白いなぁと思うのが、Groovy は Java と同じコメント形式をもちますが、先頭行のシェバングを読み飛ばせること。 というわけで、UNIX 上であれば以下のようにシェルスクリプトっぽい使い方ができるようになっています。

#!/opt/groovy-1.8.0/bin/groovy
 
println "*Groovy"
new File(".").eachFile {
    println it.name
}

 

これもなかなか便利ですね~。 ちなみに String が拡張されていて外部コマンドもすぐ呼び出せますので UNIX コマンドと合わせ技で、

#!/opt/groovy-1.8.0/bin/groovy
 
println "*Unix Command"
def command = "ls -l".execute() | "grep ^-".execute() 
command.text.eachLine {
    println it.split()[7]
}

 

こんなんもできます。 awk 使えというつっこみはなしで(笑)

Process クラスにオーバーロードかかっていて、パイプが | でかけたりして奥が深い。。

というわけで Ubuntu 生活も java-gnome あたりを使って Groovy ということで。 🙂

loader.groovy。

#!/opt/groovy-1.8.0/bin/groovy
 
// java-gnome クラスロード
this.getClass().classLoader.rootLoader.addURL(
    new File("/usr/share/java/gtk.jar").toURL())
 
// 本体スクリプト評価
evaluate(new File('notify.groovy'))

 

notify.groovy。

import org.gnome.gtk.Gtk
import org.gnome.gdk.Pixbuf
import org.gnome.notify.Notify
import org.gnome.notify.Notification
 
// GTK & NotifyOSD 初期化
Gtk.init([] as String[])
Notify.init("notify.groovy")
 
// アイコン取得
def pixbuf = new Pixbuf("./torimaki.png", 40, 40, true)
 
// NotifyOSD 表示設定
def notify = new Notification(
    "γ(@ω@)γ "
    , "私は不変であることすら破壊する。"神の領域を侵犯し私は私であり続ける。ぐるぐる。"
    , null)
notify.setIcon(pixbuf)
 
// 通知!
notify.show()

 

loader.groovy で java-gnome の jar を動的クラスロードして実行してみました。 gtk.jar は apt-get install java-gnome あたりで入ります。(パッケージ名ちがったかも)

groovy02 

まぁこのサンプルは "notify-send".execute() でいけたりするのですが、ちょっとしたプログラムの中から gnome を簡単に呼べるのはいろいろ遊べそうですね。 🙂

というわけでそんな Groovy さんですが、日本初(発)の Groovy 本がでるそうです!

Amazon.co.jp: プログラミングGroovy: 関谷 和愛, 上原 潤二, 須江 信洋, 中野 靖治: 本

GroovyはJavaと抜群の親和性を持つハイブリッド言語です。簡潔で強力な記述力と高い柔軟性を持っており、Javaを補完・強化する究極のパートナーになります。 本書はGroovyの基本的な文法を丁寧に説明するほか、Groovy API、Groovy JDK、Grape、メタプログラミング、ASP変換などの応用的な話題もカバーします。また、GrailsをはじめとするGroovyの関連プロダクトについても解説します。

さっそく予約しました~。

あなたのシステムにも Groovy ひとつ、そっといかがでしょうか。 ぐるぐる。

ノート PC に USB オーディオ

ノート PC にも内蔵のサウンドチップが乗っていて、ヘッドフォンとかラインとかついています。 ただその構造上やはりノイズがのりやすく、まぁなんとなく鳴ればいいくらいのイメージ。

ぼくは ThinkPad でプログラムかきながら音楽とか、枕元で IdeaPad とかおいてお休み音楽するときもありますので、ここで環境改善ということでポータブルの USB オーディオを買ってみました。 。

songbird03

なんだか暗くて分かりにくいですが、Creative さんの USB です。 1980円くらい。

ThinkPad、IdeaPad ともに Ubuntu 11.04 で動作させていますがうまく鳴ってくれています。 音は初代 iPod touch のヘッドフォンアンプくらいの音質?。 内蔵からみると相当良くなりますので二千円の価値は十分にあると思うです。 アンプも少し大きなヘッドフォンでも鳴らせるくらいはできるようです。

てなわけでソフトのほうもいじってみようということで、おなじみ(?) Songbird さん。

songbird01 

本家での Linux 公式サポートは終わってしまっているのですが、実はひそかにバイナリ配布は行われています。 その他 getdeb とかにもありますね。

Contributed Builds – Songbird Wiki

Linux Provided by Songbird.

これでうまく動作するのですが、せっかく Ubuntu で動かすので曲名を notifyOSD 通知してみます。 アドインがあるのですが、古くなってしまって現在そのままだと動きませんのでパッチしますぞ。

ubuntu-notifyOSD – Songbird Add-ons

Displays playing artist info using ubuntu notifyOSD library.

Songbird のアドインは Firefox のそれとほぼいっしょの構成です。 基本は XUL + JavaScript です。

てなわけで、まずは対応バージョンをあげてしまいます。

install.rdf

<?xml version="1.0" encoding="UTF-8"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"
     xmlns:songbird="http://www.songbirdnest.com/2007/addon-metadata-rdf#">
 
  <Description about="urn:mozilla:install-manifest">
    <em:id>ubuntu-notifyOSD@songbirdnest.com</em:id>
    <em:name>ubuntu-notifyOSD</em:name>
    <em:version>0.2.0.2</em:version>
    <em:creator>Tuna Celik</em:creator>
    <em:description>Displays playing artist info using ubuntu notifyOSD library.</em:description>
    <em:iconURL>chrome://ubuntu-notifyOSD/skin/icon.png</em:iconURL>
    <em:optionsURL>chrome://ubuntu-notifyOSD/content/options.xul</em:optionsURL>
    <em:homepageURL>http://www.tunacelik.info/</em:homepageURL>
    <em:targetPlatform>Linux</em:targetPlatform>
    <em:targetApplication>
      <Description>
        <em:id>songbird@songbirdnest.com</em:id>
        <em:minVersion>1.2.0</em:minVersion>
        <em:maxVersion>2.0.0</em:maxVersion>
      </Description>
    </em:targetApplication>
  </Description>
</RDF>

maxVersion を適当に 2.0.0 とかに。

chrome.manifest

overlay chrome://songbird/content/xul/layoutWithBrowserOverlay.xul         chrome://ubuntu-notifyOSD/content/overlay.xul
content ubuntu-notifyOSD                      chrome/content/
locale  ubuntu-notifyOSD  en-US                  chrome/locale/en-US/
skin    ubuntu-notifyOSD  classic                chrome/skin/

アドインのせる overlay を変更。

あとはインストール後に、~/.songbird/ の下に donotify.py ってありますのでそれに実行権限をつけてあげれば動くと思います。 🙂

songbird04

うむ。 まんぞくまんぞく。 😀