メイン

2008年7月20日

パソナテック10周年記念 シリコンバレーツアー(後編)
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは、naoya です。

前編からすこし間が空いてしまいましたが、後編のレポートをお送りします。

シリコンバレー風景
シリコンバレー風景 posted by (C)フォト蔵

シリコンバレーツアーの最終日は、渡辺千賀さんやGoogleやAdobeで活躍されているエンジニア、フリーランスとして活躍されているエンジニアの皆さんによるパネルディスカッションが開催されました。

まず、各自の自己紹介があったのですが、もともと営業職だったり、英文学の専攻だったり、機械工学だったりと、もともとエンジニアとはまったく関係のない職種や専攻だったことに驚きました。

シリコンバレーにきた経緯もさまざまで、単身でシリコンバレーに来たり、交換留学でアメリカに渡ってシリコンバレーに来たり、スタンフォード大学に留学してと、経緯もさまざまでした。

その中で、「自分を肯定してくれない場所にいても無駄」、「自分の環境を変えるために、そこで頑張って環境を変えるか、まったく別の場所に行くか、この二つの選択肢かない」という意見が出たのですが、まったくそのとおりであると同感しました。

また、日本のエンジニア事情について話題が上がったのですが、エンジニアの評価という点ではシリコンバレーにまさる場所はないとのことです。シリコンバレーでは、エンジニアの給料が一番高く、性別や年齢や国籍などその人のプライベートで差別するような風土はまったくないとのことです。ちょうどパネルディスカッションの中でそのことを象徴する出来事がありました。パネルディスカッションの途中で、参加者からパネラーの皆さんの年齢を質問したのですが、その瞬間にパネルラーの皆さんから「その質問をされたのは、初めですね。」と言っていました。まさに、シリコンバレーというかアメリカは年齢や性別などはまったく関係がなく、そのスキルのみが尊重される場所なのだと思いました。ちなみに、企業のインタビュー(面接)でも性別や年齢をレジュメに書く欄はないそうです。

そのあと、GoogleやAdobeについての企業風土について話題に上がりました。Googleではおもに採用面接の内容に話題に上がりました。Googleでは採用を専門にしているリクルーターがたくさんいるそうです。そのリクルーターから声がかかると、さっそくコード面接になるそうです。コード面接では、出された問題に対して今自分がその問題を解くために何を考えているのか説明しながらホワイトボードにコードを書くそうです。面接官は、実際に入社した人が所属するであろうチームの人たちが担当で全員OKと言わないと合格することはないそうです。最終的にはLarry Pageが判断するとのことでした。
面接は何回も行うようです。
Adobeでは、定期的にパフォーマンスが出ていない人を入れ替えるようになっており、5人くらいのチームで開発するとのことです。また、Adobeはまずフルタイムで雇うのではなく、試用期間を設けてその人のスキルを確認してから正式に社員になれるそうです。Adobeは、約3年から4年くらいずっと働いている人が多いそうで、これはかなりシリコンバレーではめずらしいとのことでした。

最後にアメリカでサバイバルする方法として、自分のアイディアを生み出せるかどうか形にできるかどうかが勝負の分かれ道、自分のスキルなどを精一杯アピールする必要がある、といった方法が挙げられていました。後者は、日本人のあまり得意ではないところなので、相当意識しないと難しいとのことでした。


パネルディスカッションのあと、渡辺千賀さんによるセミナーが開催されました。このセミナーでは参加者の質問を受け付ける時間となりました。参加者からは、英語、アメリカの文化、アメリカで働く方法、などさまざまな質問が挙げられました。その中で、アメリカで働く方法としては、ビザの取得がとても大変ということで、前編でも紹介したVMwareで活躍されている吉澤さんの方法が一番の近道であるとのことでした。


こうして、パソナテック10周年記念 シリコンバレーツアーは無事終了しました。パソナテックでは、第二回目も開催したいということで、とても楽しみです。

最後に、今回のシリコンバレーツアーのレポートがいくつか上がっていますので紹介しておきたいと思います。

2008年7月 8日

パソナテック10周年記念 シリコンバレーツアー(前編)
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加


こんにちは、naoya です。
先日、パソナテック10周年記念イベントとして開催された第1回シリコンバレーツアーに参加させていただきました。
今回は、前編と後編の二回にわけて一人のエンジニアからの視点でシリコンバレツアーのレポートしたいと思います。

続きを読む "パソナテック10周年記念 シリコンバレーツアー(前編)" »

2007年10月 5日

ブラウザでER図が描ける「WWW SQL Designer」紹介
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

miyakeです。皆さんドキュメントはしっかり書いていますか? 近頃のWeb界隈では、詳細仕様書的なものは作らずにスピーディーに開発を進めるケースも多いかも知れません。ドキュメント作成のコストは小さくありませんし、内容を最新に保つのも一苦労です。とは言え、複数の人間が関わるプロジェクトにはER図はあると嬉しいなと個人的には思います。

今日はそんなER図をブラウザ上で作成するアプリケーション「WWW SQL Designer」をご紹介します。

以下のスクリーンショットは、このアプリを実際に触って試せるlive DEMOのものです。

WWW SQL Designer
WWW SQL Designer posted by (C)フォト蔵

上部のメニューからテーブルやカラムを作ったり消したりして、テーブルをドラッグアンドドロップで配置、リレーションを同じくドラッグアンドドロップで設定、というのがおおまかな作業の流れになります。まずは実際にデモを触ってみるのが一番分かりやすいかと思います。

■動作環境

live DEMO上でも作業は可能ですが、実際に使う場合はダウンロードして自分のサーバ上で動作させるのが一般的でしょう。

WWW SQL Designerはphpで書かれているので、phpが動く環境が必要です。php5でしか試していないのですが、恐らく4でも動くのではないかと思います。

