プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 このページをアンテナに追加 RSSフィード

 iTunes Music Store(Japan) なかのひと あわせて読みたいブログパーツ
|

0001 | 00 |
2004 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
2008 | 01 | 02 | 03 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 |
2010 | 03 | 04 | 06 | 07 | 09 | 10 | 11 |
2011 | 01 | 02 | 10 |
2012 | 04 |
2013 | 01 | 05 | 06 | 07 | 08 | 10 |
2014 | 02 | 03 | 05 | 09 |
2015 | 04 |
2016 | 09 | 11 | 12 |
はてな一覧
アンテナに追加
私のアンテナ
私のダイアリー
私のアーカイブ
私のアイデア
私のブックマーク
私のグループ
私のキーワード
ニュース系、今まで続いているシリーズモノの読み物
dKingyo Utility Toolkit Projectのリリース情報
やっぱり暗号化は大人の味(笑)
プログラムのパッキング方法を調べよ
ココが厳しいよMinGW
ライブラリアン通信
ゲームプログラミングどうしよう
CRCについて
ビット演算練習
d金魚の今更Ajax
Windows Tips
VC6 Tips
Win32 WTL Tips
Ruby for C++ User
Ruby Tips
今日のRubyで嵌った事
正規表現PIECE
書きかけ
続く・・・

私のダイアリーの人気記事
新しくブックマークされた記事


あまり、役に立たなそうな個人的に調べた情報や妄想に耽った事、今 勉強している事ヒソヒソと公開していたりします。 | 登録してくれている方々 | d金魚にメール | 当サイトは640x480の画面解像度に対応しています。
日記へのリンク、アンリンクはフリーですが、selfタグのついている部分のコンテンツの引用はご遠慮願います。ご協力よろしくお願いします。


 

2013-10-06 信頼性の高いファイル転送プロトコルについて

[]信頼性の高いファイル転送プロトコルについて 信頼性の高いファイル転送プロトコルについて - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク 信頼性の高いファイル転送プロトコルについて - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

 信頼性の高いファイル転送プロトコルについてだが、FTPは論外。セキュリティーも確保したいので色々と利便性鑑みると次のような順番になる。


 なお、SSH系はshellにアクセスするのでユーザーアカウント権限の設定はしっかり見直して設定しよう。

 rsyncは未調査だが、SFTP及びSCPはローカルサーバー両側でMD5AHSなどの暗号学的ハッシュ関数値でファイルが正しくアップロードされたか確認しないようなので厳密に正しくファイルアップロードされたかはチェックされていない。しかFTPに比べれば両者はかなり信頼性は高い。


未調査


論外

2013-08-17 アプリを作る際の手順論

[][]アプリを作る際の方法論ではなく手順論 アプリを作る際の方法論ではなく手順論 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク アプリを作る際の方法論ではなく手順論 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

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

1.コーディング規約を決める。

例:

オブジェクト指向で作る。『インターフェース』と『共通の機能は基底クラス』、『派生クラス』の分離を行なっておくこと。

