ABアルゴリズム事典2

abdev 2 Comments »

私もヒマを見つけて参加しようと思っているABアルゴリズム事典、試験公開をしてから一日が過ぎたばかりですが、なにやらオモシロそうな雰囲気が漂っております。協力的な参加者の方がいてくれるおかげで、順調な滑り出しです。初日からご協力いただいた方々、ありがとうございましたm(__)m

さて、まだまだ未熟なAB5βのリリースを、開発者向けに行っていきたいと考えている今日この頃。まずは「AB開発サイド」フォーラムを開設し、開発陣営を結成したいところです。

SourceForgeへの登録も済み、ライブラリのアップロードも行ったばかりですので、あとはフォーラムの正式公開を目指します。

グラデーション生成モジュール

abdev グラデーション生成モジュール はコメントを受け付けていません

色々とIDEを作りこんでいる中、グラデーションビットマップを手軽に生成できる関数が欲しくなったので作りました。

最初はLineToなどを使ったら簡単にできるだろうと思っていたのですが、遅さが気がかりに。

悩みながらコーディングをしていたら、最終的に、DIBのビット部分を直接書き込むような処理にまとまりました(ホッ)。

下記のCreateGradationBitmap関数、定義さえしてしまえば使い方はとても簡単です。戻り値にビットマップハンドルがセットされるので、使い終わったらDeleteObjectしてください。

pSizeパラメータにはビットマップのサイズをピクセル単位で指定。color1〜color2に変化するようなグラデーションビットマップが生成されます。

HBITMAP CreateGradationBitmap(SIZE *pSize,COLORREF color1,COLORREF color2){
    //グラデーションビットマップを生成

    BITMAPINFO BitmapInfo;
    memset(&BitmapInfo.bmiHeader,0,sizeof(BITMAPINFOHEADER));
    BitmapInfo.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
    BitmapInfo.bmiHeader.biWidth=pSize->cx;
    BitmapInfo.bmiHeader.biHeight=pSize->cy;
    BitmapInfo.bmiHeader.biPlanes=1;
    BitmapInfo.bmiHeader.biBitCount=24;

    HDC hdc;
    hdc=GetDC(GetDesktopWindow());

    HBITMAP hBitmap;
    BYTE *pByte;
    hBitmap=CreateDIBSection(hdc,&BitmapInfo,DIB_RGB_COLORS,(void **)&pByte,0,0);

    int i,i2,x,y;
    COLORREF rgb;
    i=BitmapInfo.bmiHeader.biWidth*3;
    if(i%sizeof(LONG)!=0) i+=sizeof(LONG)-(i%sizeof(LONG));
    for(y=0;y<BitmapInfo.bmiHeader.biHeight;y++){
        rgb=RGB(
            LOBYTE(LOWORD(color2))+(int)(double)(LOBYTE(LOWORD(color1))-LOBYTE(LOWORD(color2)))*((double)y/(double)BitmapInfo.bmiHeader.biHeight),    //赤要素
            HIBYTE(LOWORD(color2))+(int)(double)(HIBYTE(LOWORD(color1))-HIBYTE(LOWORD(color2)))*((double)y/(double)BitmapInfo.bmiHeader.biHeight),    //緑要素
            LOBYTE(HIWORD(color2))+(int)(double)(LOBYTE(HIWORD(color1))-LOBYTE(HIWORD(color2)))*((double)y/(double)BitmapInfo.bmiHeader.biHeight),    //青要素
            );
        for(x=0;x<BitmapInfo.bmiHeader.biWidth;x++){
            i2=y*i+x*3;
            pByte[i2+2]=LOBYTE(LOWORD(rgb));
            pByte[i2+1]=HIBYTE(LOWORD(rgb));
            pByte[i2]=LOBYTE(HIWORD(rgb));
        }
    }

    DeleteDC(hdc);

    return hBitmap;
}

ABによるアルゴリズム事典

abdev ABによるアルゴリズム事典 はコメントを受け付けていません

奥村晴彦先生が書かれた「C言語による最新アルゴリズム事典について」のABへの移植を始めようと思います。

C言語による最新アルゴリズム事典

といっても、私一人では到底無理な話ですので、スキルを持つユーザーの皆様に協力をお願いしたいと思います。

まずは、ABによるアルゴリズム事典Wikiを立ち上げましたので、興味がおありの方はお試しいただければ幸いです。

当面は試験運用ということにして、時期を見計らって正式コンテンツにしていければと考えていますので、よろしくお願い致します。

http://www.activebasic.com/aba/wiki.cgi

MSDNライブラリが壊れた〜

abdev 4 Comments »

なんか最近、私のパソコンの中にあるソフトが言うことをきかないときがあります。ただ単に私の設定ミスならともかく、、、

