さくらの VPS と Apache Tomcat7

突然ですが、さくらの VPS を借りてみることにしました。 :)

当初はこの VPS に家から VPN でつなぎっぱなしにして、うちのローカルサーバの一部の機能を外に出す使い方を考えていたのですが、まぁ実際そこまでする要件もなさそうなので断念(一応、Android からの接続もできたのですが)。

というわけで、Groovy とか Rails とか PHP 以外のアプリケーションが動作するお遊びサーバとしてスタートです。

最近だとたまにこのサイトでもでてきます、Cloud Bees とか dotCloud とか無料の PaaS つかってもその手のアプリは割と簡単に動かすことができるのですが、無料だとドメインマッピングに制限があったり、ちょっと不自由。 お金を払うとなると VPS と同じくらいかもっと高い料金になりますので、自由度の高いほうに転んだ感じです。

あ、ちなみにここ .another はそのままコアサバです(笑)

というわけで、アプリケーションサーバ選択。 OS はさくら標準の CentOS 5.5 のままです。

Jetty にしようか Tomcat6 、いやいや Tomcat7 でしょ、とか、ここで GlashFish とか。。 しばし考えて、あまり根拠もなく Tomcat7 が選択される。 7 は初めて触りますが、勝手知ったるなんとかでなんとなかるでしょう? :D

Java6 は Oracle 提供の .rpm を、Apache httpd と PostgreSQL は CentOS のパッケージのものを。 Tomcat7、Groovy は それぞれからの提供のものを /opt に展開インストール。

そういえばバーチャルホストでトム設定するの初めてだったので微妙にてこずりました。。

Groovy のパス設定。(ファイルつくる)

[root@capibara ~]# cat /etc/profile.d/groovy.sh 
# groovy
PATH=/opt/groovy-1.8/bin:${PATH}

ポスグレの表領域位置指定。(標準で /home にパーティションきられているので表領域を /home/postgres に移動。 サービス起動前に前に以下のファイルつくる)

[root@capibara postgres]# cat /etc/sysconfig/pgsql/postgresql 
PGDATA=/home/postgres
[root@capibara postgres]# chkconfig postgresql on
[root@capibara postgres]# service postgresql start

ポスグレ initdb 等。(たとえばユーザつくって redmine の DB 作成の図)

[root@capibara home]# su - postgres
-bash-3.2$ 
-bash-3.2$ initdb -D /home/postgres/
-bash-3.2$ createuser -P redmine
Enter password for new role: 
Enter it again: 
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE
-bash-3.2$ createdb redmine -O redmine
CREATE DATABASE

Tomcat7 バーチャルホスト設定。 $CATALINA_HOME/conf/server.xml の Engine に追加。

<Engine name="Catalina" defaultHost="localhost">
  <Host name="apps.maple4ever.net"
     appBase="apps.maple4ever.net"
     unpackWARs="true"
     autoDeploy="true" />
</Engine>

$CATALINA_HOME/apps.maple4ever.net のディレクトリを作成。 ちなみに adduser tomcat して、$CATALINA_HOME 配下を tomcat 権限に、また Tomcat は同ユーザで commons-deamon 起動しています。クラスパスの jar が 6 と違うので要注意。

このディレクトリに .war 入れるとファイル名をコンテキストパスとしてデプロイされます。

Apache のバーチャルホスト及び mod_proxy_ajp 設定。 指定のコンテキストパスを Tomcat になげます。 /etc/hosts や /etc/sysconfig/network なども設定のこと。

[root@capibara www]# cat /etc/httpd/conf.d/proxy_ajp.conf 
 
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
 
NameVirtualHost *:80
 
<VirtualHost *:80>
   ServerName unknown 
   <Location />
      Order deny,allow
      deny from all
   </Location>
</VirtualHost>
 
<VirtualHost *:80>
   ServerName apps.maple4ever.net 
   <Location /captcha-grails>
      ProxyPass ajp://apps.maple4ever.net:8009/captcha-grails
   </Location>
   <Location /click-examples>
      ProxyPass ajp://apps.maple4ever.net:8009/click-examples
   </Location>
