プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 このページをアンテナに追加 RSSフィード

 iTunes Music Store(Japan) なかのひと あわせて読みたいブログパーツ
|

0001 | 00 |
2004 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
2008 | 01 | 02 | 03 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 |
2010 | 03 | 04 | 06 | 07 | 09 | 10 | 11 |
2011 | 01 | 02 | 10 |
2012 | 04 |
2013 | 01 | 05 | 06 | 07 | 08 | 10 |
2014 | 02 | 03 | 05 | 09 |
2015 | 04 |
2016 | 09 | 11 | 12 |
はてな一覧
アンテナに追加
私のアンテナ
私のダイアリー
私のアーカイブ
私のアイデア
私のブックマーク
私のグループ
私のキーワード
ニュース系、今まで続いているシリーズモノの読み物
dKingyo Utility Toolkit Projectのリリース情報
やっぱり暗号化は大人の味(笑)
プログラムのパッキング方法を調べよ
ココが厳しいよMinGW
ライブラリアン通信
ゲームプログラミングどうしよう
CRCについて
ビット演算練習
d金魚の今更Ajax
Windows Tips
VC6 Tips
Win32 WTL Tips
Ruby for C++ User
Ruby Tips
今日のRubyで嵌った事
正規表現PIECE
書きかけ
続く・・・

私のダイアリーの人気記事
新しくブックマークされた記事


あまり、役に立たなそうな個人的に調べた情報や妄想に耽った事、今 勉強している事ヒソヒソと公開していたりします。 | 登録してくれている方々 | d金魚にメール | 当サイトは640x480の画面解像度に対応しています。
日記へのリンク、アンリンクはフリーですが、selfタグのついている部分のコンテンツの引用はご遠慮願います。ご協力よろしくお願いします。


 | 

2004-12-31 大晦日はlucilleのソースコードのコンパイル

[][]VC6 Tips / lucilleをVC6 SP6でコンパイルする方法 VC6 Tips / lucilleをVC6 SP6でコンパイルする方法を含むブックマーク VC6 Tips / lucilleをVC6 SP6でコンパイルする方法のブックマークコメント

他に参考にすると良いのは?

以上也。

[][][][]VC6用 Processor Packは更新されていた? VC6用 Processor Packは更新されていた?を含むブックマーク VC6用 Processor Packは更新されていた?のブックマークコメント

なんか、MS*1さんのPP*2ダウンロードページの更新情報をみると2000年になっているのだが、

2000年以降にダウンロードしたVCSP5*3用のPPとついさっきダウンロードしたPPのSHA1が違うのだが・・・ムゥ・・・。

後で分かったのだが、

なんか、VC6SP4用をダウンしてしまったらしい。

*1Microsoft

*2:Processor Pack

*3:Visual C++ Service Pack 5

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041231

2004-12-30 lucilleのソースコードで感動

[][][] lucilleのソースコードはすばらしい。  lucilleのソースコードはすばらしい。を含むブックマーク  lucilleのソースコードはすばらしい。のブックマークコメント

http://sourceforge.net/projects/lucille/

と、いうグローバルイルミネーションレンダラーの存在は前々から知っていたのだが、ソースコードのライセンスを見て感動した。

BSD Licenceなのだ。

dkutil_cはC言語で実現出来そうな基本的なアルゴリズムとデータ構造をチマチマとぶち込んできたライブラリ郡である。

特に、最近は画像処理関係に興味がでてきたところだ。

そして、lucilleのソースコードを読みこむにつれ、lucilleにはそれらさまざまなものが実装されていた。

憧れのoctreeもだ。(正直、これらの事が解説されている本は高い)

ソースコードからチマチマと読みこんで理解していこうと思う。

今の所、興味のあるソースコードスクラッチは マニアックな暗号化、圧縮関連しか無いだろう。

luciileの製作者さん。勉強になります。m(_ _)m

[][][]私、FastCopyにも感動しました。 私、FastCopyにも感動しました。を含むブックマーク 私、FastCopyにも感動しました。のブックマークコメント

http://www.ipmsg.org/private/

にて、公開されているFastCopyと言うツール。これもBSD Licenceで公開されている。

特に、

NT系OS の場合、UNICODE でしか表現できないファイル名や MAX_PATH(260文字) を越えた位置のファイルもコピーできます。

という所に感動した。

一時期、私もこれらのプログラムを組んだ事があるのだが、上手く動作せず、投げ出してしまった^^;思い出があったからだ。*1

これらのプログラムをしっかりと読みこんで血肉にして行こうと思う。

白水啓章氏に感謝 m(_ _)m

*1:dkutilのfilefind.hppにその断片があるはず・・・

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041230

2004-12-29 dkutil_c crypt pack をリリース

[][][][]dkutil_c crypt pack 20050103をリリースdkutil_c crypt pack 20050103をリリース。を含むブックマーク dkutil_c crypt pack 20050103をリリース。のブックマークコメント

タイトル通りです。

案の定、こちらです。http://www33.tok2.com/home/dca/dkutil.html

主に、テスト済み?モジュール郡をアーカイブする形になりました。

とりあえず、暗号化関係のモジュールは今*1の私は信用できます。

また、自己満足に「well1024aの出力テスト」 の完全版?もリリースしました。

[][]cvsより使いやすいバージョン管理?subversion cvsより使いやすいバージョン管理?subversionを含むブックマーク cvsより使いやすいバージョン管理?subversionのブックマークコメント

http://lucille.atso-net.jp/blog/archives/2004/12/subversion_1.html

*1:2005/01/03現在

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041229

2004-12-28 みつけたかくげん

[][]足を上げずに前進することはできない 足を上げずに前進することはできないを含むブックマーク 足を上げずに前進することはできないのブックマークコメント

引用元

http://d.hatena.ne.jp/yamaza/20041229#p1

なーる。リスクですね。 

棚からなんとやら はありえないと・・・

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041228

2004-12-27 擬似乱数生成アルゴリズム part2

[][][]Xorshift RNGs Xorshift RNGs を含むブックマーク Xorshift RNGs のブックマークコメント

http://lucille.atso-net.jp/blog/archives/2005/01/xorshift_rngs.html

に、「xor とシフトを使うだけの超高速な擬似乱数生成器「Xorshift RNGs」を見つけた。

unsigned long xor128(){
  static unsigned long x=123456789,y=362436069,z=521288629,w=88675123;
  unsigned long t;
  t=(x^(x<<11));x=y;y=z;z=w; return( w=(w^(w>>19))^(t^(t>>8)) );
}


//then the multiply-with-carry (MWC):
unsigned long mwc(){
static unsigned long x=123456789,y=362436069,z=77465321,c=13579;
5
unsigned long long t;
t=916905990LL*x+c; x=y; y=z; c=(t>>32); return z=(t&0xffffffff);
}

前回の乱数備忘録http://d.hatena.ne.jp/studiokingyo/20041225)の事があったので目にとまった。

と、言う事で、WELL1024a.exeのソースとxor128()を使ってXorshift RNGs乱数生成ソフトを作り、自己満足にアップしたので、時間がありましたら、遊んでみては?

http://www33.tok2.com/home/dca/dkutil.html

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041227

2004-12-26 鼻血boost part2

[][]「BOOSTを語れゴラァ」を見つけた。 「BOOSTを語れゴラァ」を見つけた。 を含むブックマーク 「BOOSTを語れゴラァ」を見つけた。 のブックマークコメント

http://pc5.2ch.net/test/read.cgi/tech/1091198276/

気になった記事を引用する。

232 :デフォルトの名無しさん :04/12/21 16:10:42

次の改訂に入るのが確定しているboostの機能一覧ってどこでしたっけ?

どこかで見かけたんだけど、忘れてしまった。


233 :デフォルトの名無しさん :04/12/21 17:00:31

>>232

http://www.open-std.org/jtc1/sc22/wg21/docs/library_technical_report.html

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041226

2004-12-25 rend-algoでちょっと話題にでた擬似乱数生成アルゴリズム

[][][]擬似乱数生成アルゴリズム WELL 擬似乱数生成アルゴリズム WELLを含むブックマーク 擬似乱数生成アルゴリズム WELLのブックマークコメント

google:rend-algoメ―リングリストで昔にちょっと目に付けたメールがあった。

ちと、今まで、忘れていたのだが、最近思い出したので備忘録もかねて載せておく。

なんか、情報は少ないらしい・・・。