また、データベース内にER図の情報を保存する場合はMySQLが必要となります。

■インストール&初期設定

配布されているzipファイルをダウンロードして、しかるべき場所に展開すればとりあえず動きます。

ER図のデータをDBに保存する場合は、io.phpの初めの方にある

/* mysql: */
    define('SERVER','localhost');
    define('USER','');
    define('PASSWORD','');
    define('DB','');
    define('TABLE','wwwsqldesigner');
    $conn = mysql_connect(SERVER,USER,PASSWORD);
    mysql_select_db(DB);
/**/

という部分のUSER, PASSWORD, DBにそれぞれユーザ名、パスワード、DB名を書き込みます。

また、僕は試していないのですが、ODBC経由でDBの情報をインポートする機能があるようで、その設定はimport.phpの初めの方に、

$conn = odbc_connect('','','');

として用意されています。

■基本的な操作

直感的な操作が出来るようになっているのですが、最初は分かりづらいかも知れないので(特にリレーションの設定)まとめておきます。

テーブル作成
New tableをクリックした後で、作業スペースをクリックするとその場所にテーブルが出来る
テーブル削除
テーブルをクリックで選択して、Delete tableをクリック
カラムの作成
テーブルを選択して、Add rowをクリック
カラムの削除
カラムを選択して、Delete rowをクリック
カラムの位置変更
カラムを選択して、Up, Downをクリック
リレーションの設定
PrimaryKeyに設定したカラムを選択して、そのままドラッグして結合対象のテーブル上でボタンを放す

■データの書き出しと読み込み

WWW SQL Designerは、ER図のデータをXMLとして扱います。XMLでデータを管理する場合は、IMPORT/EXPORTメニューから Export XML あるいは Import XML を選択して GO! をクリックします。するとサブウィンドウが表示されるので、書き出しの場合はコピーして保存、読み込みの場合は貼り付けてLoadをクリックします。

DBに保存する場合は、Save to database, Save As... to database, Load from databaseでそれぞれ操作します。途中でKeywordの入力を求められますが、これがそのER図の名前になります。

DBから読み込む場合はURLパラメータのkeywordで指定してやると、ブラウザで開いた時にそのデータが読み込まれます。

DBに保存した場合も、XMLをそのまま格納しているだけなので、どちらを使ってもいいでしょう。

csvの読み書きには対応していないので、必要であればメニューを改造して実装するか、XMLと相互変換するスクリプトを組むことになります。

■使い方の例

あくまで個人的な使い方ですが、参考までにご紹介します。

まず、ER図はプロジェクトの初期段階で描き起こします。データは日付毎に保存したり、確認・修正が容易なのでXMLファイルで運用します。

既存のプロジェクトで利用する場合は、XMLにテーブルとカラムの一覧を書き起こして、それをImport from XMLで読み込ませました。場合によっては、ちゃんと設定した上でODBC経由でimportした方が便利かも知れません(やってないので何とも言えません)。

WWW SQL Designerでは各カラムの型や文字数も設定可能ですが、操作が面倒なのと、ブラウザ上ではそのカラムを選択しないと内容が見えないので、そこはあえて無視することにしました。ただ、数値型・文字型・日付型・その他でカラムの色が変わるので、そこは選択しておきます。

ある程度まとまった時点でGenerate MySQL scriptでSQLとして書き出します。各カラムの設定をちゃんとしていないので、後はテキストエディタで適宜設定やコメントを書いていきます。

開発を進めていく上でDBを変更する場合は、ER図とSQLの二重メンテが発生しますが、そこは割り切って両方手を入れます。ER図の側でカラム設定を手抜きするので、それほど手間ではありません。

残念ながらER図を画像として出力する機能はありませんので、最終的なER図はスクリーンショットから作ることにします。

IMPORT/EXPORTメニューからOpen print viewを実行すると、上部のメニューと右下の全体図が消えます。この状態でスクリーンショットを取ります。消えたメニューを元に戻す方法は無さそうなので、ブラウザで再読込するしかないようです。データの保存は前もって!

図が1画面に収まらないケースがほとんどだと思いますが、そこはFirefoxのアドオンなどでクリアします。ちなみに、僕はScreengrab!を使っています。

そのままだと大きすぎるので、Fireworksでリサイズして、必要ならば注釈などを加えた上で画像として保存します。これでER図の完成です。ここの処理はいくらでもやりようがあるので、お好きな方法でどうぞ。

■リレーションの制限を解除する

2007年10月5日現在の最新版であるVersion 1.3.4では、外部キーとして設定出来るのはPrimaryKeyに指定したカラムだけとなっているようです。

「テーブルには全てintでauto_incrementなidをPKとして設定し、結合はそのidで行う」というルールでDBを設計している場合はあまり困ることはないと思いますが、この制限を解除したい場合はJavaScriptを書き換えることで対応出来ます。

現在、PrimaryKeyに指定していないカラムではドラッグ系のイベントが働かないようになっているらしく、その判定をしないようにしてやればOKです。

具体的には、js/main.jsの153~155行目、


if (table_array[number].rows[rownumber].pk) {
    drag_start = src;
}

となっている部分のifを外して、

drag_start = src;

だけにします。ただし、この状態だと同じテーブル内で間違えて、少しでもドラッグアンドドロップをしてしまうと、同一テーブル内での参照が作れてしまうので少し注意が必要です。

■まとめ

あまり複雑なER図には対応出来なかったり、Webアプリであるが故の制約もありますが、これだけのソフトがフリーで公開されているというのは嬉しいことです。

また、WWW SQL Designerは現在も積極的に開発が進められており、今後の機能増強も期待出来ます。

個人的には非常にありがたく使わせてもらっていますので、ER図を描くツールに困っている方は一度試してみてはいかがでしょうか?