VC6付属のMSDNライブラリは、古い情報ではあるものの、その内容は膨大であり、今でも活用できる文章が山ほど眠っているのです。そのMSDNライブラリが、右の画像のように、IE部分が真っ白けっけになってしまい、開こうとすると「ページをダウンロードするかい?」というメッセージが表示されてしまいます。

また再インストールか(ハァ)。

SSE2とFPU

abdev SSE2とFPU はコメントを受け付けていません

最近、ちょっとした調べ物がてら、SSE2とFPUに単純に浮動小数の四則演算をさせたときにどれほど速度差が生じているのかをベンチしてみました。測定環境は下記の通り。

Windows XP Pro(32ビット)

Pentium M 1.2GHz

512MB メモリー

四則演算(1ループ4回の演算処理)を10億回繰り返します。

結果・・・・・

  • FPU … 38秒
  • SSE2 … 39秒

・・・・・

びみょ〜

SSE2は、並列演算を行うからこそ、高速化が望めるものだと実感できました。まぁ、他のCPUで試していないのでなんともいえませんが、何かの足しになれば…。

VC2005不具合発生中

abdev 3 Comments »

特に問題なく実行していたVC2005ですが、突然のようにコンパイルができなくなってしまいました。この問題が発生してから早2日。再インストールしてみたものの、解決の糸口は見つかっておりません。もしも下記のようなエラーを修復された方がいらっしゃいましたらアドバイスいただると助かります(cl.exeに関する何らかのDLLが悪いのかな〜、一応、mspdb80.dllあたりを調べてはいるのですが…)。

プロジェクト : error PRJ0002 : エラーの結果 -1073741515 が 'C:\Program Files\Microsoft Visual Studio 8\VC\bin\cl.exe' より返されました。

寝不足が続きます

abdev 3 Comments »

WC2006の影響もあり、寝不足が続いています。今週の平均睡眠時間は4〜5時間といったところでしょうか。

さて、最近、HPの更新をできずにいるのですが、その反面、開発作業のほうが着実に進んでおります。ホント、IDEの拡張作業には終わりがありません。

アルゴリズム辞典をABに移植してしまおうプロジェクトなんかも企画中(まだ私の頭の中にあるだけ…)なので、新しいバージョンのプロモーション活動と共に、そういう活動も進めていけたらな〜なんて考えています。

え〜とあとは、コミュニティのほうでライブラリ開発というフォーラムを準備しているのですが、なるべく来週中には趣旨の明確化と稼動開始を目標にしていきたいと思います。ご協力いただける開発者の皆様、よろしくお願いいたします。

チキチキバンバン

abdev 40 Comments »

皆さん、小さい頃に数え切れないくらいリピート鑑賞しまくった映画ってありません?私にとってそのような印象深いのが「チキチキバンバン」という映画なのですが、ネットサーフィンをしていたら面白いページを見つけてしまいました。その名も「チキチキバンバン大研究」。

この映画を簡単にまとめると「観る者の心に夢と感動を与えてくれるミュージカル映画の傑作」(by チキチキバンバン大研究)だそうです。

それにしても、この映画の最重要セットとして活躍するチキチキ号が、「第二次世界大戦の1914年型のチェーンドライブ方式75馬力のメルセデスのシャーシに、ドイツの飛行船ツェッペリン号に使用されたものと同型のマイバッハ空冷式のシリンダーのエンジンを搭載したものである」(by チキチキバンバン大研究)とわかっただけで、大収穫でした。

チキチキバンバン大研究:

http://www.geocities.jp/krytone1234/chittytop.htm

この映画見たことあるって人、いるのかな〜(私の周りには一人もいないです(;;

久々のバイク

abdev 久々のバイク はコメントを受け付けていません

今日は土曜日。実家に戻ってきたら、弟と出くわしました。最近、ウチの弟はXJR1200(私が二代目に乗ってたバイク)を買ったらしく、家の前にはいつもとまっています。

なんとなく、「ちょっとだけ貸してよ」みたいに言ったら即決でOKしてくれたので、久しぶりにバイクで近所を一周してきました。

う〜ん、やっぱバイクは気持ちいな〜。気持ちいけど、、、左手(クラッチを握るほう)が攣りそうだったな〜

正規表現で検索

abdev 1 Comment »

bregexp.dllを利用して正規表現による検索・置換機能を追加してみました。こちら、次回のTheText及びActiveBasicで搭載できそうですv(^^

bregexp.dllが提供する正規表現はPerl5と互換性が高いようで、参考資料も豊富にあります。これで複雑なパターンの検索作業、置換作業に時間をとられなくてすみそうです(今までのアナログさにはウンザリだぃ)。

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン