2009年05月15日
Pixel City - 人工の3D夜景を作るチュートリアル&ソース
Pixel Cityは、コンピュータ上で存在しない都市の夜景を、毎回リアルタイムで、ランダムに生成するというプロジェクトで、上記の動画はその作っていく過程と最終的な夜景を収めたもの。
Twenty Sidedというブログで4月から5月にかけて、その手順が詳細に書かれている。
Windows+OpenGLベースで、実際に制作にかけた時間は合計で30時間ということ。以下に各記事を示す。
Part 7: 街灯と車のヘッドライト・テールライトをつける
Part 12: 完成へ - ビルにロゴをつける、街灯の調整、屋上灯やアンテナ塔をつける、スクリーンセーバー化
各ブログ記事には、数十個以上のコメントがついていて、いろんな人が別の技法や改良案、論文の紹介や高速化の提案などをしている。まさに公開しながら学んで成長するという事例にもなっている。
C++(ざっと見た感じでは、better CとしてのC++)のソースコードはこの作者のオリジナルがGoogle Codeで公開されている他、forkしたGithabでも他ユーザの参加で改良が進んでいるらしい。
バイナリは、Windowsのスクリーンセーバー形式のものが公開されていて、ダウンロードして\Windowsフォルダにおき、コントロールパネルの画面からスクリーンセーバーとして登録すると、Windowsマシンで動かすことができる。
最後の記事で呼びかけているように、環境によっては非常に重くなって動かないというバグが出ているようなので、動かしても何も表示されてこないようならプロセスを止めて復旧されたい。僕の場合家のPCでは動いたが会社の方(ちょっと古い)では動かなかった。
2009年04月29日
Enigma - コンピュータ・サイエンスのパズル30問
インドのBitwise 2009という、アルゴリズムに特化したC/C++のオンラインプログラミングコンテスト、コンテスト自体は終わっているが、そこで企画されたオンラインパズルEnigmaというのが公開されている。
30問の計算機科学に関する用語やトリビアがあり、一問づつ解けたら次の問題が出てくるらしい。らしい、というのは一問目から詰まって先に進めないからだけど…
http://labs.cybozu.co.jp/blog/akky/bitwise-enigma.png">
全部解けるとここに名前が載るらしい。
投稿者 秋元 : 13:32 | コメント (1) | トラックバック
2009年04月20日
グルグル回すグーグルの新CAPTCHA特許
Googleのリサーチブログで紹介されていた、新しいキャプチャ方式の論文[pdf]
こういう画像を、ちゃんと上を向くように直すことで、ユーザが人間であることを確認する、というもの。
なお、Aは人間でもコンピュータでも上がわかるような画像、Cは人間でもコンピュータでも上がわからないような画像、Bが人間だけ簡単に上が判定できる画像、だそうだ。画像にも、上がはっきりしているものと、どちらが上と取れる画像があるので、このキャプチャに向いた画像を選別して使うと書いてある。
3枚ぐらいの判定でよい結果が出たということで、実際に今CAPTCHAがあるようなWebのフォームに適用しようとするとこんなイメージになる。
また、キーを入力するタイプの今主流のキャプチャよりも、キーボードが無くて画面も小さいこういうデバイスで特に有用である、とも言っている。
[追記] ジョェバンニ、じゃなくてamachangが数時間でやってくれました
JavaScript でくるくる CAPTCHA を実装してみる - IT戦記
関連
Codetcha プログラマだけが解けるデバッグを利用したCAPTCHA
CAPTCHA解読ソフトの価格表に見るCAPTCHAのレベル差
reCAPTCHA - キャプチャを利用した人力高性能OCR
2009年02月10日
ブログ本文を取り出しやすくするマイクロフォーマットについて(ちょっと)調べてみた
ほんとにちょっとなので期待しすぎないで。
XPathの不便なところ - ぶろぐ。@はてなで、特に意味はないけど(笑)XPathで本文を探しにくいサンプルとしてこのブログが上げられていた(すいませんほんとに)。
そのXPathは、LDRFullFeedで使うことを想定しているということ。見てみたら、WebページのURLから本文を取るためのデータで、そこは参加者が持ち寄って作るデータベースらしい。
LDRがlivedoor Readerだとすると、このブログは全文出してるので本文はそっから取れるのだけれど、このデータはそれに限らずいろいろな本文を取り出すスクリプトで参照されるから、フィードから本文が全部取れるかどうかはまた別の話なのかもしれない。
とにかく、スクリプトに優しくないということなので個別ページのHTMLのソースを見てみた。で、上のページもあわせて読むと、なんとなく不親切な構造なんだろうな、というのは把握した。
で、今の構造はどうしてこうなってるか考えたけど、たぶん最初にMT3をインストールしたときの構造をベースに、弊社のウェブデザイナーにお願いしたんだと思う。もともとMTはこういう構造なんではなかろうか。
microformatsのページで、ブログのマイクロフォーマットはどうあるべきか、というところを読む。
ここでは、Movable TypeやWordPressといったインストール型のブログシステムや、BloggerやLiveJournalなどのブログサービス、CMSや掲示板などの著名なものについて、本文をどう指しているか調べているのだけれど、まとめというか列挙になっていて、各システムでまったく違う構造や(あったとしても)マイクロフォーマットが割り振られているようだ。
ここまで読んで、実際にどう改造すると機械にもやさしいブログになれるのか、ちょっとわからなくなってきた。もしMovable Typeのデフォルトがこれなら、XPathはちょと複雑でも、今のままの形にしておけば「Movable Typeブログ向け汎用SITEINFO」みたいなものがきくのかなあ、などとも思ったり。
MTの構造を残したまま、別のもっとダイレクトな(idを振った)本文のdivを入れるというのが落としどころかもしれない。どうしよう?
参考
ここよりも後でここより前を指定するXPath - 0x廃棄階層 - 統治局
水都大阪のポスターがヤバイ とか(2009/02/09の雑記) - Hinemosu それなのかなあ。でもなんで"center"?
投稿者 秋元 : 14:28 | コメント (2) | トラックバック
2009年01月29日
Twitto: PHP5.3専用最小新フレームワーク
Twittoは、PHPフレームワークsymfonyの中心人物Fabien Potencierさんが(冗談で)作った、新フレームワークだ。
実アプリに決して使わないこと!!!
フレームワークのコードは、twitterの一メッセージに収まるように、140文字以内で書かれている。(twitterでつぶやきたければ改行を取ればいい)
require __DIR__.'/c.php'; if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; })) throw new Exception('Error'); $c();
サイズ以外の特徴は、デフォルトコントローラのサポート、E_STRICT(PHP5から導入された、より厳しいエラーチェック)に完全対応、存在しないコントローラへのアクセスでちゃんとエラーを出すこと、などだ。
同じフォルダに置いたc.phpにコントローラ関数を定義すれば、パラメータ経由でそのコントローラが呼び出される。
ジョークではあるけど、「PHP5.3専用」とあるだけあって、PHP5.3で新しく入った機能を活用している。
一つは新しい定数 __DIR__ の利用。これは、従来 dirname(__FILE__) と書いていたものを、より簡単に書けるPHP5.3からの機能。
二つ目は新演算子"?:"の利用。これは、この演算子の左右にある二つの式について、空じゃない方を採用するという演算子。上記フレームワーク内では、$cが空だったら右が評価されるのでデフォルトコントローラが呼ばれる。
また、デフォルトコントローラはPHP5.3の無名関数(anonymous function)を使っている。
2009年01月26日
1972年の絵文字(エモチコン)
Emoticon(エモチコン)、スマイリー(smiley)、絵文字、アスキーアート、いろいろ呼び方はあるけど、コンピュータスクリーン上で文字を使って絵を描くことで感情を表したもの。今ではだれでも、堅苦しくないチャットやメールなんかでは特に、使っているだろう。
":-)"が(横倒しになった)笑った顔を現すというSmileyは、1982年に発生したと言われている。
上の絵文字、イリノイ大学のPLATOという教育用ネットワークシステムでの掲示板で使われていた、おそらく最古のエモチコンだという。時は1972年。
…1972年だよ?
驚きだなあ。そんなに前から掲示板システムというのがあって、その時にはすでに文字で絵を作って遊ぶことも既に始まっていたなんて。
左側にある四角い絵がそれなんだけど、これは当時の文字しか表示できないコンピュータの端末上で、制御文字を使って一文字カーソルを左に戻し、その上に新しい文字を重ねて書くというワザを使うことで、作ったものらしい。
絵文字の右側にある文字列が、その重ね合わせるアルファベットや数字ということ。あくまでもこのフォントで、だけど、右側の文字を全部重ねると、左側のような絵が浮き上がってくる。
2009年01月16日
パズルを使ったCAPTCHA=SLICEYA
SLICEYA(スライスヤ?)というCAPTCHAの提案をした人が、その実験ページを公開している。
# ソースコードを見てクイズに答えるという変なCAPTCHA、Codetchaと同じ人の作品だ
実験サイトなので、keywordsというパラメータに使う検索ワードをいくつか指定してあげる必要がある。(実際に運用に使うなら、どんなキーワードで突破できるかは知られちゃいけないので、当然ここは隠すところになる)
そうすると、画像検索で持ってきた画像をさらに四分割、場所入れ替えをして、CAPTCHAの問題にしてくれるというわけだ。
このSLICEYA CAPTCHAを突破して人間だと判定してもらうには、マウスでつまんで画像片を正しい配置に戻し、さらに下のボックスに画像を指し示すキーワードを入力しなければならない。
2009年01月09日
マイクロソフトがQRコード対抗の技術「マイクロソフト・タグ」を公開
どっかで見たようなこの風景。名刺に印刷されている図形が、見慣れたQR Codeとちょっと違う。これは、8日にMicrosoftが発表したMicrosoft Tagという二次元バーコードだ。(Silverlight入れてないと見えない by ID:amachang)
最小の単位が正三角形になっているのと、QRコードなど既存の二次元バーコードが白黒の二色なのに対して4色(と横の白いラインで5色か)を使っているのが違う。解説図によると、
だいたい4分の1のサイズで、同じ情報量(上の図では8ビット)を表すことができるという。QRコード、海外で一部使われているDatamatrix code、そして色つきMicrosoft Tagを比較した図もあった。
FAQによると、ベータの間はこのタグの作成も利用も無料、そのあと二年間も無料、でもその先は決まってない。ということで、まさかとは思うが有料になる可能性も残している。そんなことしたら普及しないだろうなあ、と思うけれど。
さっそく試してみた、けどジェネレータが動かない
Liveアカウントでログインして、いち早く自分のブログのURLのMS-Tagを作ろうとしたのだけれど、エラーになってしまう。しかも一旦エラーになると次回ログインしても最初からエラー画面になってしまうので、あっちが直さない限りコードを生成することができなさそう。
こういうのは自分で作れるからいいんだけどな。
二次元バーコードの普及状況
日本に住んで電車通勤とかしていると、世の中のそこらじゅうにQRコードがあるので、この手の二次元バーコードって世界中にあるのかと思ってしまう。でも、AsiajinとかでQRコードを使った面白いキャンペーンとかを紹介したときの読者の反応を見る限り、アメリカ等ではほとんど普及してないようだ。
iPhoneのQRコードリーダーなどが、普及のきっかけになるかなとも思ったけど、マクロモードがついてないiPhoneのリーダーでは、日本の携帯電話のように快適にはコードが読み込めないらしい。
日本発の規格であるQR Codeもそんなには海外へ出て行ってないし、上でも出てきた競合規格のDatamatrix codeもそんなに話を聞かない。どちらかというと「あまり普及しなかったね」みたいな技術とされているように見える。だからこそ、日本のさまざまなQRコード活用(ビルの壁面の巨大コードとか、電車の中吊りやファッション雑誌の服についたコード)の事例を見て「ほんとに機能している世界があるんだ」と驚くのだと思うけれど。
今回のMicrosoft Tagは、iPhoneやWindows Mobile、Nokiaの携帯電話など向けにリーダーを用意して配っている。推進するにはそれなりに大きな母体ではあるけど、こんどは、大企業同士の駆け引きで規格が乱立してまとまらない可能性もありそうだ。たとえば、Googleはいくつかのサービスで、そこそこQRコードをサポートしている。
日本のQRコードは、色をデザインとして追加したり、誤り訂正の余力を使ってドット絵や文字を入れて遊んだり、という方向ではいろいろとアイデアを出してきたけど、この先Microsoft Tagに普及を阻まれるのか、日本での実績を元にゆっくりでも広まるのか、それとも日本でだけ流行した技術として終わるのか。日本も非接触式のICカードとかがクーポンとかで二次元バーコードの代わりに使われるケースも出てきているので、このTagがどうなるかも全然わからないけど。
via ReadWriteWeb
2009年01月08日
ボットネット(botnet)の活動を可視化
ウィルス経由でパソコンにプログラムを仕込んで、DoS攻撃やスパムの一斉送信に使うために大量のコンピュータをインターネット越しに組織化したものをボットネットと呼びます。
実際に攻撃者が攻撃の開始を指示するために使うプロトコルは、IRCという昔からあるチャットの仕組みであることが多いといわれていますが、このbotnetが使うIRCのチャンネル群を監視して、ボットネットの活動の活発さを調べたデータがあるということで、それを世界地図上にプロットして可視化した動画がありました。
スクリプトはPython, ログの解析はPyQtライブラリ、IPアドレスから地図上の座標を知るジオコーディングを呼ぶのにMaxmindというパッケージを使って、NASAが配っている世界地図の上にプロットしたということ。地図上に活動をプロットしてアニメーションさせ、それをどうやって見やすく改善したか、というあたりも説明されています。
2008年10月21日
マイクロソフトのリアルタイム音声検閲特許が成立
ars technicaによると、2004年に申請されていたマイクロソフトの特許がアメリカで成立したという。
その内容はというと、リアルタイムで音声の中から特定の音を見つけ出し、そこを無音化したり、別の音を被せるという技術。つまり「ピー」を自動で入れるソフトウェアである。
# 特定の音を見つける、という技術は、エシュロンとかグレートファイアウォールでやってそうな気もする。まあ当然特許とかには出てこない話だけど。
リアルタイム、ということなので、Fワード等の単語が話し終えられる前に、「ピー」を被せられるということだけど、このへんは、それまで出てきた単語の情報などもあわせて、その話し手が問題のある単語を使いそうかどうか、という確率も加味して閾値を動的に変化させる、というようなことが書いてある。
ars technicaによれば、アメリカの場合、FCC(連邦通信委員会)の規定で、毎日朝6時から夜10時までの間、問題のある表現は「ピー」で置き換えないといけないという法律があるそうだ。そこで、生放送の出演者がうっかり問題のある単語を話さないように、ライブであっても7秒間とかずらした映像・音声を放送し、何かあった場合は監視者が7秒のうちに対策を取るようになっているのだと。
このソフトウェアは、もし額面通り動くなら、そういった生放送が必要な業界や、オンラインゲームの音声チャットでネットワーク越しに相手にひどい言葉を使うユーザへの対策として使われるのではと予想されている。
テキストのウェブでは、だいぶ前から、特定の単語(「死ね」とか)をフィルタする掲示板があったりしたけれど、ネットワークの帯域が広くなって音声がより使われるようになってきたのに合わせて、音声でも同様の技術が必要とされてきたということか。
テキストでも「死ね」→「氏ね」とかの言い換え等で単純フィルタが無意味になったように、音声でも攻撃的な単語の言い換えが増えるかもしれない。
できれば、こういう技術は送信側(テレビ局等)で処理するんじゃなくて、受信側が個別にオンオフできるのが望ましいように思う。誰かが「良くない言葉」を決めて一律に押し付けるのに使われるのではなく、「ピー」を被せるかどうかは受信者が切り替えられて、自分の責任で汚い言葉を聴く自由もある、ということならいいのだけれど。過渡期にはソフトウェアの能力や手間から発信側でのフィルタに使われるのだろう。
2008年09月29日
jQueryがマイクロソフト及びノキアと提携を発表
人気のあるJavascriptライブラリjQueryが、MicrosoftとNokiaのサポートを受けることが公式ブログでJonh Resigさんから発表された。
マイクロソフトの方はASP.NET開発環境Visual Studioへのバンドルが予定されている。また、jQuery上に画面パーツやウィジェットも開発するそうだ。
ノキアは、世界で一番携帯電話を売ってるわけだけど、その携帯電話でウィジェットを走らせるために搭載されているWebKitベースのWeb Run-Timeに搭載されるということ。Web Run-Timeの開発者はjQueryが常にある前提で携帯電話向けウェブサイトを作れるというわけだ。
Resigさんの説明によれば、両社ともjQueryをそのまま、改変することなく載せるという。
2008年09月16日
シュレッダーは安全か?
やじうまWatch経由でみつけた、シュレッダーにかけた紙を再現!(気合で)という記事、
# ちなみに、同日のやじうまWatchのもう一つのネタも当ブログで紹介してたりする
記事の要旨は「A4一枚をシュレッダーにかけたものを復元するのに6時間近くかかった、だから復元はできるけどたいへん」ということなのだけれど、たいへんな作業のうち、ちまちまと紙を置いて台紙に貼ったりといった作業は、専用ソフトがあったりする。Unshredderがそれ。
シュレッダーでばらばらになった紙切れをスキャナで取り込んで、Windowsアプリ上で作業ができるというもの。
せっかくのコンピュータなので、切り口の色や形を見て隣になりそうな紙片を見つけてくれたりするといいのだけれど、そこまでいいものではなかった。
イスラエルの企業Safe Guard社の製品で、月額90ドルの購読か950ドルからの買い切り。15日間の無料試用版もあるので使ってみたが、まあこれでもたいへんだろうな、とは思った。
売り文句では、犯罪捜査の証拠集めに最適、みたいな事が書いてあるが、むしろまず犯罪に使われそうな気もしないでもない。
ま、とにかく、シュレッダーも万能ではない、というのは覚えておいてもいいかもしれない。特に価値の高い情報はシュレッダー以上の措置で廃棄するとか。
投稿者 秋元 : 14:27 | コメント (1) | トラックバック
2008年09月03日
Google Chromeに最初の脆弱性発見
早いなあ。
ZDNetによると、Google Chrome公開から数時間のうちに、警告無しにユーザにJavaアプリケーションを実施させる脆弱性を見つけた人がいたようだ。
ブラウザウィンドウの最下部にダウンロードされたjarファイル(Javaアプリケーション)が任意の文字(jarファイルのファイル名)で表示され、そこをクリックするとJavaアプリケーションが実行される。デモも用意されていて、デモではノートパッド風のアプリケーションが起動するが(Jarファイルは警告無くダウンロードされてしまうので注意のこと)、これをユーザが誤認するようなウィンドウとして開けば、そこからまずい操作をさせてしまえる、というもの。
まあ、Chromeのダウンロード結果表示がどんなインタフェースなのか慣れてない今だからこそ引っ掛けられるのかもしれないけど。
同じエンジンを使っているAppleのSafariブラウザでは既に修正済らしい。
[追記]
具体的にどうするか、だけど、修正前のChromeを使っている人は、画面最下部に上の画像のようなダウンロードボックスが出てきて、そのボタンに何かクリックを促すメッセージが書いてあったとしても、自分で意識してファイルをダウンロードした記憶が無ければ、押さないこと、かなあ。(違ってたら教えてください)
# 使わずに様子を見る、でもいいけど
早速Googleによるアップグレードがされそうな情勢なので、Chromeの新バージョンはどう通知されて、どう更新されるのかもすぐに見られるのではないだろうか。
Safariより古いWebKitを使ってるという話はdrikinさんのところでも出てる。
via ReadWriteWeb
2008年08月27日
PHPのエラーメッセージをtwitterに投げるPHP Extention
あんまりつぶやきたいことも無いのだけれど、PHPにはあるかも… - Johannes Schlüterということで、Johannes Schlüterさんが、PHPのエラー情報をフックしてtwitterに投げるという面白いPHP拡張を公開されている。
「ピザを食べるだの食べてるだの食べただの書いてる人はよくわからないけど、エラーメッセージが出たとかエラーを直したとか書いてる人もいるから、興味のある人はいるんだろう。だったら、エラーメッセージを直接PHPに吐かせればいいんじゃね?」ということらしい。
PHP拡張といっても、スクリプト側にデータを戻したりするものではないので、ソースは単純で短い。PHPのエラー処理を横取りするところや、php.iniで設定されたパスワードを読むところ、twitter.comにPOSTするところなどは参考になる。twitterにしてもdirect messageで送るとか、twitter以外のIRCやSMSで送るとか、実用的な改造もありかと。
また、流量制限とかまったくしてないので、大量にエラーが出たらtwitterからユーザ削除されるかもしれない。
自分の書いたスクリプトのエラーがtwitterに流れてると思ったら緊張するだろうなあ。
2008年08月13日
Yahoo APIのドメイン変更。マッシュアップ作成者は点検を
Yahoo!検索、Yahoo!カテゴリのWebAPIドメイン変更のお知らせ - Yahoo!検索 スタッフブログ
まだ旧ドメイン(一般ユーザがログインするときと同じドメイン yahoo.co.jp)でもアクセスは続けられるということだけれど、そのうち新ドメインだけになると思われるので、YahooのAPIを使っているウェブアプリは順次見直して新URLに置き換えておいたほうが良さそう。
2008年08月08日
PHP4終了。PHP5.2系以降へ
2007/12/31にサポート終了となっていたPHP4.4系が、本日2008/08/08をもって完全に終了となった。今日から後は、基本的(*1)にPHP4を使うべきではないだろう。新規開発はもちろんPHP5.2以上ではじめるべし。
「残っていた大きな問題に対処した」PHP4.4.9が本日リリースされている。どうしてもPHP5.2.xに移行できないPHP4のサーバがある場合は、せめてこちらへの入れ替えは行なうべき。
'*1) この先PHP4系は処理系に変化が無くなるので、PHP処理系のソースコードに自分で手を入れられるようなヘビーユーザーでない限り
2008年08月06日
feedburnerの購読者数を好きなだけ増やすハック
バックエンドの集計なんてそんなもんだよね、という話がまた一つ。
RSS/Atomフィードを中継して集計・広告・ブログパーツ(ウィジェット)などの付加サービスを提供する無料サービスFeedburner、特に英語圏で多くのサイトやブログから利用されている。(日本でもサービスはやっている)。Googleに買われたことでも有名だ。
様々なRSSリーダーでフィードを読んでいる人の数を合計して教えてくれるので、ブログを見に来た人のページビューはわかるけど、フィードで読んでいる人数も知りたい、といった需要にうまく答えている。
フィードの購読者数を読者に見せるためのウィジェットも提供されている。たとえばこんな表示。
上記のは個人でやってる英語ブログAsiajinの購読者数。最近ついに2000人を越えた。インチキはしてないよ(笑)
TechCrunchやReadWriteWeb, Mashableなどの大手ブログになると、この購読者数が800K(K=1000)、つまり80万人とかになって、そんなにたくさん読んでるのか、と驚かされることも多い。
「そんなに大勢が読んでるなら、いいブログなのかもしれないな」と読み始める人も多いだろうから、この数字は重要だろう。
今日の話は、そのfeedburnerの購読者数のカウントを騙す方法。
feedburnerは有力なRSSリーダーから、そのフィードを読んでいる人の数を訊いて(これはほとんどのWeb型RSSリーダーで可能)、それを合計している。つまり、どこかのRSSリーダーで自分のブログの購読を多数行なえば、合計の数字も書き換えられるということ。これが解説のビデオ。
Feedburner hacked! from Boris Veldhuijzen van Zanten on Vimeo.
47人しか購読していないあるブログに対して、実験を行い、一晩で購読者バッヂを2500人にしている。
ここで使われているのはNetvibes。2500行のRSSフィードURLを持つOPML(RSSのリストファイル)をテキストエディタで作成し、Netvibesで一気にインポートしている。これだけ。
あとは、Netvibesが2500人増えた購読者数を、feedburnerのクローラーに教えてくれるので、次回は+2500された購読者数が表示される。
2008年06月26日
ペーパープロトタイピング事例集
実際に動的なウェブサイトを作ってしまう前に、紙上でデザインや部品の配置、画面遷移などを確認するペーパープロトタイピングという設計技法があります。書籍もありますね。
ペーパープロトタイピング 最適なユーザインタフェースを効率よくデザインする
そのペーパープロトタイピングの事例を集めたページというのがありました。たとえば次のこれは、2000年5月31日にスケッチされたtwitterのプロトタイプです。当時はstat.usという仮名で、これによるとtwitterはLiveJounal(ブログサービス)とAIM(インスタントメッセンジャー)から最初の着想を得てから実装まで5年以上の間があったことになりますね。
FlickrのPlacesページやVimeoなどのペーパープロトタイプの写真も紹介されています。
こちらは韓国のポータルサイトDaumのAjaxウェブメール開発時に行なわれた、ペーパープロトタイプ開発の様子を撮影したものだそうです。
via ValleyWag
投稿者 秋元 : 10:34 | コメント (4) | トラックバック
2008年06月23日
ユニバーサル・エディット・ボタン続報
土曜日にご紹介したUniversal Edit Buttonの話、自分のサイトならべて/Narabeに適用したあと、提唱者の一人Mark Dilleyさんとやりとりをしてるうちに、「トップページを日本語にしたいな。訳してくれる?」という話になった。
あっという間にリンクが作られて、Wikiだからあとはよろしく、ということでトップページの解説を日本語にした。
さすがWikiの力、というところか。
そして今日、なにげなくはてなブックマークを見てると、アドレスバーに緑の鉛筆アイコンが。
あれ? と思って押してみると、ちゃんと編集ページに遷移した。はてなブックマークがいつのまにかUEB対応していた。
そしてWikiの方の一覧をもう一度チェックすると、そこにはニコニコ大百科が。
ニコニコの人たちはこういうの素早いねえ。サービスはまだ日本と台湾だけだけど、それは設備的な制限で、技術の取り込みとか海外への紹介とかほんとに早い。
対応するのはheadに案内を一行書くだけなので、ユーザ編集ができるサービスをやってる方(で、ヘッダの一行もパフォーマンス劣化させたくない、とか言わない人)はぜひ対応してみてはどうだろう。
各ソート技法をアニメーションで表示するAnimated Sorting Algorithm Demo
ソートアルゴリズムのアニメーションデモでは、様々なソート手法(挿入、選択、バブル、シェル、マージ、ヒープ、クイック、三分割クイック)について、ソート対象のデータが完全ランダムの場合、ほぼソートされている状態、逆順にソートされている場合、同じ値のものが多数ある場合のデータをソートする様子を、Javascriptを使ったアニメーションで見せてくれる。
それぞれのソートアルゴリズムがどのようなものか見せるというだけでなく、ソートのアルゴリズムに「常にこれが最適」というものはない、というのを示すのも目的、ということだ。
各アルゴリズムのリンクからは、そのアルゴリズムのコード、特徴や計算量が解説されたページに飛ぶ。
このようなソートアルゴリズムの可視化というテーマ、Javaベースではこういうのやこういうの、こういうのも過去にあった。
via del.icio.us/popular
2008年06月21日
Universal Edit Button - 「編集可能なウェブ」実現のための新規格
Universal Edit Button(略称 UEB)は、Wikiなどの「ユーザが編集に参加できるウェブサイト/ページ」を普及させようという新しい活動だ。
フィードのアイコン
が「ウェブサイトの新着通知を受け取れるマーク」として普及し、FirefoxやInternet Explorerでも採用されて広まったのと同様に、「編集できるページを示すマーク」を作り、個々のユーザがもっとウェブを編集する世界を実現しようということだ。
公募で集められた様々なアイコン候補の一部はこのようなもので、
そこからグリーンと鉛筆のアイコンがこの活動のアイコンとして選ばれている。
Wikipediaをはじめとして多数のサイトが賛同
Wikipedia, Wikihow, クリエイティブコモンズのWikiページなど、Wiki関連の主要なサイトが既に賛同し、このUniversal Edit Buttonに対応している。
UEBのサイトに対応済のWikiサイトやWikiプログラム、ユーザ編集サービスが多数列挙されていて、これは今も増殖している。
僕がやっているならべて/Narabeも、日本発のサイトとしては初めてこの規格に対応し、一覧に載っている。Other Platformsのところ。
編集可能なページにUniversal Editing Buttonを出すFirefoxアドオン
Firefoxの拡張機能が配布されている。これをインストールした状態で活動に参加しているページに行くと、ブラウザのアドレスバーにUEBアイコンが表示される。
アイコンを押すと、そのページの編集ページに連れて行ってくれるというわけだ。
via ReadWriteWeb
2008年06月16日
The Happy Web Weekendに行ってきた
マイクロフォーマットなどのHTML/XMLのマークアップ仕様を中心とした一日セミナーThe Happy Web Weekendに行ってきた。
神崎正英氏による、ソーシャルメディアとマイクロブログ
The Web KANZAKIでRDFなどの解説を長くされている神崎さんによる、ソーシャルメディアで提供されているAPIと標準的なAPIの間の変換や、それらを運用して関連付けを行なうための問い合わせ言語などの解説。プレゼン資料が公開されている。
FOAFは知ってたけどSIOCは知らなかった。ショック!
あと、Geohashは、Geohashingとしてここでネタ的に紹介してたけど、org取って真面目な利用もやってるんだということを知った。
John Allsopp氏による、microformats紹介
マイクロフォーマットの現況と、最新の利用シーンの紹介。XFN, hCard, hCalendarなど主要なmicroformatsと、それを活用しているサイトの紹介。
たとえば、XFNによる人間関係の埋め込み。WordPressではデフォルトで埋め込み機能が提供されているし、他のブログシステムでもプラグインがある。XFN+CSSによる、XFN情報に基づいた表示形式の変更(友人へのリンクに特別なデザインを当てるなど)
Yahoo! SearchMonkeyでは、マイクロフォーマット化されたコンテンツをインデックスし、要求したフォーマットで返してくれる。SearchMonkeyは実を言うとよく見てなかったけど、これはちゃんと追った方がいいな、と感じた。全般的にAllsopp氏はGoogleがなんでも(先端的とかオープンとか)一番なわけじゃない、みたいな感覚でいるみたいだな、とも感じた。
マイケル・スミス氏によるHTML5概観
前にどこかでお会いして類似のプレゼンを聞いた気がする。慶應SFCのW3CでHTML5の仕様策定などをしている人。HTML5の「現状のブラウザの動作を追認する」性格や、新しい面白い仕様と各ブラウザの対応状況、モバイルブラウザの現状、などが語られた。
John Allsopp氏による、ウェブを見る環境の多様化
様々なデバイスでウェブを閲覧できるようになったという話と、その多様なデバイスに対してウェブサイト/ウェブアプリケーションを提供するときの考え方、というテーマでの話。
最後に、web directions south(シドニー)、 north(バンクーバー)に続いて web directions east(東京)の開催が予告された。11月開催らしい。今回のお三方の話が面白かったので、より大規模に行なわれるこのイベントも面白そうだ。
2008年06月06日
fav.or.it創業者による「もしtwitterを作り直すなら」
コメントつきソーシャルRSSリーダーfav.or.itの創業者Nick Halsteadさんが、自分がtwitterのスケーラビリティを直すならこうする、というエントリを書いている。
twitterは今日も「データベースがロストした」とかで落ちていて、不安定さに対する不満の声をそれこそ毎日のように見かけるようになっている。
技術的な興味から、訳しながら読んでみたのだけれど、ほんとうにこれですべてた解決するのか、については僕はわかっていない。わからないものを出すのもどうかと思い数日放置してたんだけど、もっと手の長い人に読んでもらうのも意味はあるかなと思い直し、以下に公開する。
「fav.or.itはこれよりもっと複雑だ」と言ってるけれどfav.or.itはtwitterほどユーザいないし(笑)。
前段では有名ブロガーのRobert Scobleさんが、技術的な理解無しにtwitterをMS Exchangeになぞらえたり、改善提案したりしていることに対して「黙れ」と書いている。
Nickさんの設計の基本はShard(シャード)にある。システム中のどのポイントを取ってもスケールするように、台数を増やせば対応できるようにしておけば、スケーラビリティの問題はなくなる、と。
キュー Shard
ユーザIDからハッシュで求まるShardにメッセージキューを持たせる。追加速度が重要なのでオンメモリに置く。
重要な点は、このサーバが日付とつぶやきのidの関係だけを扱うこと。
友達 Shard
ユーザの友人を保持するShard。キューShardより一台あたりより多くのユーザを持てるはず。あるユーザの新着メッセージを受け取ったら、友達リストを返す。
ハッシュを使って、それぞれの友達が存在するキューShardのリストを得る。
これで、たとえScobleさんのように25,000人の友人が居たとても、各キューShardは1000以上のinsertを扱うことはなくなる。
Joiner Shard
新着の(20個とかの)つぶやきを取得するときは、つぶやきのidのリストをキューから取得するだけなので、実際のつぶやきはつぶやきShardから引き出さないといけない。このJoinするShardはたぶんmemcacheを使うことになるだろう(つぶやきShardへのアクセスを減らすため)
もう一つのポイント。キューShardはインメモリなので、正規化を崩されて非効率な形式で格納されている。ディスクに保存しようとしたら重大なオーバヘッドがかかるだろう。JoinするShardはキューShardから一部分だけを取得することでこれに対処し、そのあと正規化されたDBから残りを取得するようにする。
つぶやき Shard
あたらしいつぶやきはつぶやきShardに格納される。ハッシュをつかってこれを複数サーバに広める。古くなったつぶやきは、取り出し速度よりも保存に適した大きなストレージに移動させるようなアルゴリズムを使う。
ウェブ Shard
ここは簡単だ。上記のShardsで複雑なデータベースが動く仕組みはできあがっているので、ウェブShardは実際のAPI/HTTPなどのリクエストの処理をして、リクエストを関連するShardに受け渡せばいい。
特定の(一番よく呼ばれる二つの)処理でどのShardがどう呼ばれるかをいかに説明する。
つぶやく
- ウェブShardはリクエストを受け、つぶやきShardにメッセージを送り保存させ、そのメッセージに対応するつぶやきIDを受け取る。次に、このメッセージの送り主の友人が格納されている友達Shardを探す。
1. つぶやきShardはメッセージを受け取り、保存し、新しいIDを発行して返す - 友達Shardは、メッセージを受け取る。ユーザのすべての友達のキューが存在するキューShardにシグナルを送る
- キューShardは自分の担当内の友達リストを受け取り、メッセージIDをそれらのキューに挿入する
- 正規化されたキューShard、長期保存用の長期アーカイブ(そのかわり取り出しは遅い)に保存する
つぶやきの一覧を作る
- ウェブShardはリクエストを受け取る。Joiner Shardにユーザのストリームを作るようにリクエストを送る
- Joiner Shardはデータを探すべきキューShardのリストをルックアップする。そしてつぶやきShardから実際のつぶやきを取得する。両方をまとめてウェブShardに返す
- つぶやきShardはリクエストされたつぶやきリストを返す
キューShardやつぶやきShardからデータが取れないときは、上記はもっと複雑になる。その場合には、長期保存用アーカイブにデータを見に行くことになる。
結論
これは複雑に見えるが、まあ複雑だ。しかしスケールするアプリケーションを作るという観点からすればかなり単純ともいえる(fav.or.itにはもっと複雑なところが多数ある)。twitterの人々は再設計が許されず徐々に動かしたまま改善しないといけないのでたいへんだろう。幸運を祈る。ところで-よかったら http://www.twitter.com/nickhalstead にフォローするといいかもよ。
[追記 2008.06.09] きたきた。期待してます。
2008年06月03日
ビデオに映る人の顔を判定して隠すプライバシー対策技術のデモ映像
写真イメージから人間の顔を判定して隠してくれる笑い男画像自動作成ジェネレーター、というのが前にあった(今探してみたら最初に話題になったサービスはサイトごと無くなっていた)。
このビデオで紹介されているのは、それの動画版と言っていい。手配中の顔の場合はそのまま録画して、一般人の顔はぼかして録画するという。
監視カメラに映った車やそのナンバー、人物を特定するソフトウェアを作っている3VRが、同じ技術を使って映った人のプライバシーに配慮するシステムをデモしている、ということだ。
加工された顔は、鍵を使うことで元の状態に戻せるが、戻して表示することを一定のルールや令状を必要とすることによって、一般市民のプライバシー保持が向上することを期待しているという。
[関連]
笑い男摸倣ツール Catcher in the Rye 動画の顔を隠すだけだとこれでもできているよう
Safariでページを反転させるブックマークレット
Ajaxianに出てた。Safariブラウザだけの機能。
-webkit-transform に 'rotate(180deg)' を与えると、180度回転したページが表示される。
javascript:document.body.style['-webkit-transform']='rotate(180deg)';
リンク先に、ブックマークレットが置いてある。flip2は確認を挟んで180度回転。
180deg, ってことは任意の角度でもいけるのかな、と20degを入れたら、こうなった
貼り付けたビデオプレイヤーは元の角度のままだったり、範囲選択がなんかカクカクしたりと新鮮で面白い。斜めにすると横幅が広くなるけど、横スクロールバーはでないなあ。
これ少しずつ値を変えたら、ページがぐるぐる廻せそうだね。
2008年05月09日
inputEx - HTML Form作成Javascriptライブラリ
inputExは、クライアント側だけでバリデーションや入力補助つきのフォームを作成できるJavascriptライブラリだ。MITライセンスで、Yahoo UI libraryのバージョン2.5.1をベースにしている。
サンプルのページからデモを開くとわかるけれど、
JSON形式の短い記述のみで、きちんとしたフォームが使える。一般的なフォーム、URLやメールアドレス、IPアドレスなど特定のフォーマットに従ったフォーム、グループの制約を持つフォームやカラーピッカー、WISYWIGエディタまで、様々なフォームのための部品が提供されている。
ドキュメントもきちんとしているし、GUIでこのJSONデータを作成するためのフォームビルダも提供されているので、使うための敷居は低いだろう。
サーバ側でフォームを書かないため、このライブラリで作ったフォームは、Javascriptがオフになっていると動かなくなる。使いどころとしては、検索エンジンやスクリプトからフォームを辿りにくくするとか、All Javascriptであることからクライアント側のJavascriptだけで動くようなアプリケーション(サンプルのGTDツール)とかになるだろうか。
via del.icio.us/popular
2008年04月28日
20行のJavascript+canvasでここまでできる
# Internet Explorer不可
OZONE Asylumというフォーラムで出された今月のお題「20行のJavascriptでできるだけ多くのエフェクトを同じスクリーンに出す」に対して出てきたすごい答がこれ。
ソースを見ると、たしかに有効な行は20行しかない。
Opera9.5とFirefox3(どっちもまだベータ)で作者の意図どおり動くとのこと。Firefox2やOpera9でも動き自体は見えるが、Firefox2では光る効果が見えなかったり。
via del.icio.us/popular
2008年04月22日
Pure Javascript動画プレイヤー
うーん。無駄にすごい
JSONVidというJSONで動画データを表記する形式を自作し、Flashを使わずにJavascriptだけで動画を再生するプレイヤーを書いた人が現れた。Jacob Seidelinさん。
一時停止機能もある。Flashレスなので音はない。
読み込みにかなり時間がかかるし、非力なPCだと見るのに耐えないけど、それでもよく動いてる。
Jacobさんは他にアニメーションGIFも検討したようだ。ちょうどさっきYouTubeをアニメーションGIFに変換するサービスを個人ブログの方で紹介したけど、そういう作りもあるだろう。というかPure Javascriptでごりごりと描画するよりはまだアリな気がする。
via Ajaxian
2008年04月21日
lightboxライブラリ37個の比較表
写真などをページ上で強調表示する、いわゆるlightbox効果を実現するJavascript+CSSライブラリを37個も集めて、ライブラリサイズやそれぞれの機能、どのJavascriptライブラリを使っているかなどで絞り込めるようにした比較表が発表されている。
このようなUI系のライブラリを使う際には、自分が普段使っているベースライブラリとの親和性などが重要だと思うので、このような形でまとまっているとdel.icio.usで"lightbox"タグで絞り込む、といった調べ方よりも楽にライブラリが選べていい。
via del.icio.us/popular
2008年04月16日
バイナリ読み込みAjaxライブラリBinFileReader
サーバ側に置いたバイナリファイルをJavascriptからアクセスして、バイナリ列の任意の場所を好きなバイト数だけ読み込むライブラリがこのBinFileReaderらしい。
BinFileReaderのデモでは、表示したbmp画像の中から、画像のサイズ情報などの部分をJavascript経由で問い合わせることで遅延取得し、表示している。
また、このライブラリと多数の画像を使って、クリックした画像を他の画像のパッチワークで構成するというモザイクビルダーという面白いデモも公開されている。
# 画像の読み込みで一番最初は時間がかかる
モノクロbmp画像を多数用意して、MosaicBuilderのパラメータに指定すれば、自分の画像を使ってこのモザイクデモを設置することもできるそうだ。(解説)
BinFileReaderは、FirefoxとSafari対応に加えて、IE対応のためにはVBScriptを使うことでクロスブラウザ対応をしている。
このBinary Ajaxライブラリ、リモートにある画像や動画ファイルの形式情報なんかを取り出すのに使えるのかなあ。
via Ajaxian
2008年04月15日
AppDrop - Google App EngineをAmazon EC2に移植
Google App Engineに対する「Googleに囲い込まれてしまうのでは」という意見に対するコードを書く人からの返答がさっそく出ている。AppDropは、Google App Engine SDKをAmazon EC2上に移植したPython実行環境だ。
これを使えば、GoogleのAppSpotで動くPythonのWebアプリを、そのままAmazon EC2上で動かすことができる。
開発環境が手元のLinuxボックス等で動くのだから、ホスティングで動くのも当たり前といえば当たり前。とはいっても、背後にGoogleのBigTableなどがあるわけではないので、このまま使ってもスケールはしない。このあたりは、まあ他のスケールするバックエンドシステムを互換インタフェースで包むとか、そういうことをやる人が出てくる気がする。
# Googleが作った分のソースのライセンスってどうなってるのかな
突貫工事で4日で作られた(改造された)ようなので、メールが使えないとかホスティング上でのセキュリティについてチェックされてないとか利用には注意が必要。
via Waxy
2008年04月07日
キーストロークダイナミックス
IBM DeveloperWorksで、GNOMEを改造してキーストローク・ダイナミックス認証を行う話が出ていた。
nathanというパスワードを使う人の毎回のキーのリリース時間を調べると、同じ順番の同じキーはだいたい似た時間でリリースしている。
パスワードを打ってる途中で手が止まった場合は、大きく違った時間が出るけど、それは統計時に外すことができる。ということで、単純に打った文字列の合致だけを見るのではなくて、キーをどのように打つかという癖まで活用して本人かどうかの判定に使う、ということだ。
タイミングが違ったからといって直ちにログイン不可にすることはできないと思うが、あまりに異なるタイミングでタイプされたときには別チャネルで警告を発するとか、そういう感じなのかも。
via Slashdot
2008年03月30日
txt2re 文章から対話的に正規表現を作れる支援サービス
一週間のうちにいくつも正規表現のツールが話題になるのは、正規表現で悩むプログラマが多いということだろう。また面白いサービスが出てきた。
txt2reは、テキストボックスに入れたテキストを分解し、そこからどんな正規表現が作りたいのかを推測して提案してくれるというサービス。
サンプルで入っているテキストでは、日付(の英語表現)のあとに引用文で英文、という入力。
入れたものが要素ごとに分解された上で、まとまった部分が「文字列」なのか「月」なのか「アメリカの州」なのか、といった推測がされて、選択肢としてリンク表示される。
「ここは月のつもりだった」ということでMonthをリンクすると、その部分の正規表現が確定する。
作った正規表現だけ出してくれても役に立つと思うけれど、このサービスではさらに、Perl, PHP, Python, Java, Javascript, ColdFusion, C, C++, Ruby, VB, VBScript, J#.net, C#.net, C++.net, VB.netのソースコードとしても出力してくれる。
月(の英語表現)を選んだときなど、できる正規表現では月の省略形とフルネーム(JulyとJulとか)のどちらにも対応するように書かれていたりと、がんばって生成している。
生成したコードなので、多少甘いところもあるとは思うけれど、それを基にしてチューニングしていけばいいだろう。自分がよく知らない言語で正規表現を扱うことになったときにも、とっかかりとして参考になると思った。
2008年03月28日
Amazon EC2の新機能ゾーン指定は日本でのサービスの準備となるか?
Amazon Web Serviceのアナウンスで、Elastic Computer Cloud(EC2)の新機能が二つ出てきた。
一つはアカウントに紐づいた固定IPアドレスの提供。これまでインスタンスを再起動するとIPアドレスが変わってしまうため、一般のホスティングに比べると面倒だったけどこの点が解消された。
もう一つはZone(ゾーン)の指定ができるようになったこと。インスタンスを置くEC2サーバのグループ指定ができるようになったため、この前の大規模ダウンのようにAmazon EC2サーバのどこか一箇所が落ちるようなことがあっても、他のゾーンに分散させて配置したインスタンスでサービスの継続提供が可能となる。もちろんそういう風に設計したらの話だけど。Rightscaleブログではさっそく、そのへんを図入りで紹介している。
新しいEC2 API コマンドラインツール(バージョン1.3)を使うと、新コマンドec2-describe-availability-zonesで自分のアカウントが使えるゾーンが見えるようになる。ちょっとした期待を持って自分のアカウントで実行してみたのだけれど、結果はマニュアルと同じでus-east(米国東)が3つ出てきただけだった。
C:\work>ec2-describe-availability-zones AVAILABILITYZONE us-east-1a available AVAILABILITYZONE us-east-1b available AVAILABILITYZONE us-east-1c available
開発者フォーラムでも他の地域が出てきたという報告はないので、ヨーロッパにも日本にも現時点ではサーバは増えていないようだ。まあ、増えていたらPR的にはそれをアナウンスするはずだし。
ただ、この仕組みが提供されたことは(アベイラビリティ向上の話もあるけれど)、将来の欧州やアジアでのローカルサーバに向けた準備という風に見てもいいかもしれない。EC2もアメリカ国内で使ってみたら快適に速かったという話も聞くので、ぜひ日本にもサーバ置いてほしいものだ。
2008年03月27日
RegExr Flashによる正規表現チェックFlashツール
先に紹介したVisual REGEXPの関係で「こんなのものあるよ」と出てきたのか、Flashでできている正規表現チェッカがdel.icio.us/popularにあがっていた。
こちらのは、マッチしているところを青く囲んでくれるだけで、正規表現のどの部分がどこに対応してるかまでは示してくれない。が、入力のしやすさはこちらのほうがいいかもしれない。右側に簡易的な正規表現のマニュアルもついている。
via del.icio.us/popular
2008年03月25日
テレパシーのように無言で電話に応答できる技術のデモ
NewscientistTechの記事で、ネックバンドで神経信号を拾うことで「しゃべらずにしゃべる」技術の紹介とデモ動画が載っていた。
さすがに使うための訓練は必要らしいが、声を出さなくてもしゃべっているように首を動かす(?)ことで、信号が伝達され、それを基にして音声合成するということ。
口まわりを動かさないと神経は動かないそうで、頭の中で考えたことが勝手に話されたりはしないらしい。タイトルに「テレパシーのように」と入れてしまったが、そういう意味では腹話術を機械化したようなものか。
今は首を動かしてから発話まで時間がかかり、認識できる語彙やフレーズも150程度だということだけれど、そのあたりは改善されていくそう。病気で声が出せない人への適用も検討されているということだ。
僕は、日本の携帯電話でブラウザやメールが普及し、米国では音声による自動応答が普及しているのは、電車などの公共機関で電話で話せないという日本の特殊事情によるものが大きいと思っていたけれど、この技術が実用化されたらそういう違いも減る⇒日本でも音声でのアプリケーションが重要になりうるのではと思った。
via Digg
Visual REGEXP 正規表現のマッチング確認ができるクライアントツール
Visual REGEXPは、上の段に正規表現を入れて、下の段にいろいろな文字列を入れると、文字列のどの部分が正規表現のどの部分にマッチしているのか、というのを色づけして示してくれるツール。
Tcl/Tk製で、Windows向けのexeパッケージも配布されている。Windows版でためしてみた。
書いた正規表現をいろいろなサンプルで確認する際に楽でいいかもしれない。
ネットがつながっていれば、Rex Vとかでもいいような気はするけど、クライアントツールなのでネットがつながらないところでも使えるのはいいかもしれない。
ただ、文字列群から逆に正規表現案を生成する機能がエラーで動かなかったり、正規表現を書くボックスで外から中へのコピペができなかったり、あまりUIが使いやすくない。このへんは今後に期待か。
via del.icio.us/popular
2008年03月24日
960 Grid System 固定幅ベースのWebデザイン手法
フレームワークというのは制約を設けることで生成物の最低レベルを上げる効果だとも思うけれど、960 Grid Systemが提唱したのは幅960pxを等間隔で分割することで、方眼紙上でデザインするようにサイトをデザインする手法。
960という数字は、2, 3, 4, 5, 6, 8, 10, 12, 15, 16, 20, 24, 30, 32, 40, 48, 60, 64, 80, 96, 120, 160, 192, 240, 320, 480で割ることができるということとユーザのブラウザ環境として幅1024px以上は期待できるということから決まった数だという。
幅何本分、というスタイルが提供されているので、それを指定していくだけで、昔のテーブルレイアウトに似た配置ができるということだ。
これがいいことなのかどうかは、ちょっとわからないなあ。
via del.icio.us/popular
2008年03月18日
cvi_text_lib ブラウザだけで文字を好きな方向に書けるライブラリ
cvi_text_libは、Javascriptで英数字の文字列をベクター描画するライブラリで、IEではvml、それ以外のブラウザ(Firefox, Opera, Safari)ではcanvasを使い分けることで、主要なブラウザでの動作を実現している。
Javascriptライブラリの中に、san-serifのフォントのベクターデータが含まれていて、英数字・記号についてはそのベクターデータを元に文字を描く。それによって、通常のHTMLと違い、好きな角度でテキストを表示したり、ベクターに沿って文字にいろいろな効果を与えることができる。
サンプルでオンラインエディタも用意されている。このエディタは、Javascriptから動的に文字やその表示方法を切り替えることができる、というそれ自身のよいデモになっている。
ベクタデータを自分で持っていることから、日本語の文字データを全部持たせるのはファイルサイズ的に難しかもしれないけど、任意の文字に対応するのではなくてあらかじめ用意した文字だけを含めるような形式であれば、日本語でも斜め表示や加工表示ができて面白くなるかも。
via Ajaxian
2008年03月14日
ロシアの人力CAPTCHA破りは日給3ドル?
Googleのキャプチャ専門エンジニアとして(非公式に)知られるBrad Taylor氏の、GmailのCAPTCHAはまだ破られていない、地球の別の地域で一つ一つ人力で解かれている、というコメントと、
Websenseが発見したロシア語の文書に書いてあった、一日CAPTCHAを解く労働者への手順書とそこに載っていた「日給3ドルから」という記述の話。
2008年02月18日
リアルタイム顔認識
スタンフォード大で開催されたメタバースサミット(そんなのやってたのか)で、リアルタイム顔認識技術のseeingmachinesという会社のデモをRobert Scobleが絶賛しているので見てみた。
ノートPC(Mac)のカメラとソフトウェアで、目や口の位置をリアルタイムに追跡して、顔の位置を追っていSeeing Machinesという会社のデモ。
アイトラッキング用の技術は普及しているようだが、まばたきや口の動き、画面を向いているか注意がそれているか、画面はつけているけど別のところ(テレビとか)を見ているとかもリアルタイムで取れるということだ。ウェブサイト上に起こった動きに対して起こる反応や、目と口の位置の変化から感情も取れたりするのかも。
メタバース(セカンドライフに代表される仮想世界)のカンファレンスに来ているということは、カメラで撮った自分の動きを3D内のキャラクターに再現させるような用途も考えているのだろう。サイトにはこういうデモ画像もあった。
ライブラリとしてライセンスもされているということだ。これを使えば、Ustreamで自動的に目線を入れるとか、ヒゲチェンのリアルタイム版とかも作れるのかも。
送った写真を動かすようなものはあるけど、動いているものにそのまま対応するようなサービスってもうあったっけ?
投稿者 秋元 : 09:32 | コメント (1) | トラックバック
2008年01月04日
EditArea ソースコード編集専用のJavascriptエディタ
via Ajaxian
EditAreaは、HTMLフォームでソースコードを編集するためのJavascriptライブラリ。
デモページで使ってみていただくのが一番わかりやすい。
機能リストのところを訳すと、
- スクリプトをインクルードして関数一個呼ぶだけ
- タブが打てる(これはいい)
- 検索と置換
- シンタックスハイライト機能あり。他の言語用にカスタマイズもできる
- オートインデント
- 行番号表示
- 多言語対応。日本語も
- 高速化用に、ライブラリを連結して圧縮(gzip)するPHPスクリプト同梱
- 複数配置可能
- 全画面モード
- プラグイン対応
- 保存や読込時のフックあり
- 動的なコンテンツ管理が可能(?)
- 他Javascriptライブラリと共存可能
これいいんじゃない? > 西尾さん
2007年12月20日
mapper.js 地図ハイライトなどに使えるJavascriptライブラリ
via Ajaxian
mapper.jsは、画像上のエリアハイライトを簡単に実現するJavascriptライブラリだ。
Firefox, IE, Opera, Safariに対応している。
手順としては、
- 画像ファイルを一つ用意して、マウスを置いたときに起こしたい効果をクラス名であたえる。
- イメージマップのmapタグ、areaタグでハイライトさせたりエリアを指定する
でおしまい。あとはライブラリがよしなに計らって、マウスを置くとハイライトしてくれる。サンプルから一つを下に貼ってみた。
置換するイメージをたくさん用意する方式とは違うので、任意の別のイメージを表示させたりはこのライブラリだけではできないけれど、このサンプルのような変化で十分な場合には使えるなと思った。
ライセンスは、非商用と個人利用は無料。商用利用は商用ライセンスが別に存在する。
2007年11月23日
世界初立方体型タッチスクリーンによるルービックキューブ
via ANDREWFENTEM.COM
電子機器のインタフェースについて研究を続けているAndrew Fentem氏の最新作は、立方体に液晶とタッチスクリーンを6面張ったデバイス。いろんなゲームができるということで、ルービックキューブを動かしている。
触って動かすルービックキューブは、これまでのものとかなり操作感が違うかも。
[関連]
2007年11月22日
CAPTCHA解読ソフトの価格表に見るCAPTCHAのレベル差
via del.icio.us/popular
Coding Horrorブログの記事Has CAPTCHA Been "Broken"?(CAPTCHAは破られたか?)では、CAPTCHAの解読ツールに値段をつけて売っている中国の業者の価格表を紹介していて、これが面白い。
CAPTCHA用の文字列画像を作るときは、文字を画像化したり、色をつけたり、線を引いたり、無関係な点や図形を足したり、湾曲させたり、と、いろいろな加工で「人には読めるけど機械には読めない」ように作るわけだが、この価格表では、単純なCAPTCHAで彼らの販売するツールで読み取れる可能性が高いものほど値段が安くなっているし、彼らのツールでは読み取れてない場合も多いような難しいものについては、ツールの値段も高くなっている。
この価格表で図らずも、いろいろな大手サイト(主に英語と中国語でのサイト)が使っているCAPTCHA図形がどんなもので、どこのサービスのCAPTCHAを彼らが「組し易し」と見ているか、というのもわかってしまった。
たとえば、こんなCAPTCHAだったら、$1000だせば99%正しく読み取るデコーダを売ってくれるらしい。
コンサートチケット販売の大手チケットマスターで使われているこんなCAPTCHAでも、50%読み取れるものが$6000だそうだ。人間でも読めない場合もあるので、リロードを挟めば50%の成功率でも突破のためには使えるだろう。
表によれば、Googleやhotmail、YahooのCAPTCHAは、「たいへん読み取り困難」で、それらを50%以上正しく読み取れるようなツールの値段はついてない。たぶん現在研究中なのだろう。
これはeBayのもの。これぐらい読みにくくしないと、今の段階でも解こうと思えば解けるようになってきているということか。
[参考]
reCAPTCHA - キャプチャを利用した人力高性能OCR
投稿者 秋元 : 00:10 | コメント (1) | トラックバック
2007年11月20日
ゴキブリ対メカゴキブリ
via del.icio.us/popular
機械式のゴキブリロボットを本物のゴキブリの群れに合流させることで、ゴキブリの群れの行動を変える、という研究のニュースが出ていた。
マッチ箱のような形のこのロボットは、光センサや赤外線センサを積んで走り回れるが、写真を見てもわかるようにまったくゴキブリに見えない。しかし、科学的に合成したゴキブリの臭いがついていて、この臭いが「仲間」と思わせるには十分なんだそうだ。
このロボットを紛れ込ませたあとで、ロボットを暗いところから明るいところに移動させると、本物のほうもロボットにつられて、明るいところで群れるようにすることができたそうだ。
ゴキブリを退治するようなことは今のレベルでは難しいようだけれど、鳥や魚のロボットを同様に送り込むことで、生態の研究や管理ができるようになるという未来が期待されているらしい。
2007年11月11日
htmlのテーブルをtracの表にする
html2wikiで、HTMLソースからwiki記法への変換ができる。
tracに表を貼りたい場合は、16個のWiki方言を選べるようになっているので、[MoinMoin]形式を選ぶ。
上記リンクで公開されているのは、CPANのHTML::WikiConverterを使っているそうだ。
2007年10月25日
PHPでメッセージキューを使う
先週、株式会社ノッキングオンの会議室で行なわれた第28回PHP勉強会で、飛び入りで10分ほど発表させていただいた話をこちらに起こすことにした。
発表の題は「PHPでメッセージキューを使う」。10分の発表なので一番基本的なサンプルまで。
もともと、Perl系の人たちが「TheShwartzいいよ」と盛り上がっていた夏頃に、ちょっとうらやましくなってPHPでメッセージキューを扱うソリューションを調べたもの。数ヶ月放置してたが、個々一番さんが「最近気になってる」というので、はなはだ初歩的なところまでしかわかってないけど説明した。
TheSchwartzのように、スクリプト言語とDBサーバでキューを実現するという意味だと、PHPではPEAR::Mail_Queueがメールのバッチ送信に特化しているけど近いみたい。ただこれは使ったことないので質については不明。
今回デモしたのは、メッセージキュー自体はJavaのオープンソースサーバを利用するというもの。
道具立てとしては、
- Apacheが出しているJMSの実装ActiveMQ
- CodehausのPHP版Stompライブラリ
の二つ。ActiveMQは、デフォルトでStompプロトコルもサポートしているので、Stompを話すコードを書くか、自分の使っている言語でStompライブラリを探せばよい。
Stompライブラリのほうは、SubVersionでのみ公開。一ファイルだし中身もとても短いが、PHPからActiveMQを(というかStompプロトコルに対応したサーバを)呼び出すことができるライブラリ。
ActiveMQのインストールと実行
Windowsの場合を書く。すごい簡単。
- Javaが入ってなければインストール
- ActiveMQダウンロードサイトから最新版(4.1.1)をダウンロード。zipを適当な場所に展開。(例: C:\work\apache-activemq-4.1.1)
- コマンドプロンプトで、展開した場所へcd
- cd bin
- activemq.batを実行 (Windowsの通信ブロック解除ダイアログが出たら解除)
これで、設定ファイル conf/activemq.xml の設定でActiveMQが動く。ローカルで実験するだけならそのままのactivemq.xmlでも動いた。
PHP Stompライブラリの準備
php.ini の以下を有効にしてsocket関数を使えるようにしておく。
extension=php_sockets.dll
PHP5だったら、SubVersionから取ってきたままのStomp.phpでは古い書き方のせいで警告が出る箇所が有るので、それらは3箇所の "&$" を "$" に置き換えれば消えると思う。
あとは、Stomp.phpをinclude_pathに置くなどして、requireできるようにしておく。
PHP Stompライブラリを呼び出す生産者スクリプトを書く
ライブラリファイルStomp.phpが呼べる状態になっているとして、Publisher側はこんなコード。
<?php
/** キューの生産側サンプル */
// ライブラリ読み込み
require_once 'Stomp.php';// ローカルホストのStompサーバに接続
$connection = new StompConnection("localhost");
// TBA: エラー処理。ライブラリ中でdieしてるのでライブラリも要修正// 接続パスワードは今は何でも通し
$handler = $connection->connect("akky", "dummypassword");
// TBA: エラー処理
//print_r($handler);// メッセージを作る
$message = "Hello World! The time is " . date("h:i:s");// キューの識別子を与えて、メッセージを送る
$connection->send("/queue/miaumiau", $message);echo "I've sent [$message]!\n";
// 接続を切る
$connection->disconnect();
?>
これを、
- php Publisher.php
と実行すると、キューにメッセージを投げる。2回呼べば2つ投げる。
PHP Stompライブラリを呼び出す消費者スクリプトを書く
消費側はこんな感じで。
<?php
/** キューの消費側サンプル */
// ライブラリ読み込み
require_once 'Stomp.php';// ローカルホストのStompサーバに接続
$connection = new StompConnection("localhost");
// TBA: エラー処理。ライブラリ中でdieしてるのでライブラリも要修正// 接続パスワードは今は何でも通し
$handler = $connection->connect("akky", "dummypassword");
// TBA: エラー処理
//print_r($handler);// キューの識別子を与えて、メッセージを受ける
$connection->subscribe("/queue/miaumiau");// 無限ループで受信を続ける while (true) { // キューから一個取得 $gottenFrame = $connection->readFrame(); //print_r($gottenFrame);if (array_key_exists('message-id', $gottenFrame->headers)) {
// 受け取り確認を発行
$connection->acknowledge($gottenFrame->headers["message-id"]);
echo "Received [" . $gottenFrame->body . "]\n";
} else {
// 何かが変
echo "invalid frame\n";
break;
}
// サンプルはぐるぐる回してもいいけど、まあ適当な間隔で処理するイメージ
sleep(1);
}
// 接続を切る
$connection->disconnect();
?>
こっちを、別のシェル/コマンドプロンプトを開いて、
- php Subscriber.php
と実行すると、キューにメッセージがあれば取り出して表示する。Subscriber.phpを起動したままでPubslisher.phpを起動すれば、キュー経由でメッセージが届いていることも確認できる。
実運用では、エラー処理をして、アクセスに認証をかけ、キューのIDを分けることでたくさんのキューを同時に扱い、localhostじゃなくて別サーバに分けて、みたいにいろいろとやることはあると思う。
CodehausのStompプロトコルのサイトでは、Codehausのものや他のものも含めて、いろいろな言語でのStompクライアントライブラリの情報が載っている。C/C++/C#&.NET/Delphi/Flash/Java/Perl/PHP/Pike/Python/Ruby/Smalltalkなど。
なので、Webアプリケーションの場合でも、ユーザからの入力によって発生したバックエンド側への指示をメッセージとしてActiveMQに投げることで、まったく別の言語のバックエンドと連携させることができそうだ。キューサーバーは別マシンにも置けるので、複数台に処理を分散させるときにも使える場合があるだろう。
僕は職業Javaプログラマじゃなくなってから何年も経っているので、ActiveMQという選択が今妥当なのか、ActiveMQの実運用性とかどこまで捌けるのか、とかはわかってない。Javaの詳しい人の突っ込みをお待ちしている。
ActiveMQは出力をRSSにしたりという機能もあるようで、
また、PHP勉強会での発表後に、興味あるのでうちでも遊んでみる、という声も聞いたので、負荷実験とか実サービスへの適用試行とかやってくれれば、僕もぜひ、どんなもんか聞きたいと思っている。
[参考]
Javaの理論と実践: 次期エンタープライズ・アプリケーションにJMSの採用を
メッセージキュー自身の解説と、使いどころの例示がある。
PHPからAmazon Web ServiceのSQSを使う
有料だけど自分でメッセージキューサーバの管理しなくて済む。
2007年10月23日
ビデオ情報革命 information R/evolution
del.icio.us/popularで見つけたが、POLAR BEAR BLOGのakihitoさんがすでに日本語字幕まで作成されていた。
POLAR BEAR BLOG: 情報革命が5分で分かる - information R/evolution
とても良かったのでお時間のある人はぜひ。
BitTorrent Conference 2007へ行ってきた
BitTorrent Japanというのが設立されていたようで、BitTorrentのクライアント網をビジネス向けコンテンツ配信に使うというエンタープライズ向けのビジネスを日本で開始しているようだ。
そのBitTorrent Japanが、プロトコル設計&実装者のBram Cohen氏も呼んで説明会をする、という話が知り合いから来たので、聴きに行ってきた。
新聞社やオンラインメディアの記者さんたちがたくさんいたので、ニュースでも出ているとは思う。
何をどうやってビジネスにするのか、自分でも疑問だったので、理解した範囲でまとめると、
- BitTorrentのネットワークは、BitTorrentユーザのPCや帯域を集めて、コンテンツをユーザの近くにキャッシュでき、その結果巨大なファイルの配布が高速になる。コストも安い
- BitTorrentユーザに便利な、BitTorrentクライアント内蔵のルータやNASを周辺機器メーカに作ってもらう(展示で各社出していた)
- 動画や音声などサイズの大きなコンテンツを売るコンテンツベンダーに使ってもらう
ということ。米国などではユーザ数が多くてネットワークも大きいのだけれど、日本ではWinnyとWinny事件の影響(メディアや一般の人のP2P嫌い)があるとも。そのへんは遵法のトラッカーサイトを作ったりして普及に努めるそうだ。
P2Pによる分散ネットワークは、技術的にも面白いし、Skypeのように競合他社に対して優位性を実際に出している実例もある。現在のP2Pアレルギーは残念だが、P2P技術自体に問題があるわけではないし、これはこれで、あってもいいサービスだなと感じた。
懇親会で、Bram Cohenさんと一緒に写真撮ってもらって、サインも貰った(ミーハーだ)。なんといっても、技術で世界を変えようとしている一人だもんな。
あと、カレンの四家さんに会場で紹介いただいた、BitTorrent Japanの戦略顧問の古株さんという方がすごいパワフルな人だった。パワフルさはなかなか伝えにくいけど、あとで四家さんと古株さんの対談のリンクをもらったのでご紹介しておく。
カレン次世代ビジネスリサーチ室ブログ | MarkeZineでJストリーム古株均さんと対談しました。
ストリーミングのサーバ側の裏事情や歴史ってほとんど知らなかったので、長いけど面白かった。3回目の広告モデルの話とか、これだけ長年いろいろとやってきている人がニコニコ動画を絶賛したりとか。本当に面白いものが好きな人なんだなあ、と。
[追記] カンファレンスを受けて出たこの解説記事が面白かった。
早熟の天才プログラマ、ブラム・コーヘン
BitTorrent、立ち上がる商業P2Pネットワーク(前編)
2007年10月22日
phpspotの件のまとめ
phpspot開発日誌のKJさんからメールがあり、この週末にメールにて議論を行なってきた。お互いのブログに対する考え方が違うという結論についは合意できたので、ここでそれぞれの見解をまとめてこの件については終わりとしたい。
メールでの議論の内容については、KJさんの希望により、非公開とする。
合意の内容は以下のとおり。
- 議論の結果、お互いのブログの運営で、間違いの指摘に対する考え方が違うことがわかったとし、それぞれの考え方を説明する。
ブログで書かれた間違いの指摘や、その真偽に関する議論についての秋元の考え方は、以下の通り。
秋元は、ブログの間違いの指摘は公開コメントやブログで行い、間違いかどうかの議論などは他のブロガーやブックマーカーも含めて衆目の中全員で検証する、のがいいと思っている。
KJさん側の考え方は、最後に秋元がまとめた時点では以下だが、
KJさんは、ブログの間違いの指摘は(あればコメントで、コメントがなければ)メールで行い、メールで反応がない場合でも相手を尊重してブログでの指摘はしない、のがいいと思っている
KJさんが自分の言葉で書かれたものが公開されたので、以下も参照されたい。書かれる予定になっている。それが出たらここからその記事にリンクを張る。
(リンク予定)phpspot開発日誌 KJさんの、ブログの間違いの指摘についての考え
[関連]
phpspotの人は正規表現について語らないほうがいいのでは
phpspotの件の続報 (リンクミス修正)
投稿者 秋元 : 09:27 | コメント (3) | トラックバック
2007年10月18日
phpspotの件の続報
phpspotの人は正規表現について語らないほうがいいのではを読まれたようで、記事の更新をされたようだが、まさに予想したとおりのphpspotメソッドとなっている。
僕が気づいた範囲での修正箇所は以下のとおり
- タイトル先頭に「訂正:」を追加
- 動作確認はしなかったが目視は行なった。目視ではわからなかったという弁明の追加
- 紹介された元の英語記事へのリンクの削除
- ソースコードに取り消し線
- 以前いろいろ言われた正規表現の解説ページに、注意書きと他サイトの解説へのリンク
- 問題の指摘はフォームから受付けるという告知
まず、元英文記事へのリンクを消した理由がわからない。元記事が読まれると何か不都合でもあるのだろうか。
元記事の人もコメント欄でいろいろ叩かれているけど、それに答えてスクリプトを手直ししたりしている。一旦何かについて「知っている」と書いたのであれば、それが正しくなるように努力するのが始めた者の責任ではないか。
あと「目視のチェックをした」というのは本当なのか。そんなこと明言して大丈夫なんだろうか。あれを目で見て何も違和感を感じなかった人が、正規表現の解説ページを書いているというのは問題。好意的にみれば、昔は理解できていて今はわからなくなった、という可能性もあるけど。
結局、今回の訂正でなにか正しさに近づいた点といえば、「PHP 正規表現 メール」の検索で出てくる正規表現解説というページに、 「下記、正規表現は本当に簡単なチェックで、厳密なチェックをしたい場合は別途検索エンジンなどで調べた方がいいでしょう。」と追記されたのと、別の解説へのリンクを二つ追加したこと。
この簡単なチェックもかなり間違ってると思うけれど、この間違った解説をたとえ「本当に簡単なチェック」と添えようと、phpspotのような影響力のあるページで出し続けることは問題だろう。以前も多くから突っ込まれているはずなのだが。そういうところが指摘を受付けないと書かれるゆえんではないか。どうしても自分のページで紹介しないといけないのなら、リンク先を勉強した上で自分なりの「厳密なチェック」を紹介すればいいのに。
末尾の「尚、サービスとして公開する際には実際にメールが届くかどうかをチェックするなどしてメールの存在有無を確かめましょう」もわからない。メールアドレスの形式チェックをするために実際にメールを送信しろと言っている?
phpspotメソッドにこういう指摘がある。
間違っていた部分は残さない.可能な限りうまく帳尻合わせてエントリを修正すること
- 場合によったらスミの方に情報先URLを掲載する程度で具体的に何が間違っていたのかなどは書かずにライトな対策で済ます
phpspotのKJさん、元の正規表現はどこがどう間違っていたんですか? 解説が正確じゃないことを認めてもその情報を載せ続けるのはなぜですか? 検索エンジンで上位に出てきてアクセスが多いページだからですか? たくさん人が見に来れば情報の真偽はどうでもいいの?
過去に間違いを指摘した人たちも、こんな感じで適当に流されてしまい、指摘を続ける気力をなくしたんだろうと思うし、こんな揉め事誰だって(もちろん僕だって)関わりたくないと思うけれど、これは書かずにはおれないよ。
自分の面子やアクセス数だけじゃなくて、それを読んだ読み手がどういう影響を受けるかも考えるべきなんじゃないかなあ。
なお、今も注釈つきで載り続けているコードはこれ。使っちゃだめよ。
$text = "mail@mail.com";
if (preg_match('/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/',$text)) {
echo "正しいメールアドレスです";
} else {
echo "正しくないメールアドレスです";
}?>
投稿者 秋元 : 15:00 | コメント (21) | トラックバック
Amazonのワンクリック特許が再審査に
via digg
ars technicaのAmazon's 1-Click patent picked apart by US Patent Officeによると、アマゾンの"1-Click"特許に関して、アメリカ特許庁は26の請求項のうち21個までを「要再審査」と決定したということ。
これはニュージーランドの個人が、ブログで裁判費用の寄付を募りながら起こしてきた再審査請求の結果らしい。その人のブログでも報告されているが、再審査とされた特許の2/3は修正か破棄につながっているそうで、アマゾンのワンクリック特許も無効となるかもしれない。
上記ニュースによれば、Appleが(音楽ダウンロードで?)この特許に使用料を払っているし、オンライン書籍販売でのライバルバーンズ&ノーブルとの特許紛争にも当然影響が出るということ。
「ワンクリックで購入できるという仕組み」がアマゾンによって押さえられていたことには長らく不満を持つところが多かったので、この特許が無効になればオンラインショッピング業界への影響は大きいのではないだろうか。
# 米国でのこういう動きが日本とどう連動してるかはわからないので、詳しい人教えてください
[追記]
日本では既に拒絶されていたんですね。このページを教えてくださったkwmrさん、ありがとうございます。アマゾンに恨みはないけど、特許庁Good Job!
[追記]
Long Tail Worldでこの偉業を成し遂げたPeter Calveleyさんのことなどもっと詳しい情報が紹介されている。
投稿者 秋元 : 08:56 | コメント (1) | トラックバック
2007年10月17日
phpspotの人は正規表現について語らないほうがいいのでは
「実用的なPHP用の正規表現x8」というphpspot開発日誌という記事で、
8 Practical PHP Regular Expressions - Web devlopment blogという、今日del.icio.us/popularに出ていた記事の紹介がされている。このサイトの記事はいつもそうだけど、はてなブックマークでも人気で、既に50名を越えるユーザにブックマークされているようだ。
1 メールアドレスチェック $string = "first.last@domain.co.uk"; if (preg_match( '/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $string)) { echo "example 3 successful."; }
これは、"example@so-net.ne.jp"とか"example+tracer@gmail.com"をメールアドレスではないと判定する。この簡単さだと、メールアドレスじゃないものを通してしまう取りこぼしも多いはず。
2 IPアドレス $string = "255.255.255.0"; if (preg_match( '/^(([0-2]*[0-9]+[0-9]+).([0-2]*[0-9]+[0-9]+).([0-2]*[0-9]+[0-9]+).([0-2]*[0-9]+[0-9]+))$/', $string)) { echo "example 5 successful."; }
これなどは、サンプルの"255.255.255.0"が既に動かない。どういうこと?
さらに言うと、以下のようなケースも通してくれる。
- "999999999999.255.255.10"
- "000.255.255.10"
- "11111111111.22222222222.33333333.44444444"
チェックになってない…
この人、以前にも正規表現のいいかげんな記事を書いていろいろ突っ込まれている。
メールアドレスのチェックってそんな簡単なものじゃないはず。
突っ込まれた肝心の記事は見つからなくなっている。でも依然として「PHP 正規表現」で検索すると当該のURLが上位に出てくるので影響は大きい。
これは提案なんだけど、突っ込まれたらちゃんと勉強しなおして正しい記事にするか、手に負えないと思ったらせめてより正確な記事を紹介するのがみんなのためなんじゃないかな。
Diggのトップページやdel.icio.us/popularで表示されたページの概要を訳しているだけなんだから、せめて自分で確かめてから紹介しようよ。僕も正規表現は苦手だけど、今回のはコピーして動かすだけでおかしいとわかるじゃない。(得意な人なら動かさなくてもわかりそうだが)
まあ、このエントリもphpspotメソッドで対処されそうな気もするけど。
[参考]
[2007.10.22 追記]
投稿者 秋元 : 14:40 | コメント (27) | トラックバック
2007年10月10日
Milescript 静的型付けのJavascript(ECMAScript)生成コンパイラ
via del.icio.us/popular
ECMAScriptに似た、しかし型チェックがある言語を使って開発したコードを、Javaで動くコンパイラで(ドキュメントにはC#環境でも、と書いてある。そっちもある or やるのか)、ECMAScriptに変換することで、Javascript(ECMAScript)の開発を行なう新言語、だそうだ。
Javaで動的なJavascriptアプリケーションを開発できるGoogle Web Toolkitとは違うんですよ、とも。目的が違う、とか、言語仕様がJavascriptベースのままであることとか。
2007年10月04日
eZ Publishのセミナーに行ってきた
eZ Publishは、ノルウェイ発の、PHPで書かれたオープンソースCMSだ。
はじめてその存在を知ったのは4,5年前だったか。eZ Componentsという形で要素機能をライブラリとして出しているので、サイボウズ ガルーンのPHP移行時に調査した記憶がある。eZ Componentsはあくまで「フレームワーク」とは名乗ってないので、フレームワーク比較とかではあまり出てこないんだよね。
ドイツを中心にヨーロッパではPHPの人気が高く、eZ Publishも一定の勢力を確保しているのは知っていたけど、日本語の情報はとても少なかった。
今回、日本語化・日本対応の取り組みを紹介するというセミナーがあることを見つけたので、聞きに行ってきた。
CTOのBård Farstad氏に、国際展開担当者と、ノルウェー在住で日本担当の日本人社員、の3人が来日され、eZ社製品の普及度合いや実際の導入例、編集デモなどを説明された。
eZ Publishは、GPLの下で全部公開されていて、自分でがんばれば無料でもサイトを作って運用できる。サポートは有料で買えて、これがeZ社の収益らしい。オープンソース版(といっても製品版もまったく同一らしいが)で普及を図るモデルはMySQLなんかと同様か。よく考えたらどちらも北欧の会社だ。
ヨーロッパを中心に、新聞や雑誌社のウェブサイトに導入されているようで、大量アクセスを捌く実績もあるようだ。検索や携帯電話対応も含めての日本語化が進行中らしいので、期待したい。
2007年10月01日
Yahoo UI Library(YUI)のサンプルをビデオ化したブログ記事
Yahoo!が開発し、フリーで提供、ホストまでしてくれているJavascriptライブラリ+ウィジェット集であるYahoo UI Libraryの、主要なコンポーネントを動かした様子を撮ったビデオが多数公開されている。
Introducing YUI - The Rising Giant (YUIの紹介 - 上り調子の巨人)
開発者ページのサンプルページから自分で触れば試せるんだけど、それすら面倒な人はいるだろうから、こういう普及促進もあってもいい。これなら百聞は一見にしかずで、YUIでどんなことができるかが英語無しでわかるかも。
[関連]
Yahoo UIライブラリの各ファイルがYahooから直接ホストされるように
MashupChallenge(マッシュアップチャレンジ)コンテスト開始
本日、全世界対象のマッシュアップコンテスト MashupChallenge のサイトが正式にオープンになった。
締め切りは今年2007年の12月31日、過去に発表されていない作品であること、提示された5つのAPIのうち2つ以上を使うこと、応募ソースがMITライセンスで公開されることに同意すること、などが参加条件。
賞品のほうは「栄誉」と、あとまあWiiとかいくつか用意してるみたいだけど。基本的には栄誉と宣伝力かな。
登録するといきなり5つ、ランダムなAPIが出てきて、そこから選ばされた。不正を防ぐため、この選択で作ったマッシュアップを提出しないと、別の応募はできない。そりゃ、アカウント別に作れば回避はできそうだけど。
ということで、世界にマッシュアップ力を示したいマッシュアッパーの人は応募してみてはどうだろうか。
サイボウズ本社のMySQLプレゼン資料が公開されている
ご紹介が遅くなったが、MySQL Users Conference Japan 2007で講演された、サイボウズ本社のMySQL利用に関してのプレゼン資料が公開されている。
パッケージでのMySQL(やその他のオープンソースソフトウェア)の利用には、サービスとはまた異なる苦労点がたくさんある。一番大きな違いは、ユーザによってばらばらな下位層の環境に対応して動くようにしないといけないところだろう。
サービス運営するだけなら、同じスクリプトがLinuxでもWindowsでも(SolarisでもFreeBSDでもAIXでもHP-UXでも…このへんは製品ごとにサポート範囲は違うけど)動くように努力する必要はない。同じLinuxといってもバリエーションは多数あるし、カーネルのバージョンの違いもある。同じ製品を数千・数万の異なるサーバで同じように動かすためには、それに対応した技術力が必要なのはわかっていただけると思う。
技術に詳しくないユーザでも簡単に設定・運営していけるようなレベルまで運用を噛み砕かないといけなくて、サーバの追加やキャッシュ、シャーディングなども、環境をこちらで指定するわけにはいかない分、汎用的な設計にするのが大変だったりする。
サイボウズ本社の開発部は、そういうところの技術を苦労して蓄積してきているので、興味ある人はもっといろいろ尋ねてみると、今後も何か出てくるかもよ。
Skype Developer Conferenceの二回目が開催
7月に続いてSkypeの開発者セミナーの2回目が開催される。申し込み済。ちょっと他で忙しいけどいけるといいな。
Skype Developer Conference 2nd
『Skype のマッシュアップ戦略 ~ Skype 本社 エグゼクティブ・メンバーによる説明会』
今回は英語中心?
2007年09月27日
Excel 2007で結果が65535, 65536になる計算が100000と表示されるバグ
Excel 2007を持ってないので自分では試してないのだけれど、公式ブログでの解説なので実際に起こっているのは間違いないと思う。
# Excel使ってないのかって? 全マシンOpenOfficeしか入れてない。
Excel 2007で(バージョン2007だけ)、計算結果が65,535か65,536になるような計算、たとえば= 77.1 * 850 を入れると、結果が "100,000"となってしまうバグが報告され、確認されたそうだ。
表示だけのバグだそうで、この結果を元にさらに別の計算をした場合、その計算の結果は合っているもよう。
ただ、当該ブログのコメント欄では、"それに+1足すと65537じゃなくて100001になるぞ""65535に+1して65536"だったという報告もあるので、本当に表示だけなのかどうかそれなら説明の範囲内だ。まあ今頑張って直しているそうなので、65535, 65536が違うと重大な結果になりそうなExcel 2007を使ってる人は、とりあえず古いバージョンのExcelを使うとかOpenOfficeなり他の表計算ソフト使ってみるとかしてはと思う。
[追記]
10年以上前にExcelのコードを触っていたというJoel Spolskyがバグの原因を予想している。
[追記 2007.10.10]
バグ修正版が作成された。Microsoft Updateでも更新されるとのこと。Excel 2007ユーザもこれで一安心か。
2007年09月10日
1967年に想像された1999年のパソコンライフ
via Digg
1967年に作成された未来予想映画の抜粋だそうで。1999年にはコンピュータのおかげでこんな生活になってるよ、というもの。
オンラインショッピング、ホームセキュリティ(家内監視カメラ)、オンラインバンクによる支払い、納税、eメールなどができるようになりますよ、というこの予想、30年先の予想としてはかなり当たってるのでは。あとトリプルディスプレイがステキ。
このビデオを投稿した PALEO-FUTURE というブログは、こういう、「昔の未来予想」を探してきて紹介することに特化したブログのようだ。予想がされた年代別のアーカイブなどもあっておもしろそう。
2007年09月06日
WordPress用Gopherサーバ wp-gopher
via 忘れた
一週間ほど前に見つけて、「Gopherなんて古くて伝わらないだろう」とスルーしてたのだけれど、なぜか突然Gopherが熱くなってるようなので紹介。
wp-gopherは、PHPによるブログシステムWordPressのデータにgopherプロトコルでアクセスさせるためのGopherサーバ。Pythonで書かれている。
Firefox2ならまだgopher:プロトコルが見えるので、Firefoxの人はこのデモにアクセスすれば、このスクリプトを書いたhttp://✎.net/, Five Minutesのブログが、Gopherで読める。(それにしても、なんていうドメイン名だ)
この作者、さらにIPv6でもこのGopherサーバにアクセスできるようにした(おそらくネット唯一のIPv6対応Gopher Serverだって)そうなので、アクセスできる人はそちらもどうぞ。
サーバのコードは短く、SQLで読んだデータを整形してるだけなので、MTなど他のブログのデータをGopherで提供することもできるだろう。
[追記] Gopherサイトの情報はGopher用ソーシャルブックマークサービスGopherSnakeに集まってるらしいよ。
2007年08月28日
究極の.htaccess?
via del.icio.us/popular
Apacheのフォルダローカルな設定ファイル.htaccess で使いそうな設定をかたっぱしから書き込んだファイル。
メイン、スクリプト関連、ヘッダ(キャッシュや最速化)、URL書き換え、認証、SSL、開発中サイト、というようなジャンルごとに、よく使われそうなディレクティブがずらずらと並んでいる。PHPの設定、cool URLの設定、エラーページ、認証の掛けかた、などなど。
書き換えるべきところは英単語で何を書くのかわかるようになっているので、コメントとあわせて思い出しながらコメントを外していくとそれなりに使えそうな .htaccess が作れるかもしれない。僕なんかは細かい設定方法すぐ忘れてしまって検索することが多いので、これで楽になりそう。
# 本当に不要なものはコメントにせずファイルから消すべきだし、安定運用に入ったら.htaccessじゃなくて本体の設定に移すべきだけど
これも入れるべき、というのがあればぜひ連絡ください、ということだ。
投稿者 秋元 : 12:52 | コメント (2) | トラックバック
2007年08月22日
Seam Carving - 自然な画像リサイズを動的に行なうソフトウェア
via Digg
Siggraph2007で発表されたというSeam Carving技術。そのSeam Carving for content-aware image resizingという動画で解説されているのは、画像内のひとまとまりの図形・物などの形を維持したままで、不要な部分を削って縮めることができるという技術。(論文 pdf)
説明がわかりにくくて申し訳ない。見てもらったほうがぜったい早い。
これを使うと、写真の中の鍵となる写真や人物を常に保存しつつも、見ているPCや携帯端末の画面サイズに合わせてイメージを縮めることができるという。
このSeam Carvingを搭載した画像ツールのデモでは、縮めてみておかしくなったら、ここは元の状態を保ってね、みたいな指定を赤ん坊の顔にすることで自然に写真の不要な部分をカットしたりもしている。
デモの中では、6人が砂浜に並んでいる写真から、人をマウスでおおまかに指定するだけで5人、4人と減らす様子などが写されている。どのデモもとても簡単にできているようで、こんな機能が家庭で使えるようになれば素晴らしいと思う。
二人の思い出の写真が、
あっという間にこんな風に
これはすごい。
で、この研究者の所属がなんとMERL(三菱電機米国研究所)だったりする。MERLといえば最近こんな記事を見たけど…
[2007.08.25 追記]
O'Reilly Radarでも紹介された。「この技術が本物で、Firefoxのアドオンで使えるようになるといいね」だって。
2007年08月20日
[追記あり] Skypeの大規模ダウンの原因はWindows Updateだった
とは、Skype Blogでの釈明。
マイクロソフトからのパッチ適用後に再起動を要請された(あるいは、一定時間後自動で再起動させられた)世界中のウィンドウズマシンが、次々とSkypeへのログインを行おうとしたり、P2P網を維持するだけのネットワークリソースを欠乏させたりした、んだそうだ。
この崩れたP2Pネットワークを自己修復する部分に、これまで知られていなかったバグがあったことで、大多数のユーザがほぼ2日間Skypeを使えなくなってしまったという。すでに改善を続けていて、同じ問題が再現しないようにしているとのこと。
過去4年間、ほとんどトラブルがなかったということもこのブログでは述べている。たしかにその通りで、これまでずっと安定していたことで今回の停止が目立ってしまったけれど、とてもすばらしい運用がされてきていたし、これからも一ユーザとして期待したい。
[追記] Skype日本語ブログで全訳が先に出てた。
[2007.08.21 追記]
Skypeの説明が理屈に合わないとする指摘もいろいろ出ている。Windows Updateでリブートなんて、今回がはじめてだったわけではない、とか、障害がはじまったのはWindows Updateのタイミングからかなり遅れてのことだった、とか。
Skype側にさらに問い合わせた人の結果と、マイクロソフトによる毎回のアップデートと何も変わったことはしていない、との表明
投稿者 秋元 : 23:07 | コメント (1) | トラックバック
2007年08月15日
Linux十戒
via del.icio.us/popular
Linux10の掟 (まあ異論はあろうけど)
- 汝、rootで作業するべからず
- 汝、可能な限りパッケージマネージャーを利用せよ
- 汝、コミュニティの一員たれ
- 汝、ドキュメントとmanページを読むべし
- 汝、サポートシステム(メーリングリスト、フォーラム、etc.)を利用せよ
- 汝、(過去ログなどを)検索せよ
- 汝、(オプションなどを)探索せよ
- 汝、コマンドラインを利用せよ
- 汝、Windowsを再現しようとするべからず
- 汝、諦めることなかれ
ブラウザでGooglebotの振りをする方法5つ
via del.icio.us/popular
Googleで検索すると抜粋が出てくるのに、行ってみたら有料の会員ページで読めなかった、ということがままある。なんで検索結果には出てくるか、というと、客寄せのためにわざと検索エンジンのボットにだけはコンテンツをクロールさせているからなんだけど。
User-AgentをGooglebotと同じにすれば読めるよ、という話は前から出ているが、それではチェックがUAだけの場合しか通用しない。それだけじゃだめな場合、どうやってGooglebotに近づくか、というtips。
一つは、Google翻訳を噛ます。Googleに翻訳させればGoogleのIPアドレスからのアクセスになるので、IPアドレスの範囲でチェックしていた場合、見えるかもしれないということ。英語のページでも、「スペイン語から英語」など適当な翻訳を選んでおけばよい。
# Google Translateとbotのアドレス範囲が違ってたらそれを避けるようにブロックされたりしないのか?
FirefoxのアドオンUser Agent SwitcherでUAを変えるのは既出
FirefoxのアドオンWeb Developer ToolでJavascriptとCookieを切る
FirefoxのアドオンRefControlでリファラーを切る
しかし、これ全部入れて、いつも行ったら見えないと思っていたウェブサイトに行ってみたけど、だめだった。まあ、まだブロックする方法はいろいろあるし。単純にやっているところには上記で効くかもしれない。
2007年08月05日
Blueprint CSSデザインのためのオープンライブラリ
via del.icio.us/popular
Blueprintは、複数人で開発されているCSSライブラリだ。
マルチカラムレイアウトを簡易なclass指定で実現するのが目玉機能らしい。
ブラウザ間のデフォルトスタイルの違いをリセットしたり、印刷用のスタイルを提供したりという機能も。
Yahoo UI libraryのCSSセットと共通するところが多いと思ったが、マルチカラムの指定方法はこちらのほうが直感的かなとも思う。
2007年08月04日
Unix基本のキ
via del.icio.us/popular
コマンド、デバイスファイル、ログファイル、設定ファイルなどの代表的なものを分類して、それぞれに最低限の説明を加えている。
Javascriptでできた倉庫番
via del.icio.us/popular
うむ。これはすごい。Sokoban en JavaScript
Javascriptでゲームを作ること自体は、以前ほどの驚きはなくなってきたし、日本語でも倉庫番の実装はいくつかありそうだ。
ただ、この人たちは問題を1000面以上(現時点で1115面だそうだ)用意したり、スキンを8種類用意したり、スクリプト自身の解説をしたり、問題の作成方法を解説したり、サイトやブログに貼れるようにしたり、と、倉庫番に対する情熱が半端じゃない。
またマニアックに難しいんだこれが
2007年08月03日
Scrollovers リンクに新しいホバリングスタイルを
こんな風なリンク効果を実現するJavascriptのライブラリ
リンクにクラスを指定するだけ。
2007年08月01日
Googleマップがマイクロフォーマット(hCard)に対応
Google Developer Blogで、Google MapsのhCard対応が発表された。
Googleマップの「お店やサービスを検索」で出てきた検索結果のそれぞれに対して、microformatsの中のレビュー用フォーマットhCardのクラスが付与されている。
FirefoxのアドオンTailsなどを使えば、ページ中の住所や電話番号を簡単に一覧することができる。テキストとして取り出したり、他のサービスへの入力に流すことも可能だ。
Firefoxにはその他のmicroformats用のアドオンが多数あるし、IEやSafariでもブックマークレットである程度使うことができる。
Google Mapsの作り上、(あとたぶんデータ保護の観点からも、)Javascriptで処理された後のHTMLソースでないとhCardの要素やデータは見えてこない(ブラウザの「ソースを見る」ではなく、Web Developerアドオンなどを使って描画後のソースを見ないと見つからない)。
描画終了状態からJavascriptでいろいろとデータの再利用をしてみるのが、このhCardのメインの活用方法となりそうだ。
2007年07月28日
Kameraflage カメラにだけ映る隠し画像
via reddit.com
カメラフラージュという技術が、8月6日サンディエゴのSIGGRAPHで公開されるというニュース。
デジカメの撮影素子と人間の眼の特性の違いを利用して、デジカメのファインダーを通したときだけ見えるような文字や画像を描く、というものだそうだ。服の模様にこれを使うと次の写真のようになる。
この他に、映画にファイダーを通したときだけ見える字幕や追加情報を入れたり、絵画の説明を普段は隠しておいて見たい人だけ(自分の携帯電話のカメラを使うなどして)読む、といった応用例が紹介されている。
2007年07月25日
YSlow for Firebug ページのチューニングを助言してくれるFirefoxアドオン
via Ajaxian
Yahoo! Developer NetworkからリリースされたYSlowは、Firefox+Firebugのアドオンとして、ページの表示速度の改善点を列挙してくれるというツールだ。
ここのところ、ウェブサイトのパフォーマンス改善で積極的に資料を公開しているYahoo!が、ツールも出してきた。今日のOSConにて発表されたもののようだ。
アドオンをインストールして任意のページを開くと、Firebugのメニューの中にYSlowが追加される。Performanceのタブには、パフォーマンスの点数(下記では「C(71)」)と、13の項目のそれぞれについてパフォーマンス対策がされているかどうかを、A~Fのグレードで表示してくれる。
それぞれの指摘をクリックすると、Yahooの解説ページに飛んで、何がパフォーマンスの障害になっているのか、何をどう直すと改善されるのか、が読めるというわけ。
上のスクリーンショットのように、恥ずかしながら大量に指摘されてしまった。もちろん「CDNを使え」なんていうのもあってそれはちょっと手が出ないわけだけど、Expireヘッダがついてないファイルとか、gzip圧縮できるファイルとかの指摘はすぐに対応できるものだ。
13個の改善点についても、Yahoo! Developer Networkのブログで逐一解説されてきたもののようだけど、誰かこれ訳してるかな?
こんな風に実際のページに対して指摘がされるというのは非常に良いと感じた。
[2007.07.29 追記] パフォーマンスチューニングBlogさんで翻訳が開始されたようなので、YSlowの判定結果と翻訳を付き合わせれば日本語でも改善作業ができるようになるかも。
2007年07月23日
Javascriptでブロック崩しを作る手順が全公開
via del.icio.us/popular
Javascript Gamerで、BrickslayerというJavascriptで作ったブロック崩しゲームの作り方が公開されている。
開発環境は Firefox + Firebug + お好みのエディタ。
Javascript本体は、prototype.jsベースで、スプライト表示、アニメーション処理、キーボード入力、当たり判定、(Flash経由で)効果音などについてそれぞれソースつきで解説されている。
また、ハイスコア記録のほうはPHPによるサーバ側のスクリプトがちゃんと用意されている。
まだアルファリリースということだけれど、ページ上ではブロック崩しゲームがちゃんと動いている。ソースを一括してダウンロードすることもできる。
2007年07月14日
プリンターが印刷する隠し追跡コードの問題
via del.icio.us/popular
この件自体は、2005年に一度話題になっていた。
スラッシュドット ジャパン | Xeroxプリンタの印刷物に追跡コード
HotWired Japan ユーザーの知らぬ間に「追跡コード」も印刷
最初聞いたときは頭の悪い陰謀論みたいな話だ、と思ったけど、これを調べて注意を呼びかけているのはEFF(電子フロンティア財団)だし、実際に打ち出された黄色いドットから隠されている情報を再構築もできているようなので、どうも本当の話のようだ。アメリカ政府とプリンターメーカーとの契約によって、ニセ札の作成者を追跡するために組み込まれている機能だ、ということは確認されているという。
今回の話は、プリンターメーカーに対して「このドットを描画しないようにするにはどうしたらいいか」という問い合わせをした人のところに、数日後にシークレットサービスのエージェントが訪問してきたという話が発端らしい。
seeing yellowというサイトで、プリンターメーカーに対して監視コードを勝手に印字しないように文句を言おう、という呼びかけをしていて、すでに250人以上が行動しているということ。
行動したらシークレットサービスに監視されるのがわかっていて抗議する人がそれだけいるところも、アメリカらしいなあ。
「ニセ札の追跡」と言っているけど、もっと他にもいろいろ監視しようとしてるんじゃないか、というEFFらの懸念が妄想でもなさそうだ、ということか。
EFFでは、この機能を持っているプリンターのリストというのを作って公開している。
表の"Dots?"のところが"yes"になっているものがそれ。"Comments"のところで"EFF test"とあるのはEFF自身が確認したものということらしい。
それなりにコストがかかるのか、あとは本来のニセ札追跡機能であれば性能の悪いプリンターは気にしなくていいからか、主にハイエンドのプリンターにしか搭載されていないということだけれど、非常に多くのプリンターベンダーがこのプログラムに参加しているということになる。
日本メーカーのプリンターも多い。アメリカ輸出向けにわざわざ仕様を変えているかどうかわからないので、日本で売ってるプリンターもひょっとするとこの黄色いドットを打ち出しているのかもね。
それを日本の警察が活用してるなんてこともありうるのだろうか。
# 数日後にサイボウズ・ラボに誰か来たりして…
黄色いドットは、高性能のスキャナでその紙を読み込んだ上で、グラフィックソフトで色調を変えたり拡大したりすると見つかるらしい。あと暗室で青色LEDを使うと見える、というのもあるけど。ちょっと僕の環境では試せないな(プリンタも7000円で買ったプリンタだし)
[2007.07.17 追記]
みんなにプリンターメーカーへの問い合わせを勧めるMITの意図は、人力DoS、つまりシークレットサービスが監視しなきゃならん人数を莫大にすることで、この監視を意味の無いものにしようということだ、という解説が出ていた。(via Digg)
投稿者 秋元 : 11:52 | コメント (2) | トラックバック
2007年06月20日
gotapi 様々な言語のマニュアルを修正したアグリゲーションサイト
様々なプログラミング言語やツールのAPIなどを一箇所に集めて、Ajaxによってインクリメンタルサーチを提供していたgotapi.com が、Widgetによる検索ボックスの提供を開始した。
widgetで自分のサイトに特定の言語の検索ボックスを貼り付けることができる。複数貼ることはできないようだ。
Widgetの提供は今風と言えるかもしれない。いわゆるウィジェットベイト。
[関連]
2007年06月11日
世界最大の"Hello, world!"
via digg
ドイツの学生が作った、世界最大の二次元バーコード(Semacode, 日本のQRコードのような規格)で"Hello, world!"を表示するプログラム。
# プログラム? データ? バーコードはプログラムなのだろうか。
コーディングは芝刈り機で。
2007年06月07日
Photosynthのデモ。ユーザの写真を大量につないで空間を再構築する
以前にマイクロソフトのPhotosynthについて紹介したのは一年近く前になる。
アーキテクトのAguera y Arcas氏が3月にTED 2007カンファレンスで発表したPhotosynthの最新状況がYouTubeに上がっていた (via del.icio.us/popular)
前半は、シームレスにイメージを拡大縮小できる表示技術。本一冊の画像を全文から一文字まで拡大していくデモ、新聞を見たいところだけどこまでも大きくしても読める、世界地図から道路一本までの拡大など。
3:00頃からは、高解像度の画像処理機能に、画像と画像をつなぎあわせてそれらを自由に拡大縮小して見ていくデモがはじまる。
3:50からノートルダム大聖堂を使って実際に建物の詳細を拡大して見ていくというデモ。Flickrから集められた多数の写真が、共通点を見つけて重ね合わせられている。
5:20 ポスターの前に立つ男性、の写真から寺院にダイブしていく。同じ建造物という共通点を使って仮想空間のリンクが自動的に作られるようなイメージになる。
後半、Aguera y Arcas氏は、多数のユーザがカメラや携帯電話で撮った写真から作ることで、機械的にリアルな仮想空間が実現できると述べている。「メタバース」という単語も出てくるので、「手で頑張って作った仮想空間」(*1)に対する優位性も意識してるのではないだろうか。
WikiのWiki nameやはてなキーワードのように、文章中の単語に自動的にリンクを張って作るように、多数の写真にリンク関係が作られ、またそれを使って機械的に仮想空間(それも、セカンドライフなんかとは比べ物にならないほどリアルな)ができるというのはすごいと思った。
たぶんデータの処理速度とかに課題があるんじゃないかなと思うが、今後の研究の進展に期待したい。
(*1) セカンドライフの東京タワーとか、先日発表された東京を再現するmeet-meとか、ユニバーサルセンチュリーとか。
2007年06月06日
温度で色が変わるカップ蓋
via geekologie
熱くて危険な飲み物が、ひと目でそれとわかる使い捨てのフタ smart lid system。
温度で模様が変わるマグカップとかはあったと思うけど、使い捨てでやるにはコストダウンの努力があったんだろうね。
2007年05月31日
Google GearのWebアプリオフライン化
あたらしく発表されたGoogle Gearだが、ネットワークにつながっていないときでもローカルに置いたDBにデータが保存できるようにするというアプリケーション。
Zimbraのオフラインサポートや次のFirefoxの機能とぱっと見同じかなあ。デモも同じようなものだし。
どんなときにオフラインでのWebアプリが必要になって、そこではどんなデータがキャッシュされているといいのか、というのは、オフラインサポートをした実用的なアプリケーションが出てこないとわからないだろうな。
投稿者 秋元 : 11:53 | コメント (2) | トラックバック
2007年05月29日
PHP date()関数用指定子ジェネレータ
via reddit
PHPのdate()関数では、日時をいろいろな形式に変換することができる。ただ、「いろいろな形式」がたくさんあるので、何かやろうとするとマニュアルを見ることになる。
このジェネレータでは、左側の説明を元に、その場で現在時刻や指定日時を元にフォーマット変換した結果を得ることができる。
また、変換された文字列のどの部分がどの指定子にあたるかもツールチップ表示される。
日時の表示で試行錯誤するときに使うとちょっと便利かもしれない。
しかし、
- 左側の説明が英語
- 日本語が通らない
- ページ遷移しないと変換結果が試せない
ので、だれか日本語化+Javascript化しないかなー。
2007年04月29日
viマグカップ
via del.icio.us/popular
2年前にスラッシュドットジャパンで別バージョンが紹介されてたみたいだけど、それとはまた異なるデザインで、viのコマンド一覧を印刷したマグカップというのがあった。
印刷されているリストの一部も大写しになっていた。
いつも手元にあるものにチートシートがついていると、ちょっとしたときに役に立つのかもしれないね。
2007年04月26日
Yod'm 3D - Windows XP/2000でも3Dデスクトップ
Yod'm 3Dというアプリケーションをダウンロードして実行すると、Windows XPでも下のような回転するデスクトップマネージャーを使えるようになる。(Vista, 2000でも。Direct X9が必要)
これでMacOSXやLinux Desktopを見てもうらやましい点が一個減ったか?
投稿者 秋元 : 10:31 | コメント (2) | トラックバック
2007年04月23日
世界最大のコンピュータ・ディスプレイ
via digg
ドイツのビルの窓を使って作られたPCディスプレイだそうで。窓ごとにスクリーンを張って、その後ろから投光するデバイスを配置、それぞれはケーブルでPCにつなげられて制御される、ということのようだ。
単色で、解像度もガラスの枚数ではあるけど、かなり大きなディスプレイではある。
動作期間中は、解説ページで示された電話番号に電話してプッシュ音で指定することで、Pongやパックマンを表示させ、さらに移動もプッシュ音で伝えて遊ぶこともできるということ。ウェブカメラとあわせれば、日本からこのゲームを遊んでる様子をドイツで大映しできるのかも。
ビルでクリスマスツリーを表示したりするのがあるけど、あれは人力っぽいし変化もしなさそうだからこの「最大」という触れ込みはあってるのかな。
2007年04月20日
Yahoo! JAPAN WEB APIコンテスト締め切りまであと10日
締め切り10日前なのでリマインドしてみる。
Yahoo! Japan Web APIコンテストの応募締め切りは4月30日(月・祝)
APIとマッシュアップに関してなにか面白いアイデアがある人はぜひ参加されたし。
スマートミラー 洗面台がコンピュータに
via haha.nu
ウォータールー大学で開発されたSmartMirrorというタッチスクリーンを鏡に組み込んだ製品のビデオがあった。
洗面台で歯をみがいたり、顔を洗ったり、ヒゲを剃ったりしながらも情報を得たい、という人はいるようでs、調べたら過去にもフィリップスや日立が「鏡+テレビ」的なものを出していた。
今回のは受動的なテレビではなく、タッチスクリーンでインタラクティブに操作できるパソコンになっているところが違うということか。
天気、ニュース、株価などについて知りたいところを選んで詳細を見ることができる。音声認識でのBGMの変更もデモしている。
鏡のタッチしたりスクロールしたりしたところに石鹸とかたくさん付くような気もしないでもないけど、コストが下がってこんな鏡が普通に家につくようになったらいいなあ。
2007年04月19日
マウスをブルブルさせるUSBツール
via The Raw Feed
すごいことを考える人はいるもんだ。
Mouse Jiggler Simulatorは、USBポートに指しておくとマウスカーソルをブルブルと震わせてくれるというステキアイテム。
これを使えば、コンピュータが勝手にスクリーンセーバーを起動したり省電力モードに移行したりしない、ってオイ。
セキュリティ規約で、PCを離れたら画面が必ずロックされてしまうような設定になっている企業などでも、画面がロックされてイライラすることはなくなります、とかユースケースに書いてある。そもそも、そんな企業だったらこんな変なUSBデバイスを挿すことも許してないのでは、という突っ込みは野暮なんだろうなあ。
大きく震える高速版と、小さく震える低速版の二種類が用意されている。WindowsにもMacOSXにも対応し、今ならたったの$29.95で買えるということ。冗談と思ってたら本当に売ってるし。
2007年04月16日
Linuxディストリビューション進化図
via digg
このディストリビューションはあのディストリビューションの流れを汲む、とかそういうのがわかる、タイムライン上に書かれたLinux派生の系統図があった。
とはいってもPlamoとかVineとかもないし、特定用途向けやローカルに勢力のあったものとかも含めるとこんな数ではおさまらないんだろうな。
[参考]
投稿者 秋元 : 18:39 | コメント (1) | トラックバック
2007年04月14日
データ構造とアルゴリズムの解説ブログ
via del.icio.us/popular
datastructures は、データ構造とアルゴリズムに関するトピックを、図解(動くものや動画のものもある)とC++/Cのコードで解説するブログだ。
ハッシュ表、二分木探索、ハフマン法、各種ソートアルゴリズムなどをわかりやすく解説している。Wikipediaとかでもカバーされているとは思うけど。
投稿者 秋元 : 10:00 | コメント (2) | トラックバック
2007年04月12日
Firefoxの中のFirefox
via reddit.com
Firefox Inside Firefoxで、FirefoxのアドレスバーにFirefoxブラウザ自身のxulを指定することで、内側にブラウザを表示するというのが紹介されていた。
Firefoxのアドレスバーに入れるのは
chrome://browser/content/browser.xul
何回もやるとこんな感じになった。
大事なものを開いてるときは試さない方がいいかと。
2007年03月28日
第一回天野カンファレンスに参加してきた
国内有数の天野さんを集めた天野カンファレンスの記念すべき第一回に行ってきた。
僕はオブジェクト倶楽部のニュースレターはずっと購読してるのだけれど、あまりイベントには参加できていなかった。しかし今回のように、天野さんと天野さんと天野さんが集まって話される機会もそうはないし、これはぜひ聞かねば、と思った次第。
写真入りのレポートはこちらなどで。一言だけ感想を書くと、これまでもやもやしていた「天野」に対する理解が少し深まったような気がする。
オブジェクト倶楽部は6月20日(水)に有料イベントを開催されるということ。XPやオブジェクト指向に興味のある方はニュースレターの購読をオススメする。
2007年03月23日
Elastic List(エラスティック・リスト)
via del.icio.us/popular
Elastic ListsというFlashによる新しい可視化デザインのデモ
このデモでは、ノーベル賞受賞者を、分野・性別・出身国・受賞年代・受賞年の5つで選択できるようになっている。
それぞれについて、数の大小で表示エリアのサイズに差がつけられていたり、明るさの違いで性質の違い(具体的にはよくわからなかったが)が表現されていたりする。
上の例だと「物理学賞」「男性」「日本」を選んでいて、選ばれている箇所は黄緑色になっている。
下は、その条件に応じた受賞者の詳細や顔写真が出てくる、というわけ。名前はあってるけど写真はどうみても日本人じゃないが、これはデモだからだろう。写真はかなり適当に出てくる。
[追記] コメント欄の指摘を受け、デザインの作者がMoritz Stefaner氏であることを確認したのでこちらに追記させていただく。
投稿者 秋元 : 20:35 | コメント (2) | トラックバック
JavascriptによるC系ソースコードのハイライトライブラリgoogle-code-prettify
via del.icio.us/popular
google-code-prettifyは、Javascriptによるソースコードの色づけライブラリ。
HTMLの中に含まれた、C, Java, Python, Bash, SQL, HTML, XML, CSS, Javascript, Makefileなどのソースコードコメントや文字列、予約語を色つきでハイライトしてくれる。それ以外でも、Ruby, PHP, Awkや一部のPerlコードでも動くだろうということ。
使い方はこちら。jsとcssをインクルードして、bodyタグに onload="prettyPrint()"を追加。コードはpreタグかcodeタグでclass属性"prettyprint"をつけるだけ。
ハイライトの色などは別途CSSで指定できるので、自分のこのみの表示形式にすることができるだろう。
2007年03月16日
Google Hacking Database - ハック向けGoogleキーワード集
Googleの検索キーワードを工夫すると、サイトの持ち主が意図していなかった隠れたデータを探せる、というのはたびたび話題になる。
Googleを使ってサイトのセキュリティテストをするという著書もあるJohnny Long氏による、既知のそういったキーワードのデータベース Google Hacking Database のURLが変更されたようだ。(データの更新は2006年で止まったままのようだが)
いろいろなカテゴリーの検索キーワードがある。いくつかカテゴリーを紹介すると
- すでに知られているセキュリティホールで放置されているものを探す
- エラーメッセージに出さなくてもいい情報まで表示されているものを探す
- 重要な情報、ユーザ名、パスワードなどを検索する
- 商品やオープンソースアプリのログイン画面を検索する
- ファイアウォールやサーバのログファイルを探す
- プライバシー情報、顧客リストなどを探す
- ネットに接続しているプリンターやカメラなどのハードウェアを探す
などなど。それぞれのカテゴリに大量の実例が載っていて、これらの検索キーワードを考案した人たちのアイデアの豊かさには驚かされる。大量にありすぎて、わが身を振り返ってチェックするのはたいへんだが、勉強になることは間違いない。
[GHDBについて過去に日本語で解説されているページ]
Geekなページ: クラッカーがGoogleを使って脆弱なサイトを探す方法の例
投稿者 秋元 : 10:21 | コメント (2) | トラックバック
2007年03月09日
<canvas>タグをつかった3D表示ajax3d
FirefoxとOperaのみ対応だが、<canvas>タグを使って3D表示をするオープンソースプロジェクトajax3dのデモが公開されている。
遊び方は、左クリックで飛び、右クリックで撃つ。
それにしてもこのデモ、難しすぎる…
2007年02月28日
Yahoo! UI LibraryによるJavascriptゲームのサンプル集
Yahoo! UI ライブラリを使って、テトリス(Yetris!)、15パズル、スペースインベーダー、ソリティアなどを作って公開しているKris Cieslakという人のインタビューが、Yahoo User Interface BLOGに出ていた。
それぞれのゲームについては、Javascriptでも昔からそれなりのものはあっただろうと思う。テトリスについては、何年も前にすごい方法で作ってた人もいるし。ソリティアがしたければWindowsについてるやつを起動すればいいでしょ、という話はある。まあ、これらの目的は技術力のデモ的なところがあるのだろう。
ライブラリを活用し、ゲーム本体のJavascriptファイルはどれも非常に小さい(10KBとか20KB)ところがこれらのデモの肝かなあと思う。
これで、Yahoo UIライブラリの各ファイルはYahooにあるものを呼べるようになったことをあわせると、Javascriptでいろんなものが動いたり動かせたりするページも、より軽く作れるようになってきたということじゃないだろうか。
インタビューでは、それぞれのゲームの開発時のエピソード(大晦日にパーティーにも行かずに作ってた、とか)や苦労したところ(どうやってJavascriptだけで一枚画像を分割したか、とか)、なども語られている。
2007年02月23日
Yahoo! JAPAN WEB APIコンテスト
11月にPHPxAPIの本を出した関係か、Yahoo! Japanさんよりお声をいただき、Yahoo! JapanのWEB APIコンテストに審査員として参加させていただくことになった。
本日から応募開始となっている。
優秀作品はYahoo! JAPANのサービスとして採用される可能性も!
ということなので、日本でのYahoo! JAPANのシェアを考えると、本採用されるようなサービスを作ったらすごいことになりそうだ。
また、そこまでいかなくても、次の文も注目だろう。
受賞作品はYahoo! JAPANや各種雑誌・ウェブサイトで紹介されます。また、優秀作品はYahoo! JAPANのサービスとしての採用も検討されます。
何が大きいって、入賞するとYahoo! APIを使ったアプリケーションとしてYahoo! ディレクトリに載るそうなのだ。Yahoo! ディレクトリの掲載価値を考えるとこれもすごいと思う。
Yahoo! JAPANのAPIと他社のAPIを絡めたマッシュアップもOKということなので、かなり自由度も高いと思う。いいアイデアのある方はぜひ応募してはと思う。
2007年02月02日
Vistaの音声認識セキュリティホールに思う
via Vistaで勝手にファイルを削除されるセキュリティホールが見つかる など
たとえば「ファイルを削除」といった音声をMP3ファイルに録音し、友達に送ります。それを友達が再生すると、マイクが認識してしまえばそのとおりに作動してしまいます。
マイクロソフトから、このセキュリティホールの存在を認めたという返事を貰ったというGeorge Ouの話では、この問題は
- マイクとスピーカーがつながって
- 音声認識機能がオンになっている
という状況でのみ発生するらしい(そりゃそうだ)。とりあえずの回避策は、
- マイクやスピーカーを切れば、このセキュリティホールは発動しない。
- コマンドを実行するような音楽ファイルを開いてしまったら、メディアプレイヤーを閉じ、音声認識機能をオフにして、コンピュータを再起動するべきということ。(間に合うのだろうか)
いろんなところで、「良くないコマンドを実行させる音声ファイルを送りつけて」みたいに書かれているけど、そんなことしなくても、開くと音が鳴るウェブページに誘導するとか、YouTube等に最初は魅力的な動画で、途中でいきなりコマンドを喋る動画をアップロードするとか、任意の音を鳴らすだけならいろいろありそうな気がする。
# これまで、その手のいたずらは起こってないのかな。動画の途中からいきなり不快なものを挿し込むとか。
MSの回答はもちろん今危険にさらされている人のための暫定的な対策で、今後ちゃんとした対策を考えるのだと思うけど、音声認識機能をあきらめる、という以外の解決法ってどういうものだろう?
OSが音楽を鳴らすときに、「これはOSが鳴らしてる音だよ」みたいな識別信号を(人間に聞こえない周波数で)混ぜたりするのかなあ。しかし、単純なものならそれを含めて音声を作ればいいわけで、そうすると識別信号に時間情報やシステム固有のキーを入れるとか…
それか、自分の出した音をちょっとだけ覚えておいて、それを入力の音声から差し引くとか…
なんにしてもリソースを喰いそうだなあ。CPUベンダーとかハードベンダーが喜ぶかも。
投稿者 秋元 : 10:56 | コメント (5) | トラックバック
2007年01月22日
舌で見るカメラ
目の不自由な人でも、舌を使ってものが見えるようにするための研究、というのがあるそうな。
このブレインポート(Brainport)というシステム、カメラで撮影した風景を入力とし、信号を変換して舌に刺激を与えるデバイスで出力する。
舌からのシグナルを景色として認識できるように脳を訓練することで、通路やオブジェクトを認識できるようになるということだ。ビデオに出てきた男性は、パッカーズのチームロゴまでわかるようになっている。
将来はもっと解像度を上げて、より多くの情報が舌からわかるようになるということ。とても期待できる技術だと思った。
投稿者 秋元 : 12:26 | コメント (4) | トラックバック
2007年01月15日
Wiiのもらえるトイレ我慢大会で水中毒死者が
カリフォルニア州サクラメントで、水を飲んでいちばんおしっこを我慢した人は任天堂の新ゲーム機Wiiをもらえるというラジオ局のコンテストに参加した女性が、帰宅後に死亡したというニュースが。(CNN, YouTube)
# Wiiとおしっこ(Wee)をかけた大会らしい。なんかアメリカっぽいコンテストだな
死因は「水中毒」ということらしい。水だって飲みすぎれば中毒死してしまう、ということか。
毎週毎週、「ナントカを食べれば体にいい」みたいなテレビを見て、次々と別の食品に群がってる人たちがいるみたいだけど、水ですら取りすぎで死ぬんだから、何だって集中して摂取しちゃ体に悪いよなあ。など思ったり。
[追記 2006.01.16] BBC Newsで、水の過剰摂取でどんな問題が起こるのか、なぜこの女性は死に至ったのか、が解説された
[追記 2006.01.17] いろんなところで報道されてるようだが、このラジオ局が事件に関連して10人の局員を解雇したとのこと。
2007年01月14日
"Google"を打ち間違えただけで起こる悲劇
PCを起動し、IEから"google.com"を"goggle.com"と打ち間違えただけで、どんなひどいことが起こるか、というのを見せる映像。
とはいっても、Windows XPをアップデートしてないとか、IEで開くとかいろいろな条件が必要で誰でもこうなるわけではないみたいだけど。
google.comに似たドメイン名を取得し、そこにウィルスをばらまくようなページを設置して、ミスタイプするユーザを待ち構える人がいる、ということだろう。google.comぐらいになると、ミスタイプする人だけで毎日かなりの数いるに違いない。
アップデートしてないWindows XPなんてものが手元には無いので、どこまで再現するかは試してない。
あと、「ご家庭では試さないでください」、「この映像を作成するにあたって、どんな動物も犠牲になっていません」とかのちょっとしたジョークも面白い。
Windows Updateをかけてない人は決して真似しないように。というか、すぐ更新したほうがいいよほんと。
[2008.02.27 更新]
元の動画がYouTubeから消えていたので、同じ内容のものを探して差し替えました。コメントの方ありがとうございました。
また、Windows Vistaで同じサイトにアクセスした場合に、警告が出たりして、致命的なことにはならないようになっているよ、という比較動画もみつけました。
投稿者 秋元 : 20:57 | コメント (2) | トラックバック
2007年01月13日
スキャナで奏でるエリーゼのために
動画が見られる人は見てもらうのが一番早い
スキャナのヘッドが「エリーゼのために」を演奏している。
どんなスキャナでもこれができるというわけではなくて、HPのスキャンジェット4c/4pというスキャナに搭載された隠し機能を、さらにソフトウェアを書いて呼んでいるそうだ。ソースも公開されている。
スキャンジェット4c/4pは日本でも売られていたようだ。もう10年以上前の機種だからあまりないかもしれないけど、もし職場にあったら、突然スキャナで音楽を鳴らしてみるイタズラも楽しいかもしれない。
投稿者 秋元 : 15:03 | コメント (2) | トラックバック
2007年01月07日
プログラミング2.0
Programming 2.0 from O'Reilly Rader
O'Reillyが、送られてきたメールに書かれていたプログラミング2.0の定義を紹介している。
1.0 | 2.0 |
---|---|
バイナリ | テキスト |
コンパイル | プラグイン |
書く→コンパイル→実行→テスト | 書く→テスト→実行 |
周期的なリリース | リアルタイムの更新 |
エンドユーザによるベータテスト | ユーザ作成のライブラリ |
ベンダー制御 | エンドユーザ制御 |
遅い | 速い |
中央集中/プロプライエタリ | 分散/オープン |
生産に注力 | 創造に注力 |
手続き | オブジェクト指向 |
コードのカスタマイズ | カスタマイズできるコード |
壊れやすい | アジャイル |
「社外ライブラリを信用しない症候群」 | 「ちょっと友達に手伝ってもらった」 |
一枚岩 | モジュール構造 |
大きなことが強み | 小さなことが強み |
O'Reillyも、上記の全部に賛成しているわけではないが。おおまかには、さまざまなプログラミングの現場で、あるいはプログラマーの意識における優先順位において、上記のような変化が起こり、続いているところはあると思う。
2007年01月06日
Wiiの次にくる?インタフェース
センサーを組み込んだコントローラで、実際のスポーツの動きに近い入力ができるWiiが評判になっているが、もっと自由なインタフェースを試しているデモの動画があった。
声を上げるとパワーが溜まったり、好きな武器を使うとそのままゲーム画面に出たり、ジャンプなど実際のプレイヤーの動きよりも誇張された技が出たり、というもの。
両側にゲーム画面があるのは、プレイヤーがどちらを向いていても遊べるようにするためだろう。理想的には四方や上方にもディスプレイが必要なのかもしれない。
最後の方の二人プレイは、さすがに無理がある。プレイヤー同士が現実世界で干渉してしまうからね。
2006年12月30日
会社で見るとヤバイページへのリンクを弱めるFirefox Extension NSFW
via digg
NSFW(Not Safe|Suitable For Workの略)、つまり「会社では見ない方がいいよ」という注意書きで書かれているタイトルやリンクがたまにある。主に品の無い画像・動画を含むようなページを紹介するときのマナーとして書いている人もいるのかもしれない。
普通は、リンクやその周辺のテキストに書くような参考情報だけれど、リンクに付随する情報として、属性を作ればいいんじゃないか、というブログでの提案がまずあった。これが12月29日。
とりあえず、rel="nsfw" とか、 class="nsfw"で表記することでどうか、という提案と、モダンブラウザでそれらの強調をするためのスタイルが提示されている。
NSFW Extensionは、それを見て作成された、上記のタグがあったらリンクを区別(具体的には薄く表示)してくれるFirefox拡張ということだ。
もちろん、みんながこの属性を使わないと意味はないわけで、仕組みの提案はいいけどこの先どうするの、という話はある。rel="nofollow"がこれだけ広まったのは、SEOというウェブサイト製作者の関心に直結していたことや、ブログシステム側の更新で比較的簡単に普及させられたからというのがあるし。
最初の提案エントリのコメント欄には、マイクロフォーマットの規格を多数提案しているmicroformats.orgの人から、「それmicroformatsでできるよ。rev使おうよ」という逆提案も出ているのだが、これはスルーされている。そんなに需要の高いフォーマットかどうかわからないし、やるんだったら協力してほしいが。
たまに、(音が出ます、注意)(リンク先ページはブラウザサイズを変えます)とか書くことはあるけど、こういうのも注意書きとして統一したフォーマットで書けるといいかもしれないね。
2006年12月29日
動画修正はここまでできる
動画といっても、ここまで合成や修正ができるようになってるんだ、というビデオ。
静止画の改竄はそれほど驚かなくなったけど、動いているものを動いているままここまで変化させられるのか、というのがよくわかるビデオ。
まったく違う車内と風景を合成したり、女性の髪の色は自由に変えられる。別々に撮った同じ場所の必要部分を合わせたり、まったく異なる複数のシーンをつなげて、まったく別の場所で起こったことのように見せることもできている。女優のアップはどれも問題のあるところがキレイに修正されている。
これぐらいできてしまうということは、ビデオがあったとしても簡単にそれを証拠とはできないということじゃないだろうか。加工する隙や時間があれば、そこにいないはずの人を持ってくる、なんてこともできるわけだし。ビデオが加工されていないかどうかをチェックする技術も重要となるだろう。
投稿者 秋元 : 21:54 | コメント (2) | トラックバック
2006年12月26日
無重力化での水滴を使った実験の動画
via digg
水滴というか水玉。ISSでのNASAによる実験のビデオ。
実験は3つのパートにわかれている。
水玉に空気をぶつけて、水玉全体の動き、波の伝播を見る
水玉の内側に空気の玉を作り、さらにそこに小さな水玉を入れる。水玉同士の衝突による軌道の変化。
アルカセルツァー(バファリンみたいなもの)を溶かして、泡の変化を見る。大きめの泡が他の泡を併合していき、両極の大泡、さらに一つの大きな泡となる様子
2006年12月21日
写真レタッチによる人物修正の妙技
写真のレタッチ技術で、どれほどすごい修正ができるのかを表したビデオ。いろいろな顔の修正前、修正後が見られる。
これもいろんなところで既出だけど、レタッチといえばDoveのCMやレタッチの前後をマウスを載せる動作で確認できるサイトも必見。(via 上記動画にいち早くブックマークしていたnoshukeさんのコメント)
こうやってみてると、写真の証拠能力なんてものは、どんどん無くなっていくのかもしれないなあ。そして動画もそれに続くんだろう。
2006年12月19日
本当に使える10個のWebサービスAPI
LinuxWorldの記事で、10個のWebサービスAPIが解説と共に紹介されている。
- Google Maps API
- Geonames.org
- OpenID
- Amazon S3
- Amazon EC2
- Atom API
- OpenSearch
- Open Media Profile
- MediaWiki API
- JS-Kit
特定のサービスを便利に使うためのAPI(Flickr APIとか。あれはあれでよくできているけど)ではなく、実際の問題を解決するために使える10個を選んだ、ということだ。
1, 4, 67は「PHPxWebサービスAPIコネクションズ」でも扱っている。2番も同じものではないが日本で使えるものを紹介した。
上記のリストには、日本向けに出てないものもあるし、日本語の解説がまだまだ少ないものも多い。全部が伸びるかどうかはわからないけれど、面白いセレクションだと思うので、今から手をつけて見ておくといいかもしれないなと思った。
ちなみに、僕個人としては、面白いと思ったから本で紹介したので、本にあるのはまあおすすめとして、Amazon EC2やOpen Media Profileもよさげ、と思っている。
エッチなファイルを隠す方法
"How to hide porn"とはまたダイレクトなタイトルだが、他人に見られたくないファイルはどうやって隠せばいいか、という記事。
はしょって結論のところを訳すと、
「リモートにあるコンピュータ上の、隠されたユーザアカウントで、ドットのついたフォルダー(記事はMaxOSXでの方法)に暗号化されたディスクイメージを作り、そこに入れておく。誰かが何も入ってないと勘違いして隠しユーザアカウントを消したりしないように、ユーザ削除権限は他の人には与えない」
だそうだ。
記事には、上記を実現するためのMaxOSXの機能やソフトウェアについても詳しく書かれている。IMAPサーバとかiPodなども候補として検討されている。何か大事なデータを隠したい人には参考になるのではないか。
2006年12月13日
GoogleがAjaxフレームワークのGWTをオープンソース化
Google Web Toolkit(GWT)の公式ブログで、GWT1.3のリリース候補版がApache 2.0ライセンスになってリリースされたことがアナウンスされた。
バージョン1.3は、前の1.2から機能が増えたわけではなく、バージョンを上げた最大の理由はオープンソースライセンスへの変更にあるということ。
JavaだけでAjaxアプリケーションを開発できるGWTは、Javascriptに詳しくなくてもサーバ側の言語を知っているだけで開発できることや、ブラウザ互換性の吸収、デザインやデバッグの簡易化などの利点がある。
GWTについて、詳しくは弊社の親会社であるサイボウズの開発部が調査しているのでそちらを参照されたい。
GWTはWebアプリケーションを作成するJava使いにとっての一つの大きな助けではあったが、これまではGWT本体の内部がGoogle外に公開されていなかったため、無料ではあるもののツールの内部まで追うことができなかった。
今回のオープンソース化で、外部の開発者による改善、たとえばGWTでサポートされていないブラウザやOSへの対応が進んだり、Googleが自社の開発には必要としていない部分の機能が改善されたり、というのが期待できるかと思う。
2006年12月12日
PEARライブラリ作者地図
PHPxWebサービスAPI本でも多用していたPHPの公式ライブラリPEAR。そんなPEARのライブラリ開発者を地図上にプロットしたページがPEAR公式サイトに登場した
Java SE 6出た
Java SE 6, JDK6が正式にリリースされたようだ。
Java Web Startを使ったオンラインインストールが、なぜか手元ではエラーになったので、昔ながらのオフラインインストールを実施。
いつものように、新たにインストールしたjava, javacの有りかにパスを通して。
今回の目玉としては、やっぱりスクリプトエンジンかなあ、ということで、Javascriptをためしてみた。いやまあ、ほとんどSunのマニュアルを追っただけなんだけど。とりあえずこんな感じ。
import javax.script.*;public class JsTry {
public static void main(String[] args) {
// Javascript用のエンジンを取得
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine jsEngine = manager.getEngineByName("JavaScript");
// 実行
try {
jsEngine.eval("println('Hello, world!')");
jsEngine.eval("println(365*24*60*60)");
} catch (ScriptException ex) {
ex.printStackTrace();
}
}
}
> javac JsTry.java> java JsTry
Hello, world!
31536000
# ブログにコードを貼り付ける方法で悩むの巻を参考にしてみた。というかスタイルをそのまま使わせていただいた。
2006年11月30日
伝説のマシンAltairが通販で買える
アルテア8800、僕は見たことないんだけど、ビル・ゲイツがBASICを開発し、マイクロソフトの歴史を始めた、1975年発売のキット・パソコンだ。
現在入手できる部品を使っての勝手クローン復刻、ということになるのかな。復刻されたマニュアルに、この売主による追加ガイドもついている。
1台が既に売れていて、2台は予約済、あと2台がeBayにてオークション中。注文から3,4週間で届けられるそうだ。
eBayオークションのは今20万円ぐらい。バイナリアンの人、リビングに一台どうだろう。
2006年11月29日
ダブルマウスによるマウス移動記録
PCでの作業中のマウス移動を記録し、アプリケーションのインタフェースや機能、作業効率を振り返るというのはよくあるけど、ni9e.comではきわめて単純な方式が提案されている。その名も「2XMOUSE(ダブルマウス)」
いやもう、みたまんまなんだけど。
マウスケーブルを二つに分岐させて、二台のPCに挿せば二台同時にあやつれて便利じゃね? という、なんともおバカな発明だ。
一台を作業用、一台をマウス移動記録用(!)にしておけば、一日の仕事が終わったときにはマウスで書いた絵もできあがっている。なんの意味があるんだ。
投稿者 秋元 : 09:57 | コメント (2) | トラックバック
2006年11月26日
超スモールサイズLinuxパソコン
linutopは、ネットサーフィンに必要なソフトを組み込んだ、ディスクレスの軽量linuxマシン。
ディスプレイ、キーボード、マウスについては出先にあるものを使い、本体だけを持ち歩く、ということもできそう。この小ささ(280グラム)だったら持ち運びは苦にならなそうだ。
投稿者 秋元 : 17:33 | コメント (1) | トラックバック
2006年11月20日
世界最高のウェブサイト
via digg
世界で最高、つまり最も高いウェブサイトだ。(なんか違う)
種明かしはといえば、divに18939emという値を入れているだけのようだけど。これがブラウザの受け付ける最高値ということなのか。
解説によれば、Firefox系では、ページの高さを18.939583キロメートル(!)以上にしようとすると、かえって縮んだり崩れたりするということ。
IE系では、指定の結果、実際の高さが18キロに達しているかが不明ということ。(ちょっと説明の意味がわからなかった)
CSSを使ってレンダリングの限界を試したということで、意義はない、こともない、かもしれない。限界値テストはMSもMozillaもやってるとは思うけど。
エレベータ(直接リンク)もついてるので、延々スクロールさせなくても末尾に簡単に移動することもできる。
それと、printメディアタイプが指定されているので、間違って印刷ボタンを押しても安心。
2006年11月17日
世界の電圧・周波数地図
via Make:
Electricity around the worldというページに、コンセントの電圧と周波数を色分けした世界地図が載っていた。
東日本は、マダガスカルとだけ一致してる、4種類の中でも最もマイナーな組み合わせなんだね。
他は、まだらになってる南米、国内でボルトが統一されてないというブラジルなんか、すごいことに。
それから、サウジアラビア、リベリア(?)、台湾、韓国、フィリピンあたりが、まわりからういてる感じ。台湾は日本統治の影響だと思うけど、それぞれ電化の経緯で何かありそうだ。
日本の東西で規格が別なのは、ドイツとアメリカからそれぞれ導入したから、ということだけど、ドイツ方式の電圧については何があったのかね。
Flashによる複数ファイルアップロードライブラリSWFUpload
via Ajaxian
SWFUploadというFlashのライブラリがAjaxianで紹介されているが、これけっこういいのではないか。
- ファイルダイアログで表示される拡張子を指定できる
- 複数ファイルを、CtrlやShiftで選択できる
- イベント毎にJavascriptのハンドラを呼べる
- アップロード開始前にファイルの情報がわかる
- プログレスバーが表示できる
- ページ全体のリロード無しにアップロードされたファイルを表示できる
- Flashの動く環境すべてで動く
- FlashやJavascriptが使えない環境でも、通常のフォームアップロードになる
最後の項目は重要だろう。
リンク先でデモを試せる。"Try it out!"ボタンを押して、適当なファイルを複数選び、アップロードすると、ファイルサイズやプログレスバーが表示される。
複数アップロードは、Webアプリでよく要望されて困るところだし、プログレスバーもできなくはないけど、簡単にできるなら助かるだろう。
MITライセンスというところも嬉しい。
2006年11月16日
テーブルUIによるクールな新電子楽器rectable
reactableは、バルセロナにあるPompeu Fabra大学での研究。
ブロック上の機器をテーブルの上で配置していくことで、電子音楽を鳴らすという楽器。テーブル上に置いたブロックが、シンセサイザーの各パーツとなる。
それらの場所、向き、どの面を下にするか、他の部品との角度、などを元に、シンセサイザーのパラメータが変わる。
また、そのパラメータがテーブルの上に投射されることで、演奏者へのフィードバックにもなっている。
なんとか説明しようとはしたけれど、動画を見てもらうのが一番てっとり早そう
動画に出てきたのは、以下のようなブロック
- ジェネレータ
- フィルタ
- 正弦波発信機
- サンプラー
- メトロノーム
- シーケンサ
- ハーモナイザ
角度を変えたり、指で操作したりして、周波数や音量を調整する。近づけたり、並びを変えたりすることで効果が変わる。
もう一つ
そのほかにも、カンファレンスで来場者(子供にも)にも作曲してもらったりと、多数のデモビデオがこちらにある。
TUI(Table-based Tangible User Interface, テーブル上で触れるUI)を実現するために、テーブルの裏からパーツ配置を撮影し、それを解析するためのソフトウェアがオープンソースとしても提供されている。
なんとなく、「電子ブロック」を思い出した。ブロック上の電子回路を組み立てていくと回路が完成するというオモチャだ。一定以上の年齢のGeekなら懐かしいと思うことだろう。
2006年11月14日
Macノートの光センサでジェスチャー入力するソフト
Macintoshのノートは、液晶を閉めると自動的にスリープするらしいが、閉めたかどうかの判定には、どうも光センサを使っているようだ。
liltというソフトウェアは、この光センサを使ってユーザのモーションを検知し、ジェスチャーによる入力を可能にするもの。
光センサはスピーカグリルの下のほうにあるそうだ。この上あたりで手のひらを動かすと、その変化によって、アプリケーションを起動できたりするという。
ダウンロードして実行するだけで動くらしい。正式版では5ドルのシェアウェアになる予定ということだ。
MacにはUniMotionというライブラリがあって、これを呼び出せば自分で光センサを使ったアプリケーションも書けるそうだ。
[参考]
ジェスチャーによるウィンドウ切り替え、without マウス
2006年5月に紹介したこちらは、急な移動でハードディスクを止めるモーションセンサーを使ったアイデアだった。
叩く、というのは副作用が怖いし、光センサのほうがありがたい。しかし、精度については不明だ。
投稿者 秋元 : 11:31 | コメント (2) | トラックバック
最近Web2.0で流行るフォント
Great Fonts for Web 2.0では、最近ロゴをよく見かける、Web2.0なサイトを参考に、それらのフォントとそのフォントの特徴を説明している。
たしかに、アルファベットだと数千個のフォントがあるから、選ぶのはたいへんだろうけど。
2006年11月13日
100までの素数を求めるPHPスクリプト
元ネタはこちら。PHP 5.2.0リリース記念
for($i=2;$i<100;$i=gmp_intval(gmp_nextprime($i)))echo "$i ";
ワンライナーはあんまり好きじゃない。プロとして仕事で書くならこんなの。
$next = 2;
while ($next < 100) {
echo "$next ";
$next = gmp_intval(gmp_nextprime($next));
}
うーん、やっぱPHPって便利だ
前提条件: PHP5.2.0 gmp拡張をオン(Windowsの場合、php.ini に extension=php_gmp.dll )
2006年11月07日
当ブログ右側にある「人気エントリー」の作りかた
サイドフィードの赤松さんのブログで引き合いに出されていた、このブログ右側のサイドバーに置いてある「人気エントリ」。
> 要は「はてなブックマーク」でブクマされた数が多い順にエントリを貼り付けているのですが
む、なぜバレたんだろう。いや、見ればわかるか。
過去に話題になったエントリを、新しく来た人にも読んでもらいたいな、ということで、「過去に話題になった」を何かで順位づけないといけなかったんだけど、はてなブックマークの被ブックマーク数が多い順でいいかな、と思ったしだい。はてなブックマークの数は、はてなユーザの嗜好に偏ってるとは思うけど、他にいい指標もないし。
他所からとってきたRSSを加工して表示する方法としてMovable Typeのプラグインを使う手もあったんだろうけど、Perlは苦手なのでPHPのライブラリを使った。RSSをJavascriptに変換するfeed2jsというライブラリを別途設置して、MovableTypeのテンプレートからはそこで作ったJavascriptを読み込ませている。
表示させてみると、うちでは各エントリのタイトルにブログのタイトルも入れているので、そのままRSSを表示させると全部のリンクにブログタイトル(「秋元@サイボウズ・プログラマー・ブログ - 」)が入ってしまう。これを除去するコードをfeed2js.phpに書いて完了。
ということで、簡単にやるにはレビューポスターでいいんではないかな。
余談だけど、右側の人気エントリーは、ブックマーク数が100を越えるようなトップよりも、2,30個ぐらいのエントリーに面白いものが埋もれているかと本人は思っている。
飛行機の飛行データを可視化したムービー
アメリカ上空を飛んでいる旅客機のデータをプロットしたムービー。
東海岸から順番に夜が明けて、どんどん飛行機の密度が高まり、それが西海岸、ハワイへと移動していく様子が見える。
リンク先には他にも表現形式ごとにいろいろなムービーがある。
Quicktimeが再生できなくて、画質落ちてもとりあえず見たい人はYouTubeをどうぞ。
2006年11月06日
色で書くプログラミング言語Piet
Piet は、色の変化でインストラクションを表す、スタック言語だ。
プログラミング言語といえばまずこれだろう。言語作者本人による、"Hello, World"。
コードの実行は左上から開始され、同じ色で塗られた領域のピクセル数が数値に、次の領域での色相と明度の変化がインストラクションになる。
また、次の実行方向を制御するための黒色と、何も行なわない(NOP)白色もある。
その他のサンプルプログラムはこちら。"Hello, World"をいろんな人が違うやり方でコーディング(ペインティング?)しているけど、中にはハノイの塔やフィボナッチ数列を求めるプログラムもある。よくやるなあ。
そして、この言語の発想の基となり、言語名の出自でもある、Piet Mondrianの作品っぽく見える"Hello, World"も。
この人は、Esoteric Programming Languages(秘伝的プログラミング言語)というページで、他にもいろいろな変態的プログラミング言語を作成・紹介している。オランウータン用言語とか、東洋哲学言語とか、ゾンビ遣い用言語とか。
2006年11月01日
Javascriptで三角形を動かす
Javascriptだけでぐるぐる回る三角推というデモを見つけた。IE6では動かないがIE7やそれ以外のブラウザで動く。
borderを使ってHTML+CSSだけで三角形を書くテクニックは、前にどこかのブログでやってたと思うけど、それを応用して、これだけ複雑な立体を描き、さらに動かすことに成功している。大きな三角形は、水平や垂直線で小さな三角形(実際にはborderをいじったdivタグ)に分割している。
デモでは、Q,W,E,A,S,Dの6つのキーで、回転の方向を自由に変化させることもできる。
2006年10月30日
ページ上で花火を表示するfireworks.js
Fireworks.js、名前だけ見て、Greasemonkeyのスクリプトか、Javascriptのイベントハンドリングでもするライブラリかと思ったら、直球で「花火を表示するライブラリ」だった。
リンク先ではライブラリを使ったデモも置かれていて、スライダーでいろいろなパラメータを変え、そのページ上で花火を打ち上げる[Fire!]ことができる。
# Blast Radius(半径)とParticles(粒子の数)を大きくすると派手になると思う
その下には、いくつかリンクが並んでいて、プリセットの花火を見てみることも。
打ち上げの音はどうしてるのかなと思ったら、Javascriptから隠しFlashを呼び出してFlashで音を鳴らす、というライブラリもここで提供しているようで、それを使ってる。
配布物には、爆発音、上記の音声ライブラリ、デモも含んでいるので、置いてみていじればいろいろ試せるだろう。花火の表示自体は、関数一個の呼び出しでできるし。
2006年10月22日
CSSウェブデザインに関する情報ポータルmost inspired
via digg
ニュースサイトのRSSを集積したpopurlsみたいなもので、CSSとウェブデザインに関する著名なブログやギャラリーサイトのフィードを一箇所にまとめて表示しているのが、most inspired。
こういうのって、最初にやったもの勝ちだね。でも、セレクションが良ければいいのかもしれない。
2006年10月19日
IE7でたね
インストール完了。
文字はキレイになった、というかIE6とあきらかに違う。
タブがFirefoxのようだ。
Homeやお気に入りの場所が変わったのでまだ慣れない。
地域をJapanにすると、デフォルトの検索ボックスはYahoo!ジャパンになった。MSN Searchじゃないんだね。
IEアイコンをクリックするとIE7が立ち上がる。IE6は見当たらない。
ベータ版と同じく、アンインストールしてIE6に戻すこともできた(インストール/アンインストール共にMS-Windowsの再起動が必要)。
アンインストールの手順は[コントロールパネル]-[プログラムの追加と削除]-[Windows Internet Explorer 7]を選択して[削除]
IE6に戻すことはできたんだけど、IE6のアドレスバーに直接URLを入力すると、なぜかそのページがFirefoxで開くようになってしまった。仕方がないのでIE6に戻すのやめて再度IE7をインストール。
投稿者 秋元 : 14:04 | コメント (2) | トラックバック
2006年10月17日
jpegの中に別のファイルを隠す方法
といっても、画像の背景に隠すとかじゃなく、きわめて原始的なやつ
jpeg形式のファイルの後に、rar(圧縮形式の一つ)を単純につなげると、普通に開くと画像が表示されて、rarの解凍ツールで開くとrarの部分が解凍できるファイルが作れるということだ。
理屈だけど、jpegの表示はファイルの先頭から必要なものしか見てないということなのかな。rarの方は、ファイルの途中からアーカイブがはじまってもそれを見つけられる仕様? よくわからないな。
画像を交換しているフリをして何か他のものを交換したい人(どんな状況だよ)は試してみては如何。
[追記] その筋ではポピュラーなデータ偽装運搬手法だったようだ。弾さんのブログで偽装を見破るPerlスクリプトも紹介されている。後ろにつけたrarがそのまま開けるのは、最初からこういう使途を想定して解凍ソフトが対応してるということかな。
2006年10月10日
ブログのコメントを文章の一部分につけられるAjaxシステム
via Ajaxian
Jack Slocum's Blogで、フリーのブログシステムであるWordPressのコメント機能の面白い改造が公開されている。
そのブログに言ってみて、触ってもらうのが一番だと思うが、要はブログ本文のタイトル・パラグラフ・図などのそれぞれに対して、コメントをつけることができる、というものだ。
既にコメントがついている箇所があれば、コメントの数がブログの左側に数字で表示されている。また、左側のバーで何もないところを選ぶと、その場所にコメントを書くことができる。
また、コメントの閲覧や追加は、Ajaxによってページ遷移なしに実現されている。
実装は、Yahoo! UI ライブラリを使って、一日仕事で完了したということだ。Jack Slocum氏の書いたコードの部分も、BSDライセンスで自由に使ってくれ、と書いてあるので、Javascriptの分は流用できるだろう。
コメントが記事のどこについてるか、という情報は保持しないといけないだろうから、WordPress側にも改造が必要なはずだが、その部分のコードについては公開されていない。でもまあ、コメントテーブルに一カラム増やすぐらいの改造ではありそうだ。
ブログのコメントがパラグラフにつけられるべきかどうか、はよくわからないけど、コメント中で「『…』のところで『○○』と書かれてますが、」といった書き方をすることもあるだろう
悪く活用されると、「ここはあなたの主観なんだから、『思う』と書くべきでは?」とか、「ここ誤字ですね?」みたいな揚げ足取りコメントがあちこちについたりするのかもしれない。
ブログのスタイル、たとえば長文が多いブログとか、読者と一緒に議論を詰めていくようなタイプによってはいいかもしれない。
2006年10月08日
ページ中の画像群で遊ぶJavascript
via digg
Google Imageの検索結果など、画像がたくさんあるページで、アドレスバーに以下のJavascriptをペーストして実行すると、おもしろい効果が出る。
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i<DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);
とりあえず動く様子を見てみたい人は、YouTubeに載せた人がいるのでこちらを見てみるといいかも。
diggのコメント欄では、オレもオレも、とバリエーションが多数投稿されている。大丈夫だとは思うけど、画像のポジションを変える処理に見えないコードが入っていて、それが何をやってるかわからないという場合はそのコードは避けたほうがいいかと。
もちろん、これらのコードはあなたのウェブページにも貼って動かせるけど、デフォルトでこんな動きをされてもどうかとは思う。まあ何か役に立つケースもあるかもしれないが。
[追記] この記事を読んだ方が、同じ方向性でウゴウゴ・ブックマークレトという面白いスクリプトを作られたようだ。ウゴウゴルーガ、たしかにこんなかんじだった。
投稿者 秋元 : 18:04 | コメント (2) | トラックバック
2006年10月06日
書いたものが物理法則に従い動くホワイトボード(動画)
物理の授業で良く出てくるような、ボール、車、ねじや重力の方向などを書いたホワイトボードだが、そのまま実行することができる、という技術の動画。
MITのMulti-Domain Sketch Recognitionという研究らしい。オリジナルの動画はこちらのページでダウンロード可能。他に振り子を書いた様子の動画もある。
物理法則通りに書いたものを動かすアプリケーションの方は以前からあって、この研究はホワイトボードの入力インタフェースのところが肝らしい。
投稿者 秋元 : 14:55 | コメント (7) | トラックバック
2006年09月29日
Snippy - 自由曲線で切り出せる画面キャプチャツール
SnippyはWindows用の画面キャプチャツール。
配布されている.exeファイルをダウンロードして実行すると、タスクトレイにハサミのマークが出る。
ハサミのマークをクリックしてから、自由に画面上でマウスを動かすと、動かした形に切り取ってキャプチャをしてくれる、というもの。早速やってみたのが下の図。
それにしてもセンスの無い切り取り方だけど、できることはわかってもらえたかと思う。
シフトを押しながら使うと長方形でもキャプチャしてくれる、ということなので、普通の用途でも使えそう。
投稿者 秋元 : 20:47 | コメント (2) | トラックバック
複数のIEをまとめてインストールするパッケージ
Install multiple versions of IE on your PCで、IE3からIE6までの異なるバージョンのIEを選んでインストールできるインストーラというのが配られている。
IE4やIE5を単体で動く形で配布しているサイトは前からあった。まあこれでもいいんだけど、インストーラのほうは複数バージョンが組み込まれていて、どれを入れるか選択できて、ショートカットも生成できるということでさらに楽になってる。
もちろん、改造されたバイナリの非公式な配布なので、このインストーラや入れたIEに何か変な仕掛けがあるということもあるかもしれないが。
IE7との共存のほうはこっちの記事に書かれている。
# どちらにしても、単体で動かす別バージョンのIEでは、いろいろ不具合や動かない機能があるようなので、単純な画面描画のチェックぐらいにしか使えないだろうとは思う。
[参考] IE7ベータを入れたらIE6が上書きされてしまった
2006年09月25日
iHack - 脆弱なHTMLフォームの突破ゲーム
「このフォームを突破してもハック(クラック?)したことにはならないよ」とのこと。安心してアタックされたし。
さっそく遊んでみたが、レベル3で既に悩んでしまい停滞。そんなわけで先がどれぐらいの難易度なのかはまったく不明。我ながら才能無いなあ。
猛者がいるサイボウズ・ラボの社内掲示板に紹介しておいた。
# くれぐれも、解いて進んだ先のURLを直接紹介しないこと、との注意書き。ゲームがつまんなくなるんでね。
[追記] ということで社内の猛者達が全6問を解き終わった。
レベル3は「そりゃないんじゃないの」に近い仕掛けだった。技術じゃない。このへん関連のニュース、「よく使われるパスワード」みたいなのを漁るのかこれ。
投稿者 秋元 : 15:11 | コメント (7) | トラックバック
2006年09月07日
フィリップス研究所の発表した発光する生地
ドイツの展示会で発表されたばかりの新技術らしい。
次の写真は、この生地で作ったTシャツを着てる様子。
Phillips Research のサイトに、他のいろいろな衣類や家具への応用の写真が載っている。
次は展示会での様子の動画
2006年09月05日
SEO対応Javascriptニュースティッカー
Accessible JavaScript Newsticker
複数のニュースを、一個ずつ順番に表示させるギミック。サンプルはこちら。
何が"Accessible"かというと、Javascriptがオフの時でもニュースが一覧でHTMLソースに存在する、つまり、検索エンジンから認識される、ということだろう。JavascriptやCSSを使ってdegradableな階層メニューを作るような話題とこのあたりは同じ。
逆に、ページに表示されるけれど検索では引っかからない、ような表示内容にしたければ、ニューステキストをJavascript側で処理して表示させるようなものを作ればよい。
[追記] 百式の田口さんがほぼ同時に別のJavascriptティッカーを紹介されていた。Javascriptでお手軽ティッカーを実現
訪問者が入れているFirefox extensionを検知するJavascript
chrome:プロトコルで Firefox Extension が持っている画像などをアクセスすることで、その Firefox である extension がインストールされているかどうかを判定できるらしい。
実際のデモはこちら(自分の使ってる拡張機能を知られたくない人は押さないこと)
著名な extension ごとのチェック対象画像のリストを整理している人もいた。
リンクが訪問済かどうかをCSSの属性からチェックする技法がちょっと前に話題になったけど、いろいろ考えるもんだ。
# こちらは、
あなたのWeb2.0度判定テストやHatebu::Addiction(はてブ中毒度)などで使われている。
2006年08月18日
CSSの圧縮サービス比較記事
CSS Optimization: Make Your Sites Load Faster for Free というブログのエントリで、CSS の圧縮サービスの比較をしている。
空白や改行を除去したり、無くても同じ結果になる重複を省いたりすることで CSS のサイズをコンパクトにしてくれるサービスは、ウェブページの表示速度改善(や、帯域削減やサーバの利用効率向上)を目的としたものだ。
この記事では、4つのブラウザから使える無料サービスを使って、Digg や Slashdot といった著名なサイトの CSS を実際に圧縮し、圧縮率を比べている。
比較された4つのサービス、今回の測定対象では、Icey Compressor、Clean CSS、CSS Optimiser、Flumpcakes という順で成績が良かったということ。
圧縮率の高さもそうだが、整形・圧縮をかけた結果、元の表示と違ってしまうというケースも多いようで、再現性の高さも重要だということだ。
この記事では紹介されてなかったが、こういうサービスは多くて、他には、 CSS Formatter and Optimiser、csstweak、などもあり、Haskellで書かれたFactor CSSなんかも、サービスとして公開されているしソースも入手できる。
2006年08月14日
ケータイを光学+Bluetoothマウスにする
via Turning Nokia 6230i into a Bluetooth Mouse
ブルートゥースで遠隔通信が出来て、内蔵カメラでテーブルの模様が撮影できるのであれば、、、ということで考えて、やっちゃった人がいるようだ。
制御ソフトウェアは Java で書かれているとのこと。これ、今はジョークみたいだけど、実用化されることがあれば、ノートPCを持ち歩くときにマウスも持ち歩いている人に取っては朗報だと思う。いつも持ってる携帯電話がそのままマウスになるわけだから。
2006年08月08日
世界の「,」(カンマ)と「.」(ピリオド)を解き明かす
エキサイトニュースの 「,」(カンマ)と「.」(ピリオド)の不思議な関係 という記事で、世界各国で数値の表記がどう違うかという話題を取り上げている。
「そしてギリシャは……ギリシャ語がわからん! 調査断念。」
なんて書いてあるけど、こういうのはウェブで各国語を検索するよりも、国際化されたアプリケーションを見てみると回答が得やすい。
たとえば、Windows だと[コントロールパネル]-[地域と言語]-[地域オプション] で「使う言語」を切り替えると、各国での数値のフォーマットや通貨単位、時間の表記などを知ることができる。実際に切り替えなくても選択するだけで表示は変わるので、フォーマットを確認したらキャンセルしてもいい。
各国向けに国際化されたアプリケーションでは、それぞれの国の人がバグレポートを出してくるので、自然に間違いが正されることが多い。ま、メジャーなアプリケーションじゃないと直らないけど。
Java も国際化の扱いは充実してるので、こういった一覧を取ることができる。
国名 | 数字表記 |
アラブ首長国連邦 | 1,234,567.89 |
バーレーン | 1,234,567.89 |
アルジェリア | 1,234,567.89 |
エジプト | 1,234,567.89 |
イラク | 1,234,567.89 |
ヨルダン | 1,234,567.89 |
クウェート | 1,234,567.89 |
レバノン | 1,234,567.89 |
リビア | 1,234,567.89 |
モロッコ | 1,234,567.89 |
オマーン | 1,234,567.89 |
カタール | 1,234,567.89 |
サウジアラビア | 1,234,567.89 |
スーダン | 1,234,567.89 |
シリア | 1,234,567.89 |
チュニジア | 1,234,567.89 |
イエメン | 1,234,567.89 |
インド | १,२३४,५६७.८९ |
イスラエル | 1,234,567.89 |
日本 | 1,234,567.89 |
大韓民国 | 1,234,567.89 |
タイ | 1,234,567.89 |
タイ | ๑,๒๓๔,๕๖๗.๘๙ |
ベトナム | 1.234.567,89 |
中華人民共和国 | 1,234,567.89 |
香港 | 1,234,567.89 |
台湾 | 1,234,567.89 |
ベラルーシ | 1 234 567,89 |
ブルガリア | 1 234 567,89 |
スペイン | 1.234.567,89 |
チェコ | 1 234 567,89 |
デンマーク | 1.234.567,89 |
オーストリア | 1.234.567,89 |
スイス | 1'234'567.89 |
ドイツ | 1.234.567,89 |
ルクセンブルク | 1.234.567,89 |
ギリシア | 1.234.567,89 |
オーストラリア | 1,234,567.89 |
カナダ | 1,234,567.89 |
イギリス | 1,234,567.89 |
アイルランド | 1,234,567.89 |
インド | 1,234,567.89 |
ニュージーランド | 1,234,567.89 |
南アフリカ | 1,234,567.89 |
アルゼンチン | 1.234.567,89 |
ボリビア | 1,234,567.89 |
チリ | 1.234.567,89 |
コロンビア | 1,234,567.89 |
コスタリカ | 1,234,567.89 |
ドミニカ共和国 | 1,234,567.89 |
エクアドル | 1,234,567.89 |
スペイン | 1.234.567,89 |
グアテマラ | 1,234,567.89 |
ホンジュラス | 1,234,567.89 |
メキシコ | 1,234,567.89 |
ニカラグア | 1,234,567.89 |
パナマ | 1,234,567.89 |
ペルー | 1.234.567,89 |
プエルトリコ | 1,234,567.89 |
パラグアイ | 1.234.567,89 |
エルサルバドル | 1,234,567.89 |
ウルグアイ | 1.234.567,89 |
ベネズエラ | 1.234.567,89 |
エストニア | 1 234 567,89 |
フィンランド | 1 234 567,89 |
ベルギー | 1.234.567,89 |
カナダ | 1 234 567,89 |
スイス | 1'234'567.89 |
フランス | 1 234 567,89 |
ルクセンブルク | 1 234 567,89 |
クロアチア | 1.234.567,89 |
ハンガリー | 1 234 567,89 |
アイスランド | 1.234.567,89 |
スイス | 1'234'567.89 |
イタリア | 1.234.567,89 |
リトアニア | 1.234.567,89 |
ラトビア | 1 234 567,89 |
マケドニア | 1.234.567,89 |
ベルギー | 1.234.567,89 |
オランダ | 1.234.567,89 |
ノルウェー | 1 234 567,89 |
ノルウェー | 1 234 567,89 |
ポーランド | 1 234 567,89 |
ブラジル | 1.234.567,89 |
ポルトガル | 1.234.567,89 |
ルーマニア | 1.234.567,89 |
ロシア | 1 234 567,89 |
スロバキア | 1 234 567,89 |
スロベニア | 1.234.567,89 |
アルバニア | 1.234.567,89 |
スウェーデン | 1 234 567,89 |
トルコ | 1.234.567,89 |
ウクライナ | 1.234.567,89 |
アメリカ合衆国 | 1,234,567.89 |
コードは以下。最近 Java 使ってなかったので、いろんなものが思い出せなくて苦労した。書き方とか使ってるクラスとか古臭いかったら申し訳ない。
import java.util.List;
import java.util.ArrayList;
import java.util.Locale;
import java.text.NumberFormat;
import java.io.FileOutputStream;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.io.UnsupportedEncodingException;
/**
* show number formats example in all Java-available countries
*
* usage:
* > javac WorldNumberFormats.java
* > java WorldNumberFormats
* (open result.txt with UTF-8 compatible editors/browsers)
*
*/
public class WorldNumberFormats {
public static void main(String argv[]) {
double amount = 1234567.89;
PrintWriter writer = null;
try {
writer =
new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("result.txt"), "UTF-8"
)
)
);
Locale[] allLocales = Locale.getAvailableLocales();
for (Locale oneLocale : allLocales) {
String localeCountry = oneLocale.getDisplayCountry();
if (localeCountry == null || localeCountry == "") {
// this locale is language-locale so ignore it
continue;
}
NumberFormat oneFormat =
NumberFormat.getNumberInstance(oneLocale);
writer.println(
localeCountry + " :\t" + oneFormat.format(amount));
}
writer.flush();
writer.close();
} catch (Exception ex) {
if (writer != null) {
writer.flush();
writer.close();
}
ex.printStackTrace();
}
}
}
2006年08月07日
Google Web Toolkit の評価結果
サイボウズ本社開発部の公開している技術サイト CYDN で、Google Web Toolkit (GWT)の試用記が公開されている。
Java だけで(Javascript を書かずに)、マルチプラットフォーム対応の Ajax ページが作成できる GWT 。他のサーバサイド言語でも同様の試みはあるが、サーバサイド側の言語知識だけで Ajax 対応のアプリケーションが作成できるのは、チームの技術者を集める立場であれば気になる技術だろう。しかも、GMail や Google Maps で Ajax の可能性を牽引する Google の発表したツール/ライブラリである。
同様の、「覚える言語はひとつだけ」というコンセプトを逆側、クライアントサイドから追求すると、Server Side Javascript ということになるだろう。こちらもいくつか実装があるけれど、サイボウズ・ラボからも何人もが参加している AJAJA がここのところ熱い。
2006年07月30日
Microsoft Live Labs の Photosynth によるリアルタイムパノラマ
テクノロジー・プレビューが発表されただけで自分で触ることはできないけれど、マイクロソフトLiveのラボが作っている Photosynth という画像処理の技術が面白い。
Photosynth のアーキテクト Blaise Agüera y Arcas 氏によるデモ
デモでは、多数の写真から再構成されたローマの教会前の広場の中を、好きな方向に視線を変えつつ見ていく。一枚の写真の端あたりで、他の写真がそこにかぶさって表示されていき、全体としてその場所にいるかのように風景を見ていくことができる。
自分で撮った写真の集合から、一枚の大きなパノラマ写真を作ってくれるソフトウェアはもうある。
Photosynth は、写真ごとの撮影者の位置を把握して、立体的に並べてくれる点や、みんなが撮ったばらばらな写真から一つの場所を再現してくれる点、そして見るためのインタフェース、などが改善されているということだろう。
Flickr のような写真共有サービスにしても、観光地などの写真は多数あるはず。これらの写真を見るためのインタフェースとして、また写真検索のインタフェースとして、この Photosynth は面白い。
自分が旅行で撮ってきた一枚の写真から、周りの風景が(多数の写真を使って)構成されていき、体験の再現ができるとしたら、人気も出るだろうし、この Photosynth の一般公開が待ち遠しい。
2006年07月25日
実験 - 人はどんなところをクリックするのか
New Click Survey というページで、8枚のページに対して自由に一箇所をクリックしてもらい、人は画面のどこをクリックするのか、という実験をしている。
ただの長方形、円、「ここをクリック」、「ここはクリックするな」、などといったシンプルなページに対してクリックしていくと、最後に訪問者全員のクリック結果から、よくクリックされたところがわかるような結果画面を見せてくれる。いきなり結果だけを見ることも可能。
今のところ、18000人がこの実験に参加したようだ。
画面内に特徴があるところで人はクリックするし、「ここは押すな」と書いてあるところでも何もないとこよりはるかに押される、など、おもしろい。
[追記] 2006.8 に登場の clickdensity で、Javascript によるユーザのクリック位置の統計・ヒートマップ作成をサポートしている。無料トライアルつきの有料サービス。
[関連] ノークリックリンク
投稿者 秋元 : 10:30 | コメント (1) | トラックバック
2006年07月19日
ウェブデザイン向け定規とグリッド
ページの背景画面に、定規のイメージを置いておくと、CSS による要素の配置や微調整がうまくいくんじゃないか、という話。
定規はこちら。( via Airbag )
これをさらに2次元にしたのが、バックグラウンド画像グリッド。利用イメージはこちら。 ( via Smiley Cat )
2006年07月17日
コンピュータの進化
アディダスの、つまり靴のコマーシャルフィルムらしいのだけど、前半のコンピュータの進化の変遷はプログラマーならずとも面白く感じるのではないだろうか。
2006年07月04日
Sysinfo.org - Windowsのスタートアップにある不審なプログラムを調べるためのサイト
Sysinfo.orgというサイトで、Windows のレジストリ関係のデータベースが構築され、公開されている。
今のところ、BHO(Browser Helper Object, ブラウザから起動されるツールバーなどのプログラム。スパイウェアや○ウェアマルウェアも含む)と、スタートアップに登録されるアプリケーション(こちらも悪意のあるアプリケーションを含む)のデータベースが公開されている。
スタートアップアプリケーションの情報一覧では、システムに必要なもの、不要なもの、ユーザが必要なら入れるもの、害のあるもの、といった分類がされ、すでに1万2千件を越える情報が入っているようだ。
検索もできるので、タスクマネージャのプロセスリストで、知らないアプリケーション名が出てきてぎょっとしたときなど、調べてみてスパイウェア等じゃないか、削除しても問題なさそうか、などを確認するのにいいだろう。
2006年06月18日
機内イヤホンで iPod を充電
Inflight Power 社が売っているケーブルは、飛行機内のイヤホン端子から USB 電源を取れる、と言っている。
USBからの変換アダプタを用意すれば、携帯電話、iPod、Brackberry などの PDA などがエコノミー席でも充電できるという。
飛行機もビジネスクラス以上になると電源が使えることが多い(らしい)が、エコノミー席で電源があった経験は僕にはない。長時間のフライトで手持ちの音楽プレイヤーの電池が切れても、これがあればUSB ソケット経由で電源供給できるということになる。
しかし、イヤホン端子からUSB端子に必要な電源なんて取れるものなんだろうか? よくわからん。
Inflight Power 社のサイトは、ほぼどこからもリンクが張られていない。また、Inflight Power 社のページには「SkyMall でご存知の」、と書いてあるため、本当に売ってるのか 機内通販会社 SkyMall のサイトを探したのだけど、そこでは見つけられなかった。
2006年06月09日
部屋に流れる音楽からチャンネルを特定する Google の研究
via TechCrunch
先週ヨーロッパで行われた EuroITV というインタラクティブTV についてのカンファレンスで、Google Research のある研究 (pdf)が最優秀論文賞を獲得したということ。
- PC のマイクを使って部屋の環境音を拾う
- 収集した音を不可逆変換で「特徴」だけのデータに変換
- サーバーへ「特徴」のデータを送信
- 放送されているすべてのテレビ放送から同様に作成した「特徴」とつき合わせて、合致した番組の情報を返送
という手順で、今 PC のまわりで流れている番組情報をネットとマイクだけで取得できる。示されている応用例としては、
- 流れている番組の補足情報を PC で表示
- 番組で映っている服が近所のどこで買えるかという広告を表示
- 同じ番組を見ている人たちの一時的なコミュニティをネットで作成
- 参加者全体の統計から、よりサンプルが多い視聴率を求める
- その番組をネットでブックマーク。シリーズの他のエピソードや類似の番組などの情報も見つけられるかも
ユーザに何も難しいアクションをさせずに、複数のメディアを連携させるという意味でこの研究は興味深い。言うまでもなくプライバシーの話は出てくるだろうけど、実応用サービスを早く見てみたいものだ。
2006年05月31日
ノークリックリンク
ノーク・リック・リンク? ノー・クリックリン・ク? ちがう、ノー no クリック click リンク link だ。
このページ No Click Links に行って、最初のリンクにマウスカーソルを置いてみてほしい。Javascript が on になっていれば、通常のブラウジングとちょっと違った動きが起こるはずだ。
この効果は、リンク先ページで公開されている Javascript を、動作を変えたいリンクタグより後ろの方で読み込むだけで追加される。
この Javascript のやっているのは、自身のロード時、ページ内の全部の <a> タグに、「1秒マウスを置いたらリンクをフェードしてリンク先へジャンプ」という処理を追加すること。これで、リンク上にマウスを置くことでジャンプするようになる。
じつは、同様のクリックしないユーザインタフェースを Flash で追求したものは前からある。dontclick.it (クリックするな)がそれ。
トップページの「Click Here」だけはクリックしないといけないが。その先はクリック無し。ちょっと不思議なメニューを体験できる。(クリックしないUIのデモサイトなので、間違ってクリックするとエラーになる。)
最初の no click links は、Javascript だけでこれを実現している。また、Firefox ブラウザの場合は、ブックマークレットとして他のページに後付でこの効果をつけることも可能だ。
クリックさせないユーザインタフェースが実用的かどうかはさておき、マウスが横切っただけで背後にいろいろなアクションを起こす、という分野はもっと活用されていいのではと思う。ボタンを押すオン/オフに加えて、押そうかどうかというためらいまで、データとして取ることもできるわけだし。
こういう仕掛けが入っていたとしても、リンク先に飛ばす以外のいろいろな処理を書くこともできるし、ソースや通信を監視しないとわからないので、じつはかなり活用されているが気づいてない、ということもあるのかもしれないなと思った。
[追記] などと書いた一ヶ月半後に出てしまった。押してないマウスの動きまでを記録するサービス ClickTale。
[関連] 人はどんなところをクリックするのか
投稿者 秋元 : 17:39 | コメント (1) | トラックバック
2006年05月26日
HTML構造のグラフによる可視化
[2006/5/28 追記] applet バージョンが公開されたので、自分のページのHTMLを可視化することもできるようになった。
論文にありそうなネタで、じつは同案多数かもしれないが,
Websites as graphs では、HTML の構造を要素ごとに色分けしグラフ化する作業を著名ないくつかのサイトについて行なったという。下はグーグルのもので、
以下のような色分けになっているという。
青: リンク (A タグ)
赤: テーブル (TABLE, TR , TD タグ)
緑: DIV タグ
紫: 画像 ( IMG タグ)
黄色: フォーム (FORM, INPUT, TEXTAREA, SELECT OPTION タグ)
オレンジ: 改行と引用 (BR, P, BLOCKQUOTE タグ)
黒: ルートである HTML タグ
灰: その他のタグ
元記事ではもっとたくさんの実例が出ている。
いくつも見ると、直感的に、サイトが無駄に複雑になっていないか、といったことがすばやくわかるようになったりするのだろうか。
任意のページを渡すとグラフ化するようなアプレットも考えているそうなので、それが出来たら自分のサイトについて試してみると何か気付きがあるかもしれない。
applet 版も公開された。Java applet が on になっている必要があるけど、リアルタイムで生成されていくグラフの様子はとても面白い。
また、作成したグラフを Flickr に特定のタグであげてね、という案内も載っていて、Flickr が成果物の手軽な共有場となっている。いろいろなサイトの描画結果はこちら。こうやって他所のサービスを組み合わせて簡単なコミュニティを作らせるところも面白い。
投稿者 秋元 : 14:02 | コメント (1) | トラックバック
2006年05月25日
ジェスチャーによるウィンドウ切り替え、without マウス
via digg
MacBook Pro を使った、ジェスチャーで仮想ウィンドウの切り替え、という動画が紹介されていた。面白い。
液晶の左右をポンと軽く叩くと、仮想画面がそれに合わせて切り替わる。とても直感的な操作だ。
最初、究極のユーザビリティテスト Eye Tracking(これがまたすごい面白いんだ)で紹介したような、内蔵カメラによる処理かと思ったけど、よく考えたらジェスチャーの位置はどうみてもカメラの範囲外だ。
他のセンサーを使ってるのでなければ、これは実現してるわけじゃなくて「こんなのできたらいいよね?」みたいなコンセプトデモなのかあ。
でも、もっと手前でのジェスチャーであれば撮影して認識というのもできそうだし、タッチパッドやトラックポイントではなく、キーボード上で指揮者のようにPCを操作する、っていうのもできるようになるかも。というかあったら使ってみたい。
# あおやまさん、こぐれさんから、MacBook Pro には落下検知のモーションセンサーがあるので、それを使ってるのかも、という情報をいただいた。MacBook をライトセーバーにする、というので使われているらしい。
[追記] またまた補足。オリジナルのページがあった。システムの書き換えと Perl スクリプトが公開されており、誰でもこれできるらしい。
Thinkpad の最近の機種についている同様の検知システム Sudden Motion Sensor の 解説 および Linux 版のドライバ
[追記] 2006.7.31 Thinkpad を叩いて Linux を操ろう、という解説記事が公開、って、IBM の プログラマーが DeveloperWorks でそれを解説するの!
投稿者 秋元 : 14:22 | コメント (1) | トラックバック
2006年05月12日
超極める!PHP の見本誌届いた
見本誌届いた。やっぱり面白い記事が多い。
発行日は 5月17日(水) ということだけど、早い本屋ではその前に並ぶこともあるかも。オンライン書店で買う人も、今注文すると発売日に間に合うかも。
投稿者 秋元 : 15:59 | コメント (2) | トラックバック
2006年04月26日
IE7 Beta2 がリリース
via TechCrunch
ベータ1のときにIE6が上書きされるとは思ってなくて大騒ぎしてしまったが、Internet Explorer のベータ2がマイクロソフトからリリースされた。
ベータ1で受けたフィードバックを元に、さまざまなバグ、特に CSS 関連のものをいろいろと直してきたということ。各ネットサービス運営者はIE7の本リリースに向けて動作確認が忙しくなってくると思う。
メニュー等が英語では嫌という人は、ベータ2の日本語版は2,3週後に出てくるということ。
[追記] 2006.10.19 IE7(英語版)正式リリース
2006年04月24日
使い捨てオーディオブック
via オーディオブック+プレイヤー+ヘッドフォンで34ドルから
今年のセンター試験でも、英語のリスニングに同様のメモリプレイヤーが使われ、受験生は持ち帰らされたという。メモリ別売だけど999円のmp3プレイヤーなんてニュースもあったし。
若い人だと気がついたときからあるのかもしれないが、昔はじめて「使い捨てカメラ」、というものを目にしたとき、何かの冗談かと思ったものだ。カメラ、というのは、日常生活で目にする(生活必需品で無い)ものの中では一、二を争う高級品で、一度使ったら捨ててしまう、などという発想はまったく出てこなかった。カメラの場合はプレイヤーではなくレコーダだけど。
あと、「使い捨てコンタクトレンズ」も最初は驚いた。今では使い捨てじゃないコンタクトを使ってる人のほうが珍しいのではないか。
そんなわけで、高い再生機器に取替え可能なメディアを入れる、のではなく、データのおまけとしてプレイヤーやレコーダをつけてしまう、というのは大きくビジネスを変える可能性があるように思う。
オーディオブックは作るのに人手がかかるから文字の本より高い、というのが過去の常識だったけれど、メモリを含め一式がさらに安くなっていくと、文字の本と逆転するかもしれない。車通勤の多いアメリカでは、書店でオーディオブック(カセットやCD)がそれなりに売られていたし、気がついたら本は読むのではなく聴くのが主流になっている、ということも文化によってはあるかも。
物の(サービスの、も)コスト変動をちゃんと把握せずに、それまでと同じものを作り続けてると足元をすくわれることもあるんだろうな。
2006年04月21日
CSS nite vol.7 に行ってきた
銀座のアップルストアで行なわれた、CSS nite vol.7 に行ってきた。
19:00 開始だけど、18:30 から Skype の知人が動画チャットのデモをするというので、それも見ようと早めにオフィスをでた、がしかし、18:30の時点で席は全部埋まり、立ち見状態。19:00 には立ち見でも部屋に入れないぐらいの大混雑となった。以前に一度 CSS nite に来たときも立ち見はあったけどこれほどではなかった、まわりの人の話を聞くと会を追うごとに参加者が増えてるようだ。いつもアップルストアだから関係深いのかもしれないけど、もっと広いところに移ってくれればなあ。
それで今回どうしても聴きたかったのが、サイバーガーデンの益子さんによる講演。
この方のWeb標準の教科書という本がとても面白く(といいつつ、まだ一部しか読めてないけど)、きっといい話が聞けるに違いないと思っていたからだ。
以前アメリカにいたときに一緒に仕事していた優秀なウェブデザイナーが CSS についていろいろ教えてくれたけど、上記の本で同じポイントについて書かれていることが多かったのもある。
講演の資料は太っ腹にも公開されている。
Web制作現場の対立を解消する! XHTML+CSSガイドライン作り
CSS をグループで作成・管理する際のルール作りについての解説で、それぞれのルールについて、どういう技術的な理由でそのようなルールにするのか、といったところまで解説されていて、たいへん参考になった。
僕の場合は、ウェブアプリケーション製品の負荷問題と、SEO の二つのポイントから、CSS によるレイアウトの重要性を痛感させられて、このあたりに興味を持っている、というのがある。CSS nite に来ている人たちは、普段よく行くプログラマーの勉強会やカンファレンスとはかなり異なっていて、見知った人も少なかった。
ここのところ、どのセミナーに行っても同じ人達とばかり会うことが続いていたけど、XHTML+CSS などの分野でも、これだけたくさん(200人ぐらい?)の人が熱心に勉強しに来てるんだなあ、というのが今回一番の感想。
2時間半の立ち見だったけれど、行ってよかった。その後 CSS Lite という懇親会もあったらしいのだけど、立ち見疲れと事前申し込みしてなかったのもあって帰ってきてしまった。デザインや CSS のすごい人にもサイボウズ・ラボに興味持ってもらえるにはどうしたらいいかねえ。
2006年04月20日
英語技術書シェア
O'Reilly のブログで、今出している技術書のジャンルと、前年度からの伸びを図にしたものが出ている。
O'Reilly Radar > State of the Computer Book Market, Part 1
緑色の明るいのが、増えているジャンル、赤いのが減っているジャンル。面積が全書籍にしめるそのカテゴリの割合を表す。
ジャンルはさらにサブジャンルに分けられている。
伸びている明るい緑は、iPod/iTunes, sql server, Ruby, Javascript, Google, Data Ana(lysis?), Adobe などか。解像度低くて良く見えない。ぐりぐりいじれる元のページは公開されてないのかな?
O'Reilly の本だけで、O'Reilly の営業エントリでもあるとは思うけど、業界全体の動向もそんなに違わないのでは。
2006年04月17日
MySQL が Solid を買収
zdnet の記事によると、MySQL が Solid を買収するらしい。
MySQL は、バックエンド側のストレージエンジンとして使っている InnoDB と BerkleyDB(Sleepycat) を立て続けに Oracle に買収されていた。買収されてもこれまでの契約もあるので、すぐにそれらが使えなくなるわけではないが、DBMS ベンダとして競合である Oracle が今後どうでるかわからないため、不安視されていたのも事実。
これで今すぐ何か変わるわけではないだろうが、近いうちに MySQL のストレージエンジンとして Solid が選択肢に入ってくるのだろう。
zdnet の記事では、MySQL がフィンランド発だと書いてあり、フィンランド勢が連合して反撃を始めた、みたいにまとめてあるけど、MySQL ってスウェーデンじゃなかったっけ? Oracle に買われた InnoDB はフィンランドの企業だったが。
2006年04月14日
究極のユーザビリティテスト Eye Tracking
Eye Tracking がすごい。技術がすごい。
まだ自分で試せるわけじゃないので、「本当にこれ実現してるの?」という気持ちもあるのだが。
動画デモを見てもらうとわかるけれど、変な道具や特別なメガネをかぶったりすることなく、ディスプレイを見ている被験者の目の動きを追うことができるシステムを開発した、と言っている。
被験者をカメラで映し、その両目の動きを分析することで、画面上で何を見ているかを追尾できているのだそうだ。
動画デモでは、ユーザの視線が青い線で、ユーザの視線が何かに注目している間は、青い円で、注目時間が長ければ円を大きく、表示している。
また、複数のユーザの視線データを集め、視線が多く/長く滞留しているところを、温度表示してみるというのもデモではやっている。中央に目立つように置かれた広告がまったく視線に止まっていない(笑)のは、予感はしていたが面白い。
最近の iMac のように、PC にユーザを撮るためのカメラがついてくるのが普通になり、今回の技術を積んだソフトウェアが広く使えるようになったら、これまでのようなサービス公開前にサンプルユーザで確認するユーザビリティテストではなく、実際にサービスを使っているユーザ(当然、本人の同意を得るようにはするだろうけど)のデータを集積し、その結果を元にユーザビリティ改善をおこなう、といったサイクルを作ることも可能になるかもしれない。
この技術にもっとも興味を持ってお金を払ってくれるのは、たぶん広告代理店だと思うけど、ウェブデザイナーやウェブアプリケーション開発者にとっても、恩恵の大きなサービスになりそうではないか。
[追記] 2006.06.08 こんなニュースが
Web や動画閲覧時の“目の動き"をデータ化、ビジネスに応用する「Web Eye」
投稿者 秋元 : 13:34 | コメント (1) | トラックバック
2006年04月13日
Google の音声検索特許
via tech.memeorandum
あらたに公開状態になった Google の出願特許の中に、音声で検索するインタフェースについてのものがあるそうだ。( CNET News )
パソコンで音声入力することは、特にオフィス内では、まだまだ普及しないとは思うけれど、検索ワードを入力するのがたいへんな状況、たとえば携帯電話、では有用だと思う。
アメリカにいたときは、すでに電話の自動応答システムが音声認識をかなり採用していて、プッシュホンで数字を入れれ宇だけじゃなく、「ビープの後にあなたのフルネームを喋ってください」みたいな入力をした記憶がある。
より広範囲な単語やフレーズに対して認識精度が向上すれば、話し言葉で尋ねて音声で結果が得られるという、うちの両親にもやさしい検索サービスが実現するだろう。
また、Google Maps が多くの新アプリケーションを生んだように、音声で検索できる、という新機能が実際に出てくれば、これまで出てこなかったアイデアで新しいアプリケーションも出てくるだろう。
2006年04月12日
非CSSのデザインをCSSデザインにする会社
XHTMLized では、一画面分のウェブページを送ると、一週間以内に XHTML/CSS で同じデザインを作り直して返送する、という単機能に特化した有料のサービスを提供している。
「非CSSのデザインをCSSデザインにする『ネットサービス』」だったらすごいなあ、と思うが、残念ながら人力。さすがにプログラム的にそれを実現するのは難しいと思う。
一般のサイト訪問者から見れば、CSS デザインであろうとなかろうとたいした違いはないが、提供者側からみた多数のメリットを考えると、今からサイトを作るときに CSS デザインにしないことは考えにくいだろう。
- コンテンツ製作者がデザインを気にする必要がなくなる(分業による効率化)
- デザイナーがコンテンツを気にする必要がなくなる(分業による効率化)
- 将来のデザイン変更にかかる工数の削減
- コンテンツ追加時のデザイン再利用(工数削減)
- 検索エンジンにコンテンツがより認識され、上位表示につながる
- デザインの分離により、音声読み上げブラウザなどでも理解しやすいコンテンツに
- 分離CSSのキャッシュによるページ表示の高速化
しかし、ウェブデザイナ側に旧来の製作手法しか知らない人が依然多いのも事実。ウェブ全体としては、CSS デザインへの移行は非常に緩やかだと言える。
ここで、サイトの代表的なページを一つ、XHTML/CSS 化してくれるこのようなサービスにまかせれば、現在の旧スタイルを、どのようにすれば CSS デザインに変更できるのか、自分のサイトで対比を知ることができるため、デザイナが覚えながら移行をするためにも非常に使えるのではないかと思う。
2006年04月11日
LDAP Super Expert に寄稿した
技術評論社の LDAP Super Expert に少し書かせていただいた。本日発売日。
僕の書いたのは、PHP からの LDAP サーバ呼び出しについて。簡単なサンプルを含んだ数ページ。
同僚の竹迫さんが、LDAP クライアントプログラミングの全体像、および Perl からの LDAP 機能呼び出しを執筆している。
本は、各言語からの LDAP サーバの呼び出し方法や、LDAP を使った大規模な認証システムの構築や運用についてなど、LDAP の実践的な知識が詰まっている。いい感じの記事がたくさん載っているので、僕もこれから読んで勉強しよう。
投稿者 秋元 : 11:10 | コメント (5) | トラックバック
2006年04月08日
子猫認証
スパム行為を行うロボットスクリプトを、正規の人間ユーザとどう見分けるか、ということで、「プログラムには(まだ)わからないけれど人間なら簡単にわかる」ような問題を使う、という方法はよく使われる。いわゆる CAPTCHA (キャプチャ)である。
CAPTCHA と言うと、まず思い浮かぶのは、ぐにゃっと曲げられたり上から線をかぶせられたりした文字列を入力させられるものだろう。機械読み取りでは認識できないように文字列を崩すことで、スクリプトの攻撃をある程度防いでいる。
しかし、特に意味のあるわけでもない読みづらいテキストを、投稿のたびに入力させられるのは、利用者にとってあまり楽しい作業とは言えないだろう。サービスがスパムで汚染されるのを防ぐために、仕方なく協力しているというところだ。
であれば、CAPTCHA の入力が、それなりに人間にとって楽しかったり、気晴らしになったりするほうが、そうでないよりはましかもしれない。
KittenAuth Test は、3 x 3 の 9枚の写真から、猫の写真だけを 3枚選択することで先に進めるような仕組みをデモしている。
子猫の写真が3枚、その他の動物の子供の写真が6枚、ばらばらに表示され、正しく子猫の写真だけを選べば、テストに合格したことになる。
実際には、子猫の写真のストックが少ないようであれば、出てきたイメージについて子猫かどうかを一通り教えてしまえば、写っている中身ではなくイメージファイルの特徴で突破してしまうスクリプトは書けそうだが。それとも、子猫( kitten )タグとかで flickr とかから持ってくるのかな。
[2007.08.06 追記]
マイクロソフトの研究者が「子猫認証というのを考えた」と発表したそうだけど、これはhotmailに適用すべく実装中、という話を書いた人がふくらませたのかなあ。
前からアイデアはあるし、サイボウズ・ラボでは実装まで公開してるよ。
投稿者 秋元 : 17:24 | コメント (4) | トラックバック
2006年04月04日
Google Maps API バージョン2による地図表示サンプル
Google Maps API のバージョン2が正式リリースでご紹介したバージョン2の API を使ってみた。
サイボウズ・ラボは全社員それぞれに遊び場用のサーバ環境をくれているので、(ほとんど使ってなかった)僕のサーバに置いてみた。
ちなみに、元の HTML は PHP 用の GoogleMapAPI というライブラリで生成したもの。こないだの開発合宿でちょっと遊んでみたので、生成されたバージョン1用のコードを、Google の移行ガイドに従ってバージョン2用に書き換えた。
一番大きな変更は、GPoint を GLatLng に(パラメータの順番も逆に)置き換え。あとはいくつかのメソッドが変わっているのでそれらの呼び出しを書き換え。で、なんとなくうまくいってる。もちろん、もっといろんな機能を使っている場合は書き換えも多くなるだろうけど。
上記のサンプルで、バージョン2用に読み込まれた Javascript のサイズは 1536バイト、バージョン1用が 2104バイト。減ってるけど「サイズが約半分」ってことはないなあ。何か間違ってるんだろうか。
投稿者 秋元 : 16:31 | コメント (3) | トラックバック
Google Maps API のバージョン2が正式リリース
via Google 公式ブログ
機能
- ライブラリ Javascript のサイズが約半分になり、読み込みが高速化
- 日欧米と主要都市で2段階細かな衛星画面が出るように
- 地図の角により広い範囲を表示するオーバービューマップを表示できるように(Yahoo! Map みたいなやつか)
- ユーザが拡張しやすくなった GMap2 クラスの追加
- 不要なオブジェクトを解放するメソッドの追加。IEでのメモリリークの解消
- デバッグログ機能の追加
- 緯度と経度の順番を間違えない新メソッドの追加
また、利用条件に二つ変更が。
- 呼び出し回数の上限が無くなった。ただし一日50万回以上の呼び出しがあるサイトの場合は事前に連絡してほしいとのこと。
- もし Google が API 経由で広告を入れるようなことがあれば、90日前に予告をするということ
バージョン2は、バージョン1との互換性を 99% 保っているということで、現在のコードも少しの変更で動くということだ。バージョン1は使い続けられるようだが、ある時点からデフォルトがバージョン2になる予定とのこと。
# インタフェースを変えて、古いインタフェースも保ちながらサイズ半分というのはすごいな。
[追記] 簡単な地図だが、v1とv2で作ってみた。
[追記] Google Maps Mania でも説明が
投稿者 秋元 : 09:46 | コメント (2) | トラックバック
4月5日は裸のウェブサイトデー
今年の4月5日を、第一回 Naked Day にしよう、という呼びかけのページ。
何を裸にするか、というと、各人のウェブサイト。4月5日は CSS を取り外して、生の HTML でサイトを表示することで、HTML が正しくマークアップされているか、文章のに応じた構成になっているか、などを考える日にしようということ。
コメントは 300 ほどついてるけど、世界のウェブサイトの数を考えると、ちょっと流行るようには思えないなあ。でも、きれいなマークアップについて考えようという企画はいいことではあるけど。
ウェブマスターへの啓蒙という意味で、もし普及すれば面白いとは思うけれど、自分のサイトがCSSの外された状態でどう見えるか、検索エンジンや音声ブラウザで閲覧している人にどのように把握されるか、を確認したければ、Google のテキストキャッシュを使う方法や、Firefox ブラウザの場合 Web Developer 拡張を入れて CSS を無効にする(または コントロール + シフト + S を押す)、といった方法もある。
2006年03月30日
YAPC::Asia 2006 Tokyo 終了
数値を持ってるわけじゃないので感覚的なものなんだけど、PHP や Ruby のユーザ増加に対して、Perl のユーザがここのところ増えている、という感じはあまりない。けれど、その状況下で Perl を追求している人たちにはすごい Hacker が多く、どんどん濃縮されてさらにすごさをましている、という印象を持っている。
あといくつかのセッションで Perl6 の文法の説明を受けていると、Perl6って相当いいんじゃないかと思ってきた。過去の知識も資産もない自分にとっては、後方互換性はもっと捨ててくれたほうがよりキレイそうだけど、それだとPerlを名乗る必要もなくなっちゃうか。
Perl に特化してないセッションも多数あり、勉強にもなった。Rubyist や Javascripter、PHPer も多数参加していて、それぞれの利用言語がオーバーラップしつつ、いろんな技術者のネットワークが張り巡らされている感覚もあった。初日の懇親会、二日目(帰りに近くにいた人たちと)勝手飲み会でもいろいろ面白い話を聞けて、非常に意義のあるすてきなカンファレンスだった。
開発合宿から続いたロードシリーズも今日で終了。未読のRSSやメールがたいへんなことに。明日からラボに戻ってがんばらないと。
2006年03月24日
LifeHacks PRESS, Web2.0 BOOK, 蘇るPC-8801伝説
新オフィスへの引越しで、通勤距離がちょっと長くなったんだけど、その延びた間に大きな本屋がいくつもあるので、出社前にふらふらと引き寄せられたり。ということで本日の収穫。
LifeHacks PRESS
うわさの GTD (Getting Things Done)本。仕事をこなしていくやり方についての指南本。百式の田口さんや javanews.jp の安藤さんらがそれぞれ得意な分野を書かれている。
GTD をどうやってソフトウェアツールに置き換えていくか、ネットサービス/製品で支援していくか、というところは、もともとサイボウズが得意としてきた分野でもあり、僕としても GTD 本自体や、他の GTD 的なサービスを注目して調べてきている。今週末に読み込ませてもらうつもり。
Web2.0 BOOK
サイボウズ本社/feedpath/ブログエンジン/有名ブロガーの小川さんらによる Web2.0 解説本。まだぱらぱら見ただけだが、現時点でのネットサービス全体の概況や動向を知るための、非常に良いまとめになっている。
日本の Web2.0 企業、のところで挙げられている会社が非常に少ないが、これは実際に少ないから仕方がない。米国はもちろん多すぎてスターウォーズの登場人物と区別がつかないぐらいだし、たとえば中国なんかでもいろいろあるらしいのに対して、日本で Web2.0 的な特徴を持つベンチャーが物を出してくるにはもう少し時間がかかるのかもしれない。
最近の動向をウォッチしている人にも役立つし、よく知らなくてこれから手早く追いつきたい、という人にもいい本だと思う。
あと一個、知らなかったのだが店頭で見てのけぞったのがこれ、
蘇るPC-8801伝説
こんな本が出てるとは知らなかった。すごいよこれ。木屋さんと内藤さんの対談とか。森田和郎インタビューとか。
マンガ家の赤松健が高校生にしてゲーム作家だった、というのも驚いた。「パラディン」ってやってはいないけど存在は覚えてるよ。すごいなあ。
あと、しれっと「Tiny Basic Newsletter(の表紙)」「Yo のけそうぶみ」が載ってるのがすごい。これ好きだったなあ。
当時のログインとか ASCII を読んでたマイコン少年にとってはぐっとくる内容である。若い人には通じないかもしれないけど。
投稿者 秋元 : 11:02 | コメント (5) | トラックバック
2006年03月17日
検索+ゴーストライタープログラム
Instant Article Ghost Writer は、あるキーワードに関して何も知らなくても、それっぽい文章を作ることができる、という有料サービス。
解説ビデオを見てみたが、おおざっぱに以下のような感じで進む。
- 書きたいキーワード(ビデオでは「危険を避ける運転(defensive driving)」)を指定
- 書きたい単語数を指定
- 生成
- キーワードを含む文章が様々なブログから一文ずつかき集められ、リスト表示される
- リストから不要なものを外す
- リストの順序を変更する
- いくつかの文章をグループ化する
- グループを並べ替えたりする
ビデオで完成した文章はそれなりにそれっぽい。ぱっと見た目はね。
「Professional Article を Short Time で作る」という売り文句は明らかに言い過ぎだが、スパムブログを作るには十分だろう。このツールは幸い英語用だが。
技術的に面白い点もあるので、まじめに使う方向で伸ばせば役に立つツールにもなるかもしれないが、それ以上に悪用が多いだろう。CGM(ユーザの手によるコンテンツ・メディア)を意識したサービスをやる場合には、集まったコンテンツのノイズを増やすものとして、ますます心配が増えそうだ。
2006年03月03日
言語ごとのコード比較
ハローワールド、ソート、素数を求める、8クイーンなど、よくあるお題について、いろんな言語でのコードを集めているサイトがあった。
同じ仕様を別言語で実装してるコードがあると、コードを見比べることで言語の違いがつかめていいかもしれない。
マイナー言語の使い手の人は、不明となっている箇所("?")を書いてあげるといいかも。
# PHP が無い。まあ C と大差なさそうだけど
Hello World をいろんな言語で、というサイトも存在する。こちらはもう、おどろくほど多くの言語での実装が揃っている。Postscript とか shell とかね
追記: 同じタイミングでこんなジョーク記事も。いろんな言語を女の子に例えている。いくつか流し読んだけど面白そう。たとえば Smalltalk は「彼女は決してアパートの外であなたと会おうとはしない。もしアパートが気に入ったなら、外に出ようなんて思わないはずよと言うのだ」。言語萌え? さすがに全部訳す気はしないけど。
追記2: また他のところから掘り出されてきた言語比較記事。取り上げられている言語はメジャーなものだけだが、その分長文での解説になっている。2004年に、amazon.com のエンジニアが amazon と各言語の関係も含めて書いたもの
投稿者 秋元 : 11:21 | コメント (2) | トラックバック
2006年02月28日
IPA 未踏ソフトウェア創造事業千葉PM最終成果報告会に行ってきた
IPA 未踏ソフトウェア創造事業千葉PM最終成果報告会に行ってきた。
サイボウズ・ラボでは未踏経験者やオープンソース開発者を優遇しているので、研究のアイデアを貰いに行くというほかにリクルーティング/会社紹介という動機もあるのだ。
4つのプロジェクトどれも意義のあるものだと思う。特に気になったのはアプリ開発もウェブ上で完結するウェブデータベースの Tuigwaa と、Ruby の次世代 VM と目されている YARV。
報告書を書きあぐんでいる間にいいレポートが上がったので詳細はそちらを。
Tuigwaa は、二人でよく作ったなあと思う。とても良く出来ている。データベーステーブルの作成、テーブルに応じたフォームの作成、管理者向けフォームの作成、テーブルの閲覧などが、ブラウザ上の操作からすべて開発できる。
で、こっからちょっと宣伝入るけど。Tuigwaa のよさがわかるだけに、知らない人に伝えたいことがあるのだ。
設計が最新ではないから、Ajax ばりばりの Tuigwaa の全機能とは言わないが、サイボウズ本社のデヂエという製品も、Tuigwaa のデモで紹介されたことと似たようなことはかなりできている。
Tuigwaa に興味を持ったり Tuigwaa のようなアプリケーションを触ってみたくて、今すぐ商用レベルのウェブデータベースアプリを使ってみたい(& 使えるとわかったら会社が買ってくる ^^;)人は、無料試用もできるのでぜひデヂエも試してみてほしい。社内 LAN でエクセルシートを共有できる製品、といえば多少は伝わるかな。
デヂエはほんといい製品なんだけど、サイボウズ本社の主力製品であるグループウェアの影に隠れがちで、そのすごさがまだまだ知られてないのが残念。未踏の報告会で Tuigwaa がかなりウケていたので、デヂエももっと好いてくれる人がいてもいいんじゃないかなと思う。
社内アンケートとか要望管理システム、回覧みたいなものは PC が使える人なら誰でも作って運用できるし。
投稿者 秋元 : 00:23 | コメント (3) | トラックバック
2006年02月23日
サムネイルの段階拡大縮小サンプル
写真をクリック、もっかいクリック。
setInterval で img タグの幅と高さの属性を段階的に更新。
2006年02月20日
prototype.js 早見表
このサイズは壁紙にしろってことかな?
2006年02月18日
Ajax 一周年
via Ajax Magazine
Adaptive Path の Jesse James Garrett が「こういうの Ajax って呼んだらどうよ?」(意訳)と言ったのがちょうど一年前の 2005年2月18日。
ということで感想を。
まだ Ajax という言葉ができて一年だったのに、ウェブ技術者にとってこれほど普通に使われる言葉として普及した、という驚きが一つ。本屋に行って技術雑誌を見れば、日本語の雑誌であっても使われていないものがないぐらいだろう。
提唱者の Adaptive Path 自身が、ちゃんと Ajax 的なサービスを一年で形にし、Google へ売却するまでになったことはすばらしい。この Measure Map の売却話も、Ajax 一周年だったのかという事実と並べるとおもしろい。
もう一つは、ブログ上で発表したことでも、後から見て歴史的(まあ、この Ajax のはインターネット/WWWの、ぐらいではあるが)な文章となることがあり、それは後々までいろんなところから参照され、日付や投稿の時刻までも残るということ。
2006年02月14日
Yahoo! UI Library はすごいね
via O'Reilley Radar
Yahoo! UI Library で、Yahoo! が実際に使っている Javascript のライブラリ集が公開されている。
Yahoo! のどこでこんなユーザインタフェースが使われてるんだろう? と思うぐらい、サンプルで見せられる UI パーツは豊富だ。それぞれの "Example" を見てまわるだけでもおなかいっぱいだ。
コアユーティリティ
UI コントロール部品
ドラッグアンドドロップなんかは、ファンタジースポーツで使われているのを見たことがあるので知っていた。複数のリスト間でアイテムの移動や並べ替えを行うときには使えるパーツだろう。
日本語カレンダーなんかも、いい感じで再利用できそうだ。
ライセンスは BSD License なので、かなり緩いといっていい。こんな良いものを BSD ライセンスで使わせてくれるなんて、太っ腹な会社だ。
追記: Ajaxian でも言及された
さらに追記: Slashdot でも
投稿者 秋元 : 14:34 | コメント (4) | トラックバック
2006年02月13日
従うべきでないプログラミングのアドバイス10個
Top Ten of Programming Advice to NOT follow
新人プログラマーにアドバイスを求められた筆者が考えた、「聞くべきでないアドバイス」のリスト。
10) 例外は使うな(by Joel on Software 等)
9) 負にならない値には unsigned int を使え
8) 実世界に対応したクラスを設計せよ
7) チームでコード記法を統一せよ
6) コメントをたくさん書け
5) public フィールドよりアクセサメソッドを使え
4) 一個しかインスタンスができないなら Singleton パターンを使え
3) 入力は寛大に受け付け、出力は厳しくせよ
2) 最初から重箱の隅までプログラムせよ。後でやろう、は実行されない
1) コードを書く前に設計せよ
7), 5) は聞いてもいいと個人的には思う。10), 8) は僕も聞きたくない。3) は聞きたくないけど実際には賛成せざるを得ない。あとは難しいところだ。
興味ある人は本文中の理由を読まれたし
2006年02月09日
デブサミ2006
Developers Summit 2006 で、勉強してくる。
2006年02月08日
ブラウザ幅に応じて変わるレイアウト
via clagnut
ブラウザの幅が狭いと2段、広いと3段になるようなページレイアウトをいくつか紹介している記事。
見てもらうのが一番早い。以下のページを開いて、ブラウザの幅を狭くしたり広くしたりすると、縦列の数が変化する。
Redesign Notes 1: Width-based layout
著者自身のサンプルは、幅によってはあまり美しくならないが、何段にも可変にできる。
画面の大きな人でも小さな人でも、それなりのページが返せるというのはいいかもしれない。もっとも、逆に表示サイズがどうであれ同じレイアウトになることを望む人もいるだろうが。
日頃、だいたいブラウザの幅なんて一定で使ってるので、こういうレイアウトのサイトがかなり普及してたとしても気づいてないわけだが。こうやってブログで特集されてはじめて気づいた。僕は横にスクロールさせるよりはこっちの切り替えのほうが好みかな。
この記事を読んでいたら、ちょうど今日 mixi.jp (会員のみ。招待制)がサービス追加をしたようで、右端に一列増えていた。ということもありなんとなく記録。
2006年02月02日
Ruby on Rails の普及度
Ruby on Rails の現況というブログエントリが出ていた。
- 最近 6ヶ月での Rails のダウンロード数が 3万回 (それ以前の合計が 1万回)
- 6ヶ月前、36ヶ国250人以上と見積もられたプロ Rails 開発者が、50ヶ国550人以上に(wiki 上の集計)
- 初版6千部の "Agile Web Development with Rails" は現在 2万5千部
- IRC の #rubyonrails 参加者が 400人ほどで、これは #php チャネルとほぼ同じ
と、ここまでは Ruby 系のブログに載っていた話だが、伸びているなあと感じる。
ちなみに、 1月現在の TIOBE ランキングでは Ruby は22位となっている。
# ちゃんと使える言語がTIOBE1~4位という自分は、単なるミーハープログラマーなのだろうか。。。
2006年02月01日
IE7ベータを入れたらIE6が上書きされてしまった
うわーうわー
IE7 のベータをインストールしたら、IE6 が無くなってしまった。IE6 のアイコンが全部 IE7 に置き換わった。
Firefox 使いでよかった。でも自機で IE6 での確認ができなくなっちゃったな。
あと、Slepnir とかの IE コンポーネントを使ってる人が IE7 を入れるとどうなるのかな。
ひょっとしたら IE7 のインストーラで注意書きがあったのかも。ちゃんと読んでなかったからもしあったら読み飛ばして悪かった。これ IE6 に戻すにはどうしたらいいんだろう。
IE6 を使い続ける必要がある人は注意して。
追記: コメントで教わった通り、[スタート][アクセサリ][システムツール][システムの復元]から、今朝のポイントを指定して復旧させることができました。結局、IE6 を使いつつ IE7Beta を試すことはできない?
さらに追記: システムの復元じゃなく、「プログラムの追加と削除」で「更新プログラムの表示」をチェックすればアンインストールできるとのこと。こっちのほうが安全っぽい。
投稿者 秋元 : 16:50 | コメント (15) | トラックバック
2006年01月19日
アルファブロガーを「もっと」探せ 2005 投票用エントリ
年末の Japan Blogger Conference 参加のお礼メール兼、アルファブロガー(A-Lister) の追加発掘投票への催促メールが来た。明日20日が投票締め切りとのこと。
いい機会なので今僕が一押しするブログを紹介がてら投票(トラックバックをうつと投票になるとのこと)する。
(1)職場の同僚に、「仕事やキャリアに役立ちそうなブログを3つだけ教えて欲しい」と頼まれました。 あなたはどのブログを薦めますか?
特殊な職場だし技術系に偏ってるけど。Bloglines の購読リストをみながら3つ選んでみた。今日の気分や最近の記事に影響されて選んでるかもしれないけど、読んで損のない3つ。
謎の秘密結社による匿名グループブログ。海外技術情報の宝庫。複数人で書かれているということもあるけど、情報のカバー範囲も鮮度もすごい。言いたかないけどこのブログより Rauru Blog 読んだほうが役に立つと思う。
「ブロガー個人を指定してください」ということなので、僕が一番好きなライターをあげるとしたら ultraviolet さん。
どちらも非常に勉強になる。僕のような超訳早訳翻訳エントリじゃなく、ご自身の意見や考察が多く含まれていて、またその部分が示唆に富んでいる。激しく劣等感を刺激される至高のブログ&究極のブログ。
(2)友達や家族に、「何か『面白いブログ』を教えてくれない?」と言われました。 あなたはどのブログを薦めますか?
かなり悩んだけどこっちは特に無し。
友達や家族はブロガーじゃないしネットもほとんど触らないので、ブログを読むことを薦める、というのは想像できない。
情報収集/交換/共有したいような人しかブログって関係ないのでは。一般人は Yahoo! は理解できても Google は使い方がわからないのと同じで、他人の書いた日記なんて読みたくないだろう。
ブログ界の中は内輪ウケ用語や業界用語が多すぎて(説明もなく「グーグル」とか書いたり)、そのまま見せて楽しく読める文章って少ないのではと思う。唯一、自分のブログを生存確認用に教えてもいいかもしれないけど、書いてあることを読んでもたぶんさっぱりわからないことだろう。
ブログ以外でもよければ、デイリーポータルZぐらいを暇つぶし用に薦めるけど。
以上。賞品の iPod 当たったら(当たる気でいるらしい)、会社ブログの場合会社のものになっちゃうのだろうか。。。
追記: 某所から聞こえてきた情報では、ブログについて何も知らなくても普通に読める面白いブログ、どうやらいろいろあるっぽい。単に僕が仕事や技術に絡むブログしか知らないというだけなのかも。ま、ちゃんと知らないものを推薦することはできないから結果は同じだけど。自分が悪い。
さらに追記: もう一個忘れていた。今 bloglines で巡回してて見落としに気づいた。もう遅いけど
Zopeジャンキー日記 の mojix さん
も3つに入れたい。4つになっちゃうけど、まあもう集計も済んでるだろうけど。
2005年12月05日
Javascript のみによるイメージ拡大鏡
via Ajaxian
ハンガリーから美しい Javascript の佳品。イメージの部分拡大するルーペ機能を、Javascript だけで実現している。
カーソルの上下で拡大率を変えられるし、左右ではルーペの大きさも変えられる。すばらしい。自分のページに組み込むのも簡単だ。
写真は フォト蔵 から まさと さんによる CC by による公開。ルーペで養老の滝のフォントを探求しよう。
追記: 2006-03-02 BubbleShare という写真共有サイトで、この効果を使った拡大鏡がついた (via TechCrunch)
投稿者 秋元 : 22:23 | コメント (1) | トラックバック
2005年12月03日
Ajax を使うべき 10 個のポイント
10 個ないじゃん。とりあえず数を書いとけ、ってのが最近の流行だろうか。
Ajax を使って意味があるのはどんなところか、Ajax によって事態が悪化するようなところはどこか、というのを考えて列挙しているエントリ。Ajax の適用箇所を悩んでいる人にはいい参考になると思うのでおおまかに紹介。
Ajax を使うといいところ
- フォームによる多量の入力
- 深い階層の木構造をたどらせるところ
- ユーザ間のコミュニケーションを行わせるところ
- 投票、「はい/いいえ」、評価ボタン
- フィルタやソートなどのデータ表示操作
- テキスト文入力時のヒントやオートコンプリート
Ajax を使うべきでないところ
- 非常に単純で、失敗が許されないフォーム
- ライブサーチなどの検索
- 基本的なサイトナビゲーション
- 大量のテキストの置換
- 大々的な表示の変化
- 無意味な Widgets (UI 部品)の利用
個々の「べき・べからず」を主張している理由はさまざまなので、特定の項目に対して異議や疑問のある方は原文の解説を当たられたし。著者は別途 Wiki も用意してこれに関する意見を集めている。
投稿者 秋元 : 14:03 | コメント (1) | トラックバック
2005年11月28日
AHAH (アハー)補足
昨日のエントリ Ajax は難しい? AHAH ならどうだ で紹介した AHAH だが、別に「AHAH が AJax を置き換える」とか「これからは AHAH だ」とか言いたいわけではないよ。
Web クライアント-サーバ間(の lazy な、とか、部分的な)データ伝達を考えたときに、Ajax というのは「XML であること」をけっこう重視して宣言された。
XML でデータを流通させるのにはやはり意味があって、同一のデータを基にクライアント側で表現方法を複数切り替えるとか、描画にクライアント側のマシンパワーを積極的に使いたいとか、であれば XML ぜんぜんオッケー。また、サーバ側から提供される XML データを、広く公開して他のクライアント(や他のサーバ)でも使ってもらおう、というときも、標準である XML を使うことの意義は大きい。AHAH でそんなもの提供したら、読む側は独自 HTML を読むための HTML パーザを使わなきゃならなくなる。
データも公開するけど、関係するデータ利用者のほとんどが Javascript だった場合、JSON みたいな話が出てきて、クライアントがそのまま使える形にすることでクライアント側の手間を省くのに成功している。なんでも XML は止めて、実用的に考えようよ、というのが JSON だったと思う。
AHAH もそれと同じことで、XML であることや JSON であることに意味が無いようなデータに、無理矢理複雑なデータ構造を使うのは止めたほうがいいんじゃない、というだけのことでしかない。誰も途中でそのデータを横取りせず、送られたものは結局表示するだけ、だとしたら、サーバ側で整形したものをそのまま返したほうが楽じゃん、という。ようは適材適所、ということだ。
「Ajax といいつつ、部分ページを送ってるだけなんだよなあ」というようなことに後ろめたさをこれまで持ってた人たちがいたとしたら、AHAH という定義やその理論的な補強をするページが存在することは、いいことなんじゃないかな。
投稿者 秋元 : 17:48 | コメント (2) | トラックバック
2005年11月27日
Ajax は難しい? AHAH ならどうだ
AHAH は Asynchronous HTML and HTTP の略で、Ajax の Javascript と XML の部分を素の HTML に置き換えた、Ajax のかけそばみたいなものだ。
AHAH (アハー、と読むのだろうか)は、Ajax の簡略版と言える。提唱者の主張するその特徴は、
- XML スキーマとか考えないことでデザインが高速にできる
- 現行の HTML を再利用でき、新たにウェブサービスを作る必要が無い
- すべてのデータはブラウザで見える形でやりとりされ、デバッグやテストが簡単
- HTML はページの DOM に直接埋め込める形で返されるので、パーズが不要
- HTML なので、デザイナが CSS で直接フォーマットできる。XSTLT でプログラマーが整形するよりいい
- 処理はサーバ側で行われるので、クライアント側でプログラミングは無い
サーバ/クライアント間のデータ転送を、無駄に XML や JSON などで行っているケースは、Ajax の利用ページの中でもそれなりにありそうだ。この AHAH のようなケースも、Ajax の一例と言ってしまっていいと思うが、もっと楽できるところは楽しようよ、という提言としての意義があるのではないか。
2005年11月25日
銀座アップルストアで Goodpic さんの講演を聴く
第八回XML開発者の日 の懇親会も興味あったのだけど、夜は別の用事を入れていたのでそちらへ移動。隣の駅だったので歩いて移動したらちょうどよい時間だった。
いつもブログを読ませていただいている Goopic さんのブログで始める自分のための情報整理という講演。
XML 開発者の日では平田さんがお話され、夜の講演では goodpic 金子さんと上ノ郷谷さん(Hinagata の人。Six Apart に入社されているとは知らなかった)、と、Six Apart 社づくしの日だった。このブログも MT で書いてるし。
場所が場所で、一般の人も多そうだったので、講演の内容はブログに関する基本的な紹介が中心。MT + Bloglines + del.icio.us の組み合わせで情報収集してブログ書いてますよ、というお話で、これは僕もまったく同じ組み合わせなのだった。金子さんの del.icio.us の URL が紹介されたのがよかった。Bloglines で購読しようかな。
第八回XML開発者の日
第八回XML開発者の日 に行ってきた。
メモは取ったのだが、すでに詳細なものが上がっているので略。そちらを読まれるといいだろう。
今回 REST と Atom PP がお題だった。ちょうど、サービスの API 公開はどうやってするのがいいのか、といったあたりをラボで調査していたため、他の人がどう考えているか、どのような選択肢があるか、といったことを聞けてよかった。
海外では Movable Type がそれほど圧倒的ではない、という話に驚かれている方も多かったようだが、Trackback を受け付けるブログがほとんど無い、というほど無いとは個人的には思えなかった。このブログでは引用元が海外のブログでも気にせずトラックバックを打っているが、日本ほどではないけどトラックバックを受け付けているところもそこそこあるという印象なので。
2005年11月22日
SSE (Simple Sharing Extensions)発表 - 次世代 RSS となれるか?
via TechCrunch
SSE (Simple Sharing Extensions) とは、一方向の通知を実現する RSS に対して、最低限の拡張によって双方向の同期を実現するもの、ということらしい。
マイクロソフトの CTO 、Ray Ozzie が自身のブログでこの SSE 発表について解説している。
このブログ記事によれば、SSE によって、家族間でスケジュールのアップデートを共有することができるようになるという。その際に、プライベートなスケジュール、共有スケジュール、公開されたスケジュールをそれぞれ適切な公開レベルのまま扱うことができる。スケジュールは一例で、アドレス帳の中の共有エントリなどについても同様に、個人アドレス帳アプリケーションの中から共有されているアドレスを更新すると、その更新が共有相手側にも伝えられてシンクロナイズするようなアプリが作れるという。
「あの」マイクロソフトが提案する仕様だが、ライセンスはクリエイティブ・コモンズ、具体的にはこれで、自由に使っても後でマイクロソフトから利用を禁止されたり利用料を請求されたりすることはなさそうなライセンス。
レイ・オジーは、RSS の持つ簡単さとオープンさが RSS を普及させたことを考慮した上で、SSE をできるだけ簡単な仕様に押さえたと書いている。実際に、ここ数週間で、マイクロソフトの複数の製品開発グループが、この SSE のプロトタイプ実装やデモを作成し、それらが相互に働き合うことを確認したそうだ。
また、RSS の父である Dave Winer にも協力を要請し、彼の要求で OPML のほうにもこの SSE を適用できるようにしたとのこと。デイブ自身のブログでも SSE について述べられている。
とりあえず彼らの売り口上を読んで、非常に気になっている。シンクロナイズ用のデータ仕様といえば、SyncML なんてのも前からあるわけだし、はたしてこの SSE のどこがすごい/簡単/普及しそうなのか、仕様書を読んでみるとしよう。
# 最初みたときに思ったんだが、SSE といっても、Pentium III とかに載ってる、浮動小数点計算を早く処理するアレじゃないよ
追記: いちおう仕様書を読んだ。メモを末尾につける。ほんとに素の RSS を保ったままなので、この拡張情報を入れたとしてもこれまでと同じ RSS として問題なく動く(はず。いいかげんなパーザを使ってるところはダメかも)。その上で、RSS-SSE を解する複数のサイト間で、更新情報をシンクロナイズさせることができるということになりそうだ。
簡単とはいっても、扱う問題がこれ以上簡略化できないので、これをライブラリに落とすのは多少面倒そうだ。マイクロソフトは社内でいろいろ試しているから準備はできているわけだが、各スクリプト言語など向けのライブラリが揃って遊べるようになるのが普及への鍵かと。
カレンダーやアドレスの共有という点で、非公開にするための新たな仕組みがこの拡張の中に含まれているわけではない。RSS の認証については、これまで同様 RSS の下のレイヤで考えないといけない。
サイトA とサイトB が、お互いの SSE フィードを購読しあう。SSE フィードには、更新されたとか削除されたという拡張情報がつくため、各サイトでは相手サイトで行われた変更を取り込んで反映させることができる、ということ。 (仕様書 1.3)SSE の拡張エレメント(2)
拡張がある場合のトップレベル要素 sx:sharing (2.1)。関連フィードを示す sx:related (2.2)。完全なフィードと更新情報だけのフィード(2.2.1)。外部を指す集約フィード(2.2.2)。更新を伝えるための sx:sync 要素(2.3)。更新時刻を時系列で保持する sx:history 要素(2.4)。更新情報 sx:update 要素(2.5)。
順序情報を気にしない更新と、順序を保つように動かなければならない更新がある (3.1, 3.2)
アイテムの新規生成(4.1)、更新(4.2)の流れ。複数サイトでの同時更新(4.3)と、どの更新を優先させるかのルール(4.4)。
オプション要素 sx:conflict による衝突の解決(オプション。 5)
2005年11月18日
どっちの言語でショー
Web 2.0 Tournament で、ウェブ言語とかデータベースとかウェブサーバの比較記事へのリンク集みたいなものを作っている。
「Python と Ruby ってどっちを使うといいの」みたいな疑問が出てきたら、紹介されている各リンク先の記事を読んで、それぞれの強み弱みや比較のポイントがある程度見えてくるかもしれない。
比較記事が紹介されているのは、以下の対決。
ASP.Net vs PHP
PHP vs Python
PHP vs Ruby
Python vs Ruby
Python vs Ruby vs Perl
Ajax vs Flash
mySQL vs SQL Server
SQL Server vs Oracle
SQL Server vs Oracle vs mySQL
IIS vs Apache
Apache vs. Lighttpd
Web Server Cage Matches
「なぜ我々は PHP を捨てて Ruby に移行すべきなのか(例だよ例)」みたいな説得をする必要がある人は、手っ取り早くまとめがわかっていいのでは。
僕は各リンク先までは読んでないけど。比較が必要になったときに読めばいいや。
、、、といって結局読まないに一票。
2005年11月11日
Java One で気になったトピック (1) サーバサイド編
JavaOne Tokyo 2005 でいろいろ仕入れてきた知識のまとめ。
全体的に、「Java SE 5 の Annotation 取り込みました。結果楽チンになりました」というものが多いけど、実際にコードサンプルを見せられると、威力は明らか。C# の人とかからすれば「いまさら」なんだろうけど。
EJB3.0
- Annotation で、すごく簡単に書けるようになった -> コードサンプルを見た感じ同意
- Hibernate などからいいところを見習った
Shale
JSF の拡張。Struts の反省を生かし Struts の McClanahan が作っている新フレームワークJAX-WS2.0, JAXB2.0
- EE5 や SE6 で内蔵される
- JAX-WS2.0 での RESTful のサポートとか
- java.net で開発版公開されているので、すぐ試せる
StAX
- DOM, SAX に続く第三のパーザ
- 軽い処理、一部だけを抜き出す処理が楽に書けそう
Java EE 5
EJB3.0, JSF1.2, JAX-WS2.0, JAXB2.0 なんかを含む。これまでの反省から、各技術要素のばらばら感を減らすようにインテグレーションを深めているとのこと。20061Qリリース予定。Project GlassFish
- Sun がメインで作るオープンソースアプリケーションサーバ
- Java EE 5 を先取りして遊べる
Sun Java Studio Enterprise 8/Sun Java Studio Creator 無料公開
こんなん無償にしちゃっていいのかね。
投稿者 秋元 : 19:34 | コメント (2) | トラックバック
JavaOne Tokyo 余談
JavaOne Tokyo 2005 の感想を書きたいが、立て込んでいて(3日フルに行ったからなあ)ちょっと書けない。とりあえず一点、Java と直接は関係ない話だが。
arclamp.jp の鈴木雄介さん(いつもブログを読ませていただいている。Java の最新技術や開発技法に興味のある人はチェックして損はないブログ)の発表で、プレゼンテーション中のソースコード片の中に発見してしまった。 "regist" は間違い。詳しくはこちら「regist という英語は無い」を。
発表自体はとても良かった。Ajax, Web2.0 界隈とサーバサイド Java の関係って、他のスクリプト言語に比べて距離を感じることがある(特に日本で。英語圏には物があるけど日本に紹介されないことも多い)が、Java でも当然 mash up はできるし、使う技術をうまく選べばけっこう楽にできそう。
プレゼンとソースの regist は、あっという間に修正していただいた。小うるさい指摘につきあっていただいて感謝。
ブログには書かなかったが、先月も同じ東京国際フォーラムでの別の展示会で、デモプログラムのボタンに"regist"と書かれていてその場で指摘。毎月のように regist に遭遇している。
まったく英語がわからない人なら辞書を引くだろうけど、updater から update を、creator から create を類推できるような英語勘のある人のほうが引っかかる落とし穴なんではなかろうか。
# regist 問題については僕のライフワークだと思っている。いや、冗談抜きで。
投稿者 秋元 : 11:54 | コメント (2) | トラックバック
2005年11月09日
JavaOne Tokyo 2日目終了
へろへろっす。でも楽しいっす。明日もがんばろー。
JavaOne 終わって時間できたら、JAXB の新しいやつと StAX、あと NetBeans も触ってみよう。他にもいろいろあるんだけど。もう Java SE のアップグレードはいいよ、と思っていたが、いつのまにか 6、そして 7 を待望している自分が。
まとにかく、カンファレンスの類はモチベーションアップに非常にイイ!! と思った。
# しかし、2日にして Bloglines の未読状況がたいへんなことに。。。
投稿者 秋元 : 22:26 | コメント (1) | トラックバック
2005年11月04日
ユーザが期待するページデザイン (クリックされやすいネット広告 ^^;)
Examining User Expectations of the Location of Web Objects では、304 人への聞き取りを基に、ウェブページのどこに何があると期待されているか、を調べている。
ウェブサイトに置かれる(コンテンツ自身以外の)5つの要素は以下、
- サイト内へのリンク
- 他サイトへのリンク
- ホーム(トップ)に戻る
- サイト内検索
- 広告スペース
それぞれについて、サイト内へのリンクは左端にあると思われていることが多い、といった結果を、賛同者が多いと色が濃くなるグラフで表している。(各グラフはリンク先の記事を参照)
ページの最後には、すべての調査をまとめたグラフがあり、どこにどの要素を配置すれば、「よりユーザが意表をつかれない」デザインにできるかを考える参考にできる。これはウェブサイトを設計する際の重要な知見の一つと言えると思う。
トップへ戻るリンクが左上、というのは、わざわざ言われなくても今ではほとんどのサイトがそうしているだろう。ただ、ページ最下部の中央にも、同じくらい、トップへ戻るリンクを期待している人がいる、などといったこともわかる。
僕は、まったく別々に作られた様々なアプリが、一つ使えれば他も見よう見まねで使える、というのがブラウザベースのアプリケーションの大きな利点だと思っている。なので、こういった配置情報も、ユーザがウェブアプリを操作する際の違和感を軽減するための重要な要素だろう。
何か新しいウェブサービスを開始する際には、こういった典型例から外れないデザインが重要だと思う。
一つ面白いのは、(5) の広告配置(Figure 5)。ユーザは、「このあたりには広告がよく置かれる」と思うエリアがあるわけで、そういう場所に置かれた広告は、より簡単に無視されやすい。広告があると思いにくい場所、そういう「意表をついた場所」に広告を置くことで、思わず広告を読ませたり、クリックさせたりできるのではないか、みたいな話も書かれていた。上がその図。白いあたりが「まさか広告だとは思わなかったよエリア」、ということに。ココ重要。
投稿者 秋元 : 14:02 | コメント (2) | トラックバック
「オープンソースソフトウェアの作り方」がオンライン公開されている
Producing Open Source Software
副題: How to Run a Successful Free Software Project
名前の決め方からはじまり、ライセンスの選定、仕様の決め方、バージョン管理、ユーザからの意見の集め方、お金の集め方、メンバー間のコミュニケーションやプロジェクトの運営方法などを一通りまとめている。
2005年11月02日
JavaOne Tokyo 行くよ!
もう4年間も仕事では Java 書いてないけど、サイボウズ・ラボの Java 擁護派としてもフル参加でいくよ。よろしく。
偶然、友人がスピーカーとして来日することもわかった。Sun の Roberto Chinnici (こんな人)で、有料セッション"JTSJ004-02 Next-Generation Web Services in the Java Platform" にて JAX-WS 2.0 の解説をするようなのでこれも聴講(直接セッション概要へのリンクが張れない。SEO 的には問題ありなサイトだなあ)。楽しみだ。
追記:
偶然の再会を果たした Roberto は、初日に 2 コマ話して放免となった。初日の夜に、銀座でしゃぶしゃぶを食べた。しゃぶしゃぶは初めてということだが気に入ってもらえたようだ。
JavaOne 出張に合わせて休暇をとったということで、今頃は地方をまわって日本観光を堪能しているはず。
2005年11月01日
Google が OpenOffice に開発リソースを投入
via cnet
Google が、OpenOffice のための技術者を雇う予定を明らかにした。
Sun と Google の提携が発表されて一ヶ月になる。OpenOffice は Microsoft Office のオープンソース対抗であり、Google と提携した Sun は OpenOffice をベースとした StarOffice という製品を売っている。
Google は、元々、オープンソースに対してそれなりに支援をしているため、技術者を数人貼り付けてオープンソースプロジェクトに投入すること自体は目新しい動きではない。IBM をはじめどこでもやっていることだ。
OpenOffice への関与が、Ajax Office、ブラウザで動くオフィススイートを目指しているとは僕は思っていない(OpenOffice のインストーラは 80MB あり、そのロジックをウェブベースアプリケーションに持ち込むことは非常に難しいと見る)が、cnet news でも指摘されているように、OpenOffice で採用されている OpenDocument 仕様をサポートしたウェブアプリを検討している可能性はある。
その何かは、Ajax Office そのものではなく、Google の強み、インターネットによる共有や検索、を生かしたものになるのではないか。
一太郎の Open Document 対応予定も発表されたことだし、今後、Open Document という規格を軸に、ネット上のサービスとクライアント側のオフィススイートの距離が縮まっていく動きが見られるのでは。
2005年10月29日
できる! クラスタリング/RAID
... RAID5 のあたりがちょっと苦しい気がするが。
2005年10月24日
新登場のフレームワークをいくつか
なんだか次々と新しいオープンソースフレームワークが出てくる。出ないよりいいけど、どれかが定番になってほしい気もする。Rubyist は Rails で決まり、なんだろうけど。
Symfony
WASP
この二つは PHP5 専用。PHP4 との互換維持を気にしなければ、PHP でも他のスクリプト言語と同じレベルのフレームワークは作れると思う。なのでこれらには期待。
Symfony のほうは、Mojavi3 から分岐したプロジェクト。DB ドライバに Creole、O/R マッパーに Propel、ビルドに Phing と Pake を使っている。pear を使って簡単に手元にインストールできる。コマンドラインでウェブアプリの雛形を生成するあたり、Ruby on Rails の影響が大きそう。
WASP は、DB_DataObject や HTML_Template_Flexy など、PEAR を多用したフレームワーク。こちらも Phing を利用。
RIFE/Crud
RIFE 自体は新登場ではないが、Java による less programming を目指したフレームワーク Rife の新バージョン 1.2 とほぼ時期を合わせて、普通の Java クラス(POJO)をそのまま使って CRUD (Create, Read, Update, Delete)のためのコードを自動生成してくれる RIFE/Crud モジュールが登場した。
RIFE は、Ruby on Rails の「15分でアプリができる。開発速度は Java の 10 倍」への反証として使われたことで有名。
2005年10月22日
PHP 勉強会
恵比寿での第 5 回 PHP 勉強会。Ajax パワーポイント Presentacular で書いたプレゼンを発表。全員参加で、一人3分ずつ、PHP との関わりや最近注目していることなどを話すもの。
今回の会場は 100 人は入りそうな立派な会場
前回参加したとき会った人もいるが、はじめて参加された方も多く、それぞれが業務や趣味でやっていることの中身が多岐に渡っていて面白い。
この後は有志による飲み会に参加する予定。
投稿者 秋元 : 16:02 | コメント (2) | トラックバック
2005年10月20日
Ajax 使ってますか?
回答数は763
1. Ajax の利用状況
Ajax を使った製品/サービスを出荷/リリースした 31.2%
Ajax を使った製品/サービスを開発中 32.8%
ま、これは Ajax のブログをウォッチしてるような人達のアンケートなので。。。
2. 使ってる言語
Ajax は PHP と使ってる 40.2%
Ajax は Java と使ってる 35.1%
以下、.NET, Ruby が続く
3. 使ってる Ajax ライブラリ
ライブラリは使わず、ゴリゴリ書く 40%
Prototype 23.1%
Script.aculo.us 17.7%
以下、DWR, Dojo, Rails, Ajax.NET, Rico, Sajax, ...
やっぱゴリゴリ書いてるのか。でもあるものは使いたいよなあ。
2005年10月19日
Ajax パワーポイント Presentacular
Ajax オフィスツールで、「Ajax プレゼンテーションとして挙げられている S5 は、べつに Ajax 使ってないけどね」と書いた。しかし、Ajax で使われるライブラリを S5 に適用した、Ajax 風プレゼンツールが登場した。
日本語でも問題なく動くことを示すために、サンプルを作ってみた。ちょうど、今週末の PHP 勉強会で各自3分の発表があるので、それを題材としている。
S5 では、index.html 一枚に HTML で発表内容を書き込んでいくだけで、スライド式のプレゼンテーションを作成することができる。WYSIWYG な人には生の HTML を編集するというのは耐えられないだろうけど、テキストエディタ派の僕としては、編集するのもできたファイルも軽く、発表したものもそのままウェブで公開できる S5 は好きで、プレゼンするときはこれを使っている。(もっとも、日常プレゼンする機会はほとんどないが)
Presentacular では、Ajax アプリケーションで使われることの多い scriptaculous の、動的表現に関わる機能を、この S5 に追加している。
サーバから動的なデータの後読みをしたりしているわけではないので、狭義の Ajax アプリとはいえないが、この Presentacular のようなものに、ブラウザベースでのオーサリングをつけていけば、Web2.0 時代の Ajax プレゼンテーションツールとなるだろう。
まあ、HTML を編集する今の方式では、図や表を入れようとするとそれなりに苦労が生じるが、軽いプレゼンが流行していることもあるし、じつはプレゼンはこういったもので十分いうケースもあるのではないだろうか。
# Presentacular のソース一式をダウンロードして展開した上に、上記のプレゼンの HTML ファイルを上書き保存すれば、上のプレゼンはローカルでも再現できるし、HTML を書き換えて自分のプレゼンも作れる。簡単なのでぜひ遊んでみてほしい。
2005年10月04日
LEGO遊びもつきつめるとこうなる
真剣に遊ぶってすごい。マック用のソフト Bricksmith は、レゴブロックの設計をするための支援ツール。
仮想空間上で試行錯誤することで実作業での手戻りを防ぐのは CAD の考え方だ。ソフトウェア開発もすべて仮想空間内での出来事とは言え、ドローイングツールや紙ベースでのプロトタイピングは後工程のずれをあらかじめ防いでくれる大切な工程だ。
Parts として別々に組み合わせた中規模のブロックを呼び出せるようになっているようだ。これは、ソフトウェア工学における分割統治と通じるものがある。
レゴといえども、巨大な作品を作ろうと思えば、いきなり手元に近いブロックを適当にくっつけていって成せるものではない。僕の4歳の甥がブロック遊びをするのを見ていると、まさにこの適当な感じで、これでは大きなものをちゃんと作ることはできない。彼の作品が進化するのは学校や家庭でもっといろいろなことを学んでからとなるだろう。しかし、こんなレベルまで行けるかどうかは、大人でも設計というものが仕事に絡んでくる人ではないと難しいのかも。
2005年10月03日
Ruby on Rails の実運用プロジェクト一覧
80個ぐらいリストに載っている。
- 新しいサービスである(Rails 自身が若いからね)
- 新しい技術に敏感な人が作っている
ということで、Geeky なサービスが発見できるかもしれん。個々のサイトは未チェックだが。
2005年09月16日
JUnit4 の変更点
IBM developerWorks で、An early look at JUnit 4 で、JUnit の Java 5 対応版 JUnit 4 がどんな風になるかが紹介されていた。
- テストメソッドはアノテーションにより判別されるため、テストクラスの継承や test* というメソッド名の制約は無くなる
- setUp や tearDown もアノテーション。テストセット全体にかかる初期化や終了にもアノテーションが用意される
- 例外のテストがアノテーションで指定できる
- テストのコメントアウトができる(テストを飛ばしたことはちゃんと記録される)
- テストのタイムアウトを指定できる
- 配列を比べる assertion の追加
これらの変更を踏まえてテストクラスを書いてみると、これまでの JUnit テストケースに比べて格段に楽になってると思う。メソッドの名前付けについては必要とされなくてもこれまでのコンベンションを続けてもいいような気はするが。
現時点で開発中の JUnit 4 は CVS からチェックアウトして試すことができる。
2005年09月15日
スクリプトの exe ファイル化ツールとそのマーケティング的意義
RubyScript2Exe という、Ruby スクリプトを Windows の .exe ファイルにするツールが出ていたのを見つけた。(Linux や MacOSX の実行ファイルにもできる)
この手のラッパーとしては、Java でも Exe4J, NativeJ, JexePack などいろいろある。JSmooth などは以前試したことがあるが、無料のわりに便利に使うことができたという印象がある。
この手のツールは、要するに、作成したアプリケーションと一緒に、アプリケーションを実行するためのインタプリタも一緒に配ってしまおう、というラッパー作成ツールだ。
たとえば、Ruby インタプリタや JRE などを zip ファイルとして同梱し、「任意の場所に展開して、○○.bat を実行してください」でも同じことは達成できるんだが、この「zip を展開し」とか「○○.bat を実行し」という手順の合間で、ぼろぼろとアプリを使ってくれる人は減っていく。
zip を展開したりバッチファイルを実行したりするぐらい、ソース持ってきてパッチを当てたり make を走らせたりするプログラマーという人種から見れば、ほとんど無きに等しい所作だが、アプリケーション、特に商用アプリケーションを作るのであれば、一般ユーザの視点に立って、アプリケーション起動までのステップ数をいかに減らすか設計していくことが重要だと思う。
簡単インストールに命をかけるサイボウズ製品も、あくまで .exe インストールやインストール後の自動起動にこだわっている。また、ウェブサーバがなければ同梱したウェブサーバを入れてしまうし、DBサーバについても、同梱(Garoon2)だったり内蔵(その他)だったりと、完結した「一つのアプリケーション」としか見えないように工夫を凝らしている。
JSmooth + Jetty + HSQLDB とか、 RubyScript2Exe + Lighttpd + SQLite とかをうまく組み合わせると、製品をより簡単に多くの人に届けることができるかもしれない。
# Ruby でかかれた DBMS ってあるんでしょうか? > Rubyist な方
追記:
国産のExerbは? と奥のほうから指摘をもらいました。日本で同様の製品がありましたね。不勉強でした。
# Ruby で書かれた DB は、Java/HSQL との対象性を考えて思いついただけで、実用上は SQLite とかで問題ないと思います。
投稿者 秋元 : 11:51 | コメント (2) | トラックバック
2005年09月13日
Ruby Tシャツ
Rails の流行もあってなんだか勢いのある Ruby だが、RubyStuff という Ruby グッズのオンラインショップが、かなり挑戦的な Ruby Tシャツを売っているのを発見。
こんなんとか、
こんなんとか、
こんなんとか。
ま、面白くていいけど。
Java ファン(最近触ってないけど)としては、あえて Java 禁止シャツを着るというのも洒落てていいかもしらん。
2005年09月12日
Atom Publishing Protocol の用途と将来
2006 年のネット開発に向けて覚えるべき技術 のコメントで、Atom PP が何に嬉しい技術なのかいまいち掴めていないため、自信のない書き込みをしたところ、kwmr さんから Yoshimatsu さんの面白いブログのエントリを紹介いただいた。
バックエンド側からの情報注入の口として Atom Publishing Protocol は重要になるだろう、という話。
個々の企業から情報を提供させて、それらをまとめて提供する「場」を作ることで生計を立てているネットサービスというのがある。Yoshimatsu さんが言及されている Amazon はもちろんそうだし、Kakaku.com , ぐるなび, Home's なんかもそう、 Vector とかも提供者に個人が多いが同様ではないか。
これらの情報集積型ネットサービスは、当初は運営者が手作業で情報を入力したり営業をかけていたものが、情報量の増加とそれによるユーザ数の増加に伴って力関係が逆転し、今では情報提供側がお願いして/料金を払ってでも載せてもらうという形になってきている。これらのサービスで検索されないということは、ネット経由で探しているユーザ達にとっては世に存在しないも同様だからである。
当然、これらのサービス運営者達が情報を提供させるためのフォーマットやインタフェースを整備しているのは間違いないだろう。PC ショップはともかく、町の不動産屋やレストランのオーナーに CSV だの XML だのを直接書かせられるはずもない。実際にどうやっているのか知らないが、整備されたデータ更新専用のウェブサイトなり独自の PC クライアントなりが提供されているはず。
では、そういった情報注入側のインタフェースに関して、Atom PP 対応が進むか、と聞かれると、サービス側にあまりメリットが無いのではないか。新しく作る際に、都合のよいライブラリが揃ってるから、という理由で Atom PP を採択することはあるだろうけど、もし既存の独自プロトコルを使っているなら、それを Atom PP に置き換える意味までは無いように思う。
サービス提供側にしてみれば、同じデータを競合のところに簡単に持っていかれては困るわけで、たとえば Kakaku.com に価格情報を登録するインタフェースが Atom PP としてオープンになっていたら、Kakaku.com の競合サイトは「Kakaku.com と ○○ と △△ に一括登録できるクライアントツール」みたいなのをより簡単に作って配れてしまうのでは。ま、もちろん、クローズトなプロトコルであっても同様のツールは作れるだろうので、それだけで参入障壁とはいえなくても。
投稿者 秋元 : 11:37 | コメント (5) | トラックバック
2005年09月09日
2006 年のネット開発に向けて覚えるべき技術
Anil Dash 氏のブログ記事 Web Development Trend for 2006 では、2006 年にネットサービス開発で主流になる技術をピックアップして紹介している。Web 2.0 に対応したい人が注目すべき技術群だということだ。
以下各項目について最小限のまとめと、僕の感想を括弧で。
Dampening (なだらかな画面変更)
Ajax による部分的な画面書き換えで、変化した部分を一時的に黄色く書き換える Yellow Fade テクニックを代表例に、ユーザをむやみに驚かせない UI デザインのトレンドとして Dampening というキーワードを挙げている。
(最近は Ajax といえばこの手の効果が入ってる。それを揶揄するようなブログもあるが。ちなみに、この記事はこの記事で非常に面白い。要は適切な使いどころだと思う。)
ECMAScript E4X
Flash や Firefox 1.1 ではサポート済という、XML を扱いやすくした Javascript の拡張。
(IE は? 彼の書いている E4X のすごさが今ひとつ実感できない)
JSON
Javascript フレンドリなデータ交換形式。
(どうせ Javascript で操作するんだから Javascript が使いやすい形式で流通させよう、というのは利に叶ってると思う)
XHTML と CSS の更なる推進
企業サイトでも CSS 対応してないのは依然として多い。CSS への移行が進む。よりよくマークアップされたコンテンツがデータの利用を進める。
(Web リミックス親和性の高いサイトが、データをより多く引用され、結果的にネットでの存在感が大きくなるということか)
バッファリング
Ajax を代表に、ユーザの待ち時間を減らすためのバッファリング技術がさらに進化する。
(いわゆる8秒ルール、は、どんどん短くなっていき、サービス開発者はバッファリングの改善技術が必須となりそう)
Atom API
フィードではなく出版プロトコルのほう。多くのブログアプリケーションが対応済である。活用がされていく。
(一番活用してるのはスパマーだったりするのが頭の痛いところか。検索エンジン各社の対策に期待するしか)
Ruby の伸張
国際化、スケーラビリティ、他言語との相互運用など解決すべき問題は多い。皆が一斉に注目しだした今、それらで先手を打てれば多くの機会が得られるだろう。
(国際化? Ruby のじゃないとしたら、フレームワーク/アプリケーションの国際化かな?)
マーケティング
技術を知っていることや技術を組み合わせること自体ではなく、一般人にプロモートできることが重要。技術のエキスパートとなると共に技術の価値を説明できる人になる必要がある。
(いやまったくその通り)
結論
仕事を探したいなら、景気やアウトソーシングに文句をたれず、上記のような技術をチェックし、サンプルを作ってブログにどんどん書いていくべき。そうすれば企業のほうであなたのブログを探し出して勝手に雇ってくれるだろう。
(サイボウズラボの視点からみたら、そういうブログを書いてる人を探すべき、ってことだな)
投稿者 秋元 : 12:42 | コメント (4) | トラックバック
2005年09月08日
サンプルコード検索サイト再び
雑誌のサンプルコードを集積して検索できるサイトを紹介したが、オープンソースコードに対して同様のコード検索を提供しているサイトを発見。
JExamples は、Java のオープンソースコードを集め、クラス名やメソッド名で検索すると利用箇所の前後が出てくるようになっている。
他にも無いか探してみた。 Snippets はさまざまなプログラミング言語について、ちょっとした小さなコード片(Snippets)を集めている。検索は Google によるものだが。
Koders はかなり規模が大きそう。プログラミング言語の対応もすごいが、単純な文字列検索のようなので、Java でクラス名を検索したら、import 文のところばかり出てきたりもする。
でも、すでにネット上にあるソースコードを探すのであれば、Google への訊き方ひとつでそれなりに行けてしまうようには思うんだが。たとえば、Java のソースコードに特定のシンボルが出てくるものを探したければ、
"DateFormat java import class function"
とか。PHP だったら
"HtmlParser php function require_once"
みたいなかんじで。拡張子で絞るなら"filetype:php"をつけてもいいけど、公開されているソースはテキスト化されていたり HTML 化されていたりして、拡張子が php だったらソースが見えずに実行されるのが普通だと思う。
ようは、その言語のソースコードじゃないと出ないような予約語を混ぜたりして検索すればいい。何言語だと何を入れれば効果的、とかいうのは調べていないけど。
一通りまとめて、言語のセレクションでそれらの特徴的なキーワードを Google へ渡すラッパーをかけば、手抜きだけどソースコード検索エンジンになるんじゃないかな。とか思った。
投稿者 秋元 : 09:21 | コメント (2) | トラックバック
2005年09月05日
PHP の snippet を試せる環境
PHP Interactive をサーバ上に置いてアクセスすると、ブラウザから PHP の小さなコードを動かして、その場で結果を確認することができる。
とりあえず入れて試してみた。関数について、ちょっとした実験を簡単にできるので、ローカルサーバに一つあるといいかもしれない。
# PHP のコードをブラウザから自由に実行できるわけだから、公開されているサーバに置くなら認証をしっかりかけること。
2005年08月31日
Ruby on Rails の PHP 移植プロジェクト
メモ: PHP フレームワークと Ruby on Rails からの影響
PHP 用の Rails クローンや、Rails を移植したと主張しているプロジェクト達
CakePHP
https://trac.cakephp.org/
Biscuit
http://bennolan.com/biscuit/
PHP on Trax (旧名 PHP On Rails)
http://phpontrax.com/
2005年08月28日
日曜は PHP 勉強会
昨日の Java 読書会に続き、日曜は PHP 勉強会に参加してみた。
mixi の PHP コミュニティから発生したらしいこの勉強会、会自体は3回目のようだが、当然これまでは参加していない。何か発表するものを、という話だったので、自分が書いたわけじゃないが CyDE2 の開発環境を持って行き、インストーラとユニットテストをどうやってるかあたりをちょろっと紹介させていただいた。他の発表を聞いてみて比べると、あまり技術的じゃない。宣伝臭いし。
他には、PHP フレームワーク Maple の作者の方が、AOP による DB アクセスの Maple へのウィービングについて実装発表されていて、面白かった。
あとは、PHP に関する洋書のレビュー発表など。アメリカに居たとき本屋でパラパラと見ていた本がいくつか出てきて興味深かった。
全体的に、昨日の Java 読書会が「最近面白い本出てないねぇ」といった感じだったのに比べて、PHP 勉強会のほうが活気があるように見えた。
でも、土曜日にあった Lightweight Language Day and Night (LLDN) に参加されてた方も多く、そちらでは Ruby や Perl のヒトタチが元気だったということで、PHP もがんばらないとね、という雰囲気もあった。
それと、いつも PHP 関連の雑誌記事などでお世話になっている著者のみなさんと直接お会いできたのは非常によかったと思う。来月もあるようなのでぜひまた参加したい。
2005年08月27日
土曜日は Java 読書会
Java 読書会 に参加してきた。一冊の本を、毎月一回集まって「読む」というもの。インターネット協会の部会ということになっているが、参加者は興味のある有志の集まりだ。
僕も、転職でアメリカのサイボウズに行く前はよく参加していた。今回はひさしぶりの参加となる。
今回は翻訳者の瀬谷さんにも来ていただき、読んでいて難しい点など直接解説していただくこともあり、非常によかった。
今月分で読了となった、「アジャイルソフトウェア開発の奥義」だが、今回読んだ中で「付録C: 皮肉な運命」が読み物として面白かった。
同じプロジェクトを実施することになった二つの会社の話を、横に二つ並べて小説風に描く、というもので、一つはガチガチのウォーターフォールで大混乱になり、もう一方はアジャイル的な手法でなんとか成功する、というオチ。
悪い方の例では硬直したプロジェクト管理や理不尽な上司の要求、と言ったものが書かれている。思わず「あるある」と言ってしまうところも多い。ちょっとだけ触りを抜粋すると
上司「即刻開始する必要がある。分析にはどれくらいの時間がかかるかね?」
あなた「仕様要求がわからなければ分析にかかる時間を申し上げられません」
上司「仕様要求が出てくるまでには4~5週間かかるだろう。だから、仕様要求が今君達の目の前にあるものと仮定したまえ。君達は分析にどれぐらいの時間が必要なのかね」
さて上記の流れは変だ、とあなたは思うだろうか? あるいは、いったい何がおかしいというのだ、と思うだろうか。
アジャイル開発についての本なので、アジャイル開発に対してちょっと甘いかな、という気もするが、二つを並べて読むことで、果たして自分達の開発プロセスはどうだろうか、という良い自省ができる話かなあ、と思った。
もちろん、本文の方も充実した内容で、XP、デザインパターンについて実例をなぞりながら勉強することができる。いい本だと思った。
Java 読書会 は9月から新しい課題書(まだ決まっていない)で最初からスタートするので、会社の外で業務とは別に勉強してみたい、という方は参加してみてはどうだろうか。
こういった社外の勉強会は、Java 読書会の場合は「Java」というキーワードはあるものの、ウェブサービス系や組み込み系などさまざまな業務をしている人(もちろん仕事は全然 Java じゃないが自分で勉強してる人も)が集うので、見聞を広めるのにも役立つと思っている。
2005年08月26日
商用アプリ開発に関する PHP の利点と欠点
現在サイボウズ本社でいちばん使われているコンピュータ言語は、と訊かれれば、それは PHP という言語になるだろう。
PHP はそもそもウェブサイトを作るために開発された、目的のはっきりとした言語で、ウェブアプリケーションの世界では非常にユーザー数の多い言語である。PHP のエンジン部分を開発している Zend 社の調査では、インターネット上のウェブサイトの 20% 超は PHP で書かれているともいう。
また、PHP の言語としての文法は C 言語に似せて作られていて、C 言語風のスクリプト言語といえる。専門学校や大学などの授業で C 言語や C++/Java など C 言語に似た言語が使われることも多いため、比較的とっつきやすいとも言えるだろう。
そういった普及度からすると、PHP を多用することには、プログラマーが足りなくなったときに社外から人材を集めやすい、あるいは協力会社を探しやすい、という利点がある。
2年以上前から準備され、今回発売となったガルーン2 では、この PHP が大きな部分を占めている。それ以前は独自のスクリプト言語(Cybozu Labs 社長でもある畑の名前を冠した、Hata-Script である)を使っていた。これもまぁ、Office6 までのサイボウズ製品を見ていただければわかるように、軽量できびきび動く、いい言語ではあったのだが、やはり PHP のユーザベースの大きさというのは意味がある。
この変更では、内製も含めて様々なオプションが検討されたわけだが、サイボウズ製品の特性や技術者の確保のしやすさ、などいろいろな観点を総合し、PHP が選定された。
ただし、その選定の際には、満場一致ですぐに PHP を使うことに決まったわけでもない。(主に反対していたのは僕だが)
どんな言語も完璧ではありえない。PHP にも危惧されている問題点はあった。言語としての出来、や、インタプリタの安定度、リソースの消費量、処理の速度、利用できるライブラリの量や質、利用や配布に関する制約、などなど、について、問題があるかどうか、あるとしたらどう解決するか、解決法が現実的な対処であるか、といった事柄について多数の討論をおこなった。
そういった技術やライセンスの問題については一つずつ問題点をつぶしてきており、今のところ大きな問題点は残っていないと言ってもよさそうだ。僕自身は早い段階で CyDE2 のプロジェクトから離れており(==米国の子会社に帰った)、実際にそれらの改善を辛抱強くおこなってきたのは本社の開発部の面々である。
それでも残る問題は、一部の硬派プログラマーから、PHP は「初心者向けの言語」と思われていることにある。こればかりは、サイボウズの開発部ががんばるだけで解決する問題ではない。
まぁ、現在主流のバージョン 4、PHP4 では、言語としていいかげんなところや使いづらいところもたくさんあり、技術力のあるプログラマー達の多くが「一番好きな言語」とか「一番使いやすい言語」に選ぶ言語だ、とまでは言えないだろう。
「弘法筆を選ばず」というから、真にできるプログラマーならどんな言語であってもちゃんとした成果を残せるのかもしれない。しかし、実際問題として、そのとっつきやすさ、はじめやすさがかえって災いし、「PHP ができます」という人の中に「PHP *しか*できない人」も多い。
理想としては、どんな言語でもすばやくマスターでき、PHP インタプリタの挙動に疑問点があれば、PHP のソースまで遡って調査することも全然苦にならない、といった人がたくさん来てくれるといいんだろうな。ま、これは主に本社側の話だが。
サイボウズ・ラボでのこれからの開発は、必ずしもサイボウズ本社と同じ言語を使う必要はないため、たとえば Python や Ruby のような言語を使ってもよいし、Lisp や JSF/Java でもいい。それは入ってきた人が自分で先導して決めていってしまえばいいのだ。いまのところ、そのへんはまるっきり流動的だ。
むしろ、自分の好きな言語や環境について熱く語れて、まわりを引っ張って巻き込んでいけるような、そんな人であれば面白いし、僕もぜひその人からいろいろ学んでみたいものだ、と思う。
2005年08月19日
Tortilla を基盤に
ブリトーやケサディラでおなじみのトルティヤにこんな使い道があるとは。ハバネロとドライドトマトによる電池駆動にも成功したそうです。。。
2005年08月18日
pear install で stable でないパッケージを追加する
おぼえがき
> pear remote-info パッケージ名
で最新バージョンがいくつか調べ(例: Latest: 0.17.2)、
> pear install パッケージ名-バージョン番号
で無理やりインストール。こんな感じ
> pear upgrade HTML_QuickForm
> pear install DB_DataObject_FormBuilder-0.17.2
-f で強制インストールもあるが、こっちの方がいい、とのこと。ん、何でこっちの方がいいんだ?
2005年08月14日
ペン回しの極意
学生だったころ、授業中や試験中にペンを手のひらでくるくる回してた人は多かったと思う。
ペン回し(Pen Spinning)のサイトは、どうやったらこのペン回しができるようになるか、ペン回しの動画などを扱っている専門サイト。
図解入りの解説は、「箸の持ち方」みたいだが、この人たちはいたって真剣なようだ。これを読めば、レベル1やレベル2のペン回しは簡単に身につけられる、かもしれない。
さらに、このサイトから紹介されている達人のサイトでは、レベル4、レベル5(笑)の超絶技巧トリックが多数、動画で置かれている。
追記: 日本にもペン回しの猛者が沢山いたようだ。知らなかった。。。 むしろ日本語のサイトのほうが多かったりして。
2005年08月12日
「世界最大の PHP 雑誌」には英語版が無い?
Zend 社からの ニュースレターで案内されていた、PHP Solutions Magazine という雑誌。聞いたことがない。PHP Architect は読んでたことあるし、PHP Magazine も知っていたけど、このどちらでもない雑誌が最大(自称)とは、まったく知らなかった。
それで、雑誌のサイト PHP Solutions Magazine に行くと、サイトは英語であるものの、この雑誌、フランス語、ドイツ語、イタリア語、スペイン語、ポーランド語(!) しか存在しないらしい。そんなの読めんよ。。。
この5ヶ国語版の合計が4万部発行、ということなんだけど、これって世界最大規模なんだろうか。
PHP Magazine も、英語のは「インターナショナル版」とあるように、本家はドイツ語らしい。PHP は欧州でもっとも普及しているということなのだろうか。
XAMPP/Win に入ってる PEAR
新オフィス・新PCになったので、手元の開発環境構築に、PHP/MySQL 開発環境の簡単インストーラキット XAMPP を試してみた。
Windows 版は、インストーラをダウンロードして実行するだけで、一通りのオープンソース製品が入った状態になる。CyDE2 とはまた少し違うけど、インストーラの改善という方向性は似ているので、注目はしていた。
PHP では PEAR(公式ライブラリ集) 依存症な僕としては、まず go-pear.bat を叩いた。なんかエラーになる。エラーメッセージからは原因がさっぱりわからんが、検索したら pear も XAMPP には既に入ってた。よく見てなかった。
じゃあ、ということでこんどは pear.bat を実行すると、環境変数が正しくない、とかでエラーになる。XAMPP に入ってる pear.bat は、 phpcli.exe を探すんだが、これ php4 の方にしか無い。
pear.bat 中の phpcli.exe を php.exe にリネームして、pear は動くようになった。
CyDE2 みたいに、構成要素をガチガチに決めても、ユーザ環境にあわせて柔軟に動かすのがたいへんなのに、汎用開発環境としてこんなインストーラを提供するのはすごいよ。
2005年08月08日
プログラマーに定年はあるか
はてなの近藤さんによるブログ開発者が楽しく仕事できる環境とはを読んで。
例えば僕自身は今でも日々プログラムを書き続けていますが、「プログラマとして活躍できるのは35歳くらいまで」といった考えには少し疑問を感じています。
35歳説というのは「その年齢くらいまでに管理職にならないといけませんよ」といったキャリアプラン的な要素が入っているように思います。
プログラマーの35歳定年説、40歳定年説、などというのが日本にはあって、かなり広く受け入れられている。実際に、その年代を超えたプログラマーって、零細企業の社長兼プログラマーみたいな人ぐらいしか見ない。でも、これって日本固有の現象なんだよね。
僕自身の経験からいうと、イギリスで仕事したときの同僚には60歳過ぎのおじいさんプログラマーが居た。彼は何の問題もなく同じようにプログラム書いてたので、年を取ったらプログラムできなくなるとは思えない。このときのプロジェクトマネージャーは、大学院でマネージメントを専攻した(==プログラミングは知らない)35ぐらいの女性だった。
また、アメリカでは40過ぎのプログラマーを部下にも持ったし、このときのマネージャーも MBA を持ってる僕と同い年ぐらいの女性(==非プログラマ)だった。meetup などで見つけた技術系のオフ会に参加したときでも、20代から50代ぐらいまで、あらゆる年代のプログラマーと会うことができた。
欧米では、マネージャーはマネージメントの勉強をしたマネージメント専門家がやるんだなと感じたけど、日本だとプログラマーを長くやるとマネージャーになるという感じ。
日本の学校にだって経営学部や経営学科はたくさんあるんだけど、そこを卒業してもいきなりマネージャーになるなんてことはまずない。せっかく学校で最新の経営について学んだばかりの人を活用できてない、とも言える(まぁ日本の歴戦のマネージャーは、「仕事はそんなもんじゃない」と言われるのかもしれんけど)。
10年20年と経験を積んでいろんなことを知ってる達人プログラマーに、プログラム以外のことをさせるのも、もったいないといえばもったいない。
とはいうものの、ラボの募集要項にも「35歳位迄の方」って書いてあるんだよなあ。そんな厳格なものではないだろうと思うんだけど、日本の企業として無難に書くとそうなっちゃうのかな。あとで社長に聞いてみよう。
2005年08月02日
会社持ちの技術書・技術雑誌
できる技術者はよく勉強している。技術誌や書籍をたくさん読むし、月に数万円は技術本の購入にあてる、という人も多いだろう。
サイボウズ本社では、開発者陣のリクエストをベースに、雑誌や書籍を会社として積極的に購入している。むろん、会社の金であらたに雑誌を講読するからには、なぜそれが必要か、どんな役に立つか、は説明しなければならないが、だいたいの場合は希望が通るといってよい。
他社のエンジニアと話していると、とても名前の通った巨大企業であるにもかかわらず、会社のお金で雑誌や書籍を買うのは非常に面倒で、そのうえ上司や経理に嫌がられ、その結果として、なんでも自腹で買っている、という話を聞くことは多い。
技術書は、個人で何冊も買うには高いが、会社の人件費等に比べれば微々たるもの。書籍をちょっと参考にしたことで一日早く作業が終われば、コスト的にはおつりが来てあまりあるはず。
サイボウズラボでも、雑誌をどうしよう、という話に今なっているが、せっかくブログがあるのだから、どんな技術誌を購読すべきか、ということについてコメントで伺ってみたい。どんな雑誌がオフィスにあれば、あなたの仕事が楽になるだろうか? どんな雑誌をあなたの同僚が読んでくれれば、より理想的な開発に近づけるだろうか?
投稿者 秋元 : 19:39 | コメント (12) | トラックバック
2005年07月26日
USB 経由での Windows 乗っ取り
eweek の記事より、USB ドライバ経由で Windows を乗っ取れる。
USB ドライバをバッファオーバーフローさせることで、任意のプログラムを Windows に実行させることができる脆弱性が見つかった、というもの。まだマイクロソフトには報告が行っておらず、これが本当かどうかは確認されてないということだが。
USB メモリを挿しただけで破壊やデータ吸出しツールを送り込めるのであれば、外部からの訪問者や出入りの掃除業者などがちょっとした時間で PC を乗っ取ることができそうだ。スパイ映画みたいな話だが。
USB メモリによる企業情報持ち出しを防ぐために、USB ソケットを無効化するプログラムが開発された、というニュースを前に読んだ気がする。挿すだけで簡単に使える、という利便性が、管理側に新たな負担を強いているということなんだなあ。そして、その対策を事業にする人が出てくると。