2007年10月 4日

Adobe MAX で明らかになった次世代Flashの世界
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは! yamazakiです。
毎度このブログでは日ごろの仕事にちょっと役立つかもしれないデザイン話をあれこれとやらせていただいているのですが、今回はちょっと趣を変えて。

日ごろの仕事はどちらかというとデザイン画像を作ったり、HTMLやCSSのコードを書いたりといったことが多いのですが、個人的にFlashが好きで、ActionScriptやFlex関係の勉強会などにもお邪魔させていただいたり、Flash関係の情報を集めていたりしています。
9/30~10/3にアメリカのシカゴで開催されたAdobe MAXというイベントで、Flashを中心としたAdobe製品についての発表がありまして、様々な新しい情報が出てきました。
このブログをご覧いただいている方の中にも、Flex/FlashやSilverlightなどといった技術の活用やRIA方面に関心のある方もいらっしゃるかと思いますし、趣味と実益を兼ねて、捕捉している限りの発表内容をざっくりまとめてみました。

ちなみにより詳しい内容はメディアテクノロジーラボ さんなどに、実際にMAXに参加された方による記事・映像へのリンクなどもありますのでぜひご覧くださいませ。



まずは以前からアナウンス済みのものから

FlashPlayer9 update

こちらはすでにアナウンス済み。H.264ビデオ、HD対応、AAC対応などメディアプレーヤとしての機能がぐんと拡充された感じです。
Adobe Labsにてベータ版公開中。

Adobe Media Player

こちらも以前にアナウンス済みですね。Adobe謹製のメディアプレイヤーです。映像配信の際のブランディングができるなど、Adobeらしい特徴を持ったメディアプレイヤーに仕上がっている模様です。プレリリース版がAdobe Labsで公開中 です

Flex 3 SDK/Flex Builder 3

こちらは以前からベータ版がAdobe Labsに公開されてましたが、MAXにあわせてbeta2が公開になりました 。Flex Builderのロードマップなどについてはflex.orgwiki に色々とまとまってますのでご参考までに。

Photoshop Express

Photoshopの簡易オンライン版。簡易版といいながら写真の補正等の目的では使えそうな内容みたいでした。

Flash lite3.0

携帯電話向けFlashの新版。flv再生できるというのが一番のポイントですね。
国内だとドコモが対応を発表しているとのことですが、いったいいつ乗ってくるのやら。


そして今回のMAXで初めて明かされたもの

FlashPlayer10(Astro)

今回のMAXではじめて明らかになったFlashPlayerの次期バージョンです。
  • 画像などを3次元的に扱うためのAPI
  • 文字組み機能が強化
など、デザイナとしては表現力の強化に期待できそうな機能追加。他に注目ポイントとして、Flash内部で使用する画像処理のフィルタを自作できるようになるそうです。そのための開発ツールとして、AIF(Adobe Image Foundation) Toolkit というものが公開されまして、こちらでswf内でも利用可能な高速画像処理フィルタを作ることができるそうです。

Flash

こちらはFlashのIDEのほうの話。
  • Flashの開発画面上で映像再生できる
といった便利な機能拡張や
  • タイムラインにキーフレームをいくつも打って、みたいな面倒なことをせずにアニメーション作れる
  • 書いた絵にボーンを仕込んでアニメーションさせる、みたいなことができる
といった、アニメーション作りに便利な機能拡張がされるようです。

Flash on C/C++

どうやらC/C++の資産がFlashで活用できるようになるらしい、という話のようで。C/C++で書いたものがASに取り込めて、たとえばXSLTの機能を追加、とか色々拡張できる、という感じの説明っぽかったんですがイマイチ英語が聞き取れず。とりあえずFlashの常識からすると恐ろしい内容のデモが展開されてまして会場大フィーバー。

Thermo

こちらは今回のMAXで初公開になったプロダクト。
性格としては「Flex Builder for Designer」といったもので、RIAインターフェースを、デザイナーが制作するのを助けるツール、といった感じ。
IllustratorやPhotoshop、Fireworksなどで作ったグラフィックをThermoに取り込んで、各パーツにインタラクションなどを設定。それをmxmlに吐き出して、エンジニアに渡す、といったようなワークフローが想定されているようです。リリース時期は未定。映像はこちら(aralbalkan.com)

Flex Builder linux

FlexのEclipse pluginがlinuxでも動くようになる模様。Public Alphaが公開されている ので興味のある方は自己責任でお試しあれ。

Flash home

携帯電話のOSそのものをFlashに?という技術、なのか何なのかよくわからず。とりあえずブート段階から各種操作などのUIが全てFlashになっていた、というのはわかったんですが…。

その他にもAdobe CS4製品やサーバ製品、Adobe社で運営するサービスなどについてもあれこれと話があったようなのですが追いきれてないのでその辺りは割愛。
以上、大雑把なまとめですが、次世代のWebを作るツールとして、Flashの可能性がまた広がった、といった感じでしょうか。
どんどん進化していくので本当についていくの大変です…。


以下参考にさせていただいたサイト:
Adobe Labs
flex.org
メディアテクノロジーラボ ブログ
Flex Coder
http://journal.mycom.co.jp/articles/2007/10/04/max2/index.html
http://aralbalkan.com/
http://www.peterelst.com/blog/

2007年9月13日

内部から見た「ウノウ」という会社
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

今月3日付けでウノウに入社したshimookaです。よろしくお願いします。

入社から2週間経ち、社内や仕事に少しずつ慣れ始めた感じなところです。
ウノウは2001年設立のベンチャーです。前職もベンチャーのSI会社でしたが、ウノウを外部から見ていて「通常の会社と何か違う」と思っていました。入社してそれが垣間見えた感じがしています。
ということで、今回は「内部から見たウノウ」というテーマでまとめてみました。

