Ubuntu 10.04 と デスクトップガジェット Screenlets

モニタを 16:9 の フルHD にしてみると、普通のアプリケーション利用中は横が結構余ることに気がつきます。 特にブラウザとかですね 🙂

というわけで、俄然実用性を増す(!?)デスクトップガジェット。 昔から Linux では screenlets というのを使っていますが、小ネタに再度ちょこっと紹介です。

Information – Screenlets.org

Screenlets are small owner-drawn applications (written in Python) that can be described as "the virtual representation of things lying/standing around on your desk". Sticknotes, clocks, rulers, … the possibilities are endless.

Ubuntu 10.04 ではパッケージに入っていますので、パッケージマネージャから screenlets でインストールできると思います。 実は本体は最近バージョンアップしてなくてちょっとしんなりなのですが、 スクリーンレット自体はいまも新作がいろいろな方から発表されています。

Eyecandy for your GNOME-Desktop – GNOME-Look.org

Python でかけまして、個別スクリーンレットの起動自体も Python スクリプトの実行だけでいけますので、ランアンドデバッグもしやすく自分で作成するのも比較的簡単です。 🙂

てなわけで、ぼくが今使っているやつを。

screenlets01

右上から、時計、リソースメータ、スライドショー、お天気、Impluse、フォルダビューみたいなの。 です。 スライドショーは、しょこたんブログ RSS から画像を抽出するように改造されています。。(笑)

なかでもグライコスクリーンレットの Impluse さんがおしゃれなので動画にて。。 動画だとコマ落ちしちゃってますが、本来はもっとスムーズです。

実は Ubuntu 9.10 くらいから動きがおかしくなっていまして、タイミングが遅いというか、サンプリング数が少ないという状態でがっくりしていたのですが、どうやら pulseAudio の設定でなんとかなるようです。

/etc/pulse/deamon.conf の、プライオリティや nice 値、デフォルトサンプリングレートを 48000 にしたり、default-fragments を適当にいじっていたら直るようです。(サウンドカードにもよりそう)

Impluse の C 側のソースも追っていたのですが、サンプル数の部分を合わせないとだめ、、、とかそういうことの気がしますがはっきりとは分かりませんでした。

この設定は、他のアプリでの音声発生が遅れるパターンでも有効なようなので、該当の人はいじってみるといいかもしれません。

さて、Impluse さん、夜、暗い部屋でグライコがちらちらしているのは結構おしゃれです。

是非是非。 🙂

WordCamp Yokohama 2010 に行ってきました!

5/28 ~ 5/30 にかけまして、WordCamp Yokohama 2010 に参加するために、横浜に行って参りました。 🙂 ブログ書くのも困るくらい、楽しいことがたくさんありました。 みなさま、どうもありがとうございました!

相変わらず、カメラを持って行ったのに1枚も撮っていなかったという事態のため、以下写真はおでこさんのフリッカーより拝借です!

5/28(金)。

夕方に札幌を出発で、20:30 くらいに羽田到着しました。 おでこさん達がレセプション後、遊んでくれると言ってくれる勇んで渋谷に。 向かおうとしたら、羽田空港で自分の母親と出会う。 東京で会うとか意味が分からない。

21:30 渋谷到着。

おでこさんはレセプション中でお忙しそうでしたので、渋谷駅のハチ公さんのところで試験的に若者に混ざってしゃがんでいてみたりする。 途中、をかもとにーさんののびた写真が送られてきてわくわくする。

おでこさんと連絡がつき「どーげんざか」と教えてもらうもどこかよく分からない。 教えてもらったとおりにウォーク。

[tegaki]あ!![/tegaki]

ぼーいみーつがーる。 広瀬香美がかかった気がする。 しかし、ガールではない。

そこには、をかもとにーさんがそびえ立っていた。 何を隠そう初対面であります。

いつも通り、ぼくは訳が分からなくなってかんだのは言うまでもない。 にいさんは想像通り、いや想像を超えたにいさんであり、お会いできてうれしかった。

yokohama01

おでこさん、てぃあこさん、じゅんさん、をかもとにいさんに歓迎会を開いていただきました。 ありがとうございます!!。 🙂

5/29(土)。 WordCamp Yokohama 2010 当日。

この日は、おでこさんのプレゼンにちょっとおじゃまするのであった。

WordCamp Yokohama 2010 で「すばらしき WordPress コミュニティーの世界」についてたっぷり語りました!  Odysseygate.com

最初は一人で全部やろうと思っていましたが、どんどん広がるコミュニティの世界を一人ではつたえきれない!と思い、急遽ひろまささん、じゅんさんにもプレゼンをお願いし、リレーセッションに挑戦してみました。いかがだったでしょうか。

どうやらカンペの iPod touch をもつ手が震えていたらしい(気がつかなかった)。 でも、3人でできて面白かったです!!

yokohama03

