したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

管理人の独り言(プログラミング関連)

1みみず★:2008/08/10(日) 23:28:15
あまりにもプログラミングの内容が増えすぎた。
よって隔離スレの中を更に隔離。

1264774さん:2009/01/17(土) 19:26:32 ID:fHt2HuPQ0
Headline - [Programming][ASP.NET][Ajax]ASP.NET AJAXを使って簡単なWebサービスを実装する方法
file:///H:/Add_Soft/PortableSleipnir/settings/All%20Users/headlinereader/temp/hdesc26.html

1265774さん:2009/01/17(土) 19:26:53 ID:fHt2HuPQ0
ASP.NET AJAXを使って簡単なWebサービスを実装する方法 - Qu記(仮)
http://d.hatena.ne.jp/quolc/20090116/1232117245
-----
こっちだ

1266774さん:2009/01/17(土) 21:20:32 ID:fHt2HuPQ0
MSXML2.ServerXMLHTTPはHTTPリクエストの結構高レベルなAPIなのだけれども、任意のデータを送れない。
今はスクリプトでPOP3クライアント、若しくはIMAPクライアントを作りたいので、もっと低レベルなAPIが欲しいところだ。
もしかしてMSXML2以下にはそのようなものが有るのかもしれないが、そんなこと知ったこった無い。
どのようにデータを収集すればいいのだろうか・・・

1267774さん:2009/01/17(土) 21:25:26 ID:fHt2HuPQ0
XMLHttpRequest を作成する (mixi 日記アーカイブ)
http://loafer.jp/mixi/diary/class.xsp?2006-07-20-22-26
---
MSXML は XMLHttpRequest の実装を 2 種類用意している。
それは、「XMLHTTP」と「ServerXMLHTTP」だ。

XMLHTTP は、WinInet と呼ばれる、
従来から長く使われている API を基盤とした実装だ。
WinInet はキャッシュや Cookie の管理機能も提供するので、
Internet Explorer などをはじめとする、
数多くのプログラムは WinInet を利用している。

問題は、WinInet を使うプログラムが、
キャッシュや Cookie を共有していることだ。

XMLHTTP を使って自動化プログラムを作成した場合、
利用者が意図しないところで、
Cookie や履歴の情報を使用してしまう危険があるし、
逆に自動化プログラムがアクセスした情報が、
利用者の履歴として残ってしまう問題もある。
(まあ、ある程度は制御できるのだが)

ServerXMLHTTP は、比較的新しい
WinHTTP と呼ばれる API を基盤とする実装だ。
WinHTTP は、当初はサーバ間の HTTP 通信のために作成され、
WinInet よりもセキュリティ面で安全なように、
Cookie やキャッシュなどの情報は一切共有しない。
-----
ここまで引用。
面白い。面白い。

1268774さん:2009/01/17(土) 22:48:16 ID:fHt2HuPQ0
The raw socket in program on the JScript (VBScript)
http://www.board74.ru/gui_for_script/dialog/socket.html
-----
これを見つけたんだけれども、TCPIPってどこで定義されているんだ?

1269774さん:2009/01/18(日) 20:59:30 ID:fHt2HuPQ0
SytleEdior然り、Cyclone然り、読み込みが終わって、レンダリングが終わった後に処理を行っているのが気になる。
出来るならば、プロクソミトロンみたいに、処理を仲介してもらった方が良い。
文字列の処理の方がレンダリングの時間に比べたら短いと思うからである。
出来ないならば、プロクソミトロンの代替にはならない。間違いない。
この際、Sleipnirにプロクソミトロンを取り入れるようなプラグインを使った方が移行が楽な気もする。
ニコ厨を引き寄せる材料にもなるかもしれない。
その設定の一覧とかを出力して簡単にウェブ上から取り入れられるようにすればなおよい。

1270774さん:2009/01/18(日) 21:05:59 ID:fHt2HuPQ0
全くの未確認情報によれば、
-----
809 :名無し~3.EXE:2009/01/18(日) 17:11:19 ID:apRdm+V/
>>802
いまSDKのクローズドテストやってる。
今月末に2.9と合わせて公開予定だそうだ。
かなり充実した出来になっているので、プラグイン作りたい人は期待していいかも。
---
Sleipnir Part215
http://pc11.2ch.net/test/read.cgi/win/1231176311/809n
-----
とのことなので、ちょっと期待。
だが、入試勉強を加速しなければいけない。
ついに三百六十五日を切った。
後、三百六十四日か?

1271774さん:2009/01/18(日) 22:00:43 ID:fHt2HuPQ0
Web屋のためのVim設定・Tipsまとめ 1/2 - ナレッジエース
http://blog.blueblack.net/item_340

1272774さん:2009/01/18(日) 22:03:09 ID:fHt2HuPQ0
vim の text-object をより便利に使えるプラグイン - surround.vim - 川o・-・)<2nd life
http://d.hatena.ne.jp/secondlife/20061225/1167032528
-----
vimつえええええええええええええええええええええええ

1273774さん:2009/01/18(日) 22:10:20 ID:fHt2HuPQ0
JOI2007本選 問題1@C++ - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090118/1232272717
JOI2007本選 問題5@C++ - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090118/1232271387
-----
5より4の方が難しいと思うのは僕だけですか?
1の発想は浮かばなかったorz

1274774さん:2009/01/18(日) 22:11:26 ID:fHt2HuPQ0
JOI2007本選 問題1@C++ - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090118/1232272717
JOI2007本選 問題2@C++ - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090115/1232014913
JOI2007本選 問題3@C++ - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090115/1232020162
JOI2007本選 問題4@C++ - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090116/1232112087
JOI2007本選 問題5@C++ - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090118/1232271387
-----
まとめ。