社内の雰囲気

「音楽とキーボードを打つ音が絶えず聞こえている」、まさにこの通りです。音楽の音量は比較的大きめ。その中で、黙々と何かをこなしている感じです。会話はあまり聞こえてきません。また、半分ぐらいの人がヘッドフォンをして、別の音楽を聴いていたりします。 選曲は完全に「メンバーの趣味」です。J-POPあり、JAZZあり、洋楽あり、懐メロあり・・・なぜか、ルパン三世のテーマやドリフもあったりします。

情報共有

事務的な情報はWiki、プロジェクトの情報はWikiとメーリングリスト・BTS(バグトラッキングシステム)でほぼ共有されています。

また、Wikiとは別に社内Blogも用意されています。Wiki・Blogには個人のページも設けられていて、日報や週報、技術的な情報、雑記などを書き留めておくことができます。また、この週報を元に毎週全体ミーティングが行われています。以下、社内Blogの例です。

社内Blog
社内Blog posted by (C)shimooka

当然ながら、これらの情報は全て社内にオープンされていますので、コメントやトラックバックも行われます。やはり、技術的な情報の方が喰い付きが良いようです。

ランチデー

くじ引きで社員をグループに分け、グループ単位に食事に出かけます。隔週火曜日の13時から行われています。 ある程度の規模以上の組織になるとどうしてもグループ化してしまい、組織としての柔軟性が損なわれてしまいがちです。そこで「くじ引き」で決め毎回違うメンバーと食事に行くことで、メンバー同士の交流や情報交換を活性化しようというのが狙いです。私は入社してまだ1度しか行っていませんが、意外とプロジェクト以外の話が弾みました。

同じように問題と感じている方は是非お試しを ;-)

コードレビュー

毎週木曜日の夕方に1時間ほど行われています。持ち回りで、関わっているサービスや案件のほか、様々なネタをプレゼンしていきます。 本当にこの時間は濃厚です。本当に「技術の会社」という感じがします。

なお、コードレビューの様子はビデオで撮影されています。内容によってはフォト蔵に公開されています。ユーザー「フォト蔵」のアルバムをチェックしてみてください。

まとめ

やはり、内部から見ても「通常の会社と何か違う」会社でした。

今までウノウの外からラボブログを読んでいましたが、いざ自分が書く番になると難しいですね。次は何か技術ネタが出せればと思いますので、今後ともよろしくお願いします :-)

2007年6月 2日

Delphi For PHPを簡単に触ってみました
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

jQueryは、ajaxSubmitプラグインが好きなKeitaです。

僕はもともと、Delphiの技術者でそこからPHP技術者になりました。
もはや、Web系のアプリケーションの開発に夢中なので、Delphiをいじることは少なくなりましたが、ちょっと前に、Delphi For PHPという統合開発環境が発売されたようなので、Object Pascalじゃなくて、Delphiって言語の名前って誰か中の人いってたよなーとおもいつつ、軽く触ってみました。

まず、Delphi For PHPは、Delphiと同じようにその言語の開発環境というだけではなく、フレームワーク的なものを内包しています。

Delphiでは、WindowsアプリケーションをIDEでぺたぺた貼り付けて開発するためにVCL(Visual Component Library)というライブラリがありますが、Delphi For PHPにもVCL For PHPというものが準備されているようです。

こういうのが、準備されているおかげで、Delphi for PHPの概要(英語)のビデオにあるような、本当にPHPで動いているのかわからないような開発方法で開発ができるようになるようです。

「なようです」、とかいってるのもアレなので、とりあえず、使ってみたいと思います。

WS000001
WS000001 posted by (C)フォト蔵

とりあえず、Hello PHPとかいて実行してみました。


WS000002
WS000002 posted by (C)フォト蔵

とりあえず、なんか動きました。

で、まず最初に気になったこういうIDEでいわれる出力されるHTMLソースがどうかというあたりですが、こんな感じでした。


<!-- Unit1 begin -->

<html >
<head>
<script type=&text/javascript& src=&/vcl-bin/js/common.js&></script>
<title>Unit1</title>
<meta http-equiv=&Content-Type& content=&text/html; charset=euc-jp& />
</head>

<body style=& margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; & >
<form style=&margin-bottom: 0& id=&Unit1& name=&Unit1& method=&post& action=&/sample1.php&>
<table width=&800& style=&height:600px& border=&0& cellpadding=&0& cellspacing=&0& ><tr><td valign=&top&>
<div id=&Label1_outer& style=&Z-INDEX: 0; LEFT: 104px; WIDTH: 75px; POSITION: absolute; TOP: 49px; HEIGHT: 13px&>
<div id=&Label1& style=& font-family: Verdana; font-size: 10px; height:13px;width:75px;& >Hello Delphi</div>

</div>
</td></tr></table>
</form></body>
</html>
<!-- Unit1 end -->

ちなみに、ここまでの作業は、Delphi For PHPをインストールするだけで、Webサーバの立ち上げまでやってくれるので、他に別途作業する必要はありませんでした。

もちろん、Delphiの名を冠しているだけあって、ステップ実行も可能です。これには、DBGというPHPのエクステンションを利用しているようです。

ちなみに、出来上がったPHPファイルを見てみると。
保存したファイル名のものとなにやら、PHPのふりをしたフォームの情報が入ったXMLファイルが出来上がっており、これを、Webサーバに配置して、VCL For PHPにファイルにパスを通してやれば、既存のApache上でも動きそうな気がします。

さて、本来は、Delphi For PHPの売りであると予測される、DB接続なども紹介したいのですが(ビデオ見た限りはそこらへんがとても変態的でよかった)、とりあえず、触ってみたといいたかっただけで、それ以上の情熱は今の所わかなかったので、何か思い立ったら詳しくつっこみたいとおもいます。

