'분류 전체보기'에 해당되는 글 342건

  1. 2010.10.01 [MFC] Thread안에서는 CSocket 클래스를 사용하면 안된다?! 4
  2. 2010.09.24 Trac + Git 연동를 해서 사용해보자. 6
  3. 2010.09.23 [버그] glade 이미지 파일 경로 설정
  4. 2010.09.21 weechat launcher perl 스크립트 작동시키기 4
  5. 2010.09.18 [VirtualBox] Could not read from Boot Medium! 오류 해결법 4

[MFC] Thread안에서는 CSocket 클래스를 사용하면 안된다?!

이메일 보낼일이 있어서 코드 프로젝트에서 SMTP 코드를 배껴서 사용중이 었음

(원래 소스가 그렇게 되어 있었다오 -_- 쓰고 싶어서 쓴게 아님 ㅠㅠ

회사에서는 보통 c&p 디버깅 / 테스트가 일이라... 아 정말 싫다.)

그런데 이넘이 쓰레드 안아서 돌아가야할 필요가 있어서 않에 넣어서 사용하고 있는데

갑자기 뻑뻑 죽어버리는거임 - 아마도 MFC assertion? 에러 였던거 같은데...

디버깅 돌려보니깐 무슨 이름도 모르는 생판첨보는 MFC함수에 브포가 찍혀있고 -_-.....

함수스택타고 위로 올라가보니깐 CSocket.Create() 메소드 - 를 쓴 부분까지 올라오게 되더군여

이거 뭔소린가... 걍 싱글스레드 쓸땐 잘 작동하던 놈이 왜 이짓거리나...

분명히 그냥 socket은 thread-safe하다고 봤었는데 - 이상하다 -

그래서 구글링해 본결과 MFC버그라는 이야기도 있어서... 혹시해어 Create메소드만 고쳤는데

이렇게 하니깐 주소를 잘못참조했네 어쩌구 에러가.... 

그냥 그래서 (하라는대로?) 클래스에서 CSocket 멤버를 빼버리고

죄다  socket, send, recv, close 함수로 대체해버렸음 -_-...

-> MFC에서 Thread안에서 돌아가는 프로그램에서는 CSocket클래스를 쓰지말자??
(라고는 해도 아무리 봐도 그냥 땜질용 처방 같다 ;;; 원래문제는 따로 있을듯)

ps :  이부분에 대해서 좀 아시는 분은 댓글을. 뭐 자원을 더 할당하라 그런이야기는 있던...

Trac + Git 연동를 해서 사용해보자.

미리 알림>
컴퓨터에는 python, sqlite, git가 먼저 설치되어 있고,
git도 해당 경로에 init 해둔 상태 (.git경로가 존재) 이다.

먼저 배포판 버전으로 trac을 설치한다. 나는 아치니깐

(설마 trac설치하려는 사람이 패키지 설치 하나 못하시진 않겠져? 배포판 마다 알아서 설치하십시다~)

yaourt -S trac

그다음 trac에서 git사용이 가능한 플러그인을 설치한다.

아치의 경우는 AUR에 있는 패키지가 문제가 있어서 작동안되므로

(이거때문에 몇시간 삽질한지 모른다! 다른 패키지를 사용하시는 분도 어느정도 참조하시길 ),


메녈 페이지에 있는데로  다음과 같이 패키지를 설치했다.
그다음 trac을 초기화하기 위해서 다음과 같은 명령어를 실행한다

생성할 경로는... "존재하지 않는 새로운" 경로이다. 나같은 경우 걍 귀차나서 프로젝트 경로밑에

trac을 생성하게 만들어 버렸다 귀찮아..

$ trac-admin /생성할/Trac/Path initenv

그럼 다음과 같은 메세지가 출력되면서 먼저 프로젝트 이름일 입력하라고 기다리고,

이후 DB어떤거 할건가 물어본다. 일단 기본적으로 다음과 같이 입력하면 어느정도 알아서 된다.

Trac은 프로젝트 데이타베이스를 초기화하고 준비하기 위해서
당신의 환경에 대해서 몇가지 질문을 할 것입니다.

 프로젝트 이름을 입력해 주십시오.
 이 이름은 페이지의 제목과 설명에서 사용될 것 입니다.

