Program

古いデバイスであるSHARP IS01がadb接続できない時の対処法

問題: SSHEX020941_05 を使用するには、さらにインストールが必要です。 答え:高速転送モードから外部メモリ転送モードに直す 問題: 新しいIS01のドライバと古いAndroid SDKの組み合わせでadbに接続できなくなる。 答え:新しいAndroid SDK Toolsをインス…

NoSQL(Key/Value store)の一覧と機能の比較表

表の見方 ○ 有り ☓ 無し 名前 主要アルゴリズム 開発言語 WebAPI Key専用サーバー Key専用サーバーの冗長性 Valueサーバーの冗長性 処理速度のスケーラビリティ限界点 容量のスケーラビリティ ライセンス LevelDB Skip list C/C++? 調査中 調査中 調査中 調…

NoSQL(KVS)のベンチマーク指針

Key型 Register size Static Int Non Register size Static Int(static binary) Dynamic size Int(dynamic binary) Static size String Dynamic size String Value型 Static size Value Dynamic size Value 検索方法の種類 Key一致検索 Keyあいまい検索(シ…

アプリを作る際の方法論ではなく手順論

方法論は色々あると思うが、手順のみということで手順論を示していこうと思う。この手順に沿っていないと人的リソースの出入りでアプリ開発のノウハウが散逸してしまうのでそれを防止するためである。今のこのエントリーではまだとりあえずの私見としての草…

黒歴史HDDがサルベージ出来た件

サブタイトルは釣りです。黒歴史ではなく私が現役だった頃の貴重な開発環境がサルベージ出来ました。というよりHDDが未整理の中から見つかっただけですが…。Windows2000のメイン開発環境だった奴です。VC6と2003.NETと2005とDev-C++とCodeBlocksとかCygwinと…

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

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

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

コードコンテストのプログラマーのコーディング手法には様々なタイプがある。特に注目に値すべきコードの書き方から、そのプログラマーの考え方が分かってくるような気がしたので特にそういった印象が強かった点を以下に記しておく事にした。 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://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 にテストする為のバイナリを置いておく。詳しくはリンク先にて・・・。 基本的にはスレッドを使って処理を分割した挿入ソートの実験だったはずだが、結局それがシェルソートとなり、クイックソートとなり・・・ 「クイックソート+挿入…

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

私はソースコードの左側に付加される行番号は邪魔だと思うときがある。その理由は行番号も含めてソースコードをコピーしてしまうことがあり、コピー・アンド・ペースト の邪魔だからである。よって<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の領域で大丈夫である。さらにはテーブルを素数毎に分割していけばもっと容量を節約できそうだ。興味…