個人的な結論として、ちゃんと使えば、Accessなどと同じようなレベルで社内Webサーバに配置して配布せずに、社内アプリケーションとして用意するのには使えるかもしれないとおもいました。
が、すでにPHPをやっていて、ばりばりフレームワークを使って開発しているような人たちに必要かといわれると、住み分けが大切だと思いました。

もし、ご興味が湧きましたら、フル機能あるトライアル版がありますので、そちらを試してみてはいかがでしょうか。

2007年3月 8日

2006年度上期未踏ユース成果報告会に参加してきました
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人です。

2/17-19の三日間に渡って行われた2006年度上期未踏ユース成果報告会に参加してきました。 遅くなりましたが、いろいろ面白い成果物がいっぱいあったので、 今日はそれをレポートしたいと思います。 全て紹介してたらかなりの長文になってしまいました。

1日目

スプラインスキャン法による曲線認識とその応用

スプラインスキャン法というのを用いると線を自然に認識して、線の繋がりや流れも認識できるようになるとか。 OCRへの応用等が考えられているそうです。

採択者はaltpaperという紙ベースのデータを自動で認識するシステムを開発している株式会社情報基礎開発で働いていて、 今回開発システムはaltpaperにも組み込む予定だそうです。Altpaperも未踏の開発成果物の一つです。

FileUtils-URI: ローカルファイルにWebコンテキストを付加するためのライブラリの開発

インターネットからファイルをダウンロードすると、 そのファイルをどこからダウンロードしたのかがすぐに分からなくなってしまいます。 そこで、ファイルにオリジナルのURIのメタ情報を付加しておくというのが提案者のシステムです。 オリジナルのURIのメタ情報を付加する事で、 そのファイルがどこからダウンロードされたのかすぐに分かるようになります。

現在メタ情報はディレクトリの中に入っており、 ファイルを動かしてしまうとメタ情報がそのまま引き継がれないという問題点があります。 Rubyのライブラリを用意していて、 そのライブラリ経由でファイルの移動をすると大丈夫なんですが。 また、ファイルをダウンロードした時に自動的にURI情報が付加されないので、 自分で手動でつける必要があります。 使いやすさがもう少し向上すると良いですね。

「あと一歩の勇気」を引き出すコミュニケーションインターフェースの開発

傘連判状というのを用いたコミュニケーションインターフェース。 傘連判状というは全然知らなかったんですが、昔一揆とかを起こす時に、 リーダが誰かばれるのを防ぐために放射線状に署名したものだそうです。

何か議論を重ねる時に声の大きい人の意見が通りがち。 傘連判状のように全員が平等の立場であれば、 コミュニケーションが円滑に進むのではないかというのが提案者の考えです。

作ったシステムは画像上の好きな位置でチャットができるlock-on-chatシステム。 発言者の名前が傘連判状のように放射線状になって表示される。

僕はこういうコミュニケーションツールはWebとの親和性がかなり高いと思っています。 現在Web版は開発中とのことなので、期待したいところです。

P2Pセキュアファイル共有システムにおける新共有機能の実現

唯一の女性採択者。 鍵を用いてローカルのネットワーク上でファイルを共有するためのシステム。 鍵の存在が全面に出てるので、初心者にはちょっと使いづらかったり、 ドラッグ&ドロップでファイルのコピーができなかったりするので、 もう少しインターフェースがよくなって使いやすくなるといいですね。

CPUとGPUを用いる高速数値計算ライブラリ

最近のマシンには高速なGPUが付属しています。 このGPUを描画にではなくCPUが行う演算の代わりに使ってしまおうというのがGPGPUです。 提案者はCPUとGPUを用いて並列計算させることによって、 行列積和の計算を高速に行う事ができるライブラリを作りました。 このライブラリが広く使われるようになって、 いろんな処理が高速に行われるようになるといいですね。

ライブラリが公開されています。
GPUPC

ブックマーク連携型検索エンジン「netPlant」の開発

ユーザのブックマークと連動させる検索エンジン。 こういう視点の検索エンジンって面白いですね。 まだ公開していない現在開発中の新しい検索インターフェースを見せてもらいましたが、かなりかっこ良かったです。 Flashで作られていて、こういうかっこいいインターフェースだと使ってて楽しいですね。

最初ブックマークをただ単純に集めようとしたんだけど、それはうまくいかず。 そこでswimmieというFirefoxのプラグインを作ってブックマークを共有する機能を提供する事で、ブックマークを集めることに成功したそうです。 こういう戦略を途中で変更して結果を出すというのは大変素晴らしいですね。

netPlantは今後事業化を目指すそうです。 若いのに非常に勢いがあります。 今後に期待したいですね。

2日目

SMILES記法を利用した薬物設計支援ツールの開発

SMILES記法というのを初めて知りました。 化学的な物質の構造を表記する方法だそうです。 炭素とか酸素のような原子がどういう風に繋がっているのかをSMILES記法を使って表すのだとか。 SIMILES記法だけを見ても何がどうなってるのかは全然分かりません。 そこで提案者はSMILES記法から可視化するシステムを作成しました。

よくわからないんだけど、いろんな化学物質を可視化して見せてくれました。サリンとかw。 C60もちゃんと表示されてた。

こういう特定の分野の専門家で、かつプログラムが書ける人ってなかなかいないんですよね。 このシステムで薬物設計が格段に楽になることでしょう。

モバイルARと小型センサによるタンジブルユーザインターフェースの実現

最近何かと話題(?)のタンジブルユーザインターフェース。 世の中にはリモコンが多すぎて管理するのが大変。 提案しているのは携帯電話がリモコンになっていろんなデバイスをコントロールすることができるシステム。 携帯電話はいつも持ち歩くので、携帯でできると何かと便利ですね。 タンジブルユーザインターフェースなので、直感的に操作できるものを目指しています。

