.NETラボ勉強会 8月

先に宣伝をしておけば良かったのですが「.NETラボ 勉強会」で2時間程話をしてきました。
http://dn-lab.net/tabid/107/Default.aspx

今執筆中の「至高の技VB2008」から、そのままネタを持ってきて、主に

・SQL Server/Oracle/MySQLの準備の話
・ストアドプロシージャの話
・.NETストアドプロシージャや全文検索など諸々

いきなり反省点ですが、さすがに2時間続けて、というのは聴衆もお疲れで。聞くほうも大変。
やっぱり、この手のは1時間区切りが限界ですね。あと、えムナウのセッションを見て改めて思ったのですが、ほどよく話が簡単でないとつたわら伝わらないような気がしました。その場で理解をしないといけないので、私のように詰め込みすぎ(まぁ、今回は実験的な意味も込めて「詰め込んで」みたかったわけですが)なのは、消化不良というか、話がこんがらってしまいます。
そのあたり「本」とは違いますね。読み返せないのが難点。

というわけで、せっかく資料を作ったのでUPしておきます。

http://moonmile.net/wiki/index.php?.NET%E3%83%A9%E3%83%9C%E8%B3%87%E6%96%99

ストアドプロシージャの話はごちゃごちゃしてしまったので、もう少しまとめてブログで書き綴ってみる予定。

カテゴリー: 開発 | 2件のコメント

赤羽喫茶の会

mixiに全国喫茶の会というものがあるのですが、それの「赤羽喫茶の会」に行ってきました。

赤羽駅の東口にある「友路有」という店 http://www.kissaten.jp/ です。

自前でサイフォンの珈琲を入れられる、というか、自前で入れないといけない東京のお好み焼きの感覚の店です(関西ではお好み焼きは焼いてくれる。広島では自分で焼くなぁ)。いえ、普通の珈琲もあります。

大学の頃は喫茶店に入り浸っていたので、そんな雰囲気の店。ジャズ喫茶よりは(当然)静か。ミスタードーナッツの上の2階というのが不思議な感覚ですが、スターバックスやベローチェ、ドトールとは違った「喫茶店」が味わえます。商店街の身内喫茶店よりも入りやすい感覚で行けます。

この喫茶の会ですが、いわゆる異種業種交流ということで普通の人(?)が来ます。IT業界の集まりは常々行くことが多いのですが、普通の話ができます。というか、他の業界の話が普通に聞けます。それぞれ専門があって仕事があって、何かしらこだわりがあってという感じですね。

私としては何を期待して行ったのかと言えば、第一にサイフォン珈琲だったので、一人で珈琲豆をごりごりやってました。4人(最終的には5人)の中でひとりごりごり豆をひいている姿は異様な感じもするのですが、前回の赤羽喫茶の会では4人ごりごりやっていた訳だそうで、かなり異様ですね。この異様さはネタ的には慣れているのでいいので、まあ抵抗はないのですが。

話としては雑談(?)が中心なんですが、なんだろう会社員の集まりとは違うのは、それぞれ独立しているからですかねぇ。異業種交流会ってがつがつした印象が強いのですが、喫茶店で座って茶を飲みながら話して、お酒が入らないので大声にもならず、ソファに座ってだべって、なんか外を見て会話を聞いて、本棚を眺めて会話を聞いて、という雰囲気は結構好きです。

そうそう、フードコーディネータの仕事を垣間見れて楽しかった。「Heaven?」と「おいしい関係」を思い出しました。

カテゴリー: 雑談 | 赤羽喫茶の会 はコメントを受け付けていません

ブログ検索(仮3)

至高×技の原稿書きに苦戦中…SQL ServerとOracleとMySQLとAccessと同時にSQL書くのは辛い…と愚痴をこぼす。

閑話休題

どうやら他に興味を発散/拡散させていないと煮詰まってしまうらしい(本当?)ので、少しブログ検索(仮)を考えてみる。

イーストプレスの「Google誕生」を図書館で借りて読んでいるのですが、会社のスタートアップの資金面で参考になるところあり、ビジネスのモデルとしての参考になるところもあり、そしてGoogle検索の弱点も見えてきたような気もし(本当?)。

Google誕生 —ガレージで生まれたサーチ・モンスター

Googleの「検索」をするときには

1.キーワードを入れる。
2.「検索」ボタンを押す。
3.検索結果が表示される。
3.1 検索結果にプレビューが含まれる。
4.検索結果のリンクからジャンプする。

ってのを繰り返す。
最近は先のSQL関係で調べものをすることが多いので、IEのタブ機能を使ってあらかじめぽちぽちと4,5個ぐらいクリックして開いておく。そしてざっとみて閉じる、を繰り返してたりします。

