falsehope

kusoblog


GDM Issue on FC4

clunixchit.blogspot.com
FC4でGnomeをアップデートしてからログインの時にGDMがクラッシュしてXDMに落ちてしまってた問題ですが、上記の方法で直るみたいです。原因は、GDMのデフォルトのテーマが選択されていない、という設定ミスによるもののようです。最近FC4使ってなかったから気づかなかった…。

[追記]
んーなんか直そうと起動してみたら直ってたみたいでした。

iPod nano 1GB Model?

www.macrumors.com
iPod shuffle 1GBモデルが現在発売一時中止になっているそうなのですが、これがiPod shuffle 1GBモデルがiPod nano 1GBモデルと置き換わるためではないか?、という話があるそうです。確かに、Macworld Conference & Expo 2006にてiPod shuffleに関する新しい発表があるという話もあるので、あながち間違っていないのかもしれません。

slashdot.org
人類の発祥はアフリカから、というのが定説になっていますが、本当はアジアからなのではないか、という話があるそうです。これはなかなか興味深い。

Kamorin

leaf.aquaplus.co.jp
上記の笹森花梨を見ながら紙に書いてみました。

kamorin.jpg
orz

20051230.m4a
またギターを録音してみました。今回はちょっと上手くいったかも。これを壁紙にしてからあらゆる思考がネガティブです。

livedoor PICS Stole Interface from Flickr?

pics.livedoor.com
livedoor PICSというFlickrと凄い似ているサイトがslashdot.jpに掲載されていました。確かに凄い似てる。機能だけじゃなくて、フォントの色とかサイズなんかを含むインターフェースをここまでパクってるのは珍しいかも。

Intel Renews Its Logo

slashdot.org
Intelは、1991年から使われていたIntel Insideのロゴを辞め、一月から新しいロゴに変更するそうです。IntelベースのAppleにIntel Insideのシールが張られる事になるのかな、と思っていたのですが、なにやらそうではないようです。この一月という日付を見る限り、これにはAppleが関わっているようにしか思えません!

looprumors.com
Appleは、第一四半期に行われるイベントで、Mac OS X 10.5 Leopardの新機能の一部を披露する予定、という話があるそうです。もしAppleに問題があるとしたら、サポート期間がWindowsに比べて短い、という事ですかね。

oglwm-20051229OGLWMをちょこちょこやっています。Java Swingと同じような実装のBorderLayoutを実装しました。薄く四角形の周りに緑色が見えていると思うのですが、それがWindowオブジェクトで、その中に四つのControlオブジェクト(実際はControlクラスを継承したButtonクラスのオブジェクト)がレイアウトされています。Java Swingと同じように、centerに配置されたオブジェクトはWindowのサイズ変わる度にサイズが変わります。まあゲームでリサイズの必要なGUIはあんまり必要ないのですが。

以下のようなコードでスクリーンショットのような描写が出来ます。

Window window3 = new Window();
window3.setPosition(new Point(90, 90));
window3.setSize(new Size(300, 300));
window3.setBackgroundColor(Color.GREEN);
window3.setOpacity(0.4f);


Button button;

button = new Button();
button.setSize(new Size(50, 50));
button.setForegroundColor(Color.GRAY);
window3.addControl(button, BorderLayout.Position.WEST);

button = new Button();
button.setSize(new Size(50, 50));
button.setForegroundColor(Color.CYAN);
window3.addControl(button, BorderLayout.Position.EAST);

button = new Button();
button.setSize(new Size(50, 50));
button.setForegroundColor(Color.YELLOW);
window3.addControl(button, BorderLayout.Position.NORTH);

button = new Button();
button.setSize(new Size(50, 50));
button.setForegroundColor(Color.BLUE);
window3.addControl(button, BorderLayout.Position.SOUTH);

button = new Button();
button.setSize(new Size(50, 50));
button.setForegroundColor(Color.RED);
window3.addControl(button, BorderLayout.Position.CENTER);


今までは、単純にgluBuildMipmap2D関数でテクスチャーを作っていたのですが、それによるテクスチャーのリサイズはあんまり良く無かったので、GL_TEXTURE_RECTABGLE_EXTを使う事にしました。GL_TEXTURE_RECTABGLE_EXTはOpenGLの拡張なのですが、もうかなり昔に出て来た拡張なので、今売られている殆どのビデオカードで使えると思います。これを使うと、2の乗数ではない大きさのテクスチャーを作成する事ができ、尚かつハードウェアによってそれらの処理が行われるため、高速です。gluBuildMipmap2D関数でテスクチャーを作るよりかなり早いです。nVIDIAの最新のカードは、GL_TEXTURE_RECTANGLE_EXTではなくGL_TEXTURE_RECTANGLE_ARBの方をサポートしているものが多いそうなので、実行時にどちらを使うかをチェックした方が良いみたいです。OpenGL 2.0からは2の乗数ではないテクスチャーがサポートされたのですが、多分ARBのものが採用されたからだと思います。

OGLWM-20051228

oglwm20051228OGLWMがやっと見える形になってきました。今まではずっとコードを書いていて、実行すら出来ていなかったのですが、なんとかコンパイルも通りました。フォントがちょっと汚いのはどうにかならんのですかね。通常、テクスチャーのサイズは2の乗数である必要があるのですが、どんなサイズでもテクスチャーに出来るように、リサイズが入っているのでそれで汚くなっているのかもしれません。以下のコードによって、OGLWMを使ってスクリーンショットのような描写を行う事ができます。


Window window1 = new Window();
window1.setPosition(new Point(10, 10));
window1.setSize(new Size(300, 300));
window1.setBackgroundColor(Color.ORANGE);
//window1.setOpacity(0.8f);

Window window2 = new Window();
window2.setPosition(new Point(50, 50));
window2.setSize(new Size(300, 300));
window2.setBackgroundColor(Color.PINK);
window2.setOpacity(0.7f);

Window window3 = new Window();
window3.setPosition(new Point(90, 90));
window3.setSize(new Size(300, 300));
window3.setBackgroundColor(Color.GREEN);
window3.setOpacity(0.4f);


いわゆる普通のGUI toolkitのような感じに使えるようにしたいと思っています。OpenGLなので、透明度の表現は比較的簡単です(Windows Formでもこんな感じでFormクラスの不透明度が操作できる)。

VLC Rocks

www.videolan.org
MPlayerでもストリーミングされているメディアをファイルに保存する事が出来るのですが、VLCでも簡単に出来ました。LinuxならCUIなMPlayerが簡単に手に入るのですが、Mac OS Xでは案外それが難しく、どうやってストリーミングをファイルに保存しようか悩んでいました。finkでMPlayerをインストールする事も考えたのですが、いつも通りに依存性がえらい事になっていて、何故かqt3が必要な感じで辞めました…。

そこで前から使っていたVLCで出来るか調べていたのですが、なんとストリーミングされているメディアをファイルに保存するためのウィザードが用意されていました。つまり、GUIから簡単にファイルに保存できるようになっていました。wmaでも保存できました。えへ〜。

Sony Challenges Again

haligon.blogspot.com
Sonyは、SamsungにNANDフラッシュメモリーの大量提供について交渉している、という話があるそうです。SamsungのNANDフラッシュメモリーと言えば、AppleがiPod nano等で使用しているのもと同じもので、どうやらSonyはまだAppleへの挑戦を諦めていないのかもしれません。頑張って欲しいけど、簡単に勝てる相手ではないのはSonyが一番知っているはず。

www.appleinsider.com
Appleは、IntelベースのPower MacのマザーボードのデザインをIntelに委託しているそうです。理由は、人手不足にある状況で、なお2006年第一四半期中に発売という予定を守るのに必要だったそうです。Appleは、iBook、PowerBook、Mac miniで忙しいそうです。確かにPower Macが一番普通のパソコンっぽい構成になるのかな。

looprumors.com
Mac OS X 10.4.4は、1月10日にリリースになるそうです。これもMacworld Conference & Expoの期間中ですし、期待が大きくなります。どきどき。

Nasty Code

ClassクラスのgetMethodメソッドは、publicなメソッドしか返さないのを知らずに、またデザインが狂ってしまいました。イベントの発行の部分で、私はイベントとそのイベントを処理するメソッド名を対にして保持していて、渡されたイベントによってそのイベントを処理するメソッドの名前を取得し、getMethodメソッドによってそのメソッドを実行しようとしていました。しかし、イベントを処理するメソッドは全てprotectedであったため、getMethodメソッドからはMethodオブジェクトが取得できませんでした。

