posted by 쑥갓 2017.01.03 22:31

vi lib/redmine/scm/adapters/subversion_adapter.rb 

str << " --no-auth-cache --non-interactive --config-dir /tmp/subversion_config"


svn ls --config-option config:auth:store-auth-creds=yes --config-dir /tmp/subversion_config https://192.168.0.230/svn/project/trunk


ruby bin/rails runner "Repository.fetch_changesets" -e production


http://www.redmine.org/issues/1273

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'자료 > Article' 카테고리의 다른 글

레드마인 visual svn  (0) 2017.01.03
mysql batch job  (0) 2016.07.08
font의 facename으로 displayname및 filename얻어내기  (1) 2007.06.20
Design and Implementation of a Win32 Text Editor  (0) 2007.06.12
Utilities for STL std::string  (1) 2007.03.27
/ENTRY(진입점 기호)  (2) 2007.03.01
posted by 쑥갓 2016.07.08 15:55

http://viralpatel.net/blogs/batch-insert-in-java-jdbc/

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'자료 > Article' 카테고리의 다른 글

레드마인 visual svn  (0) 2017.01.03
mysql batch job  (0) 2016.07.08
font의 facename으로 displayname및 filename얻어내기  (1) 2007.06.20
Design and Implementation of a Win32 Text Editor  (0) 2007.06.12
Utilities for STL std::string  (1) 2007.03.27
/ENTRY(진입점 기호)  (2) 2007.03.01
posted by 쑥갓 2007.06.20 16:00
http://www.codeproject.com/gdi/fontfile.asp

이거 못찾았으면 무식하게 폰트 파일 다 열어보는 코드를 만들뻔 했다-ㅅ-;
요새는 정말 구글신 없이는 못살겠다;

덤으로 fonts폴더 경로명 가져오기
 TCHAR szFontPath[_MAX_PATH];
 if( SHGetFolderPath( NULL, CSIDL_FONTS, NULL, SHGFP_TYPE_CURRENT, szFontPath ) == E_FAIL )
  return false;
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'자료 > Article' 카테고리의 다른 글

레드마인 visual svn  (0) 2017.01.03
mysql batch job  (0) 2016.07.08
font의 facename으로 displayname및 filename얻어내기  (1) 2007.06.20
Design and Implementation of a Win32 Text Editor  (0) 2007.06.12
Utilities for STL std::string  (1) 2007.03.27
/ENTRY(진입점 기호)  (2) 2007.03.01
posted by 쑥갓 2007.06.12 19:07
http://www.catch22.net/tuts/editor11.asp

Brand new tutorial series, covering the design and implementation of Neatpad - a text editor written using pure C/C++ Win32 techniques. The entire range of functionality is covered - text file loading, undo and redo, unicode, user-interface details and memory management techniques.

Uniscribe관련 내용이 설명되어 있다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'자료 > Article' 카테고리의 다른 글

mysql batch job  (0) 2016.07.08
font의 facename으로 displayname및 filename얻어내기  (1) 2007.06.20
Design and Implementation of a Win32 Text Editor  (0) 2007.06.12
Utilities for STL std::string  (1) 2007.03.27
/ENTRY(진입점 기호)  (2) 2007.03.01
Compiler Support for Type Traits  (0) 2007.02.13
TAG
posted by 쑥갓 2007.03.27 12:05

http://www.codeproject.com/useritems/STL_string_util.asp

바로 쓸 수 있는 코드들이 꽤 많다.
stl과 템플릿에 아무리 익숙해져도 이런정도까지의 활용은 쉽지 않다.
아무래도 이런 정도의 내용이 되버리면 익숙한 api에 기대기 마련이다.
잘 봐두면 스트링쪽 레벨업이 될듯

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 쑥갓 2007.03.01 04:29
http://msdn2.microsoft.com/ko-kr/library/f9t8842e(VS.80).aspx

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'자료 > Article' 카테고리의 다른 글