</VirtualHost>

Location でおしり / なしにすると、スラつけなくてもいい感じに飛ばしてくれるようです。

てなかんじで、端折っているのであんまりメモにもなっていませんが(笑) 実際には、iptables の設定なども加わるでしょう。

Groovy + Grails のサンプルアプリ。(そのうち消えます)

sakura2011072402

Apache Click のサンプルアプリ。(そのうち消えます)

sakura2011072403

やぁ、動いた!

さすがに JVM だけあってさくさく動きますね。

sakura2011072401

さくら VPS はメモリ 1G のサーバにしていますが、これで残りメモリ 400M ほど。 ポスグレがフル稼働していないのでなんともですが、アプリが 1つか 2つは動きそうな感じです。

さて、何して遊びましょう。 :)

スマートフォン対応。

このサイトをスマートフォン表示対応してみました。 対応といっても基本 WordPress 3.2 のデフォルトテーマ twentyeleven にしただけなのですが。。(笑) リキッドデザインでそのまんま横幅が狭いブラウザで表示される感じで面白いですね。 :)

よく分かってないで、デフォルトから子テーマでちょこちょこソースに手を入れてしまっているので、たぶん iPad とかでみるとおかしなことになる予感なのですが、、とりあえず手持ちの Galaxy と iPod touch のブラウザでなんとなく見えたので良しとします。。

PC 版。

smart03

Galaxy SII webkit 版。

 smart02

iPod touch Safari 版。

smart01

twentyeleven テーマ設定で 1カラムにしていますが、2カラムでもうまいことサイドバーがおちて表示できるようになっているようです。

ぼくが修正した点としては、画像表示についてデバイスの横幅を超えると横幅合わせはしてくれるのですが、アスペクト比はにょろ~んと狂ってしまうようでしたので固定ピクセル指定して収まるようにしています。 ソースコード表示ととか、youtube 貼り付けがはみ出すのは仕様ということで。。(笑)

まだまだ直したいところあるのですが、とりあえずスモールスタート。 少しずつ変えていきたいと思います。

あ、そうそう。 ブログ始めて 5年? 6年? 初めてのワンカラムです。

MMRT の影響か!?。(←いつの話だ

プログラミング Groovy キタ!

楽しみにしていました書籍「プログラミング GROOVY」が Amazon さんより到着しました。 日本初(発)の Groovy 本ということで、著者の方々も Web で Groovy のこと検索すると必ずお世話になる方ばかりですごいす :) 。。

てなわけで早速。

groovy20

出たばかりの Groovy 1.8 についても網羅されていますし、 イデオムや GDK の API が一覧できるとても良い本でした。 Groovy の歴史的経緯など背景的なことなども知ることができて楽しく読み終えることができました。 ぼくはまだ全然 Groovy のボキャブラリが少ないので、今後も座右の書として活躍です。 :)

同僚の人が、仕事で Groovy をやりはじめたようなのでお勧めしておきましょう。(←どうやら貸さないらしい(笑)

最近ぐるぐる言い出したのは、実はふと買ってみた Groovy In Action が面白すぎたせいなのです。 おもしろい技術書というの非常に大切な存在ですね。 In Action 1st は既に絶版(Amazon で 1.5万円くらい。。)ですので、プログラミング Groovy がその役目を果たすのではないかと思います。 :)

てなわけで(??)、本日は Groovy スクリプトをひとつかいてみました。

以前、shiroica さんがつくられていました XREA/CORESERVER への SSH 許可ホストを登録する Python スクリプトの Groovy 移植版です。 なんとなく移植(笑)

XREAのサーバーに設置したWordPressを自動バックアップする環境を整える

さて、とりあえず手動で登録すればよいことは分かりましたが、登録の有効期限は30日間だけに限られています。また、出先でSSHで繋ぐために別の IPアドレスを登録した場合、上書きされてしまい、再度登録しないと繋がらなくなってしまいます。そのため、ホスト情報の登録も自動化する必要があります。そこでこんなスクリプトをPythonで書いてみました。