1275774さん:2009/01/19(月) 19:49:14 ID:fHt2HuPQ0
IPA職員に停職3カ月の懲戒処分 「Winny」「Share」情報流出で - ITmedia News
http://www.itmedia.co.jp/news/articles/0901/19/news085.html
-----
軽い、軽すぎる。

1276774さん:2009/01/19(月) 23:22:47 ID:fHt2HuPQ0
同年代の凄い人々 - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090119/1232369410

1277774さん:2009/01/19(月) 23:48:14 ID:fHt2HuPQ0
glutにはThreadの関数が無い。
何故だ。
Mutexとか用意しなければならないからか。

1278774さん:2009/01/20(火) 20:41:28 ID:fHt2HuPQ0
フィボナッチ数列に関する3つのアルゴリズムの速度比較@Ruby - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090120/1232446370
----
リアルにlog(n)で解ける理由分からなくて、俺涙目w

1279774さん:2009/01/20(火) 20:42:52 ID:fHt2HuPQ0
Matrixのコードを読めばいいか。

1280774さん:2009/01/20(火) 20:44:40 ID:fHt2HuPQ0
発見。
-----
def ** (other)
if other.kind_of?(Integer)
x = self
if other <= 0
x = self.inverse
return Matrix.identity(self.column_size) if other == 0
other = -other
end
z = x
n = other - 1
while n != 0
while (div, mod = n.divmod(2)
mod == 0)
x = x * x
n = div
end
z *= x
n -= 1
end
z
elsif other.kind_of?(Float) || defined?(Rational) && other.kind_of?(Rational)
Matrix.Raise ErrOperationNotDefined, "**"
else
Matrix.Raise ErrOperationNotDefined, "**"
end
end

1281774さん:2009/01/20(火) 20:50:57 ID:fHt2HuPQ0
ああ!
思い出した。
2でどんどんと割っていけば良いじゃん!(分かる人にしか分からない。)

1282774さん:2009/01/20(火) 20:52:57 ID:fHt2HuPQ0
2^23 = (2 ^ (2 * 2 * 2 * 2)) * (2 ^ (2 * 2)) * (2 ^ 2) * 2

こんな感じか。

1283774さん:2009/01/20(火) 20:55:24 ID:fHt2HuPQ0
つまり、2の四乗を計算するんだったら、2を四回そのままかけるんじゃなくて、2の二乗を二乗した方が計算が少なくて済むね!っていうこと。

メモリを食わないようにするんだったら、結構時間かかる気がする。
そんなこと無いか?

どちらにせよ、一度二進法に展開してごにょごにょ。

1284774さん:2009/01/20(火) 22:09:09 ID:fHt2HuPQ0
こうか。こうか。
汎用的な1の作り方が分からないって言う。
だから、s / sにしてやった。
まあこれなら0^0とかやったらあぼーんするので妥当か。
-----
template<typename T>
T pow(const T &s, unsigned int o){
if(o == 0){
return s / s;
}else if(o == 1){
return s;
}

T b = s, r = s / s;

while(o){
if(o & 0x00000001){
r *= b;
}
b *= b;
o /= 2;
}

return r;
}

1285774さん:2009/01/20(火) 22:12:13 ID:fHt2HuPQ0
0.0 / 0.0 はエラーにならないね。
まあ精度の問題もあるしね。

1286774さん:2009/01/21(水) 16:34:38 ID:fHt2HuPQ0
Eclipse 3.4プラグインのインストール/設定方法 〜Eclipse 3.4入門〜 :CodeZine
http://codezine.jp/article/detail/3446

1287774さん:2009/01/21(水) 16:36:19 ID:fHt2HuPQ0
>>1285
エラーにならないというのは、例外にならないということです。

1288774さん:2009/01/21(水) 18:09:19 ID:fHt2HuPQ0
CreateAcceleratorTable 関数
http://msdn.microsoft.com/ja-jp/library/cc410683.aspx
-----
アクセラレータは動的に生成できるようだ。
リソースは全て動的に生成できるみたいだなあ。
まあ、リソースがどのように管理されているかは知らないのだが。

1289774さん:2009/01/21(水) 18:10:30 ID:fHt2HuPQ0
typedef struct tagACCEL {
#ifndef _MAC
BYTE fVirt; /* Also called the flags field */
WORD key;
WORD cmd;
#else
WORD fVirt; /* Also called the flags field */
WORD key;
DWORD cmd;
#endif
} ACCEL, *LPACCEL;

1290774さん:2009/01/21(水) 18:10:55 ID:fHt2HuPQ0
typedef struct tagPAINTSTRUCT {
HDC hdc;
BOOL fErase;
RECT rcPaint;
BOOL fRestore;
BOOL fIncUpdate;
BYTE rgbReserved[32];
} PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT;

1291774さん:2009/01/21(水) 18:33:59 ID:fHt2HuPQ0
CopyAcceleratorTable 関数
http://msdn.microsoft.com/ja-jp/library/cc410676.aspx
-----
HACCELからACCEL構造体への変換。エントリの数を調べることも可。

1292774さん:2009/01/21(水) 18:38:46 ID:fHt2HuPQ0
GetDoubleClickTime 関数
http://msdn.microsoft.com/ja-jp/library/cc364628.aspx

1293774さん:2009/01/21(水) 18:54:16 ID:fHt2HuPQ0
TTBase - 単体では 常駐するだけのソフト
http://ttbase.sourceforge.jp/
-----
TTBASEとか言うソフトが有るんだ。
俺がいたずら用に作ったようなソフトと一緒だなw
発想のレベルが低いと言うことか。