Design and Implementation of a Win32 Text Editor  (0) 2007.06.12
Utilities for STL std::string  (1) 2007.03.27
/ENTRY(진입점 기호)  (2) 2007.03.01
Compiler Support for Type Traits  (0) 2007.02.13
Subversion(SVN)과 Mantis의 연동  (2) 2007.01.05
라그나로크2 클라이언트 분석  (2) 2006.12.31
posted by 쑥갓 2007.02.13 23:30
http://msdn2.microsoft.com/en-us/library/ms177194.aspx

gpg에 답변달다가 홈피에도 없는것 같길래 포스팅
boost를 대체할수 있는 기본 키워드들이 꽤 있다.
컴파일러에서 처리를 해주니 왠지 boost보다 가볍지 않을까...하는 느낌..
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'자료 > Article' 카테고리의 다른 글

Utilities for STL std::string  (1) 2007.03.27
/ENTRY(진입점 기호)  (2) 2007.03.01
Compiler Support for Type Traits  (0) 2007.02.13
Subversion(SVN)과 Mantis의 연동  (2) 2007.01.05
라그나로크2 클라이언트 분석  (2) 2006.12.31
[펌] 디스크 캐쉬 제대로 알기  (1) 2006.12.29
posted by 쑥갓 2007.01.05 02:37

출처 : http://magenta.egloos.com/1454578

Subversion(SVN)과 Mantis의 연동

1. 연동하려는 SVN 저장소에 속성 설정합니다.
bugtraq:label = issue
bugtraq:url = http://localhost/mantis/view.php?id=%BUGID%
bugtraq:message = issue %BUGID%
bugtraq:warnifnoissue = true

2. SVN 저장소의 hooks디렉토리에 다음에 나오는 배치 명령이 들어있는 post commit hook 파일 생성(C:\Repository\hooks\post-commit.bat). SVN이 commit되는 동안에 Mantis에 이슈노트로 추가될 내용들을 넣습니다.
REM Post-commit hook for MantisBT integration
SET REPOS=%1
SET REV=%2
SET DETAILS_FILE=C:\Repository\GNIS4M\svnfile_%REV%
SET LOG_FILE=C:\Repository\GNIS4M\svnfile_%REV%_Log

echo ****** Source code change ******>>%DETAILS_FILE%
svnlook info -r %REV% %REPOS%>>%DETAILS_FILE%
echo SVN Revision:%REV%>>%DETAILS_FILE%
svnlook diff -r %REV% %REPOS%>>%DETAILS_FILE%

C:\APM_Setup\Server\PHP4\php.exe C:\APM_Setup\htdocs\mantis\core\checkin.php <%DETAILS_FILE% >%LOG_FILE%
DEL %DETAILS_FILE%
DEL %LOG_FILE%

3. 다음 내용을 Mantis config_inc.php에 추가합니다.
#Integration to SVN
$g_source_control_notes_view_status = VS_PRIVATE;
$g_source_control_account = 'Administrator';
$g_source_control_set_status_to = OFF;
$g_source_control_regexp = "/\bissue [#]{0,1}(\d+)\b/i";

추가로 연동할 SVN저장소에는 1,2만 반복하면 됩니다.

해보니까 연동은 잘되는데 한글이 깨지는 문제가 생깁니다.

Windows의 Command Prompt는 기본적으로 시스템의 locale을 따르는데..

그게 euc-kr입니다...

문제는 연동배치파일에서 svnlook을 쓰는데 이 프로그램은 Command Prompt의 Locale에 맞춰서 문자열을 출력한다는거..

우리의 Mantis는 UTF-8을 써서 한글을 표현하기 때문에...euc-kr로 된 SVN 정보들은 다 깨집니다.
(물론 euc-kr로 할수도 있지만...그러면 Mantis가 자꾸 워닝을 뿌리기때문에...)

해결책으로 Mantis의 Core디렉토리에 있는 checkin.php를 직접 수정합니다..

