カレントバッファを.oでmake

プロジェクトをmakeする際に、自分が作業しているファイルだけmakeしたいのに、
:make
とかやると、全体がmakeされちゃって待ってらんないよ!
っていう人が使えば幸せになれるvimスクリプト


.vimrcに追加

412 " カレントバッファを.oにてmake
413 function! MakeExcute()
414     execute 'make ' expand("%:r") '.o'
415 endfunction


適当なショートカット割り当てる。

418 nmap <Space>o :call MakeExcute()<CR>


あとは、プログラミング中に実行すれば、そのファイルだけコンパイル!!

第弐回天下一カウボーイ大会に参加した + CyberSpaceCurryboys...

今日8月24日に開催された天下一カウボーイ大会に参加してきました。
http://onosendai.jp/championship2008/


いろいろ考えさせられる内容で、勇気をいっぱい貰いました。
登壇して、お話をされた方々に感謝です。


まとめると
人間の五感が次のアーキテクチャのテーマになっていて、未来が見えてくる。
人間を知る事で、未来がわかる。
過去を知る事で、未来がわかる。
今がいろいろ変わっている最中。
未来を掴む為には、手を動かす事が大事。
カレー。


つらつらとそれぞれの感想を書いてみました。

「21世紀を生きるカウボーイたちへ」by 水口哲也

セガに入る前の活動から、セガに入ってから、そして退社後のQ Entertainment、元気ロケッツの活動を1時間30分で一気に駆け上がっていき、水口哲也とはなんだということをこれでもかと表現した時間だったかなと思います。
印象に残ったのは、水口さんの中に確信たるものがあって、それを実現してきたということ。
振り返ってみるから感じてしまう印象なのかもしれないけれど、本人も「作るものすべてに理由があります」と言っていたので、そうなんでしょう。
その水口さんだからこそ「常に新しい視点が新しい意識を生む」という言葉が出てくる。
改めて『すごい』人なんだと認識させられました


見るべき作品リスト

  1. Rez HD
  2. ルミネス
  3. 羅生門
  4. マイノリティレポート
  5. Powers of Ten
  6. The Whole Earth Catalog

「文明と文化とAR」 by 鈴木健安倍吉俊、田中泰生

アイソレーションタンクというものがあることを初めて知りました。
面白そうだなぁと聞いていて率直に思いました。


専門学校生の頃、家族が寝静まったあと温い暗いお風呂に入って色々考えたことを思い出しました。
ちょうどあんな感じのものをもっと追求したものなのだろうなと想像出来ました。
何も感じないという状況が、自分の考えていることが色々払拭されていくのは、すごく刺激的だった。
話を聞いていると、タンクに入るとそれ以上のことが起きるらしい。
広さの感覚が無くなったり、思い出せなかった記憶が思い出せたり。
一度体験してみたいものです。


その他の話は、人間が人間たる本質とはなにかということと、ブレインマシンインターフェイスという言葉が刺激的でした。
そういった脳をコンピューティングするとか話している人達が身体も大事だと言っていたのがちょっと面白かったのと、少し安心しました。

モバイル Eye Trec by オリンパス工業

インスパイア型ユビキタスサービスを求めた結果の一つ。
完全ワイヤレスでメガネとしてきちんと違和感なく付けられ、その上にRSS配信されたテキストが表示される。
このエクスペリエンスは体験して初めて良さがわかる。
ふつふつとわき上がってくる、すごいという感情は押さえきれたもんじゃないですね。
未来が今ここにあるという感覚を味わえます。
ゲームが遊べる時代はいつ頃来るでしょうか。

dolipoに学ぶSNS活用型開発手法 by drikin

すごいソフトを知ってから、GUIを実装するまでの時間が早い。
まとめとして、小物でも大物に負けない為には

  • 知恵と勇気で勝負しましょう
  • みんなの力をちょっとずつ借りる
  • なにはともあれ手を動かそう
  • 恐れずに世に問おう

ということはかなり心に刺さりました。
SNSを使った開発方法もこの時代が求められるべきものの一端が見れたのかなと思います。

