Ubuntu 11.04 インストール(ソフト編)

というわけで、前回はハードに攻めましたので Ubuntu 11.04 インストール・ソフト編です(?)。。

Unity/Compiz が動作している様子を動画で撮りましたのでインストールしていない方もお楽しみください。 🙂

クリーンインストールしました USB HDD にて初期設定から。

Adobe Flash などのサードパーティソフトウェアと、Unity の設定ができる Compiz 設定マネージャ。

sudo apt-get install ubuntu-restricted-extras
sudo apt-get install compizconfig-settings-manager

サードパーティソフトはライセンスをご確認の上インストールを。 CUI からやるとライセンス認証もテキストででます。 TAB とエンターで操作です。

次は Eclipse 動かすために sun-java6 をインストールしました。 まずは Synaptic パッケージマネージャを起動して、設定->リポジトリから Canonical パートナーパッケージにチェック。

ubuntu1104-30

でもって、以下のコマンドでまずは sun-java6-jdk が入ります。

sudo apt-get install sun-java6-jdk sun-java6-plugin
sudo update-alternatives --config java

下の update-alternatives コマンドでおそらく初期状態 OpenJDK に向いている Java を sun-java6 に向ければ準備完了。

あとは適当に Eclipse 展開して実行すれば動くはずです。 本来は /opt とかに入れたいところですが、Linux 版の Eclipse で shared モード動作させるとうまくインストールできないプラグインがでたことがありましたので、ぼくは /home/hiromasa/apps とかに入れています。

でもって、このようなパッケージ外のアプリケーションを入れると Unity ランチャーくんがアイコン表示してくれなかったり、うまくピン留めできなかったりちょっと悲しい感じになります。

この方法であっているか分からないのですが、このような場合、以下の場所に .desktop ファイルを作成してダブルクリック起動するとアイコンとかちゃんとでますので、その状態でピン留めとかするとうまい感じに動くようです。

cat ~/.gnome2/panel2.d/default/launchers/eclipse.desktop
#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[ja_JP]=/home/hiromasa/apps/eclipse-jee-helios-SR2-linux-gtk/icon.xpm
Exec=/home/hiromasa/apps/eclipse-jee-helios-SR2-linux-gtk/eclipse
Name[ja_JP]=Eclipse JEE
Name=Eclipse JEE
Icon=/home/hiromasa/apps/eclipse-jee-helios-SR2-linux-gtk/icon.xpm

こんな感じに設定ファイルつくると Songbird とかもちゃんとアイコンだせるようになりますぞ。 😀

ubuntu1104-33

うーむ、よしよし。 あとは適当にソフト入れて完了です。

ubuntu1104-31

最後にぴょこぴょこ動く Unity/Compiz を動画でお楽しみください。 🙂

 

萌え。(2回目)

Ubuntu 11.04 インストール(外付け USB HDD 編)

半年に一回のお楽しみ、Ubuntu 11.04 がリリースされました。 🙂

今回は alpha も beta も入れていなく youtube のスクリーンキャストでみていたのみでした。 GNOME 3 を入れずにつっこんできた噂の Unity は果たして! 楽しみ。

というわけで早速インストールでございます。

まずは Shuttle のデスクトップ PC から。 こちらは 10.10 からのアップデートインストールを試みてみました。 程なく終わり、難なく起動です。

ubuntu1104-10

Unity さんは Compiz 版じゃないのを 10.10 の Netbook Remix で使い続けていたので操作的な違和感はありませんでした。 ワイドスクリーンは左右余ってるでしょ、という感じの UI に仕上がっておりますので 16:9、16:10 そして 1024×768 の低めの解像度の環境でもうまい感じに動くと思います。

一点、Netbook Remix と違うのが左のドックがデフォルトで隠れる動作をすること。 おそらく、高解像度環境では常に出ていた方が便利と思います。 これらは conpizconfig-setting-manager の中の Unity Plugin 画面で変更可能です。(追加インストールします)

ubuntu1104-11

Behaviour タブのところで、Hide Launcher を Naver にすれば隠れなくなります。 また、アイコンの表示方式や大きさなども設定できるようです。 低解像度では 32 アイコンがよさそうです。

Netbook Remix の Unity ではデスクトップ領域があまり活用できませんでしたが、Compiz 版になってファイル置いたり screenlets とか普通に動くようになりましたので便利です。 🙂

というわけで、Netbook Remix で使っていた ThinkPad と IdeaPad で動作させていた USB HDD 起動の Ubuntu 10.10 もアップデートしよう、、と思いきや。

インストーラクラッシュ!

実は前々からそうだったのですが、うちの USB 外付け HDD に Ubuntu を入れるのはなかなかの鬼門で、インストーラを起動するマシンによって最後の GRUB インストール時に失敗するという事象が起きていました。

ubuntu1104-04

右の DVDドライブから、左の USB HDD にインストールする、、という感じです。 一度 Ubuntu が入ってしまえば、この USB HDD を別のマシンにつなげばそのまんま OS 起動するという Firefox Sync も Ubuntu One もいらないという素晴らしいシンクロ環境。 気に入っていたのに…。

10.10 はインストールマシン変えるとうまくいったり、HDD を全消去するとうまくいったりしていたのでだましだましやっていたのですが、11.04 はどーやっても、

申し訳ありません。 エラーが発生したために指定の位置にブートローダをインストールすることができませんでした。

