ProgramIdiom

exeファイルを解析から守る

http://d.hatena.ne.jp/kmt-t/20040904#1094303391 より、 ワイブキーと知った。

hash_mapの実装の仕方

http://www.hatena.ne.jp/1138956162 より。 これでも衝突が怖いのでしたら、ハッシュ関数のグレードを落として他の方法と併用した方がいいでしょう。 CRC32やchecksumのような速いがおよそハッシュ関数とは呼べないものを使った上で、B-Treeとか。 これなら…

C言語のprintfでmarqueeタグ効果

テキストボックス(TextBox)やprintf,coutで文字列を流すには以下のようなプログラムの組み方をする。 ちょっと遊んでみた^^; #include <string> #include <vector> #include <stdio.h> #include <windows.h> #ifdef _MSC_VER # pragma comment(linker,"/NODEFAULTLIB:LIBCMT") #endifclass Mo</windows.h></stdio.h></vector></string>…

VC6 Tips / VC6でfor内の一時変数を有効にするマクロ

旧:プログラムを学ぶ上でソースコードがすべての真実である http://d.hatena.ne.jp/janus_wel/20060126#1138251848 にて 私も同じような経験があった。ドキュメント自体にはエラーチェック機能がないのでバグ*1が起こってもそれ自体に気づかないことが多い…

std::copy_ifが標準に入っていないので自分で実装しよう!

http://d.hatena.ne.jp/parasporospa/20060129/1138487309 より。 http://d.hatena.ne.jp/a_little_bit/20050911#c にて私も気づいた。あまりstd::copyやらstd::swapやらstd::for_eachやらをあまり使わない派だったりするので気づくのは遅かった^^; ちな…

16byte align technic for SSE

ちなみにこのテクニックを紹介されているサイトも見つけた。 http://yosirin9.hp.infoseek.co.jp/ より http://yosirin9.hp.infoseek.co.jp/tips/no5/malloc.pdf

Pentium4に最適化されたMersenne Twister のソースコードを読む!

私が知る限り国内最速の実装と思われる*1MT法乱数のソースコードを見てみた。(確か最終更新日2002年度だったのでSSE3は使ってなさそうな気がする。) http://homepage1.nifty.com/herumi/ にてダウンロードできるPentium4に最適化されたMT法乱数生成ルーチン…

8086 によるJIS-SJIS変換最短アルゴリズム

http://openlab.jp/k16/jissjis.html すっげー!!

学生プログラマの為の最速swapping入門

前回の記事 http://d.hatena.ne.jp/studiokingyo/20040322 もう一年以上前か・・・ あの時は私はアセンブラを覚えていなかった。 それでもあのスワップ方法は早いと思っていた。 しかし、それを揺るがす記事を目撃してしまった。 http://d.hatena.ne.jp/Will_NE…

Red Black Tree in C part2

