ProgramIdiom

Pascal形式の文字列データ構造で高速化

そう!パスカル文字列?パスカル形式文字列?の事に関してJoel on SoftwareのPART01第ニ章 基本に帰れ に書かれていた。*1 http://www.amazon.co.jp/exec/obidos/ASIN/4274066304/studiokingyo-22 strlen()による文字数検出における走査処理のオーバーヘット…

mkstemp() for WIN32

とある、ライブラリを使用中にmkstemp()のwin32版が無いことに気付いた。 まぁ、即席な形で名前生成とかちょっといい加減だけどこんな感じの実装はドウなのでしょう?水曜どうでしょう? もちライセンスはNYSLでんがな!

CSVがRFCになっているらしい。

http://d.hatena.ne.jp/gallu/20060718/p1 より。 なるほど!!!

ハンドルベースのリソースマネージャに対する考察 part2

前回の記事(http://d.hatena.ne.jp/studiokingyo/20060406#p1)その昔・・・メモリリソースに関してプログラミングをはじめた当初からケチケチ主義だった私はgoogle:コンパクションという機能を知ってからコンパクションを自分で実装したい思いに駆られていた…

C/C++ manipulator contrast list / C言語の書式指定子とC++のマニピュレーターを対照表にしたもの

実は未だにC++のマニピュレーターを覚えていない。 なんていったってhttp://d.hatena.ne.jp/studiokingyo/20040721#p7 のようにC言語を覚えて数年間、書式指定子すら覚えていなかったのである。 特にprintf("\r");とすると出力した文字が消えてしまうという…

ゲーム用リソース如きにまともな暗号はいらない

google:vc xor 暗号化で検索が来ていたので思い出したのだが・・・ そう。前々から思うのだが、普通のスタンドアローンゲームソフトウェアを作る場合、ゲーム用リソースすべてに暗号化を施すなんていうのは愚の骨頂だと感じている。 なぜなら、ゲームソフトを実…

odd even merge sort

http://d.hatena.ne.jp/yupo5656/20060617/p1 より。 SYN氏の「分岐しないソート」の記事については前々からチェックしていたのだが、このOdd-even mergesortというのは初耳だった。記事を読み進めていくと意外なハックにとても驚嘆! このソート関数の冒頭…

boostのような組み方は非効率

http://d.hatena.ne.jp/kmt-t/20060628#1151492391 より。 私もkmt-t氏の意見に同感。 例えばboostのcrc.hを例に取ると 私はboost/crc.hppをdkcCRC.cとしてC言語に移植したことがあるのだが、はっきり言ってとてもめんどくさかった。 さらにC言語に移植する…

OSを作る人用のstrcpy

http://0xcc.net/blog/archives/000122.html なーる。memccpyか。初めて知りました。

FNV32 hash in C

This code is in the NYSL( public domain ). #define FNV_32_PRIME ((uint32)0x01000193) #define uint32 unsigned intuint32 dkcFNV32_INL(const void *buf,size_t len,uint32 hval) { unsigned char *bp = (unsigned char *)buf; /* start of buffer */ u…

FNV32 hash in assembly

http://www.isthe.com/chongo/tech/comp/fnv/#PowerBASIC に掲載されているの物をVCでコンパイル可能なインラインアセンブラで書き下しました。 移植するにあたって http://www.geocities.co.jp/SiliconValley-Cupertino/3384/ のアセンブラの話を参考にしま…

二つの値を足して割り算は禁止!

http://d.hatena.ne.jp/kazama/20060605/p2 via http://www.hyuki.com/t/200606.html#i20060606071312 より。 なるほど。 いや、これってquicksortでも同じ事言えそうですよね。 どこかで見た記事と一緒ではないかと感じたのでちょっと調べてみたら http://d…

bad know-how of Windows Programming part3

http://d.hatena.ne.jp/NyaRuRu/20060530/p1 via http://beautiful.homelinux.net/~sky-software/diary/?date=20060531#p01 なるほど。UPXを使うと確かにこのような事情が起きるような気はしなくもなかったがこの記事から確証をもてた。 すなわち 「SDIアプ…

FSMに変わる状態記述?

http://www.radiumsoftware.com/0604.html#060403 より。

ヒープ構造

http://www.radiumsoftware.com/0605.html#060525 より。 実は、ヒープのデータ構造である条件をこの記事から知った。 プログラミングに長年かかわっているのに・・・ チョット恥ずかった。

CRC32に代わるアルゴリズム

http://www.radiumsoftware.com/0605.html#060526 より google:FNV Hash http://www.isthe.com/chongo/tech/comp/fnv/ http://www.azillionmonkeys.com/qed/hash.html へぇへぇへぇ。 私の環境で測ったらCRC32より精度がよいし処理速度も早いねぇ。 早速我が…

CBC CFB OFB encode & decode process in C++

前回の続き:(http://d.hatena.ne.jp/studiokingyo/20060407) より デコードバージョンも用意してサンプルも書いてみました。

OFB encode process in C++

/** @parma T : block object @parma FUNCTION_T : encryption functor type @param target[in] encryption data block object (POD ok) @param src[in] initial vector @param count[in] number of target @param encode_functor[in] encryption functor */…

CFB encode process in C++

/** @parma T : block object @parma FUNCTION_T : encryption functor type @param target[in] encryption data block object (POD ok) @param src[in] initial vector @param count[in] number of target @param encode_functor[in] encryption functor */…

CBC encode process in C++

CBC ブロック暗号モードで暗号化する時は以下のような処理を行う。 ちなみにテストしていないので使用する場合は注意されたし・・・ デバッグ歓迎(^^;;;; /** @parma T : block object @parma FUNCTION_T : encryption functor type @param target[in] e…

一般的なハンドル ベースのリソース マネージャ

実はGame Programming Gemsに書いていたことなのだが、内容は忘れてしまった。(泣)今度調べてくる。 さて、この場合、ハンドルは配列の添え字にするなりハッシュ値にするなり何かしらの事をするのだが、まぁ、ハンドルを元にO(1)でデータを参照できるよう…

flash sort最速の設定

http://d.hatena.ne.jp/studiokingyo/20060303 にて Misty氏(http://rainer.blog7.fc2.com/)にflash sortなるものを紹介していただいたのだが… http://d.hatena.ne.jp/studiokingyo/20060303#p2 のように結果は散々だったものの 設定や条件を変えると http…

Red Black Tree vs AVL Tree speed test

前回の記事:(http://d.hatena.ne.jp/studiokingyo/20060117) AVL木の穴のない書き方ってすっごく難しいんですよ。 私はAVL木を書けなかったんでgoogle:libdsっていうライブラリのAVL木をそのままいしょくしちゃいました^^; でも、 http://winnie.kuis.…

bad know-how of Windows Programming part2

DllMain内でuser32.dllのAPIを呼び出してはいけない 詳しくはhttp://d.hatena.ne.jp/NyaRuRu/20051229/p1 ちなみに、この手の相性問題は実際にソフトを開発していると起こってくる。 ライブラリプログラミングでは得がたいバッドノウハウである。 http://www…

高速 memchr

http://yoffy.dyndns.org/archives/000101.html http://www.bekkoame.ne.jp/~iimori/progtips/fastmemchr.html なるほど。と思った次第。 見た感じ、Hacker's delight(ハッカーの楽しみ) http://www.amazon.co.jp/exec/obidos/ASIN/0201914654/studiokingyo…

Block Sort Algorithm (BWT)

http://d.hatena.ne.jp/moceanstar/20060220/1140433699 より、BWT、いわいるBlock sortの話題を扱っていた。 私も2年程前、コーディングを行ってみたのだが、全くできなかった。 詳しくはhttp://d.hatena.ne.jp/studiokingyo/20041011やhttp://d.hatena.ne.…

O(n) sort algorithm

O(n)のソートアルゴリズムは使用個所が限られるが、使おうとすれば結構使えると思う。 メリットはもちろん処理速度が極速と言うこと。 デメリットはその分メモリを喰うこと。 この二つの関係をなんたらの法則って聞いた事あったけど・・・なんでしたっけ? さて…

std::truncateやstd::reduceは何故無いのか。

いや、切り詰めの奴があってもいいと思うんですけどねぇ。 template<class T> void truncate(T &x,size_t siz){ if(x.size() < siz){ throw std::runtime_error("argument over"); } T::size_type c = x.size() - siz; for(T::size_type i=0;i</class>

暗号利用ハンドブック 40ビット暗号の攻撃可能性

暗号利用ハンドブック http://www.ecom.jp/qecom/about_wg/wg05/cr-swg/code-index.html 40ビット暗号の攻撃可能性 http://www.oiwa.jp/~yutaka/tdiary/20050923.html#p01 暗号化の処理速度(cryptopp)http://www.eskimo.com/~weidai/benchmarks.html 分散 …

英語版リソースのフォントはMS Sans Serif

GreenPadのリソースの類はMS Sans Serifというフォントになっていた。 これが多分英語版Windowsのフォントの標準なんだろうと思った。実際はどうなんだろう?