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

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

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

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でもかわらねー。

1364みみず ◆adhRKFl5jU:2009/02/01(日) 18:55:04 ID:fHt2HuPQ0
Firefox高速化の切り札「FasterFox」でブラウザ魔改造 :教えて君.net
http://www.oshiete-kun.net/archives/2009/01/post_409.html
-----
はいはい。RFC無視無視。

1365みみず ◆adhRKFl5jU:2009/02/03(火) 18:18:43
某JavaScriptの演算子の紹介ページに!==と===が無いとはどういうことだ!

1366774さん:2009/02/03(火) 22:55:09
本格的なシューティングゲームを実現するタスクシステム:CodeZine
http://codezine.jp/article/detail/297?p=1
近代的タスクシステムの構築 - やねうらお−よっちゃんイカを食べながら年収1億円稼げる(かも知れない)仕事術
http://d.hatena.ne.jp/yaneurao/20090203#p1
(cache) 近代的タスクシステムの構築 - やねうらお−よっちゃんイカを食べながら年収1億円稼げる(かも知れない)仕事術
http://s01.megalodon.jp/2009-0203-2253-48/d.hatena.ne.jp/yaneurao/20090203

1367774さん:2009/02/03(火) 22:58:28
SleipnirAPIの
string IResult::FieldName(long column)
が空文字を返すという突っ込みを、2chに居る作者に入れようとしたが、何故か憚られたのでやめた。
だけれども、これが無いと一々特殊化した物を作らないといけないから面倒だなあ。

1368みみつ ◆adhRKFl5jU:2009/02/03(火) 23:00:04
JOI2006本選 一括@C++ - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090203/1233658901

1369みみつ ◆adhRKFl5jU:2009/02/03(火) 23:14:52
アフォBlog C言語勉強したけどゲーム作れないぞコラって人向けに
http://afoafodayo.blog84.fc2.com/blog-entry-549.html

1370みみつ ◆adhRKFl5jU:2009/02/03(火) 23:28:47
liveイベント - 素人がプログラミングを勉強するブログ
http://d.hatena.ne.jp/javascripter/20090202/1233581353
-----
liveイベントは、後からノードが追加されても、そのノードにイベントを追加したかのような反応をするイベントらしい。

つまり、
$.live("li", "click", function(){
alert("click");
});
document.getElementsByTagName("body").item(0).appendChild(document.createElement("li"));
とかやっても、最後に追加した、liをクリックしてもアラートが出るようになるらし。

1371みみつ ◆adhRKFl5jU:2009/02/04(水) 19:33:06
C++TMPを使ってコンパイル時に多倍長フィボナッチ計算。 - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090204/1233733232

1372みみず ◆adhRKFl5jU:2009/02/04(水) 19:34:45
Microsoft、Windows 7のエディションを発表 - ITmedia News
http://www.itmedia.co.jp/news/articles/0902/04/news024.html

1373みみず ◆adhRKFl5jU:2009/02/04(水) 19:36:15
http://anond.hatelabo.jp/20081025202001
http://anond.hatelabo.jp/20081030224457
-----
絶対コンパイル時に決定する必要性が無い。

1374みみず ◆adhRKFl5jU:2009/02/04(水) 19:56:21
絶対もしかしてジェネレータがあると思って検索したら、案の定あったので作るのはやめよう。

1375774さん:2009/02/05(木) 18:05:27
CSSでさくっと作れるグラフいろいろ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜
http://www.ideaxidea.com/archives/2009/02/css_graphs.html
NYTimes.comがAPIを提供開始!280万記事のデータベースで何を作る!? - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜
http://www.ideaxidea.com/archives/2009/02/nytimescom_api.html

1376 ◆adhRKFl5jU:2009/02/06(金) 17:43:53
ああ、サーバーがあったら色々なことが出来そうなんだけれどもなあ。

1377 ◆adhRKFl5jU:2009/02/06(金) 17:52:03
素晴らしいjQueryのチュートリアル45選 | CREAMU
http://blog.creamu.com/mt/2009/02/jquery45.html

1378774さん:2009/02/06(金) 19:13:43

//IResult::FieldNameが空文字を返すので、あきらめる。
result.Rewind();

var fields = [];
var i, j, len_row, len_field;
for(i = 0, len_field = result.NumFields(); i < len_field; ++i){
fields.push(result.FieldName(i).toString());
}
var ret = [];
var a;
for(i = 0, len_row = result.NumRows(); i < len_row; ++i){
ret[i] = {};
a = result.FetchArray();
for(j = 0; j < len_field; ++j){
ret[i][fields[j]] = a.At(j);
}
}

return ret;