前回のソース:(http://d.hatena.ne.jp/studiokingyo/20050321)にメモリリー クがあったので修正版をのっけておきます。 ちなみに原因はlogic部ではなくmainから抜ける時にdeleteNodeで最後までメモリ開放していないためです。

格ゲーコマンド定義をぶち込むコンテナ part2

良く考えて見たら、タメの概念はどれだけボタンが押されているか?だと思う。 なので右タメボタンが1だとしたら定義はuint8 def[]={1,1,1,1,1,1}(とりあえず6フレームほど)みたいな感じで定義できるんじゃないですかな?と感じた。 タメ判定が他のボタンに…

格ゲーコマンド定義をぶち込むコンテナ

相変わらずキー同時押しには対応していません。 いわいるタメという概念にも対応していません。 簡単な辞書です。一つのコマンドで1024byte強使います。メモリの無駄です。(泣) とりあえず、一つのアプローチとして以下に載せときます。 ライセンスはNYSL…

2005/10用備忘録

やっぱり暗号化は大人の味(笑) part19 今月は暗号系ニュースもっさり。 ハッシュ関数の安全性に関する技術報告書http://www.ipa.go.jp/security/enc/CRYPTREC/fy16/documents/rep_ID0213_000.pdf ( http://www.ipa.go.jp/security/enc/CRYPTREC/fy16/cryptre…

dKingyo Utility Toolkitでのassertの書き方

http://www.radiumsoftware.com/0510.html#051007 にてassertについて述べられている。記事を読んでいる時間は無い*1のでdKingyo Utility Toolkitにて採用されているのassert()の書き方のルールに関する着目点を書く。 デバッグ用のチェックにassertを使用す…

IVをキーから生成するにはどうすればTT

IVとは。 ブロック暗号が CBC モードで使用されるときには、暗号化が行われる前に、初期ベクトルと最初の平文ブロックとで排他的 OR 処理が行われる。 だそうだ。 で、このIVを鍵から生成するにはどうすれば言いかを考えてみた。 その考えが以下のソース。こ…

2005/09用備忘録

stream cipher Konton2 http://www.geocities.com/da5id65536/ レポート丸写しを見破る方法 http://blog.livedoor.jp/yahata127/archives/30818023.html ネタ元:http://d.hatena.ne.jp/kmt-t/20050831#1125476642 Quine 自己出力コード http://www.radiumso…

パスワード認証方法アプローチ集

最近、こういう半端なリストを作っているような気もするが・・・*1 自分で考えた奴 ローカル 1.パスワードはHMAC-SHA1で保存。それに使われるパスワードのほうじゃないデータ列は各自用意? 2.書きかけ・・・ ネットワーク上 参考サイト ネットワーク上 htt…

Red Black Tree in C++ adopted by Arkadi Kagan

id:studiokingyo:20050321のC++版デースケドガー http://sourceforge.net/projects/compressions/ で、ダウンロードできるredblack.tに入っていたのデースケドガー License: Academic Free License (AFL), Common Public License, GNU General Public Licens…

Red Black Tree in C written by Thomas Niemann

http://www.darkridge.com/~jpr5/archive/alg/node21.html のソースコードが見にくい方の為にデースケドガー

GreenPadの正規表現エンジンをC言語に移植してみた

私がGreenPadのファンと言うことは前に述べましたが、なんといってもソースコードがNYSLで公開されているところが大きいです。 これにより、テキストエディタの実装の仕方が確実に理解でき、文字列処理の大半がこのソースで学べるのは資料代が年間ん〜ぜん円…

Writing Secure Codeを読んで。

実は、某本*1 と この本 を悩みに悩みあげ、この本を買ってしまった。 ちなみに買うときは http://www.amazon.co.jp/exec/obidos/ASIN/4891004460/studiokingyo-22 http://studiokingyo.fc2web.com/dxlib/shiryou/book.html から買ってくれると嬉しい。mousu…

真性乱数の発生の仕方

http://www.interq.or.jp/snake/totugeki/hdrand.htm http://totutohoku.b23.coreserver.jp/hp/hdrand.htmgoogle:hdrand より。 感銘を受けた。 boost::randomのインターフェイスを使って実装したらいいかも? http://cvs.sourceforge.jp/cgi-bin/viewcvs.cg…

string_printf std::string用のsprintf

C++に移るとsprintfが恋しくならないだろうか? 私は恋しくなる性質のようだ。 boost::formatを使えば一発で解決なのだが、そこまでする事は無いでしょ^^; って方には以下の関数を薦める。*1 デースケドガーstring printfと言う事にさせてくだsine.*2 ラ…

デースケドガー専用 二分木。。。*2

ちと、しっかりバグが取れたようなのでパフォーマンス計測。 ちなみに、C言語で汎用的な構造として組まれました。Debug mode ranking_tiemr / clock type : MilliSecondClock / compile mode : DEBUG 1 / all erase / 203.000000 2 / insert / loopnum = 0xF…

ハッシュ法の衝突回避ついて考える・・・

ハッシュ法を使っていると衝突問題に出くわす。*1メモリを沢山使う ハッシュ法+(赤黒木 or AVL木 or B木) 一般的なの ハッシュ法 + ハッシュ法 ハッシュ法 + 線型リスト ハッシュ法 すべてのキーとなるデータが分かっている場合 最小完全ハッシュを使う gp…

デースケドガーハッシュアルゴリズム part2

int dkcHash16_(unsigned char *pd,size_t cycle){ unsigned int v = 0; size_t i,j; size_t shift_ = 8; for(i=0;i

デースケドガーハッシュアルゴリズム

なんか、http://d.hatena.ne.jp/studiokingyo/20050205#p2 でハッシュ関数作りが楽しくなっちゃったんだけど、SHA1の初期価値を使って見たら結構イイ感じの結果だったので載せておく でも、両者共にバグチェックしていないです。 さまざまな条件下でテストし…

ハッシュ関数を、ちょっと、自分で作ってみた。

uint8 dkcHash8(uint8 *pd,size_t cycle){ uint32 v = 0; size_t i; for(i=0;i

スクリーンセーバーのつくり方

むかし、むかし、そのむかし、スクリーンセーバーを作るものありけり。 google:スクリーンセーバーの作り方 DxLibこんなの。 何時作ったのだが忘れたが、2003年度頃だと思われる。 はっきり言って、今となるとソースが見難い。 むぅ。 やはり、しっかりコメ…

高速なmemcpyの実装に関する話題

http://www.cyborg.ne.jp/~xelf/developer/MemoryCopy.html http://d.hatena.ne.jp/kmt-t/20040629#p3 http://d.hatena.ne.jp/shinichiro_h/20040616#p1 http://d.hatena.ne.jp/studiokingyo/20040719 http://beautiful.homelinux.net/~sky-software/diary/?…