Groovy は JVM と Groovy の jar ひとつあれば動作しますので Windows でも動作させやすいのではないかと思います。(下のソースは手元の Ubuntu で動かしていますので1行目にシェバングが入っています)

動作環境のグローバル IP アドレス調べて、レンタルサーバの管理画面に GET で送信してあげるプログラムです。

#!/opt/groovy-1.8.0/bin/groovy
 
// ここを書き換えてください
def server = 'サーバ名'
def username = 'ユーザ名'
def password = 'パスワード'
def ipaddressResponder = 'グローバルIPを教えてくれるPHP等のURL'
 
def adminURL = "http://$server/jp/admin.cgi"
 
if(!(ipaddressResponder.toURL().text ==~
    /\d+\.\d+\.\d+\.\d+/)) {
    println "Failed ($ipaddress)"
    System.exit(1)
}
 
def values =
    [ 'id' : username, 'pass' : password,
    'remote_host' : ipaddress, 'ssh2' : 'SSH登録']
def param = ""
values.each {
    param += 
        "${it.key}=${URLEncoder.encode(it.value, "UTF-8")}&"
}
param = param[0..param.size()-2]
 
if(!("$adminURL?$param".toURL().getText("Shift_JIS") =~
    /データベースに追加しました。/)) {
    println "Failed (unmutch)"
    System.exit(1)
}
 
System.exit(0)

 

Linux で groovy シェルを動かすと Exception したときに echo $? が 1 返してくれるようなので、例外処理は思い切って削除しちゃいました。

ほとんど調べることなくホントにのりでかけますので便利ですねぇ。 こんな感じじゃない?って書き方が普通に動くのはちょっと感動します。 Java だけでなく、Web 制作で PHP とかやられている人にもとっつきやすいのではないでしょうかっ。

さて大抵の OS でいけるこの Groovy スクリプトの簡単な動作のさせ方は、、

  1. とりあえず上のソースの 1行目を消す。 ソース内にあるサーバ設定とかする。
  2. Groovy をダウンロード してきて、アーカイブの中に入っている embeddable\groovy-all-1.8.0.jar を上のソースを保存したファイル(たとえば registhost.groovy)といっしょのフォルダに置く。
  3. コマンドプロンプトやコンソールをそのディレクトリに開いて以下のコマンドを入力。
java -jar groovy-all-1.8.0.jar registhost.groovy

 

Keep on Groovy – ing!

Eclipse Indigo リリース

少し前になりますが統合環境 Eclipse の新版 Indigo がリリースされました。 :)

てなわけで休日をつかって Ubuntu にインストールです。 Linux 版 Eclipse ってあんまりスクリーンショット載せてる人見かけないので見てってください= ヨーロッパでは Eclipse ユーザの 3割くらいは Linux とどっかに書いてたのですが(笑)。

Eclipse.org – Indigo Simultaneous Release

Indigo is the annual release of Eclipse projects on June 22 2011;
this year 62 project teams are part of the release.

Eclipse最新版「Eclipse Indigo」登場 – 62プロジェクト同時公開 | エンタープライズ | マイコミジャーナル

Eclipse Foundationは6月22日(カナダ時間)、Eclipseの最新リリース版となる「Eclipse Indigo」を公開した。EclipseはJavaをはじめ様々なプログラミング言語に対応した統合開発環境。プラグイン構造を採用した高い拡張性が特徴で、代表的な開発環境のひとつとされている。

今回は残念ながら PHP Developer 版はメンテナさん不足で本家からのリリースはないそうで、その場合は Pleiades All in One さんからディストリビューションリリースされているので使わせていただくと良いと思われます。

というわけで、ぼくは本家 JEE 版から入れてみました。 今回のリリースのポイントのひとつとなっている WindowsBuilder は EE には入っていないので別途入れてみました。 SE 版では標準です。

WindowBuilder

WindowBuilder is composed of SWT Designer and Swing Designer and makes it very easy to create Java GUI applications without spending a lot of time writing code.