1379774さん:2009/02/06(金) 20:34:16
自分はクラス設計者であり、使用者である、というスタンスが一番プログラミングしやすいんじゃないかと思う。
で、それで書いたら、実装部分が二百行以上で、使用部分が四行ぐらいになった。

1380774さん:2009/02/06(金) 22:03:33
ソースコードって直ぐに三百行超えるね!

1381774さん:2009/02/06(金) 22:04:12
7.88 KB (8,071 バイト)・・・
全然少ないね!

1382774さん:2009/02/06(金) 22:55:10
function todo(s, DB, set, w, d){
var db = new DB(set.dbName);

var canvas = d[d.compatMode == "CSS1Compat" ? "documentElement" : "body"];

w["_" + s.ScriptName + "_"] = true;

var base = d.createElement("div");
with(base.style){
position = "absolute";
top = (canvas.scrollTop + 10) + "px";
left = "100px";
width = "500px";
zIndex = "100000";
border = "solid 1px blue";
filter = "alpha(opacity=10)";
}
w.setTimeout(function(){
w.alert(db.TrimTag(["tets"]));
}, 1000);

var title = d.createElement("div");
with(title.style){
backgroundColor = "#ccf";
margin = "3px"
}
title.innerHTML = "<b>色々とテスト中です。</b>";

base.appendChild(title);

var client = d.createElement("div");
with(client.style){
margin = "3px";
backgroundColor = "#ffffff";
}
client.innerHTML = "testtest";

base.appendChild(client);

d.getElementsByTagName("body").item(0).appendChild(base);
}

1383 ◆adhRKFl5jU:2009/02/06(金) 22:56:17
JScriptは他の場所に参照があっても、オブジェクトの定義が無くなったら、上手く動作しなくなるらしい。
全面的にソース書き直さないといけないかな?

1384 ◆adhRKFl5jU:2009/02/06(金) 22:56:48
だが、sleipnirオブジェクトが残りっぱなしなのが気になるなあ。

1385 ◆adhRKFl5jU:2009/02/09(月) 17:54:58
情報オリンピック本選いってきました - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20090208/1234099579

1386774さん:2009/02/10(火) 20:35:31
あー。
数日前に数日かけて書いたソースを消してしまったorz.....
まだ復旧に間に合うか?

1387774さん:2009/02/10(火) 20:40:37
よかった、復旧できた・・・

1388 ◆adhRKFl5jU:2009/02/10(火) 21:02:46
全くリークされた情報を聞いていないのだが、Sleipnirの次の正式版は、GeckoとかWebkitが取り込みやすくなっているのではないかと。
あくまでもプログラミング面から見ての話である。

以前も書いたはず(探したけれども見つからない・・・)だが、一つプラグインを作って、それがIEだけの対応だったら意味が無い。
つまり、一つブラウザを弄くるプラグインを書いたら、レンダリングエンジンが何であろうと動いてくれないと、プラグインを作成する人にとっては、最悪三倍資料を探さなければいけないし、最悪三倍近くソースを書かねばならないかもしれない。
しかし、そこの部分をSleipnirが上手くラップ(wrap)してくれると非常に良いわけだ。
そして、今IEBrowser.fxを結構書き直しているようだが、恐らくそれをやっているのではないかと勝手に期待しているわけだ。

新しくSeaHorse.fx公開されたが、これももしや将来的にはGeckoやらWebkitでも動くようになるのかもしれない。

もし俺のこの予測が外れていたら、結構ショックである。
もしも、ラッパーを作る気が無かったならばそれはSleipnirに失望すること間違いなしである。

1389 ◆adhRKFl5jU:2009/02/10(火) 21:10:08
>>1388は下記のような記述から書いた、憶測記事です。
-----
 なんだかねw - Kei_9 なげやりにっき
http://d.hatena.ne.jp/Kei_9/20090205/1233844499
---
>新しいIEBrowser.fxの正体を知れば2chとか某所においては納得させれる部分もあるのでしょうけど、ソレすら公式にはまだお披露目には早いという判断なんでしょうかね。
>もしくは公開のための場所限定であってもなにがしかの情報開示があればそれなりの反応が得られるのではないかとおもうのですけどね。
>そういったアナウンスすら無いままPrototypeとの融合版をtest版として投下されたとしても既存の環境において不具合てんこ盛りを訴えるユーザに対してどのような処理するのだろうか...
-----

1390774さん:2009/02/12(木) 18:48:20
vimで効率的にコードを書くための小技 - bonar note
http://d.hatena.ne.jp/bonar/20070415/1176651778

