지금 쓰고 있는 moinmoin 위키가 너무 오래된 것 같기도 하고
회사에서 confluence 를 쓰다보니 wysiwyg 에디터가 좋은 것 같아서
wysiwyg 을 지원하는 위키 중 mediawiki가 제일 잘 나가는 것 같아서 깔아봤다.

미디어 위키 홈페이지 ( http://www.mediawiki.org/wiki/MediaWiki ) 에서 1.22.0 버젼을 다운 받았다.
1.22.0 설치하려면 PHP 5.3.2+ 와 MySQL 5.0.2+, PostgreSQL, SQLite  가 필요하다.
호스팅하고 있던 cafe24 서비스가 너무 오래되서 일단 utf-8 서비스로 업그레이드 했다.

설치법은 미디어 위키 홈페이지 설치 문서 ( http://www.mediawiki.org/wiki/Manual:Installing_MediaWiki ) 를 참고하면 된다.

* mediawiki-1.22.0.tar.gz 받아서 압축을 푼다.
* mediawiki-1.22.0 디렉토리를 mediawiki 로 symbolic link 를 만든다.
    * ln -s mediawiki-1.22.0 mediawiki
* 설정을 위해 설치 경로의 index.php 웹페이지를 접근한다.
    * complete the installation 링크 클릭
    * 주의 사항을 읽어본 후 '계속' 클릭
    * DB 설정 후 '계속' 클릭
        * 데이터베이스 호스트에 localhost 입력
        * 데이터베이스 이름에 접근할 수 있는 DB 명 입력
        * DB 에 접근할 수 있는 사용자 이름과 비밀번호 입력
    * 데이터베이스 문자 집합을 'utf-8' 선택 후 '계속' 클릭
    * 위키 이름을 적당히 짓고 관리자 계정을 설정 후 '계속' 클릭
    * 사용자 권한을 '승인된 편집자만' 가능하도록 한다.
    * 저작권 및 라이선스는 적당히 설정한다.
    * 이메일 설정은 무시하자.
    * 그림과 파일 올리기를 활성화.
    * '다음'을 눌러 설치를 마무리!
    * LocalSetting.php 파일을 받아서 index.php 경로에 업로드하면 끝!
    * 설정 파일 업로드 후 '위키에 들어갈 수 있습니다.' 클릭하여 위키 페이지에 접근하자.
    * '로그인'을 클릭해 로그인이 잘 되는지 확인해보자.

일단 설치 완료!!

이제 WYSIWYG 에디터 설치를 위해 extension 을 깔아야한다.
WYSIWYG 에디터 관련해서는 미디어위키 홈페이지 페이지 ( http://www.mediawiki.org/wiki/WYSIWYG_editor )를 참조하면 된다.
다른 곳에서 많이 쓰던 FCKEditor 를 먼저 시도했으나 안됨 ;;;;
그리곤 TinyMCE 설치를 시도.
미디어 위키 페이지 ( http://www.mediawiki.org/wiki/Extension:TinyMCE_MW ) 를 참고해서 설치하면 됨.

    * TinyMCE 3.3.9 기준
    * https://github.com/jwestyp/TinyMCE_MW 에서 오른쪽 아래 'Download ZIP' 을 눌러 다운로드
    * extensions 폴더에 업로드
    * LocalSettings.php 에 TinyMCE extension 설치 페이지 내용을 긁어 붙이면 끝

에디터가 WYSIWYG 에디터로 변하는데 WYSIWYG 에디터로 수정하면 위키 문법 결과물이 나오는게 아니라
위키 문자열을 WYSIWYG 에디터로 수정해서 뭔가 이상한 상태 -_-;;

지금 일단 설치는 했으나 moin moin 이랑 쓰는데 있어서 크게 다른 점이 없어서 기존 위키를 계속 쓸 듯...

회사에서 쓸거면 개인적으로는 돈주고 confluence 쓰는게 맞는 것 같음 :)

728x90
홈페이지 호스팅하는 장비의 OS가 오래되서 그런지
php 버젼과 mysql 버젼이 낮아서 mediawiki를 설치해볼 수가 없었다.
그래서 상위 서비스로 갈아타면 해볼 수 있을 것 같아서 utf-8 서비스로 갈아탔다. 

그랬더니 홈페이지 파일이 다 날라가서
백업해둔 파일로 복구하고
python 이랑 perl 경로 수정해서 cgi 살리고
euc-kr 로 encoding 되서 저장된 파일 utf-8 로 바꾸고 있는 중...

vi 에서 열린 파일 인코딩을 바꾸려면 아래와 같이 하면 된다.

* 인코딩을 바꿔서 화면에 표시
:e ++enc=euc-kr 

* 인코딩 변경
:set fileencoding=utf-8 
728x90
이번에 새로 툴을 만들면서 smart pointer 종류 중 std 로 들어 있는 shared_ptr 을 써보게 됐는데,
전에 쓰던 intrusive_ptr 과는 다르게 안되는게 몇 개 있네...

1. 객체 할당

shared_ptr<class> a = new class; // 이거 안됨
shared_ptr<class> a(new class); // 이런 식으로 써야함


2. NULL 로 초기화

shared_ptr<class> a = NULL; // 이것도 안됨
shared_ptr<class> a; // 할당안된 상태가 NULL 임


3. NULL 값 비교

shared_ptr<class> a;

if (a == NULL) { ... } // 이거 안됨
if (!a) { ... } // 이런 식으로 비교 해야함 


그래도 new - delete 귀찮음에서 벗어나게 해주는 smart pointer 좋음 :)

참고 : 
네이버 블로그 "boost::shared_ptr" http://blog.naver.com/sleepy1027/150090639490
MSDN shared_ptr http://msdn.microsoft.com/en-us/library/vstudio/bb982026.aspx
boost::shared_ptr http://www.boost.org/doc/libs/1_54_0/libs/smart_ptr/shared_ptr.htm
728x90
C# 에서 #region tag 로 코드 블럭을 개요 표시하고 코드를 숨기거나 확장할 수 있는데...
C++ 에서도 #pragma region 을 이용해서 할 수가 있네...

#pragma region name
#pragma endregion comment

VC++ 에서만 될지도...:) 
728x90
'_alloca' 스택에 메모리를 할당하는 함수
호출하는 함수를 종료할 때 할당 된 공간이 자동으로 비워짐...
scope 밖을 나간다고 자동으로 비워지지는 않는 것 같음.

잘못 쓰면 stack overflow 발생 ...-ㅅ-

참조 : http://msdn.microsoft.com/ko-kr/library/wb1s57t5.aspx 
728x90
오랜만에 svn 버젼 확인하러 갔더니 1.8.3 이 나왔네...
달라진 점은 잘 모르겠고 1.8 Release Notes 의 'Automatic reintegration merge' 라는 키워드에 꽂혀서 TortoiseSvn 1.8.2(Subversion 1.8.3 에 대응) 설치....
1.7 대에서 1.8 대로 바뀌면서 클라이언트 repository format 이 또 바뀌었는지 Upgrade 해야함.
merge 눌러보니 'Merge type' 중 'reintegrate branch' 였나 그게 없어짐. 

평소대로 merge 'specific range' 에서 'Show log' 버튼을 눌렀는데...
로그 창에 목록이 안나옴 ;;;
에러 메시지 보니 Invalid revision passed to Log().
merge 안되면 일을 할 수 없는 구조라...
에러 메시지 가지고 구글링하니 TortoiseSvn 1.8.3 에 수정되었다고 함...
하지만 1.8.3은 아직 릴리즈 되지 않음...:(
어쩔 수 없이 'Trunk Nightly Builds' 버젼을 가져다 써서 해결...
정식으로 1.8.3 나오기  전까지는 이걸로 버텨야겠음. ㅜㅅㅜ
역시 최신 버젼은 함부로 까는게 아님. 
728x90
Excel 파일에 직접 접근해 문자열 형식으로 데이터를 뽑아내기 위해
AccessDatabaseEngine 2007 기반으로 만든 툴이
이상하게 내자리에서만 일부 문자열이 잘려서 뽑히는 문제가 있었다.

확인해보니 오피스 2013 깔면서 문제가 발생하는 것이었다.
AccessDatabaseEngine 2007 을 새로 깔아주니 문제가 수정되더라는...

오피스 2013 관련 AccessRuntime 2013 을 새로 까니 문제가 재현... :(

뭔가 거지같네... 
 
728x90
RAID 카드와 HDD 2개로 안전하게 데이터 좀 보관하려고 했더니
무슨 문제인지 모르겠지만 부팅할 때 행 걸리더니
결국 'INVALID RAID DRIVE' 떠서 RAID 카드를 못 믿게 되어버렸다는...

Seagate 에서 'DiskWizard' (Acronis 의 True Image 번들 버젼) 로 DISK clone 을 해봤지만
실시간으로 동기화 되지는 않아 불편했다.

win32용 rsync인 cwRsync 로 동기화를 해볼까 했는데 커맨드 라인 버젼이네 -_-;;
윈도우용이면 좀 GUI 좀 제공할 것이지...
그리고 딱히 스케쥴러 같은 것도 제공되지 않는 것 같아서 다른 프로그램을 찾아봤다.

검색하다 보니 걸린 툴이 'FreeFileSync'

폴더 지정해서 미러/업데이트 등이 지정 가능하고
실시간 동기화 기능을 이용하면 모니터링할 폴더를 일정 시간마다 체크해서
동기화 스크립트를 실행하게 해두면 된다는...

간단한 사용법 : http://rdsong.com/602

좀 더 써봐야 할 것 같지만...
일단은 만족할만한 프로그램을 찾은 듯...

아 어디 좀 믿을만한 RAID 시스템 없나...:( 
728x90
.net 에서 UNC 경로가 local 인지 remote 인지 확인할려면 System.Uri  를 이용하는 방법이 있다.

ex)
string uriString = "//test/abcd";
Uri uri = new Uri(uriString);
if (uri.IsLoopback)
{ // local }
else
{ // remote }
728x90

using (SvnClient client = new SvnClient())
{
    SvnInfoEventArgs info;
    if (client.GetInfo(path, out info))
    {
        return info.Uri.ToString();
    }
}

728x90

+ Recent posts