実際に「動画を流す」「それを別のディスプレイに表示」「別のプリンタに印刷」という流れを、 携帯電話で操作するデモをやってくれました。 携帯電話には無線LANのモジュールがついたNokiaの携帯を使用していて、 日本で同じ事をやるにはちょっと難しい印象を受けました。 未来ではこれが当たり前になるんでしょうか。

初心者を挫折させない、魅力的な3Dライブラリとヴィジュアルシーンエディタ

プログラマがプログラムを始めるきっかけとしてはゲームを作りたいというのが多いそうです。 僕自身はゲームを作ってみたいと思った事は一回もないのですが、 周りを見回してみると結構当たってます。 ところが最近のゲームは3Dをふんだんに使っていて、敷居が高く、 そこで挫折してしまう人がたくさんいます。 提案者のシステムは初心者をターゲットにした簡単に3Dアニメーションを作れるソフトウェアです。

驚いたことにプレゼン資料を全て今回作成したソフトウェアVisual Scene Editorで作っています。 プレゼンを見るとVisual Scene Editorのすごさがわかります。 機能がたくさんあってここには書ききれないですが、完成度が非常に高いです。

実際にプレゼンを見てて、3Dアニメーションをふんだんに使ったかっこいいプレゼンなんですが、 これが簡単に使えるようになればいいなと思いました。 話を聞いてみると、プレゼン用に最適化してものを別に開発することは考えているそうです。 MacのKeynoteがかっこいいと嘆いていたWindowsユーザも、 Visual Scene Editorでかっこいいプレゼンができるようになるかもしれません。

ソフトウェアは公開されていますので、実際に使ってみてはいかがでしょう。
Visual Scene Editor

Spark Project

採択者は現役の高校生!! IT業界でスパークと聞くとSunのSPARCしか思い浮かばないのですが、高校生には分からないんだろうな。

Spark ProjectはFlashでゲーム開発を行うためのクラスライブラリ集を開発するプロジェクトで、 今回はイベントドリブン型で処理をするXelfというのを開発しています。 Xelfの由来は単にFlexを逆にしただけとか。

エージェントという概念があって、エージェントがお互いにメッセージを交換する事によって処理が行われるという仕組みになってます。 そのためオブジェクトが多くできるのですが、DIコンテナを使って簡単に管理できるようにしてます。 またConvention Over Configurationでできるだけ簡潔になるように工夫されています。

Spark Projectにて公開予定。

誰かを感じるウェブコミュニケーション - ブラウジングコミュニケータ「Antwave」の開発

誰かと一緒に同じwebページを見る事ができるwebブラウザです。 とにかく使ってて楽しい!! 一緒に同じページを見ながらチャットができたり、ページに落書きができたり、相手のマウスポインタをバシバシ叩く事ができたり。 誰かがリンクをクリックすると、同じページを見ている人のページもちゃんと切り替わるようになっています。 今回採択されているnetPlantに対応して、未踏ユース同士のコラボも面白い。

技術的にもかなりこった事をやっています。 同じページをブラウズしているときのやり取りは、 多くのデータのやり取りを行うのでP2Pで行っていて、 それ以外の部分の処理にはWeb APIを通してAntwaveのサーバとやり取りをしています。 HTTPにデータを載せてやり取りをすることで、簡単に外に出れないような環境でもちゃんとデータのやり取りが行えるようになっています。

採択者は2chで有名になった上下ジーパン男の映画監督でもあります。 映像が趣味というだけあって、作ってきたデモムービはかなりクオリティの高いものになってました。

思いついた全てのアイデアを集積・管理・公開するWiki型CMS「Ubiki」の開発

採択者が提案するシステムはどこでも使えるWiki型CMS「Ubiki」。 Ubikiはオフラインでもオンラインでもどこでも使えるWikiシステムを目指しています。 確かにこういうシステムがあれば、どこでもメモがとれて共有できるから便利ですね。 残念ながら作ったシステムは完全にうまく動けるところまではいってないようですが、 今後の開発に期待したいところです。

プログラミングを学べるMMORPGの開発

MMORPGを使ってプログラムを学習する事ができるシステム。 MMORPGには多くの人がハマっていますが、そこにプログラミングの演習を持ってくれば楽しくプログラミングが学べるのではないかというアイデアです。 デモでは簡単なRPG上で問題を解く事で次に進む事ができるようになっていました。 採点をどうするかとか、いろいろ難しい部分は多いと思いますが、 こういうシステムでもっとプログラミングの敷居が下がるといいですね。

統合ディスクレスネットワーク基盤システム

ネットワークブートを用いることでディスクレスで複数のマシンに同じシステムを起動させてしまおうというシステム。 ネットワークブートを用いる事自体はそんなにすごいことではないが、 彼がすごいのはこのシステムのために分散ファイルシステムを作ってしまったところです。 ファイルシステムはNBD(Network Block Device)の上に全てユーザランドで書かれています。 ディスク全体のイメージを複数のサーバに分割して持つ事でメモリの消費量を抑えています。 またデータを重複して持つ事で耐障害性も高めています。 僕はこの分散ファイルシステムだけでも十分に価値があるのではないかと思いました。 (というかそっちの方に興味があった) もっと実用性を高めて安定運用できるところまで期待したいところです。

3日目

よりよいコメント記述のためのプログラミング環境

コメントにもっと記述力を持たせようとする試み。 このシステムを使う事で、他言語コメント、プログラマのレベルに合わせたコメント、部分的なコメントが実現できるようになります。 コメントは別ファイルに保存されていて、同じシステム上で開発する必要がありますが、こういう細かいコメントが記述できるようになれば便利ですね。 提案者はEmacsで実装していましたが、僕はEmacsは使わないので、ぜひvimにも移植して欲しいです。