42번째 줄의...

while ( ( $t_line = fgets( STDIN, 1024 ) ) ) {

...를

while ( ( $t_line_euc = fgets( STDIN, 1024 ) ) ) {
        $t_line = ( iconv("EUC-KR","UTF-8",$t_line_euc)?iconv("EUC-KR","UTF-8",$t_line_euc):$t_line_euc );

...로 바꾸니까 해결되는군요..

윈도우2003서버에서 Mantis 1.0.6과 svn 1.4.0으로 작업했습니다.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'자료 > Article' 카테고리의 다른 글

/ENTRY(진입점 기호)  (2) 2007.03.01
Compiler Support for Type Traits  (0) 2007.02.13
Subversion(SVN)과 Mantis의 연동  (2) 2007.01.05
라그나로크2 클라이언트 분석  (2) 2006.12.31
[펌] 디스크 캐쉬 제대로 알기  (1) 2006.12.29
[펌] Resource Management Best Practices  (0) 2006.11.02
posted by 쑥갓 2006.12.31 04:40

- 파일 분석

more...


- 그래픽 분석

more..


머 전체적으로는 특별히 눈에 띄는 내용은 수영과 점프로 아무데나 올라갈 수 있다와 다양한 페이셜 연출...
말고는 특별한건 보이지 않았다.
다만 생각보다 메모리 사용량이 많지 않았다.

파일이 패킹되어 있지 않아서 분석하기는 좋았지만...
혹시 오베까지 저렇게 내용이 오픈되어있는 상태로 가면 좀 문제가 있겠다..;

평가는 첫 클베치고는 괜찮았다..라고도 생각되지만 개발기간과 언리얼2.x를 생각할때는 생각보다 별로.. 라고도 생각된다.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 쑥갓 2006.12.29 13:53

출처 : http://testors.net/tt/767

오래간만에 재미난 퀴즈.

Q. Win32 환경에서 모든 함수가 성공적으로 수행되었다고 가정할 경우, #END 시점에서 데이터가 실제로 disk 에 쓰여졌다고 기대할 수 있는 코드를 모두 선택하시오.

1.
FILE *fp = fopen( "test", "wb" );
fwrite( "DATA", 4, 1, fp );
// #END

2.
FILE *fp = fopen( "test", "wb" );
fwrite( "DATA", 4, 1, fp );
fflush( fp );
// #END

3.
FILE *fp = fopen( "test", "wb" );
fwrite( "DATA", 4, 1, fp );
fclose( fp );
// #END

4.
FILE *fp = fopen( "test", "wb" );
fwrite( "DATA", 4, 1, fp );
fflush( fp );
fclose( fp );
// #END

5.
HANDLE hFile = CreateFile( "test", 0, FILE_SHARE_WRITE, 0, TRUNCATE_EXISTING, FILE_ATTRIBUTE_NORMAL );
DWORD sz = 0;
WriteFile( hFile, "data", 4, &sz, NULL );
CloseHandle( hFile );
// #END



 

정답은 놀랍게도 하나도 없다. -_-;

우선 Win32 API 의 경우 CloseHandle() 을 이용해서 파일 핸들을 닫았다고 해서 실제로 disk 에 write 되는것은 아니다. CloseHandle() 이 flush 를 해줄것이라고 생각할지도 모르겠지만 CloseHandle 한다고 해서 file 이 flush 된다는 얘기는 MSDN 어디에서도 찾아볼 수 없다. 실제로도 CloseHandle() 만으로는 물리적으로 disk 에 write 되지 않고 단지 캐쉬에 write 저장될 뿐이다. 다시 open 해보면 변경된 내역을 확인이 가능한것처럼 보이겠지만 그것은 write/close/open/read 가 모두 OS 의 디스크 캐쉬상에서 이루어 졌기 때문이다. CloseHandle() 후에 PC 코드를 뽑았다 다시 부팅해서 읽게 되면.. 운이 나쁘면 뒤의 일부분은 write 되지 않는것을 발견할 수 있을 것이다.

그렇다면 Win32 에서 데이터가 원하는 시점에 disk 에 기록되게 하려면 어떻게 해야하느냐? 방법은 FlushFileBuffers() 를 명시적으로 호출 해 주는 것이다. 여전히 CloseHandle() 과는 별개라는것을 주의 할것. CloseHandle() 은 내부적으로 FlushFileBuffers() 를 호출하지 않는다.

이제 CRT 의 경우를 살펴보자. CRT 의 fflush() 가 disk 에 write 해주는것 아니었냐고? 안타깝게도 대답은 'No' 이다. CRT 의 fopen()/fwrite()/fclose() 들은 내부적으로 FILE 단위의 버퍼링을 가지고 있으며 fflush() 는 그 버퍼링을 flush 해주는 것일 뿐이다. 그러니까 CRT 에서 fflush() 를 호출하게 되면 FlushFileBuffers() 가 호출되는게 아니라 그동안 쌓여있던 데이터를 그냥 WriteFile() - UNIX 계열에서는 write() - 해 줄 뿐이다. 결국 여전히 데이터가 OS 의 디스크 캐쉬에만 기록되고 물리적으로는 기록되지 않을 가능성이 남아있게 된다. system-call 로 구현될 수 밖에 없는 CRT 의 특성상 이는 모든 OS 에서도 일어날 수 있는 증상이다.

그래서 M$ 의 경우 fopen()/fflush() 의 extension 을 제공한다. 물론 이것은 표준이 아니다. 사용법은 간단한데 fopen() 시에 'c' 플래그를 추가하게 되면 fflush() 시에 FlushFileBuffers() 가 추가적으로 호출된다.물론 여기서도 fclose() 만으로는 물리적인 기록을 기대할 수 없다.

정리해보면, Win32 의 경우 disk 에 저장될 것이라 기대할 수 있는 코드는 다음 두가지다.

FILE *fp = fopen( "test", "wbc" );
fwrite( "DATA", 4, 1, fp );
fflush( fp );
fclose( fp );
// #END

HANDLE hFile = CreateFile( "test", 0, FILE_SHARE_WRITE, 0, TRUNCATE_EXISTING, FILE_FLAG_WRITE_THROUGH );
DWORD sz = 0;
WriteFile( hFile, "data", 4, &sz, NULL );
FlushFileBuffers( hFile );
CloseHandle( hFile );
// #END

아래에 PC 의 전원을 꺼버리는 험악한 방법을 사용하지 않고 이 동작을 확인할 수 있는 코드를 소개한다.

while( true )
{
    FILE *fp = fopen( "test", "wb" );   // #1
    fwrite( "data", 4, 1, fp );         //
    //fflush( fp );                     // #2
    fclose( fp );
}

위의 코드를 수행해 보고 HDD 램프를 지켜보라. 간헐적으로 깜빡일 것이다. fclose() 만으로는 실제 disk 에 기록이 되지 않는다는 얘기다. #2 의 주석을 제거해도 마찬가지다. "wb" 옵션을 "wbc" 로 바꾸고 #2 의 주석을 제거해야 비로소 HDD 램프가 미친듯이 깜빡이고 시스템이 엄청나게 느려지는것을 확인할 수 있을 것이다. Win32 API 도 마찬가지.

어찌보면 사소한 문제로 보일수도 있지만 어플리케이션의 업데이트 루틴을 작성하는 사람이라면 꼭 알아두어야 한다. 유저가 수만명 단위로 늘어나게 되면, 분명히 발생하기 때문이다. 나역시 직접 당해보기 전까지는 fflush() 를 하고 파일 핸들을 닫으면 당연히 disk 에 저장 될거라고 알고 있었기 때문에 이것을 알아내는데에 고생을 좀 했다. 부디 이 포스팅을 읽는 분들은 같은 삽질을 하지 마시길...

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

티스토리 툴바