これを繰り返しているうちに、いくつか気づいたことを書きだすと、

1) 検索先は、IT技術系とIT技術系以外の2つに分けられる。
2) プログラミング系はリファレンスが最初なはずなのだが、サンプルを含めると探すのが大変。
3) サンプルコードは色々なレベルが混じっている。
4) (当たり前だが)検索結果はカテゴリ化されない。
5) 考えてみれば、まとめサイトを検索した後、他のブログを検索するほうがよい。
1)は乱暴な話だけど、仕事用の検索と、それ以外の検索では求めるものが違うということ。あるいは、IT技術系の話がインターネットに溢れかえっている(その他のページとの比率はどのくらいなのだろう)ということ。これは、技術的な発端がIT系であることだし、パソコンを使う頻度が一番高いのがIT系だろうし、ということで仕方がないところもある。あるいは、IT系のもののほうがインターネットに載せるのが楽ということもあり、逆に言えばIT以外の技術はインターネットに載りにくい、という傾向もある。

何かの商品を検索してみるとわかるのだが、大抵はamazonか楽天に引っ張られる。比較サイトだと価格.comとか、Yahoo!の口コミサイトとか。何かを「買う」ときはそれでいいのだけど、あるいは何かを「比較」するときはそれでいいのだけど、

a)その商品がどんなものなのか?
b)いつ頃発売されたものなのか?
c)代替するものはあるのか?
d)どの位の人が買っているのか?
e)使いごこちはどうなのか?

というような、「買う」いわゆるビジネスに直結しないものは検索しにくい。

が、何処で検索すればいいかは大体わかってきている。
インターネット検索の黎明期(インターネット黎明期ではない)の2000年頃、つまりはGoogleやYahoo!の検索が本格的に使われた頃には、ネットワークを縦断して検索したほうが当たりが多いのだが、今はあれこれサイトが多すぎて(広告だけブログとか、アダルト系とか)検索結果にゴミが混じる率が高くなってきている。おそらく今後も高くなると思う。

これをGoogle側の検索技術に頼ってもいいのだが(一方で頼るわけだけど)、

a)のような商品の写真、プレス記事、なんてのはプレス記事のサイトを先に検索したほうが早い。
おそらくITの日常化ができているからだと思うんだけど、日々私が見るサイトは限られている。余り新しいものには当たらない。これはGoogleで検索していても同じで、同じ技術サイトや同じブログに突き当たる。

ということは、人は何かを「検索」するときには何かを「目的」としているわけで、検索自体を楽しんでいる訳ではない(楽しむ場合もあるけど)。それが、自然言語で検索できる アスクジープスだったわけだけど、日本のask.jpは最近閉じられている。日本語の検索が難しかったのか、自然言語で検索するのが難しかったのか、はたまたgoogleと競合してしまったのか(協調しているはずなんだけど)。

幸いにしてask.comは生きているので検索するのだが、自然言語で検索するのは難しい。

というか、一発で検索するのは無理があるのでは?と思った次第。

例えば「Oracleの初心者が使うような本でいいものは無いか?あるいはネットでいいサイトはないだろうか?」という質問に対して。

「Oracle 入門書 評判 良い」
「Oracle サイト 初心者向き」

でGoogleを検索してもよいのだが、これを人に問い合わせるときは

A「Oracleを知りたいんだけど?」
B「Oracleのどんなことを知りたい?」
A「ああ、初心者なんでいまいちよくわからなくて」
B「インストールの方法?それとプログラミング?」
A「プログラミングの方かな?」
B「他のデータベースは触ったことはある?」
A「いや、まったくない。そもそもデータベースがなんだかよくわからない」
B「じゃあ、Oracleの簡単な解説の本と、簡単なプログラムの本がいいかな」
B「プログラムは何を使っている?」
A「一応、Javaを使っているけど」
B「なら、このJavaでアクセスできる本がいいんじゃない?」
A「本じゃなくてサイトもあると売れしいんだけど」
B「JavaでOracleにアクセスする解説をしているサイトがあるから、ここを読むといいよ」

な感じで会話が進んでいるハズ。
当然、Aは問いかけるのだが、一発で喋れるわけではない。そもそも何が分かっていて何が分かっていないかが分からない。無知の無知というやつだ。
これを専門家のBに聞くと、

 ・初心者なのか上級者なのか?
 ・システム屋なのかプログラマなのか?
 ・プログラマならばどんあ言語を使うのか?
 ・本が欲しいのか、ネットでサイトを知りたいのか?