はじめて読む486」ができるまで by 蒲地輝尚

CPUの発達の仕方をわかりやすく説明してもらえて、ああそういうことなのかと、かなりの部分で納得出来たし、興味をそそる内容でした。
それを知るということはプログラムをする上で大事だ、ということはC言語をある程度出来るようになった身としてはわかりました。

仮想社会計画 by 松田晃一

ソニーで1990年代に仮想世界を模索していた話はかなり刺激的に映りました。そして今セカンドライフ後の仮想世界ブームの中に半身突っ込んでる身としては、感慨深い内容でした。
というか、今やってることが既に10年も前に行われていたというのが衝撃すぎて、かぶりつき過ぎで見てしまいました。


ので、最後のほう駆け足だったのが残念で、残念で。もっと10年前はどうだったのかというのを聞きたかった。
特に5000人のログを調査した部分

  • 犬と人間とのチャット回数
    • 10回に1回犬としゃべってる
  • 犬と遊ぶ人が多いがそのうち下がってくるが
  • 人とのコミュニケーションがでかくなる
  • イベントはコミュニケーションが大きくなると多くなる
  • アイテムの売れ行きはコミュニケーションが増えると増える

とか、参考になるかなと。


その時代と現代で変わっている最大のことがUGCUCCであり、それこそが次の仮想世界のテーマなのかなと確信しました。
改めて、とても楽しかったです。

私的所有の生物学的起源 by 鈴木健

起源とはなにか、こころとはなにか、変化をさせるとはどういうことなのか。
考える場所をぐっと下げて、改めて考えると、人間とはなにかが見えてくるという発想は面白かったです。


そして、表現物の多様性、存在が表現物になりつつある現代人から見えてくる未来のアーキテクチャと、なんだか不思議な気持ちになりました。

World of Warclaft hacks. by 小野和俊

相変わらずのWoW愛で、楽しく聞かさせてもらいました。


WoWでLua言語を使って拡張(addon)が作れるのは、なんとなく知ってましたが、改めてきちんとプレゼンされるとすごいことだなと思いました。
ユーザーに拡張させるという考え方はやはり今後のMMOの主流になってくるのではないかと、その後他の人と話をしていて思いました。


あとは、Stalkerのようなハラスメント行為が出来てしまうという事実も知れて、そういった危険性も秘めているなと、また別の人と話していて認識しました。
ただ、こういったことをおおっぴらにトンと世の中に出せてしまう日本の企業があると、良いかなと思いました。韓国やアメリカからこういった流れは出てきているので。

History of Windows and beyond... by 楠正憲

windowsの歴史をエミュを使ってDEMOしてくれたことに感激でした。
あの時代生まれてなかったり、PCを触れていなかったので、ああいったものがwindowsの文脈として流れているのだなと認識できただけでも良かったです。


また、簡単にいろいろなアイディアが実現出来る場所を作りたいという発想は、いまいろんなところで、いろいろな人達が挑戦しているので、その一つとして成功して欲しいし、新しい視点を僕らに示して下さい!

私とMaciPhoneと by 近藤誠

iPhoneをみごとに乗りこなしていて、楽しそうだなぁと見ていました。


iBreakOutで感嘆の声を上げなかった一人でもあるんですが、*1ああいったアイディアを実行する素直さは、自分の忘れていたものを呼び覚ましてくれたかなと思いました。
あんだけ感嘆の声が聞かれた事に驚いたんですが、やはりまだまだ通信部分のインターフェイスを知らない人が多いんだなぁと思った次第です。


ゲームポリモーフィズムはこれからのネトゲの課題なのかな。
ViZiMoとかそういった流れを組めそうだよね。
詩は爆笑しました(笑)

新しいデスクトップ環境の提案 by 筧豪太

新しいデバイスを作ってしまうというハードハックは考えもしないことだったので、大変興味深く聴きました。
結構適当に作っているように見えて、きちんと考えられている仕組みも大変勉強になった。