1294774さん:2009/01/21(水) 20:38:14 ID:fHt2HuPQ0
Subversionの基礎練習
http://www.hyuki.com/techinfo/svninit.html
-----
遊びたい。

1295774さん:2009/01/21(水) 21:00:32 ID:fHt2HuPQ0
C:.
│ format
│ README.txt

├─conf
│ authz
│ passwd
│ svnserve.conf

├─db
│ │ current
│ │ format
│ │ fs-type
│ │ txn-current
│ │ txn-current-lock
│ │ uuid
│ │ write-lock
│ │
│ ├─revprops
│ │ └─0
│ │ 0
│ │
│ ├─revs
│ │ └─0
│ │ 0
│ │
│ ├─transactions
│ └─txn-protorevs
├─hooks
│ post-commit.tmpl
│ post-lock.tmpl
│ post-revprop-change.tmpl
│ post-unlock.tmpl
│ pre-commit.tmpl
│ pre-lock.tmpl
│ pre-revprop-change.tmpl
│ pre-unlock.tmpl
│ start-commit.tmpl

└─locks
db-logs.lock
db.lock

1296774さん:2009/01/21(水) 21:17:43 ID:fHt2HuPQ0
取り敢えず、書いてあることは一通りやってみた。
面白い。
svn checkout URI
だけ使えれば、十分実用には耐えられる。

1297774さん:2009/01/21(水) 21:25:51 ID:fHt2HuPQ0
svn checkout URI DirectoryName
でURIの内容をDirectoryNameに貰ってくる。一番最初にやる。

svn update
で更新された内容を貰ってくる。作業前にはやった方が良い。

svn commit -m "comment"
更新した内容を送信する。
これくらい?

svn mkdir directoryname
でsvnの管理に追加しながらフォルダを作成。
ファイルを追加する方法が有るかもしれないが分からない。

svn status
ワークコピーとサーバーを比べてコミットしてないファイルが有るかとか、svnで管理していないファイルが無いかとかそういうのを出力してくれる。

svn add filename
svnの管理下にfilenameを置く。

-----
俺の感覚的にはこんな感じ。

1298774さん:2009/01/22(木) 20:55:20 ID:fHt2HuPQ0
http://extensions.tabbrowser.jp/plugins/files/spec100/UserActionExtension.si
-----
AddFolderがおかしい。

1299774さん:2009/01/24(土) 20:06:52 ID:fHt2HuPQ0
漸く情報オリンピックから資料が送られてきた。
音沙汰無いのは怖すぎる。

1300774さん:2009/01/24(土) 21:32:12 ID:fHt2HuPQ0
これからC++でlog用の関数を作るときは、
-----
void log(std::function<void (void)> func){
#define DEBUG
func();
#ifdef
}
-----
とすれば良いんですね。分かります。
-----
void log(std::std::reference_closure<void (void)> func){
//同様
}
-----
の方が最適化されやすいか?
実際に試してみないと分からんな。

1301774さん:2009/01/24(土) 21:36:03 ID:fHt2HuPQ0
呼び出す時は、
-----
log([](){
return "やらないか?";
});
-----
みたいに?
じゃあ、void (void)
じゃなくて、
std::string (void)
だわ。

1302774さん:2009/01/24(土) 21:40:48 ID:fHt2HuPQ0
これならば、文字列の生成が、Release版の時に行われなくなっておいしい。
まあこの例だと全く良いところが無いのだが。
でも文字列生成ならば普通にprintf使えばよくね?

std::string (void)
じゃなくて
std::string && (void)
の方が良いですね。はい。

1303774さん:2009/01/24(土) 22:56:01 ID:fHt2HuPQ0
俺は正確なtemplateの仕様を理解してなかったようだ。

C++ Labyrinth
http://www.fides.dti.ne.jp/~oka-t/cpp-labyrinth.html

1304774さん:2009/01/24(土) 23:34:35 ID:fHt2HuPQ0
うーん。
ゲームとか作るんだったら、プログラミング言語(インタプリタ)を書けないといけないのかな?
そっちの方が拡張が楽なようだが。
だけれども、毎回文字列を解析していたら時間がかかるし、ILを使うのもやっぱり重くなりそうだ。

C/C++と同じぐらいの速度が出て簡単にプログラムが書けるようなものが有ったらとても嬉しいのだが。

1305774さん:2009/01/25(日) 14:10:14 ID:fHt2HuPQ0
プロジェクトを実行しようとしているときにエラーが発生しました。デバックを開始できません。 結合ハンドルが無効です。
http://blogs.wankuma.com/trapemiya/archive/2005/12/19/20096.aspx
-----
これでC#がデバッグできるようになった。
全然出来なくてC#を敬遠していたがこれで開発が出来るようになるだろう。きっと。

1306774さん:2009/01/25(日) 17:04:11 ID:fHt2HuPQ0
glutでシューティングゲームは作れるのだろうか。
無理か?
いや可能だろう。
だが、60fpsに合わせる方法が分からない。
出来ることならばタイマーは使いたくないのだが・・・
無理か。

1307774さん:2009/01/25(日) 17:08:11 ID:fHt2HuPQ0
今思えば、C++0xではthreadが使えるじゃん。
だけれどもSleepはなしですか?

1308774さん:2009/01/25(日) 17:13:10 ID:fHt2HuPQ0
あった。あった。

std::this_thread::sleep_for(std::chrono::milliseconds(10));

タイプ量大杉だろwwwwww

