falsehope

kusoblog


New Album from Saosin Just Rocks

www.purevolume.com
最近、あんまりヒットしていた音楽が無かったのですが、27日に発売になったSaosinのアルバムが凄い良いです。上二つが新しいアルバムからなのですが、流石一年くらいずっとだんまりしてただけある…。emo emo。

Huge Insect Attacked Germany

maps.google.com
なんという事でしょう。巨大な虫がドイツを攻撃している様子をGoogle Mapが捕らえたようです。

…スキャナーに虫が入り込んでたみたいです。

slashdot.org
MicrosoftのiPodへの対抗馬、Zuneですが、11月14日に$249.99で発売するそうです。iPodの30GBのやつも、ちょっと前に値下げして$249になったのですが、同じ値段で来るとは勝負師ですこと。片方でSonyと任天堂を相手して、もう片方でAppleと勝負するのも大変でしょうね…。

slashdot.org
これももう話題になっていると思いますが、IBMとLenovoは、米国で168,500台のThinkPadのバッテリーを、その他の地域で357,000台のThinkPadのバッテリーをリコールするそうです。勿論、バッテリーの製造者はSony Energy Devices Corp., of Japan。PS3でもバッテリーのリコール来たら、凄い受けを狙えると思うし、狙っても良いんじゃないかな。というかPS3の発売日まで持つのかな(ぇ。

slashdot.org
Googleが採用しているsoftware development cycleをGoogle Agileと呼んでいる、Googleの社員の書いた記事についての記事。

* Developers can switch teams and/or projects any time they want, no questions asked; just say the word and the movers will show up the next day to put you in your new office with your new team.(開発者は、何も聞かれる事なく、いつでもチーム若しくはプロジェクト、又は両方を変更出来る。変更を申し出た次の日に、オフィスの移動を手伝う人が来て、新しいオフィスに移動する。(欧米では、個々の開発者が個室を持つのが一般的です。個室といっても、大きいフロアーに、区切りを敷き詰めて作るものです。cubicleと呼ばれます。))

* There aren't very many meetings. I'd say an average developer attends perhaps 3 meetings a week.(ミーティングはあんまりありません。平均的な開発者であれば、週に三回くらいではないか。)


* Google has a philosophy of not ever telling developers what to work on, and they take it pretty seriously.(Googleには、開発者に対して、何々をしろ、というのを言わない、という哲学があり、開発者はそれを真剣に受け止めています。)


* Google tends not to pre-announce. They really do understand that you can't rush good cooking, you can't rush babies out, and you can't rush software development.(Googleは、前持ったアナウンスを行わない傾向にあります。Googleは、急いだ状態では良いものが出来ないのを分っています。ソフトウェア開発は急いで出来るものではありません。)

急いでいたのでは良いものが出来ないのはそうだと思います。ただ、そんなけの時間とお金があるGoogleだからこそ出来るんだろうな、とも思います…。でも、そうだと分ってるなら、GoogleとかMicrosoftとか、こういう哲学で仕事をしている会社にいけばいいんですよね。修士号終わったら挑戦してみようかなぁ。サンタモニカにもオフィスあるし。

おたくまっしぐら出た!!!明日休みたい。

Microsoft Messenger for Mac 6.0 as Universal

www.microsoft.com
Microsoft Messenger for Mac 6.0がリリースされていました。Universal Binaryになっているようです。Adium使ってるので使わないですけど…。

Yndi Halda

audioleaf.com
instrumentalなのですが、やっぱり弦楽器はいいなぁ。instrumental音楽だと、一曲がめっちゃ長い曲が良くあります。いつも思うんですが、こういう曲ってほんとうに構成覚えているもんなのかな?explosions in the skyをライブで見たときは、まあ長い曲でもCDそのままって感じの構成で演奏していたのですが、忘れたりしないんかな。

FUSEを使って、semantic file systemを色々試してみようかなと思っているのですが、FUSEのMac OS Xポートてないんかいな。Mono.Fuseが最近出来てて、それを使ってみようとも思ってたんですが、やっぱりFUSEに依存してるんですよね。まあLinuxでもいいんですが。

.Mac Mail?

www.mac.com
なにやら、Appleは.Macのサービスとして、.Mac Mailというウェブメールのサービスを近々開始するらしいです。今のところ、日本語でしたこの情報を見ていないのですが、フライングで掲載しちゃったのかな?それとも日本でだけなのかな。

にしても、ほんとMailと殆ど見た目が同じでいい感じ。

80 Cores on One Chip by 2011

slashdot.org
色々な所で話題になっているとは思いますが、Intelが、向こう五年以内に80コアのチップを出す、と発表しました。最近Core 2 Quadroという4コアのCPUの名前が発表になりましたが、80です。こうなると、OSの方でロードバランシングしてくれないと駄目ですね。今でもMac OS Xだと、上手い具合にロードバランスを取ってる感じなのですが、スレッドを各々のCPUに分配してくれるんだろうか。

Now It's Set

年収$40,000のオファー、蹴りました。ボスが$35,000出せそうと言ってくれたので、今のところに残る事にしました。ボスも、今修士課程を取っていて、色々気にしてくれてました。もしクラスが昼とかにあっても、クラスを受けに行っても良い、と言ってくれたので、なんとか修士課程を始められそうです。あー良かった…。ほんと、週末ずっと考えてたので疲れた…。

年収$40,000は、computer scienceで学士号を取った者の平均所得より低いのですが、やっぱりあんな小ちゃい会社でこの額だと、JPLとかはもっとうまうまなのだろうか。今は妹と暮らしているため、2LDKを借りていて、それが毎月結構掛かるのよね…。まあでも、これでやっと完全に独立出来そうかな。修士号取ったら、当座は博士号は考えてないので、サンノゼとかマウンテンビュー辺に引っ越して、Apple狙いだ!

Share Knowledges to Build Common Base!

slashdot.jp
日本でも来そうな嫌な予感。著作権、特許。未来の無い言葉だ。

Master's or Work

年収$40,000のオファーを受けた。返事は来週の月曜日にしないといけない。今働いている所でも近々正社員にしてもらえる予定。恐らく正社員になっても、貰える額は$40,000より低い。

問題は、オファーを受けた会社に行くと、修士課程を進めるのが難しくなる事。出勤に今まで以上に時間がかかるし、平均一日9時間くらいになると言われた。残業もあり。今の仕事場は、平均一日8時間で、いまのところ残業はない(勿論、正社員になると、支払いは時給制じゃなくてサラリー制になるので、言われた事が出来なかったら自分で残ってしたりしないといけない)。ただ、学校なので、修士課程を進めるのが非常に楽。後、学費の免除もある。

今働いているところで最低$35,000貰えるのであれば、残るつもり。多少多い年収を考えても、残業とか移動とかを考えると、修士課程を取った後に得られるであろう価値とは釣り合わない気がする。もし$35,000が無理なのであれば、当座は修士を諦めてオファーを受ける事になるかもしれない。

JPLでもそうだったけど、今の職場でもオファーのあった会社でも、修士号を持っている人は結構多い。特に、人を管理する立場になる人は大体博士号か修士号を持っている。そして、人を管理する人こそが高給取りだ。そういう意味でも、社会的な価値の意味でも、今修士課程を始める事は結構重要だと思うので、残りたいのは残りたいのだけど、払わないといけないものもあるので、難しいところ。

月曜日に、ボスに、正社員になる際に$35,000は出せそうか聞いて、駄目かどうかでどうするか決めないといけない。修士課程を始めたい私としては、出せると言って欲しい…。

Master's Program

最近、修士課程を始めようと思い始めていて、明日、もし修士課程をするなら一緒にやりたい先生と話をしてきます。その先生は、procedural modeling、virtual realityやGUIなんかに興味を持っている先生で、結構年なんですが常にcomputer scienceの最先端を知っているので、その先生となんか出来たらなと思っています。

明日は、まだ論文のトピックとして何が選択しとしてなり得るか、を話し合うだけなのですが、一応semantic file systemの話は持ちかけてみるつもりです。メールでも軽く説明したのですが、なかなか手応えも良かったので。semantic file systemの話をメールですると、これは見た事あるか?、とリンクを送ってくれました。これは、まさに私がsemantic file systemを考えるきっかけになったもので、やっぱりこの人は知ってるな、と思いました。

修士課程を始めるアプリケーションを提出するには、多くの場合GREという、まあセンター試験みたいなものの点数が必要になります。ただ、GPA(学校での成績)が一定以上の点数で、カリフォルニア州立大学で学士号を取得した場合は、GREが必要無くなります。そうです。米国では、学士号にしても修士号にしても、どの成績でそれを取得したのか?、というのが結構重要視されます。履歴書にも、卒業時のGPAは何だったか、というのは書く事が多いのです。

なんとか、私のGPAは3.3くらい(日本のスケールで言うと、優と良の良寄りという感じかな)で、多分GREは受けなくていいと思います。これが学士号を取ったところと同じところにいこうかな、と思った大きな理由でもあります。後は、今は州立大学で働いている訳ですが、学費の免除が多少適応出来ます。修士課程を始めると言っても、勿論仕事はフルタイムでそのまま続けます。なので、そんなにいっぱいのクラスは取れないし、学費が免除される単位数くらいが丁度やってける限界だとも思うので、丁度いい感じかな、とも思っています。後は、職場が大学だし、そのまま移動時間とかもないし、家からも近いし…。

勿論、JPLとか他の所から、かなり良い給料で働ける機会とかがあればそっちに移ると思いますが、折角学校で働いているなら、その期間を有用に使いたいなと思っています。修士課程は、30 unitsなので(学士号を取得するのには、専攻によっても違うが大体125 unitsくらい必要)、二年半かそれくらいで出来るかな。

それとね、いい加減嫁見つけたい…。

Coup in Thailand

www.cnn.com
えらい事になってます。タイで軍がクーデターを起こし、権力は我々にある、と言い出しているようです。タイの首相は、U.N.のミーティングのためニューヨークにいます。帰っても殺されそうやし、帰らないと治まらんやろうし、どうするんでしょう。一応、帰る、とは言っているみたいですが…。

タイの国内で事態が収まっていたらいいんですけどね…。

Playing with DTrace on NexentaOS

NexantaOSonFC6Test3FC 6 Test 3をインストールしました。FC 6 Test 3ではどうやらネットワークインストールが復活しているようで、ミラーサイトなんかからそのままHTTP経由でインストール出来ました。ネットワークインストールを行う場合は、85MBくらいのレスキューCDだけあれば大丈夫でした。ちゃんとAnacondaも動いてグラフィカルインストール出来ます。

Xenを試したのですが、full-virtualizationモードを使うのであれば、やはりVTなりのCPUレベルでのサポートが必要のようで、私のAthlon XPマシンではVTは無いので、para-virtualizationモードでしかXenでゲストOSを走らせる事が出来ませんでした。Core 2 DuoであればVTは付いているので、MacBookでやろうかとも考えたのですが、また変形して欲しくないので、諦めてVMware Playerを使いました。

確か、もう一年くらい前では、VMwareはFCでは結構問題があったのですが、FC 6 Test 3ではそのまますんなり使えました。NexentaOSもVMware Player向けのイメージが提供されていたので、ファイルを指定するだけでそのまま使えました。楽だね。

DTraceで、本題のDTraceですが、凄かったです。フック出来る関数がもう本当に沢山あって、確かにDTraceが注目を集める理由が分りました。画像は、特定のPIDを持つプロセスに対して、system callのreadとwriteにフックしてみている例です。フックしたのはbashを走らせているプロセスで、左上のターミナルで文字を入力する度にread及びwrite関数が呼ばれているのがリアルタイムで確認出来ます。

このスクリプトがフックするのに使われたものです。DTraceにはD言語というプログラミング言語を使って、フックした関数が呼ばれた際にする事を書けるようになっています。例のように、PIDを指定する事も出来ます。DTraceは、起動されるとその旨がカーネルに使えられ、カーネルが現在動いている全てのプロセスのCPU命令コードに対して、DTraceに関するステップを挿入します。つまり、DTraceによってフックされるプログラム側が、フックされるのになんらかの作業が必要な訳ではありません。DTraceの起動/終了は動的なので、DTraceによるあらゆるプロセスの監視を行うのに、システムは勿論、監視の対象となるプロセスの再起動すら必要ありません。全てカーネルが動的に行います。

こちらのスクリプトは、tick-1sec関数にフック出来る例です。これをdtrace -s Tick.dという風に実行すると、一秒ごとに1ずつ足された整数が出力されます。NexentaOSで定義されているprobe(フック出来るもの)の一覧です(2MB以上あります)。大体の関数にフック出来るのが分ります。

VMware Playerを初めて使ったのですが、やっぱりこういう仮想化技術で一番凄いと思うのは、マシンの状態を一時停止したり出来る事でしょうか。VMware Playerでも、仮想マシンで走っているOSを終了せずに仮想マシンを終了させた場合、仮想マシンで走っているOSの状態をそのまま保存します。そのままです。つまり、次のその状態でVMware Playerを起動すると、前走っていた状態そのままで起動出来ます。そのまま、というのは、メモリーの除隊やバーチャルファイルシステムのテーブルなんかの値もそのまま、という意味です。これが、仮想化技術がサーバー業界に大きく取り入れられている一つの理由です。例えば、ロードバランシング。あ、このマシンはちょっと負荷が他のマシンに比べて大きいな、と思えば、そのマシンで走っているOSの状態をそのまま保存し、そのOSの状態を別のマシンの仮想マシンで起動させれば、そのままOSが別のマシンに動いた事になります。本来であれば、マシンの再起動やネットワークの再設計が必要であろう作業が、全てソフトウェアだけで行えるようになります。

じゃあどれくらいの速さでそういうOSそのものを動かしてしまうようなロードバランシングが行えるのか?、というと、Quake 3のサーバーを走らせているOSを、上記の様な方法で別の仮想マシンに移しても、そのQuake 3サーバーで遊んでいたユーザーがラグすらを感じないくらいの速さです(実際にQuake 3のサーバーを使ったテストがありました)。驚きなのです。OSのバックアップも、OSの状態を保存してしまえばいいのです。

とりあえず、XenとDTraceは凄い。

Try Out DTrace with NexentaOS

www.gnusolaris.org
OpenSolarisのカーネルとランタイムを採用しているGNUベースのOS、NexentaOSを使って、OpenSolarisで注目のDTraceを体験してみようと考えています。FC 6 Test 3を入れて、XenでNexentaOSを入れる。もしXenでNexentaOSが入れれなかったら、FC 6 Test 3からVMware Playerで、VMware Player向けのNexentaOSのイメージを試せばいいし。

DTraceはすげーらしい。ドキュメントを読んでるんですが、今カーネルでどの関数が呼ばれているのか、が全て分る上、それらの関数が呼ばれるタイミングにフック出来るし、フックして何かを実行させる事も出来る。カーネルがデバッグモードになるみたいな感じかな。しかも、DTraceが発動している時以外は、カーネルのパフォーマンスには何の影響も及ぼさないので、DTraceをオンにしていない時はパフォーマンスも落ちない。最大の利点は、今動いている環境を停止させる事なくDTraceを発動出来る事。今のままあらゆる関数にフック出来る。

あらゆる関数が呼ばれて抜けるまでの時間も分るので、それで大体何がボトルネックになっているのか、をリアルタイムに測定出来る。勿論、その問題を解決した後に、ソフトウェアなんかのアップデートにはサービスの一時停止なんかは必要だと思うけど、デバックのためにデバックモードのソフトウェアと置き換えたりする必要はない。そのままデバックを開始出来るしサービスも停止しなくて良い。

Makeもそうやけど、UNIXハードコアな人で、SunやAppleのように時代に付いて来れている人は結構少ない。SytemTapやkprobesなんか時代遅れだ。Makeなんか時代遅れだ。CVSなんか時代遅れだ。CやC++ならCMake、JavaならAntやMavenじゃなきゃ。マシン特定のバイナリーにコンパイルするのも時代遅れ。CやC++でもLLVMがある。LLVMは多分GCCに取り込まれる。CVSを使っている人は、Subversionやgitを知っているのだろうか。LinuxカーネルはCVSなんか昔に止めてgitを使っている。

Mac OS X LeopardではDTraceが取り込まれる予定です。多分ZFSも取り込まれる。Sunはやっぱりまだまだcutting edgeだ。

(別に時代遅れなのは悪い事とは限らないし、最先端なのが良い事とも限らない。ただ、なぜ新しいのが出てきているのか、なぜSunやAppleがそちらへ向かうのか、は知っておいて損はないと思う。)

...

Virtual Machine Manager Rocks

www.redhat.com
FC 6 Test 3がリリースされたのですが、変更点を見ていてVirtual Machine Managerというアプリケーションが追加されているのを見つけました。

virt-manager.et.redhat.com
Network Managerと同じく、Red Hatの人が作っているpython + gtk+なアプリケーションのようですが、Virtual Machine ManagerはXenをGUIで操作出来ます。Virtual Machine Managerそのものは、仮想マシンを操作出来るもので、Xenだけが対象では無いのですが、現在のメインの仮想マシン技術がXenなので、主にXenが対象となっているみたいです。

スクリーンショットのページを見て貰えれば分かるのですが、Virtual Machine Managerを使うと、仮想マシンの作成から仮想マシンへのOSのインストールまで、全てGUIで出来るみたいです。操作性がVMwareみたいな感じになっています。仮想マシンでHDDとして使うイメージファイルの確保、仮想マシンへインストールするOSのISOの指定等、スクリーンショットを見る感じではかなり簡単に出来るみたいです。これでやっと手軽にXenを使って仮想マシンで遊べるかもしれません。

という事で、FC 6 Test 3をダウンロードしたのですが、MacBookにインストールしようか悩んでいます。Boot Campを使って、パーティションを作ると、後でMac OS Xのパーティションへマージ出来ますし、楽なのが一つ。後は、XenでVTを使うと、Windowsも走らせる事が出来るようになります。Core DuoにはVTが付いているので、それを使うと、FC上のXenでWindowsが、CPUでサポートされたレベルで走るようになります。一応FC 6 Test 3でもIntel Macをサポートしているのですが、まあワイヤレスとかサウンドとかファンとか、その辺がどうなのか不安なのですが…。

とりあえず、FC 6ではVirtual Machine Managerのおかげで、Xenが簡単に使えるようになりそうです。

www.microsoft.com
色々既に情報がリークしていたMicrosoftのiPod killer、Zuneですが、遂に公式に発表され、そのスペックも明らかになりました。デザインもそんなに悪くないし、結構上手くいくかもしれません。デザインは多分別だと思いますが、製造が東芝です。

Zuneで一番良いなと思っている機能は、Zuneに入っている曲をワイヤレス(Bluetooth/赤外線/WLANかどうかは知らない)で近くのZuneと共有出来る、という部分なのですが、この方法で共有した曲は、最大三日までしか聞けないようになっているようです。その後は、iTMS相応のZune Marketplaceで買ってくれ、という事のようです。

iPodもワイヤレス機能を搭載したのがZuneの発売時期と近くに出る、と言われているのですが、デザインではまあiPodの方がかっこ良いものの、Zuneもそんなに悪く無い。という事は、値段と、サービスの連携が鍵になるのかな。iTMSは既に大成功していますが、そっちからZune Marketplaceに移ろう、と思う人がどれくらいいるのか、という部分でしょうか。値段が半額とかならまだしも、値段が同じなら駄目だと思いますし、どう出るのかは気になります。

後は、DRMの差ですかね。iTunes 7から、一応認証されたユーザーの持っているマシンであれば、iPodを介したマシン間の曲の転送は出来るようになったのですが(MacからiPodに曲を入れて、WindowsマシンへiPodからコピー出来る)、Appleの採用しているFairPlayは結構nastyです。まあDRM全般だとは思うのですが、普通に使うのに支障の出るようなのは、使う側としては何の魅力もないんですよね。わざわざお金払って縛られないといけないのか分らないし。まあ一応FairPlayの方は、解除出来るソフトウェアがあるんですが…。

www.snorp.net
iTunesとかの曲の共有は、daapというプロトコルで行われているのですが、LinuxやWindowsで動くdaapサーバーとしてTangerineというのがあります。これを使うと、LinuxでiTunesから見れる共有プレイリストが作れます。起動も簡単で、フォルダーを指定すると、そのフォルダの曲を共有してくれます。確かC#で書かれてて、Monoで動くんだったと思います。

research.microsoft.com
Microsoftの研究所でF#という、functinalパラダイムをサポートした言語があります。OCamlを参考にしている部分が結構あるそうで、なかなか興味深いです。多くの私達が知っている殆どの言語はimperative languageです。ただ、最近functional languageを色々なところで見かけるようになりました。もしかしたら、functional languageがメジャーなる日もそう遠くないのかもしれません。

Wii Launch Date and Price

wii.ign.com
Wiiの発売日と値段が発表されたようです。米国では11月19日で$250。日本では12月2日で25000円。米国の方が先なんて珍しいね。輸出で一儲け!

Binary Fink Installer for Intel Mac OS X

fink.sourceforge.net
finkのインストラーのIntel Mac OS X版がもう普通にダウンロード出来るみたいです。いつからだろう。前から、ソースからコンパイルする分にはIntel Mac OS Xででもfinkを使えていたのですが、バイナリーのインストーラーがあるのは楽だ。

Mac mini G4には、finkでGStreamerとかsubversionのサーバーとか色々入れていたのですが、最近はあんまりLinux環境で欲しいのはないかな。

Main Developers from JRuby Got Hired by Sun

headius.blogspot.com
Appleの発表でちょっと目立ってないのですが、JRubyのメインの開発者の二人、Charles Oliver NutterさんとThomas Eneboさんが、Sunに雇われる事となったそうです。Sunに雇われると言っても、雇われた後の彼らのタスクは、フルタイムでJRubyの開発に携わる事、なんだそうです。つまり、SunはJRubyに興味を持っています。ただ、彼のblogにあるように、コードは今のままオープンソースで存在し続ける、とあります。

Sunは既にdynamic languageへ興味を持っており、GroovyもJSRでも協議されているのですが、まさかSunがJRubyを後押しする事になろうとは正直思っていませんでした。もしかしたら、JSPの変わりにJRubyやGroovyのようなエンジンを持って来るのかな、とも思うのですが、どういう風にSunがこれらのdynamic languageと絡んで行くのか、は興味深いです。

んで、今回雇われる事となった彼らは、Sunの本社のあるカリフォルニアに引っ越すのかといういうと、Sunのremote-employeeポリシーによって雇われるので、引っ越さなくていいらしいです。引っ越さないでいいだけでなく、自宅から仕事出来る感じです。いいなーおい。なんかインターネットは、ヘッドハンティングのええ場所になっとんじゃないかな。ちと頑張ってみてもいいのかもしれんね。

12日にイベントがあるのは前々から言われていましたが、実際に噂通りに色々発表されました。

www.apple.com
まずはiPod nano。見た目がiPod miniです。噂通り、アルミボディーになってます。MacBook同様、シルバー(2GB)が$149で一番安く、黒(8GB)が$249で一番高い。その他の色は4GBで$199。MacBookは、実際に黒モデルのは素材が違っていたのですが、今回も違うのかな?シルバーと黒はいい感じなのですが、他の色は、iPod miniの匂いを漂わせています…。iPod miniはかなり売れたそうなので、復活、という事なのかな。にしても、iPod nanoの方はかなり小さいです。

www.apple.com
個人的にはかなりカッコ良くなったと思うiPod shuffle。めっちゃ小さくなりました。形もいい感じ。こちらの写真のように、Tシャツにクリップできるのは結構いいかな、と。値段は$79という事で、変わってないと思う。

www.apple.com
iPodは大きな変化はなし。バッテリーによる駆動時間が24時間程増えた、前のより60%明るいスクリーン、80GBのが出た、という感じかな。

iTMSにおける映画配信も発表されました。当座は米国のみで、ディスニー系列の会社の映画のみ。640x480でH.264だそうです。値段は、確か殆どのが$9.99で、$14.99のもある、との事だったと思います。

iTunes 7が出ました。UIがちょっと変わってます。目玉なのは、viewモードが三つで来て、今までのと、アルバムのカバーのアートワークと曲名が表示されたのが二つあります。んで、iTMSのアカウントがある場合は、アルバムのカバーアートワークを無料でダウンロード出来るみたいです。川田まみのSEEDで試してみたけど駄目だった。もしかしたら、私のアカウントの住所が米国で、川田まみのSEEDが米国のiTMSになかったからかもしれない。

iTunes 7で出来たこの新しいviewモードで、アルバムのカバーアートワークを使うのは、以前iTunesのアドオンとして提供されていたCoverFlowというものの知的財産をAppleが買収し、それを取り入れたものらしいです。

iTVというものも発表しました。Apple Linkageさんより。

Apple、「iTV」を発表

Apple Computer, Inc.が、テレビなどに接続して、iTunesが動作するMacまたはPCの映画やテレビ番組をワイヤレスで視聴できる「iTV」(開発コード名)を発表しています。802.11ワイヤレス・ネットワーキングを内蔵し、電源内蔵、USB 2.0、Ethernet、HDMI出力、オプティカル・オーディオ出力、コンポーネントビデオ出力、オーディオ出力を搭載しています。2007年第1四半期発売予定で、価格は299ドルです。

写真はengadgetやイベントのストリーミングビデオで見れます。要は、PCやMacにあるメディアを、このiTVを使ってTVで見れるようになる、という感じのようです。TiVoなんかのように、iTVにHDDが搭載されている訳ではなく、あくまで再生メディアはPCなりMacなりのexternalなデバイスから取ってきます。これは賢い。ワイヤレスが搭載されているので、ワイヤーを張る必要はなし。HDMI出力があるので、HDTVにも対応していますが、普通のテレビにも黄色/赤/白なケーブル(RCAケーブルというのか?)で接続出来ます。

ただ、じゃあなんでHDDとかも無いのに$299もするのん?、という疑問も。隣に座っている同僚は、近くのApple Storeに電話し、まだ入荷してなかったので、オンラインでiPod nanoの黒を買いました。仕事中に。

後は、イベントのストリーミングビデオを。

Loli, Yeah!

Mac miniに全部の音楽を保存しているのですが、どうにも容量が無いので、何がそんなに容量を取っているのだろう、と思って調べてみたら…。えちぃ画像でしたorz

二次元、三次元を問わないろりぃな画像が約900MBも。このフォルダーが、もう三年くらい前からずっとあって、たまに凄いクリティカルヒットしてるのもあるのですが、もうさようならをしました。さよならエトナさん…。

BSF(Bean Script Framework)ですが、Java側からスクリプトへオブジェクトを渡すのと、その逆の例を色々見ていました。スクリプトに何かしてもらおうと思うと、それを実行するのに必要なオブジェクトは、Java側から提供しないといけないので、それが出来る事は必須です。良いのは、渡そうとしているオブジェクトに対するスクリプト側での変数名、渡すオブジェクト、渡すオブジェクトのClassオブジェクトを渡すだけで、どんなオブジェクトもスクリプト側に渡せます。

私はスクリプトには末端な部分だけやって貰いたいので、スクリプト側からの返り値はあんまり必要な状況がありません。なので、真か偽かだけ返して貰えれば良い事が多いと思います。

この辺は、実際に適当なサンプルを書いてどんな感じかみてみようと思います。

IronPythonは、多分DirectXクラスなんかも使えると思うのですが、DirectXをpythonから呼んでどれくらいの速さが出るのか、簡単なサンプル、これも書いてみようと思います。

Cable, Yeah!

ケーブルインターネットが今日有効になりました。広告されていた通り、5Mbps、つまり600KB/s出ています。やったね。

ハブて結構性能の差が出るもんなんですね。三つ持ってて、一つ目は450KB/s、二つ目は530KB/s、三つ目は600KB/sのスピードが出ました。恐らく、どれも最低100BTのキャパシティーがあるはずなので、性能の差はスイッチングの部分だと思いますが、やっぱりスピードが落ちてるやつは衝突が多いんですよね。単にハブはやつよりも、スイッチ機能のあるやつだとより速いみたいです。

結構昨日から涼しくなってきたので、サーバーマシン(Mac mini)をまた起動させてます。

IronPython with Windows.Forms WORKED on Mono

IronPythonOnMono昨日、IronPythonでWindows.Forms使ったのがmonoでは動かなかった、と書きましたが、間違ってました。動きました。Mac OS X 10.4.7のx86版でしか試してないので、PPC版でも動くのかは分かりませんが、monoの最新版で昨日のpythonスクリプトが動きました。凄いね。

monoの、Mac OS XにおけるSystem.Windows.FormsやSystem.DrawingはX11がいらない、と思ってたのですが、どうやら今の段階ではまだX11がいるみたいです。X11を起動して、X11のターミナルから実行しないと駄目でした。確か、既にMac OS Xネイティブなドライバーはあるはずなので、そっちがmonoでデフォルトのなる事を期待します。

にしても、やっぱりWindows.Formsで書かれたアプリケーションがWindows/Mac OS X/Linuxで動くとなると、かなり良いと思います。最近はSwingもかなり、特にMac OS Xででも、速いのでSwingもいいんですけどね。

[追記]
学校の課題で書いた、もっとSystem.DrawingやSystem.Windows.Formsを使っているアプリケーションだと、コンパイルは出来るものの実行は出来ませんでした。まだ複雑なWindows.Formsなアプリケーションは動かないみたいです。

IBM Ships CPU for Wii

slashdot.org
IBMは、Wiiで使われるCPU「Broadway」を出荷し始めた、と発表したそうです。任天堂も受け取った、と発表しているとの事。

Windows.Forms using IronPython

IronPythonを使って、pythonからWindows.Formsを使ってGUIアプリケーションを表示させてみました。

#
# IronPython Sample with Windows Forms
#
import clr
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")
from System.Windows.Forms import *
from System.Drawing import *


class FormV1(Form):
def __init__(self):
self.Text = 'Hello IronPython'
self.BackColor = Color.White

button = Button(Text = 'Click')
button.Dock = DockStyle.Bottom
button.Click += self.OnButtonClick

self.Controls.Add(button)


def OnButtonClick(self, sender, eventArgument):
color = Color.White
if self.BackColor == Color.White:
color = Color.Red

self.BackColor = color


Application.Run(FormV1())

実行すると以下のようになります。

IronPytonWindowsForms

IronPython自体はC#で書かれていて、monoでも動くので、このコードをmonoで動かしたIronPythonで動かしてみたのですが、駄目でした。やっぱりまだWindows.Forms周りは駄目みたいです。本当に1.2でWindows.Formsサポートされるのか…?それとも1.2は3年後とかなのか…。

IronPythonがC#で書かれているという事で、恐らくC#で書かれたコードからIronPythonのインタープリタークラスかなんかが使えて、動的にpythonのコードをコンパイルして実行出来るんだと思います。この辺は、JRubyとJython、Groovyと同じ感じ。やっぱプログラムで制御するインタープリターが来ると思う。

上記のpythonのコード

IronPython 1.0 Released

www.codeplex.com
IronPython 1.0がリリースされました。これで、pythonもMicrosoftによって.NET環境で走るのがサポートされる事となりました。興味深かったのは、CLRクラスが提供されていて、そのオブジェクトからAddReferendeかそんな感じのメソッドを使って、アッセンブリ(機械語の事でではなく、.NETなライブラリーはこう呼ばれている)をロード出来、それを使ってWindows.Forms.dllが読み込めたりするので、Windows.Formsを使ってコードも書けるみたいでした。つまり、Windows.Formsをpythonから使える事になります。というか、Managed DirectX関連のクラスも読み込めると思うので、コードがmanagedであれば、ゲームで簡単に使えるようになるのかもしれません。

やっぱり.NET Frameworkというデザインは賢いと思う。

iMac with Core 2 Duo Announced

www.apple.com
Core 2 Duoを搭載したiMacが発表されました。という事は、12日はiPodかMacBook Proかな。

このCore 2 Duoを搭載したiMac、24インチと17インチのエントリーモデルが追加されたのですが、17インチの一番安いやつが$999。安い…。教育機関向けの安いiMacとほとんど同じスペックで、グラフィックカードがIntelの組み込みのやつやけど、それでもx64_86なディアルコアです。$999…欲しい…。

Apple Schedules Event on August 12th

www.appleinsider.com
どうやら本当のようです。色々噂になっておりましたが、Appleは12日にイベントを予定しているようで、招待状が送られ始めているそうです。噂としては、新しいiPod、Core 2 Duoを搭載したiMac/MacBook Pro、iTMSでの映画の配信の開始、等が発表されるのではないか、との事です。

後、新しいiPod nanoは、本体が金属なケースになるそうです。Mac Proみたいなアルミボディーやったらかっこええかも。

Microsoftが、Windows XP/Xbox 360で動作するゲームを作れるXNAのSDKのベータを配布していますが、学校で3Dグラフィックスを教えていた先生が、このSDKを使ってXbox 360で動くゲームを作るクラスを教えるかもしれないそうです。これは面白そうなので、クラス出来たら取りたい。というか、このSDKの1.0が年末に出たら、Xbox 360買ってまうかもしれん。

今日、GoogleからSAMLベースの認証に関するドキュメントを貰ったのですが、やっぱりこれらの情報はまだconfidentialのようでした。10月にはもっと多くのテスターを募集するとの事なので、その頃にはある程度の準備は整うんだと思います。にしても、今のところ、彼らの実装では、SAMLリクエストとレスポンスを、エンコードしてそのままURLに埋め込んで渡す、というものです。勿論、リクエストとレスポンンスは鍵を使って暗号化するのですが、SOAPを使うのかと思ってたのにURLに直接埋め込みとは思いつきませんでした。

SAMLに関しては、まだあんまり具体的なサンプルが見つからないんですよね。最先端走ってる会社とかだと、既にSAMLをサポートした認証を提供していたりするのですが、殆どの場合はビジネスロジックくらいしか載ってません。まあGoogleのやつは、単に変数の部分を置き換えたらいいだけなので、XSLTでいけると思いますが。

結局、ケーブル申し込んじゃった。でも学校はやっぱ速い…。DVDが20分だった…。そこまで速くないにしても、まあそこそこ出るでしょう。後、新しいアパート、私の部屋にはクーラーがないので、サーバー落としてます。暑すぎるんです。37度とかです…。リビングにはクーラーあるのでそっちに移動させようかとも思ってるのですが、めんどくさいし…。そろそろ涼しくなってくれてもいいんじゃないか…。

今日から新学期が始まりました。もう卒業しちゃったけど、学校はやっぱりいいものだ。おにゃのこいっぱい!ここ二ヶ月くらいは、生徒のいない学校で働いてた訳ですが、やっぱりいいね。だって新入生とかって18歳ですよ?十代ですよ!てか、それくらいしかもうここで働いてる喜びないし…。色々転職探してて、結構電話掛かってくるんですが、やっぱ今の仕事場まで車で15分、というのにはなかなか勝てる場所がない。まあ車で1時間くらいは仕方ない範囲だと思うのですが、やっぱり給料。21 century insuranceてところで働くようになった、私と同じ時に卒業した人は、年収$50,000です。やってる事は私がやってるのと同じなのに…。でも、やっぱりどこの会社も最低五年の経験、とかを必須条件にしてたり、新卒を雇ってくれるところはあんまりない。でもその彼は新卒て事でその給料だったし、CNNとかで見る限り、そのくらいがcomputer scienceで学士取った人の新卒で貰える額の平均だし、その辺を狙っていく。

Saosin Rocks

Saosin - Come Close
Saosin - Collapse
新しいアルバムが9月26日に出るsaosinですが、いくつか曲がyoutubeに上がってるみたいです。saosin、このアルバムまでかんなり長かったけど、結構良いかもしれません。でも、ちょっと普通になり過ぎてるかな、とも思いました。新しいボーカルになって、初めての音源という事だと思いますが、そっちはいい感じです。前のボーカル、anthony greenはcirca surviveで歌ってるのですが、そっちはあんまり好きじゃないんですよね。saosinに居て欲しかった…。

www.myspace.com/miserysignals
misery signalsの新しいアルバム、といっても結構経ってるけど、聞いてみたら結構良かった。

www.oasis-open.org
Googleは、Googleの全てのウェブアプリケーションにSSO(Single Sign On)を実装すべく、最近SAML 2.0を使ったSSOを開発しています。single sign onというのは、いわゆる「複数のアプリケーション間で共通のサインインの規格を定義して、ひとつにサインインしたら、再度別のにもサインインする必要がないようにする」というものなのですが、既にこれらはウェブでは結構使われてます。ただ、これらの多くはHTTP Cookieを使って実装されていて、ドメインが違うウェブアプリケーション同士ではお互いのクッキーにアクセス出来ず、それぞれが独自の仕組みでクッキーを使ったSSOを実装しないといけない事が多いのが現状です。つまり、同じ機能なコードを、色々な会社が色々に実装しているという事です。無駄です。

SAMLは、SSOに関するオープンな規格で、OpenDocument Formatを定義しているOASISによって定義されています。SAMLでは、SSOを提供するにあたって、「SSOを提供する事に同意した複数の組織同士が、お互いを信用している」事が前提となっており、「このユーザーが来たんやけど、そっちでは既にサインインしてますか?しているなら、どのような認証でサインインしましたか?また、どのような権限を与えるべきですか?」というのを通信で行うようになっています。

SAMLの良い部分は、SAML自体は、ユーザーを認証するのに、サービスを提供するアプリケーションがどのようにユーザーを認証するかを知る必要がない、という部分です。SAMLは、ユーザーがサインインしたがっているリクエストを受けると、サインインしようとしているアプリケーションに、「このユーザーがサインインしたいそうです」と伝えます。そのリクエストに対して、そのアプリケーションは、「そのユーザーは認証されました」か「そのユーザーは認証されませんでした」かの答えを返します。これによって、そのユーザーがそのサービスに対して認証されているかを判断します。つまり、アプリケーションから返ってきた答えをそのまま信じます。つまり、嘘の答えを返しても信じます。これが、「SSOを提供する組織同士は、お互いを信用していないといけない」という部分です。ただ、お互いを信用をしている事を前提にする事で、SAMLはいかなるアプリケーションにも適用出来る共通のインタフェースとなります。

Googleと電話で会議した時に、SAML 2.0を使ってGmailへ、ユーザー名やパスワードを入力する事なくサインイン出来る、というデモを見せて貰いました。SAMLのリクエストとレスポンスはXMLです。ただ、そのXMLのやりとりに使用するプロトコルは自分で決める事が出来、SOAPでも良いし他のものでも構いません(SAML 1.0ではSOAPだけ)。今の仕事で、Gmailと学校で既に実装されてるSSOを仲介するアプリケーションを書く事になりそうなのですが、Googleからのドキュメントが届いていない状況です。もし、Googleが彼らのSSOのプロセスを第三者に公開する事になるのであれば、結構面白い事になると思います。

SAMLを使ったSSOには、かなりの期待をしています。例えば、自分がログイン出来るアカウントを持っている複数のマシンに対するSSOです。このマシンにはこのユーザー名とパスワード、こっちのマシンには…、というのは、単純に面倒です(SSHのpublic/private keyの仕組みでログインの作業そのものは省く事が可能ですが、意味が違います)。それらのマシン間でSSOが実装されたりすれば、ユーザーを管理する側も管理が非常に楽になります。各々のマシンにおけるユーザーを管理する場合は、このマシンのこのユーザーはこの権限があって、こっちのマシンでは…、と各マシンごとにユーザー管理をしないといけません。SAMLでSSOを実装する場合は、ユーザーの持ち得る「役割」の情報を、SSOを提供するアプリケーション間で共通に定義します。つまり、アプリケーション1における「admin」という役割の持つ意味と、アプリケーション2における「admin」という役割の意味は同じになります。よって、管理側は、それらの共通の役割を管理するだけですみます。

興味深いのは、カリフォルニアの州立大学は、大学同士でSSOを提供したがっていて、それらに関して話し合いとしている、という部分です。例えば、カリフォルニアの州立大学Aでアカウントを持っている人が、カリフォルニア州立大学Bに遊びにきたとします。その人が大学Bでワイヤレスで大学Bのサイトに言って、ログインしようとするとします。現時点では、大学Aで管理されているユーザー情報と、大学Bで管理されているユーザー情報は全く別なので、その人は大学Bのサイトにはログイン出来ません。仮に、大学Bがゲストアカウントを用意していても、そのゲストアカウントがもつ役割と、その役割の持つ権限は、その人が大学Aにおいて持っているアカウントが持つものとは異なります。ただ、大学Aと大学BがSSOを提供していると、その人は大学Bに訪れた際に、大学Aで使っていたアカウントをそのまま使ってログイン出来たり出来るようになります。その上、大学Aと大学Bはユーザーの持ち得る役割の情報を共有しているので、その人は単にログイン出来るだけでなく、自分のユーザーの役割にあったサービスを受けられる事になります。

問題は、全てのカリフォルニア州立大学がSSOを実装するだけの人を持っている訳ではない、という部分で、話はなかなか進んでいません(私のボスは毎回その会議に出席してますが、まず何を言っているのか分かっていない代表者が殆どのようです)。ただ、SSOの持つ可能性は非常に大きいですし、それに仕様がオープンなSAMLが使われると、将来どのようなアプリケーションを使うにしても、複数のアカウントを持つ必要がない時代が来るかもしれません。

JRuby and Jython Example

JRuby.tar.bz2
Jython.tar.bz2
Javaから、rubyとpythonでSwingを使った簡単なスクリプトを実行している例です。いずれもJRubyとJythonを使って、スクリプトを動的にコンパイルして実行しています。ant compileでコンパイル、ant runで実行出来ます。

functional language
最近は、functional language、日本語では関数型言語と呼ばれているプログラミング言語を色々見てます。JavaやC、C++等、殆どのプログラミング言語はimperative language、日本語では命令型言語と呼ばれているものです。imperative languageは、連続した命令を実行していくもので、「state(状態)」という概念があります。メモリーを確保して、そこにある値を変更するなりして、それらのstateを管理します。functional languageでは、全ては「expression(表現)」です。数学における関数というのを例にすると良いかもしれません。

普通にプログラムを書いている分には、functional languageに触れる事は殆どないと思います。私がfunctional languageと触れるきっかけになったのは現在の仕事場で、多くのシステムレベルのアプリケーションがOCamlというオブジェクト指向なfunctional languageで書かれています。最初にOCamlの本やチュートリアルを読んでいたのですが、全然何がおこっているのか分かりませんでした。本当に、imperative languageを前提とした頭になってて、もうそれで固まってる感じです。

今は、Haskellを見ていたりします。バークレー大学とかでは、computer scienceの過程で、functional languageに触れる機会を与えている事があるみたいですし、今のimperative languageだけな教育の現状は、良いものなのかな、と少し考えるようになりました。別にfunctional languageの方が優れているとは思いませんが、考え方の幅は広くなります。

Apple Linkageさんより。

Adobe、Universalアプリケーションを来週リリース?

MacRumors.comでは、Adobe Systems Incorporatedが、来週アムステルダムで開催される「IBC2006」にて行う発表イベントへの招待状を送っているようだと伝えています。情報筋によると、Universal関連の発表があるようです。


Apple、Merom搭載「iMac」を発表

AppleInsiderでは、Apple Computer, Inc.が、9月に、新しい「iMac」を発表するようだと伝えています。情報筋によると、iMac全機種にCore 2 Duoプロセッサが搭載され、23インチモデルが新たに追加されるようだと伝えています。


Apple、9月5日に新製品を発表

Think Secretでは、Apple Computer, Inc.が、9月5日に少なくとも1つの新製品を発表するようだと伝えています。詳細は不明とのことですが、新しい「Mac mini」が発表されるかもしれないと指摘しています。他にも、Core 2 Duoプロセッサを搭載した「MacBook Pro」や「iMac」も発表される可能性があるとのことです。

どうやら、来週か今月中には、なんらかの発表がAppleからありそうです。Core 2 DuoなiMacは興味深いのですが、値段も気になります。後はZuneと真っ向勝負になるであろう新しいiPodの新機能も気になりますし、Core 2 DuoなMacBookは出るのか、というのも気になる。多分MacBook ProはCore 2 Duoになると思う。

後、やっとAdobeがUniversal Binaryの製品を発表するかも、というのも気になる。アップデートでUniversal Binaryに出来るのか、買わないといけないのかが気になる。仕事場で、Creative Suiteていう色々入ったのにアクセス出来るのですが、もう一回買うとなると結構高そうだし…。でも確か、Final Cutとかは安いものの金払う必要があったんですよね。とりあえず、今月は楽しみ。