エモーショナルデバイスはなんかどっかで聴いた事があって、そういう分野もあるのかーくらいだったけど、こういったDEMOを見せられると、わかった気がします。

人間のI/OをHackする by 稲見昌彦

昔見た、光学迷彩を実現しているビデオの人がしゃべっていると気づいたときは、衝撃でした。
ああああああああああああああああ、あの人かあああああああああああああ。
という感じに。
アイディアがあってそれを技術に落とし込むところを実際にやってしまっている人というのは、見ていて楽しい。
以前見たときはよくわからなかった、あの映像を改めて説明されて、実装の方法とかが良くわかって、なるほどなーと思ったりしました。


荒野に出よという訴えをしっかり受け止めたいと思いました。

PlayStation CAMP by SCE

ゲームやろうぜ!が前身と聞いて、ああそんなのもあったなぁと懐かしく思いました。
ここからどこでもいっしょやXIが生まれていたんですね。
面白いゲームが出来てくることを楽しみにしてします。

alty party

なんかバブルがそこにあるという感じで、違う世界を見た気がしました。
大変貴重な体験をさせてもらって、楽しかったです。
ビンゴは当たりませんでした。

CyberSpaceCurryboys

帰ったあとに、オリンピックの閉会式を見ながら、開封してみました。
twitterに悲惨さを書き込みながら、食いましたが、twitter-erにも大人気でした!


これはひどい


食った


着色料によって胃が拒否反応を示した意外、普通に美味かった。

*1:言いたい事は予想出来たし、iPongのプロトコルをその前に話されてたので普通だと思った

xpwikiの画像プレビュー(lightbox.js)がIEで動かない件について

「まともに」をつけるの忘れた><


社内のプロジェクトで使っているxoopsにxpwikiを導入しています。
xpwikiで画像を貼り付けると、クリックで画像のプレビュー(拡大表示)がその場で出来るようになります。
これはLightbox 2.02(lightbox.js)にて提供される機能で、実にインタラクティブで使いやすです。
http://www.huddletogether.com/projects/lightbox2/


しかしIEでは、プレビューまでは表示されるが、プレビューを閉じると画面が暗くなったままの状態になってしまうというバグがあります。
これはLightbox 2.02がIEに対応してないからです><;


これを直すには、xpwikiのサイトから最新のlightbox.jsを落としてくればいいわけですが*1、どうせならlightbox.js側をバージョンアップさせて対応させてしまったほうが、使い勝手も良くなっているので良いかと思います。
最新のバージョンは2.04ですが、ちょっと変わり過ぎているので簡単な設定でバージョンアップできる2.03.3にします。


ちなみに、2.03.3にすると画面幅までしか拡大しなかったプレビューが画像サイズに合わせてプレビューされるようになり便利です。


2.03.3はreleasesディレクトリから取得して下さい。
http://www.huddletogether.com/projects/lightbox2/releases/


DLして、解凍したディレクトリはこんな感じになってます。

lightbox2
├	index.html
├ 	css	─	lightbox.css
├ 	js	┬ 	effects.js
│	 	├ 	lightbox.js
│ 	 	├ 	prototype.js
│ 	 	└ 	scriptaculous.js
└ 	images	┬	closelabel.gif
 	 	├ 	loading.gif
 	 	├ 	nextlabel.gif
 	 	├ 	prevlabel.gif
 	 	└ 	etc...


このままではxoopsでは使えないのでjs内のlightbox.jsを、diffを参考に変更します。