もしこれが出来んかったらif文でイベントの種類ごとにそれ相応のメソッドを呼ぶしかないし、それじゃコードが汚くなるしな、と思い、SunのJ2SE 1.5.0のコードを見てみると、if文で分けていました(汗。どっかでgetMethodメソッドでprotectedなりのMethodオブジェクトを返すサンプルを見た気がしているのですが、見つかりませんでした。

www.kaourantin.net
Linux向けのFlash Player 8はリリースされず、8.5にスキップされる予定です、というMacromediaの人の記事なのですが、なにやらFlash Playerはバーチャルマシンを動かしているみたいです。やっぱりそういう事によってマルチプラットフォーム対応を実現しているのかな。

onsen.ag
toheart2のこのみ役の方と、たま姉役の方が出ているラジオがあるみたいなのですが、凄かったです。このみ役の方は普段からこのみみたいな声のようで、なんかこのみが生きてるみたいな感じがしました。あれってどうなんでしょうねぇ、お店とか言った時に、「こ、このみ!?」とか思う人も居るのかな。だってもし目が見えなかったらこのみと区別付かん訳ですし(ぇ。

Relativeness and Absoluteness

るー。

確かに、何もかも相対的なものなのかもしれない。もし自分がコーヒーを飲んでいても、自分以外の人全員が私は紅茶を飲んでいる、と言えば、どうすれば良いのか分らない。別にコーヒーを飲んでいる事が変わる訳ではないけれど、話は伝わらない。話が伝わらなければ、自分が正しいのかも分らなくなる。少し前に、時間という概念が相対的か絶対的なものなのか、と考えていたけれど、時間だけではないのかもしれない。

次取るクラスはA.I.じゃなくて天文がk。

るー。

Xiph QuickTime Components

www.xiph.org
QuickTime Componentという名前のプロジェクトでiTunesでogg/vorbisファイルを再生できるようにするプラグインを提供していた彼らが、www.xiph.orgに移動していたようでした。それに伴って、新しいバージョンがリリースされており、尚かつWindowsでのiTunesでもogg/vorbisが再生できるようもなったようです。

今までogg/vorbisファイルはVLCで再生していたのですが、VLCで再生すると何故か音程が狂うという問題がありました。いつの間にか音痴になるんちゃうか…、と心配していたのでiTunesでogg/vorbisファイルが再生できるようになって良かったです。

toheart2のBGMをogg/vorbisにしてMacに転送していて気づいたのですが、あのゲーム、常にCPU使用率が90%くらいで走っているのですが何なんでしょう。普通にテキストを表示している場面だけでも90%くらい使用しています。Javaからogg/vorbisを再生してみた時でもそこまで行かなかったので、BGMの再生で90%も使用しているとは考え難いですし…。

Macworld conference & Expo 2006が1月9日から始まります。噂通りにIntelベースのMacが発表されるか等、注目なのです!今のところ、IntelベースのiBook、新しい表計算ソフトウェア(一時期Numbersという名前ではないか、と噂されていた)、iPod shuffleの新しいバージョン、Universal BinaryのWindows XPサポート、等が発表されるのでは、と期待されている主な内容でしょうか。私は特にIntelベースのiBookとUniversal BinaryによるWindows XPのサポートの真偽が気になっています。

A.I.

姫百合姉妹攻略。面白かったです。次取るクラス、組み込みシステムじゃなくてAIに変更します(ぇ。

Thin Dark Line

ThinDarkLine_Final_large.mov
thin dark lineというバンドらしいのですが、たまにはメインストリームな音楽も心地よい。

Pluggable Look and Feel

java.sun.com
昨日になって、OGLWMのlook and feelのアーキテクチャーのデザインに失敗している事に気づきました。Swingと同じように、componentごとにそのcomponentを描写するインターフェースを提供するようにして、各々のcomponentが必ず一つのそのインターフェースへの参照を保持するようにするようにしました。ゲームでの使用が主な目的という事で、GUIコンポーネントそのものを自由に足せるようにしたいな、と思っていたのですが、それらはcontainerクラスを継承して、その中に好きなcomponentを入れていくようにするのと、新しいcomponentそのものを定義する二つの方法があります。一応両方の方法が使えるようなデザインにはなっていると思うのですが、とりあえずはまず形にするのを優先したいと思います。

未だにスクロールの概念の部分と、それに伴うオフスクリーンでの描写の部分を考えています。一応描写の部分は終わりかけてきました。基本的には、top-levelなcontainer(SwingでいうFrameクラスやWindows FormsでいうForm相当のcontainer)が、そのcontainerの含む全てを描写するBufferedImageを保持していて、そのtop-levelなcontainerに含まれているcomponentの大きさや位置が変わった場合、そのcomponentのみを最描写する、という感じになっています。それで、そのtop-levelなcontainerは、そのBufferedImageのデータを動的にテクスチャーにし、長方形の面に貼付けます。

直接pbufferに描写する事も考えたんですが、それだとフォントの動的な描写が非常に難しくなってしまいます。英数文字だけならまだしも、日本語なんかを考えた場合、非常にしんどいです。なので、そこら辺はAWTにやってもらって、結果だけをテクスチャーにする方法を取る事にしました。ここで一番気になるのは、描写速度が実用に耐えうるものになるか、という部分です。ここはあんまりテストしていないので実際にある程度できるまで分らないのですが、それ以外に方法があるか、と言えばそれもあんまりないので…。

テクスチャーにしてしまうので、多少見た目は悪くなりますが、リサイズの場合はBufferedImageへの最描写は必要ありません。テクスチャーを伸縮させるのはそんなに大変な処理ではありません。となると、BufferedImageへの最描写が必要になるのは、componentが移動した場合という事になります。しかし、私は今のところ、全てが均等にスケールするlayout以外を実装する事を考えていないので、恐らくそれによってBufferedImageへの描写回数はかなり減らせると予想しています(デザインとしてはSwingと同じように、複数のlayoutを実装できるようになっていると思います)。というのも、ゲームのGUIは既にレイアウトの決まったものを表示するだけなのが殆どだと思うので、そういうlayoutのみでも特に問題ないと思っています。

レンダラーとしてはOpenGLを使うと決めているのですが、そのバインディングにはあんまり依存しないように心がけています。今はLWJGLしか検討していませんが、デザインだけはLWJGLに依存しないようにして、もしJDK 6なんかでjoglが組み込まれたりした場合なんかを考えて、joglをバインディングとしても利用できるようにできればな、と思っています。…言うのは簡単だなぁ(ぇ。

昨日さーりゃんを攻略しました。まーりゃんにメロメロにされてしまいました。

WTF

leaf.aquaplus.co.jp
toheart2等のソースコード、欲しけりゃ郵送で教えてね、という事のようですorz。誰かがアップロードするかな。

slashdot.org
NECが、NECからは初めてとなるYonahを搭載したラップトップを、第一四半期に$2000くらいで販売するそうです。高っ!もしかしたらYonahベースのiBookとかPowerBookて今のG4のやつより高くなるんちゃうんか、という気配が…。確かに1.5GHz、1.8GHzくらいのと2.0GHzくらいのがあるので、2.0GHzのが高いから、という理由であれば良いのですが…。誰だよ$200くらい安くなるって言ってたの!でも一月という次期の読みはあながち間違っていないであろう推測は強まりましたかね。

www.cairographics.org
cairoがBeOSにポートされたそうです。

www.apple.com
apertureの対応機種を見てて気がつきました。ATI Radeon 9200は対象外。…Mac miniでマルチメディアするなという事ですかありがとうございます。

X.org Released X11R7.0 and X11R6.9

x.org
X.orgは、X11R7.0及びX11R6.9をリリースしたそうです。X11R7.0とX116.9は、実はソースコードは全く同じで、従来のimakeでコンパイルするものがX11R6.9、そうではないものがX11R7.0なんだそうです。

主な変更点はmodularizationなのですが、恐らくこれはFC5でもメインの変更点のひとつとなると思います。

作っているWindow Manager/GUI(OGLWM: OpenGL Window Manager)なのですが、やはり一番難しいのはスクロールだと思います。スクロールという概念を実装するのであれば、恐らくオフスクリーンでの描写は必要になります。Mac miniのATI Radeon 9200ではFBOがサポートされていないのでFBOは使えないのですが、最低PbufferとARB_render_textureを使ってrender-to-textureはやりたい、と思っていたのですが、なんとATI Radeon 9200ではARB_render_textureがサポートされていませんでした…。という事で、無難にPbufferに描写して、それをglCopyTexImage2Dでテクスチャーにコピーする事にします。もう二年くらい前に買ったGeForce FX 5200はFBOまでサポートされてるのにさ…。

黄色の人攻略しました。ストーリーが…。私のペーパーより悪い出来ではないでしょうか(ぇ。他にツンツンな人はいないのかな(ぉ。

eBay

search.ebay.com
explosions in the skyのライブで買ったライブ会場限定のCD、どれくらいの値段になるのかな、と思ったら…!会場では$10だったのに$75とかになってますよ…。こ、これは…!

開けちゃったんですけどねorz

Meaning of GPL

slashdot.jp
コメントしちゃった。でもそうだと思います。別にGPLはそれを使う開発者を自由にする事は考慮していないライセンスなんですよね。それに対して商用のソフトウェアとの協調を図るようになって欲しい、というのは、冷蔵庫に対してネギを買って来て欲しい、とお願いしているようなものだと思います。冷蔵庫は何かを買ってくる事は考慮されていないんです。それを望んでいるのであれば、使い方を誤っているのです。

私はBSDライセンスやLGPLの方が、それらのソフトウェアを使う側として好きなのですが、Lessigさんの言うようなfree cultureを維持するには、GPLのようなライセンスで、皆が常にそのソフトウェアを読み、そして変更できる状況は必要なんだと思います。現在の学問がここまで進化したのも、今までの学問に今の私たちがアクセスできる状況にあるからなんだと思います。もしf=maなんかが著作権や特許で自由でなければ、人類の将来は暗いです。Lessigさんの言うように、何事も過去の上に成り立っていきます。それは、過去は未来を操作するという事です。過去を制限するという事は、未来を制限するという事なのです。

Qt 4.1 Released

www.trolltech.com
Qt 4.1がリリースされたようです。早速GPLラインセンスな方のQtをダウンロードしてコンパイル中。結構時間掛かる…。

toheart2、あれ名前入力があるんですね…。ポートの際には恐らくそこが大きな問題になると思います。入力があるなら、SDLよりQtとかgtk+の方が良いのかもしれません。簡単なダイアログを出す感じで。あれって名前変えたら音声も変わるのかな?あだ名がたかちゃんだったので、黄色い人攻略し難い…。

pearpc.sourceforge.net
PearPC 0.4がリリースされたようです。今となってはMac OS X for x86があるので、今後どうするんでしょうね…。

www.activewin.com
新しいVistaのビルドのスクリーンショットだそうです。searchバーの場所とか、やっぱりMac OS Xを参考にしているんですかね。私はwindows 2000のGUIは好きだったんですけどね。

Cause and Reason for It

ascii24.com
TRONの坂村さんのインタビューの記事なのですが、

インターネットもGoogleも、最終的には人が考えて作り出したシステムだけれど、日本国内では情報を収集して、それを解析し、戦略に結び付けていく取り組みはあまり行なわれていません。だから、根本的な教育からやる必要があるんじゃないかと考えたわけです。

私は彼が正しいかどうかは分からないのですが、私であれば、疑問に思うのは、「教育からやる必要があるんじゃないか」という部分ではなく、「もしそれが必要なのであれば、なぜ日本ではその教育が出てきていないのか」という部分なんですよね。ファッション雑誌を見てモデルの格好を真似ているのでは、ファッションの最先端になるのは不可能なんです。なぜなら雑誌に載っている時点で誰かが既に考えている訳ですから。一番良くて二番です。

恐らく、欠けているのは個体の能力ではなく、集団における優れた個体の数なんだと思います。一番は、前例がない事をする必要があります。今までに例が無い事に対して、お金を出すべきか出さずべきか、を考えなければなりません。そして、これらを正しく判断できる人が上に立っている社会も必要です。もし日本に足りないものがあるとすれば、それであると思います。上に立つべき者が上にいないから、一番になるための判断を下せず、それに対してのお金も提供されないんだと思います。ただ、民主主義と資本主義においては、皆が良いと思う事が優先されます。つまり、いくら能力の無い者が上にいる社会でも、資本主義や民主主義においては、それが皆が望んでいる事、という事になります。これが私が、個体の能力による差ではなく、集団における優れた固体の数の差、であると思う理由です。

ただ、教育の場をもっと最先端な場所にする、という点においては大賛成です。

www.redhat.com
FC5 test2は、GCCのリリースの遅れによって、1月16日にずれたそうです。FC4は全然触れなかったんですが、昨日アップデートしたらKDE 3.5になっててビックリ。plastikがカッコよくなってたし、タスクバーも良くなってました。後、F1やF2キーでターミナルが変更できるのは知ってたのですが、KDEから現在ログインしているユーザーをロックして別のユーザーに変更するという機能が追加されていました。F7とF8が行き来できる、という感じらしいのですが、これもMac OS X 10.4で追加されてた機能なんですよね。ログインし直さないで、別のユーザーに切り替えるというやつ。Mac OS Xを使うようになってから、あ、これってMac OS Xから来てたのか、というのを見かける機会が増えました。でも良いものは採用していくのは良い事だと思います。ユーザーにはそれが誰からのアイデアかなんか関係なしに、良いものだけが欲しい訳ですから。

OpenGLを使ったWindows Manager/GUIをデザインしています。これは前からゲームで使うおうと思ってやってたものなんですが、GUIのクラスやSwingとWindows Formsで少しGUIのデザインに関する概念を知れたので、少し変更した方が良い部分があり、色々変更していました。とりあえず、イベントの発行とGUIコンポーネントの関係が主な部分ですかね。とりあえず良いとは思うので、実装していきたいと思っています。遂に他人にも言われて確信したのですが、私のデザインは、要求されている事よりやり過ぎになる事が多々あります。マルチプラットフォーム対応を考えるとこれはこうした方が・・・、とかそのせいで実装までに時間かかり過ぎる事が多々あります。これははっきりと私の悪いところです。いうなれば、私には100点か0点しかない感じなんですよね。できる事に関しては100点近く取れるものの、その他が全部0点。結局平均が、全部50点の人と変わらなくなってしまうんです。なので、100点の部分を少し落としてでも、0点の部分を50とか60にしていこう、と思っています。

Maven

maven.apache.org
lwjglのフォーラムを見ていて知ったのですが、Mavenというツールがあるそうです。Mavenというのは、いわゆるビルドツールなのですが、例えば他のライブラリーに依存している場合なんかは自動的にそれらのバージョンをチェックしてからコンパイルしてくれたり、unit testも考慮されていてそれらが簡単に実行できるようになっていたり、ドキュメントの作成も簡単に扱えるようになっていたり、なかなか面白そうです。これもapacheのプロジェクトなのですが、彼らは本当にjavaを押してます。

複雑そうに聞こえますが、Mavenの目的は、プロジェクトの管理をいかに簡単にこなせるか、という部分にあるそうなので、実際に一旦プロジェクトが設定できれば本当に楽そうです。eclipseへのプラグインもあるそうです。MavenもAntを使っているのですが、私には、でなんでAntであかんの?、という感じが残りましたが…。私もAntでは、testという名前のディレクトリー以下はコンパイルしないとか、.java以外の拡張子のファイルはコンパイルしない、とかいう設定をしているので、ある程度レポジトリーの中での操作ができています。これらをMavenをやってくれるのは嬉しいのですが、私がこれらをしているのは、packageの名前やC#の場合のnamespaceなんかを最後までなかなか決められない、というのが大きな理由です。それらを指定せずに尚かつ全てをコンパイルでき、実行まで持って行けるのは、そこまで縛らない、という大きな利点だと思います。もしデザインが正しくできていれば、コードを書く際にはすでにpackageやnamespaceは問題なく書けるべきなんですけどね…。

www.thinksecret.com
やっぱりMacworld Conferencee & Expo/San Francisco 2006でIntelベースのiBookとMac miniが発表される可能性が高いみたいです。iBookには1.55GHzのデュアルコアなYonahが搭載されるのでは、という噂。第一四半期末にはIntelベースのPowerBoookが出るとの噂。こっちにはiBookに搭載されるものより少し早いのが搭載される予定ではないか、との事。x64ではないのは残念ですが、欲しい…。なんかiPod shuffleの新しいのも同時に発表されるらしいですが、こちらは何がどうなるのかは分かっていないそうです。

LWJGL-0.99 Released

lwjgl.org
LWJGL-0.99がリリースされました。残念ながらMac OS XとLinuxにおけるDevIL関連の問題は、このリリースでは解決していません。1.0までには…。

今までMatzonさんに渡してたDevILのdylibやsoファイルは、makeした後そのログを使って手でコンパイルして作成していたのですが(configureのオプションにもないコンパイルの方法なのです…)、いい加減手でするのもしんどくなってきたのでshellスクリプトでそれらを書きました。今のところMac OS Xでは動いています。mngもサポートする形でコンパイルできて良かった…。FC4でも、libmng-staticとかそういう名前のパッケージで提供されていました。何故libmng-develにlibmng.aが入ってないのかは謎ですが…。

DevILをuniversal binaryにコンパイルする事も考慮していたのですが、今回は見送る事にしました。Mac OS X向けのJava VMがまだIntelベースのMac OS Xに対応していないのが主な理由です。一応universal binaryにコンパイル出来る事だけは確認しました。その際に気づいたのですが、ppc/ppc64/x86の三つのアーキテクチャーをサポートするuniversal binaryもできる、と書いてあったのですが、ppcなバイナリはppc64では走らないんでしょうか?G5ではあれが動かん、というのは聞いた事はないので気にしてなかったのですが…。

intelベースのMac OS X向けのバイナリは、gcc4を使って作成する必要があるのですが、gcc4を使ってしまうとMac OS X 10.3.9以前のシステムでは動作しなくなってしまいます。なので、ppcの部分はgcc3.3で作って、x86の部分はgcc4で作って、それらがひとつになったuniversal binaryができると最適です。Xcodeを使うと、lipoというコマンドラインツールを使ってこれらを簡単に実現できるようになっているのですが、実際にどう使うかは良く分かっていません。FirefoxもintelベースのMac OS X向けのバイナリを公開しているのですが、彼らもやっぱりこの辺りが少し問題らしく、どうやってビルドの過程を統一するか、を悩んでいるそうです。

XcodeがWindowsに移植される、という話もあるらしいので、Xcodeに依存してもある程度のマルチプラットフォーム対応が得られるのかもしれませんが、やっぱりビルドはmake/Antでできるようになっていると便利です。

LWJGLの開発者は多くがデンマークに居る人達なので話してたら朝になるのね…。未だに時間差がどれくらいなのか知らん…。

Explosions In The Sky@Troubadour

www.flickr.com
explosions in the skyのライブに行ってきました。素晴らしかったです。彼らの番になる前に、二つのバンドが演奏したのですが、ひとつは謎で、もうひとつはクラシックでした。クラシックの方は、私の好きなバイオリンが三人とあーいう弦楽器のベースの人がひとりでなかなか良かったです。オリジナルだったのかもしれませんが、なんか聞いた事ある感じの曲でした。あと音量が小さくて少し残念でした。

8時にオープンで、explosions in the skyは10時半くらいから始まりました。もう一曲目から凄かったです。instrumental音楽は現代のクラシックと言っても良いんじゃないかな、と思いました。知ってる曲ばかりが演奏された事もあってか、かなり心地が良かったです。アンコールは、返ってきたものの、疲れたから多分今やっても良く無いのしかできへんから嬉しいけどやめとくわん、と断られました。

バイト先の人と一緒に行ったのですが、大学で同じ物理のクラスを取っていた数学専攻の人に遭遇しました。彼はもっとパンクやhardcoreしか聞かない人かと思ってたのですが、どうやらinstrumentalも好きのようでした。場所はビバリーヒルズの綺麗な街並の中にあり、帰りはちょっと疲れていたものの景色は綺麗でした。

ツアーでしか売られていない事が書かれていたCDを買いました。eBayで売ろう(ぇ。だって今日のライブやってeBayでは$70とかで取引されていたみたいですし(これが高すぎたためバイト先のもう一人の人はチケットが買えなかったのですが…)、ライブハウスの目の前で$100で譲ってくれ、ってカップルもいました。ちょっとグラっときたのですが(ぇ。

SWT Supports OpenGL

ペーパー終わりました。のってくると早いんですが、それまでがなかなかでした。これで課題から解放されました。冬休み!

http://www.eclipse.org/swt/opengl
SWT 3.2 M3では、SWTでOpenGLがサポートされているようで、JavaからOpenGLのバインディングとしてLWJGLを用いた例が掲載されていました。

LWJGLも0.99が今日か明日にリリースされるそうです。amd64サポートもmakeファイルに足されたみたいですが、彼らは64bitマシンを持ってないのでちゃんとテストできないみたいです。私も欲しいけど持ってないしなぁ。どうにか1.0が出る前には、DevIL関連の問題を解決しておきたいので、1.0までにはMatzonさんとかと話をしておきたいところ。結局DevILのバグなんですよね…。かといってそれを自分たちで修正したのを使うよりもDevILが直してくれた方が良いのですが、もうあんまり開発やってみたいなんでなかなか連絡とれんのです…。

慢性的にディスクスペースが全然ないのでそろそろ焼こうと思ったら、焼くのに必要な分すらなくて焼けなかった(汗。とりあえずVirtual PCは全然使ってなかったので、Windows 2000が入ってたファイルを削除。後はMayaとか適当に焼いて多少スペースはできたかもしれません。しかし何でこんなにパンパンなんやろ…。

Google Released Libjingle

sourceforge.net
Googleは、Jabberプロジェクトと協力して、XMPPの拡張に当たるJingleとJingle-Audioという仕様を公開したそうです。同時に、それらのGoogle Talkによる実装であるLibjingleがsourceforge.netで公開されたそうです。

JingleとJingle-Audioは、XMPPの拡張で、p2pネットワークを通じてあらゆるメディアを転送できる仕様のようです。Google Talkでは、それらの仕様を使って、VoIPとビデオチャットなんかを実装する予定のようです。

Libjingleはなかなか面白そうで、コマンドラインからGoogle Talkにログインしてボイスチャットセッションを確率するサンプルなんかが含まれているそうです。Libjingleを使った、Google Talk用のファイル転送プラグンとか出てくる可能性があったり面白そうです。Libjingleには、Google Talkに依存した部分と依存していない部分があるみたいで、依存していない部分は普通のp2pアプリケーションでも使用できるみたいです。しかもマルチプラットフォーム対応のようなので、もしかしたらゲームとかにも使えるのかもしれません。NAT越しでも上手くセッションが確率されるように設計されているようなので、良さそうです。

もしくは、Google Talkから接続があった際に、音楽をストリーミングするみたいなものを作って、Google Talkから聞く事ができるストリーミングサーバーみたいなのもできるのかもしれません。Google Talkがクライアントとして使えるp2pサーバーとかもできるのかも。

[追記]
p2pなのにサーバーだってさ。おつむの弱さには参るぜ。

Octopus Project

www.theoctopusproject.com
explosions in the skyのサイトを見ていたら、octopus projectというバンドと一緒に回ってる場所があるらしく、彼らのサイトが紹介されていました。

adjustor.mp3
彼らもinstrumentalバンドのようです。少しexperimental寄りかもしれませんが、こういうのも好きです。

6 Weeks Winter Break

冬休みになりました。

オールナイトでぶっ飛ばせ!(ギターウルフ

Google to Buy Opera?

slashdot.org
GoogleがOperaを買うんじゃないか、という話があるそうです。

blogs.msdn.com
IE7で使われるRSSのアイコンは、Firefoxのものと同じものになるそうです。IEチームはMozillaチームと協力し、同じアイコンが使われる方が統一性がある、という事で、IE7でも同じアイコンが使われる事になったそうです。こういう協力は良いですね。

InstantInsanityCracker

Instant Insanityの課題、解けました。Athlon XP 2400+なマシンで三時間掛かりました。Javaには、recursiveな方法による関数の呼び出しに制限があるので、気にしてたのですが、特に問題なかったみたいです。もしあっても、argumentでヒープのサイズ増やせば良いと思てったんですけど。

別のチームの人に聞いてみると、三秒で解が見つかったというチームもありました。mother fucker!前の学期の時に取った友達は二時間半て言ってたので、少し長めに走らせてみたんですが、三秒は凄いな。アセンブリで書いてるという訳ではないやろな…。

ペーパーはもう終わらせません。はは!少し遅れても一応受け取ってはくれるみたいなので。少し点も下がるんですが、どっちでもええわもう。それか開けないファイルをメールで送って、見てくれました?、ってメールして、見れない、って言われたらそれまでに仕上げたのを送るとかにしてみようかしら。

iPod for Christmas

www.macminute.com
Mac OS X Tigerのプリリリース版をリークしていた人物として訴えられていた三人の内の一人、David SchwartzsteinさんがAppleと和解したそうです。毒リンゴおそろしか。David Schwartzsteinさんは、AmigaOS 4.0に乗り換えたそうです(嘘。

www.appleinsider.com
eBayでは、iPod nano 4GMモデルが定価の$249より$100程高い$350くらいで取引されているみたいです。品薄なのは聞いていたけど、もうクリスマスには間に合わん感じなんかな?

www.appleinsider.com
Intelのmarketing chief for mobile platforms、Keith Kressinさんは、Yonahの心臓部であるnapaは、従来のCPUよりも28%消費電力が少なく、68%程パフォーマンスが向上している、と述べたそうです。やっぱり一月みたいです。

Keith Kressinさんは、「Appleに散々尻を叩かれましたからね」と述べ、頬を赤らめていたそうです(嘘。

it.slashdot.org
なにやら、中国の軍隊から米国に対してサイバーアタックが来ているそうです。中国は、Microsoftに依存している自国の状態を危険と判断していて、Windowsのアップデートには、台湾との戦争の際に中国のネットワークをダウンさせるコードが含まれている、と考えているそうです。

Windowsのアップデートにどうのこうのは分りませんが、確かに台湾と中国の間に米国が入ってくるのはそう遠く無い気がしています。イラクはようやく民主主義によって選挙が行われているところですし、イラクが自分でやっていけそうになったら、次は恐らく台湾ではないかな、と思っています。米国は、恐らく台湾が独立している、という意見を指示すると思いますし(台湾が社会主義ではないから)、そうなると中国対台湾 + 米国での戦争になる可能性もそう低くはないと思います。恐らくオリンピック以前に、これに関した行動が見られる事はないと思いますが、オリンピックの後は危ないかもしれません。

で、何故それが米国へのサイバーアタックに繋がるのかは分りません。

slashdot.jp
欧米だったらanimal rightsな人達が怖いです。彼らはこう言います、「動物殺すなお前殺すぞ」

MTV and Microsoft Announced URGE

macdailynews.com
MTVとMicrosoftは、URGEという音楽提供サービスを2006年に始めるそうです。200万曲以上、MTVのテレビ等を配信する予定で、URGEそのものが次期のWindows Media Playerに含まれるようなるそうです。

MTVを見ている人は、恐らくiTunes Music Storeを利用している人と大きく被っていると思いますし、少し勝負になりそうな相手が出て来た、という感じでしょうか。MTVのテレビ配信には結構な需要があるかもしれません。それと、Windows Media Playerに含んでしまう、というのもMicrosoftだからこそできる事だと思いますし、賢いと思います。今度はブラウザだけじゃなく、iTMS等の音楽提供サービス業界に対する独占だ、と裁判沙汰になるとは思いますが、winner takes allです。

SDL or Java

恐らくC++やろうから、ポートするならSDLを使うのが良いんだろうな。本当はJavaが使いたいけど、JNI経由にするのも、Javaに書き直すのも面倒やろうし…。入力があるならSDLでは難しい…。と、20ページのペーパー、まだ4ページしか書けてないのにどうやってポートするか考えてしまって…。

まずゲーム持ってないよ!

Interface Nazi

mail.gnome.org
Linusさんが、Gnomeメーリングリストに投稿されたメールに、「KDEにスイッチしたら良いよ」と返信した事から、古のKDE v. Gnome戦争が再び勃発したようです。Linusさんは、Gnomeの「ユーザーはアホやから沢山の機能に混乱する」という考えが嫌いのようで、これを病気と呼び、なおGnomeの開発者をinterface naziと呼びぶ事で、火に油を注いでしまったようです。Linusさんは結構毒舌です(汗。

それでも、私も基本的にはLinusと同じ考えで、KDEの方が現時点においてGnomeより使い易いと思っています。ただ、Gnomeも格段と良くなって来ているのは事実だと思うので、三年後にもう一回戦争やろうや、という感じではないでしょうか。Gnome 3が出る事で、Cから他のオブジェクト指向の言語に移れれば、もう少しデザインもやり易くなると思います。その頃にはKDE 4も出ているでしょうし、丁度面白い感じになるのではないでしょうか。

KDEとGnomeの間にちゃんとfreedesktop.orgが入って、基本的な部分は共通な仕様に従って実装していけるようになると、Linuxのデスクトップはもっと魅力的になると思います。健全な競争はより良い結果に繋がりますが、不健全な競争はお互いが蹴り落とし合うだけで先に進みません(レッキングクルーみたいな感じ)。ちょろっとMac OS XやWindowsが追い抜いていってしまいます。

VMware Released VMware Player 1.0.0

www.vmware.com
VMwareは、VMware Player 1.0.0をリリースしたそうです。Windows/Linux版が出ています。もう一つ良いな、と思ったのは、Unbuntu 5.10のイメージが公開されている事でしょうか。VMware Playerと、このUbuntu 5.10のイメージを使うと、あっという間にUbuntu 5.10をWindows/Linuxで走らせる事ができます。そこでテストして、変になったらまたイメージを読み込めば最初に戻りますし、テストには最適ではないでしょうか。特にWindows環境では、cygwinやcoLinuxも良いですが、VMware Player + Ubuntu 5.10さえあれば簡単にLinux環境が手に入ります。

Democracy in Iraq

www.nytimes.com
現在イラクで、フセイン政権が倒れて以降最初の選挙が、民主主義に従って行われているそうです。新しい政府になってから初めての選挙なので、議員を全員選ぶみたいです。これでフセインのいないイラク政権が出来上がってしまいました。なんで国連じゃなくて米国なのかは分りませんが、米国はイランに色々な技術提供をし、今後自分で経済を維持できるようにするそうですが、なかなか進んでいないようです。

日本が第二次世界大戦に負けた時も、丁度こんな感じで国連か米国が、民主主義に従って政府を作っていったんやろうな、と思います。フセインが政権から下ろされたように、当時政治や教育に関連していた人は、皆辞めさせられていました。

問題は、いつまで続くか、でしょうか。

Moral Issues in Capitalism

slashdot.jp
久しぶりに沢山の返信のある記事だったので、少し内容を見てみました。

私は株という考えは、資本主義そのものであると思います。会社がお金を必要としている。株を発行し、販売する、という形で資金を得ようとする。買いたければ買えば良いし、買いたく無ければ買わなければ良い。良く知らないのは、会社が株を販売して、それが売れるとそのお金が会社のお金となるのは分るのですが、株を売る際は誰に売っているのでしょう?会社は売ったものを返金して欲しくないと思うので、会社に売り戻すとは思いません。恐らく他のその株を欲しい人に売るんだと思います。ただ、近所の人に株を売った、という話は聞いた事がないので、恐らく株の販売及び買い取りを扱っているところがどこかにあるんだと思います。そこに、会社が株を売りたい旨を告げ、その取り扱いをしているところが表に発表し、欲しい人は直接その会社からではなくその取り扱いを行っているところから株を買い、売りたい人は会社ではなく、その取り扱いを行っている場所に株を売るんだと思います。その取り扱いを行っているのが、世界に三カ所(ニューヨーク、東京、ロンドン)にしかない証券取引所、というやつなのだと思います。

株の値段は、その会社の株への需要と供給を考慮して、恐らく証券取引所が決めるんだと思います。となると、ひとつ疑問になるのは、証券取引所は何者なのか、というところです。証券取引所がある会社と仲良しで、その会社の株以外の株をめちゃくちゃ高くし、他の会社が資金を得れないようにできてしまったりするのでしょうか?そのような事はできないようになっていないといけないと思うので、恐らく特定の会社ではなく、平等な立場である者が証券取引所を務めているのだと思います。妥当なところで、国なのでしょうか?

もしそれが国なのであれば、何故世界にはこの三カ所にしか証券取引所がないのでしょうか?他の国は勝手に証券取引所を作ってはいけないのでしょうか?もしかすると、証券取引所を取り締まる、もうひとつ上の組織があるのでしょうか?この辺りは少し調べる必要があるみたいです。

少しslashdot.jpの記事とは話が反れましたが、私は契約は守られるべきだ、と思っています。意図していなかった内容があったので契約を無効にする、というのが有効なのであれば、契約が意味を成さなくなってしまいます。契約をした後に契約を破棄したいのであれば、それを契約書に書くべきだと思います。もしそれらが書かれているのであれば、契約を破棄するのに何の問題もありません。ただ、そんな契約書では契約をしてくれる人を探すのが難しくなります。需要が少ないのです。

ただ私は証券取引所が誰なのか知りませんし、証券取引所を通じて株の売買を行う際に守らなければならない契約があるのかは知りませんが、もしその契約が気に入らなければ参加する必要はないのです。私は、物を買うという行為は、その物を販売している会社に一票投じている、というのと等しいと思っています。残念ながら、NOという事に対して票を投じる事はできませんが、票を投じない、という行為は可能です。好きな会社をサポートしたいのであれば、その会社のものを買えば良いのです。その会社が嫌いであれば、その会社のものを買う必要はありません。それで会社が困るのであれば、会社はなんらかの対策を取るでしょう。困らないのであれば、他の多くの人はその会社に票を入れている、という事です。

そこで考えます。民主主義は非常に危ない。民主主義を健全に運営するには、国民を教育しなければなりません。もし国民が考える能力に欠けた場合、間違った投票を行う事になります。それが民主主義の国において、義務教育を受ける理由です。ただ、本当に教育でどうにかなるものでしょうか?現在の教育は、これが正しいんやで、と、馬鹿が何に投票するか、を埋め込む教育に近いものがあると思います。これによって、馬鹿が自分の意思で間違った票を投じないようにする事が可能ですが、これが正しく動作するのは、馬鹿を教育する側が賢い、というのが前提になります。残念ながら、これが真実ではないように思える事柄が沢山あります。となると、民主主義が健全に運営されるための条件が崩れ、民主主義が健全に運営されなくなります。

これに対する解決策が、民主主義以外のアイデアを採用する事になるのかどうかは分りませんが、民主主義が危ない、とい時期に来ていると思います。そして、いずれ王政になり、また民主主義に戻り、それらを繰り返すんだと思います。

slashdot.jp
astroという方の以下のコメントが的を得ている気がしました。


>株式市場と言えば,聞こえはいいが,本質は博打ですから.

本質は博打とは非なるものですが、そこで博打をしている人が多いだけです。


他の文章はあんまり同意できる部分が無かったのですが、この一文にはその通りだと思いました。本質が博打とは非となるものなのかどうかは知りません。

Aquaplus Open Sources Some of Games

leaf.aquaplus.co.jp
Aquaplusは、XviDのコードを含んでいたToHeart2 XRATEDを含む四つのゲームのソースコードを、GPLに従う形で公開する事にしたそうです。昨日も少し考えていたのですが、ゲームのエンジンが公開されても、恐らくアートワークは公開しなくても大丈夫でしょうし、特に被害は無いのではないかな、と思います。もしかしたら、ゲームのデータの圧縮や解凍の部分は厄介かもしれませんが、それぐらいではないでしょうか。

GPLは、ソフトウェアを自由にしますが、開発者を自由にするという事を意味している訳ではない、という良い例かな。

www-128.ibm.com
IBMは、Xbox 360に搭載されているチップの詳細を掲載しているようです。全く同じなsymmetricなコアが三つあり、1MBのlevel2キャッシュ、21.6GB/secondもの転送能力を持つfront-side busのインターフェース, 5.4GHzのクロック周波数等、モンスター構造になっているみたいです。そりゃ電源もえらい事になるわ…。

最後に、「Microsoftへ提供する製品であったため、どうでも良かった」と書いてあるそうです(嘘。

www.thinksecret.com
Appleは、来年初旬にIntelベースのiBookをリリースする予定で、現行の14.1インチモデルが13.3インチのワイドスクリーンモデルに置き換わるようだ、という噂があるそうです。WXGAで1280x720の解像度のようで、15%程ピクセルの数は多くなるそうです。12.1インチモデルはそのまま残りそうだ、との事。

やはり来年の一月という噂が有力な気がします。

Novell

www.banshee-project.org
Banshee projectのAaron Bockoverさんは、どうやらNovellの人のようです。Nat Friedmanさんもそうですが、Novellには活動的なオープンソースサポーターが沢山居るみたいです。

Gst-Sharp is Obsolete, Damn it!

lists.ximian.com
gst-sharpからgstreamer-0.10は使えないのか?、と聞いてみたところ、gst-sharpはもうobsoleteなんです、という返信を頂きました…。な、なによ!もう知らないんだから…!

C以外のバインディングでちゃんとアップデートされてるのは、pythonバインディングであるgst-pythonだけなんだそうです。Mac OS Xでコンパイルしようとしているのですが、コンパイルが通りません。Cで適当なラッパーかいて、それをC#からインポートして使うのが良いかもね、との事ですが、Cで書いたらmanagedの意味ないじゃない!ただ、Bansheeの作者さんからも返信を頂き、どうやらBansheeが公開しているライブラリーを使うとgstreamerをより簡単に使えるとの事なので、それも少し見てみようと思います。後は、Divaもgstreamerのラッパーを持っているそうです。

とりあえず今週は毎日テストです。20ページのペーパー、終わる気がしません。でもそれが終わったら冬休み。この学校は4 semester制なので、一ヶ月も冬休みがあります。規則正しい生活を心がけたいと思います。17日はexplosions in the skyのライブに行ってきます。わーい。

toheart 2、xvidのコードが埋め込まれているらしいようで…。

gstreamer-plugins-ugly-0.10

finkのメンテナーの人に、gstreamer-0.10でmp3プレイバックができないのか、と聞いたら、lameとmadプラグインの入っていたgstreamer-plugins-ugly-0.10のパッケージをリリースしてくれました。これでMac OS Xでもちゃんとgstreamerが使えるようになりました。

iTunesは動画からオーディオだけ取り出すのが簡単で良いね。

Yonah on January 6th?

www.cooltechzone.com
IntelベースのMacで採用されるのではないか、と言われている、IntelのPentium Mの次のモデルであるYonahですが、どうやら1月6日に発売になるらしい、との事です。そうなると、噂通り、IntelベースのMacが1月中に出るというのも本当かもしれません。最近台湾のメーカーがIntelベースのMacは6月中に出る、と言っていたらしいのですが、自分の気に入らない噂は信じません。

dev2dev.bea.com
Eclipseからsubversionを使うためのプラグインがあるそうです。これでsubversionサーバーを建てる理由ができましたかね。これとdynDNSを使って、どこからでもEclipseで開発できるようにしておこうかな。

tmate.org/svn
そのサイトで見つけた、Javaだけで実装されたsubversionのクライアントだそうです。サーバーは無いそうなのですが、クライアントだけならこれが使えるみたいです。command lineのやつ入れてるのですが、こっちにしとくとどのプラットフォームでも使えるなぁ。Antとの併用もできるみたいで、それは面白そうです。そういえば、makeでコンパイルに必要なファイルをcvsから取ってくる、というターゲットは見た事ないな。

www.linuxdevcenter.com
Project Looking Glassのkawahayaさんのインタビュー記事。さすがSunに居るだけあって、綺麗な英語が喋れる方のようです。E3なんかで聞く、sonyや任天堂のお偉いさんの英語とは違います。ここまで綺麗に英語が喋る人が、日本語を喋る時はどんな日本語になるのかな、といつも思います。

数学のテストなのにcomputer scienceな問題が出るクラスの勉強(をしている振り)中なのですが、binomial heapとFibonacci heapの構造が良く分りません。普通のヒープなら問題ないのですが…。

Gstreamer-0.10 on Mac OS X

finkに今日入っていたgstreamer-0.10ですが、何故かosxaudiosinkが無かったので、メンテナーの人のメールをしてみました。すると、どうやらosxaudiosinkそのものが、まだgstreamer-0.10にポートされていないみたいです、という返信を頂きました。その返信に、esoundsinkは使えるはずだ、と書いてあったので試してみると、確かにesdsinkが使えました。今までMac OS Xでは、gstreamerでメディアを再生していると、CPUの使用率が100%までいってしまっていたのですが、0.10になってからこれが改善されていました。Mac OS Xででも実用できる範囲になっている感じで良かったです。

早速gst-sharpもコンパイルし直そうとしていると、どこかで0.8という文字列がハードコードされているらしく、gst-sharp.dllがどうしてもlibgstreamer-0.8.0を探してしまう、という問題に突き当たってしまいました。しばらくすれば対応されると思いますし、FC4でもいずれ0.10になると思うので今は別にそれでも良いかな、と思いました。

www.eclipse.org/swt
gstreamer-0.10-plugins-goodをインストールする時、cairoに依存しているのを見て、そういえばcairoは最近どうなったのだろうと思ってcairoのサイトを見ていました。すると、SWTがcairoをラップしている、という事が書いてありました。SWTも前にSWTChatを書いて以来見ていないしどうなっているのだろう、と思ってサイトを訪れてみると、なんかかっこ良くなっていました。Linux/Windows/Mac OS Xだけでなく、PocketPCへの対応も強化されたらしいニュースは知っていたのですが、かなり良い感じになっている感じでした。SWTからLWJGLを使ってOpenGLでのグラフィックの描写行う例なんかも掲載されていて、SWTはまだまだこれから日の目を見る可能性のあるtool kitだと思いました。実際にEclipseで使われているのは確かですが、SWT単体が使われている例は、Azureus以外であんまり見た事がないのも事実です。

GUIのクラスで作った、C#とWindows Formsを使った課題です。描写しているのは、Strangle Attractorという模様なのですが、そちらはどうでも良い部分でした。一応頂点はドラッグアンドドロップできる必要があったので、それはできるのですが、描写はfloatすら使っていないのでがたがたです。WindowsでGUIというと、今までの私にはwinprocにswitch文、という感じがあったのですが、C#とWindows Formsを使う分にはJavaとSwingを使うのとまったく同じ感じのデザインが適応でき、非常に書き易かったです。anonymous innerクラスが無く、どうしても実際にメソッドを持たないといけない、というのは少し鬱陶しかったのですが、それ以外は面白かったです。delegateが面白い概念ですし、得るものは大きかったです。

Right or Wrong Depends on One's Moral

slashdot.org
みずほの問題の記事なのですが、興味深い返信がありました。

The difference is that when a US exec screws up at this magnitude, reguardless of how much apologizing happens, they will be canned in the very near future. They also will face a very likely suit in court for defrauding investors. In Japan, it seems businessmen apologize for everything, yet very little gets fixed. I guess I'd understand the culture more if I lived there for long enough, but it seems a bit strange to me.

Don't take this as a defense of American corporate ethos, or a criticism of Japanese ones, though. The two countries simply have different Zeitgeists. For whatever reasons the massive conglomerates that dominate Japan are never upset by newer competition. What I've yet to discover, is whether the privitization of Japan Post is a signal that the day of ruling families is over, or whether it's a signal that the government will no longer compete with them.
- quote from xenocide2 on slashdot.org


「米国のexecutive(gooの翻訳にある通り、実行権のある役職にある人の事です。幹部という訳も書かれてありますが、実行権がなければexecutiveではありません。)が今回のような失敗を犯した場合、いくら頭を下げようが、近いうちに辞めさせられ、さらに訴えられる可能性もあるだろう。日本では、謝罪が全てのようで、犯した問題が修正されるのはごく稀である。

ただ、これは米国を良く見せるためものでも日本を批判するためのものでもありません。単純に、ふたつの国における精神の違いだと思います。」

上記のような訳が妥当だと思うのですが(この人は日本に少し居た事があるみたいです)、確かに謝罪を行う、という事が、責任を取る、という行動である、という感じがしない事もありません。もしくは、責任を取るために辞職する、というのも良く見かけますが、私はこれは責任逃れである、と思います。米国での例は、会社に辞めさせられるのであって、自分で辞めるのではありません。責任を取るというのであれば、犯した問題によって発生した金額分を儲けられるようにしなければなりません。ただ、会社がもうして欲しくないから辞めてくれ、というのであれば理解できるのですが、自分から辞める、というのは責任逃れにしか見えません。ただ、重要なのは、自分で辞めると反省している、と見られる日本の倫理です。これが別に間違っているとか正しいとかではありませんが、国や人種によってこれらの違いが見られるのは、非常に興味深いです。もしくは、犯した問題で発生した金額を返済できるくらいの給料を貰っていたため、辞めると会社にその金額を返済できる、というのであれば納得ですが;)

真か偽か(true or false)、という問題であれば、答えは個人の倫理に依存しません。ただ、正しいか間違っているか(right or wrong)、という問題であれば、答えは個人や集団の倫理に依存します。国によって法律が違うのは、それぞれの集団における倫理が異なる、という事です。

ここで問題となり得るのは、倫理が異なる国同士で一緒に仕事をした場合に今回のような問題が起こった場合に、各々が最善だ、と思う行動を取ったとしても、それが相手にとっても最善である、とは限らないという部分です。それらを防ぐために、世界共通の法律を作るという手段もありますが、国によって倫理が違うため、法律も違い、共通の倫理を築く事は非常に困難です。

www.h6.dion.ne.jp
今、instant insanityというパズルに対する解を見つけるプログラムを書いています。数学の課題なのですが、このinstant insanityは、brute forceな方法以外で解く方法が見つかっていません。そのサイトでは4つの立方体を扱っていますが、課題では20個で、色も20色です。過去に一番早かったのは、30秒で解を見つけたとの事でしたが…一時間経っても見つかってない!40分しかチャンスが無かったけど、G5のdual 2GHzでやってもできなかったし!確かに私のは最適化を行っていませんし、もろにbrute forceなのですが、最適化しないといけないような気もして来ました…。

グラフ(数学のグラフではなく、データ構造のグラフです)によって解を見つける方法もあるのですが、そっちに変更する方が良いのかも…。来週はfinalなので忙しいのに!20ページもペーパー書かなあかんのに!多分無理やし…。

gstreamer-0.10がfinkのcvsに来てたので、インストールしてみたのは良いのですが、osxaudiosinkがありません。…。

Mac OS X Applications on Windows?

www.macrumors.com
Appleは、Dharmaというコードネームで、Mac OS X及びWindows XPで動作するアプリーションを作れるような環境を開発しているのではないか、という噂があるそうです。なぜUniversal Binaryが今まで通りにFat Binaryと呼ばれなかったのか、というのには、Universal BinaryはMac OS XとWindows XPの両方で動作できるようなバイナリーに設計されているからではないか、という話があるそうです。既にSafariがWindows XPで動作しているという話もあるらしく、もしかしたらMacのIntel移行に関して、まだ公になっていない大きな秘密があるのかもしれません。もしMac OS XとWindows XPで動作するUniversal Binaryが作れるのであれば、アプリケーションのMac OS Xへの対応状況は大きく変わる可能性があると思いますし、.NETへの大きな対抗馬にもなり得ると思います。

[追記]
どうやら、Javaや.NETのようにvirtual machineで中間コードを実行するという形でのマルチプラットフォームの実現ではなく、CocoaをWindowsにポートして、実際のWindows向けのバイナリーをUniversal Binaryに入れてしまう感じのようです。現在のUniversal Binaryも、Intelマシン向けのバイナリーとPPCマシン向けのバイナリーの両方が入っているのですが、これにIntelマシンでのWindows向けのバイナリーを追加する形になるのかもしれません。なにやら、Xcodeを現在Visual Studioを使っている開発者にプロモートする事でVisual StudioからXcodeに移行させ、彼らが作成するソフトウェアがMac OS XででもWindowsででも走るようにする、というのが大きな目的のようです。

AppleはOS戦争には参加しないという戦略を取っていたらしいのですが、どうやら噂通り、OS戦争に参加するような判断に変わったような気がして来ました。中間コードによってマルチプラットフォームを対応するのと、対応するプラットフォームのバイナリーを詰め込んでしまう、というマルチプラットフォームを実現するのに二通りの手段が業界出てくると、それはそれで面白いと思います。computer scienceとしては、中間コードとvirtual machineによるマルチプラットフォームのサポートの方がデザインとして賢いと思うのですが、会社がサポートしていない環境でも走ってしまう、という可能性が否定できなくなります(勝手にvirtual machineを作られてしまう)。サポートしている環境のみで走るようにするのであれば、Universal Binaryのように、サポートしているプラットフォームだけのバイナリーを提供するのが商売としては上手なのかもしれません。

Nautilus Got Search Capability

blogs.gnome.org
Nautilusは、Beagleのプラグインを使う事でファイルシステムの検索ができるようになったそうです。Mac OS XでもFinderで同様の事ができているのですが、なかなか面白そうです。Windows Vistaには、SQLベースのファイルシステムであるWinFSが搭載される予定ですし、検索の分野はまだまだ拡大しそうです。

Bind

Windows Formsの課題とは別に、OSのクラスの課題で、複数の接続をハンドルできるサーバーをCで書く、という課題がありました。UNIXでのsocket programmingで、socket(), bind(), listen(), accpet()という流れなのですが、複数の接続をハンドルするために、accept()は、fork(), exec*()した別のプロセスでハンドルするという方法を取れ、という課題でした。課題自体は特に問題なく終わったのですが、クラスの人が、どうやら別のプロセスでハンドルされた接続は、listenしているポートとは違うポートを使っている、という事を言っていました。

実際にnetstatで見てみると、確かにlistenを呼んだプロセスと、acceptを呼んだ別のプロセスとでは、通信に使われているポートが違っていました。acceptで待つプロセスには、listenを呼ぶ親のプロセスで作成されたfdを使うようにしているのですが、acceptで帰ってきたfdは別のポートと関連付けられていたようです。Linuxでテストした時に、Linuxをサーバーにすると動かなかったのですが、これが恐らく私がlistenしていたポート以外は全部firewallで弾いていたからだ、と気づきました。恐らく、ftpのパッシブモードもfork、exec*を行って別のプロセスで接続をハンドルしているために、ポートが変わるのではないかな、と思いました。

bindは、ポートを唯一のプロセスと関連付けるプロセスのようです。同じポートで読み書きをしながら更に別の接続を待ったりするのであれば、selectを使うか、プロセスの作成されないスレッドを使う必要があるようでした。Javaではスレッドの作成によってプロセスが増える事がないので、これらの問題を気にする事はなかったようです。Javaにも、selectと同じ概念を提供するSelectorというクラスが提供されていますが、ここまで理解した上で使っていた訳ではなかったため、今回は少し自分には新しかったです。ただ、selectを使う事によって、同じポートで複数の接続が扱えるという事と、ブロッキングしない通信を行う、という二つの事柄を扱う事になるので、selectを使う事で全てが解決する訳ではありません。sshは、一つのポートで複数の接続が扱えるため、恐らくselectによって複数の接続をハンドルしているのだと思います。

NDoc

Windows Formsの課題はドキュメントを必要としていたので、コードにドキュメントが作成されるのに必要なコメントを書いて、NDocを使ってドキュメントを作成してみました。doxygenの場合は、クラスの関係が図になって出力されるのですが、NDocではそういうのは見当たりませんでした。MSDNスタイルにしたので、MSDNで見るクラスライブラリーみたいな感じになりました。javadocの方が好きなんですが、NDocもそんなに悪くない。

purevolume.com Updated

www.purevolume.com
purevolume.comがアップデートされていました。最初は見た目だけかなと思っていたのですが、なにやらmyspaceのように、アーティストのファンとして自分をファンリストに追加できたり、友達などの登録の機能が追加されているそうでした。確かに面白いのですが、そろそろ、「また」、という感じがしなくもありません。

nVIDIA Linux Driver Now Supports SLI

www.nvidia.com
nVIDIAは、新しいLinux向けのドライバーをリリースしたそうです。このドライバーではSLIがサポートされているようです。友達が、SLIが動かないからWindowsから移行できない、と言っていたので、これで移行するでしょうか。

apple.slashdot.org
Appleは、iTMSに新しい動画を追加したそうです。主にテレビドラマのようですが。これを受けて、Appleの株が高くなっているそうです。Appleの株は、ここ半年程一回も下がっていないのですが、どこまでいくでしょうか。

slashdot.org
新しいほ乳類の種類が見つかったそうです。ほ乳類の新しい種が見つかるのはまれのようです。ネズミとモモンガの間みたいで気持ち悪いです。

テストを終え、disneyのプレゼンテーションに行って来ました。MayaをLinuxで動かしていて、Mayaのスクリプティング言語であるMELと、Pythonによるモデルの動的な変化を描写しているのを見ました。なんか適当に下っ端がプレゼンに来た感じであんまり面白く無かったです。就職の情報は貰ってきました。disneyもスクウェアでもそうらしいのですが、やはりグラフィックを扱う業界では、それだけ大きなデータを少しの時間で転送できるか、というのがかなり製作時間に関わってくるそうで、ネットワーク関連の仕事や、それにまつわるUNIXやLinuxを使った仕事が募集されていました。なんか夏にフルタイムでやってみないか、みたいな話のようなので、それまでに何も見つからなければやってみようかな、とも思いました。アナハイムならそんなに遠い訳でもないので…。

Gstreamer 0.10.0 Released

gstreamer.freedesktop.org
Gstreamer 0.8.0から18ヶ月、Gstreamer 0.10.0がリリースされたそうです。どうやらGstreamerのバージョニングは、Linux kernelを同じように偶数を安定板、奇数を開発版としているみたいです。

WindowsでもVisual C++ .NET 2003を使ってコンパイルできるみたいです。これができるならgst-sharpもWindowsで使えるかもしれません。

Xen 3.0 Released!

www.xensource.com
Xen 3.0がリリースされたようです。VTが付いたIntelのCPUを使えば、LinuxからWindows XPが走るのは確認できているので、これからそれらのCPUが普及すれば良いな、と思います。FC4向けのRPMもリリースされているのですが、FC4で現在提供されているようなカーネルのモジュールという形ではなく、Xen 3.0をオンにしたカーネル、という形で提供されているみたいです。PPCサポートはどうなったのかな…。

slashdot.org
IBMは、WorkPlaceで来年からOpenDocument形式をサポートするそうです。

slashdot.org
火山に生息している微生物に、廃棄物として水素を排泄するものがいるらしく、この微生物の遺伝子が生物燃料として使えるかもしれない、という話があるそうです。

slashdot.org
Wikipediaは、登録しているメンバー以外による新しい記事の作成を禁止する予定なんだそうです。遊びでローかルネタな記事を作ったりする人を見かけた事がありますし、やはり大半の人間は馬鹿であるというのに納得できるのであれば、公の場は馬鹿の溜まり場というのも納得できるのでしょうか。これが私がrepublicanな理由です。

明日、disneyから二人の社員が私の学校に来て、プレゼンテーションをするそうです。MayaとOpenGLを使った実際のアニメーションの作成過程においてのプレゼンテーションのようです。Linuxを使ってアニメーションを作成しているらしく、Linuxでのデモを行うそうです。めちゃ行きたいのですが、丁度その時間にテストがあります。テストくらい捨てようかな、とも思っています。就職の話もするらしいので、無理にでも行って来たいと思います。

It's Time to Leave

やっとC# + Windows Formsな課題が一段落しました。後はNDocでドキュメントを作成して、UMLクラスダイアグラムを書くだけ。デザインはできてるのでそんなに時間はかからないでしょう。

www.kanzelsberger.com
SkyOSにポートされたというニュースで初めて知った、Pixelという画像を編集したりできるソフトウェア。Windows/Linux/Mac OS Xは勿論、FreeBSDやBeOSにまでポートされてるみたいです。Gimpより見た目は良い。まだ開発中のようです。

www.dyndns.com
dynamic DNSのサービスを提供しているDynDNSでは、マシンのIPを自動で更新してくれるクライアントがWindows/Linux/Mac OS Xに提供されているみたいです。これを走らせておけば、仮にIPが変わっても自動でそれを更新してくれます。そろそろ潜るかな。

directory.fedora.redhat.com
少し前に書いたFedora Directory Serverですが、なにやらGUIが用意されているそうです。GUIを見る限りでは、かなり大きい規模での運営を考慮したもののようです。確かにNetspaceからお金を出して買うだけの事はあるのでしょうか。slashdot.orgではめっちゃ良いとの話でした。

lwjgl.org
私もゲームで使っているLWJGLですが、gcjでコンパイルできたそうです。冬休みにゲームを完成させようと思っているのですが、LWJGLでいこうか試行錯誤。C#でmanaged DirectXでも良いかな、とも思っています。

厄珍どうしたんやろ…。

SVG Support in Firefox 1.5

www.croczilla.com
Firefox 1.5でSVGはサポートされたのですが、実際にどんな感じなのかサンプルを見てみました。確かに曲線の部分が通常よりも綺麗な気がします。SVGそのものは、既にKDEのアイコンや壁紙で使用されているのですが、他にSVGを使ったものはあんまり見かけません。Firefox 1.5でサポートされる事によって、少し広まるかもしれません。

svgtetris.svg
SVGを使ったテトリスクローンだそうです。

Gtk-Sharp 2.4 Released

www.mono-project.com
ちょっと前なのですが、gtk-sharp 2.4がリリースされていました。早速Mac OS Xにインストール。svnから取って来てた時には有効になってなかったgnome-vfs-sharpが有効になってました。

developer.gnome.org
Gnome-VFSのサイトを見てみたのですが、この関数によってリアルタイムにファイルの変更をモニターできるみたいです。Beagleもこれでリアルタイムのデスクトップの検索を行っていたと思います。ファイルをfopenで開けて、一文字書くだけでちゃんとコールバックが来るのかちょっとテストしてみたい気もします。

Windows Formsに殺されてますけど…。

Fedora Directory Server 1.0 Released

directory.fedora.redhat.com
Fedora Directory Server 1.0がリリースされたようです。Fedora Directory Serverは、Netscape Directoryがベースになっている、NovellのiFolderみたいなものだと思います。試してみたいなとは思っているのですが、iFolderもまだ試せてません・・・。

Windows Formsの課題が終わりません。

Webstart for Project Looking Glass

lg3d-webstart.dev.java.net
前に掲載した、SunのProject Looking Glassを試してみました。Java Webstartが提供されているので、ブラウザからクリックするだけで実行できます。私のMac miniと学校のPCはATIのビデオカードを搭載しているのですが、それらではブラックスクリーンのままで動かなかったのですが、nVIDIAのビデオカードを搭載したPCで動きました。Windowsで試したのですが、それなりに興味深かったです。今日GUIのクラスで、将来GUIが2D以外のものになるか、なんかの話題で盛り上がっていたのですが、私は少なくともしばらく2Dのままではないかな、と思っています。

私達は3次元に住んでいますが、実際に何かをする時、例えば紙に字を書く時、テレビを見る時、黒板に字を書く時等、は2次元なもの使用している事が多いです。私は、2Dを扱うのが人間として一番自然で、それ以上は考えないと使えないのではないかな、と思います。ただ、一部では取り入れられていくとも思います。下で紹介したinxightのZUIもそうですが、Human Computer Interactionの分野はなかなか興味深いです。次の学期でHuman Computer Interactionのクラスを取るのですが、もう少し詳しい事柄が知れたら良いな、と思います。

QA Process

> Rzさん
なるほど。テストはあるものの、開発しているチームが開発している製品をテストしていると思ってたんですが、別のQAチーム(部署という方があってるのかな)があるんですね。

QAプロセスについて書き忘れていた事がありました。QAはQuality Assuranceの略ですが、ここでいうQualityは、一般的なQuality(品質)という意味とは少し違います。QAなんかはsoftware engineeringの分野で出てくる事柄なのですが、QAプロセスにおいてQualityというのは、その製品がどれだけspecification(仕様)に沿っているか、という尺度であり、その製品がどれだけ高品質か、という意味ではありません。つまり、high qualityだとされた製品でも、クライアントが気に入らない場合もあります。この場合、その製品がhigh qualityである(仕様に沿っている)事から実装に問題があるのではなく、仕様がクライアントの要望に沿ったものではなかった、という事になります。software engineeringにおいて、クライアントが本当に欲しいのは何なのか、を見極めるのは非常に大切です。クライアントが欲しいと言った機能を搭載した製品を提供しても、もしそれが本当にクライアントの必要な機能では無かった場合、製品が出来てから、そういう意味ではなかった、と言われてしまう場合が出てきます。そのような場合には、開発は仕様を決めるフェーズまで戻らなければいけなくなり、非常に無駄が多くなります。

後、QAプロセスは、開発を行っている側によってのみ行われるのではなく、クライアント側でも行われる、という事でしょうか。クライアントは、開発側から製品を受け取り、それが本当に契約書(多くの場合は仕様書が契約書の一部となります)に沿っているかをチェックします。クライアント側が、QAを専門としている会社に頼んでテストしてもらう場合もあれば、クライアントが自分のQAチームを持っている場合もあります。開発がメンテナンスフェーズに入るのは、開発側とクライアントの両方がこれが注文していた製品です、という事に同意してからで、もし両者がこれに同意できなければ、同意できるまでメンテナンスフェーズには入れません(納品できない)。

これほど沢山のチェックがある事から、新しい製品であっても全てを一から書き始めるプロジェクトは殆どありません。ライブラリーであっても、QAプロセスが適応され、製品に使用しても良い、という許可のあるものでなければ使用できません。会社には、自分で作ったライブラリーがあり、それらは既に過去にQAプロセスをパスしたものです。よって、出来る限り既にQAプロセスを通ったライブラリーを使う傾向にあります。

多くのプログラマーはメンテナンスプログラマーになります。製品の開発が終わっても、5年や10年の保証が付いている場合が多く、大学を出たばかりの人なんかはメンテナンスプログラマーから始まることが多いそうです。ただ、メンテナンスフェーズは、開発の時に通ったすべてのフェーズを含みます。もしメンテナンスに仕様の変更が必要だった場合は、specificationフェーズまで戻り、開発の時と同じプロセスを通ります。つまり、メンテナンスプログラマーは、すべてのフェーズを知っていなければいけません。これが、それらを大学を出たばかりの人に任せてしまう事による問題のひとつでもあります。メンテナンスプログラマーは、軽視されがちで、給料が少ないのも事実です。しかし、メンテナンスは非常に難しく、全てのフェーズを知っておかなければいけないのも事実です。

ライブラリーのテスト、というのもまた広い分野なのですが、興味深かったものにdefensive programmingというものがあります。コードはbottom downとbottom upの両方の書き方がありますが、それらによって発見し難いコード等が出てきます。defensive programmingというのは、ある関数などを呼ぶ場合に、if文などによってその関数が呼ばれる状況を制限しているようなコードの事を言います。このようなコードは、その関数が特定の状況でしか呼ばれることがなく、特定の状況以外で呼ばれた場合にどうなるのか、というテストができなくなります。基本的には、defensive programmingによって関数の呼ばれる状況を制限するのではなく、その関数そのものが自分で実行されている状況をチェックするべきだ、という事になっています。

たとえば、divideという関数があったとします。divide関数を呼ぶ前に、分母が0かどうかをチェックして、divide関数の中ではそれをチェックしていない場合、これはdefensive programmingによるエラーの回避、という事になります。この場合、divide関数が分母が0の場合に呼ばれた場合、エラーとなります。ただ、defensive programmingが含まれたコードをテストしている限りでは、divide関数におけるこの問題は分かりません。

www.inxight.com
GUIの先駆者であるXerox starと関係のある会社、inxightという会社の開発しているUIにとても興味深いものがありました。これらはZUI(Zoomable User Interface)と呼ばれるものなのですが、Javaアプレットによるデモがあるので興味があれば試してみて下さい。右のOnline Demoというところから、何に関するデータを表示したUIが見たいかを選ぶと、それらのデータを表示したUIが見れます。TableLensというデモなのですが、こういう概念でUIを見たことが無かったので、非常に興味深かったです。ExcelなんかでもこういうUIを採用しても良いような感じもしました。

[追記]
「コードはbottom downとbottom upの両方の書き方がありますが」とありますが、間違いです。「コードはtop downとbottom upの両方の書き方がありますが」が正しいです。bottom downてbottomより下いけへんやんorz