ぐらいは質問を返してくるハズだ。
(いわゆる、Aがメーリングリストで言われていた「教えて君」状態だったり)

だから、Googleの一発検索あるいは検索した結果を絞り込み、という方法ではなくて、なんらかの示唆が途中で必要になる。実は図書館員の質問の受け答えが先の問い掛けになる。

これを「カテゴリ」→「検索」という先にカテゴリがが来ては駄目で(これは後日理由を書こう)、Aが何かを発したときに、Bが何かを示す、という順番でなくてはいけない。

という訳でブログ検索(仮)の話はまだ続く。

カテゴリー: 雑談 | ブログ検索(仮3) はコメントを受け付けていません

Ubuntu 9.04 インストール

しばらく避けて通っていた(謎)Ubuntuをインストールしました。

20090622_01

Ubuntu Japanese Team
http://www.ubuntulinux.jp/

から、デスクトップ版とサーバー版をダウンロードしました。
VMWare版とVirtualBox版ばありますが、今回はCD-ROM版をダウンロードして、VMWare Workstation にインストール。
# HDD容量が不明なので。
# あとインストール画面が見てみたかったので。

■デスクトップ版

デスクトップ版のインストールは特に問題なし。なんとなく入れても大丈夫そうで、Windows XPやVistaよりも早く終わります(10分弱ぐらいかな)。
ネットブック用にアレンジしたバージョン http://www.ubuntu.com/getubuntu/download-netbook もあるので、5万円パソコンに入れても大丈夫そう。

さて、デスクトップ版の場合、PCに直接入れて使う方が多いのでしょうが、私の場合 Vista 上のVMWareに入れて使います。かつ、VistaはノートブックのVaoi Type-T からリモート接続するので、ちょっとマウスの動きが面倒臭い。サーバー版のように telnet だけを使う場合はよいのですが(これがほとんどなんですけどね)、Windows から Linux へリモートデスクトップできれば便利。

なので、これも避けて通っていたのですが、VNCを使います。
# 昔~使おうとして、動作が遅かったのですが、Linux -> Windows の場合は X Windows 経由だからよいかな、と。

VNC の場合、サーバー(この場合はLinux)のほうにもインストールが必要のですが、Ubuntu の場合は既にサーバー(vino)が入っています。
なので、クライアント版をWindows Vista/XPに入れればOK。

VNC ダウンロード
http://remomani.com/download.html
VNCでUbuntuへ
http://nexus7.at.webry.info/200811/article_6.html
本家 RealVNC
http://www.realvnc.com/
# 気になる場合は本家で Free 版をダウンロードすればOK。

20090622_02

Windows -> Windows のリモートデスクトップよりも、多少もたつきまが、十分使えます。無線LANでつないでるのが原因かもしれませんが。
これで、リモートデスクトップ→VMWareの画面、という二重苦のマウス操作から抜け出せます(苦笑)

■サーバー版

さて(私にとって本命の)サーバー版ですが、これも数ステップでインストールできます。
サーバー版というのは、デスクトップが無いバージョン。昔のslackware 2.4.xx http://www.slackware.com/ の頃から使っていた者(間が相当空いていますが)としては、telnet経由の方がなじみが深かったりします。

が、slackware でインストールすると暇が掛かる(今はどうなのかな?)ので、Ubuntu のサーバー版をインストールします。
サーバー版ではおなじみのLAMP(Linux+Apache+MySQL+PHP)の組み合わせを一遍にインストールしてくれます。所謂、Windows Server の「役割」みたいなものです。

が、注意しないといけないのが、サーバー版でLAMPパッケージだけをインストールすると telnet/sshで繋げません。
サーバー版なのにコンソールからしか操作できない、ってのも変な構成のような気もするのですが、

「OpenSSH パッケージ」

も忘れずに入れておきます。

# 後から telnetd を入れることもできるらしいのですが、私の場合何度やってもうまくいかず、
# 結局再インストールして「OpenSSH」を入れ直しました。
# SSH なので、クライアント側でそのまま telnet を使うことができません。
# tera term pro http://www.forest.impress.co.jp/lib/inet/servernt/remote/utf8teraterm.html
# PuTTy http://www.chiark.greenend.org.uk/~sgtatham/putty/
# を使います。私は昔ながらの tera term 派

Ubuntu サーバーの日本語版はデフォルトで文字コードをUTF-8を使います。
なので(?)、通常のコンソールを使うと文字化けします。Tera Term(たぶんPuTTyも)はUTF-8を扱えますので、このまま接続すると日本語が通ります。

20090622_03

いちいちコマンドラインのエラーメッセージが日本語だと嫌な人は(私もそう)、

export LANG=c

