2010-01-01から1年間の記事一覧

第一回真の闇プログラマ認定プログラミングコンテスト開催告知

本日、「第一回真の闇プログラマ認定プログラミングコンテスト(仮)」のレジュメをアップしました。ご都合がよろしければ、ぜひご参加くださいませ。 http://bit.ly/gYcbkk

ケータイのレスポンスが遅くてイライラしている方にオススメの機種

ガラケーの話題である。 携帯電話のボタンを押しても画面遷移までの時間がかかってイライラする事はないだろうか?ボタンを押しても反応が悪いといった感覚だ。私の携帯にはそれが顕著でかなりイライラしていたのだが店員に聞いたところ、Snapdragon*1という…

コードコンテストプログラマーの分類

コードコンテストのプログラマーのコーディング手法には様々なタイプがある。特に注目に値すべきコードの書き方から、そのプログラマーの考え方が分かってくるような気がしたので特にそういった印象が強かった点を以下に記しておく事にした。 1.モンキーコ…

モンキーデバッグって何?

モンキーデバッグとは私がうろ覚えだった「モンキーテスト」の意味を取り違え、その他の概念と合わせて独自の解釈で作ってしまった俗語である。主に私とその界隈だけで通じる。メジャーな語句にさせる為にエントリーに書く事にした。 意味としては次のような…

VC6 Tips / CPPファイルとHファイルをボタン一つで編集を切り替えられるVC6専用のマクロ

ずっと前にも公開していました*1が、srcフォルダとincludeフォルダの行き来が面倒なので新しく作りました。VC6は不滅です!!! http://www.dkut.flnet.org/dxlibwiki/?cpp_h_changer *1:http://d.hatena.ne.jp/studiokingyo/20041018#p1

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

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

前回のライブラリアン通信から今回までにチェックしたであろうライブラリおよび技術情報

http://boost-spirit.com/home/info/links/ boost::spirit official site : links http://da.vidr.cc/projects/lljvm/ LLJVM | da.vidr.cc | David Roberts da.vidr.cc http://www.eecs.harvard.edu/hube/software/nci/cfg.html The Machine-SUIF Control Fl…

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

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

サイズの大きい構造体を高速にソートするテクニックはwikiの方で更新していくことにした。

wikiの方でソートのソースコードを更新していくことにした。何故かstd::sortが一定の条件でAccess ViolationやStack Overflowになるのでどうにかしなければならない。ということでstable_sortにしてみたorz。 http://www.dkut.flnet.org/dxlibwiki/?cpp_prog…

vectorと張り合う為に頂戴した意見

boost::scoped_array boost::shared_array boost::shared_ptr boost::array C言語のPOD array[size];//sizeはint型変数

結論:やっぱりpush_back()ってほんの少し遅いらしいよー

そういえば、何故、resize operator[]が一番速い方法として取り上げたかをやっと思い出した。これから糞コードテストコード置き場は私のHDD内ではなくideoneが肩代わりしてくれるって事ですかね。 http://ideone.com/uGMtx > http://ideone.com/q9C0o

vectorのreserve() push_back()版

http://ideone.com/wigUv

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

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

今月チェックしたライブラリおよび技術情報

前から知っているけど、boost::graph http://boost.cppll.jp/HEAD/libs/graph/doc/table_of_contents.html 幾何学、画像処理、画像認識などに使うライブラリ http://opencv.jp/ The Ultimate Toolbox Graphical User Interface Classes - CodeProjec http://…

メモリ管理、mallocの説明集

これはmalloc大好きな私にとっての宝物。何故今まで見つけられなかったのだろうと思う。多分、見つけたけど忘れていたのだと思う。 http://www.ibm.com/developerworks/jp/linux/library/l-memory/

こいつは安すぎる!

http://amzn.to/bSk3xv 昔100万くらいしたものがこんな値段になるなんてビックリだ!だけど、プリンターは消耗品が高価なものだから一概にお得とは言えない事もあるので注意しよう。

