Twitter始めました

http://twitter.com/takuya_araki です.あんまり使いこなせてませんが…

つぶやく方じゃなくて,読む方の立場で見ると,日々刻々情報が流れてくるのがいいんだろうね.目的を持ってGoogleで検索してかっちり書かれたWebページを見るんじゃなくて,ニュースサイトを巡回したり,はてブをチェックしたりみたいな感じで,受け身で情報が得られるというような.

で,会員全員のつぶやきを読める訳じゃないから,フォローした人,という形で情報を抜き出したり,検索ワードで抜き出したり,という.(でもフォローすると相手にメールが行くのは,若干敷居が高い…)

もちろん,そこで自分も何かを書くと双方向になってより面白いんだとは思う.でもまだその面白さが分かるほどには至って無いかな.もうちょっと頑張って使ってみよう.

TBBとラムダ関数

昔,Intel Threading Building Blocks (TBB)がフリーになった時,ちょっと調べて書いたことがありました.その時は,「並列化の手間がかかり過ぎだろう」みたいなことを書いたのですが,CodeZineの紹介記事を見ると,あれ,割と簡潔に書けてる…

parallel_for(
  blocked_range( 0, Count, 10000 ),
  [](const blocked_range& range) {
    /* ループボディ */
  }
);

のような感じ.あれ,ループボディをoperator()に記述したクラスを作らないといけないんじゃ無かったっけ…? っていうか,(...)って何よ?

というわけで調べてみると,これがかのC++0xで拡張予定のラムダ関数らしい.(引数リスト){...}で,関数オブジェクト(operator()が定義されたクラスのインスタンス)が生成されるそうな.Wikipediaの記述

で,Intelコンパイラだと,この記述法がすでに利用できると.なるほど.これならまだマシかなぁ.

そういえば,同時期にC#のTask Parallel Libraryについても紹介したけど,こちらはラムダ関数が使えるから簡潔に書けたのね.っていうか,当時はdelegateを使った記法だったけど.MSDNによると

Parallel.For(startIndex, endIndex, (currentIndex) => DoSomeWork(currentIndex));

みたいに書けます.(...) => {...}がC#でのラムダ関数の記法というわけですね.

なるほどねぇ.

Sisalを試す

Sisalとは,並列実行可能な関数型言語です.
超大昔に研究レベルで実装されてたんだけど,Sourceforge.netでソースが公開されているという(こちら).当時並列処理の研究をしていた人には有名な言語ですね.最終更新は2006年なので,それなりに開発は継続している様子.

学生の頃も,公開されていたのをダウンロードして試したことがあったが,10年くらい前だったか.やはり,これくらいしつこくやることが重要なんだろうねぇ.

単一代入の関数型言語なので,結構癖はありますが(if文が値を返したりする),まぁ普通に使えます.元々は数値計算向けの言語だったけど,単一代入変数を利用して並列性を抽出する類の言語なので,普通の並列化コンパイラで並列性が抽出しにくい用途(メディア処理とか?)の並列化にも使えるんじゃないかしら?

ダウンロードしてconfigure; makeでインストールされます.が,Testsディレクトリにある,CからSisalコードを呼び出すテストが通らない…どうも,gcc4から,staticかつexternと宣言すると怒られるせいっぽい.というわけで,sourceforgeの経由でバグレポしてみた(^^; 私の間違いで無ければ良いが…

Google Wave

ビデオを見てみた.

いやぁ,良くできている.Waveというオブジェクトに対する操作,参照ですべてを行うというアーキテクチャなんだろうね.メールのような非同期のコミュニケーションも,チャットのような同期コミュニケーションも可能になると.
あと,Google Web Toolkitつかってるのか.あれ,使われてるのかとか思ってたんだけど,ちゃんと活用されてるのね.

しかし,Googleの戦略がよく分からない.どうやってこれで儲けるつもりなんだろう? オープンソースにするとか言ってるしなぁ.メールシステムのように,複数のシステムが出てきて,それらが連携することを想定しているようだけど…

IE6のようなレガシーなブラウザを駆逐するためのキラーアプリケーション? デスクトップアプリを駆逐するため? それにしても遠回りなような.ま,お金あるからなんでもいいんだろうけど(^^;

学会発表:仮想マシンと連携したWebブラウザによるプログラム実行環境

仮想マシンと連携したWebブラウザによるプログラム実行環境」というタイトルで学会発表をしてきました.SACSISという学会です.微妙に周りから浮いているような気がするけど気にしない(^^;

内容は,

  • Webアプリは便利だけど,NWが切れてるときとか使えない
  • Gearsとかあるけど,プログラム書き換えるのは大変
  • クライアント側で仮想マシンを動作させて,その上でサーバ側プログラムを動作させれば良いのでは?

というものです.特徴は,

  • ユーザはブラウザ上でリンクをクリックするだけで,仮想マシンにオフライン化したいプログラムをダウンロードしたり,プログラムを起動したりすることができる
    • 上記リンクが仮想マシン上で動作するhttpサーバを指すようにすることで,リンクをクリックすることで,仮想マシンに(ダウンロード等の)指示を送ることができる,というトリックです
    • プログラムはDebianの.deb形式で提供してもらって,仮想マシン内ではaptを使ってインストールします.
  • 仮想マシン内で,さらにLinux-Vserverを使ってセキュリティを確保しているので,プログラムに悪意があっても大丈夫
  • あと,仮想マシン上でプログラムが動作するので,Webアプリだけじゃなくて,例えばX Window Systemを使うような任意のアプリを対象にできます
    • Flashのような感覚で,OpenOfficeのようなアプリを利用できると.

論文のリンクを張りたいんだけど,シンポジウムの論文は情報処理学会では(有料でも)提供してないのかしらん?

最近アンケート対応が多い件について

先日は某銀行の郵送での利用者アンケートに対応したのに加え,今日はほにゃららリサーチの人に自宅に来られて対応(家電CMの印象調査?).あと,自分ではないけれど,デパートでアンケートにつかまったとか言う話も.

まぁ面白いからいいんだけど,それぞれ対応すると500円とか1000円とかの商品券くれたりするのよね.人件費も考えると,結構かかっているはず.本当に不景気なのか?