アップデートサイトがありますので、いつも通りの感じでインストールできます。

いざ実行。

indigo02

XWT がちょっと目を引きますね。 :)

Indigo にあわせて SWT 3.7 もリリースされています。 Linux で SWT 使っている人もあまり Web でみかけないので WindowBuilder / SWT のスクリーンショットのせておきますです。

indigo01

この手のは案外レイアウトマネージャのこととか知らないと、うまく使えなかったりするので逆に難しい時もありますが、固定位置合わせとかは便利そうですね。 イベントハンドらの生成とか JFace のデータバインディングとかまだみていませんが、そのうち遊んでみるです。

その他、Groovy-Eclipse とか Subclipse とかいつも使っているものは、ぱらっとさわった限り Indigo でも大丈夫そうです。 Android のプラグインも入りました(ただ、こちらはまだ入れてみただけです)

統合環境新しくなると、なんかつくってみたくなるのはなぜなんでしょう。(←逆ですわな。

mikumiku

さて、DX7 色。 こちらも届きましたぞ。 すごいね、ねんどろいど。 :)

WordPress を dotCloud にデプロイ

デプロイ田中です、みなさんこんにちは!!。。

本日は、最近ちらほら聞きます PaaS 型クラウド dotCloud さんに WordPress をデプロイしてみるです。 まぁ無料版のでやっているのでお遊びなのですが、まずはなかなかうまく動くようですぞ。 :)

dotCloud は、さまざまなプラットフォームのアプリケーションを配置できるいわゆる PaaS のサービスです。 Java はもちろん Ruby や PHP、サーバサイド JavaScript の node.js なんかも動作するようです。 また各種データベースも動作します。

wp3203

DotCloud – Deployment made simple

DotCloud lets you create the best cloud stack for your application. We give developers and IT professionals the freedom and flexibility to mix and match languages, databases, caching and messaging components without the need for additional servers or infrastructure.

PHP を扱っているとアプリケーションをサーバにインストールする行為というのは、FTP か何かでファイルを「置く」みたいな感じなので感覚が違うかもしれませんが、PaaS というのは OS にアプリをインストールするようなイメージで使います。 ここでいっている “OS” にあたるのがアプリケーションサーバというやつです。

まぁそうは言っても PHP にはアプリのインスタンスを保持するような仕組みはないので実質的にはファイルが置かれるだけなのですが、dotCloud の管理ツールの使い方的には PHP でもそんな感じになります。

さて、PaaS が普通の Web レンタルサーバと何が違うかというと、OS 的な部分が隠ぺい(クラウド)されていることです。 メモリとかファイルシステムとかネットワークとかリソースをあんまり考えずに使えるようになっていて、また必要であれば動的に付け足すことができます。

あとスナップショットバックアップのような、その時のサーバそのものをバックアップ保持するような機能がついているのも多いですね。 アプリケーションを簡単に動作させて運用するために特化した機能がついたサーバが PaaS。 この技術の後ろに見え隠れそるのがサーバ仮想化技術になります。

ぼく的な PaaS の感覚は、いろんな言語や動作プラットフォームを使ってインターネット上にアプリを公開できてわーい、、という感じなものです(笑)

てなわけで早速、Groovy のアプリをデプロイ、、といきたいところですが、ここは勝手知ったる WordPress でまずはお試しデプロイです。