프로젝트 이름 [My Project]> minicube <-프로젝트명을 입력하고 Enter를 누른다.

 사용하고 있는 데이타베이스에 대한 연결 스트링을 지정하십시오.
 기본적으로, 지역 SQLite 데이타베이스가 저장소 디렉토리에 생성됩니다.
 이미 존재하는 PostgreSQL 데이타베이스를 사용하는 것도 가능합니다.
 (정확한 연결 스트링 구문에 대해서는 Trac 문서를 체크하십시오.)

데이타베이스 연결 스트링 [sqlite:db/trac.db]> <-이미 sqlite를 설치했으므로 그냥 Enter

프로젝트 생성 및 초기화
기본 위키 페이지 설치

..... (파이썬 파일 초기화, 기본 위키 설치)

---------------------------------------------------------------------
'minicube' 프로젝트 저장소 생성됨.

이하 생략

여기까지 나왔으면 일단 초기화 설정은 다 된것이다.

이제 git플러그인 설정을 시작해 보자.

trac/conf.d/trac.ini 파일을 열고 다음항목을 수정~!

[trac]
repository_dir = /Your/Git/Path    #ex> /home/lowid/work/src/.git/
repository_sync_per_request = (default)
repository_type = git
[git]
cached_repository = true
persistent_cache = true
shortrev_len = 6
git_bin = /usr/bin/git                   #ex> 절대경로로 적어야 제대로 되는것 같다   

[components] tracext.git.* = enabled

설정파일을 여기 올려두었으므로 편집하기 귀찮으신분은

trac/conf.d/trac.ini로 덮어쓰기하고 프로젝트 경로만 수정해서 사용하시면 되겠다.
(티스토리가 확장명을 변경하는것 같네요.)



이제 마지막으로 tracd를 설정해 보기루 하겠다

원래 아파치랑 연동하는 것이 정석인데....

뭐 어떤가 난 로컬에서 혼자 쓸거라서 그냥 tracd로 할려구 한다....

(아파치랑 연동하는것은 구글에서도 많으므로 따로 여기서 써야할 필요성도 못느끼겠고......)

일단 먼저 암호파일을 만들어야하는데....

1 htpassw를 사용한다. (생략)

2 htdigestd를 사용한다.  (아치의 경우는  AUR에 "apache-tools"라는 패키지를 설치하면 되긴한다.)
3 이도 저도 없다는 분은, 다음 파이썬 스크립트를 사용하세여.

$python trac-digest.py -u username -p passwd
예) python trac-digest.py -u lowid -p ab

이제 /etc/conf.d/tracd.conf 파일을 열자 볼거 별루 없다.

워낙 간단하기도 하고.... 주석도 친절하게 다 써져 있어서....

# configuration for trac standalone daemon
# see http://projects.edgewall.com/trac/wiki/TracStandalone
#

# PORT : port to be used by tracd ( option -p )
# 8080포트말고 다른 포트로 설정하시고 싶은분은 변경하시길
PORT=8080

# AUTH : file to use for authentication
# format :  project,digestfile,realm
# 앞서 작성한 패스워드파일의 경로를 꼭 맞게 적어주셔야 합니다.
# AUTH의 앞, 뒤는 "trac"이 들어가는지 꼭 확인해 주세요.
AUTH=trac,/home/lowid/work/trac/trac_login,trac

# PROJECT : list of project to serve, you can place more than one project.
# PROJECT="/path/to/project1 /path/to/project2"
# trac이 설치된 디렉토리를 정해야한다! 프로젝트경로(소스)가 아님을 유의하세요!
PROJECT="/home/lowid/work/trac"

그다음 시작데몬 리스트에 tracd를 올려놓고 재부팅을하거나, 데몬을 start하면 모든 설정과정이  끝.

이제 http://127.0.0.1:8080 으로 들어가서 프로젝트를 선택하면!

산듯한(?) 메인페이지가 뜨고, 타임라인(시간이력) 에 들어가면 git commit한것도 잘 보일것이다.

사용자 삽입 이미지

마지막 으로 관리자 사용자 계정에 관리자 권한을 부여하자

trac-admin TRAC_PATH permission add UserID TRAC_ADMIN

ex> trac-admin ~/work/trac permission add lowid TRAC_ADMIN

또, 관리자 모드에서 티켓을 삭제하고 싶다면, trac.ini에 다음 항목을 추가하면 된다
[components]
tracopt.ticket.deleter = enabled

ps:
문제가 발생하면 메녈페이지를 찬찬히 몇번 읽어보는것이 굉장한 도움이 되므로 한번씩 보도록 하자.

http://trac.edgewall.org/wiki/TracStandalone
http://trac-hacks.org/wiki/GitPlugin

