ProgramIdiom

間違えやすいパスワード文字(英数字)の一覧

間違えやすい英数字がある。すぐに思いつくものは『1とL』、『Bと8』などである。 よってパスワード文字を指定する際、変なトラブルが起こらないよう、これらの間違えやすい文字を排除する事がたま〜にあったりするのだが、その分パスワード長を長くしない…

base62エンコードの処理を作ってみた

今回のプログラムは珍しく、VC6ではコンパイルできません。*1g++あたりでコンパイルできるんじゃないかな?itoaをパクッてint to stringという事でitosという名前にしました。2進法から62進法まで対応する珍しい一品。私はこの手の処理に自信が無いのでバ…

サイズの大きい構造体を高速にソートするテクニック

誰もが思いつくと感じているが、一応実装を記す。メモリを多くするとideoneでSEGVったけど気にしない。メモリが壊れているかもしれないけれど眠いので今は調べない。私製のテストフレームワークを用いている部分はコメントアウトした。気にしないで欲し…

STLのvectorの実行速度を犠牲にしないで使う方法

昔、vectorは遅い!という事をこのブログに記したが、実際push_back()を使って事前に確保した領域を拡張しない限り遅くないのでネタとして*1ここにメモしておくことにした。 要するにvectorがPOD*2配列と張り合いたいのならばresize使って必要な領域を確保し…

VC6 Tips / iteratorがPODに対応しない時の対応

主に、VC6+STLPortでC++ sort library saltを使うときに気になったので対処法のまとめ http://bit.ly/cAPGMy

VC6 Tips / VCでReleaseの設定でSTLPortを使用し、deallocateにてHeap corruption detected at ... とエラーになる場合の対処方法