1309774さん:2009/01/25(日) 17:20:13 ID:fHt2HuPQ0
言語仕様にもっと高性能タイマーが有ると便利なのだがなあ。

1310774さん:2009/01/25(日) 17:34:19 ID:fHt2HuPQ0
くわあああああああああああああああああああああああああああああああああ
なんだかバージョン管理ソフトが無性に利用したくなって、物凄くVisualStudioが見劣りするぜ!
viは俺的に使いづらいので、Emacsでも使ってみるか?
Windows版有るのか?

1311774さん:2009/01/25(日) 17:35:53 ID:fHt2HuPQ0
くわああああああああああああああああああああ
普通のフリーソフトみたいに落とさせろ!
そっちのバージョン管理とかコンパイルとかやりたくねええええええええええええええんだよ!!!!

1312774さん:2009/01/25(日) 17:38:47 ID:fHt2HuPQ0
VC++からコマンドプロンプトが直接利用できないのがいけないんだよ!
もっと低レベルにしろ、こんにゃろう。

1313774さん:2009/01/25(日) 17:46:18 ID:fHt2HuPQ0
暫くの間は、VC++からおさらばしよう。

1314774さん:2009/01/25(日) 17:52:58 ID:fHt2HuPQ0
>>1308
間違いなく
void thread_sleep(unsigned int time){
std::this_thread::sleep_for(std::chrono::milliseconds(time));
}
という関数を皆が書くだろう。

1315774さん:2009/01/25(日) 17:55:44 ID:fHt2HuPQ0
あるzipを解凍していて、残り20時間とか出ると萎えるわ・・・

1316774さん:2009/01/25(日) 18:10:23 ID:fHt2HuPQ0
と思ったら、普通に十分ぐらいで解凍できたって言う

1317774さん:2009/01/25(日) 18:15:28 ID:fHt2HuPQ0
emacsを使う計画が、Eclipseに転がり込んでいる件について。

1318774さん:2009/01/25(日) 18:19:12 ID:fHt2HuPQ0
便利になったものだ。

1319774さん:2009/01/25(日) 19:59:08 ID:fHt2HuPQ0
漸くEclipseでコンパイルからデバッグに持って行けるようになった。
かなり時間かかった。
いやはや・・・

1320774さん:2009/01/25(日) 20:07:49 ID:fHt2HuPQ0
Eclipse重すぎる。
ポータブルハードディスクに入れているためか。

1321774さん:2009/01/25(日) 20:15:55 ID:fHt2HuPQ0
これで、本戦のうちの一つの環境を手に入れることを出来たぜ。

1322774さん:2009/01/25(日) 23:50:04 ID:fHt2HuPQ0
逆汗したのをC++ソースに落とした。
-----
bool ExpendSar(FILE *fp, int *p/*?*/){
//2112bytes Allocation
FILE *l4 = 0;
void *l3 = 0;
BYTE l1_3 = 0;

wchar_t l528[260];
GetTempPathW(260, l528);

char l398[1024];
if(!fgets(l398, 1024, fp)) return false;

//ebx == 1

for(;;){
if(!strspn(l398, "CheckSum=")){
int l2 = atol(l398);

wchar_t l142[260/*正確には不明*/];
wsprintfW(l142, L"%s/Sleipnir_Sar_Temp_%08d", l528, *p);

if(FMisc::IsWinNT()){
if(!FMisc::IsFileExist(l142)){
SECURITY_ATTRIBUTES sa;
memset(&sa, 0, sizeof(sa));

SECURITY_DESCRIPTOR sd;

InitializeSecurityDescriptor(&sd, 1);
SetSecurityDescriptorDacl(&sd, 1, 0, 1);

DWORD l5 = 0;

HANDLE hFile = CreateFileW(
l142,
GENERIC_WRITE | GENERIC_ALL,
FILE_SHARE_READ | FILE_SHARE_WRITE,
&sa,
CREATE_ALWAYS,
FILE_ATTRIBUTE_ARCHIVE,
NULL
);

FlushFileBuffers(hFile);
CloseHandle(hFile);
}
}

FILE *l4 = _wfopen(l142, L"wb");
if(!cfp){
if(l3) free(l3);

return false;
}

l3 = malloc(l2);

if(!l3){
if(l4) fclose(l4);
if(l3) free(l3);

return false;
}

if(fread(l3, 1, l2, fp) != l2){
if(l4) fclose(l4);
if(l3) free(l3);

return false;
}

if(fwrite(l3, 1, l2, l4) != l2){
if(l4) fclose(l4);
if(l3) free(l3);

return false;
}

free(l3);
fclose(l4);

if(fread(l398, 1, 1, fp) != 1){
if(l4) fclose(l4);
if(l3) free(l3);

return false;
}

l1_3 += l2; //MOV AL,BYTE PTR SS:[LOCAL.2]
//ADD BYTE PTR SS:[LOCAL.1+3],AL
++(*p);

if(!fgets(l398, 1024, fp)){
if(l4) fclose(l4);
if(l3) free(l3);

return false;
}

}else{
if(l1_3 != atol(l398 + 9)){
if(l4) fclose(l4);
if(l3) free(l3);

return false;
}else{
return true;
}
}
}
}

1323774さん:2009/01/26(月) 19:54:24 ID:fHt2HuPQ0
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <cctype>
#include <climits>

#include <windows.h>