・実装を変える際は正常に動いているものは残しておいて、別のクラスに実装して入れ替える。(すなわちストラテジーパターン

・状態遷移はアクセプタFSMベースにする。

エラー処理の方法VM言語場合は処理速度的に例外エラーを返した方が良い。Native言語場合アーキテクチャに寄るが、C++場合は処理速度的には基本的に戻り値エラーを返す。」

ビジネスロジック部(アプリ固有の状態遷移部)とライブラリ部(アプリで使用する機能、その他共通する機能群)の分け方を明確にする。

ビジネスロジックの実装はストラテジーパターンで簡単に入れ替えが出来るようにしておく。

コメントは〜〜のように書くなど(英語か?日本語か?)doxygenjavadocスタイル準拠させるか?など 特にifやswitchなどの条件分岐の理由をコメントで残しておくとソースコードがぐっと見やすくなる。

2.簡単な仕様書ドキュメントとして残す、書いておく

例:

テスト環境、本番環境コーディング環境などの作り方、設定方法などのノウハウ。(これら3つの事を丁寧、親切に記していないとかなりのタイムロスが起こる事がある。)

必要機能と実装優先度

ユーザーから操作の詳細

エラーが起こった際のチェックする所やエラー原因の特定方法ログファイルパス名など

コード内の構造ソースコードファイルの説明など

Subversiongitなどのコード共有場所など

アプリに使用する機能のついての所感や多数のソリューションがある中での採用理由、メリットデメリットなど

以下3〜5は必要に応じて横断的に行う。

3.テストケースの実装

・要するにTest Driven Developmentである。正しいテストケースの無いプロジェクトは人的リソースの出入りによって炎上する。

フルスクラッチ場合このテストケースを作る際にインターフェースエラーチェックの機能を実装する事が多い。

4.機能の実装

・要するにライブラリ作りであるライブラリを作り終わったら前に作ったテストケースを用いてテストして不具合バグが無くなるまでしっかり作ろう

5.ビジネスロジックの実装

・ある程度の機能が実装できてきたらビジネスロジックを実装しよう。ビジネスロジックテストケースも作ってテスト自動化させよう。

6.ユーザー視点からテスト

ユーザーが使う視点から実際にアプリを起動させて動作確認をしよう!動作確認リストをこの時に作ったほうが良い。(3・4・5のうちに色々あって2で作ったユーザー視点での動作確認リスト時代遅れになっている可能性が高いから

エンドユーザーテストしてもらって色々と改善箇所を洗い出そう。

7.ユーザー用、開発者用のマニュアルを作ろう

マニュアルがなければどんなに高機能アプリでも意味もワケも分からない無用長物に成り果ててしまうでしょう。

ユーザー側は画面の画像と矢印などを使って懇切丁寧に

開発者側は別の言語や開発環境を使っている人が見ても分かるように書いておく。既知のバグリストと決定稿の仕様書もつけておく。

・6のエンドユーザーテスト結果を元に厳密な仕様書テストケースを作る。必要があれば3〜5に戻って改修、作り直し

8.厳密なテストケースを通過したらリリース

7で洗いだした厳密なテストケースを通過したらリリース可能なクオリティーになっているのであとはリリースを待つだけ!

2013-08-16 Debian7でNetBeansがインストール出来ない時の対処法

[][]Debian7でNetBeansインストール出来ない時の対処Debian7でNetBeansがインストール出来ない時の対処法 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク Debian7でNetBeansがインストール出来ない時の対処法 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

 NetBeansインストール出来ない時の対処法は簡単。、default-jreを利用するようにすればインストーラーが正常に起動する。


不具合:『UI初期化できません』 のエラーが出て画面が表示されない。


対処法:

sudo apt-get install default-jre default-jre-headless openjdk-7-jdk

何か上手く行かなかったら他のJREやJDKをapt-getインストールしたり削除したり色々な組み合わせで試行錯誤してみてください。

2013-07-04 debian 7.1 のブルーレイディスクイメージのダウンロード方法

[][]Debian 7.1 BD imageのダウンロード方法 Debian 7.1 BD imageのダウンロード方法 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク Debian 7.1 BD imageのダウンロード方法 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

 ブルーレイ版でびあんを作ってみたかったのでDebian 7.1 BDimageをjigdoでダウンロードしてみた。

 jigdoの使い方*1は間違っていないはずなのに何故かダウンロード出来ない。その理由は、BDimageは日本のミラーサーバー http://ftp.jp.debian.org/debian/ にはBDに必要な素材が用意されてないのでダウンロード出来ないからだ。

 よって本家から取り寄せなければならない。jigdoファイルのURLを http://cdimage.debian.org/debian-cd/7.1.0/amd64/jigdo-bd/ よりリンクをコピペしてきて設定。

 debianMirrorサーバー、nonusMirrorサーバーはすべて本家のURL http://ftp.debian.org/debian/ に設定すれば問題なく処理が済むのでDebianのブルーレイisoイメージが欲しい人は試してみてほしい。


jigdo-lite-settings.txt

jigdo='http://cdimage.debian.org/debian-cd/7.1.0/amd64/jigdo-bd/debian-7.1.0-amd64-BD-1.jigdo'
debianMirror='http://ftp.debian.org/debian/'
nonusMirror=''
tmpDir='.'
jigdoOpts='--cache jigdo-file-cache.db'
wgetOpts='--passive-ftp --dot-style=mega --continue --timeout=30'
scanMenu=''

2013-06-27 間違えやすいパスワード文字の一覧

[][]間違えやすいパスワード文字(英数字)の一覧 間違えやすいパスワード文字(英数字)の一覧 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク 間違えやすいパスワード文字(英数字)の一覧 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

 間違えやすい英数字がある。すぐに思いつくものは『1とL』、『Bと8』などである

 よってパスワード文字を指定する際、変なトラブルが起こらないよう、これらの間違えやすい文字を排除する事がたま〜にあったりするのだが、その分パスワード長を長くしないといけないので注意されたし。

間違えやすい文字としては以下の様な特徴がある。

  • 文字図形が反転している、回転している。
  • 文字図形が似ている。8とBなど。
  • 文字図形の大文字、小文字の差異が大きいか小さいかだけである

以下一覧

文字1文字2備考
8B
Z2その他記号としては『S』など
pq
bd
O0
I1
他には『1』、『|』、『|』、『I』など

私が思いつかない間違えやすい文字、及びパスワード長の計算方法は追記中。

2013-06-10 Linuxに入れるべきソフトウェア集

[][][]Linuxに入れるべきソフトウェア集 Linuxに入れるべきソフトウェア集 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク Linuxに入れるべきソフトウェア集 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

 Linuxに入れるべきソフトウェア集がなかったので備忘録もかねて私が厳選したソフトをリスト化しておく。


ブラウザ

デスクトップ環境

リモート操作

ファイルシステム

仮想環境

  • google:KVM virt-managerとか。WindowsだとVirtualBoxだけどLinuxだとKVM。

IDE

  • google:Netbeans NetBeansはかなり改良されて昔と比べて格段に使いやすくなっている。好印象!

 Linuxに入れるべき開発者向けのソフトウェア集

2013-01-31 今更ながら3.11以降行方不明になっていたHDDをサルベージできた件

[][]黒歴史HDDがサルベージ出来た件 黒歴史HDDがサルベージ出来た件 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク 黒歴史HDDがサルベージ出来た件 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

 サブタイトルは釣りです。黒歴史ではなく私が現役だった頃の貴重な開発環境がサルベージ出来ました。というよりHDDが未整理の中から見つかっただけですが…。Windows2000のメイン開発環境だった奴です。VC6と2003.NETと2005とDev-C++とCodeBlocksとかCygwinとかRDEとか本当になつかしのツール達が入っていまして懐かしいです。2.x系のEclipseとか何時の時代の遺産でしょう!?

 とにかく、なつかしのプログラミング資料が出てきたのでバックアップを取って嬉しがっておきます。中に入っていたソースコードや資料を検索対象フォルダにつっこんだりして資料の拡充が図れます。読むのが楽しみです。

 そういえばReactOSとかありましたよね。WindowsXPクローンを作るプロジェクトの。それが出てきて思い出したりしていました。今でこそWindowsXPのサポートが切れるのでこのOSの真価が発揮される時ですね。先見性がありすぎてセガサターンやドリームキャストのような印象だったReactOSですが……今度そのサイトを覗いてみようかなと思ったりしました。

2010-11-20 携帯のレスポンスが遅くてイライラしている方にオススメの機種

[][]ケータイのレスポンスが遅くてイライラしている方にオススメの機種 ケータイのレスポンスが遅くてイライラしている方にオススメの機種 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク ケータイのレスポンスが遅くてイライラしている方にオススメの機種 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

 ガラケーの話題である

 携帯電話のボタンを押しても画面遷移までの時間がかかってイライラする事はないだろうか?ボタンを押しても反応が悪いといった感覚だ。私の携帯にはそれが顕著でかなりイライラしていたのだが店員に聞いたところ、Snapdragon*1というモノ?を使ったケータイがレスポンスが速くて良いそうである。ちなみに新規契約で0円のケータイなどには使われていないそうだ。

 機種を挙げるとすれば

あたりである

 とにかく、レスポンスの速い携帯が欲しければケータイの店員さんにSnapdragonを使っているケータイを羅列していただけませんか?と頼む事だ。 −以上ー

2010-09-02 ライブラリアン通信 VOL.62

[][][]前回のライブラリアン通信から今回までにチェックしたであろうライブラリおよび技術情報 前回のライブラリアン通信から今回までにチェックしたであろうライブラリおよび技術情報 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク 前回のライブラリアン通信から今回までにチェックしたであろうライブラリおよび技術情報 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

2010-07-26 STLのvector<POD>をPOD配列並の速度で使う方法

[][][]STLのvector<POD>の実行速度を犠牲にしないで使う方法 STLのvectorの実行速度を犠牲にしないで使う方法 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク STLのvectorの実行速度を犠牲にしないで使う方法 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

 昔、vectorは遅い!という事をこのブログに記したが、実際push_back()を使って事前に確保した領域を拡張しない限り遅くないのでネタとして*1ここにメモしておくことにした。

 要するにvector<POD>がPOD*2配列と張り合いたいのならばresize使って必要な領域を確保してoperator []でアクセスすること。そしてpush_back()は使うな!である

http://ideone.com/cRo9i

//正しいvectorを使った配列の使い方
//resize後 配列と同じように・・・

#include <iostream>
#include <boost/scoped_array.hpp>
#include <vector>
using namespace std;

const int gSize = 100;

int main(){
 typedef vector<int> vt;
 typedef boost::scoped_array<int> sa;
 sa a(new int[gSize]);
 vt v;
 
 v.resize(gSize);
 
 for(int i=0;i<gSize;i++){
  a[i] = rand();
  v[i] = a[i];
 }
 
 return 0;
} 

[][]vector<POD>のreserve() push_back()版 vectorのreserve() push_back()版 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク vectorのreserve() push_back()版 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

http://ideone.com/wigUv

[][]結論:やっぱりpush_back()ってほんの少し遅いらしいよー 結論:やっぱりpush_back()ってほんの少し遅いらしいよー - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク 結論:やっぱりpush_back()ってほんの少し遅いらしいよー - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

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

[][]vector<POD>と張り合う為に頂戴した意見 vectorと張り合う為に頂戴した意見 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク vectorと張り合う為に頂戴した意見 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

boost::scoped_array

boost::shared_array

boost::shared_ptr<T[]>

boost::array

C言語のPOD array[size];//sizeはint型変数

*1:前にもやった覚えがあるがhttp://d.hatena.ne.jp/studiokingyo/20040916

*2:Plane Old Data : C言語でも使える型の事 int char double structなど

uskzuskz 2010/07/26 16:08 reserveしてpush_back

studiokingyostudiokingyo 2010/07/26 18:57 チェック早いですね。POD配列のインターフェースと同じという利点があるのですが、reserve版も用意しておきます。

2010-06-16 ライブラリアン通信 VOL.61

[][]メモリ管理、mallocの説明集 メモリ管理、mallocの説明集 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク メモリ管理、mallocの説明集 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

 これはmalloc大好きな私にとっての宝物。何故今まで見つけられなかったのだろうと思う。多分、見つけたけど忘れていたのだと思う。

http://www.ibm.com/developerworks/jp/linux/library/l-memory/


[][][]今月チェックしたライブラリおよび技術情報 今月チェックしたライブラリおよび技術情報 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク 今月チェックしたライブラリおよび技術情報 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

2010-06-01 先月のまとめ

[][]今だからこそ言えるタスク処理の最終的な印象 今だからこそ言えるタスク処理の最終的な印象 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク 今だからこそ言えるタスク処理の最終的な印象 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント


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

 しかし、タスク処理にはどこからがタスク処理というかといった線引きが無いような気がする。vector<vector<task> > task{ virtual proc()};程度であればそこまで使用しにくいという事はないのではないかと・・・ 何故、今の時代にわざわざタスク処理?

 一時期、タスク処理が分かれば酷い状態遷移のスパゲッティ コードを解決出来るだろうと思い、大変苦労して調べた覚えがある。確かに分かりやすくなったけど、無駄に関数やクラスが増えてそれはそれで別の問題点が出てきた。

 要は状態遷移表をしっかりとコードに書き下す事が出来れば何も問題なくプログラムは動く。だから、行おうとする処理のアプローチが諸所の条件と勘案して優れているか否かによって後世に残せる上手いコードになるかどうかという事だ。

 今でこそタスク処理は復古されているが、2000年代前半ではタスク処理を解説している絶版になっていない書籍は皆無で、解説しているWebサイトは3つほどであった。なお、すべてのタスク処理の概念を実装しているソースコードも皆無であった。

 そんななか、やっとタスク処理の解説がソースコード付きで解説されたのがやね本2だった。http://amzn.to/cpdDgk そんな気がする。やっとの事で全体を把握できたタスク処理だが私の知的好奇心を満たすだけで私が作った有用なソフトウェアには一切使われなかった。


[][][]行番号は紙媒体で無い限り無意味だ。 行番号は紙媒体で無い限り無意味だ。 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク 行番号は紙媒体で無い限り無意味だ。 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

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

[]Windowsを起動が遅く主な症状はHDDがガリガリと無意味アクセスしっぱなしの時の対応 Windowsを起動が遅く主な症状はHDDがガリガリと無意味にアクセスしっぱなしの時の対応 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク Windowsを起動が遅く主な症状はHDDがガリガリと無意味にアクセスしっぱなしの時の対応 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

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

 いじくるツールの「Windows NT系設定」−>「Windows終了時にページングファイルを削除する」のチェックを外す。

[]( coLinux VS VMWare VS VirtualPC VS VirtualBox ) for Linux client ( coLinux VS VMWare VS VirtualPC VS VirtualBox )    for Linux client - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク ( coLinux VS VMWare VS VirtualPC VS VirtualBox )    for Linux client - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

coLinux と VMWare と VirtualPC と VirtualBox でLinuxのクライアントOSをどの仮想化ソフトで動かすのか迷っている方へ

問答無用でVirtualBoxを使いましょう!

 

2010-04-27 ライブラリアン通信 VOL.60

[][][]最近チェックしたライブラリ最近チェックしたライブラリ群 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク 最近チェックしたライブラリ群 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

 ライブラリを巡る環境はここ数年で本当に良くなった。ビジネスロジックを組むだけで*1プログラミングできる世界は大変心地が良い。

 前回紹介と重複している事もあるかもしれないが、許して欲しい。

とりあえず、今日はここまで。

[][]uint32もuint32_tも面倒だ。u32で十分。 uint32もuint32_tも面倒だ。u32で十分。 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク uint32もuint32_tも面倒だ。u32で十分。 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

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

*1ビジネスロジックを組む事すら億劫なのだが・・・

2010-04-13 VCでRelease設定で~allocatorがエラーになる時

[][][][]VC6 Tips / VCでReleaseの設定でSTLPortを使用し、deallocateにてHeap corruption detected at ... とエラーになる場合対処方法 VC6 Tips / VCでReleaseの設定でSTLPortを使用し、deallocateにてHeap corruption detected at ... とエラーになる場合の対処方法 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク VC6 Tips / VCでReleaseの設定でSTLPortを使用し、deallocateにてHeap corruption detected at ... とエラーになる場合の対処方法 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

VCでReleaseの時にのみ

Heap corruption detected at 009D1090
HEAP[foo.exe]: Invalid Address specified to RtlFreeHeap(

エラーがデバッガに表示されたら

STLPortを使用している場合

#define _STLP_NO_OWN_IOSTREAMS

を宣言すればよい。

 昔、よく嵌っていたのだが、数年ぶりにこのエラーになって対処方法を忘れていたのでメモ。

2010-04-03 ビット単位でソートする

[][][]ビット単位でソートする。 ビット単位でソートする。 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク ビット単位でソートする。 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

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       / inssort_reverse       / 10238731538.000000
7       / inssort       / 12898124097.000000
続行するには何かキーを押してください . . .

uint32型の変数*1をソートしたいと思う。しかし、ある程度の順番でよい。という事で考えたのはビット単位で仕分けする方法。約4.64倍速い。

しかし最初からつの配列に入れなければ良いじゃないかという話。なお、完璧にソートしたい場合はquicksortのみでソートした方が速い。つまりこのプログラムは使用用途の無い駄作である



struct QSN{



typedef std::vector<int> ct;

	ct x[32];

	void reserve(size_t siz){
		for(int i=0;i<32;i++)
			x[i].reserve(siz);
	}
	void qsn(int n,int *a){

		int i,j;
		//ct x[32];
		for(i=0;i<n;i++){
			size_t ost = 32 - dkcNLZ((uint32)a[i]);
			x[ost].push_back(a[i]);
		}
/*		for(i=0;i<32;i++)
			quicksort<int>(x[i].size(),&(x[i][0]));

		for(i=0,j=0;i<32;i++){
			for(ct::iterator it = x[i].begin();it != x[i].end();it++){
				a[j] = (*it);
				j++;
				if(j < n){}else{break;}
			}
		}
*/
	}

};

*1:unsigned int (32bit環境)

 
Program | Debug | dKingyo Utility Toolkit | library | D言語 | 御本とか | 備忘録 | テクニック | WayBack | 格言 | 英語 | 他力本願 | news | software |

デースケドガー