となってしまいうまくいきません。 /var/log/syslog をみてもようわからん…。

・・・手を変え品を変え再試行インストール回数は 12回を超える。。

この間、ぼんやりと次の手は浮かんできていたのです。 USB HDD へのインストールは失敗するけど SATA へのインストールは成功するはずなんだ…。

ubuntu1104-01

そして殻を割られるかわいそうな USB HDD くん。(笑)

USB 変換をとってしまえばただの 2.5 インチ SATA HDD。 これを ThinkPad の SATA に移植です。

ubuntu1104-02

持っててよかった ThinkPad。 HDD すぐ抜けるようになっているでございます。 ありがとう。

で、SATA めがけて Ubuntu をインストール。 通常起動、キタ!

これをまた外して、USB HDD に戻して、、ブートしてくれよぅ。 面倒なので裸で(笑)

ubuntu1104-03

[tegaki]キター![/tegaki]

ubuntu1104-00

ubuntu1104-12

萌え。(完)

twitter streaming API への接続

その昔、twitter が Jabber プロトコルをサポートしていたことを覚えている人は何人いるだろうか?(笑)

どうもぼかぁ最新データをとるのにいちいちポーリングするのってのが全般的に好きではなくて twitter も Jabber 復活を心待ちにしていたのですが、果たしていつの日だったかストリーミング API として戻ってきたのでした。 良かった 🙂

というわけで、API 公開からずいぶんずいぶん経ってしまいましたが、何となく思い立って Groovy からつないでみました。

Java には twitter4j というとてもよくサポートされたtwitter ライブラリがありますので、まずはこちらを利用させていただきます!

Twitter4J – A Java library for the Twitter API

Twitter4J は Twitter API の Java ラッパです。 Twitter4J を使うと JSON や HTTP に詳しくなくても容易に Twitter とインタラクトするアプリケーションを書くことが出来ます。

さて、まず twitter につなぐのに面倒なのが oAuth 。。 とりあえず動作確認したいだけなのにアプリの登録とかしなければならなくあれですが、しょうがないのでしますです。

Twitter / アプリケーションを登録

ここでOAuthを使ったアプリケーションを登録することができます。OAuthは新しい外部アプリケーションの認証システムです。

アプリの登録をすると、consumerKey と consumerSecret がもらえますのでメモして、以下の Groovy ソースに入れて実行してみます。

import twitter4j.*
 
def oAuthConsumer = "入れる"
def oAuthConsumerSecret = "入れる"
 
def twitter = new TwitterFactory().getInstance()
twitter.setOAuthConsumer(oAuthConsumer, oAuthConsumerSecret)
 
def requestToken = twitter.getOAuthRequestToken()
def accessToken = ""
 
println "ブラウザで以下の URL にアクセスして表示された PIN コードを入力してください。"
println " ${requestToken.getAuthorizationURL()}"
System.in.withReader {
    print "PIN コード: "
    accessToken = twitter.getOAuthAccessToken(requestToken, it.readLine())
}
 
println "access.token=${accessToken.getToken()}"
println "access.token.secret=${accessToken.getTokenSecret()}"

実行すると URL がでてきますので、ブラウザにコピって入力して先ほど登録したアプリケーションからのアクセスを自分の twitter アカウントに対して許可してあげます。 そうすると PIN コードでてくるので、こっちのアプリに入力してあげると、今度はアクセストークンが2つもらえます。

コンシューマキー 2 つと、アクセストークン 2 つが揃ったらいよいよアプリをかきます。

ここではストリーミング API を使ってリアルタイムに自分のタイムラインをひろってみます。

import twitter4j.*
import twitter4j.conf.*
 
def consumer = "入れる"
def consumer_secret = "入れる"
def access_token = "入れる"
def access_token_secret = "入れる"
 
def builder = new ConfigurationBuilder()
builder.setOAuthConsumerKey(consumer)
builder.setOAuthConsumerSecret(consumer_secret)
builder.setOAuthAccessToken(access_token)
builder.setOAuthAccessTokenSecret(access_token_secret)
 
def config = builder.build()
def twitter = new TwitterFactory(config).getInstance()
def stream =
    new TwitterStreamFactory(config).getInstance(twitter.getOAuthAccessToken())
 
stream.addListener(new UserStreamAdapter() {
    @Override
    public void onStatus(Status status) {
        def user = status.getUser().getScreenName()
        def text = status.getText()
        println "@${user} ${text}"
    }
})
 
println "Start streaming..."
stream.user()
 
System.in.withReader {
    while((line = it.readLine()) && (line=line.trim()));
}
 
println "Stop streaming and cleanup..."
stream.cleanUp()

じゃんじゃんじゃん。 エンター押すと終了です。

ソケットつなぎっぱなしになりますのでリアルタイムにタイムラインが表示されると思います。 Web より速くでるときもあるみたいですね。 😀

これでたとえば、Ubuntu とかだと notify-send で簡単に画面に通知出せますので、画像ファイル取得とかちょこちょこつけると・・・

stream01

あっという間に通知クライアントのできあがり。 よい。

てなわけで oAuth はちょっと面倒ですが、それ以外は twitter4j と Groovy のおかげでとてもお手軽。 クライアントつくってみてはどうでしょう。

そういえば、オープンソースの twitter クライアントって、コンシューマーキーはどうしているんだろう・・・。

う。