int main(int argc, char **argv){
FILE *in = std::fopen("input.sar", "rb");
if(!in) return -1;

try{
unsigned char checksum = 0;

for(;;){
int c = std::fgetc(in);
if(c == EOF){
throw std::exception("fgetcがEOFを返した");
}
if(std::isdigit(c)){
//atol的な何か。
unsigned int size = 0;
do{
if(UINT_MAX / 10 - (c - '0') < size){
throw std::exception("オーバーフロー");
}
size = size * 10 + (c - '0');
c = std::fgetc(in);
if(c == EOF){
throw std::exception("fgetcがEOFを返した");
}
}while(std::isdigit(c));

checksum += size;

if(c != 0x0A){
throw std::exception("sar形式のファイルでない");
}

std::fpos_t fpos;
if(std::fgetpos(in, &fpos) != 0){
throw std::exception("fgetpos() Error");
}
fpos += size;
if(std::fsetpos(in, &fpos) != 0){
throw std::exception("fsetpos() Error");
}

c = std::fgetc(in);

if(c != 0x0A){
throw std::exception("sar形式のファイルでない");
}
}else{
if(c == 'C'){
char cs[8];
std::fread(cs, 1, 8, in);
if(std::memcmp(cs, "heckSum=", 8) == 0){
unsigned char f_cs = 0;
for(;;){
c = std::fgetc(in);
if(c == EOF){
throw std::exception("fgetsがEOFを返した");
}
if(!std::isdigit(c)){
break;
}
if(UCHAR_MAX / 10 - (c - '0') < f_cs){
throw std::exception("オーバーフロー");
}
f_cs = f_cs * 10 + (c - '0');
}
if(c != 0x0A){
throw std::exception("sar形式のファイルでない");
}

//最後に実行される

if(checksum == f_cs){
std::cout << "OK!" << std::endl;
}else{
std::cout << "NG!" << std::endl;
}

break;
}else{
throw std::exception("sar形式のファイルでない");
}
}else{
throw std::exception("sar形式のファイルでない");
}
}
}
}catch(std::exception &e){
std::cerr << e.what() << std::endl;
std::fclose(in);
return -2;
}
}

1324774さん:2009/01/27(火) 19:46:12 ID:fHt2HuPQ0
Emacs初心者向け記事へのリンク集 - ’(rubikitch wanna be (a . lisper))
http://d.hatena.ne.jp/rubikitch/20090127/emacsnewbies

1325774さん:2009/01/27(火) 20:44:56 ID:fHt2HuPQ0
さっき初めてC言語にバイナリサーチの関数が有ることを知った。

1326774さん:2009/01/27(火) 23:04:59 ID:fHt2HuPQ0
書いたけれども、意味がない
-----
#include <windows.h>
#include <map>
#include <vector>
#include <algorithm>
#include <boost/utility.hpp>

class SolidBrushManager : boost::noncopyable{
private:
std::map<COLORREF, HBRUSH> buff;

~SolidBrushManager(){
std::map<COLORREF, HBRUSH>::iterator it = buff.begin();
for(; it != buff.end(); ++it){
DeleteObject((*it).second);
}
}

public:
static
SolidBrushManager &
GetInstance(){
static SolidBrushManager sbm;
return sbm;
}

HBRUSH
GetBrush(BYTE r, BYTE g, BYTE b){
COLORREF color = RGB(r, g, b);

std::map<COLORREF, HBRUSH>::iterator it = buff.find(color);
if(it != buff.end()){
return (*it).second;
}

HBRUSH hBrush = CreateSolidBrush(color);
if(hBrush){
buff.insert(std::make_pair(color, hBrush));
}
return hBrush;
}
};

1327774さん:2009/01/27(火) 23:11:14 ID:fHt2HuPQ0
暫くの間、プログラミングはやめよう。

1328774さん:2009/01/28(水) 18:49:36 ID:fHt2HuPQ0
【ハウツー】Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (1) google-perftoolsとは | エンタープライズ | マイコミジャーナル
http://journal.mycom.co.jp/articles/2009/01/27/perftools/index.html

1329774さん:2009/01/28(水) 21:13:22 ID:fHt2HuPQ0
新しいgccを入れたので、以前のバージョンのgccでコンパイルするには、
-----
gcc -V 3.4.5 -b mingw32
-----
とする必要がある。

1330774さん:2009/01/28(水) 21:16:06 ID:fHt2HuPQ0
何故これのコンパイルが通らないのかが、今の僕には理解できない。
-----
C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc5rATQY.o:test.cpp:(.text+0x19): undefined refe
rence to `std::cout'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc5rATQY.o:test.cpp:(.text+0x1e): undefined refe
rence to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <st
d::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char
const*)'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc5rATQY.o:test.cpp:(.text+0x26): undefined refe
rence to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std
::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc5rATQY.o:test.cpp:(.text+0x2e): undefined refe
rence to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc5rATQY.o:test.cpp:(.text+0x47): undefined refe
rence to `std::ios_base::Init::~Init()'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc5rATQY.o:test.cpp:(.text+0x6a): undefined refe
rence to `std::ios_base::Init::Init()'
collect2: ld returned 1 exit status

1331774さん:2009/01/28(水) 21:49:32 ID:fHt2HuPQ0
-lstdc++
をつけるか、
g++
でコンパイルすれば良いみたい。

1332774さん:2009/01/28(水) 21:54:44 ID:fHt2HuPQ0
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Owner>cd "C:\Documents and Settings\Owner\デスクトップ
\"

C:\Documents and Settings\Owner\デスクトップ>gcc
gcc: no input files

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0xd): undefined refer
ence to `std::string::size() const'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x60): undefined refe
rence to `std::string::operator[](unsigned int) const'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x9e): undefined refe
rence to `std::string::operator[](unsigned int) const'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0xcc): undefined refe
rence to `std::string::operator[](unsigned int) const'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x133): undefined ref
erence to `std::cout'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x138): undefined ref
erence to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <s
td::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char
const*)'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x140): undefined ref
erence to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, st
d::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x148): undefined ref
erence to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x171): undefined ref
erence to `std::ios_base::Init::Init()'
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc1A8umX.o:test.cpp:(.text+0x18c): undefined ref
erence to `std::ios_base::Init::~Init()'
collect2: ld returned 1 exit status

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp libstdc++
gcc: libstdc++: No such file or directory

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp libstdc++
gcc: libstdc++: No such file or directory

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp -llibstdc+
+
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot fin
d -llibstdc++
collect2: ld returned 1 exit status

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp -lstdc++

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp -lstdc++
test.cpp: In function `int main(int, char**)':
test.cpp:8: error: no matching function for call to `getline(std::istream&, std:
:string)'
C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/basic_s
tring.h:2362: note: candidates are: std::basic_istream<_CharT, _Traits>& std::ge
tline(std::basic_istream<_CharT, _Traits>&, std::basic_string<_CharT, _Traits, _
Alloc>&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::al
locator<char>]

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp -lstdc++

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe test.cpp -lstdc++

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe -O3 test.cpp -lstdc
++

