ラベル プログラミング の投稿を表示しています。 すべての投稿を表示
ラベル プログラミング の投稿を表示しています。 すべての投稿を表示

2009年5月25日月曜日

Monoにはまる

今作っているアプリ(コミケのカタログブラウザとか、デスクトップアクセサリとか)をLinuxでも動かそう、なんて思ったのが間違いでした。

現在の開発はVisualC#2008Expressで行っているのですが、MonoなるものをLinux上に導入すると、Windows上でコンパイルしたプログラムがそのままLinuxで動く、らしい。が、実際にはOSの違いやMonoで実装されている機能を意識しないと正しく動いてくれません。

たとえば、Windowsではパスを\で区切りますが、Linuxでは/です。ファイル名を直接プログラム上に書いちゃうと動いてくれません。また、Monoでは全てのライブラリがLinux上に実装されているわけじゃないので、Monoで動くメソッドとか気にしないといけません。

さらに、実装されていてもWindowsと挙動が違う場合があります(多分、GUI関連とか多そう)。あ、当然ながらWindowsAPIを直接叩いてるプログラムもアウトです。

いや~、この縛りプレイ?(縛りプログラミング?)が思いの外厳しい。簡単なプログラムなら楽にマルチプラットフォームを実現できるのですが、凝ったアプリになると途端にうごかな~い。実際には、上記以外にも色々色々色々めんどくさいので、ちょっと諦めモード。

2009年5月17日日曜日

コミケのカタログブラウザ

何を思ったか、コミケのカタログブラウザ作ってます。元々、公式のブラウザが使いにくいと思っていたし、データの保持にSQLiteを使っていると知ったので、SQLの勉強を兼ねて手を出してみました。



SQL怖い…。私はDB関連は全くスキルがないので、進まない進まない。クオート書き忘れに気づくまで3時間くらい潰したり、文字コードの変換が出来なくて数時間悩んだり。

コミケのカタログはSQLiteのバージョン2系なのですが、C#のライブラリからSQLiteを使う場合バージョン3系じゃないといけません。また、文字コードにUTFを使うので、文字コードの変換も必要です。DBの元データもあるので、自力でInsertでもしようとしたのですが、これも無理…。

結局、sqlite.exeとsqlite3.exeのコマンドを使ってDBの変換をすることにしました。SQLiteはパブリックドメインらしいけど、このexeも同じなのかしら?これ使えないとアプリの配布は無理そうだなぁ。


しかし、画像が寂しい。

2009年4月23日木曜日

F#はじめました

ここ暫く新しい言語を学んでいないことに気付いたので、F#なんぞ勉強しています。最近、関数型言語の重要性を感じつつも、いざ勉強しようとするとGoodな言語が見つからない、って状態でした。

有名な言語はたくさんあるのですが、正直、実用性の面から全部却下してました。C#に関数型言語の機能が色々追加されているので、勉強はしたい。でも、実用的じゃないとダメなんです。関数型言語の解説を見てもアカデミック?な話ばかりで。アプリケーション開発にとって美味しいの?って思っていました。

優れた言語≠実用的な言語だと私は考えています。そこで見つけたのがF#。この言語、時期VisualStudioで採用される予定の関数型言語らしいです。.NET上で動き、慣れ親しんだライブラリも使えそう。さらに、C#との連携もできるので、F#に向いた処理をライブラリ化して、C#から呼び出すこともできる。実用までのハードルがかなり低そうです。

そんなわけで勉強中。以前(3年くらい前)、Haskellをちょこっとかじっただけなので、関数型言語に苦戦してます。とりあえず、F#で作ったクラスをC#から呼び出すまでは成功。

先は長い。

2009年3月2日月曜日

XNAはじめました

ゲーム作りたくなったので、おもむろにXANをいじってみた。…あまりにも簡単にゲームが作れるようになっていたので驚愕。DirectX SDKとVC++でプログラミングしていたときは、ウインドウ一つ出すにも苦労していたのに。時代は変わったねぇ。