まさにコミニュティーって感じで良かったデス。 おでこさんは相変わらずエロく、じゅんさんはいちいち爽やかでした。 そりゃもてるっつーの(笑)

その他、会場をちょろちょろしてお手伝いなど。 じゃまだったらすいません。。

柏岡さんとは相変わらずエロい感じでした。 確実にオーラが。。。 🙂

yokohama02

そうこうしているうちに、あっという間に懇親会。

WordPress オフ会 2006年組のみなさん、WordCamp Tokyo 2009年組のみなさん、micc さん、再会できてうれしかったです。 お初の皆様もありがとうございました!! 😀

最後ににいさんとぱちり。

yokohama04

いつも同じソースコードみているというのに、初対面という不思議さ。 ギャグあとに、ニヤリとするそのお姿はこれからもなにとぞヨロシクお願いしますという気持ちに。

オープンソースとインターネット、そしてみんなが顔を合わせるオフラインミーティングがそろうと、ものすごいパワーを生み出すなぁと思った WordCamp Yokohama 2010 でした。 🙂

あ、Nao さんと写真撮ってないじゃないかっ! 不覚(笑)

Java + LWJGL + OpenGL で 2D ゲーム

先日、事務所の先輩と話をいたしておりまして、ゲームつくりますか、やろうやろう、みたいな進行に 🙂

ということでとりだしてきました、 OpenGL の Java ラッパー LWJGL。 OpenGL で古き良き 2D 描画をなんとか再現してやろうかと奮闘中であります。

Web で 3D を描く WebGL とかも同じような感じですし、iPhone/touch も Android も OpenGL ですし最近あちこちに OpenGL があふれていますね。

てなわけで、LWJGL というのは、Java 向けにかかれたゲームライブラリで、基本的には OpenGL (や音声、入力部)への薄いラッパです。

lwjgl.org – Home of the Lightweight Java Game Library

LWJGL provides developers access to high performance crossplatform libraries such as OpenGL (Open Graphics Library) and OpenAL (Open Audio Library) allowing for state of the art 3D games and 3D sound. Additionally LWJGL provides access to controllers such as Gamepads, Steering wheel and Joysticks. All in a simple and straight forward API.

OpenGL のコマンドを native に変換してくれる static メソッドがいっぱいある感じで、Linux、Windows、Mac、Solaris と各 native jni が用意されているので、Java と組み合わせることでいろんな環境でゲームなどのプログラムを動作させることができます。

これが速いし、みなさんに twitter で試していただいたところ、Windows、Linux、Mac の各 32/64bit でちゃんと動作したりしてなかなかよくできているようです!

Ubuntu 10.04 / 64bit での動作。

sprite01

Windows 7 / 32bit での動作。

sprite02 

すばらしいっ。

で中身の方なんですが、ぼくはゲームのプログラムというと CPU のクロックが 4MHz とか 8MHz だった時代(間違えのようなクロックですが本当です)でしかやったことがなかったので、どうしていいのやら(笑)

なんとなくイメージ的に 2D でも 3D の機能をつかって、四角いポリゴンをつくってそこにテクスチャーをはってスプライトや背景を実装するというのは知っていたので、あちらこちらのソースを参考につくってみました。

  • キャラクタスプライト。 小さな GL_QUADS をたくさん表示させて実装。 RGBA の透過と、1テクスチャに複数のアニメパターンを描いて切り替えて表示するのも実装。
  • マップ型 BG面。 配列をよんでチップを選択してテクスチャからタイルパターンを FBO(Frame Buffer Object)に描画して 1枚絵にしてから貼り付けて実装。
  • 1枚絵の BG面。 ただでっかいテクスチャを貼り付けただけ。 だとつまらなかったので、ピクセル(フラグメント)シェーダを登録してライト的な効果をつけてみた。

こういうやり方があっているのかどうか、まったく分かりません。 むしり取った衣笠と併せて超手探りです(笑)

ソースとかまだめっちゃくちゃで試している状態ですが、もし気になる方がいらっしゃいましたら実際に動かしてみてください。 Java Web Start を使っていますので、以下をクリックして「プログラムで開く」してもらえれば、大抵の環境でそれとなく動くと思います。

jws 

(Ubuntu の方は sun-java6 じゃないとだめかもです。 OpenJDK は未確認)

リソースとかまだ借り物ですごめんなさい。 作成中のものがおいてありますので、ここで書かれているものより機能が追加されているかもしれません。

てなわけで、環境によっては 1000フレームを超えるとのことで、恐るべき時代ですね。 (よしともさんいつもありがとうございます!)

昔は処理速度稼ぐために「描かなくていいところは描かない」ことが基本でしたが、いまなんかフルフレームで全描換えですもんねぇ。 8bit 時代は画面クリアするだけでどれほどかかったことか(笑)

などと遠い目をしつつもうちょっとがんばってみたいと思います。 🙂