私の英語力ではこの擬似乱数アルゴリズムのpatentについての事が良く分からない・・・。゜(゜´Д`゜)゜。

dkutil_cにぶち込むかどうかは未定。

[][]well1024a擬似乱数生成バイナリをアップ well1024a擬似乱数生成バイナリをアップを含むブックマーク well1024a擬似乱数生成バイナリをアップのブックマークコメント

とりあえず、バイナリを作って自己満足したので 欲しい方はバイナリをどうぞ・・・

http://www33.tok2.com/home/dca/dkutil.html

[][][][][][]fox-toolkit X-Mas releaseにて fox-toolkit X-Mas releaseにてを含むブックマーク fox-toolkit X-Mas releaseにてのブックマークコメント

http://www.fox-toolkit.org/

Added API's to FXStream: setBigEndian() and isBigEndian(). These force the FXStream into a particular byte order. Byte swapping will be enabled or disabled depending on the endianness of the platform. The old API isLittleEndian() is removed: to determine byte order, just use FOX_BIGENDIAN macro directly.

私の直感による日本語訳・・・。

FXStreamにsetBigEndian()とisBigEndian()追加。

強制的にFXStreamは特別なバイトオーダ。

バイト順がスワップするのはプラットフォームに依存する。

isLittleEndian()は削除した。バイトオーダーを決心した。ちょうどFOX_BIGENDIANマクロを直接使う・・・。

むぅ〜。我ながら酷い日本語訳だ・・・。

しかし、dkutil_cのエンディアン関係はfox-toolkitを見習っていたのだが、なんか、私が組んでいたLittleEndianベースのものとは違う道に行っているみたいだ・・・。

ネットワーク上ではBigEndianが主流なのを考えると、私もエンディアンが絡むプログラムはBigEndianにしなければならないだろうか?

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041225

2004-12-24 DKUT dkutil_cバグ情報 2004/12/24

[][][]dkutil_cのdkcRLEにバグが見つかりました。 dkutil_cのdkcRLEにバグが見つかりました。を含むブックマーク dkutil_cのdkcRLEにバグが見つかりました。のブックマークコメント

dkutil_cのdkcRLEモジュールに 圧縮解凍機構にバグを発見しました。只今、調査、デバッグ中です。

[][]RLE機構のプログラムが出来ました。 RLE機構のプログラムが出来ました。を含むブックマーク RLE機構のプログラムが出来ました。のブックマークコメント

これでRLEのプログラム書きなおしたの5回目だよ・・・。

セルオートマトン*1こんな感じのプログラムを組むのを苦手とするのは致命的です・・・。ヽ(`Д´)ノウワァン

完全版は次回dkutil_cのリリースで・・・。

ちなみに下記のソースコードのライセンスはNYSLで・・・。

#define packbit(a) (BYTE)((a + 0x80) & 0xff)

#define int2byte(a) (BYTE)(a & 0xff)

int WINAPI dkcRLEPackBitsEncode(DKC_RLE_PACKBITS_HEADER *p,
                                BYTE *dest,size_t dsize,
                                const BYTE *src,size_t ssize,
                                BYTE a_count)
{
  BYTE *t = (BYTE *)src;
  BYTE *st = t + ssize;
  BYTE *out = dest;
  int i;
  
  if(dkcCheckOverflowULONG( (ULONG) dest,dsize)){
    return edk_FAILED;
  }
  if(dsize < ssize * 2){
    return edk_ArgumentException;
  }
  if(CHAR_MAX < a_count || a_count <= 2){
    return edk_ArgumentException;
  }
  for(;;){
    unsigned int tt = *t;
    BYTE *inp = t;
    int n = 1;
    t++;//1個め
    
    for(;t < st && n < CHAR_MAX;t++){
      if( *t != tt){
        break;
      }
      n ++;
    }
    if(n >= a_count){
      *out++ = packbit(n) ;

      *out++ = (BYTE)(tt & 0xff);


    }else{
      
      int c = 1;//次のRUN長を調べるためのカウンタ
      BYTE *se = inp;
      t = inp;
      
      for(i = 0;se < st && i<CHAR_MAX;i++){
        if(c >= a_count){
          break;
        }
        if(t[i] == t[i + 1]){
          c++;
        }else{
          c = 1;
        }

        se++;
      }
      

      if(c >= a_count){
        se -= (c - 1);
        i -= (c - 1);
      }
      *out++ = int2byte(i);
      for(;t < se;){
        *out++ = *t++;
      }
      

    }
    if(t >= st){
      break;
    }
  }
  p->mCompressedSize = out - dest;
  p->mOriginSize = ssize;
  p->mCount = a_count;
  return edk_SUCCEEDED;
}


int WINAPI dkcRLEPackBitsDecode(DKC_RLE_PACKBITS_HEADER *p,
                                           BYTE *dest,size_t dsize,
                                const BYTE *src,size_t ssize)
{
  BYTE *in = (BYTE *)src;
  const BYTE *sin = src + ssize;
  BYTE *out = dest;
  int i;
  for(;;){
    BYTE t = *in++;
    int st;
    if(t & 0x80){//pack bits
      st = t - 0x80;
      for(i=0;i<st;i++){
        *out++ = *in;
      }
      in++;
    }else{//No compression
      st = t;
      for(i=0;i<st;i++){
        *out++ = *in++;
      }
    }
    if(in >= sin){
      break;
    }
  }
  return edk_SUCCEEDED;
}

*1:で、いいんだっけ?

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041224

2004-12-23 正規表現にヽ(`Д´)ノムキィ

[][]正規表現 こんなときどうする? 正規表現 こんなときどうする?を含むブックマーク 正規表現 こんなときどうする?のブックマークコメント

a1,a2,a3 ... という文字列があったとして

a1をa[1],a2をa[2]にしたい時どうすればいいのだろうか?

a[0-9]

a[...分からない・・・

どうするの〜 ヽ(`Д´)ノウワァン

秀丸を参考にしてmath

http://crocro.com/pc/write/hide/chimarl09_01.html

[]Perlでa1,a2,a3 ... を a[1] a[2] a[3]...にする Perlでa1,a2,a3 ... を a[1] a[2] a[3]...にするを含むブックマーク Perlでa1,a2,a3 ... を a[1] a[2] a[3]...にするのブックマークコメント

hyuki氏にPerlでの方法の情報をいただいた。感謝です。m(_ _)m

use strict;

my $x = ”a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a100,a12345”; # すべて変換する
my $y = ”abc1,bca2,aa3,a4a”; # すべて変換しない

$x =~ s/¥ba(¥d+)¥b/a[$1]/g;
$y =~ s/¥ba(¥d+)¥b/a[$1]/g;

print $x, ”¥n”;
print $y, ”¥n”;

ここで、ぶっちゃけ発言なんですが・・・

実は、Perlは、超初心者なのです・・・ 私・・・。