C:\Documents and Settings\Owner\デスクトップ>gcc -o test.exe -O3 -Wall test.cpp
-lstdc++

C:\Documents and Settings\Owner\デスクトップ>

1333774さん:2009/01/28(水) 21:55:17 ID:fHt2HuPQ0
C:\Documents and Settings\Owner\デスクトップ>type test.cpp
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char **argv){
cout << "test" << endl;
string str;
getline(cin, str);
}

1334774さん:2009/01/28(水) 21:59:27 ID:fHt2HuPQ0
別に全てをCUIでやる必要なんて無くて、CUIの方が早くできることをCUIでやればいいのだ。
微妙に違う適材適所と言うことだ。適地適作。

1335774さん:2009/01/28(水) 22:30:38 ID:fHt2HuPQ0
gcc -o test.exe -O3 -Wall test.cpp -lstdc++
-----
-lは後ろに付けたものをリンクするようである。
C++をgccでコンパイルするには必要。
g++では不要。

1336774さん:2009/01/28(水) 22:37:26 ID:fHt2HuPQ0
恐らく、g++は-lstdc++とかを付けて呼び出しているだけだ。
と某所に書かれていた。
ああ、emacs使いたい・・・

1337774さん:2009/01/28(水) 23:25:38 ID:fHt2HuPQ0
emacs使いにくい。
vimを少しでも触ったためか・・・

1338774さん:2009/01/29(木) 18:35:57 ID:fHt2HuPQ0
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <cctype>
#include <climits>

#include <windows.h>

int main(int argc, char **argv){
FILE *in = std::fopen("input.sar", "rb");
if(!in) return -1;

try{
unsigned char checksum = 0;

for(;;){
int c = std::fgetc(in);
if(c == EOF){
throw std::exception("fgetcがEOFを返した");
}
if(std::isdigit(c)){
//atol的な何か。
unsigned int size = 0;
do{
if(UINT_MAX / 10 - (c - '0') < size){
throw std::exception("オーバーフロー");
}
size = size * 10 + (c - '0');
c = std::fgetc(in);
if(c == EOF){
throw std::exception("fgetcがEOFを返した");
}
}while(std::isdigit(c));

checksum += size;

if(c != 0x0A){
throw std::exception("sar形式のファイルでない");
}

std::fpos_t fpos;
if(std::fgetpos(in, &fpos) != 0){
throw std::exception("fgetpos() Error");
}
fpos += size;
if(std::fsetpos(in, &fpos) != 0){
throw std::exception("fsetpos() Error");
}

c = std::fgetc(in);

if(c != 0x0A){
throw std::exception("sar形式のファイルでない");
}
}else{
if(c == 'C'){
char cs[8];
std::fread(cs, 1, 8, in);
if(std::memcmp(cs, "heckSum=", 8) == 0){
unsigned char f_cs = 0;
for(;;){
c = std::fgetc(in);
if(c == EOF){
throw std::exception("fgetsがEOFを返した");
}
if(!std::isdigit(c)){
break;
}
if(UCHAR_MAX / 10 - (c - '0') < f_cs){
throw std::exception("オーバーフロー");
}
f_cs = f_cs * 10 + (c - '0');
}
if(c != 0x0A){
throw std::exception("sar形式のファイルでない");
}

//最後に実行される

if(checksum == f_cs){
std::cout << "OK!" << std::endl;
}else{
std::cout << "NG!" << std::endl;
}

break;
}else{
throw std::exception("sar形式のファイルでない");
}
}else{
throw std::exception("sar形式のファイルでない");
}
}
}
}catch(std::exception &e){
std::cerr << e.what() << std::endl;
std::fclose(in);
return -2;
}
}

1339774さん:2009/01/29(木) 18:49:18 ID:fHt2HuPQ0
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <algorithm>
#include <vector>

#include <windows.h>

int main(int argc, char **argv){
std::vector<int> vec1, vec2;

for(int i = 0; i < 100; ++i){
vec1.push_back(i);
}

std::copy(vec1.begin(), vec1.end(), std::back_insert_iterator<std::vector<int> >(vec2));
}

1340774さん:2009/01/29(木) 20:54:05 ID:fHt2HuPQ0
gist: 54503 - GitHub
http://gist.github.com/54503