1391774さん:2009/02/12(木) 20:55:16
var isDrag = false;
var po;
title.attachEvent("onmousedown", function(){
isDrag = true;
po = {};
po.x = w.event.clientX + canvas.scrollLeft;
po.y = w.event.clientY + canvas.scrollTop;
});
title.attachEvent("onmouseup", function(){
isDrag = false;
});
d.getElementsByTagName("body").item(0).attachEvent("onmousemove", function(){
if(isDrag){
if(w.event.button & 1){
var _po = {};
_po.x = w.event.clientX + canvas.scrollLeft;
_po.y = w.event.clientY + canvas.scrollTop;
base.style.left = (_po.x - po.x + parseInt(base.style.left)) + "px";
base.style.top = (_po.y - po.y + parseInt(base.style.top)) + "px";

if(parseInt(base.style.left) + parseInt(base.style.width) > canvas.clientWidth){
base.style.left = (canvas.clientWidth - parseInt(base.style.width)) + "px";
}
if(parseInt(base.style.left) < 0){
base.style.left = "0px";
}

po = _po;
}else{
isDrag = false;
}
}
});

1392 ◆adhRKFl5jU:2009/02/12(木) 21:02:22
SleipnirScriptで確りとしたUIを付けようと思ったので、色々と試行錯誤中。
取り敢えず、エレメントをドラッグするための関数を作らなければいけない。
>>1391は取り敢えず適当に書いたサンプル。
表示領域(HTML全体)の大きさを取得したいのだが、取得の方法が分からない。
適当に資料を探してみなければいけないなと再確認。
調べたら、JavaScript備忘録を久しぶりに更新しようかなあと思っているが、非常に面倒である。

1393 ◆adhRKFl5jU:2009/02/12(木) 21:02:43
で、情報オリンピックの結果まだー?

1394 ◆adhRKFl5jU:2009/02/13(金) 18:09:30
結果は十五日のようだ。

1395 ◆adhRKFl5jU:2009/02/14(土) 15:13:33
昨日の夜、ふと思ったのだが、JavaScriptのエンジンとレンダリングエンジンは別々なんだから、Trident+V8とか無理なんですかね?とか思った。
それが出来たら最強かもしれない。
まあ、Tridentのレンダリングスピードが遅かったら意味が無いが。

1396774さん:2009/02/14(土) 15:29:53
---------------------------
情報
---------------------------
データがオープンできません 書き込みの権限が無い可能性があります。(Headline-Reader Plugin)
---------------------------
OK
---------------------------

1397 ◆adhRKFl5jU:2009/02/14(土) 17:12:02
Linuxにはstraceとか言うシステムとレースできるコマンドがあるのだが、Windowsには無いのか!
まあ、動作から明らかだが、Headline-Reader Pluginは非同期でファイルを読み書きしているので遅い。
もっと早く、というのはハードウェアの問題だから無理だが、非同期で読み込むようにすれば、処理が止まるって言うことは無いぞ!
おい、プロなんだからメッセージとか考えろよー。

1398 ◆adhRKFl5jU:2009/02/14(土) 17:13:39
お、調べたら滅茶苦茶簡単に見つかった。
-----
IntellectualHeaven - Products - StraceNT - Strace for Windows
http://www.intellectualheaven.com/default.asp?BH=projects&amp;H=Strace.htm

1399 ◆adhRKFl5jU:2009/02/14(土) 17:25:21
今の僕には使いこなさないw
ReadFile(Ex)だけトレースしたいのにどうすれば良いのだ・・・
やっぱりデバッガでやるか。

1400 ◆adhRKFl5jU:2009/02/15(日) 18:33:59
SDL - Wikipedia
http://ja.wikipedia.org/wiki/SDL

1401 ◆adhRKFl5jU:2009/02/15(日) 19:30:35
SDL使えばマルチプラットホームでかけるんだ・・・

1402 ◆adhRKFl5jU:2009/02/15(日) 20:03:44
JOI産物 - slender(足跡45)の日記
http://d.hatena.ne.jp/sle/20090208/1234096933
-----
よく一時間半でゲームかけるなあ。
俺一個もゲーム作ったこと無いぜ・・・

1403774さん:2009/02/15(日) 20:23:45
決めた。
東方っぽいシューティングゲームを適当にでも作る。
SDLの方向で行こう。

1404 ◆adhRKFl5jU:2009/02/15(日) 20:24:10
ははうえと息子とハイパーな日々
http://d.hatena.ne.jp/hahaue/

1405 ◆adhRKFl5jU:2009/02/16(月) 19:21:34
> JOI 2008-2009本選の成績通知を2月15日に行いました (2009.2.15)
度数分布表を早く出してくれないかね?

1406 ◆adhRKFl5jU:2009/02/16(月) 23:19:34
満点三人もいる。
すげええええええええ

1407 ◆adhRKFl5jU:2009/02/17(火) 19:24:57
本番で満点を取ることが凄いのだ。多分。