これなら簡単なSTGくらいは作れそうだ。最近横道にそれまくっているなぁ。

2009年2月9日月曜日

ソフト作成、どうしよ

何だかんだで、今作っている音声認識アプリはvistaじゃないと使い物にならない、という結論に。で、vistaには最初から高機能な音声認識アプリが搭載されている、と。

オリジナリティのあるギミックを考えないと、作る意味なくなりました。非常にぐんにょりです。

2009年2月3日火曜日

ぐんにょり開発中

どんな状態だ?と、自己つっこみをいれつつ、相変わらず音声認識。

調べていくうちに、今作っている音声認識アプリはVista以外では役に立ちそうもないことが分かってきた。Vistaに搭載されているのはSAPI5.3。それに対し、XPで使用できるのはSAPI5.1。このわずかな数字の間にはとても大きな壁があるんです。

今のところ、誤認識を避ける方法として、認識した結果の信頼値を判定しています。認識したものの、信頼値が低い場合には判定失敗、とすることで正確な判定を実現しています。ところが、どうもこの値はSAPI5.1では常に-1が返ってくるらしい。

この値を利用しないと、誤認識が酷いんです。逆に、現在Vistaでは音楽(歌詞あり)を聞きながらでも安定して音声認識が実現できています。音楽聞きながら仕事してるとき、"メモ帳"と喋るとメモ帳が起動します。XPだと、知らない間にメモ帳がたくさん起動している!となりかねません。

地味に音声認識もパワーアップしているんですね。というか、正直このレベルでやっと使い物になる、という感じですが…。さて、対象OSをVistaに絞ると、誰もこのアプリ使ってくれないよねorz

2009年2月2日月曜日

音声認識アプリ

隙を見て作ってます。複数エンジンの切り替えとか、プラグイン機能とか色々やろうとしたら、複雑になりすぎた。メンテできないので、シンプルに作り直しました。もとい、やっつけコーディング!


最初の時点で汎用性を意識するのも大切だけど、そのせいで逆に苦労していたら話にならない。最初の設計段階であらゆる可能性を考慮出来る訳じゃないのだから。作れる範囲で作っていくしかない、か。

現在、こんな感じ。

2009年1月25日日曜日

PHPやろうかな?

HDDを漁っていたら、数年前にPHPで作ったGTD用ツールが見つかった。懐かしい。そういえば、GTDをやるためのアプリを色々試してみたけど、結局どれもしっくりこなかった。結局、自分で作った方が早いらしい。

PHPを再勉強したいと思っていたので、これを題材にしようかな。どうせ自分専用にしか作らないし、お手軽でいいかも。

2009年1月13日火曜日

Speech Commander設計からやりなおし?

音声認識の精度を高めるために色々と策を練っているけど、どうやら今の設計では実現出来そうもない。ぐわ~、クラス設計からやり直しだ。去年の11月くらいの段階で、もうすぐベータ版公開とか言ってたけど、全然ダメじゃん。

しかも、Vistaじゃないと使えない機能があるから、EeePC向けの開発スタンスも崩れた。うまくいかないね!色々と!

2008年11月15日土曜日

EeePCにマイクあったんだね

今更だけど、EeePC901-Xには標準でマイクがついてたんだね。知らなかった。よく考えてみれば、カメラが付いていて、skypeもデフォルトで入っていたのだから、マイクだけ無いのは不自然か。

実は、開発中の音声認識を利用したアプリのテストをEeePCでやったとき、マイクを繋ぐ前に勝手に認識を開始したことで発覚しました。最初びっくり。ラジオつけっぱなしだったので、おかしな文字列がガンガン表示されてしまったとさ。

しかし、これは嬉しい誤算。アプリが完成すれば、EeePCの操作性が格段に上がりそうだ。追加装備なしで音声認識による操作が可能になるのだ。キーボード小さくても、マウス無くても楽々PCライフ!