dotCloud には便利な管理操作用 CLI インターフェースが用意されていますので、こちらで操作します。 python が必要なのでお使いの OS にいれて、、最初 easy_install というのが何かさっぱりわからなかったのは秘密です。。(マニュアル参考

$ sudo apt-get install python-setuptools
$ sudo easy_install pip && sudo pip install dotcloud

Ubuntu 11.04 の場合はこれで準備完了。 簡単アルネ。

API キーなど入れながら、アプリケーション(名)作成。(誰かとかぶらない任意の名前)

$ dotcloud create maple4ever

あとは WordPress をローカルのどこかのディレクトリに展開し、そのルートに dotcloud.yml ファイルを以下のようにして PHP と MySQL サービス設定。

wp:
  type: php
 
db:
  type: mysql

でもって、このディレクトリをカレントにおいて push します。

$ dotcloud push maple4ever .

これでデプロイ完了。

起動した MySQL インスタンスに WordPress 用の DB を create databese します。 とりあえず MySQL の情報閲覧。 「アプリケーション名.サービス名」で info コマンドしてあげます。

$ dotcloud info maple4ever.db
build_revision: rsync-1309187922.37
cluster: wolverine
config:
    mysql_password: nyoron
    mysql_serverid: -1
created_at: 1309187925.281122
ports:
-   name: ssh
    url: ssh://dotcloud@ugogogo.dotcloud.com:9284
-   name: mysql
    url: mysql://root:mogemoge@hogehoge.dotcloud.com:9344
state: running
type: mysql

WordPress に設定する DB ホストは hogehoge.dotcloud.com:9344 のところなのでメモ。(デフォルトポートと違うので全部いれる)

create table & ユーザ作成。 こんなかんじ。 キャラセットは指定するとはじかれたので、そのまま行きました。

$ dotcloud run maple4ever.db -- mysql -u root -p[パスワード]
# mysql -u root -p[パスワード]
 
mysql> CREATE USER 'wp' IDENTIFIED BY '[任意のパスワード]';
mysql> create database wp;
mysql> GRANT ALL ON wp.* to 'wp'@'%';

上はデータベース名 wp 、ユーザ名 wp で設定の図。

次に info コマンドで php サービスの URL を取得して普通にブラウザアクセス。

$ dotcloud info maple4ever.wp
-   name: http
    url: http://d84fa7d5.dotcloud.com/
state: running
type: php

あとはいつもの通り WordPress をインストールすれば、

wp3202

ようこそ WordPress の世界へ。 :)

wp3201

動いた~!

WordPress 3.2 RC2 日本語版キタ。  サイト中身はめ組さんの「日本語版インポートテストデータ」です。 試験に大変便利なので見てみてください。 :)

http://d84fa7d5.dotcloud.com/

(そのうち消えます。)

残念ながら dotCloud 無料版ではドメインマッピングできないので変なホスト名ですが、なかなかよく動きますね~。 memcached のインスタンスもあげられるようなので、追加してみるといいかもしれません。

httpd は nginx を使っているようです。 いじればパーマリンクも設定できると思います。 ファイルのアップロードなども問題なく動きます。(ちなみに Java のアプリケーションサーバは Jetty のようです)

てなわけで、ネットワーク上に好きなアプリを簡単に配置して使う。 そんなことができるようになるかもしれない PaaS プラットフォームのお話でした。 他にも cloudBees とか同様のサービスがありますので探してみるのも面白いでしょう。

ばいっ。(←芸風がおかしい。。

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

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

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

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

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

 galaxy00

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

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

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

galaxy00

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

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

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 上で遊んでいたことがあって、エミュレータおっそいなぁと思っていたのですが、実機転送のほうが全然快適なんですね。。 こりゃええわ。

お気にいった!

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

ぐるぐるぐる~び~。

ぐるぐるぐる~び~(挨拶) というわけで、プログラム言語 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

うむ。 まんぞくまんぞく。 :D

OSC 北海道 2011 WordPress 出展

昨日、6/11(土) に札幌市産業振興センターで開催されました、オープンソースカンファレンス北海道 2011 に WordBench 札幌として WordPress ブースとセミナーの出展を yuriko さんとしてきました。 今年はなんと来場者数 600 人とのこと、東京を除く1番の数字とのことでなんだか頼もしい感じでした。 :)

セミナー資料とかは後日記載しますので少々お時間をください。

今回はスクリーンキャスト動画でプレゼン行っていたのですが、実は動画総時間が 41分あることが事前に分かっておりまして、45分のセミナーで時間足りないのは自明。 かなり飛ばしたのもありまして分からない感じですいません。 動画は編集しまして分かりやすい感じで公開したいと思いますので、お待ちいただければと思います。