65,66c65,68
< var fileLoadingImage = "images/loading.gif";          
< var fileBottomNavCloseImage = "images/closelabel.gif";
---
> //var fileLoadingImage = "images/loading.gif";                
> var fileLoadingImage = wikihelper_root_url + "/skin/loader.php?src=loading.gif";              
> //var fileBottomNavCloseImage = "images/closelabel.gif";
> var fileBottomNavCloseImage = wikihelper_root_url + "/skin/loader.php?src=closelabel.gif";            
188a191,208
>               //if (!document.getElementById('body')) {
>                       var anchors = document.getElementsByTagName('body')[0].getElementsByTagName('a');
>               //} else {
>               //      var anchors = document.getElementById('body').getElementsByTagName('a');
>               //}
>               
>               // loop through all anchor tags
>               for (var i=0; i<anchors.length; i++){
>                       var anchor = anchors[i];
>                       
>                       var typeAttribute = String(anchor.getAttribute('type'));
>                       if (anchor.getAttribute('href') && (typeAttribute.toLowerCase().match('img')))
>                       {
>                               anchor.setAttribute("rel", "lightbox[stack]");
>                               anchor.onclick = function () {myLightbox.start(this); return false;}
>                       }
>               }
>               

2.03になった時点で、anchorに勝手にlightboxのrelを付けるスクリプトが排除されているので、ソレを2.02から持ってきて追加しただけです。


lightbox.cssも変更が必要です。

47c47
<       background: transparent url(../images/blank.gif) no-repeat; /* Trick IE into showing hover */
---
>       background: transparent url(./loader.php?src=blank.gif) no-repeat; /* Trick IE into showing hover */
52,53c52,53
< #prevLink:hover, #prevLink:visited:hover { background: url(../images/prevlabel.gif) left 15% no-repeat; }
< #nextLink:hover, #nextLink:visited:hover { background: url(../images/nextlabel.gif) right 15% no-repeat; }
---
> #prevLink:hover, #prevLink:visited:hover { background: url(./loader.php?src=prevlabel.gif) left 15% no-repeat; }
> #nextLink:hover, #nextLink:visited:hover { background: url(./loader.php?src=nextlabel.gif) right 15% no-repeat; }

パスをloader.phpに変更します。


xoopsへの更新はXOOPS_TRUST_PATH/modules/xpwiki/skin/内のファイルを更新するだけです。

更新ファイル一覧

追加ファイル一覧

これでlightbox.jsを2.03.3に更新でき、IEでもきちんとプレビューできるようになります。
やったね!

*1:最近まで放置されてたっぽいですが・・・

結局セカンドライフとは何だったのか。

結論から言ってしまえば、セカンドライフは質の悪いネットスケープ*1であるということです。


virtualworld-conference-expo.net – このドメインはお名前.comで取得されています。
のカンファレンスが今日、東京ビックサイトで行われました。
セカンドライフを初めとした仮想空間サービスのカンファレンスです。


カンファレンスのアジェンダはこちら。
http://virtualworld-conference-expo.net/program/

見てもらうとわかりますが、結構豪華な講師陣です。
通して聞くことにより、セカンドライフがどういったものであるかが明確化されたと思いました。
それが最初に言ったネスケであるということでした。それも質の悪い。


まずはわかりやすい、なぜネスケなのかということを。
講師陣の方がしきりに言っていた言葉に、webの創世記と同じような現象がセカンドライフに起きているということでした。

  1. コアなユーザーが取り組んでいて、コミュニティーが出来ている。
  2. 教育機関が研究対象として価値を見いだしている。
  3. 遅い、敷居が高い、一般ユーザーに広がらない


さて、webにおいてネスケがコレだったわけですが、それを解決したのがインターネットエクスプローラでした。そのIE的なことがセカンドライフにも起これば、すべて解決ー!
というのが描きたい形なんだそうです。
僕もぜんぜんそこには異論はなくて、そうなるだろうと思います。


なる。なるんですが、webのブラウザみたいにそう簡単には行かないのが現状のセカンドライフというものだということをみんな考えないといけないのです。
そうですね、ブラウザにおけるインフラはインターネットでした。
さて、セカンドライフのインフラはなんでしょうか?それはセカンドライフそのものです。
残念ながら、このインフラの上にIEは生まれません。


生まれないのです。
生まれないのです。


大事な事なので2回言いました。