1341774さん:2009/01/29(木) 21:00:59 ID:fHt2HuPQ0
[JS]わずか「12文字」でIEを判別するスクリプト | コリス
http://coliss.com/articles/build-websites/operation/javascript/js-detecting-ie-in-12-bytes.html
-----
IE='\v'=='v'
これは酷い・・・

1342774さん:2009/01/29(木) 21:03:40 ID:fHt2HuPQ0
The Spanner - Detecting browsers javascript hacks
http://www.thespanner.co.uk/2009/01/29/detecting-browsers-javascript-hacks/
-----
//Firefox detector 2/3 by DoctorDan
FF=/a/[-1]=='a'
//Firefox 3 by me:-
FF3=(function x(){})[-5]=='x'
//Firefox 2 by me:-
FF2=(function x(){})[-6]=='x'
//IE detector I posted previously
IE='\v'=='v'
//Safari detector by me
Saf=/a/.__proto__=='//'
//Chrome by me
Chr=/source/.test((/a/.toString+''))

B=(function x(){})[-5]=='x'?'FF3':(function x(){})[-6]=='x'?'FF2':'\v'=='v'?'IE':/a/.__proto__=='//'?'Saf':/s/.test(/a/.toString)?'Chr':'Op'

1343774さん:2009/01/29(木) 21:05:11 ID:fHt2HuPQ0
The Spanner - A tool for designers dealing with programmers dealing with designers…
http://www.thespanner.co.uk/