MARS(Mutural Authentication RSS) 相互認証を基盤とした未来型RSS配信ソフトウェアの開発

RSSはデータの配信に広く使われていて、ツールもいろいろ揃っています。 ですが、元々パブリックなデータを配信するのに使われているため、認証部分が弱いです。 提案者はグリッドコンピューティングの研究室に属していて、グリッドコンピューティングで使われている認証システムと組み合わせてしまおうという提案です。 グリッドで使われている認証を通す事で、非公開な情報をRSSで配信できるようにします。

実際に作ったシステムを作ってデモを行ってくれました。 先生が現れると通知が届くというデモです。 グリッド - MARS - Plagger - メール という構成で、 先生が財布をマウスの近くに置くと財布とマウスに入っているRFIDによって検知されてメールが届くようになっています。 こういうところにRSSが使われるなんて面白いですね。

旅する漢字”漢字んカナメ” 漢字学習支援システム

漢字の学習を支援するシステムです。 漢字はたくさんあって覚えるのが大変ですが、漢字をストーリにすると覚えやすくなります。 漢字んカナメは漢字を分解してストーリを自動生成するシステムです。 漢字を入力してしばらく待つと、分解された漢字の一部分がうにょうにょ動き出してストーリが出来上がります。 動く様子は見てるだけでも楽しい。こういう遊び感覚が学習には必要なんでしょうね。 現在特許出願中のようで、実際に手元で使えるようになるのが楽しみです。

GPUPPUR: 汎用高速3Dグラフィックスライブラリの開発

3DCGの描画処理にはラスタライズ法とレイトレーシング法があるそうです。 ラスタライズ法は高速に処理できるのでゲームとかのリアルタイムCGに、 レイトレーシング法はリアルな3Dを生成できるが計算に時間がかかるので映画等のオフラインCGに使われています。 提案者の汎用高速3Dライブラリ"GUPUPPUR"では、ラスタライズ法とレイトレーシング法を組み合わせたハイブリッドな3Dライブラリです。

実際に作ってみて動かしてみると、結果的にはOpenGLよりも遅くなってしまったとのこと。 ラスタライズ法の計算に使われるGPUは広く普及していますが、 レイトレーシング法の計算に用いられるプロセッサにPPUというのがあって、これがかなり高価だそうです。 PPUが広く普及するようになれば、GUPUPPURを使う事で現実的な速度今までよりもきれいな3Dを描画できるようになるかもしれません。

アニメ表現におけるアーティスティックな陰影コントロール法

トゥーンレンダリングという技術があります。 写実的な描画ではなく、アニメのように陰影のはっきりした描画を行うのがトゥーンレンダリングです。 トゥーンレンダリングでは3Dの物体に光を当てる事で陰影をつけるのですが、 実際にやってみるとうまく影がつかない場合があります。 提案者が作ったのはトゥーンレンダリングの処理を行う時に、手で陰影のつける部分を変更して、 光源の位置を変えてもちゃんと描画されるようにするシステムです。 Mayaというプロが使っているシステムのプラグインとして開発しています。 今後、実際の映画製作に使われる予定ということで、早ければ次のポケモンに使われるそうです。

身体イメージを利用した装着型擬人化ディスプレイロボットの開発

ロボット技術は非常に高度高価だが実際にできることが少なく、人間が期待する事とのギャップが大きい。 なので、ロボットの部分を一部分に限定すれば現実的なものが作れるのではないかというのが提案者の考えです。 提案しているシステムは手や目などの一部分を作って、いろんな物を擬人化してやろうというもの。 デモでは電子レンジに手や目がついているものを見せてくれました。 女性が見ると「かわいい」と言う人が多いそうです。 こういうアプローチは面白いですね。

まとめ

未踏ユースでの成果報告会についてまとめてみました。 未踏ではいろいろ面白いプロジェクトがいっぱいあります。 プロジェクトだけでなく、未踏を通じていろんな人との繋がりができます。 みなさんも未踏プロジェクトに応募してみてはいかがでしょうか。

2007年1月22日

Django勉強会がウノウにて開催されました
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

1月22日、ウノウを会場にDjango勉強会が開催されました。


  • DjangoからAjaxを使うにはどうしたらいい感じか?(mopemopeさん)

  • 寺子屋「RandomNoteを作る」(uemuraさん)

  • ライブブログ構築(遠藤さん)

  • Leuchtturmデモ(酒徳さん)

寺子屋では、実際に参加者の方が、ペア・プログラミングでサンプル・アプリケーションを作成するという形で行われました。半数以上がDjango初心者だったのですが、皆さん初めてでもすぐに覚えてしまったようです(Python自体が初めてという人もいました)。
参加者は24名で、懇親会もほぼ全員の方が参加して、エンジニア同士での意見交換が活発に行われました。



Djangoは、Pythonで書かれたWebアプリケーション・フレームワークで、見通しのよい MVC 分離、洗練された O/R マッピング API、そして汎用性の高い強力なテンプレートエンジンを備え、高い柔軟性とパフォーマンスを同時に要求されるWebアプリケーションを迅速に開発することができます。

Ruby on Railsと比較されることも多いのですが、もともとアクセスの多い新聞社のサイト向けとして開発されたこともあり、パフォーマンスに関してはDjangoが少しばかり優れているようです。

Django/Rails/Symfonyの比較記事


関連リンク:
Djangoと日本の仲間たち
Django | The Web framework for perfectionists with deadlines

2007年1月10日

普通の技術者が入力機器にこだわるぽえぽえ
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