1408 ◆adhRKFl5jU:2009/02/17(火) 19:25:31
解答聞けば誰でも満点取れるね!

1409 ◆adhRKFl5jU:2009/02/18(水) 20:44:02
適当にソースを書いているのだが、閉じるボタンを押したらそれなりに閉じなければいけないし、なんか色々と面倒そうである。
通常必要な処理を纏めた関数でも作れば良いかな?
適当にISecene::Defaultとか言う奴でも作ってやったれば良いかと思っている。

1410 ◆adhRKFl5jU:2009/02/18(水) 21:15:24
そんなこんなでSDLの基本を押さえつつ適当に作っている。
透過pngが僅か五行で表示できるよ!

1411 ◆adhRKFl5jU:2009/02/19(木) 17:01:42
TridentでHTMLを解釈される前にHTMLを変更する方法は無いのかな?
有れば色々と面白いことが出来そうだが・・・。

1412 ◆adhRKFl5jU:2009/02/19(木) 17:22:30
動的にFixedをTridentで生成しようとすると、普通の場所で表示されるのは何とかして欲しいところ。

1413 ◆adhRKFl5jU:2009/02/19(木) 17:56:27
適当にISceneを継承して色々と実装すれば良いようにしてみた。

1414 ◆adhRKFl5jU:2009/02/19(木) 17:57:22

http://www.tacoworks.jp/software/SDLdoc-jp/html/index.html

1415 ◆adhRKFl5jU:2009/02/19(木) 18:16:30
酷い設計である。
-----
#include "SceneTitle.hpp"
#include "Game.hpp"
#include "FPSTimer.hpp"

/*==========*/
bool
SceneTitle::Initialize(){
return true;
}

/*==========*/
Scene
SceneTitle::Start(Game *game){
SDL_Surface *sc = game->GetSurface();
FPSTimer timer(60);
for(;;){
if(!IScene::DefAllPollEvent()){
break;
}
timer.Wait();
}

return SC_NULL;
}

/*==========*/
bool
SceneTitle::Finalize(){
return true;
}

1416 ◆adhRKFl5jU:2009/02/19(木) 18:24:43
FPSTimerとか言っているが、実際のところ1000との公約数のfpsしか正確に計れないという仕様。
出来るだけ整数で済ませようとしているのが間違いである。

1417 ◆adhRKFl5jU:2009/02/19(木) 20:17:54
という事で、もうちょっとちゃんと作ろうかなと。
出来るだけ整数だけで計算したいので、一秒ごとにグルグルする、関数でも作って適当に割り振ることにしよう。
ちょうど、割り算すると切り捨てられるのでそこらへんを上手く利用。

1418 ◆adhRKFl5jU:2009/02/19(木) 20:18:14
#include "FPSTimer.hpp"
#include <SDL/SDL.h>

/*==========*/
FPSTimer::FPSTimer(unsigned int fps)
: m_fps(fps)
, m_dis(1000 / fps)
, m_shouldSkip(false)
{
Start();
}

/*==========*/
void
FPSTimer::Start(){
m_start = m_last = SDL_GetTicks();
}

/*==========*/
void
FPSTimer::Wait(){
//49日間も実行されないだろう・・・
unsigned int next = m_last + m_dis;
unsigned int now = SDL_GetTicks();

m_shouldSkip = false;

printf("WaitTime: %d\n", next - now);

if(now == next){
m_last = now;
}else if(next > now){
//SDL_Delayの精度が10msぐらいかなとか。
if(next - now > 10){
SDL_Delay(next - now - 10);
}
for(;;){
now = SDL_GetTicks();
if(next <= now){
break;
}
}
m_last = now;
}else{
m_shouldSkip = true;
m_last = now;
}
}

/*==========*/
bool
FPSTimer::ShouldSkip(){
return m_shouldSkip;
}

1419 ◆adhRKFl5jU:2009/02/19(木) 20:18:47
#ifndef FPSTIMER_HPP
#define FPSTIMER_HPP

class FPSTimer{
private:
const unsigned int m_fps;
const unsigned int m_dis;
unsigned int m_start;
unsigned int m_last;

bool m_shouldSkip;

public:
void Start();
void Wait();

bool ShouldSkip();

unsigned int GetStartTicks();

FPSTimer(unsigned int);
};

#endif

1420 ◆adhRKFl5jU:2009/02/19(木) 20:20:59
テンプレートでプログラミングしたいなあとか思った。
適当に考えてみるか。

1421 ◆adhRKFl5jU:2009/02/19(木) 20:21:23
だけれども配列が扱えない・・・
配列っぽく扱いたいんだがな・・・


新着レスの表示


名前: E-mail(省略可)

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

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

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

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