しかし、セカンドライフ上で何かをしたいという人達が確実に進展してしまっています。
ここで、webの成長と似てしまっているというのが良くない事に拍車を掛けています。
似ているために、既に僕たちは成功例を知ってしまっているため、そこで何をすればいいのかがわかっています。どういったことをすればビジネスになるか知っています。
中途半端なインフラ上でビジネスをしたらどうなるのでしょうか?
考えなくてもわかりますよね。


しかも、次のセカンドライフがなかなか生まれなくなるということも含んでいるから最悪です。
僕たちが求めるものが、現行セカンドライフで中途半端に出来てしまうため、次が生まれないのです。


だから、質の悪いネスケなんですねー。


でも悲観することはありません。
このカンファレンスの2講演目でIBMの人がインフラを整えるという講演をしました。
2〜3年でインフラがやってくると言っているので、それからがバーチャルワールドの出発点になるのではないかと思っています。


では、ダレットやViZiMOなどのセカンドライフ以外のバーチャルワールドはなんであるのか?


先のセカンドライフの位置づけであるなら、別のものということが良くわかるかと思います。


講演をしていたViZiMOとダレットだけに限れば、この人達はバーチャルワールドを創りたいのではなく、3DSNSが創りたいということです。
しきりにコミュニティと唱え、SNS的方法論で場の話題が広がってほしいと。
バーチャルワールドではなく、それは単純にSNSなんじゃないかということですね。
そこに、リアル店舗があったとしても、それはバーチャルワールドなのではなく、SNSに出てくる広告なわけです。
バーチャルワールドであると開発や運営が思っている状態では、きっとうまくいかないのは目に見えていたわけです。


この二つのことがわかったことで、見えてくることはなんでしょうか。
色々ありますよね。


このカンファレンスは凄く良いターニングポイントになったと思います。
いやぁセカンドライフから学べる事はたくさんありますね。

*1:ここで言うネットスケープは、最初のブラウザという意味のものです。

シアトルに来て思った事

今週の頭から会社の出張扱いでIONGameConference(Online GDC)に参加する為、アメリカのシアトルに来ています。
http://www.ionconference.com/


とりあえず今日までにシアトルに来て思った事をつらつらとあげてみようかと思います。


写真もつけておきます。

シアトルに来て既に景色だけでも400枚くらいは撮っている。
講演のスライドを撮っているのでそれと合わせると600枚はある。
このままいくとシアトルに滞在している最中に1000枚は確実。

  • すべてが英語だ
    • 英語でもむかつくしゃべり方のやつはいる。万国共通なんだなぁ
  • 坂がいっぱい
  • バス
    • 普通のバスと路面バス(路面電車みたいな電気で走ってんのか?)がやたら多い
    • どこの通り行ってもバスを見かける
    • 当然バス停も多い
  • スターバックスw
    • 区画に一つはあるんじゃないかと思うくらいある
    • 日本のコンビニに近いかも
    • というか日本のコンビニ代わりなんだろうなぁ。appleポイントとかCDとか売ってるし
    • ホテルにスターバックスコーヒーというコーヒーが置いてある
  • 寒い
    • 息が白いんですけど
    • 港町だからなんだろうけど
    • でも日本のように凍てつく寒さというわけではない
    • 日が出ると暖かいので凄い不思議な感じ
  • 小雨では傘をささない
    • 少しはさしている人もいるけど
    • 天気予報では雨っていってたけどなぁ
  • いつまでも明るい
    • 白夜かと思うくらい日照時間が長い
    • 20時とかでも日本の17時とかぐらいの明るさ
    • これはサマータイムを導入せざるを得ないなと思った
    • 余計時差ボケするわw
  • 時差
    • 昨日が今日で、明日が昨日みたいな
    • メールのやりとりするとわけわかんない
  • 携帯電話
    • AT&Tの天下っていう感じ。携帯電話ショップもほとんどAT&T
    • 歩きながら弄っていない(若者も)
    • IONGameConferenceではiPhone率高しw
  • ポリスマンを見ない
    • 稀にサイレンの音を聞くくらい
  • ありえないビル
    • 地震が起きないから出来る芸当なんだな
  • そこまでマリナーズではない
    • セーフコフィールド近くに行ってないかわからないけど
    • 稀におじさんがマリナーズのジャンパー着てる(日本と大差ないな)
  • 食事はうまい
    • 場所を選んでいるからかもしれないが食えないってことはない
    • ただ量は多い。朝からあの量はねーよ
    • ポテトが好きだな。毎食ポテイトを食った気がする
  • IONGameConference
    • すべてが英語だ
    • だんだん脳が麻痺してきて素直に英語が入ってくるが意味がわからないので不思議な気分になる
    • 講演の途中に質問をする。もちろんQ&Aの時間はある
    • ホテルで行われているからかランチはおいしい
    • あまり聞いても仕方が無い講演が多い
    • ゲームの考え方もアメリカと日本ではやっぱり違う