ps2;
체인지 뷰 업데이트 할때 버그가 있다.
사용자 삽입 이미지
"View changes from" 항목에서 디폴트 값은 "2010년 9월 24일" 이런식으로 되어있는데,

저런식으로 데이터 포멧이 (YYYY년 MM월 DD일)쓰면 에러나므로

"2010-9-24" 이런 포멧으로 써야 정상적으로 업데이트가 잘 된다.

ps3;
git 커밋을 보면 이상하게 한글은 다 깨진다 우와아아앙 ㅠㅠ

ps4;
사실 이거 설정한내용은 별거아닌데 (메뉴얼 페이지에 다 있음)....
워낙 어문데서 삽질을 많이해서 포스팅을 할수밖에 없었다... 왠지 또 삽질할까봐서....씁..
특히 내가 삽질한 부분을 약간 보강

ps5;
로그인이 안되는것, 관리자 권한 설정 추가, 포스팅 수정 완료

[버그] glade 이미지 파일 경로 설정

glade ver 3.6.7에서

리소스 파일을 수정할때

"패스명을 정확하게 수동" 으로 넣어야한다.

(옆에 폴더 아이콘 눌러서 지정해줘도, *.glade파일이 있는 경로랑 같지 않으면 비록 glade 내부에서는

그림이 잘 나오지만, 실제로 프로그램을 실행시키면 다 액박으로 뜬다)

그러니깐 Play_icon.png 라는 파일이 glade파일이 있는 하위홀더 icons에 있다면,

직접 icon/Play_icon.png라고 써놓아야한다.

(시실뭐... 나 같은 경우에는 그냥 직접 xml파일에다가 경로를 썼음)

(원래 스크린샷을 찍을렸는데 display가 갈궈서 자꾸 검은 화면만 나오기 때문에 패스)

weechat launcher perl 스크립트 작동시키기

plugins.conf 파일에 다음을 추가하면 된다.

# plugins.conf -- WeeChat v0.3.3
#

[var]
perl.launcher.signal.weechat_highlight = "aplay ~/.weechat/sounds/beep_1.wav"

(아니면 /set 명령어로 직접 길게 쭉 쳐주는 방법도 있는데 그거보단 이게 편하니)

소리 재생 프로그램, 재생 파일의 경로는 알아서 각각 설정하면 된다.

몇달전부터 계속 소리가 안나는거 쓰고 있었는데... 도저히 참고 참고 참다가 안되서 그냥 고쳐버렸다.

이래서 귀차니즘은 무서운것이....

weechat의 내부 설정이 어떻게 바뀌었는지......

아니면 plugin.conf파일이 초기화 되어서 내용이 날라갔는지는 모르겠는데... 여튼 위와 같이 추가하면 된다.

-------------------------------------------------------------------------------------------------------------------------------------------

아. weechat프로세스를 다 끄고 난다음에 설정파일을 수정해야한다.

이상하게 weechat은 프로그램 종료시에 설정내용을 설정파일에 rewrite하는거 같다...

왜 이렇게 만들었는지는 모르겠지만 암튼 설정파일 건드릴때 마다 귀찮다. 쩝... 주의하자.

ps; 이제 IRC에서 불러도 제대로 응답(?) 할겁니다 ㅋ

[VirtualBox] Could not read from Boot Medium! 오류 해결법

Fatal:

Could not read from Boot Medium! System Halted!


오류 해결법 간단하다........;;

먼저  VirtualBox의 이미지를 선택한후 -> 설정 -> 저장소 -> 저장소 트리를 확인한다

만약, 아래 사진과 달리 "IDE Controller" 밑에, 운영체제의 "Vdi" 파일이 없으면

"슬롯(L)"이 프리이머리 마스터 인지 확인하고, "하드디스크(D)"에 알맞은 Vdi파일로 변경해 주도록 하자

(반대로, CD, ISO로 운영체제 설치할때 에러메세지가 떴다고 하면, CDR 트리를 변경하면 됨)
사용자 삽입 이미지

나 같은 경우에는, "IDE Controller" 밑에  어떤 Vdi파일도 선택되어있지 않아서 생기는 오류였다.

특히 VirtualBox에서 운영체제를 2개이상 막쓰다가 설정값이 막 바껴버리는 (ㅠㅠ)

현상이 종종일어나므로 조심~

간단한거지만, 나처럼 삽질하는 사람을 미리 방지하기 위해서 그냥 포스팅한다~
prev 1 ··· 7 8 9 10 11 12 13 ··· 69 next