おめでとうございます。
ちょっとアクセス元を表示してみたら、「tta+cueの書き込み」というキーワードで検索している人がいるようです。
この書き込みってのはCD・DVDへの書き込みってことと解釈してみます。
さすがにttaデコーダ内蔵の書き込みソフトってのは知らないので、方法としてはttaをwavに変換して書き込むしかないでしょう。
wavに変換する方法は、ttaを再生可能ならできるはずですが、普通にttaのエンコーダを使ってできたと思います。
後はcueシートの中身を見て、ttaファイルの名前が書いているところを新しく出来たwavファイル名に変えて、後は書き込むだけです。
以上、今日の日記。
履歴書を3枚連続で書きミスしてショック中です。
ちょっとアクセス元を表示してみたら、「tta+cueの書き込み」というキーワードで検索している人がいるようです。
この書き込みってのはCD・DVDへの書き込みってことと解釈してみます。
さすがにttaデコーダ内蔵の書き込みソフトってのは知らないので、方法としてはttaをwavに変換して書き込むしかないでしょう。
wavに変換する方法は、ttaを再生可能ならできるはずですが、普通にttaのエンコーダを使ってできたと思います。
後はcueシートの中身を見て、ttaファイルの名前が書いているところを新しく出来たwavファイル名に変えて、後は書き込むだけです。
以上、今日の日記。
履歴書を3枚連続で書きミスしてショック中です。
.NET 日本語を用いる場合の複合書式設定について
2005年5月25日 コンピュータ コメント (1)(diarynoteでは<pre>が使えないようなので、連続した半角スペースが削除されてしまうため、以下では"_"で代用している。またブラウザでは表示がずれる。さらに"<"">"の半角もダメなようなので全角で記している・・・なんとかならんものか)
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconCompositeFormatting.asp
この文章中にあるAlighmentを使えば、.NET Frameworkを用いる場合に、たとえば文字列をテキストボックスなどに出力する際の書式を整えることが出来る。
以下C#を例に考える。
こうすることで以下のように出力されるようになる。
これで大丈夫、といいたいところだが、実は仕様なのかバグなのかこの複合書式設定には妙な動作がある。それは日本語などのいわゆる2バイト文字(全角文字)を入力した場合による。
先の例でfullNameへ代入した部分を以下のように変更する
こうすると出力は以下のようになる。
これは.NET内部では文字にUnicodeを用いているため、全角文字だろうと半角だろうと長さが1として扱われているためである。
これを解消するにはいくつか方法が考えられるが、最も簡単なのは余分な空白を削除してしまうことである。
if文は整列の幅を超えた場合は空白が入ることがないので、その場合を除いているだけである。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconCompositeFormatting.asp
この文章中にあるAlighmentを使えば、.NET Frameworkを用いる場合に、たとえば文字列をテキストボックスなどに出力する際の書式を整えることが出来る。
以下C#を例に考える。
struct FullName{
public string Name;
public string Family;
public FullName(string name, string family)
{
Name = name;
Family = family;
}
}
FullName [] fullName = new FullName[2];
fullName[0] = new FullName("Kou", "Kirishima");
fullName[1] = new FullName("Estelle", "Branche");
foreach( FullName fn in fullName)
{
string str = String.Format("|Name = {0,8}, Family = {0,12}|", fn.Name, fn.Family);
Console.WriteLine(str);
}
こうすることで以下のように出力されるようになる。
|Name = Kou_____, Family = Kirishima___|
|Name = Estelle_, Family = Branche_____|
これで大丈夫、といいたいところだが、実は仕様なのかバグなのかこの複合書式設定には妙な動作がある。それは日本語などのいわゆる2バイト文字(全角文字)を入力した場合による。
先の例でfullNameへ代入した部分を以下のように変更する
FullName [] fullName = new FullName[3];
fullName[0] = new FullName("Kou", "Kirishima");
fullName[1] = new FullName("Estelle", "Branche");
fullName[2] = new FullName("高", "霧島");
こうすると出力は以下のようになる。
|Name = Kou_____, Family = Kirishima___|
|Name = Estelle_, Family = Branche_____|
|Name = 高_______, Family = 霧島__________|
これは.NET内部では文字にUnicodeを用いているため、全角文字だろうと半角だろうと長さが1として扱われているためである。
これを解消するにはいくつか方法が考えられるが、最も簡単なのは余分な空白を削除してしまうことである。
struct FullName{
public string Name;
public string Family;
public FullName(string name, string family)
{
Name = name;
Family = family;
}
public string [] JpnNameLength
{
get
{
System.Text.RegularExpressions.Regex re =
new System.Text.RegularExpressions.Regex(
"[^a-zA-Z 0-9]" ,
System.Text.RegularExpressions.RegexOptions.Singleline);
System.Text.RegularExpressions.MatchCollection mts1 = re.Matches(Name);
System.Text.RegularExpressions.MatchCollection mts2 = re.Matches(Family);
int [] counts = new int[]{mts1.Count, mts2.Count};
}
}
}
FullName [] fullName = new FullName[3];
fullName[0] = new FullName("Kou", "Kirishima");
fullName[1] = new FullName("Estelle", "Branche");
fullName[2] = new FullName("高", "霧島");
foreach( FullName fn in fullName)
{
string str = String.Format("|Name = {0,8}, Family = {0,12}|", fn.Name, fn.Family);
int[] jpncount = fn.JpnNameLength;
if(fn.Name.Length <=8)
sf = sf.Remove("|Name = ".Length + str.Name.Length, jpncount[0]);
if(fn.Family.Length <=12)
sf = sf.Remove("|Name = ".Length + str.Name.Length + ", Family = ".Length + str.Family.Length, jpncount[1]);
Console.WriteLine(str);
}
if文は整列の幅を超えた場合は空白が入ることがないので、その場合を除いているだけである。
ちょっとつまったのでメモ。
画像を表示するには、
http://dobon.net/vb/dotnet/graphics/drawimage.html
にある、Paintイベントハンドラを使う方法を用いる。
Piantイベントをプログラムコードとして発生させるには、PictureBoxのインスタンス(以下pb)のinvalidate()メソッドを実行する。
ただしそのコードが実行されたからといって、すぐに画面に反映されるのではなく、Windowsに制御が戻ったとき、つまりユーザからの入力を待ち受ける状態になった時に初めて描画される。
ということはPaintイベントを繰り返して発生させただけでは連続画像アニメーションは、単に最初と最後の画像しか表示できない。
これを回避するには、pb.Invalidate()メソッドを実行した後にpb.Update()メソッドを実行する。そうすると強制的にピクチャボックスの表示が更新される。これはMSDN LibraryでControl.Invalidate()の説明を読むと書いてあるが、非常に理解しにくい。
以下余談。
アニメーションを行う際に気をつけなければいけないのは、更新間隔である。描画速度がマシン依存によって変わらないように、sleepを用いて適切な間隔をあける必要があるが、普通に書いてしまうとsleepを行っている時間が無駄になる。
そこでスレッドを使ってやって、アニメーションに必要な前処理を行う時間も更新間隔に含めてプログラムを書くとスマートである。
C#だと以下のような感じ
ただしこの方法では、描画の際中におけるユーザからの割り込み的な入力に対応していない。
まだ解決する方法は考えていないが、また別のThreadを用いて受け取らせるようにすればいいと考えている。
画像を表示するには、
http://dobon.net/vb/dotnet/graphics/drawimage.html
にある、Paintイベントハンドラを使う方法を用いる。
Piantイベントをプログラムコードとして発生させるには、PictureBoxのインスタンス(以下pb)のinvalidate()メソッドを実行する。
ただしそのコードが実行されたからといって、すぐに画面に反映されるのではなく、Windowsに制御が戻ったとき、つまりユーザからの入力を待ち受ける状態になった時に初めて描画される。
ということはPaintイベントを繰り返して発生させただけでは連続画像アニメーションは、単に最初と最後の画像しか表示できない。
これを回避するには、pb.Invalidate()メソッドを実行した後にpb.Update()メソッドを実行する。そうすると強制的にピクチャボックスの表示が更新される。これはMSDN LibraryでControl.Invalidate()の説明を読むと書いてあるが、非常に理解しにくい。
以下余談。
アニメーションを行う際に気をつけなければいけないのは、更新間隔である。描画速度がマシン依存によって変わらないように、sleepを用いて適切な間隔をあける必要があるが、普通に書いてしまうとsleepを行っている時間が無駄になる。
そこでスレッドを使ってやって、アニメーションに必要な前処理を行う時間も更新間隔に含めてプログラムを書くとスマートである。
C#だと以下のような感じ
using System
using System.Threading;
using System.Drawing;
//sleep単位はms
const sleeptime = 100;
PictureBox pb;
private void AnimationSleep()
{
Thread.sleep(sleeptime);
Thread.sleep(0);
}
Bitmap [] BMS;
public void Animation()
{
...
foreach ( Bitmap bm in BMS)
{
Thread t = new Thread(new ThreadStart(AnimationSleep));
t.Start();
...(描画前処理)...
t.Join();
...(描画処理)...
}
...
}
ただしこの方法では、描画の際中におけるユーザからの割り込み的な入力に対応していない。
まだ解決する方法は考えていないが、また別のThreadを用いて受け取らせるようにすればいいと考えている。
音楽CD→音楽ファイル
2005年4月2日 コンピュータ音楽CDのリッピングといえば、EACというものを使うのが主流らしい。
さらにPC用の音楽ファイルといえば、Monkey’s Audio(ape)、True Audio(tta)といった可逆圧縮形式が主流らしい。
というわけで私も導入してみることにした。
まずEACである。正式にはExact Audio Copyというソフトウェアの名前で、その名の通り音楽CDのコピーを正確に行うためのものである。具体的にはCDドライブの読み取り・書き込み時のズレを設定して操作を行うことでそれを実現する。
http://musicpc.fc2web.com/あたりを参考に設定してみた。
日本語化パッチはhttp://www.geocities.jp/studio_chappu/のほうでないと上手くいかなかった。
また後で設定のところで、「CUE作成時にCD-TEXTを利用する」ようにしないとCDDBの情報が活かされないことに気付いた。
で肝心のズレだが、はっきり言って素人にはどうでもいい感じではある。
そりゃあ、クローンからクローンを作成するというのを続ければわかるのかもしれないが、そんな機会なんてない。
ただメリットとして設定は手間だけど、一度してしまえば終わりだし、「CUEファイル+一つの音楽ファイル」というのは整理しやすい。(「CDイメージをコピーしCUEシートを作成」選択時)
とまあEACはこんな感じ。次に可逆圧縮の話。
昔は音楽の圧縮形式といえばmp3,wmaといった非可逆圧縮だったものの、その頃からはHDDの容量が段違いではあるし、書き込み可DVDの普及なんかで可逆圧縮も脚光を浴びてきているようだ。といっても非可逆は携帯プレイヤーなんかで重宝されている。というか私も携帯オーディオプレイヤー欲しいよ。
最近の非可逆圧縮の代表はMonkey’s Audio(ape形式)。このファイルのEACを使った作り方はhttp://musicpc.fc2web.com/に乗ってるので割愛。
もう一つさらに最近の注目はTrue Audio(tta形式)である。これもEACを使った作り方は上のURLのところに書いてある。http://www.fairyland.to/articles/9/06/も参考に。ちなみに本家ttaサイトにアクセスできない場合はこの記事にあるようにhttp://tta.corecodec.org.nyud.net:8090/を使うとよい。
(↑DiaryNoteシステムの都合上、上手くリンクできないので、コピペで)
(http://revivalgate.net/rnote.php?u=pc/2004-11-27a.shtmlのほうがうまくまとめて書いてあるのを発見した)
でtta形式ではさらにcueファイルとをMatroska(マトリョーシカ)という方式(mka形式)を使って一つにまとめることが出来る。
http://www.fairyland.to/dat/d4/d41126.xml
ということはさらにファイルの整理について便利になるというわけだ。
早速やってみた。まあなんだmp3(vbr)などとの音質の比較は私には無理だが、ファイルやディレクトリがごちゃごちゃしなくていいね。
ただまあ今のところfoobar2000ぐらいでしかまともに再生できないのが難点である。あとUnixではどうすんだ、とも思う。
とまあそんな感じ。
さらにPC用の音楽ファイルといえば、Monkey’s Audio(ape)、True Audio(tta)といった可逆圧縮形式が主流らしい。
というわけで私も導入してみることにした。
まずEACである。正式にはExact Audio Copyというソフトウェアの名前で、その名の通り音楽CDのコピーを正確に行うためのものである。具体的にはCDドライブの読み取り・書き込み時のズレを設定して操作を行うことでそれを実現する。
http://musicpc.fc2web.com/あたりを参考に設定してみた。
日本語化パッチはhttp://www.geocities.jp/studio_chappu/のほうでないと上手くいかなかった。
また後で設定のところで、「CUE作成時にCD-TEXTを利用する」ようにしないとCDDBの情報が活かされないことに気付いた。
で肝心のズレだが、はっきり言って素人にはどうでもいい感じではある。
そりゃあ、クローンからクローンを作成するというのを続ければわかるのかもしれないが、そんな機会なんてない。
ただメリットとして設定は手間だけど、一度してしまえば終わりだし、「CUEファイル+一つの音楽ファイル」というのは整理しやすい。(「CDイメージをコピーしCUEシートを作成」選択時)
とまあEACはこんな感じ。次に可逆圧縮の話。
昔は音楽の圧縮形式といえばmp3,wmaといった非可逆圧縮だったものの、その頃からはHDDの容量が段違いではあるし、書き込み可DVDの普及なんかで可逆圧縮も脚光を浴びてきているようだ。といっても非可逆は携帯プレイヤーなんかで重宝されている。というか私も携帯オーディオプレイヤー欲しいよ。
最近の非可逆圧縮の代表はMonkey’s Audio(ape形式)。このファイルのEACを使った作り方はhttp://musicpc.fc2web.com/に乗ってるので割愛。
もう一つさらに最近の注目はTrue Audio(tta形式)である。これもEACを使った作り方は上のURLのところに書いてある。http://www.fairyland.to/articles/9/06/も参考に。ちなみに本家ttaサイトにアクセスできない場合はこの記事にあるようにhttp://tta.corecodec.org.nyud.net:8090/を使うとよい。
(↑DiaryNoteシステムの都合上、上手くリンクできないので、コピペで)
(http://revivalgate.net/rnote.php?u=pc/2004-11-27a.shtmlのほうがうまくまとめて書いてあるのを発見した)
でtta形式ではさらにcueファイルとをMatroska(マトリョーシカ)という方式(mka形式)を使って一つにまとめることが出来る。
http://www.fairyland.to/dat/d4/d41126.xml
ということはさらにファイルの整理について便利になるというわけだ。
早速やってみた。まあなんだmp3(vbr)などとの音質の比較は私には無理だが、ファイルやディレクトリがごちゃごちゃしなくていいね。
ただまあ今のところfoobar2000ぐらいでしかまともに再生できないのが難点である。
とまあそんな感じ。
FFXI ベンチマーク2
2004年11月11日 コンピュータマシンをいろいろといじってからやってなかったので走らせてみた。
ブルースクリーンになって落ちた。
ちなみにGeforceFX5200を使っている。
エラーにはこれ関連のDLLが原因らしい。
ちなみにドライバはβ版の最新ドライバだ。
仕方ないので正式版を使ってみる。
するとちゃんと起動した。
でも実は最近安くなったのでGeforceFX5900XTを通販で注文していたりする。
ブルースクリーンになって落ちた。
ちなみにGeforceFX5200を使っている。
エラーにはこれ関連のDLLが原因らしい。
ちなみにドライバはβ版の最新ドライバだ。
仕方ないので正式版を使ってみる。
するとちゃんと起動した。
でも実は最近安くなったのでGeforceFX5900XTを通販で注文していたりする。
大阪・日本橋は移転ブーム?
2004年11月10日 コンピュータ私が良く使うお店が2つ、引越しするようです。
・PCワンズ 11月12日
http://www.1-s.co.jp/info/trans20041112.html
恵比寿町駅により近くなるようですね。
ここってもしかして前に「とらのあな」があった場所かな?
まあ何にせよ広くなりそうなのでよかです。
・Faith 11月19日
http://www.faith-go.co.jp/sale/oosaka_iten2.html
こっちは難波駅に近くなるようです。
前に引っ越した場所からさらに移転。せっかく広くて好きだったのに。
やはり↓が関係してるのかな。
http://pc.watch.impress.co.jp/docs/2003/0829/arosys.htm
まあ今の店舗も元ツートップのあった場所ですしねえ、確か。
新しい場所は広いかな?
・PCワンズ 11月12日
http://www.1-s.co.jp/info/trans20041112.html
恵比寿町駅により近くなるようですね。
ここってもしかして前に「とらのあな」があった場所かな?
まあ何にせよ広くなりそうなのでよかです。
・Faith 11月19日
http://www.faith-go.co.jp/sale/oosaka_iten2.html
こっちは難波駅に近くなるようです。
前に引っ越した場所からさらに移転。せっかく広くて好きだったのに。
やはり↓が関係してるのかな。
http://pc.watch.impress.co.jp/docs/2003/0829/arosys.htm
まあ今の店舗も元ツートップのあった場所ですしねえ、確か。
新しい場所は広いかな?
いろいろとあって自作AVGの開発が止まったままなんですが、とりあえずそろそろ開発を再開しようということで。
ただ、どうもこのままパッチワーク的に開発を進めるのは危険という判断が駆け巡り、一旦作り直すことにしました。まぁWin32APIとかDirectXあたりの操作は変わらないので、そういうところは流用できるはずです。
とりあえず前回は無駄に細かいところを意識するあまり、開発が遅々として進まないという悪循環に陥ってしまったので、今回は試作品を作りつつ開発を進めようと思います。ちょこっとエクストリームプログラミングって感じです。・・・一人でやってるんだから開発手法も何もないですね。
・関連URL:
http://e-words.jp/w/XP.html(e-Words内 eXtreme Programming)
ただ、どうもこのままパッチワーク的に開発を進めるのは危険という判断が駆け巡り、一旦作り直すことにしました。まぁWin32APIとかDirectXあたりの操作は変わらないので、そういうところは流用できるはずです。
とりあえず前回は無駄に細かいところを意識するあまり、開発が遅々として進まないという悪循環に陥ってしまったので、今回は試作品を作りつつ開発を進めようと思います。ちょこっとエクストリームプログラミングって感じです。・・・一人でやってるんだから開発手法も何もないですね。
・関連URL:
http://e-words.jp/w/XP.html(e-Words内 eXtreme Programming)
私は親が元郵便局員ですが、貯金がとても苦手です。
貰ったお金、それが特に自分で稼いだお金ならすぐに使ってしまいます。まぁ一種のストレス発散には違いありません。そんなにストレス溜まることもありませんが。
まぁそんなわけで日曜日にhttp://www.geocities.jp/i_takeshima/の人と一緒に大阪日本橋に行って大きな買い物をしてきました。
何を買ったかと言えばこれ
http://www2.onkyo.com/jp/product/products.nsf/pview/DESKTOPAVSYSTEM700?OpenDocument
PCワンズで三万五千円でした。
狭い部屋でありながら十二国記のサントラを大音量で流しつつ楽しんでおります。(昼間だけ)
とはいえ、今までの千円以下のスピーカーに比べれば雲泥の差です。私は音響関係はかなりの素人なんですが、素人でも「こいつは違う」ってのがよくわかります。
というわけで、このおかげで文章を書くのもプログラムを組むのもはかどれば良いなあ、なんて思っております。
貰ったお金、それが特に自分で稼いだお金ならすぐに使ってしまいます。まぁ一種のストレス発散には違いありません。そんなにストレス溜まることもありませんが。
まぁそんなわけで日曜日にhttp://www.geocities.jp/i_takeshima/の人と一緒に大阪日本橋に行って大きな買い物をしてきました。
何を買ったかと言えばこれ
http://www2.onkyo.com/jp/product/products.nsf/pview/DESKTOPAVSYSTEM700?OpenDocument
PCワンズで三万五千円でした。
狭い部屋でありながら十二国記のサントラを大音量で流しつつ楽しんでおります。(昼間だけ)
とはいえ、今までの千円以下のスピーカーに比べれば雲泥の差です。私は音響関係はかなりの素人なんですが、素人でも「こいつは違う」ってのがよくわかります。
というわけで、このおかげで文章を書くのもプログラムを組むのもはかどれば良いなあ、なんて思っております。
DirectSound
2004年3月10日 コンピュータ・自作AVGの話
.net framework から直接音楽を鳴らすことはできない。
この事実を知り愕然とする。
なんでも今年リリース予定のVisualStudio"Whidbey"でSystem.Windows.Forms.Soundクラスを導入するらしい。じゃあどうしたらいいんだってことで、もはやDirectXを使うしかなくなりました。
とりあえずコードを書いてみる。それほど難しくない。基本的にはSecondaryBufferに流し込んで再生すればよい。
どうやら静的バッファとストリームバッファという違いがあるらしい。細かいことを省略すると、前者は効果音に、後者はBGMに用いるということである。
で、ここで問題発生。効果音をバッファに流し込もうとすると落ちる。エラー内容は、「バッファサイズが小さすぎる」。
しかし十分な量のバッファを用意しても落ちる。というか、自動的にサイズを取得してくれるコンストラクタを用いているのになぜだろう。
・・・と、マニュアルをよく読んでみると、BufferDescriptionFlags.ControlEffectsフラグを立てると静的バッファとして用いることができない、ということらしきことが書いている(本当は微妙に違う)。
まぁ効果音にエフェクトを掛けることもないだろうということでこのフラグを落としてやると・・・成功しました。
しかし日本語マニュアルはバージョンが古いせいかところどころ使い物になりませんなぁ・・・
.net framework から直接音楽を鳴らすことはできない。
この事実を知り愕然とする。
なんでも今年リリース予定のVisualStudio"Whidbey"でSystem.Windows.Forms.Soundクラスを導入するらしい。じゃあどうしたらいいんだってことで、もはやDirectXを使うしかなくなりました。
とりあえずコードを書いてみる。それほど難しくない。基本的にはSecondaryBufferに流し込んで再生すればよい。
どうやら静的バッファとストリームバッファという違いがあるらしい。細かいことを省略すると、前者は効果音に、後者はBGMに用いるということである。
で、ここで問題発生。効果音をバッファに流し込もうとすると落ちる。エラー内容は、「バッファサイズが小さすぎる」。
しかし十分な量のバッファを用意しても落ちる。というか、自動的にサイズを取得してくれるコンストラクタを用いているのになぜだろう。
・・・と、マニュアルをよく読んでみると、BufferDescriptionFlags.ControlEffectsフラグを立てると静的バッファとして用いることができない、ということらしきことが書いている(本当は微妙に違う)。
まぁ効果音にエフェクトを掛けることもないだろうということでこのフラグを落としてやると・・・成功しました。
しかし日本語マニュアルはバージョンが古いせいかところどころ使い物になりませんなぁ・・・
さようならWindows98
2004年3月1日 コンピュータ コメント (1)ノートPC(古い方)が死にました。
おそらくHDDがさようならした模様です。
まだOS再インストールしてませんが、やる気も起こらないので放置。
新しいノートPCありますしね・・・。
とりあえず再インストール後はWindows2000を載せてみます。
今の時代Win98じゃあもうだめっぽいので。
と、思ったけれどLinuxにしようかなぁ。
RedHatだと管理も楽だし・・・。
・・・面倒くさいので実家送りにしましょう・・・
おそらくHDDがさようならした模様です。
まだOS再インストールしてませんが、やる気も起こらないので放置。
新しいノートPCありますしね・・・。
とりあえず再インストール後はWindows2000を載せてみます。
今の時代Win98じゃあもうだめっぽいので。
と、思ったけれどLinuxにしようかなぁ。
RedHatだと管理も楽だし・・・。
・・・面倒くさいので実家送りにしましょう・・・
今日は日曜日ということで
2004年2月15日 コンピュータやっぱりプログラミングしてました。
でもあんまり進んでません。
とりあえず色々とできてきたので、次に難題のメニュー(選択肢
を作ろうかと思います。
GUIめんどくせぇ・・・。
とはいえ明日からは大学のほうに行かなければなりません。ここ何日かずっと趣味のプログラムしかしてませんでしたし、問題山積みですよ。
しばらくはこのプログラムもお休みかなぁ、といいつつ作ってるかもしれません。
でもあんまり進んでません。
とりあえず色々とできてきたので、次に難題のメニュー(選択肢
を作ろうかと思います。
GUIめんどくせぇ・・・。
とはいえ明日からは大学のほうに行かなければなりません。ここ何日かずっと趣味のプログラムしかしてませんでしたし、問題山積みですよ。
しばらくはこのプログラムもお休みかなぁ、といいつつ作ってるかもしれません。
再来週の日曜日(2/22)は日本橋へ
2004年2月14日 コンピュータ行くことになりました@大阪
詳しくはhttp://www.geocities.jp/loadasosiation999/の日記参照。
AVGプログラムの製作は順調に進んでおります。
今日からは昨日の日記のとおり、表示部分ではなく中間言語を処理するところへ。しかしオブジェクト指向のシワ寄せか書くべきコード量が半端じゃない。
まぁ、VS.NETのおかげでかなり助かってますが・・・投資した金額が無駄にならなそうでいいことです。
ちなみにその他諸々の本を入れますとこのプログラムを書くために1.5万ほど使っております。
・・・ノートPCは勘定に入れません。
というわけで今からプログラムの続きを書きます。
酒が入っているのは気にしない方向で。
詳しくはhttp://www.geocities.jp/loadasosiation999/の日記参照。
AVGプログラムの製作は順調に進んでおります。
今日からは昨日の日記のとおり、表示部分ではなく中間言語を処理するところへ。しかしオブジェクト指向のシワ寄せか書くべきコード量が半端じゃない。
まぁ、VS.NETのおかげでかなり助かってますが・・・投資した金額が無駄にならなそうでいいことです。
ちなみにその他諸々の本を入れますとこのプログラムを書くために1.5万ほど使っております。
・・・ノートPCは勘定に入れません。
というわけで今からプログラムの続きを書きます。
酒が入っているのは気にしない方向で。
結局WindowsAPIを使うことになっていた
2004年2月13日 コンピュータだってWINDOWS2000でうまくManaged DirectXが動かなかったんだもの。
自作AVGのほうは、ほぼ表示部分が第一段階をクリアしそうです。問題となっていた動作の重さも色々と調べるうちに解決してたり。画像の混合とか、ちゃんとそれようのクラスライブラリが用意されてるのね・・・
フェードインとかフェードアウトもできるようになりました。テキストの表示もできるようになりました。
というわけで表示部分はいったん止めて、次からはコード処理部に移ります。まずは中間言語の仕様を決めないと・・・。
まだまだやることは多いけれど、やっぱり研究と違って楽しいなぁ。
自作AVGのほうは、ほぼ表示部分が第一段階をクリアしそうです。問題となっていた動作の重さも色々と調べるうちに解決してたり。画像の混合とか、ちゃんとそれようのクラスライブラリが用意されてるのね・・・
フェードインとかフェードアウトもできるようになりました。テキストの表示もできるようになりました。
というわけで表示部分はいったん止めて、次からはコード処理部に移ります。まずは中間言語の仕様を決めないと・・・。
まだまだやることは多いけれど、やっぱり研究と違って楽しいなぁ。
コメントをみる |

今日はプログラミングをしようと思ったけれど、気が乗らないのでやめます。
リネージュ2に手を出してみたり。
どうせすぐ飽きるさ。Corum OnlineにKnight Onlineもやったけれどあまり面白くなかった。やっぱりコミュニティを築かないと面白さがないと思いますね、MMORPGは。
それはともかくタイトルの話。昨日風呂に入りながら考えたこと。
ずばり「オブジェクト指向」とは何か。
はっきりいって若輩者の私にはまだまだ答えられない疑問ですが、おそらくこの疑問についてしっかりとした答えを出せる人はほとんどいないでしょう。(含:Micr○soft会長)
ちなみに「オブジェクト指向」と「オブジェクト指向言語」との間には微妙な違いがありますので、Javaをやってるからオブジェクト指向ができているわけでもありません。
さらにC++という言語はオブジェクト指向言語としては未熟なので、あまりオブジェクトを扱ってる気分になれません。
そもそもオブジェクト指向は、プログラムを一人で作成する場合にはあまり役に立ちません。カプセル化とかインターフェイスとかは多人数でプログラムを開発するのに便利なもので、一人でやる場合には書くコード量が増える分マイナス面も大きいのです。
そこでRubyの登場です。こいつはオブジェクト指向スクリプト言語。スクリプトとはすなわち「すぐに書ける小さなプログラム」のこと。要するにRubyはオブジェクト指向にありながらそのコード量を減らすことに成功した、すばらしい言語なのです。
ただし、スクリプト言語は動作が遅いという、古来よりの伝統があります。さらにオブジェクト指向言語はそれ自体が重いということもあります。
でもRubyってそれほど重く感じません。やっぱり最近のコンピュータの性能向上があってこそ生まれた言語なのでしょうか。
・・・そういえば最近Rubyでプログラミングしてないなあ。最後に作ったのは簡単なCGIだったっけ・・・
リネージュ2に手を出してみたり。
どうせすぐ飽きるさ。Corum OnlineにKnight Onlineもやったけれどあまり面白くなかった。やっぱりコミュニティを築かないと面白さがないと思いますね、MMORPGは。
それはともかくタイトルの話。昨日風呂に入りながら考えたこと。
ずばり「オブジェクト指向」とは何か。
はっきりいって若輩者の私にはまだまだ答えられない疑問ですが、おそらくこの疑問についてしっかりとした答えを出せる人はほとんどいないでしょう。(含:Micr○soft会長)
ちなみに「オブジェクト指向」と「オブジェクト指向言語」との間には微妙な違いがありますので、Javaをやってるからオブジェクト指向ができているわけでもありません。
さらにC++という言語はオブジェクト指向言語としては未熟なので、あまりオブジェクトを扱ってる気分になれません。
そもそもオブジェクト指向は、プログラムを一人で作成する場合にはあまり役に立ちません。カプセル化とかインターフェイスとかは多人数でプログラムを開発するのに便利なもので、一人でやる場合には書くコード量が増える分マイナス面も大きいのです。
そこでRubyの登場です。こいつはオブジェクト指向スクリプト言語。スクリプトとはすなわち「すぐに書ける小さなプログラム」のこと。要するにRubyはオブジェクト指向にありながらそのコード量を減らすことに成功した、すばらしい言語なのです。
ただし、スクリプト言語は動作が遅いという、古来よりの伝統があります。さらにオブジェクト指向言語はそれ自体が重いということもあります。
でもRubyってそれほど重く感じません。やっぱり最近のコンピュータの性能向上があってこそ生まれた言語なのでしょうか。
・・・そういえば最近Rubyでプログラミングしてないなあ。最後に作ったのは簡単なCGIだったっけ・・・
を中古で買いました(昨日)12万円でした。
なぜか左shiftキーと組み合わせると動作がおかしなキーがあります。(大文字が普通に出なかったり)
XP-SP1を適用すると通常起動できなくなったり(パッチで対応済み)などなかなか愉快なやつですが、これでどこでもWindowsプログラミングができます。
・・・なんていいつつ環境をそろえていますがうまくDirectX SDKがVS.NETに組み込まれず難儀中。
というか、Microsoftの陰謀なのか、あのSDKのおいてあるページが見難くて仕方がないのですが・・・
ところで明日のミーティングの準備ができてません。
どうしましょう。
#追記
なんか馬鹿っぽくなったのでDirectXはMicrosoftが対応するのを待つことにしました。
どうせ出すのは早くて次の冬なんだし。
というわけで当面WindowモードのAVGになります。
ああ、C#にしなければ簡単になるって話は無視の方向で。
あとWinAPI使えってのもたるいので無視の方向で。
#追記2
と思ったらできてしまった。
わけわからんぞゲイツ君。
ちなみに今は極小USBキーボードを刺して使ってます。
なぜか左shiftキーと組み合わせると動作がおかしなキーがあります。(大文字が普通に出なかったり)
XP-SP1を適用すると通常起動できなくなったり(パッチで対応済み)などなかなか愉快なやつですが、これでどこでもWindowsプログラミングができます。
・・・なんていいつつ環境をそろえていますがうまくDirectX SDKがVS.NETに組み込まれず難儀中。
というか、Microsoftの陰謀なのか、あのSDKのおいてあるページが見難くて仕方がないのですが・・・
ところで明日のミーティングの準備ができてません。
どうしましょう。
#追記
なんか馬鹿っぽくなったのでDirectXはMicrosoftが対応するのを待つことにしました。
どうせ出すのは早くて次の冬なんだし。
というわけで当面WindowモードのAVGになります。
ああ、C#にしなければ簡単になるって話は無視の方向で。
あとWinAPI使えってのもたるいので無視の方向で。
#追記2
と思ったらできてしまった。
わけわからんぞゲイツ君。
ちなみに今は極小USBキーボードを刺して使ってます。
コメントをみる |