ゴメンなさい (_ _(--;(_ _(--; ペコペコ 2005年は使える言語を増やし技術力高めます。

RSS readerでもチマチマと作りつつ覚えていきます。

Perlで正規表現を使えるように!!!

hyukihyuki 2005/01/06 04:29 Perlならば、以下でどうでしょう。秀丸の正規表現ではわかりませんけれど。

use strict;

my $x = ”a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a100,a12345”; # すべて変換する
my $y = ”abc1,bca2,aa3,a4a”; # すべて変換しない

$x =~ s/¥ba(¥d+)¥b/a[$1]/g;
$y =~ s/¥ba(¥d+)¥b/a[$1]/g;

print $x, ”¥n”;
print $y, ”¥n”;
__END__
以下、実行結果。
a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[100],a[12345]
abc1,bca2,aa3,a4a

studiokingyostudiokingyo 2005/01/07 17:11 こんにちは。はじめまして。id:studiokingyoです。
Perlの正規表現、御指導ありがとうございます。m(_ _)m
この情報を元に、秀丸式正規表現を考えてみたいと思います。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041223

2004-12-22 やっぱり暗号化は大人の味(笑) part12

[][][]勝手にSNOW2.0を実装 勝手にSNOW2.0を実装を含むブックマーク 勝手にSNOW2.0を実装のブックマークコメント

http://d.hatena.ne.jp/studiokingyo/20041216#p1

より、SNOW 2.0を勝手に実装します。

その過程をチマチマとレポートでも^^;


例によって速度テスト

snow2.0 speed test / loop count = 524288 / one process = 64

ranking_tiemr / clock type : RealCPUClock / compile mode : DEBUG

1 / fast impl 256bit / 406220401.000000

2 / fast impl 128bit / 427057497.000000

3 / reference impl 256bit / 2166007616.000000

4 / reference impl 128bit / 2319600222.000000

5 / my impl 256bit / 2619101485.000000

6 / my impl 128bit / 2903814740.000000

ranking_tiemr / clock type : RealCPUClock / compile mode : RELEASE

1 / fast impl 256bit / 213927416.000000

2 / fast impl 128bit / 214124951.000000

3 / reference impl 128bit / 528714749.000000

4 / reference impl 256bit / 538825677.000000

5 / my impl 128bit / 630663432.000000

6 / my impl 256bit / 633829771.000000

泣きたくなりますな (´Д⊂グスン

初期化部のみが思いのかとテスト

ranking_tiemr / clock type : RealCPUClock / compile mode : RELEASE

1 / fast impl 256bit crypt speed / 207184859.000000

2 / fast impl 128bit / 223002223.000000

3 / fast impl 256bit / 233845334.000000

4 / reference impl 256bit / 490756923.000000

5 / reference impl 128bit / 501984354.000000

6 / reference impl 256bit crypt speed / 526352657.000000

7 / my impl 256bit / 626720797.000000

8 / my impl 256bit crypt speed / 630186067.000000

9 / my impl 128bit / 698409627.000000

。゜(゜´Д`゜)゜。

C言語でのオブジェクト指向的実装の場合、やっぱり限界があるわ・・・

CPUクロック(RDTSC)で計っていたのでmilli second clock ( timeGetTime() )に変えてみる。

ranking_tiemr / clock type : MilliSecondClock / compile mode : RELEASE

1 / fast impl 256bit crypt speed / 109.000000

2 / fast impl 256bit / 110.000000

3 / fast impl 128bit / 125.000000

4 / reference impl 128bit / 265.000000

5 / reference impl 256bit / 281.000000

6 / reference impl 256bit crypt speed / 297.000000

7 / my impl 256bit crypt speed / 344.000000

8 / my impl 128bit / 344.000000

9 / my impl 256bit / 375.000000

三倍も違うのか・・・ヽ(`Д´)ノウワァン

仕方ない・・・fast implのアルゴリズムをそのままパクっteオマージュして

snow2.0 speed test / loop count = 524288 / one process = 64

ranking_tiemr / clock type : MilliSecondClock / compile mode : RELEASE

1 / fast impl 128bit / 94.000000

2 / my impl 256bit 512bit step / 94.000000

ranking_tiemr / clock type : RealCPUClock / compile mode : RELEASE

1 / my impl 256bit 512bit step / 179576123.000000

2 / fast impl 256bit / 183024976.000000

と言う事で

どうか、許してください m(_ _)mこの通り

*1http://www.it.lth.se/cryptology/snow/snow20.pdf

*2http://bruch.sfc.keio.ac.jp/Ilp/DM_DB/node27.htmlhttp://www.ipa.go.jp/security/enc/CRYPTREC/fy15/documents/57rep.pdfがでてきたが・・・どうも、そのテクニックと合っているような気がしない。暗号大全やセキュア本( http://d.hatena.ne.jp/studiokingyo/20041219#p2 )でも買わんとダメか?  追記:http://d.hatena.ne.jp/studiokingyo/20041011#p1で使うテクニックだったことを思い出した。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041222

2004-12-21 やっぱり暗号化は大人の味(笑) 番外編 暗号攻撃法

[][][][]暗号攻撃法備忘録的自分勝手リスト 暗号攻撃法備忘録的自分勝手リストを含むブックマーク 暗号攻撃法備忘録的自分勝手リストのブックマークコメント

他に攻撃法の資料のURLや分権がありましたら情報をいただけると有難いです。m(_ _)m

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041221

2004-12-20 プログラミングに必要な数学的知識 高校生版

[][][][]高校生がイイ感じのプログラマーになる為に必要だと思われる数学スキル 高校生がイイ感じのプログラマーになる為に必要だと思われる数学的スキルを含むブックマーク 高校生がイイ感じのプログラマーになる為に必要だと思われる数学的スキルのブックマークコメント

私が勝手に調べて勝手に思い込んでいるだけなので他に必要なもの無用なものがありましたらコメントいただけるとうれしいです。

なんかAmazonでまとめてくれてる方がいらっしゃいました。

http://www.amazon.co.jp/exec/obidos/tg/listmania/list-browse/-/1ISJ1KF2R11WM/ref=lmq__1_1/249-7832784-6918768

[][]スペクトラム アナライザー を作りたい part2 スペクトラム アナライザー を作りたい part2を含むブックマーク スペクトラム アナライザー を作りたい part2のブックマークコメント

sky*1

Spectrum Analyzer (http://d.hatena.ne.jp/studiokingyo/20041202)の参考サイトを紹介してくださいました。

http://park1.wakwak.com/~y-nagano/Programs/Spectrum/

心から感謝申し上げmath m(_ _)m

最近、sky氏はネットラジオをしているらしい。

私も時間が空いたときにでも聞いてみたいと思います^^

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041220

2004-12-19 私はこんな本を薦める 2004/12/19

[]20041219備忘録 20041219備忘録を含むブックマーク 20041219備忘録のブックマークコメント

ちと、TAKABO SOFT*1 さんで紹介されていたサイトコピペ

http://www.gamingfm.com/complete/main/

[][]最近の欲しい本リスト 最近の欲しい本リストを含むブックマーク 最近の欲しい本リストのブックマークコメント

かなりオススメ

http://studiokingyo.fc2web.com/dxlib/shiryou/book.html

最近、「もう、プログラミングやりたくない病」にかかっていmath...

むぅ。

skysky 2004/12/30 15:33 ども、skyです。
オープンソースのSpectrum Analyzerを発見したのでURLを載せときます。http://park1.wakwak.com/~y-nagano/Programs/Spectrum/

studiokingyostudiokingyo 2005/01/02 12:39 ども、id:studiokingyoです^^
このページは見つけられなかったです。情報有難う御座います。
ネットラジオ楽しみにしてますよ^^

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041219

2004-12-18 並列オブジェクトタスクエンジンおよび並列処理方法

[][]並列オブジェクトタスクエンジンおよび並列処理方法 並列オブジェクトタスクエンジンおよび並列処理方法を含むブックマーク 並列オブジェクトタスクエンジンおよび並列処理方法のブックマークコメント

rend-algo メ―リングリストから知った。

特許電子図書館

http://www.ipdl.ncipi.go.jp/homepg.ipdl

特許・実用新案の検索 -> 文献番号索引照会

種別を「公開」に選び、文献番号 2001-318798 で検索

なーる。

こんなのも特許にされるのか・・・。タマラン・・・(でも、詳しく読みこんでないけど・・・)

replicornreplicorn 2004/12/26 23:45 最近のゲームはなんでも特許、特許ですね。穿ってみれば「アイディアが頭打ちなのでこれで稼ぐか」ってところでしょうか(^-^;)

studiokingyostudiokingyo 2004/12/28 21:21 そうですね。特許について調べたのですが、申請費用は個人では躊躇してしまう額ですね。
アメリカでは、特許を申請しておいて特許が切れるウン年前に特許料を請求するビジネスが流行っているとか・・・ヽ(`Д´)ノムキィ

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041218

2004-12-17 やっぱり暗号化は大人の味(笑) part11

[][]A New Stream Cipher HC-256*1 A New Stream Cipher HC-256*1を含むブックマーク A New Stream Cipher HC-256*1のブックマークコメント

http://eprint.iacr.org/2004/092.pdf

google:"A New Stream Cipher HC-256"

http://www.i2r.a-star.edu.sg/icsd/staff/hongjun/hc/

licenceについて

Finally we explicitly state that HC-256 and HC-2560 are not covered by any

patent and they are freely available.

えーっと、

最後に 私達は特にHC-256とHC-2560の状態をなんらかの特許で覆わない。

そして、彼らがフリーで利用できる

参考までにExciteにかけたら・・・

最後に、私たちは、HC-256およびHC-2560が任意の特許によってカバーされず、それらが自由に利用可能である、と明示的に述べます。

なんか、Exciteの翻訳レベル上がったなぁ〜自分で訳す必要も無くなった^^;(むしろExciteの方が精度高い!!?)


で、早速、dkutil_cにimplement*2する事にした。


でも・・・なんか、論文、チマチマ読みつつがんばってもわかんないし・・・

ソースをそのままconvertするか?

でも、ソース自体にそれ系の情報が何も書かれていないし・・・

もうちょっとガンヴァル!!!!!!

[]Stream Cipher HC-256の実装日誌 Stream Cipher HC-256の実装日誌を含むブックマーク Stream Cipher HC-256の実装日誌のブックマークコメント

  • とりあえず、チマチマ読んで ワンフレームに暗号化するところの形は分かった。実装完了。
  • 初期化部分が今ひとつ分からない・・・論文印刷して読みこむしかないなぁ〜 ムゥ〜
  • 実装は完了したが、どうも、バグっているらしい・・・ (´Д⊂グスン
  • 数日後、また、挑戦。どうも初期化は上手くいったようだが・・・
  • 2004/12/31 : 無事に実装完了。おつかれ・・・私。

とりあえず、私が、実装したソースのテスト結果

4byte毎

The encryption takes 45.7030 seconds.

The encryption speed is 751804878.63 bit/second

512byte毎

The encryption takes 0.3900 seconds.

The encryption speed is 88101893251.28 bit/second

original

4byte毎

不明

512byte毎

The encryption takes 13.8750 seconds.

The encryption speed is 2476377540.04 bit/second

なんか、512byte毎でtakesが大幅に違うところがあるのですが・・・むぅ。

[][]TOEICテスト900点・TOEFLテスト250点への王道 TOEICテスト900点・TOEFLテスト250点への王道 を含むブックマーク TOEICテスト900点・TOEFLテスト250点への王道 のブックマークコメント

http://www.amazon.co.jp/exec/obidos/ASIN/4478980470/studiokingyo-22

*1:なんか、snow2.0関連調べていたらでてきた

*2:implementってimplimentと間違えません?日本語でインプリメントとか言うからかなぁ

2004-12-16 やっぱり暗号化は大人の味(笑) part10

[][]Arcfourより強固!!?な暗号SNOW2.0 Arcfourより強固!!?な暗号SNOW2.0を含むブックマーク Arcfourより強固!!?な暗号SNOW2.0のブックマークコメント

sky氏の日記へろへろ日記にて、

http://beautiful.homelinux.net/~sky-software/diary/?date=20041218

http://beautiful.homelinux.net/~sky-software/diary/

オオ!!!こんな暗号が存在するとは。

http://www.it.lth.se/cryptology/snow/

個人的にStream暗号が好きな私なので早速 弄ってみなくては。

情報感謝m(_ _)m

[][]暗号化系リンク集 20041216 暗号化系リンク集 20041216を含むブックマーク 暗号化系リンク集 20041216のブックマークコメント

暗号を使おう!

http://hanran.tripod.com/crypt/

SAC 2003にてストリーム暗号の安全性に関し発表

http://www.sdl.hitachi.co.jp/japanese/news/event/01/sac03.html

(35) 線形マスク法を用いたSNOW 2.0に対するdistinguising攻撃 ○渡辺 大(日立製作所システム開発研究所), A. ビリュコフ, C. カニエール, B. プレネール(ルーベカトリック大) *

部長日記

http://www.enteh.org/~butyou/diary/

http://www.enteh.org/~butyou/diary/title.cgi?CAT=Cipher


2004年 暗号情報セキュリティシンポジウム

(SCIS2004)開催案内

(Symposium on Cryptography and Information Security)

http://scis2004.soft.iwate-pu.ac.jp/


Stream Ciphers

http://www.tcs.hut.fi/~helger/crypto/link/stream/

Liste d'algorithmes

http://www.uqtr.ca/~delisle/Crypto/appendices/algos.php

SecureProgramming.com

http://www.secureprogramming.com/

google:stream cipher

google:block cipher

zazoodles.com cipher

http://www.zazoodles.com/Science/Math/Applications/Communication_Theory/Cryptography/Algorithms/Ciphers/


暗号アルゴリズム Rijndaelのハードウェア実装と評価

http://almond.cs.uec.ac.jp/paper_pdf/2003/shimomura-VLD.pdf

最終的にAESに残ったアルゴリズム

http://web.archive.org/web/20031211155255/csrc.nist.gov/CryptoToolkit/aes/round2/r2algs-code.html

licenceについて。

A patent application has been filed, but if this cipher is adopted as the Advanced Encryption Standard we shall grant a worldwide royalty-free license for conforming implementations.

あれ?フリーだけど、"if this cipher is adopted as the Advanced Encryption Standard "って条件はナンですか?あれ?

むぅ〜。

  • Twofish

[][][]アルゴリズムフリーかどうかを調べるキーワード アルゴリズムがフリーかどうかを調べるキーワードを含むブックマーク アルゴリズムがフリーかどうかを調べるキーワードのブックマークコメント

  • licence
  • patent
  • concession

その他イロイロあるかも?

[][]暗号強度についての疑問 暗号強度についての疑問を含むブックマーク 暗号強度についての疑問のブックマークコメント

どっかに暗号強度のリストがあればなぁ〜

google:crypt | cipher strength list

google:cipher strength

google:cipher intensity

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041216

2004-12-15 16進で・・・

[][]息抜きゲーム / 16進数でシューティングゲーム 息抜きゲーム / 16進数でシューティングゲームを含むブックマーク 息抜きゲーム / 16進数でシューティングゲームのブックマークコメント

ネタ元

http://d.hatena.ne.jp/yaneurao/20041215

で、その考えたSTG

http://d.hatena.ne.jp/replicorn/20041213

多分、他にもありそう・・・

世の中面白い!!!

やねうらお氏の影響力はすごい!!!

[]本当に16進STG 本当に16進STGを含むブックマーク 本当に16進STGのブックマークコメント

で、早速影響が出たらしい

http://d.hatena.ne.jp/yaneurao/20041220

http://d.hatena.ne.jp/ABA/20041218

すばらC

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041215

2004-12-14 HTML上にファイルのSHA1を記述する規格

[][][][]HTML上にダウンロードするファイルのSHA1を記述する規格 HTML上にダウンロードするファイルのSHA1を記述する規格を含むブックマーク HTML上にダウンロードするファイルのSHA1を記述する規格のブックマークコメント

そう。MD5やCRC32は既にありそうなのだが、SHA1は知らない・・・

実は、ちまちまと、自分用のダウンローダを作っているのだ。*1

最近、消えていくプログラミング系のHPが多すぎるので。

さて、私のdkutilテスト版置き場( http://www33.tok2.com/home/dca/dkutil.html )のほとんどにSHA1のハッシュ値を貼り付けているが、

あれではお粗末なので、ダウンローダーがしっかり認識してくれるかどうかわからない。

どうしようか・・・。

ちと、考えた。

<div value="sha1:SHAの値">
  <a href="ダウンロードするファイルへのURL">ボタン</a>
</div>

こんなのも考えてみた。

<a href="ファイルへのURL" value="name:コンテンツの名前:sha1:ファイルのSHA1の値">
ボタン
</a>


どうでしょう?皆さん?

それとも、既にデファクトスタンダードな記述の仕方があったりしたりして!?

[][][]20041214 URLLIST 備忘録 20041214 URLLIST 備忘録を含むブックマーク 20041214 URLLIST 備忘録のブックマークコメント

sky氏がSoftWire入門をアップした。イイ資料だ〜。ありがたや〜

http://beautiful.homelinux.net/~sky-software/diary/?date=20041209

インターネット関連技術?httpの事について学ぶなら・・・

http://www.studyinghttp.net/

サンタの巡回問題

http://www.hirax.net/dekirukana2/xmas/

無目的コンピュータ用語辞典

http://www.nurs.or.jp/~kneo/dic.html

はてなのゲーム関連の質問たち

http://d.hatena.ne.jp/hiyokoya/20041213#p1

Lepton's world 闘わないプログラマ が面白い

http://www.amy.hi-ho.ne.jp/~lepton/

[][]フラッシュメモリとよばれる外部記憶装置の容量は信用してはいけない!? フラッシュメモリとよばれる外部記憶装置の容量は信用してはいけない!?を含むブックマーク フラッシュメモリとよばれる外部記憶装置の容量は信用してはいけない!?のブックマークコメント

256MBの流行りのUSBに刺すタイプgoogle:フラッシュメモリを薦められてちと使ったのですが、その3分の1の容量しかはいらなった。ヽ(`Д´)ノムキィ

酷すぎだよ!!!ヽ(`Д´)ノムキィ

だまされたよ!!!ヽ(`Д´)ノムキィ

でも、多分これは仕様なんだよね?だよね?だよね そうだよね!?(解決:容量はフォーマット形式にもよるらしい)

skysky 2004/12/09 23:44 ども、SoftWire入門の紹介ありがとうございます〜。SoftWireの日本語の資料って全然無いので、英語のドキュメント読むしかないんですよね^^;
>フラッシュメモリ
もしかして、ファイルシステムが”FAT”のせいで小さいサイズのファイルに何KBもとられてます?

studiokingyostudiokingyo 2004/12/10 22:08 ども、SoftWireの資料、参考になります^^
そうですね。英語の資料しかないのって辛いですよね。いつだがOGREを弄ったときも相当苦労した覚えが^^;
>フラッシュメモリ
え!そうなんですか。調べて見たら案の定その通りでした。しっかりフォーマットしました^^ あ〜ヨカッタです。御指摘ありがとうございます。

2004-12-13 AVL木

[][]Red-BlackかAVLか・・・ Red-BlackかAVLか・・・を含むブックマーク Red-BlackかAVLか・・・のブックマークコメント

最近、二分木のプログラムをチマチマとしている。

私の知る限り、パフォーマンスが良いと言われているのが?

Red Black TreeとAVL Treeの二つだ。*1

という事で、Red Blackは私愛用のSTLのbinary_treeとして実装されているのでここは一つglibに対抗してBSD LicenceのAVL treeを作りたいと思う。

と、言う事で

参考資料集〜〜!!!

さー〜〜〜!!!がしがし組むぞ〜〜(といいますか、組んでいるぞ〜〜)

[]AVL木・・・って・・・ AVL木・・・って・・・を含むブックマーク AVL木・・・って・・・のブックマークコメント

・・・ちょっと、思ったのだが、某AVLソースを読みこんでそれを参考にしているのだが・・・

どうも、ほとんど同じ感じになってしまいそうなくらい良い感じに組んでいるソースを発見。

むぅ〜。

って事で資料探し・・・

http://gotom.jp/~gotom/diary/?1226

むぅ〜。

[][]AVL tree 解説の某サイトの解釈 AVL tree 解説の某サイトの解釈を含むブックマーク AVL tree 解説の某サイトの解釈のブックマークコメント

http://www.cmcrossroads.com/bradapp/ftp/src/libs/C++/AvlTrees.html

The following discussion is part of a freely available public domain AVL

tree library written in C++.

ヨクワカラン所のフォローはC++で書かれたpublic domainなAVLのライブラリが面倒みるよ

The full C++ source code distribution may

be found in AvlTrees.tar.gz (21KB, gzipped tar file).

すべて書かれたC++ソースコードははAvlTrees.tar.gzから。


で、いいのかなぁ?(受験生、しっかりしろよ!!!)

ちなみに、英語の解釈にはExcite翻訳等は使わずに

POP jisyoを使うと行いやすいと思うのだが・・・

http://www.popjisyo.com/WebHint/Portal_e.aspx

ちなみにExcite翻訳の話題だが、

http://d.hatena.ne.jp/yaneurao/20041207

またもや*2、笑ってしまった。

さらに、その日記のトラックバック先にこんな記事があった。

http://d.hatena.ne.jp/replicorn/20041207#p1

こんなコマンドの使い方があるとは・・・笑ってしまった。

*1:実際速度的にどうなのかは良く分からない。ただ、聞いただけ。B-Treeとかはどうなんでしょう?

*2http://d.hatena.ne.jp/studiokingyo/20041210#p2

2004-12-12 メモリプールの速度テスト part2

[][][][]メモリプールの速度テスト part2 メモリプールの速度テスト part2を含むブックマーク メモリプールの速度テスト part2のブックマークコメント

詳しくは前回の日記を参照( d:id:studiokingyo:20041211 )

例の遅い私のメモリプールクラス(object_pool)をMemoryPoolクラスを参考にして組み直してReleaseビルドで速度テストしてみた。

ranking_timer

1 / MemoryPool deallocate / プールに戻す / 90288.000000

2 / object_pool recycle / プールに戻す / 94524.000000

3 / object_pool allocate / プールから確保 / 180745.000000

4 / MemoryPool allocate / プールから確保 / 749871.000000

5 / object_pool deallocate / free()を使い開放 / 44515494.000000

見事に勝った。(多分)

しかし、偶にはこう言う結果もある。

ranking_tiemr

1 / MemoryPool deallocate / プールに戻す / 90187.000000

2 / object_pool recycle / プールに戻す / 95824.000000

3 / MemoryPool allocate / プールから確保 / 713557.000000

4 / object_pool allocate / プールから確保 / 727922.000000

5 / object_pool deallocate / free()を使い開放 / 37413646.000000

まぁ、どっちもどっちって事で・・・イイよね?

これで堂々とobject_poolクラス(DKC_SAME_OBJECT_POOL機構をラップしたクラス)を使える。

次期リリースのdkutil_cにぶち込む予定なのでヨロシク。*1

[]allocatorを関数ポインタにしたら・・・ allocatorを関数のポインタにしたら・・・を含むブックマーク allocatorを関数のポインタにしたら・・・のブックマークコメント

ranking_tiemr / clock type : RealCPUClock /compile mode : DEBUG

1 / MemoryPool deallocate / プールに戻す / 529877.000000

2 / object_pool recycle / プールに戻す / 699042.000000

3 / MemoryPool allocate / プールから確保 / 2192181.000000

4 / object_pool allocate / プールから確保 / 2311246.000000

5 / object_pool deallocate / free()を使い開放 / 118126154.000000

なんか、遅くなっちゃいました^^;

前の状態に戻すか?

まぁ、イイか。この位だったら・・・


さらに・・・ boost::poolとも勝負しました。

ranking_tiemr / clock type : RealCPUClock / compile mode : RELEASE

1 / boost::pool deallocate / free / 37041.000000

2 / MemoryPool deallocate / プールに戻す / 91047.000000

3 / object_pool recycle / プールに戻す / 97376.000000

4 / MemoryPool allocate / プールから確保 / 706405.000000

5 / object_pool allocate / プールから確保 / 724847.000000

6 / boost::pool allocate / malloc / 1042658.000000

7 / object_pool deallocate / free()を使い開放 / 54364155.000000

なんか、object_poolが遅くなったなぁ〜

多分allocate系をinline展開ではなく関数ポインタにしたのがなぁ〜。

まぁ、イイか。この位だったら・・・

それにしても、boost::poolが遅いなぁ・・・なんでだろ?


やっぱり、速度が遅いのが許せなかったので・・・

デフォルトロケータの場合はインライン展開されるコードが使われるように修正・・・

ranking_tiemr / clock type : RealCPUClock / compile mode : RELEASE

1 / boost::pool deallocate / free / 37208.000000

2 / MemoryPool deallocate / プールに戻す / 89253.000000

3 / object_pool recycle / プールに戻す / 98001.000000

4 / object_pool allocate / プールから確保 / 714171.000000

5 / MemoryPool allocate / プールから確保 / 736834.000000

6 / boost::pool allocate / malloc / 1199485.000000

7 / object_pool deallocate / free()を使い開放 / 60298349.000000

それにしても、boost::pool のdeallocation(freeメンバ関数)はメチャクチャ速い

ちとソースを見てみよう。

void free(void * const chunk)
{      
  nextof(chunk) = first;

  first = chunk;
}
// for the sake of code readability :)
static void * & nextof(void * const ptr)
{ 
  return *(static_cast<void **>(ptr)); 
}

上手い!!!非常に上手い!!!特にnextofの所。

次へのポインタが格納されているのはメモリの先頭なのでいちいちアロー演算子を使ってアクセスしていない。

でも、速度アップの効果あるのかな?

アセンブラ読めないから良く分からない・・・むぅ

メモリプール最終計測

small test(16 byte )

ranking_tiemr / clock type : RealCPUClock / compile mode : RELEASE

1 / boost::pool deallocate / free / 35287.000000

2 / object_pool recycle / プールに戻す / 97255.000000

3 / MemoryPool deallocate / プールに戻す / 109396.000000

4 / object_pool allocate / プールから確保 / 684469.000000

5 / MemoryPool allocate / プールから確保 / 722633.000000

6 / boost::pool allocate / malloc / 1203381.000000

7 / object_pool deallocate / free()を使い開放 / 54946018.000000

big test(5120 byte )

ranking_tiemr / clock type : RealCPUClock / compile mode : RELEASE

1 / boost::pool deallocate / free / 39627.000000

2 / object_pool recycle / プールに戻す / 217613.000000

3 / MemoryPool deallocate / プールに戻す / 274475.000000

4 / boost::pool allocate / malloc / 1216813.000000

5 / object_pool allocate / プールから確保 / 2407761.000000

6 / MemoryPool allocate / プールから確保 / 2421483.000000

7 / object_pool deallocate / free()を使い開放 / 1790078212.000000

なんかboost::poolはデカイデータにはめっぽう強いみたいなんですけど!!!?

むぅ〜。

と、言う事で、

プールクラスの使いどころ

で、いいのかなぁ?

むぅ〜。

[][]テストに使ったバイナリリリーステストに使ったバイナリをリリース。を含むブックマーク テストに使ったバイナリをリリース。のブックマークコメント

スマン、ソースコードは次期DKUTにぶち込みますので^^;

そのテストアプリケーションバイナリ自己満足の所に用意したので興味のある方はダウンしてみるの一興かと?

http://www33.tok2.com/home/dca/dkutil.html

http://www.dkut.flnet.org/dkutil.html#zikoman

*1:でも事実C言語移植したプール機構にどれだけの需要があるのやら・・・(´Д⊂グスン

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041212

2004-12-11 メモリプールの速度テスト

[][][][][][]メモリプールの速度テスト メモリプールの速度テストを含むブックマーク メモリプールの速度テストのブックマークコメント

動機については前回の日記にて(d:id:studiokingyo:20041210

メモリプールを作ったので、速度をテストしてみた。

1 / MemoryPool deallocate / 1313951.000000

2 / MemoryPool allocate / 7741790.000000

3 / object_pool deallocate / 15908204.000000

4 / object_pool allocate / 61968823.000000

めっさ遅いんですけど...(´З`)チェッ

ヽ(`ε´)ノ ブーブー!!

MemoryPoolはhttp://shinh.skr.jp/loki/SmallObj.htmlより持ってきたソースだ。

ちなみにcrtdbg.hを通してコンパイルするとメモリ開放時にエラーが起こる*1ので

以下のようにした。

/// from Efficient c++ section 6
/**
@note
http://shinh.skr.jp/loki/SmallObj.html
より

 */
#ifndef MEMORY_POOL_H_
#define MEMORY_POOL_H_

#include <memory>
#include <malloc.h>

const int DEFAULT_EXPAND_SIZE = 32;

template <class T_, size_t size_ =DEFAULT_EXPAND_SIZE>
class MemoryPool {
public:
  typedef MemoryPool<T_,size_> self_type;
  MemoryPool() {
    next_ = NULL;
    expandTheFreeList(size_);
  }
  ~MemoryPool() {
    self_type* t;
    
    for (t = next_; t != 0; t = next_) {
      next_ = next_->next_;
      free( t );
    }
  }
  void *allocate(){
    if (!next_) expandTheFreeList(size_);

    self_type* head = next_;
    next_ = head->next_;

    return head;
  }
  void deallocate(void* doomed) {
    self_type* head =
      static_cast<self_type*>(doomed);
    head->next_ = next_;
    next_ = head;
  }

private:
  void expandTheFreeList(int howMany);

private:
  self_type* next_;
};
template <class T_, size_t size_>
void MemoryPool<T_, size_>::expandTheFreeList(int howMany) {
  
  size_t size = (sizeof(T_) > sizeof(self_type*))
    ? sizeof(T_) : sizeof(self_type*);

  self_type* runner =
    (self_type*)malloc(size);

  next_ = runner;
  for (int i = 0; i < howMany; i++) {
    runner->next_ =
      (self_type*) malloc(size);
    runner = runner->next_;
  }
  runner->next_ = 0;
}

template <class T_, size_t size_ =DEFAULT_EXPAND_SIZE>
class UseMemoryPool {
public:
  void* operator new(size_t size) { return pool_->allocate(size); }
  void operator delete(void* doomed, size_t) { pool_->deallocate(doomed); }

public:
  static void initMemPool() {
    pool_.reset(new MemoryPool<T_, size_>);
  }

private:
  static std::auto_ptr<MemoryPool<T_, size_> > pool_;

};

template <class T_, size_t size_>
std::auto_ptr<MemoryPool<T_, size_> > UseMemoryPool<T_, size_>::pool_;

#endif // ! MEMORY_POOL_H_


やはり、本家にはかなわぬか・・・ムゥ

どうにかしなければ・・・

残念な結果だがdkutil_cのReleaseはRelease(まだβ版だけど^^;)

とりあえず、私の作ったメモリプールは破棄する事になるだろう・・・。

何故MemoryPoolは速いか?

  • 普通なら数珠繋ぎの所に専用のポインタを使うが、それを使っていないのでメモリを少し節約。かつ、変な分岐をしなくてOKになる?
  • 単純な1方向リスト

何故 私のライブラリが遅いか?

  • 私のメモリプールライブラリはこの数珠繋ぎの所を再利用と証して複雑な処理をしている。
  • その他モロモロの条件処理がある。
  • inline展開にはかなわんのか?

と、言う事でけっこうがんばって作ったメモリ管理ライブラリよ〜

http://dkingyoutility.sourceforge.jp/studiokingyonet/reference/dkutil_c/v0194/dkcMemoryPool_8h.ja.sjis.html

さよ〜なら〜

[]20041211更新履歴 20041211更新履歴を含むブックマーク 20041211更新履歴のブックマークコメント

  • 2004/12/0709 : MemoryPoolクラスの開放の状態遷移に不具合が見つかったので修正(私がちょっと弄っていたいてレーションのプログラムをオリジナルに戻す)

*1:delete[]なのにdeleteをリンクしてる。完璧コンパイラ側のミスだと思うのだが・・・

   2004/12/09 16:45 今日は9日です。

studiokingyostudiokingyo 2004/12/09 19:37 あら、そうですね。どうもです。m(_ _)m

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041211

2004-12-10 dkutil_c 0.194をRelease!!!

[][][][]dkutil_c 0.194をRelease!!! dkutil_c 0.194をRelease!!!を含むブックマーク dkutil_c 0.194をRelease!!!のブックマークコメント

ついにdkutil_cがリリースされました。

今までサポートしていなかったRijndaelを実装。(と、いいますか、public domainなソースをパクッた)

さらに、メモリプール機構(glibのchunkみたいな?)を作りました。

可変長メモリプールはまだ実装していないが、固定長メモリプールはナカナカイイ感じに仕上がっていると思います。

アルゴリズムはEffective C++に出ている数珠繋ぎの奴*1と同じです。

これが、結構速い・・・。と思うのだが・・・。(実は、時間の測定はまだ行っていない。)d:id:studiokingyo:20041211に結果あります。


とりあえず、doxygen result

http://dkingyoutility.sourceforge.jp/studiokingyonet/reference/dkutil_c/v0194/index.ja.sjis.html

ライブラリ本体はこちらから。

http://www33.tok2.com/home/dca/dkutil.html


[]やねうらお氏のはてなで面白い物が紹介されていた!!! やねうらお氏のはてなで面白い物が紹介されていた!!!を含むブックマーク やねうらお氏のはてなで面白い物が紹介されていた!!!のブックマークコメント

http://d.hatena.ne.jp/yaneurao/20041206

笑ってしまった^^;

*1:実装はこちらに掲載されていた。感謝。http://shinh.skr.jp/loki/SmallObj.html

2004-12-09 ソースを効率よく読みこむには・・・ part2

[][][][]ソースを効率よく読む為に・・・ ソースを効率よく読む為に・・・を含むブックマーク ソースを効率よく読む為に・・・のブックマークコメント

なんか、こんなページ見つけました。

ソースコードを読むための技術

http://i.loveruby.net/ja/misc/readingcode.html


そういえば、夏にこんな本を本屋で見た覚えが・・・

コレコレ http://www.amazon.co.jp/exec/obidos/ASIN/4839912653/studiokingyo-22

たしか、その時はさほど、興味のあるソースが無かったことは事実。

立ち読みでも、パラパラとめくっただけ。

どこかのBlogでも紹介していたような覚えあり。


それにしても結構イイtoolあるんですね。

これで関数の呼び出し元などの依存関係がわかりやすくなります。


(´Д⊂ やったよ私!!!


とりあえず、VCと連携できそうなのは

source navigatorくらいか?

http://sourcenav.sourceforge.net/

[][]20041209備忘録 URLLIST 20041209備忘録 URLLISTを含むブックマーク 20041209備忘録 URLLISTのブックマークコメント

画像処理ライブラリCImg

http://cimg.sourceforge.net/

GAUL: The Genetic Algorithm Utility Library (GPL)

http://gaul.sourceforge.net/

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041209

2004-12-08 UnitTestしているんdeath!!!

[][][][]boost::testの使い方 boost::testの使い方を含むブックマーク boost::testの使い方のブックマークコメント

最近、UnitTestに興味を持ち始めた。

今まで、テストコードは自分で書いていたが、まぁ、リポートが結構イイ感じだし、導入も簡単そうなboost::testを利用する事にした。

今まで、河童*1CppUnit*2を使用してみたが、どうも使用感が〜 と言う事になり、いままで、おざなりにしてきたが・・・ どうも、最近、自分の作っているライブラリ郡のテストをしていないのでビシっ!!!と決めたいと思ったのである。


さて、使い方だが、詳しくはgoogle:boost::test じゃ、ダメですよね^^;

まずはLet's boost*3を読んで見てからです。

このページから、#include <boost/test/minimal.hpp>の存在を知りました。

今まで、律儀にライブラリを作ってから弄っていました。


ちなみにVCとかでTestプロジェクト作って、unit_test_framework.libをリンクする場合、使用するランタイムライブラリマルチスレッド(DLL、デバッグ)」にしないとダメらしい。


minimal.hppで事足りるような気もしないでもない・・・。

何故、minimal.hppを推すのか?

CppUnit系にしない理由

  • CppUnitやCuppaのようなそんな大げさ?なツール郡が必要ない
  • すでに、自分で作ったassert関数みたいなのでチマチマ記述したテストコードが存在する。
  • CppUnitはその他、クラス等を覚えるの面倒

CUnitにしない理由

以上の理由で私はboost/test/minimal.hppを使う事にしました。

でも、minimal.hppを見た感じ、throwをcatchしてエラーを表示するだけの機構かな?

と、思ったり・・・。

assertじゃだめ?(笑)*4

続く・・・

チョットまったーーー!!!

良く考えて見れば・・・、自分でUnitTestライブラリを書けばいいんじゃないか!!!

また、車輪の際発明が始まる・・・。

*1http://sourceforge.jp/projects/cuppa/ http://www.shibu.jp/cuppa/

*2google:cppunit

*3http://www.kmonos.net/alang/boost/ 言語環境 test

*4:まだ、UnitTestの枠組みを理解していないみたいです。

迷える子羊迷える子羊 2004/12/06 00:17 はじめまして。現在CppUnitをプロジェクトに適用しようとして、色々調べているのですが。Cuppa+CppUnit+XSLでそれなりに使えるかと感じてました。使用感がいまいちと書かれていたので、
どの辺がとか、具体的に教えていただけると助かるのですが。

studiokingyostudiokingyo 2004/12/06 01:18 はじめまして。はい。Cuppaは使いやすい、といいますか、充実しています。(すみません、XSLは詳しく分かりません。)
しかし、私の場合、アルゴリズム等をC言語で記述している事もあり、そんな大げさ?なツール郡が必要ないので ちょっとなぁ〜という気でした。
むしろ、CUnitや上記に挙げているboost test のminimal.hppで十分なのでは?と考えであのような感じでした。
さらには、自分で作ったassert関数みたいなのでチマチマ記述したテストコードもあり、「CppUnitはその他、クラス等を覚えるの面倒」という覚えがあり、かつ、C++で記述したディレクトリを収集するクラスが存在していたので、C言語で記述したファイル関係を扱う機能をテストするにはC++も使える方が何かと良いのではないかという思いになり、boost::testが良いと思い、あのように書きました。
すみません。私の状況を記述して置くべきでしたね。
ですので、完璧に自分の都合です。
UnitTestは私も触り始めたばかりなのでかなり怪しい知識もあります。
みる限り、テストコード書いて、エラー起こったりしたら画面に表示する機構じゃないか?(解釈 違うかもしれません)と、今は安直に考えているため、Simple is bestで最終的にはboost/test/minimal.hppかなぁ?とあいまいにし、お茶を濁して「続く...」と書いてしまったという理由です。m(_ _)m

迷える子羊迷える子羊 2004/12/06 21:48 親切に回答ありがとうございます。自分も入社2年目で詳しくないですが。自分も説明不足ですみません。XSLと書いたのは、CppUnitでテスト結果をXMLに出力させ、それにXSLTスタイルシート適用して、HTML形式でブラウザで見れるようにすれば、便利かなーと思ったもので。
実装の進捗率を視覚化できるんじゃないかと。
GUIのテストランナーとかでもいいですが、上司とかに報告するには、これでいけそうかと思ったので。
自分も調査中なので、間違った事言ってたらすみません。

studiokingyostudiokingyo 2004/12/07 01:19 なるほど。お仕事で使うのですか。
私のような趣味でプログラムしているようなレベルでは考えられないような、プログラムの信頼性の管理態勢なんですね。
上司に報告もしなくてはならないのですか。
確かに、そのように結果を参照しやすくするのは大事ですね。
私の場合、上手くデバッガがバグを見つけてくれるか?に重点を置いていたのでASSERT系列で固めている?boost::testを推してました。
状況によってUnitTestの結果の出力の仕方が違うのですね。
勉強になりました。m(_ _)m

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041208

2004-12-07 皆さん、parserってmathか!!?part2

[][]TinyC TinyCを含むブックマーク TinyCのブックマークコメント

sky氏の日記にてhttp://beautiful.homelinux.net/~sky-software/diary/?date=20041205

C言語コンパイラの作り方が非常に分かりやすいサイトを紹介していた。

うれしい。

http://www.csg.is.titech.ac.jp/~chiba/lecture/os/

やっぱりflexだのbisonだの使うのですか・・・。

むぅ〜。実はbisonいじって やっぱり、boost::spiritだな (´Д⊂グスン

と思った私はどうすればいいのやら・・・

前も紹介したかもしれないが・・・、*1

ここにANSI-Cのspiritで記述したBNFがある。

http://spirit.sourceforge.net/repository/applications/show_contents.php

ちなみに、私はなーんか、flexやbisonに懐けない (´Д⊂グスン

なので、ソレらしきものを自作したいのだが・・・ 何時になるやら・・・

特に、「パース時のエラーの時どうするか」*2や「エラーした部分をスキップしてその後はパースしなおす」*3みたいな事が出来ないのは辛い・・・。*4

むぅ〜 続く・・・

[]yaccの使い方 Tiny C の組み方 yaccの使い方 Tiny C の組み方を含むブックマーク yaccの使い方 Tiny C の組み方のブックマークコメント

http://www.hpcs.is.tsukuba.ac.jp/~msato/lecture-note/comp-lecture/

sky氏に教えていただく。感謝 m(_ _)m

*1http://d.hatena.ne.jp/studiokingyo/20041101

*2:例えば、エラーメッセージを表示したりとか、状態を戻るように仕向けたりとか

*3BNFのここの状態に行ってくださいよ〜 みたいな指定はできるのか?

*4:というより、私が知らないだけかもしれないが・・・(他力本願)

skysky 2004/12/05 23:22 http://www.hpcs.is.tsukuba.ac.jp/~msato/lecture-note/comp-lecture/
yaccのエラー処理は 「5.構文解析の実際:yaccの使い方」 に載っています。”yacc エラー”をキーワードで検索したら予想外の大きな収穫でしたヽ(´ー`)丿

studiokingyostudiokingyo 2004/12/06 01:03 なるほど。bisonではなくyaccですか。
このような有用なサイトを教えていただき、ありがとうございます。M(_ _)M

skysky 2004/12/07 19:12 lexとflex、yaccとbisonの機能は特に変わりません。(flex,bisonはそれぞれの上位互換らしいですが、僕には何が違うのかさっぱり)
boostのspiritの解説を色々と見ていたらyacc/lexを使う気がうせてしまいました(´д`;) boost::spiritを使うとコンパイラ/インタプリタ作りの近道が出来そうな気がするので近いうちに挑戦してみます。

studiokingyostudiokingyo 2004/12/07 23:57 ですが、boost::spiritもちと弱点が・・・
構文木を作る機能は多くのコンパイラで使えない・・・(VC7.1くらい?)
パース中のエラー箇所が分かりにくい。(特に日本語(Shift-JIS)とか混在している文字列をパースする時エラーにはまって気づきました。)
パースしているときエラーが起こったらとして、「エラー箇所を飛ばしてエラーが起こっていなかった状態」に状態を戻す または 「エラーの起こっていない所まで状態を飛ばす」ことが出来ない。(VCのようにエラー箇所を沢山吐いてくれるツールを作れないと思う。(私がboost::spiritのマニュアルを読み飛ばしているところもありそうですが・・・)

そこらへんが「むぅ〜」という所なんです。
純正に違いBNFでもないので^^;どうも、美しくないような気も^^;
ちなみにboost::spiritは
http://www.c3.club.kyutech.ac.jp/~gridbug/spirit/
で勉強しました。いいサイトです。

skysky 2004/12/08 01:15 たしかに「むぅ〜」ですねぇ。まだ触りだして浅いのでそのサイトも活用させてもらいます。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041207

2004-12-06 d金魚による鼻血boostの怒り(boost日記 part3)

[][]最近のboostはVC6の事を考えてくれているんかいナ!!!ヽ(`Д´)ノムキィ!!! 最近のboostはVC6の事を考えてくれているんかいナ!!!ヽ(`Д´)ノムキィ!!!を含むブックマーク 最近のboostはVC6の事を考えてくれているんかいナ!!!ヽ(`Д´)ノムキィ!!!のブックマークコメント

そうです!!!ヽ(`Д´)ノムキィなのです。

boostでのVC6の最盛期はboost 1.30.2あたりなのか!!!

どうもこうも、最新のboost 1.32.0はVC6でコンパイルできないのが多すぎる!!!ヽ(`Д´)ノムキィ!!!!

(上記に挙げたライブラリは私の設定ミスでコンパイル出来ないのかもしれない・・・)

もう・・・

ヽ(`Д´)ノムキィ!!!!しかない


ヽ(`Д´)ノムキィ

どこかにコンパイルできる状況みたいなのないかなぁ〜

google:boost compile successful listgoogle:boost VC6 successful listgoogle:boost RC_1_32_0

あった!!!コンパイラ事情!!!

最新のboost RC_1_32_0ですよ!!!

http://www.meta-comm.com/engineering/boost-regression/RC_1_32_0/developer/index.html



どうも良く分からないので・・・移植する事にした*1

boost::test*2boost::serializationをVC6でもコンパイル&使用できるように悪戦苦闘したが・・・上手くできなかった・・・。(´Д⊂グスン

ちょっとboost serializationのドキュメント見たら・・・、なんかVC6ではつかえないっぽいよみたいな事が書いていた・・・。(そうだよね。そうだよね?英語良くわかんないからさ・・・)

boost::program_optionsは成功した。(しかし、今ひとつ使い方が良く分からない)

この手の移植作業は得意?(自称)なのでいちおう良しとする。

ネムゥ〜おやすみ・・・

*1:なんと不毛な・・・

*2boost::test説明書の日本語http://boost.cppll.jp/HEAD/libs/test/doc/index.htm

paserrypaserry 2004/12/03 12:46 こんにちわー。VC6のtemplateには私もよく泣かされてました。
そのうち泣かしてやろう(?)と思いつつVC7に移ってしまいましたので
すっかり忘れてましたが。
内容のないコメントですが^^;

studiokingyostudiokingyo 2004/12/04 18:21 そうです。私は今も泣いています^^; (´Д⊂グスン
特殊化なんていうのは夢のまた夢です。
template系よりvirtual系の抽象クラスで固めた感じのライブラリの方が今の所VC6では安全に使えるので好きです。
んー。実は泣かしてやろうとcl.exeをVisualC++Toolkit2003に入れ替えたのですが、ヤッパリダメでした。VC6標準のSTLが使えないばかりか、STLPortをコンパイルするのにも骨が折れそうですし・・・(cppllでは成功したとの噂がチラホラですが・・・)
とりあえず、予算が下りるまでこのままがんばってMinGWと共に生きます^^;

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041206

2004-12-05 ソースを効率よく読みこむには・・・

[][][]ソースを効率よく参照しよう!!! ソースを効率よく参照しよう!!!を含むブックマーク ソースを効率よく参照しよう!!!のブックマークコメント

sky氏がソースの解析にイロイロとツールを使い、読みこんでいるらしい。

http://beautiful.homelinux.net/~sky-software/diary/?date=20041202

私もソースを読みこむとき、sky氏のおっしゃるように「この関数は何処から呼び出されてるのだろう」と思うことは多々ある。

シカシ・・・

私の知る限りそんな感じのツールは存在しないような気がする。

とりあえず、google:C++ function call dependとかgoogle:C++ call dependenceとか・・・

ンー 無さそうな無さそうな・・・*1

なので、私が昔から愛用しているソフトにDevasなるものがある。

http://gimite.ddo.jp/gimite/

Gimite氏のHPからダウンロードできる。

この感じがかなりイイのです^^;私にとって第二のIDEだったりします^^;



上記の記事から、sky氏はソースの理解を早めるためにdoxygenを使用したようだ。

私はdoxygenが無いとソースを解析できないほどのdoxygen依存者である。が、doxygen関数の呼び出し関係まで出力できるかは分からない・・・ doxygenはシヌほどオプションがある。多すぎだし・・・ 英語だし!!!(´Д⊂グスン*2

どこかにそのオプションの説明の日本語訳があったのだが*3、いつのまにかネット上から消えた。(´Д⊂グスン


蛇足だが、私のdoxygenの基本的な設定は、graphvisとHTML Help Compilerを使って,HTML拡張子ja.sjis.htmlにして*4生成する方法で行っている。

*1:しっかり調べてないし、英語読めないし・・・

*2:でも、そんなオプションが欲しい

*3Let’s use doxygen!ではなかった気がする

*4http://d.hatena.ne.jp/studiokingyo/20041021

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041205

2004-12-04 VisualC++が生成するごみファイルを削除!!!

[][][][]dKingyo VC Cleaner 2 01 release!!! dKingyo VC Cleaner 2 01 release!!!を含むブックマーク dKingyo VC Cleaner 2 01 release!!!のブックマークコメント

私は結構、バックアップは取るほうだ。

普通、バックアップするときは略称「コピペ」を行う。

で、VisualC++のプロジェクトの入ったフォルダを丸ごとコピーするのはしんどいのだ。

なぜなら、コンパイルした後のファイルや管理ファイル等などめちゃめちゃ重いのだ。

結構な数のソースを扱っている場合、1GB以上にはなるはずだ。

なので、CD-Rとかに焼く場合、VisualC++が吐いたファイル*1を削除しなければならないのだが、

  • 一つ一つ検索かけて削除するのも面倒だし
  • もしかしたら、VisualC++が吐くファイルと同じ拡張子で別のデータのファイルの場合があったりしたり・・・

と、面倒なのだ。

なので、昔、dKingyo VC Cleaner*2なるものを作成した。

まぁ、一通り、イラナイファイルを削除してくれるのだが、*.sbrファイルを上手く削除してくれないのだ。

しかし、そのソースをどこかに紛失してしまったので、モウダメダと思っていたが、最近、発見したのでイロイロと改良してソース付きでリリースした。

もちろん以下からDLできる。

http://www33.tok2.com/home/dca/dkutil.html

使い方は初代とあまり変わらないが、一部、コマンドラインを無効にしたりした。

分からなかったらソース読んでくれ〜(スマン)

*1:*.obj *.pch *.ilk *.bsc *.pdb *.idb *.res *.opt *.ncb *.plg

*2http://www.vector.co.jp/soft/win95/prog/se304420.html

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041204

2004-12-03 やっぱり暗号化は大人の味(笑) part9

[][]暗号HD 暗号化HDを含むブックマーク 暗号化HDのブックマークコメント

http://beautiful.homelinux.net/~sky-software/diary/?date=20041201

から知った。

最近、sky氏の日記はセキリュティ関係のサイトをいろいろ紹介している。有難いです。m(_ _)m

その中に一つWizard Bible WB13 にて*1

こんな記事が


HD側で暗号化するHD

http://online.plathome.co.jp/detail.html?scd=11701343

http://www.ciphershield.com/

あー―!!!これって私も考えてた。*2

でも、鍵なくしたらアウトだし・・・。

また、タイムカプセル暗号の紹介も感銘を受けた。

http://beautiful.homelinux.net/~sky-software/diary/?date=20041130

最近、いろんな記事があるが、どれもこれも読みこめてない(´Д⊂グスン

[][][]最近見つけたBSD LicenceのRijndaelライブラリ 最近見つけたBSD LicenceのRijndaelライブラリを含むブックマーク 最近見つけたBSD LicenceのRijndaelライブラリのブックマークコメント

http://gnu.acnova.com/directory/security/crypt/aesutil.html

http://sourceforge.net/projects/aescrypt/

詳しく読むと BSD style licenceって書いているけど^^;

Rijndaelのpublic domainのソースもあったりして^^;

dkutil_cにぶち込む予定

http://www.esat.kuleuven.ac.be/~rijmen/rijndael/

の「Optimised C code v3.0」って所がソレ

良く分かんなかったらこう検索したらみるよろしgoogle:"Optimised C code v3.0"

それから RC5についてのアルゴリズムの簡単な解析

http://www.heavens.sh/1900/rc5/aboutrc5.html

RC5についてはgoogle:RFC 2040とか検索する。

*1http://akademeia.info/wizardbible/

*2:てか、誰でも考えるか^^;

*3シモネタじゃないよ - - ;

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041203

2004-12-02 スペクトラム アナライザー を作りたい

[][][]子供の頃からあの動く棒が好きだった。 子供の頃からあの動く棒が好きだった。を含むブックマーク 子供の頃からあの動く棒が好きだった。のブックマークコメント

最近、CDプレイヤーとかについている動く棒がSpectrum Analyzer ?? なのかな?見たいな事を知った。

小さい頃、電気店の高級な音楽再生機についている「あの」棒が音に合わせて動く 「アレ」に興味津々で電気店に行ったらそれを見ていた覚えがある。


あれを作ってみたいのだ・・・。

だけど、あのgoogle:音楽プレイヤーについている音に合わせて動く棒と検索しても勿論、検索サイトでヒットするわけない。

これの本当の名前が知りたかった。

たまたま、Spectrum Analyzerではないかと言う事を知ったのだが、合っているのだろうか?



最近のマルチメディアプレイヤーにはこの音楽に合わせて動く棒がしっかり実装されている。

多分、私にもできるはずだ。


で、少し調べた。

http://www13.plala.or.jp/kymats/

http://www13.plala.or.jp/kymats/program/program.html

とか

http://speana-1.hp.infoseek.co.jp/

は、どうだろう?


それから、スペクトラムアナライザは略称「スペアナ」と言う事を知った。

ウーム。続く・・・

[][]ちょっとまて・・・あの、動く棒は・・・ ちょっとまて・・・あの、動く棒は・・・を含むブックマーク ちょっとまて・・・あの、動く棒は・・・のブックマークコメント

スペクトラムアナライザーは見た感じギザギザしたのが上下に揺れる奴だな・・・マズイ!!!これは違いました・・・。

棒が動く奴です。

・・・スミマセンデス。

例えて言いますと、

http://home7.highway.ne.jp/Kobarin/

ダウンロードできるKbMedia Player の液晶ウィンドウ部分に表示されるあの16本の棒です。

あの音に合わせて動く棒の正式名称を御存知の方いらっしゃいませんか?

また、それ系のプログラムの解説サイト理論サイトや参考文献等、御存知の方もいらっしゃいましたら、どうか、おひとつ、コメント御願いします。m(_ _)m

skysky 2004/12/03 00:46 スペクトラムアナライザで合ってると思いますよ。
WinAmpにも同じ名前でKbMediaPlayerと同じ機能もありますし。(表示の仕方は少し違いますが)

studiokingyostudiokingyo 2004/12/03 01:35 skyさん返信ありがとうございます。
合っているのですか。良かった^^
あの棒に少し近づきました。
リズムみたいなのを解析できるようにするのが目標です^^;

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041202

2004-12-01 私はACではありません。(多分)

[][]ACな人は幼少時、感電した経験があるらしい ACな人は幼少時、感電した経験があるらしいを含むブックマーク ACな人は幼少時、感電した経験があるらしいのブックマークコメント

ACとは結構、私の巡回するサイトで話題?になっていそうなのでとりあげました。*1

AC意味確認および元ネタはこちらから

http://d.hatena.ne.jp/softether/20041001


成績優秀な友達は幼少時、お風呂で漏電してビビビッときちゃったらしいです。

その人には何かと勝てるものがありませんでした・・・ その友達はとある目標を達成するに当たって非常に綿密な計画を立ててそれ通り実行できる人でした。


続きを読む

トラックバック - http://d.hatena.ne.jp/studiokingyo/20041201
 | 
Program | Debug | dKingyo Utility Toolkit | library | D言語 | 御本とか | 備忘録 | テクニック | WayBack | 格言 | 英語 | 他力本願 | news | software |

デースケドガー
Connection: close