Keitaです。
僕は、以前速記会社に勤めていて、そこで親指シフトキーボードというキーボードが存在することを知りました。
使ってる人に聞いたところ、日本語を早く入力する事に関しては、親指シフト>カナ入力>ローマ字入力という公式が成り立つそうです。理由としては、ローマ字とカナ入力は、単純にキーを押す回数の差が出ますし、さらに親指シフトでは、1つのキーボードに4つ以上の文字が割り当てられるため、指を動かす距離がへりさらなる削減ができるということでした。

まぁそういうことで、プログラムで英字ばかり打つ僕には、あんまり関係ないのですが、そのおかげで入力機器にちょっとしたこだわりを持つようになりました。
今では、「プログラムする」というより、入力機器を如何に気持ちよくたたくかのほうが重要です。
いやさすがにそこまでいきません、すいません。

世の中には、一般に使われるQWERTY配列ではなく、(もともとタイプライターのバーが絡まないように打ちにくくした経緯のあるQWERTYより)Dvorakを使う方もいらっしゃいますが、社内にそんな人がいないかどうか、ちょっとアンケート調査してみました。

有効回答数(14人 技術者じゃな人も含む)

キー配列


  • 106(JIS)(9人)

  • 101(英字)(5人)

英字と、日本語がほとんど半々といってもいい感じです。

また、ウノウでは全員がノートパソコンで作業しているのですが、ほとんどの人がマウスを外付けしていました。
ただ、IBMのノートを使ってる人は、トラックポイントがあるのでいらないという人がほとんどでした。
なお、トラックボールの人は、14人中1人しかいませんでした。

こんな感じです。


  • トラックボール(1人)

  • トラックポイント(3人)

  • 外付けマウス(10人)

僕が使っているキーボードを紹介します。僕が使っているのは割とスタンダードなセットで

です。トラックボールは、マウスと違って腕全体を動かさなくてもポインタが操作できるので僕の肩こりの軽減に役立ってます。
ところでこのトラックボールは、もう売ってないようです。スタンダードなはずなのにおかしいです。

僕が英字のキーボードを使っている理由は、プログラムを効率よく行うためです。「:」と「;」が同じキーにあり、さらにその隣、「"」と「'」が同じキーにあるので、指を動かす距離が少なくてすみとても効率的です。日本語キーボードの「'」の位置って、あまりにあまりな場所です。

まぁ、そんな、僕の入力機器愛を語るだけのエントリですが、皆様のパソコンライフの助けになれば幸いです。ゆくゆくは、キーボードたたいてたら、システムできちゃったくらいにいきたいものです。

2006年10月 2日

次世代のデータ記述言語(かも!)JAXON
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

ひらっちです。

Webプログラミングではどのようなデータが送られてきても正常に動作するよう、入力データの検証が欠かせません。一方で、ユーザがフォームに入力したデータを、JavaScriptを使ってその場で検証して表示できれば、ユーザビリティの向上につながります。

この二つの機能は、データの検証についてはほんんど同じ機能です。しかし、多くの場合、サーバサイドではJavaScriptとは違う言語でプログラミングされているので、共通のコードにすることはできませんでした。

今回私が作成したものは、プログラミング言語に依存しないかたちで検証方法を書くためのライブラリです。まだ機能が絞り込まれていなかったり、足りなかったりしますが、一応動く形になりましたので公開します。

この機能を実現するため、最初はJSONを使っていました。しかし、JSONはある程度を超えた複雑な表現をしようとすると、見た目に煩雑になってしまいます。そこで、この機能を実現するために、まだ仕様が固まっていませんが、JAXON(Javascript Appliable Crosslanguage Object Notation)というデータ記述言語を考えてみました。

JSONが連想配列と配列でデータ構造をあらわすのに対して、JAXONでは関数呼び出しの形でデータ構造をあらわします。今回作成したデータ検証を例にとると:

Validate(input1(IsNumber('must be number')));

このような形です。

input1は、フォームのINPUT要素をあらわすオブジェクトです。 つまり、これは「input1が数値であることを検証する」と読めます(文字列はエラー時のメッセージです)。

また、Validate,input1はそれぞれ、可変長の引数をとります。複数の要素が指定された場合は、すべての要素の検証を行います。

JAXONによるデータ検証の記述は、大まかに次のようになります。

// 入力の記述
Input(入力名1);
Input(入力名2);
……

// 検証の記述
Validate(
    // 入力に対して、その引数の検証を行う
    入力名(動作(エラーメッセージ, 引数 ...)),
    // 第一引数の検証が真の場合、第二引数以降の検証を行う
    when( 入力名(動作(...)),
        入力名(動作(...))),
    ...);

JavaScript版のデモと、PHP版のデモが動くようにしておきました。ダウンロードはこちらです。ライセンスはMIT/Xスタイルです。

今回できなかった機能は、

  • 複数の入力の間の関係の検証
  • 配列型の入力の検証
  • JAXONの拡張のための簡単なインターフェイス

などです。

とくに、JAXONの拡張が容易になれば、Webアプリの多くの部分が親言語に依存しない形で書けるようになるんじゃないでしょうか。

2006年8月25日

開発合宿まっさいちゅう
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

ウノウでは現在、群馬県水上のペンションにて有志による開発合宿を行っています。
期間は8月25日(金)~27日(日)の2泊3日。参加者は8名です。
東京の喧騒を離れ、緑の自然に包まれた山中で、新たなサービスを生み出そうとがんばっているところです。
皆さん応援してください!(笑)

水上合宿
水上合宿 posted by (C) とんかつさんの写真
昼に撮影。テーブルは他に2台あります。

水上合宿
水上合宿 posted by (C) とんかつさんの写真
すぐ近くの川で一息つくウノウのエンジニア達。この5分後には土砂降りの雨で退散を余儀なくされました。

ペンション木馬2
ペンション木馬2 posted by (C) Shintaroさんの写真
現在の状況 その1

ペンション木馬3
ペンション木馬3 posted by (C) Shintaroさんの写真
現在の状況 その2