を目指してますよん。

2008年11月13日木曜日

VisualStudio2008 Standard Editionが欲しい

相変わらず更新してないですね。ソフト開発が忙しいから、と言い訳してみる。誰に?

現在開発中の音声認識使ったアプリですが、VisualStudio2008Expressで作ってます。しかし、Expressだとアイコンで困ってしまうのです。ツールバーに保存ボタンを設置したのですが、ボタンに載せるアイコンがないのですよ。Standard以上だと、「イメージライブラリ」なるものがあって、そこにアイコンがたくさんあるらしい。


アイコン自作とか無理。


ほしーなー、Standard以上が。確か、以前にもsubversionと連携するプラグインがExpressじゃ使えなかった悪夢が。

2008年11月4日火曜日

Touchlessやりたい

音声認識に続き、面白そうな技術を見つけた。Touchlessというもので、Webカメラで認識させた物体の動きをとらえ、それによってPCを操作するものらしい。

これを使えば、音声認識+ジェスチャー認識により、マウス・キーボードの操作を置き換えることができるかもしれない。面白そうだ!

早速SDKをダウンロードしてみた。…あ、メインマシンにWebカメラ付いてないや。仕方なく、EeePCで実験。お、動くけど、CPUパワーが足りない!

今度Webカメラ買ってこよう。ちなみに、言語はC#らしいので私にはちょうどいい。音声認識プログラムもC#で組んでいるので、うまいことコラボさせたい。

2008年10月2日木曜日

AnkhSVN

VisualStudioでSubversionを利用するためのアドインです。普段Subversionを使っているので、C#のプログラミングでも利用したいと思ったのですが…。

Expressエディションでは使えません。Expressはアドインを利用できないようで、よってAnkhSVNも使えません。そして私はExpress版を使っている!

しょうがないので、TortoiseSVNで今後も頑張ります。

2008年9月18日木曜日

EeePCで音声認識

EeePCで音声認識によるオペレーションとか出来ると便利かな?キーボードが小さいし、マウスがうまく使えないような場所もあるから、便利かも!と思って、現在アプリを開発中。

でも、考えてみたら外出先とかでPCに向かって喋るのはかなり抵抗が…。しかも、ちょこっと試してみた感じ、認識率が悪すぎて何回も言い直さないとダメだったし。む~、いいアイディアだと思ったんだけどなぁ。

このまま捨てちゃうのも無駄なので、音声認識使ったアプリの開発は継続中。

2008年9月13日土曜日

XNA

風邪で怠い。

何を思ったか、3DのWindowsゲームを作りたくなった。以前はManagedDirectX+C#で簡単なフレームワークもどきを作りかけて放置していたけど、調べてみると今はゲーム開発環境としてXNAなるものがあるらしい。

頭痛いけど、ちょっといじってみようかな。

2008年7月22日火曜日

FlvPlayer作ってます


現在Airで作っているFlvPlayer。むぅ、AirではFlvPlayerとか簡単に作れるから、ありきたりだなぁ。とりあえず自分で使えればいいので、当面はニコニコ動画の再生に特化した機能でも実装しようか。
あと、SQLiteが使えるので、SQLの勉強もしたいな。

2008年7月21日月曜日

Airに苦戦中

ここ最近、巷で流行ってる?Airに手を出してみた。
JavaScriptが使える私としては、お手軽なおもちゃが手に入ったと思ったのだが…。

これが中々そうもいかない。
ん~。JavaScript使った資料が少ないよ。
C#で普通にデスクトップアプリが作れる自分としては返って面倒な事態に。Web見ても、ActionScript使った解説ばかりだ。世の中には、そんなにたくさんFlash使いがいるのか。残念ながら、今の自分にはAirの良さが解らない。技術屋失格か!?

ってことで、現在FlashDevelop使ってActionScriptと格闘中。ぼちぼちFlvプレイヤー作ってまふ。