タグ

ブックマーク / labs.cybozu.co.jp (27)

  • Codespell – Java言語がそのまま呪文となる教育用3Dゲーム

    カリフォルニア大学サン・ディエゴ校の計算機科学者達が開発した Codespell は、一人称視点の3Dゲームなのですが、その一番の特徴は、プレイすることでJavaプログラミングを身につけられるという点です。 Codesp […] カリフォルニア大学サン・ディエゴ校の計算機科学者達が開発した Codespell は、一人称視点の3Dゲームなのですが、その一番の特徴は、プレイすることでJavaプログラミングを身につけられるという点です。 Codespellでは、プレイヤーは小動物ノーム(gnome)たちが住む土地にやってきた魔法使いです。ノーム達は過去に魔法を使って生活していたのですが、今は魔法をうまく使えなくなっています。魔法の呪文はJava言語プログラムで、物体を浮遊させるとか火を起こすといった7つの手持ちの呪文を使って、ノーム達を助け、火を消したり川を渡ったりといったクエストを解き、バッ

    Codespell – Java言語がそのまま呪文となる教育用3Dゲーム
    sabro
    sabro 2013/04/11
    セカンドライフのLSL言語でこういうことできるゲーム作ったら面白そうだな
  • 太陽光と砂漠を3Dプリンターに変えてガラス状の立体物を作るSolar Sinter

    マーカス・カイザーさんがサハラ砂漠で実験してみせたのは、太陽光を使って砂漠の砂を焼結させ、ガラス状の器を作るSolar Sinter(sinter = 焼結) エネルギー供給への不安と原材料不足という二つの問題に対する回 […] マーカス・カイザーさんがサハラ砂漠で実験してみせたのは、太陽光を使って砂漠の砂を焼結させ、ガラス状の器を作るSolar Sinter(sinter = 焼結) エネルギー供給への不安と原材料不足という二つの問題に対する回答となるこのプロジェクトでは、その両方がふんだんに存在する砂漠で、砂という原材料と太陽光というエネルギーを使って、三次元のガラス状の物体を作るというのを実演してみせています。 この機械の台の上に砂を巻き、その上をレンズで集められた太陽光が動いていくと、その部分が固まります。 さらに砂を重ねて、別の層を別の形に固めます。これを繰り返して、最後に固まっ

    太陽光と砂漠を3Dプリンターに変えてガラス状の立体物を作るSolar Sinter
  • スマートフォンのカメラに映った人の名前・趣味や社会保障番号を特定する技術

    (この写真は2009年に別の人が作ったコンセプト) カーネギーメロン大学のAlessandro Acquistiさんのチームが、市販の顔認識ソフトウェア、クラウドコンピューティングサービス、ソーシャルネットワークサービス […] (この写真は2009年に別の人が作ったコンセプト) カーネギーメロン大学のAlessandro Acquistiさんのチームが、市販の顔認識ソフトウェア、クラウドコンピューティングサービス、ソーシャルネットワークサービスの三つを組み合わせることで、オフラインの人物の顔と、オンライン側の情報を突き合わせるという実験を行なったそうです。 「自分の名前のタグがオンラインの写真につけられるようになったことで、これまで匿名性が守られると思われていた状況でも、他人があなたの名前とあなたの情報を結びつけることができるようになりつつあります」というコメント。近い将来は、あなたの友

    スマートフォンのカメラに映った人の名前・趣味や社会保障番号を特定する技術
  • Mapnificent – ある場所から一定時間でたどり着ける範囲を見せてくれるサービス

    Mapnificentは、Googleマップで移動にかかる時間を視覚的に教えてくれるというサービスです。 残念ですが日の都市は対応していないようなので、昔サンフランシスコで働いていた時のオフィスの場所で試します。 まず […] Mapnificentは、Googleマップで移動にかかる時間を視覚的に教えてくれるというサービスです。 残念ですが日の都市は対応していないようなので、昔サンフランシスコで働いていた時のオフィスの場所で試します。 まず、住所を入れるか、出発地点のベージュのマーカーを手で好きなところに置きます。 すると、そこから15分でたどり着ける範囲が明るく表示されました。左下の方向に飛び地のように明るくなってるのは、鉄道(BART)の駅ですね。左側とか左上方面は、バスが頻繁に走っている方向です。(1,2,3とか、30番とか) 右下のスライダーで、時間を変更することができます。

    Mapnificent – ある場所から一定時間でたどり着ける範囲を見せてくれるサービス
  • Yahoo!以前のディレクトリ、Google以前のロボット検索

    東京大学で「ウェブビジネスの歴史」についての講義をしてきましたで公開した講義資料の補足です。 1991年のウェブの登場から、大きなウェブビジネスの登場とその巨大ビジネスに個々のウェブサービスがどのように対応したか、という […] 東京大学で「ウェブビジネスの歴史」についての講義をしてきましたで公開した講義資料の補足です。 1991年のウェブの登場から、大きなウェブビジネスの登場とその巨大ビジネスに個々のウェブサービスがどのように対応したか、という歴史を、その歴史を生で見てない若者に解説する。という順序を追ったのですが、資料の中で、わざわざ、「Yahoo!が世界初のディレクトリではない」こと、「Googleが世界初のロボット検索ではない」ことを強調するために、それぞれの先行者について紹介しています。 どちらも、ウェブを検索して「世界初」と思われるものを見つけて紹介したわけです。 講義資料中に

    Yahoo!以前のディレクトリ、Google以前のロボット検索
    sabro
    sabro 2010/11/30
    僕も全く新しいもので成功したいという願望がある。自分の創作を認めてほしいクリエイターの気持ちと同じ気がする。既にあるサービスを改良する人は認めてもらうことよりは経済的成功かユーザの幸福を考えてるのかな
  • Kazuho@Cybozu Labs: C - a pseudo-interpreter of the C programming language

    « URL と Base64 | メイン | C-0.02 » 2006年01月06日 C - a pseudo-interpreter of the C programming language PerlRuby では、ワンライナーで処理が書けて便利です。でも、なぜか C では書くことができません。仕事上の都合で、小さな処理を C 言語で書く必要があったので、ワンライナーも書くことのできる C 言語のインタプリタ(?)を作ってみました。 ダウンロードして、 /usr/bin にでもコピーすれば、インストール完了です。 2005/01/10 追記: 最新情報は Cインタプリタ アーカイブをご覧ください 使い方は、こんな感じです。 % C -e 'printf("hello world\n"); hello world % C --help C - a pseudo interpret

    sabro
    sabro 2009/10/29
  • Kazuho@Cybozu Labs: SSD (フラッシュメモリ) のベンチマークと選定基準

    ベンチマークに使用したのは、一般的な HDD、高速性で有名な Intel の SSD、ネットブック (DELL Inspiron Mini 9) の内蔵 SSD (STEC 製, 32GB)、および SanDisk の SDHC カード (SanDisk Extreme III) です注。 この表を見て2つの SSD を比較すると、読み込みパフォーマンスの差がそれほど大きくないことに気づきます。また、SD カードの読み込み速度も、HDD を大きく上回っています。つまり、ランダムリードについては、メーカーや SSD 間の差は、あまり大きくない、ということになります。 一方で、書き込みパフォーマンスについては、非常に大きな差があります。X25-M と STEC の SSD の差は、実に 50 倍にのぼります (SSD の書き込みバッファをオフにした場合の値はこちらの表を参照のこと)。また、SD

  • Kazuho at Work: Using Top N Sort on MySQL

    One of the best practices on using MySQL is to avoid filesort. However there are cases where it is inevitable (e.g. ordering the result of fulltext search by modification date), and although in most cases we only the top N rows of sorted resultset are needed, MySQL does not implement top N sort. After wondering for couple of months if I should hack the MySQL core to implement top-N-sort, today I d

  • Kazuho@Cybozu Labs: MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話

    « フレンド・タイムライン処理の原理と実践 | メイン | MySQL の ORDER BY を高速化 » 2008年06月12日 MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 フレンド・タイムライン処理の原理と実践 の続きです。 先のエントリでは、プルモデルの速度が当初予測していたよりも遅かった (というより SQL レイヤでのオーバーヘッドが大きそうだった) ので、MySQL Internals メーリングリストで質問したりしながら、C++ で直接 InnoDB にアクセスするようなコードを書いてみました。 タイムライン構築速度 タイムライン/秒 SQL そしたら、10倍以上高速に! ベンチマークを perl ベースのものから mysqlslap に変えたのですが、プッシュモデルの 2/3 の速度が出ています。これなら、データサイズが約 1/10 にな

  • Kazuho@Cybozu Labs: フレンド・タイムライン処理の原理と実践

    « MySQL のクエリ最適化における、もうひとつの検証方法 | メイン | MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 » 2008年06月09日 フレンド・タイムライン処理の原理と実践 MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話に続きます。 Twitter が注目されるようになって久しい今日この頃ですが、友人の投稿を時系列に並べて表示する、というのは、Twitter に限らず Mixi の「マイミクシィ最新日記」やはてなブックマークの「お気に入り」等、ソーシャルなウェブサービスにおいては一般的な手法です。ですが、この処理 (以下「フレンド・タイムライン」と呼ぶ) は、一見簡単そうに見えて、実装には様々な困難が伴います。記事では、「フレンド・タイムライン」を実現する、プッシュ型とプル型の二種類の手法について、その原

  • テキストをマインドマップにするText2MindMap | 秋元@サイボウズラボ・プログラマー・ブログ

    Text 2 Mind Mapは、テキスト形式の入力からマインドマップを生成してくれるサービスだ。 左側のボックスで、タブを使って言葉と言葉の階層関係を作るだけでよい。Tabキーでインデントし、Shift+Tabでインデントを一つ減らす。 あとは、”Convert to MindMap”ボタンを押すと、右側にマインドマップが生成される。右サイド(3)の調整で色やフォントサイズを変えることもできて、(4)でjpgに吐き出すこともできる。 秋元4つの活動 日語も通ったし、これはよくできていると思った この記事は移転前の古いURLで公開された時のものですブックマークが新旧で分散している場合があります。移転前は現在とは文体が違い「である」調です。(参考)記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかも

    テキストをマインドマップにするText2MindMap | 秋元@サイボウズラボ・プログラマー・ブログ
  • Scheme 処理系 「Mosh 0.0.1」 をリリースしました (higepon @ cybozu labs)

    これは何か? R6RSという Scheme の新しい言語仕様に準拠することを目指している高速な Scheme インタプリタです。 ※インタプリタの名称を変更しました。 何が出来るの? PerlRuby で行っているような実用的なプログラミングができます。(現時点ではもちろん機能は限られますが) 例えばサンプルとして Mosh で書かれた Wiki が動いています。 なぜ Scheme なの? Scheme という言語が柔軟で素晴らしい言語だからです。 Scheme について知りたい方は、計算機プログラムの構造と解釈やプログラミングGaucheなどを読まれると良いでしょう。 ダウンロードとインストール Google Code からソースコードをダウンロードして下さい。 ソースコードのビルドにはGauche が必要です。 ./configure make make check make

  • Kazuho@Cybozu Labs: キャッシュの上手な使い方

    « C-0.05 | メイン | cygwin + mod_perl » 2006年02月08日 キャッシュの上手な使い方 キャッシュといっても、ウェブブラウザやウェブプロキシのキャッシュのことです。 ・Internet Explorer のキャッシュの動作 Internet Explorer は、同一ウィンドウ内で複数回同じウェブページを読み込む場合、2回目以降はキャッシュのデータを使用します (デフォルト設定の場合、 Last-Modified または Expires ヘッダがついている場合のみ)。 つまり、同じウィンドウの中で、 ページA を読み、次にページB を読み、そしてページA を再び読み込むようなケースでは、2回目にページ A を表示する際にはキャッシュのデータが使用され、ウェブサーバへの再問い合わせは行われません。 また、 Last-Modified ヘッダと Expire

  • Kazuho@Cybozu Labs: 高速なCometサーバを書いてみた件

    « Pathtraq 最新ランキング ガジェットを公開しました | メイン | Q4M (Queue for MySQL) 0.3 リリース » 2008年03月10日 高速なCometサーバを書いてみた件 もう昨年の2月になりますが、Comet について調査を行いました。その際の成果をまとめたスライドは既に公開していた (Comet の正しい使い方) のですが、同時に実際に作ってみた実装についても、オープンソース化することとなりました。コードは CodeRepos に置いておきますので、どうぞご覧ください。 (Revision 7754: /lang/perl/fastr) 使い方は example ディレクトリ以下を見ていただくとして、ベンチマークの結果とチューニング手法について、記録と記憶に残っている範囲からまとめておきたいと思います。 パフォーマンスについて まず、パフォーマンスに

  • 風鬼 – 擬似アイトラッキングを行なうヒートマップ生成サービス | 秋元@サイボウズラボ・プログラマー・ブログ

    FENG GUI(風鬼)は、ユーザがウェブページのどのあたりを良く見るのか、を色などでわかりやすく見せるヒートマップを、任意のURLやページ画像から作成してくれるというサービス。 普通なら、視線の位置を追跡するための専用メガネをつけたりして収集しないとどこを見ているか取れないので、専用のハードウェアが必要になる。 また、最近だとウェブカメラで目の動きを解析して視線を割り出すような技術が実用化されている。パソコンにカメラがついていて、被験者がカメラで撮影されることに同意していれば、ネット越しにでもユーザビリティテストが行なえるだろう。 しかし、このFENG GUIがやっているのは、もっとお手軽なもの。そのかわり精度は下がる。何をやっているかというと、ウェブページ上のどんなデザインに対して人が注目するのか、というデータを元に、「このあたり良く見られそう」という箇所を類推しているのだ。 どういう

    風鬼 – 擬似アイトラッキングを行なうヒートマップ生成サービス | 秋元@サイボウズラボ・プログラマー・ブログ
  • Kazuho@Cybozu Labs: setlock を使って cron をぶんまわす方法

    « データベースをコピーするモジュール DBIx::Replicate | メイン | Tritonn (MySQL+Senna) の join を高速化 » 2008年01月30日 setlock を使って cron をぶんまわす方法 事前計算や DB 再構築を手軽に実行するのに cron は便利ですが、タスクのまわし過ぎによるサービスのパフォーマンス低下や実行順序の制御を別途行う必要があります。自分は、そのためのツールとして、daemontools の setlock コマンドがお気に入りです。setlock は、flock を用いて、タスクの待機や実行中止を制御することのできる、とても小回りのきくプログラムです。 1-59/* * * * * /usr/local/bin/setlock -nx /tmp/precompute.lock /usr/local/bin/setlock

  • Kazuho@Cybozu Labs: Q4M - MySQL 上で動作するメッセージキュー

    « ウェブアプリケーションにおけるHDDの正しい使い方 | メイン | Pathtraq リニューアルのおしらせ (リアルタイム検索機能の追加ほか) » 2008年01月15日 Q4M - MySQL 上で動作するメッセージキュー 数年来ずっと「RDBMSに統合されたメッセージキューがほしい」と言ってきたわけですが、昨年末にストレージエンジンをプラグインとして開発できる MySQL 5.1 が RC になっていることに気づき、自分で作ってみました。 Q4M (Queue for MySQL) は MySQL 5.1 のプラガブル・ストレージ・エンジンとして動作するメッセージキューであり、堅牢・高速・柔軟であるよう設計されています。昨年12月遅くに開発が開始され、まだ非常に原始的ですが、かなり高速に動作します。 q4m.31tools.com 自分の英語を日語訳するというのも変なものですが

  • Javascript で実装した Ruby インタプリタ JSRuby 0.1 リリースしました。 (nakatani @ cybozu labs)

    « MyMiniCity 日語化 | メイン | JSRuby から jQuery を使う ( Javascript 連携 ) » Javascript で実装した Ruby インタプリタ JSRuby 0.1 リリースしました。 あけましておめでとうございます。 1月からサイボウズ・ラボのオフィスが引っ越しました。新年から気分も新しくぶりぶり仕事します。よろしくです。 というわけでちょっとずつ作っていました Javascript で実装した Ruby インタプリタの "JSRuby" を一区切り付けるべくバージョン番号を付けてリリースしました。 JSRuby Project Page (CodeRepos) http://coderepos.org/share/wiki/JSRuby JSRuby Test Page http://labs.cybozu.co.jp/blog/naka

  • Kazuho@Cybozu Labs: ウェブアプリケーションにおけるHDDの正しい使い方

    « ディスクが1回転する間に複数回 fdatasync する方法について | メイン | Q4M - MySQL 上で動作するメッセージキュー » 2008年01月04日 ウェブアプリケーションにおけるHDDの正しい使い方 データベース等のソフトウェアは一般に、停電やOSのクラッシュ時にデータが破壊されないよう、HDD へデータ保存が完了したか確認しながら処理を行うようになっています。その目的を果たすためにどのような API が OS によって提供されているか、少し勉強し直すことにしました。 下表のうち、赤い部分がデータの永続性が保証されない危険な手法、青い部分が安全な手法です。したがって、各行において出来るだけ左側の (高速側の) 、そして言うまでもなく青い色の同期手法を使っていることが望ましいということになります。 OS openモード HDD または RAID 内の書込先 キャッシュ

  • TAKESAKO @ Yet another Cybozu Labs: 続イメージファイト - HTML 2.0 New Browser Detection

    Shibuya Perl Mongersテクニカルトーク#8 で発表した「続イメージファイト」の資料を SlideShare で公開しました。 Shibuya.pm#8 続イメージファイト - HTML 2.0 New Browser Detection JavaScriptCSS Hacksを一切使わずにHTMLでブラウザを判別するハックの紹介です。 HTML 2.0 - Browser detection [3] ブラウザ判別のデモのページにアクセスすると、使っているブラウザの画像が表示されます。 このimgタグのsrc属性はfirefox2.0、firefox1.5、その他のGeckoエンジンを搭載したブラウザ、Safari2、Safari3、Opera、ie、w3m、lynxなどのブラウザの判別に対応しています。 テキストブラウザの判別