HP ProLiantが大量に出品されているよー!

http://search.auctions.yahoo.co.jp/jp/search?p=HP+ProLiant+MLお子様のプログラミング学習用に、Linuxの練習用に・・・一家に一台激安PC。音が出ないって所がミソね。動画や音楽のマルチメディアに気が奪われないためにね。

先月からのマイブームはとあるアルゴリズムのベンチマーク

http://bit.ly/98ToDt SHA3候補のアルゴリズムのソースコードを色々な条件で戦わせて遊ぶ。バーコードバトラー的面白さです。今現在は処理速度を比較するだけで満足です。

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

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

VC6 Tips / VC6で「std::stringのclear()が宣言されていない、ブロックが大きすぎる・・・」といった内容のエラーへの対処法

std::stringのclear()が宣言されていない、ブロックが大きすぎるという謎のコンパイルエラーについて・・・VC6の標準STLを使っているとVC6が駄々をこねるという構造。STLPortのパスを間違って設定した事が原因。

std::sortをスレッドを使って分割すると処理速度が速い事がある

http://bit.ly/aXHeMc にテストする為のバイナリを置いておく。詳しくはリンク先にて・・・。 基本的にはスレッドを使って処理を分割した挿入ソートの実験だったはずだが、結局それがシェルソートとなり、クイックソートとなり・・・ 「クイックソート+挿入…

( coLinux VS VMWare VS VirtualPC VS VirtualBox ) for Linux client

coLinux と VMWare と VirtualPC と VirtualBox でLinuxのクライアントOSをどの仮想化ソフトで動かすのか迷っている方へ問答無用でVirtualBoxを使いましょう!

Windowsを起動が遅く主な症状はHDDがガリガリと無意味にアクセスしっぱなしの時の対応

Windowsで起動が遅いときは「ページングファイルを固定する」必要がある。またページングファイルはアクセス速度が速く、空き容量にも余裕のあるドライブに設定しなければ良い効果は望めない。 いじくるツールの「Windows NT系設定」−>「Windows終了時にペ…

行番号は紙媒体で無い限り無意味だ。

私はソースコードの左側に付加される行番号は邪魔だと思うときがある。その理由は行番号も含めてソースコードをコピーしてしまうことがあり、コピー・アンド・ペースト の邪魔だからである。よって<table><tr><td>行番号</td><td>ソースコード</td>... とすべきだ。</tr></table>

今だからこそ言えるタスク処理の最終的な印象

タスク処理は使えるか?=答え:NO 現代のプログラミングの言語体系だと大変使用しにくい。アセンブリ言語時代の遺産と私は感じている。タスクを関数やvirtualつけて処理を分割して書くのより、FSM作成ソフトやswitch を沢山使用して書いた方が結果的に効…

uint32もuint32_tも面倒だ。u32で十分。

昔、とあるC言語のソースコードにu32と書かれていた。これはなんの変数名だと思っていたが、型名だった。昔は型名が短すぎて直感的ではないと感じていたので感化はされなかったのだが、確かに、一番タイプ数が少ないのですぐに思考内容をソースコードに書き…

最近チェックしたライブラリ群

ライブラリを巡る環境はここ数年で本当に良くなった。ビジネスロジックを組むだけで*1プログラミングできる世界は大変心地が良い。 前回紹介と重複している事もあるかもしれないが、許して欲しい。 http://home.att.ne.jp/green/atlan/index.html SOL9 Class…

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 /…

0x4FB7B >> 1 TBの領域が必要である。

前回(http://d.hatena.ne.jp/studiokingyo/20100330#p1)のような記事を書いたが、よく考えてみれば、奇数のみのテーブルでよいので(0x4FB7B >> 1)*1 TBの領域で大丈夫である。さらにはテーブルを素数毎に分割していけばもっと容量を節約できそうだ。興味…