319000280

何人かの方にご質問をいただいておりましたが、持ち込んでいたのは Linux(Ubuntu 11.04)で、gtkRecordMyDesktop で録画したスクリーンキャストを動画再生して合わせてしゃべっていた感じです。 初の試みでしたがかなり難しいかったです。。すんません。。

さて、ブースの様子です。 :)

おきゃやまの WordPress ユーザの雄、Masayan さんよりいただいたぼくの愛用キャラ、木製 Pidgin ハトを絡めまして構成です。 みなさんにこれは何ですかときかれるたびに、WordPress 写真部と工作部? のご説明を差し上げました(笑)

DVC00288

yuriko さんが着てくれましたので当然モバイル系も充実。

IMG_0111

こうして、いろいろなものが絡むことができるのも WordPress の魅力の一つではないでしょうか。

さて、実はこんなコラボ企画で OSC 持ち込みが残念ながら間に合わなかったものがありますので、ここで紹介いたします。

おきゃやま WordPress 工作部 Masayan さんより、愛と勇気のバイクチーム Manukeno Masayan Racing Team 、M.M.R.T ロゴステッカーとなんと Pidgin ステッカーが届いておりました。

正直者が徳をする世界に・・・ – MMRT daily life

MMRTステッカー、インテル風ステッカー、ちょっぱー風ステッカーの3枚をセットで1名に・・

本日になってしまいましたが早速張ってみました。

やっべー、かっちょよすぎ。

IMG_0116

…ピットに置きたい(笑)

というわけで、いろいろな方がいろいろな形で参加できるオープンソースは楽しいですね!!

最後になりましたが、OSC 北海道運営スタッフの方々本当にお疲れ様でした。 おかげさまで楽しい一日でした。 :)

痛 iPod touch に挑戦

表題の通りでございます(笑)。。。

ずっといいなと思っていたのです。

認めたわけではない – MMRT daily life

違う、そうじゃない by まーちん

PC にステッカー。 MMRT に WP に ちょっぱ~に、雨男 inside :)

Masayan さんは秘密兵器をもってらっしゃる。

鬼に金棒、ツインカムにターボ! – MMRT daily life

STIKA買っちゃったんだもん。(でへ)

見るたびにうらやましすぎます。。(笑)

そして道具もそうですが Masayan さんには工作の腕があるという・・・。 ぼくない。 しょんぼり。。

工作とか、yutaka さんみたくテレビ直せるとかにぼくはあこがれが強いです。 :)

でもここで諦めるのも寂しい、、ちょっとサプライ品を見ていると 1000円くらいでインクジェット用のシール紙が売っているようでしたので、ここで試験的に大挑戦です!

Amazon.co.jp: 手作りステッカー(透明) EDT-STSC: 文房具・オフィス用品

製品概要:インクジェットプリンタでオリジナルデザインのステッカーが作れる!ガラス面などでの使用にも最適な手作りステッカー(クリア)。

透明、、ってことは白がでないということですなぁ。 白地のものも売っているのですが、周りを綺麗にカッティングできる自信がまったくなかったのでごまかしのきく透明を。。

ターゲットはシルバーの iPod touch に、、お馴染みらい子ちゃんこと(?)、Microsoft さんが世に放った奇跡、藍澤光さんでございます。 さぁどうなるか。

まず背景を白でぬいた感じで印刷します。

light01

ここまではソフトの世界なので簡単。。 次は UV カットコーティングを上に貼り付けます。 どきどき。

light02

てかてか。

でもってここからが問題。 周りをそれっぽく切り抜きます。 シールなので

まるぅくまるぅく

切り抜くのがはがれにくく、あと素人のごまかしもきくようです。(笑)

でもって、指紋がつかないようにはがして、、

とりゃ~~!

light03

…うん、ちょっと厚手なので違和感はありますが、、、透明でさりげなく痛くて悪くはない。。。。(笑)

ぼくのスノーボードは白。 張り方はなんとなく分かった!ので、WordPress ロゴを入れてあげようかと画策中です。 :D