気づいたら、どんどん追加していきたい。

KeyRemap4MacBookでcontrolにescapeを割り当てる

macでキー配置を変更するために、http://www.pqrs.org/tekezo/macosx/keyremap4macbook/を使わせて貰っています。
ありがとうございます。


kana<>eisuuのトグルとか素晴らしいんですが、自分で任意には割り当てられません。
control_Lに割り当てるもので、どうしても欲しいescに変更が見当たらなかったので、自分で追加することにしました。


やり方はここを見ながら行いました。
すげー簡単に追加出来たので、これがあればキー配置に関してはもう問題無さそうです。


以下に、作業diffを置いておきます。

$ hg diff
diff -r 791780e11fbe files/prefpane/checkbox.xml
--- a/files/prefpane/checkbox.xml	Thu May 01 10:42:38 2008 +0900
+++ b/files/prefpane/checkbox.xml	Sat May 03 11:08:12 2008 +0900
@@ -162,6 +162,10 @@
         <item>
           <name>Control_L to Shift_L</name>
           <sysctl>remap.controlL2shiftL</sysctl>
+        </item>
+        <item>
+          <name>Control_L to Escape</name>
+          <sysctl>remap.controlL2escape</sysctl>
         </item>
       </list>
     </item>
@@ -1171,5 +1175,6 @@
         </item>
       </list>
     </item>
+
   </list>
 </root>
diff -r 791780e11fbe src/kext/remap.cpp
--- a/src/kext/remap.cpp	Thu May 01 10:42:38 2008 +0900
+++ b/src/kext/remap.cpp	Sat May 03 11:08:12 2008 +0900
@@ -191,6 +191,14 @@
     if (! config.remap_controlL2shiftL) return;
 
     RemapUtil::modifierToModifier(params, ModifierFlag::CONTROL_L, ModifierFlag::SHIFT_L);
+  }
+
+  void
+  remap_controlL2escape(const RemapParams &params)
+  {
+    if (! config.remap_controlL2escape) return;
+
+    RemapUtil::modifierToKey(params, ModifierFlag::CONTROL_L, KeyCode::ESCAPE);
   }
 
   // ----------------------------------------
@@ -2032,6 +2054,7 @@
   remap_controlL2fn(params);
   remap_controlL2optionL(params);
   remap_controlL2shiftL(params);
+  remap_controlL2escape(params);
 
   remap_commandL2controlL(params);
   remap_commandL2optionL(params);

macbookを買った。

去年から、色々勉強会やカンファレンスに参加する機会が増えたので、ノートパソコンが欲しいと思っていたのだけど、5月に出張で海外に行くことになったので、思い切って買ってしまった。


いろいろ迷ったけど、憧れのmacにしました。
2番目に安い光ディスクドライブのほうを買った。
15万くらいだったかな。


買ってからやったことは、amachangさんのMacBook 買った後にやったことまとめ - IT戦記を見ながらセットアップ。
再インストールはせずに、XToolsとか入れた。


あとは、twitterpod入れたり、キー配置変更ツール入れたりして遊んでました。
gccとかunix環境がクライアントにあるというのが最高ですね。


.vimrcの変更も早速行って、test.c書いてhello worldやってみたり、楽しすぎるし。
mac最高ー!