VCでReleaseの時にのみ Heap corruption detected at 009D1090 HEAP[foo.exe]: Invalid Address specified to RtlFreeHeap(のエラーがデバッガに表示されたら STLPortを使用している場合は #define _STLP_NO_OWN_IOSTREAMS を宣言すればよい。 昔、よく嵌っ…

ビット単位でソートする。

ranking_tiemr / clock type : RealCPUClock / compile mode : RELEASE 1 / qsn / 3713728.000000 2 / quicksort / 17255964.000000 3 / quicksort_reverse / 17416179.000000 4 / shellsort / 39237981.000000 5 / shellsort_reverse / 39519265.000000 6 /…

dequeの実装はring bufferだと効率よくメモリを使える

タイトルどおりです。dequeの実装はring bufferだと効率よくメモリを埋める事が出来るので無駄がありません。万歳!

最速のmallocの実装を見つけよう!

プログラミングリハビリも兼ねてmallocの実装をいろいろとテストして遊んでみた。 現在のNo.1:dlmalloc( Doug Lea の malloc ) ftp://g.oswego.edu/pub/misc/ テストしたソースファイルは後日アップロード予定。アップロードした。 単純な処理速度のみで…

CRC多項式集

Powered by dKingyo Perl | 逆引きハンドブック | Linux | Debian | GPU Gems 私はCRCの多項式とビット数を指定してCRCを計算するソースコードを出力するソフトウェアを作りたいが、CRCへの理解が不足しているため今は出来ない。がんばれ私!http://noel.fel…

Linuxでメモリ情報を得るソースコード

Powered by dKingyo Visual C++ | Python | TOEIC 突破 | ツクール | 自作パソコン Win32APIの場合、システムの情報を得る場合は専用のAPIがあるが、HDBENCH cloneのソースコードを見る限り、fopenやpopenでproc/***infoやsysctlのプロセスから出力される値…

大量のデータの判定におけるコーディング手法について

Powered by dKingyo Catalyst | Python | ツクール | C++ | C++ プログラムを組まなくなって久しいですが、最近、頭の中でデータを判定する際どのようにすれば効率的かと考えていました。 一つ目はビット演算を使うことです。私のダイアリーで何回も紹介して…

Ruby Tips / mビット目にnビット目の値を入れる。

Powered by dKingyo 明快入門 | TOEFL 突破 | VB2005 | Linux | シューティングhttp://d.hatena.ne.jp/studiokingyo/20070208 にてよく分からなかった。 「mビット目にnビット目の値を入れる。」について考えてみました。 CよりRubyのようなインタプリタの方…

手続き型脳と関数型脳

http://www.atdot.net/s-prosym2007/#l12 より。 手続き型プログラミング言語に慣れ親しんできたのでこの手の関数型の記述は一見何をやっているのか全く分からない。 おそらく手続き型らしい*1表記でないと状態遷移が頭の中に浮かんでこないようになっている…

Ruby Tips / Rubyでobjectをserialize/deserializeするには

Powered by dKingyo TOEIC 突破 | シューティング | Game Programming Gems | Linux | C++ google:7.24 Marshalの使い方を教えてください http://tinyurl.com/2mopsf に書いている。 もう本当に・・・C/C++でシリアライズ、デシリアライズに力を入れる事が無駄…

Ruby Tips / tag map file parser in Ruby

Powered by dKingyo 規格準拠 | 図解 辞典 | C言語 | シューティング | TOEIC 突破 http://d.hatena.ne.jp/studiokingyo/20070322#p1 にて提案するファイル形式のパーサーを http://d.hatena.ne.jp/studiokingyo/20070322#p2 にてC++版を公開していましたが…

エンディアン嘘つかない!

この小見出しのタイトルの元ネタは確かやねうらお氏のWindowsプロフェッショナルゲームプログラミングだったような覚えがあります。 cppllにてエンディアン問題を解決するテンプレートに関しての話題が挙がったので過去ログのURLを示します。 http://www.tie…

百分率でtrueかfalseを返すプログラム

中学生の時に四苦八苦していた覚えのある問題である。 多分これで良いのではないだろうか? in C

FluidStudiosが凄くカッコよく変わっていた!!!

昔、ライブラリアン通信にて(http://d.hatena.ne.jp/studiokingyo/20060115#p2)FluidStudiosについて紹介した事があったが、 そのサイトが今時のWeb2.0(で、いいのかな?)風に変わっていて驚いた。 http://www.fluidstudios.com/ 正直、どこにどの情報が…

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

前回の続き(http://d.hatena.ne.jp/studiokingyo/20060716) さて、前回の「続く・・・」を見たところで生粋のシーゲンガーならば身近なリソースマネージャー(以下RM)の正体は気付いていると思う。 そう!実はmalloc()だったのである。 mallocこそ最高のリソー…

glibc malloc() free()の実装

http://mkosaki.blog46.fc2.com/blog-entry-241.html より。 glibcのmalloc freeの実装の解説ビデオ http://video.google.com/videoplay?docid=2914803742593360351 via http://d.hatena.ne.jp/hyoshiok/20060926#p2 リンク先にはこのビデオに使われていたPo…

ライブラリはスクリプトで書き下せ!!!

そう、今まで、私はC/C++でライブラリを組んできたが、今思うにライブラリはスクリプトで書き下したほうがとても効率的だと思うようになってきた。 何故そのように思ったか、それはgoogle:OpenSSL]の[google:Perlによるスクリプト群を見てからだ。 md5やsha2…

Win32 WTL Tips No.2 / チェックボックスにチェックする 解除する

Win32API SendMessage(Window handle, BM_SETCHECK, TRUE or FALSE, 0L);TRUEでチェック FALSEでチェック解除 Window handle = google:HWND型のウィンドウハンドルちなみにチェック状態を取得する場合は BOOL r = SendMessage(Window handle, BM_GETCHECK, 0…

Win32 WTL Tips No.1 / ダイアログコントロールの 有効化 無効化

Win32API EnableWindow(Window handle,TRUE or FALSE);第二引数にTRUEで有効化 FALSEで無効化 WTL使用例 HWND GetMainWindowHandle(){ return m_hWnd; } LRESULT OnClickedRadio_trashbox(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { HWND…

等価安全性と鍵長の関係

http://www.atmarkit.co.jp/fsecurity/rensai/crypt05/crypt03.html より 「等価安全性と鍵長の関係」の表が記載されていた。 公開鍵の場合2048bitと共通鍵の場合112bitという関係で等価らしい。 なんか私の頭の中で整理していた鍵長と違うね・・・ どのくらい…

安定性のあるソフトウェアの効率的なコーディング手法について

Radium Softwareさんの Pike らは, Sawzall が扱うような種類のデータに限って言えば,そのような「狂ったデータ」を無視してやるだけでシステムの安定性を確保することができると主張する。 そう。これからWriting Secure Code http://www.amazon.co.jp/ex…

アセンブラを使わないallocaの独自実装 (win32用) part3

今更ながら 奥義!!!Boehm GC http://studiokingyo.fc2web.com/dxlib/tutorial/BoehmGC/index.html (もちろんネタです。) さて、処理速度の面から言うと・・・本末転倒ですがな・・・おrz

アセンブラを使わないallocaの独自実装 (win32用) part2

id:y-hamigaki氏のご指摘から少し改良してみた・・・が未だにmapの直列化の概念が良く分かっていない・・・ こうなったら最終兵器、なんでもかんでもsynchronizedテクニック*1しかないのだが・・・ 脈絡は無いが・・・どーっちだ(笑)とちょっと遊び心を・・・ 続きを読む …

アセンブラを使わないallocaの独自実装 (win32用)

そう。allocaの独自実装を考えていたことがあった。だが、C言語のみで実装するのはメモリハンドル管理の面でとても面倒だと思っていたが、STLを使うと以下のように書けるとRBtreeのC言語実装を知る*1一年ほど前から思っていた。 なんか、STLのオブジェクトを…

Pascal文字列の実力

実装できた!!! Joel on Softwareでは特にstrcat()の処理の部分に負荷がかかると指摘してあった。 早速その処理の比較をする為にテストしてみた。 続きを読む 実はこの下のが本当の続きを読むだったりして^^;