1344774さん:2009/01/30(金) 18:45:28 ID:fHt2HuPQ0
痛いニュース(ノ∀`):「Winny/Shareファイル流出監視サービス」 初期費用30万円、月額基本料金10万円
http://blog.livedoor.jp/dqnplus/archives/1212521.html
-----
P2Pをするだけで金になるなんて、俺でも出来るお。

1345774さん:2009/01/30(金) 18:52:16 ID:fHt2HuPQ0
とくまるひろしのSession Fixation攻撃入門 - ockeghem(徳丸浩)の日記
http://d.hatena.ne.jp/ockeghem/20090130/p1

1346774さん:2009/01/30(金) 19:01:11 ID:fHt2HuPQ0
iPhoneでC#アプリが審査に通るワケ − @IT
http://www.atmarkit.co.jp/news/200901/29/mono.html

1347774さん:2009/01/30(金) 19:10:54 ID:fHt2HuPQ0
Vistaとはドコが違うの!?:Windows 7 β版の注目ポイント“7” (1/3) - ITmedia +D PC USER
http://plusd.itmedia.co.jp/pcuser/articles/0901/30/news027.html
-----
期待。

1348774さん:2009/01/31(土) 21:16:37 ID:fHt2HuPQ0
gccでWindowsプログラミングなんてするものじゃないと思った。

1349774さん:2009/02/01(日) 11:24:52 ID:fHt2HuPQ0
http://code.google.com/intl/ja/apis/chart/
-----
QRコードが作れるって言う。

1350774さん:2009/02/01(日) 15:45:20 ID:fHt2HuPQ0
EternalWindows
http://eternalwindows.jp/index.html

1351774さん:2009/02/01(日) 15:57:35 ID:fHt2HuPQ0
GetSystemMenu 関数
http://msdn.microsoft.com/ja-jp/library/cc364748.aspx
-----
これを使えば、タスクバーとかを右クリックしたときに出てくるメニューが書き換えられるのか?

1352774さん:2009/02/01(日) 16:05:49 ID:fHt2HuPQ0
CPU使用率はこうすれば調べられる。
-----
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>
#include <string>
#include <numeric>

#include <windows.h>
#include <pdh.h>

#pragma comment(lib, "pdh.lib")

int main(int argc, char **argv){
HQUERY hQuery;
PdhOpenQuery(NULL, 0, &hQuery);

HCOUNTER hCounter;
PdhAddCounter(hQuery, "\\Process(sleipnir#0)\\% Processor Time", 0, &hCounter);

PdhCollectQueryData(hQuery);

Sleep(10000);

PdhCollectQueryData(hQuery);

PDH_FMT_COUNTERVALUE FmtValue;
PdhGetFormattedCounterValue(hCounter, PDH_FMT_DOUBLE, NULL, &FmtValue);

std::cout << FmtValue.doubleValue << std::endl;

PdhCloseQuery(hQuery);
}
-----
via http://eternalwindows.jp/windevelop/pdh/pdh00.html

1353みみず ◆rCEzuNnL0g:2009/02/01(日) 16:36:04 ID:fHt2HuPQ0
今更思ったのだが、普通に何もしていなければ、GUIのアプリケーションはCPU使用率は明らかに0%になるよな?
何故、あんなにCPUを使いまくっているグラフがとれるのかが今の僕には理解できない。
一秒間に二十回ぐらいCPUの測定しているんですかね?あほとしかおもえれませんわい。
暇なので、Sleipnirの使用率をはかるソフトを作った人の戯言でした。

1354774さん:2009/02/01(日) 16:36:49 ID:fHt2HuPQ0
#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>
#include <string>
#include <numeric>

#include <cstdio>

#include <windows.h>
#include <pdh.h>

#pragma comment(lib, "pdh.lib")

int main(int argc, char **argv){
DWORD wt = 1000;
const char *ss = "\n";
if(argc >= 2){
ss = argv[1];
if(argc >= 3){
wt = std::atol(argv[2]);
}
}

HQUERY hQuery;
PdhOpenQuery(NULL, 0, &hQuery);

HCOUNTER hCounter;
PdhAddCounter(hQuery, "\\Process(sleipnir#0)\\% Processor Time", 0, &hCounter);
PdhCollectQueryData(hQuery);

std::ostream_iterator<double> oi(std::cout, ss);

for(;;){
Sleep(wt);
PdhCollectQueryData(hQuery);

PDH_FMT_COUNTERVALUE FmtValue;
PdhGetFormattedCounterValue(hCounter, PDH_FMT_DOUBLE, NULL, &FmtValue);

*oi = FmtValue.doubleValue;
}
}

1355みみず ◆rCEzuNnL0g:2009/02/01(日) 16:40:01 ID:fHt2HuPQ0
出来るだけ忘れなければ、ハンドルネームは付けることにしよう。
まあ、俺はクッキーなど残さない設定にしているので、大抵は忘れてしまうだろうが。

>>1354
全部のソースはこれだけ。
下手にGUIにするより、直接データを吐いた方が楽&処理がしやすいのでこういうことにしておく。
リダイレクトすれば簡単にファイルにも落とせるし。

だから、コマンドラインで、データ毎に挿入される文字列も設定できるようにしたし、データの取得間隔も設定できるようにしたので、ある程度扱いやすいと思う。

1356みみず ◆rCEzuNnL0g:2009/02/01(日) 16:41:38 ID:fHt2HuPQ0
exename , 5000 > out.cvs
とかすると良いかもね!
だけれどもexcelだと読み込めないけどね!
改行の文字コートがコマンドラインで渡せないのがいけないんだと思うよ!

1357みみず ◆rCEzuNnL0g:2009/02/01(日) 16:47:13 ID:fHt2HuPQ0
cvsじゃなくてcsvだったorz...
exename > out.csvでも良いね!

1358みみず ◆adhRKFl5jU:2009/02/01(日) 16:47:35 ID:fHt2HuPQ0
トリップを変えることにしよう。

1359みみず ◆adhRKFl5jU:2009/02/01(日) 16:55:45 ID:fHt2HuPQ0
五秒平均で取ってみると、Sleipnirの平均CPU使用率は10%ぐらいで、使うととたんにMax.70%までいく。
5秒間隔での平均で測定した結果。

1360みみず ◆adhRKFl5jU:2009/02/01(日) 16:56:24 ID:fHt2HuPQ0
===========================================================
Sleipnir Version: 2.8.4 クライアント情報
Unicode Edition (Number. 2804412)
-----------------------------------------------------------

■ マシン
OS: Windows XP Home Edition Service Pack 3 (build 2600) (Japanese)
IE(Trident): 7.0.5730.13
CPU: 1 of INTEL (Intel(R) Pentium(R) M processor 1.73GHz)
RAM: 502MB (154MB Free)
FlashPlayer: 10.0.12.36
FireWall: Trend Micro Personal Firewall

■ 有効なプラグイン
Active Gecko Browser: 1.0.0
Cyclone: 0.1.8
ExtendedMenu: 1.0.0
PersonalChannel: 0.1.1
Sagittarius Dock: 0.3.0
ScriptBlock: 0.5.1
ShowDock Action: 0.0.1
ShowPanel Action: 0.0.1
ShowToolBar Action: 0.0.1
SleipnirShake: 0.1.8
StyleEditor: 0.0.7
UserAction Extension: 1.0.1

■ 使用中のスキン
elegance: 1.0.0
===========================================================

1361みみず ◆adhRKFl5jU:2009/02/01(日) 17:00:49 ID:fHt2HuPQ0
Web側だけで、Lunascapeを吹き飛ばす方法が無いかなあ?とか思う。

1362みみず ◆adhRKFl5jU:2009/02/01(日) 17:09:59 ID:fHt2HuPQ0
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total: 5356.6ms +/- 2.5%
--------------------------------------------

3d: 777.2ms +/- 11.0%
cube: 274.4ms +/- 16.7%
morph: 239.0ms +/- 16.0%
raytrace: 263.8ms +/- 16.3%

access: 728.6ms +/- 7.2%
binary-trees: 109.4ms +/- 2.9%
fannkuch: 253.4ms +/- 12.3%
nbody: 282.8ms +/- 14.2%
nsieve: 83.0ms +/- 16.1%

bitops: 450.4ms +/- 1.2%
3bit-bits-in-byte: 71.4ms +/- 4.0%
bits-in-byte: 115.0ms +/- 2.0%
bitwise-and: 80.2ms +/- 3.2%
nsieve-bits: 183.8ms +/- 3.1%

controlflow: 56.8ms +/- 4.5%
recursive: 56.8ms +/- 4.5%

crypto: 393.2ms +/- 2.7%
aes: 148.2ms +/- 7.8%
md5: 122.2ms +/- 1.3%
sha1: 122.8ms +/- 1.3%

date: 497.0ms +/- 7.8%
format-tofte: 190.0ms +/- 1.0%
format-xparb: 307.0ms +/- 12.8%

math: 598.2ms +/- 11.7%
cordic: 201.2ms +/- 7.6%
partial-sums: 280.0ms +/- 23.8%
spectral-norm: 117.0ms +/- 1.5%

regexp: 545.2ms +/- 7.5%
dna: 545.2ms +/- 7.5%

string: 1310.0ms +/- 4.5%
base64: 172.6ms +/- 1.9%
fasta: 239.8ms +/- 7.2%
tagcloud: 387.4ms +/- 9.9%
unpack-code: 225.8ms +/- 23.3%
validate-input: 284.4ms +/- 14.9%

1363774さん:2009/02/01(日) 17:50:05 ID:fHt2HuPQ0
TridentではかるとやっぱりSleipnirでもLunascape5rcでもかわらねー。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板