で英語に変えてしまいましょう。そうすると、母国語じゃない言語で喋るので聞き流しが可能です(笑)。
さて、言語を日本語(UTF-8)以外にするほうが素直かと思ったのですが、

– MySQLで日本語を扱うときは、UTF-8がデフォルトになっている。
– PHPで日本語を扱うときは、UTF-8がデフォルトになっている。

ので apache 経由で WEB サイトを作るときには、UTF-8のままのほうがいいと思います。

・・・と思ったけど、MySQLのデフォルトキャラクタセットが「latin1」になっていますね。むう。

Variables (–variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
——————————— —————————–
auto-rehash                       TRUE
character-sets-dir                (No default value)
default-character-set             latin1
comments                          FALSE

にしても、LAMPパッケージを入れただけで、apache がさっくりと動いてくれるのは便利です。

20090622_04

続きは、phpMySQLAdmin とか入れてから。

■おまけ

うぶんちゅ!
http://www.aerialline.com/comics/ubunchu

ネットトップ版PC
http://www.vspec-bto.com/bto/bto-light/1810/system_detail.html

カテゴリー: 開発 | Ubuntu 9.04 インストール はコメントを受け付けていません

第37回いたばし起業塾 森本尚樹氏

2年振りに行って来ました、いたばし起業塾。
http://www.itabashi-kigyou.jp/seminar_juku.html

「ヒット商品のつくりかた」
(変革マーケティングインストラクター 森本尚樹氏)

ということで、タイトル的には胡散臭い(申し訳ない)のですが、

マーケティングは他社の強みを捨てることから始まる―いつも失敗するのは「差別化したつもり」だった (アスカビジネス)

の著者の方です。この本、日経新聞に広告が載っていたのですが、そのとき思ったのが
– なぜ、「他社」の強みを捨てるのか?
– なぜ、他社の強みを「捨てる」のか?
ということでした。

# 今見ると発売日が2006年11月だから2年前に出版済みだったのですね。
# 新聞を見たときは新刊かと思った。
森本さんのブログ
http://www.morimotonaoki.com/blog/2009/06/post-4669.html
日本USP協会
http://www.juspa.jp/

このあたりの言葉遊びは、森本さんが心理学を学んだことと出発点が医療関係だからなのと関係が深そうです。ブログには「しゃべりすぎ」とありますが、手加減なしということだったので、丁度良かったのではないでしょうか?私としては頭を使うことができて楽しい時間でした。

マーケティング、新商品開発というと、市場リサーチや技術力、特許取得、ニッチな市場、ということで技法に走りがち(?)ですが、実のところはその現場の値を使ったシミュレーションが大切になります(というのを最近気が付きました)。シミュレーションというのは、

1.現場の値を正しく把握する。
2.その値に変更(商品やアイデア)を加える。
3.未来の予測値(売上とか皮算用とか)を計算する。

の手順のことです。起業塾で話されていた差別化のマトリクスの話に絡めると、

1.他社(ライバル)の動向/長所短所/強み弱みを把握する。
2.自分の位置はどこか?
3.お客は付いてくるか?お客のことを考えているか?買わないという選択肢に陥らないか?

ってところです。このあたりを、紙を使って何度も考えます。私の場合、こうやってブログに載せたり/載せなかったり、紙に書いたり、ホワイトボードに書いたりします。しばらく寝かせておいたり、マルチで動かしたり、忘れてしまったりします。
# 私も一点集中型ではないもので…

で、普通(?)の商品の場合、「製造→売る」あるいは「仕入る→売る」という仮定を重視しますが、なぜかIT業界の場合(あるいはプログラマの場合)「作る→お終い」の場合が多いです。これ、起業の場合もそうなのですが、最初のアイデアを考え抜くことと実現する(販売する)こととを同時に廻していかないと立ち行きません。まぁ、IT業界の場合、古くはフリーなところ(Linuxを始めとして)がスタート地点なので、ここを根差すことが多いのですが、製造業としてのITを考えたとき、ここの「顧客不在」「ユーザー不在」が大きな落とし穴になります。逆に言えば、ちょっと前のIT業界の胡散臭さはこのあたりに根差すものもあるのですが。

と、思ったとき駒林さん曰く「IT業界も他のノウハウうが適用できるジャン!」(ジャン、とは言いませんでしたが)なわけで、他の業界から流用できるところは多いのです。というか、流用しないと駄目です。

という訳でブログに書いたり/書かなかったりすることを再び検討するつもりです。
まぁ、売れる/売れないだけでプログラマをやっているわけではないのですが、年収100万円ちょいでアニメーターをやるのも大変だし、志と健康とちょっとした余裕が欲しい、というところでしょうか。

カテゴリー: 起業塾 | 4件のコメント

インストールマニアックス2009決勝

というわけで、インストールマニアックスの決勝戦を見学に行ってきました。
http://www.thinkit.co.jp/maniax/2009/finalgame.html

13時15分頃に会場に行くと「人が少なッ!」(座っている人が20名弱)の状態でしたが、決勝戦の3時間中ぼちぼち人が増え始め最後には50名ぐらいにはなっていました。関係者としては、インプレスの人とMSの人が15名ぐらいでしたから、入賞者を除くと観客は20名ぐらい?

決選は「Windows Server 2008 R2」からインストールするという、、、最初からインストールしておいたほうがいい気もしますが、OSインストールで約20分間はまったりとした時間が流れておりました。

3時間(OSインストール以外だと2時間半)の間、OSSのインストールを続けるわけですが、優勝者の三浦さんが26個(だったっけ?)、準優勝の工藤さんが25個という具合で僅差1本。約5分に1本のペースでインストールするわけですから、見ている方としてはまさに彼らの「仕事振り」を見ている感じでした。あれだけ集中力がよく続くなぁと感心します。小向さんの追い上げもすごったし、細田さんのマイペースぶりは日常的な感じがしました。草刈さんのあきらめ具合(MTのインストールへ挑戦とか)も。

25,6本インストールに成功するわけですが、失敗したものも3分の1ぐらいあります。なので、ペーストしては、2時間半で40本弱をインストールの試行錯誤(インターネットからのダウンロードも含めて)します。

優勝者の三浦さん(左)と前回優勝者の田中さん(右)

09-06-14_18-331

で、私的に感想をつらつらと。

プログラム系の見知った顔が全くいませんでした。SE系だから畑違いなのか、インプレス&マイクロソフトという組み合わせが「マニアック」過ぎたのか。当選確率としては500台に対して750名近くの応募があったので、それなりにあった模様。定員割れではなかったようです。

パンフレットには、主催が株式会社インプレスビジネスメディア、協力がマイクロソフト株式会社となっており、会場も新宿のマイクロソフトの会議室が提供されました(ここの会議室はよく勉強会などで利用されます)。というわけで、NECの名前はありません。NECの営業の方(と思われる)が1名いらっしゃっただけで、関係者はいないので、主にNECからサーバー機をマイクロソフトが買い込み、梱包&発送していたようです。なので(想像するに)、「OSが入っていない」、「サーバ機が届かない」のトラブルはマイクロソフト側に問題がありそうですね(インプレスの企画部門かもしれませんが)。

見たところ、インプレス以外のプレス関係の人は(たぶん)一人もいませんでした。他社に宣伝するにせよ/しないにせよ、マイクロソフトとしてはあまりいい手ではなかったのかなぁ、と。デブサミや他の勉強会に比べて、決勝戦の会場が同じくらいの雰囲気というのは、あまりにもかなぁと。実を取る気だったのか、宣伝を取る気だったのかは不明ですが、

なので、商品がしょぼい件は、先のNECの協賛が無いことから、サーバー代はマイクロソフトが用意したと考えられます。前回の2008がDELL 100台でしたが、今回 NEC 500台の価格差が諸に響いているみたいです。ただし、マイクロソフトは NEC のサーバー機と萌えサーバーでコラボレーションしているので、内部購入はしているんでしょうが。
そのあたり、景品に掛けるお金が減ってしまったのかなぁと。

Windows Server 2008 R2は、実は64bitバージョンしか出ません。Windows Server 2008 Core で ASP.NET アプリケーションを動かそうとすると、64bit 版が必須になります。逆に言えば、32bit のサーバー機を打ち止めにしたい。32/64の両方を確認するのはコストがかかる、という省力化でしょう。ただし、Windows 7 は 32bit もサポートするし、Windows Server 2008 R2 のコアは Windows 7 と共有しているそうなので、まぁ、ハードウェアメーカも含めた「戦略」のにおいがします。

アンケート的には Think IT http://thinkit.jp/ が中心だったので、ここのコミュニティメンバが中心だったのでしょう。
そういえば、チャンピオンベルトは継承するもので、第2回のチャンピオン用のベルトを新しく作るのはおかしいぞ!と突っ込みを入れる予定だったのですが、

WBCフライ級チャンピオンベルトの横の方に付いているバッチは、誰の写真ですか?
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1313092323?fr=rcmd_chie_detail

なるほど、ボクシングの場合は新しく作るんですね~。確かに入場曲はボクシング風だった気が(ということに)。

追記 2009/06/22

工藤さんのブログ技術的な何か。
http://d.hatena.ne.jp/jkudo/20090614/1244988853
# 「何か。」は、「何か。」なのか?(謎)

カテゴリー: インストールマニアックス2009 | インストールマニアックス2009決勝 はコメントを受け付けていません

DirectShowサンプル

DirectShowのサンプルをダウンロードしようとして、DirectX SDK をダウンロードしたら「DirectShowのサンプルは古いSDKを見てね」ってことになっていました。なんじゃぁ?と思うと、DirectX の .NET 版も廃止。

というか、.NET版のDirectXは、XNA http://msdn.microsoft.com/ja-jp/xna/default.aspx に統合(?)されています。

XNA Game Studio 3.0 をダウンロードすると、Visual Studio 2005/2008で XNA のプロジェクトが作成できます。
XNA が何かと簡単に言えば、Xbox360のゲームを作るSDKなのですが、PCのゲームも作れます。というか、ゲーム関係のAPIが揃っています。当然、DirectX関係がごっそり入っているので、このSDKを使えば通常のアプリで作るのも問題ない、と思うのですが(多分)。ただ、普通のWindowsアプリケーションのUIならば、WPFの方が楽だろうなぁ、やっぱり。

20090612_01

プロジェクトを作って、ビルドをしてみたが、何をしていいものやら・・・。

 

さて、旧DirectXのSDKを落として来て、解凍します。
http://www.microsoft.com/downloads/en/resultsForCategory.aspx?nr=50&sortOrder=Ascending&sortCriteria=Popularity&categoryId=2&stype=ss_pd&sterm=DirectX

DirectX 9.0c Redistributable for Software Developers
http://www.microsoft.com/downloads/details.aspx?FamilyID=03c30962-4b78-4e59-8c70-32998dceffe5&DisplayLang=en

MSDN サブスクリプションからダウンロードしてきたので、上記のものと違いますが、多分大丈夫なはず。

この中にある

C:\dx9sdk\Samples\C++\DirectShow\Capture\AMCap\

が、WEBカメラの表示になります。。。って、このサンプルはELECOMのドライバに同封されていたものと全く同じ。な~んだ。
以下、雑談

旧式のPDAの場合、フラッシュプレイヤーや新しいストリーミングのフォーマットに対応していないわけですが、考えてみたら PC のほうにプロキシを立ててやって、内部でPDAで表示できるように変換させればよいのでした。
つまりは、

– 非力なPDAに無用なエンコーディングをさせない。
– PDAをサブ画面として使う。
– PDAとPCは無線LANかBluetoothで繋ぐ。

ということができればOK。あと、

– サブ画面(PDA)への操作は、タッチパネル以外の操作は行わない。
– キーボード操作が必要であれば、別途PCで操作する。
– PDA に nanoHTTP を入れ込む。

とする。

例えば、ニコニコ動画を見るためには最新の Flash Player が必要なのですが、旧式のPDAでは対応できない。ポーティングしてもよいが、手間も時間も掛かるし、第一 CPU が貧弱なのでエンコード等に PDA が耐えられない。また、ニコニコ動画のコメント機能を PDA から入力するとは考えにくい。主に閲覧に特化するだろう。そうであれば、Flash 形式ではなくて、PDA が扱える wmv 形式のストリーミングで流してやればよい。エンコードに時間がかかるよりも、読み捨てのストリーミングにして無線LANかBluetoothへの負荷を増やしたほうがよいだろう。

同様な方法は、twitter の閲覧ソフトを PDA で作るときにも言える(と思う)。twitterへの返信/問い掛けはPCでキーボードを打つほうがよい。あるいは、携帯電話か Android の形式の入力を考えたほうがよい。というか、PCのサブ画面としてPDAを使うのだから、PCのキーボードで打つほうが早い。つまり、PDA で twitter などを流す。ニュースサイトでも何でもよい。そして、PCでコメントする。この間のPDAとPCの連携を考えたほうがよい。PCではキーボード=入力担当で、PDAでは閲覧担当とか。マウスでPDAの画面を操作するようなミニ画面がPCで出る、あるいは、直接マウスでPDAの画面を操作する、あるいは、PDAを直接タッチするとか。タッチした情報は、PCに送られて該当するコメントが開かれる、とか。

今思い出したけど、これは SideShow http://trendy.nikkeibp.co.jp/article/rev/20070322/121308/ だったり。

カテゴリー: 開発 | DirectShowサンプル はコメントを受け付けていません

UCAM-E130SHSV

近くのヤマダ電器に行くと改装中…がっくし、だったのでサティのCadenへ。

Skypeフル活用パック 130万画素Webカメラ+イヤホンマイク – UCAM-E130SHシリーズ
http://www2.elecom.co.jp/multimedia/pc-camera/ucam-e130sh/
Amazon.co.jp: ELECOM Skypeフル活用パック UCAM-E130SHSV: 家電・カメラ
http://www.amazon.co.jp/%E3%82%A8%E3%83%AC%E3%82%B3%E3%83%A0-UCAM-E130SHSV-ELECOM-Skype%E3%83%95%E3%83%AB%E6%B4%BB%E7%94%A8%E3%83%91%E3%83%83%E3%82%AF/dp/B000N8UUGI

買ってしまいました。ELECOM製のWEBカメラ。
なんか安売りしていて1,250円でした。これぐらいならば、まぁいいか。

20090611_01

USB 1.1/2.0接続で130万画素だそうです。動かしてみると結構きれい。
つーか、動かしてみて思い出したのですが、VAIO type-T にはカメラが付いているのでした、、、DirectShow のテストをするだけならば、これでも良かった、、、のですが、まぁいいか。デスクトップにも使えるし。というか最終的にはゲーム画面をキャプチャしないと駄目だし。

USBバスパワーなのですが、箱の説明書きには「5V/500mAが必須」って書いてありますが、中の説明書には「100mAでも大丈夫」って書いてあります。なので、USBハブを通しても大丈夫。

LiveCapture2
http://www2.wisnet.ne.jp/~daddy/index.html

フリーでの画面キャプチャソフトも動いたので動作確認は終了。
LiveCapture2 の場合、VAIO type-T に付属しているカメラの動作は危ういのですが、ELECOM のほうはスムースに動いています。これもドライバー関係なんでしょうね。

ひとまず、これで DirectShow 関連のテストができそう。

カテゴリー: 雑談 | UCAM-E130SHSV はコメントを受け付けていません

ビデオ入力を変換

ゲーム画面をキャプチャしながらゲームするプログラム http://www.moonmile.net/blog/?p=252 の続き。

WEBカメラからの入力をUSBで受けて、動画として保存するには色々手段があるのだが、今回の場合はリアルタイム(できれば10フレーム/秒単位)で画像解析をしたい。すると、直接WEBカメラの画像を個々の静止画に落とす必要がある。

DirectShow キャプチャ – Google 検索
http://www.google.com/search?q=DirectShow+%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3&rls=com.microsoft:ja:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7&rlz=1I7SNYL
DirectShow Capture
http://vision.kuee.kyoto-u.ac.jp/~hiroaki/firewire/directshow.html
DirectShow でビデオキャプチャ(前編) – 大阪府立大学 総合教育研究機構 第3教室 青木茂樹
http://www.las.osakafu-u.ac.jp/~aoki/cgi-bin/wiki.cgi?page=DirectShow+%A4%C7%A5%D3%A5%C7%A5%AA%A5%AD%A5%E3%A5%D7%A5%C1%A5%E3(%C1%B0%CA%D4)
PCカメラからのキャプチャ – C++&DirectShow
http://www.hyuki.com/yukiwiki/wiki.cgi?PC%A5%AB%A5%E1%A5%E9%A4%AB%A4%E9%A4%CE%A5%AD%A5%E3%A5%D7%A5%C1%A5%E3
Geekなぺーじ : DirectShowプログラミング [VC++]
http://www.geekpage.jp/programming/directshow/

DirectShow を使えば画面の描画/キャプチャができるようだ。
C++ での解説が多いが、今だと DirectX の .NET 版もあるので、C#から扱えると思う。まぁ、高速な画像解析をC#でやろうとするのはどうか、という問題はあるけど。C++/CLIで解析部分はラップするのがいいかもしれない。対戦アルゴリズム自体は C# や Lua で作るのでもよいし。

さて、WEBカメラだと画質が悪いので、ゲーム機のビデオ出力をパソコンで表示してそこから取り込むという方法もある(ただし、今回の目的は「画質が悪くても」のところに焦点を当てるので、画質にはこだわらない。というか、画質は多少悪くても「できる」ようにしないと。スペック的には 320×200 のような 低解像度のTV出力と同じレベルを考えている)。

PS2やPSPの場合はビデオ出力の端子があるので(残念ながら手持ちのDSiには無い…)、ビデオ出力をパソコンに取り込めれば良い。普通はVHSのビデオをDVDに変換するのが目的なのであるが、今回の場合はリアルタイム入力なので、取り込み画像を画面に出力させているものが望ましい。

ビデオカードを入れるっていう手もあるけど、最近は USB に変換してくれる出物がある。

PCA-DAV2
http://www.princeton.co.jp/product/multimedia/pcadav2.html

(amazonの評判では)画質的にはあまりよくないそうだが、これで十分だと思う。ArcSoft ShowBiz が付属しているからビデオ編集には持ってこい。って、ビデオ出力はできるよね?

ArcSoft ShowBiz DVD のマニュアル
http://www.princeton.co.jp/product/multimedia/img/pcadav2/ArcSoft%20ShowBiz%20DVD%202.2%20Manual%20Japanese.PDF

マニュアルを読むと「プレビューウィンドウの下に表示されている赤いボタンを~」となっているので、リアルタイムに表示はできる模様。となると、先のDirectShowを使って画面をキャプチャすることは可能なはず。

で、肝心のWEBカメラのほうは手持ちがないので、どうでもいい安物を物色中

価格.com WEBカメラ
http://kakaku.com/camera/web-camera/

Qcam Connect
http://www.logicool.co.jp/index.cfm/webcam_communications/webcams/devices/222&cl=jp,ja

なんて投げやりな値段と「ファン・フィルター」でいいじゃないでしょうか?…って、ロジクールストアで買うと在庫がないって言われるし。

DirectShow で操作可能な機種に限るので、Windows Driver Modle に従ったドライバーが出てないといけないんだが、まぁ、この時期に対応していないとは思われないので、どれでもいいのかな。

画像処理に関しては、DirectXのフィルタを直接使ってもいいのだが、手持ちの

実践画像処理入門
http://www.amazon.co.jp/dp/4563015725

を見ると、
3.濃度値変換による画像の強調
6.6 LOGフィルタとゼロ交差によるエッジの検出
12.色変換
14.テンプレートマッチングによる対象物の検出
15.ブロックマッチングによる差分画像の生成

が参考になると思う。

OpenCV プログラミングブック
http://www.amazon.co.jp/dp/483992354X

OpenCV http://opencv.jp/ のほうも調べてみるといいのかしらん?

カテゴリー: 雑談 | ビデオ入力を変換 はコメントを受け付けていません

ゲーム画面をキャプチャしながらゲームするプログラム

ってのを考えました。つーか、随分前から考えていたのですが、

– アルゴリズム部分を作ったグラフィカルな対戦ゲーム
– 以前あった、java プログラミングのタンク対戦ゲーム

を前々から作ってみたかったのです。で、最近

Blunderについて via やねうらお
http://d.hatena.ne.jp/yaneurao/20090510
コンピュータ将棋wiki
http://shogi.yaneu.com/

のような正当な(まぁ真っ当な)アルゴリズムを見ていて、私のやりたいのは(というか対抗できそうなのは)アルゴリズムの部分ではなくて、その他なんだなぁ、ということが分かりかけまして。

ならば、対戦用のプログラム(場)を作るのではなくて、既存のゲームに対してあれこれやればいいじゃん、と思い至りました。
というわけで、以下、妄想。

1.画面キャプチャをしながら、画像解析して、コントローラを動かす。
2.画面キャプチャ部分が重いし、PS2のような専用ゲーム機ではわざわざパソコンでキャプチャしないといけない。
3.本体のゲームと、画面キャプチャ&アルゴリズム部分を切り離せばよい。
4.ならば、人と同じに、TV画面から取ればいい。
5.面倒だから、WEBカメラを使ったらどうか?
6.解像度の低いWEBカメラでも認識できるように、画像解析できればよい。
7.実は、ゲーム画面は人に認識しやすく作ってあるので、
 7.1 輝度の差が大きい(グレー変換)
 7.2 縁処理で認識(エンボス)
 7.3 色/形状認識を同時にやって、自/敵キャラクタを認識
8.PS2のコントローラはUSB接続させることができるので、
 8.1 USB から変換させるか、
 8.2 USB の HID を使って、コントローラに直結(笑)させるか。これが簡単そう。

たとえばこんなのとか
http://www.amazon.co.jp/dp/B000E5GR4E

の場合は、アルゴリズムの部分は将棋ソフトよりも簡単(になるのか?)かな?

多分画像処理部分である7をどれだけ早くこなして、動態認識をするかにかかっているわけで、このあたりは人間と同じで多少「反応」に任せたり、人間らしく(?)コントロールするためには画面外からの「推測」が必要になってくるはず。
もう少し煮詰めよう。

インスパイア元はこちら↓(かも)

11歳天才少年「テレビゲームは人類にとってなんの助けにもならない。時間の無駄」 http://blog.livedoor.jp/dqnplus/archives/1271438.html

カテゴリー: 雑談 | ゲーム画面をキャプチャしながらゲームするプログラム はコメントを受け付けていません