2010년 1월 24일 일요일

SVN 권한설정

출처 : http://www.darkfox.info/1489

오늘은 SVN + apache  조합에서 권한 설정을 하려고 합니다.
프로젝트들 마다 Core 로직과 App 부분으로 나뉘어집니다. SVN을 통해서 특정 ID는 특정 구역에 접근하지 못하도록 설정하고 싶은데, 이 부분의 세팅을 하고 싶을 껍니다.
여기서  SVN 설치를 성공을 했다면, 이제 세팅을 해봅시다.
뭐 일단 간단 합니다. http.conf 파일을 수정합니다.
<VirtualHost *:80>
    ServerAdmin webmaster@darkfox.info
    ServerName svn.darkfox.info
    ErrorLog logs/svn.darkfox.info-error_log
    CustomLog logs/svn.darkfox.info-access_log common
    <Location />
        DAV svn
        SVNPath c:/svn
# 여러개의 프로젝트를 등록할꺼면 SVNPath 대신 SVNParentPath를 사용하세요.
#        SVNListParentPath on
#        SVNParentPath c:\svn
        AuthType Basic
        AuthName "Subversion repository"
        AuthUserFile c:/svn/conf/htpasswd
        AuthzSVNAccessFile c:/svn/conf/authz
    #    <LimitExcept GET PROPFIND OPTIONS REPORT>
    #        Require valid-user
    #    </LimitExcept>
        Require valid-user
    </Location>
</VirtualHost>
잘 했는지 봅시다.
http://svn.darkfox.info 를 경로로 사용하겠습니다.
SVNParentPath 를 사용했다면
http://svn.darkfox.info/만든프로젝트폴더 를 사용하시면 됩니다
예를 들면
http://svn.darkfox.info/test-svn 이런식이죠.
SVN 서버에 c:\svn\conf 에 있는 authz 파일을 수정합니다
[groups]
admin = darkfox
devteam = user2
tester = user1
anonymous =
[/]
#그룹으로 처리해도 되고
@admin = rw
[/core]
#읽기전용
@devteam = r
#접근금지
@tester =
[test-svn:/]
#ID를 직접 써도 됩니다.
darkfox = rw
샘플로 만든 파일입니다. 
SVN에 만들어진 경로들을 적당히 등록해주시면 하위 디렉토리들은 자동으로 적용됩니다.
다음엔 HTTPS를 이용한 SSL 보안과 SVN에 대해 다뤄보도록 하겠습니다.
궁금한건 댓글을 달아주시면 짬나는대로 답변해드리겠습니다.

2010년 1월 21일 목요일

시리얼포트 사용 C#

시리얼포트 사용에 관한 자료

http://nexp.tistory.com/272

WPF에서 직렬(시리얼)전송은 어떻게 할 수 있나요?

출처 : 데브피아

WPF에서 직렬(시리얼)전송은 어떻게 할 수 있나요? | Other
2009-04-16 오후 3:52:36

김창길 (hanbyi) 김창길님께 메시지 보내기김창길님을 내 주소록에 추가합니다.김창길님의 개인게시판 가기
번호: 108998  / 읽음:80

일반 윈도우 응용프로그램에서는 SerialPort 컨트롤을 사용하여 직렬전송 작업을 할 수 있는데, WPF 응용프로그램으로 작업할 경우 직렬포트와 연결된 장치와의 송수신은 어떤 방식으로 가능한가요?

WPF로 작성된 페이지가 UI면에서 좋을 것 같아서 이런 생각을 해봤는데요. 가능할지도 궁금하구요. 가능하다면 어떻게 구현할 수 있을지 궁금합니다.

P.S

WPF카테고리에도 같은 질문이 있는데요. 그쪽은 조회가 많이 일어나지 않는 듯하여 부득이 이곳에도 올리게 되었습니다. 결과 확인하고 답변 없는 곳의 글은 삭제하도록 하겠습니다. (죄송해요~)

이 글에 답변 등록하기

[답변]
2009-04-16 오후 5:48:43

이학수 (hitoo86) 이학수님께 메시지 보내기이학수님을 내 주소록에 추가합니다.이학수님의 개인게시판 가기
번호: 109017 

System.IO.Ports.SerialPort 

라고 있습니다.. Control 이구요...

System.IO.Ports.SerialPort  serial1 = null;

로 전역으로 선언하신후.. 사용하시면 될겁니다.~~

이 글에 답변 등록하기

[답변]감사합니다. 됩니다.(냉무)
2009-04-17 오전 10:24:21

김창길 (hanbyi) 김창길님께 메시지 보내기김창길님을 내 주소록에 추가합니다.김창길님의 개인게시판 가기
번호: 109059 

이 글에 답변 등록하기

[답변][재요청]이벤트가 발생을 안해요~
2009-04-16 오후 6:44:07

김창길 (hanbyi) 김창길님께 메시지 보내기김창길님을 내 주소록에 추가합니다.김창길님의 개인게시판 가기
번호: 109035 

먼저 답변 감사합니다.

안그래도 그방법으로 해봤는데요, DataReceived이벤트가 발생하지 않더라구요. (물론 일반 윈도우응용프로그램으로 작업했을때는 송수신 잘되는데, WPF로 할 경우에 그렇더라구요)

그래서 다른 방법이 있지 않나 싶어 여쭙게 됐습니다.

        private System.IO.Ports.SerialPort _spCOM = null;

        public void Init(string sPortName, int iBaudRate, Parity parity, int iDataBits, StopBits stopBit)
        {
_spCOM = new SerialPort(sPortName, iBaudRate, parity, iDataBits, StopBits.One);
_spCOM.DataReceived += new SerialDataReceivedEventHandler(spCOM_DataReceived);
            _spCOM.ReceivedBytesThreshold = 1;

            if (_spCOM.IsOpen)
            {
                _spCOM.Close();
                _spCOM.Open();
            }
            else
            {
                _spCOM.Open();
            }

        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            _spCOM.Write("Hello\n");

        }

void spCOM_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            try
            {
                string sRes = _spCOM.ReadExisting();

            }
            catch (Exception ex)
            {
            }
        }

뭐 대충 이런식으로 작업했거든요...

혹 뭐 빠뜨린거라도 있을까요?

이 글에 답변 등록하기

[답변]답변
2009-04-16 오후 7:34:04

이학수 (hitoo86) 이학수님께 메시지 보내기이학수님을 내 주소록에 추가합니다.이학수님의 개인게시판 가기
번호: 109038 

private System.IO.Ports.SerialPort _spCOM = null;

        public void Init(string sPortName, int iBaudRate, Parity parity, int iDataBits, StopBits stopBit)
        {
_spCOM = new SerialPort();
_spCOM.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(spCOM_DataReceived);

          _spCOM.BaudRate = ??;

          _spCOM.PortNamd = "COM?";
            _spCOM.ReceivedBytesThreshold = 1;   <-음 뭐 이건 없어도 상관없음

            if (_spCOM.IsOpen)
            {
                _spCOM.Close();
                _spCOM.Open();
            }
            else
            {
                _spCOM.Open();
            }

        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            _spCOM.Write("Hello\n");

        }

void spCOM_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            try
            {
                string sRes = _spCOM.ReadExisting();

_spCOM.DiscardInBuffer();   <-혹시나 Form렉걸리면서 버퍼가 오버칠수도 있으므로~

            }
            catch (Exception ex)
            {
            }
        }

음 간단한 부분 몇가지가 빠진거 같네요~~ 빨간색으로 표시한부분이 수정한 부분입니다~

ㅅㄱ하세요~

mediawiki 폐쇄운영

mediawiki\includes\DefaultSetting.php 를 열어서 다음과 같이 비로그인자의 퍼미션을 내린다.
  1. 이렇게 하면 비로그인 사용자에게는 로그인 하라는 말만 나온다.
    // Implicit group for all visitors
    $wgGroupPermissions['*']['createaccount'] = false;
    $wgGroupPermissions['*']['read'] = false;
    $wgGroupPermissions['*']['edit'] = false;
    $wgGroupPermissions['*']['createpage'] = false;
    $wgGroupPermissions['*']['createtalk'] = false;
    $wgGroupPermissions['*']['writeapi'] = false;
  2. 로그인 하라는 말이 밋밋하니 해당 멘트를 바꿔보자. mediawiki\languages\messages\MessagesKo.php 를 열어서 다음과 같이 고친다.
    'loginreqtitle' => '로그인 필요',
    'loginreqlink' => '로그인',
    'loginreqpagetext' => 'SW-WIKI를 사용하려면 $1해야 합니다. <br><br><br>팀원 아이디는 자... 주절주절....

APM 에 mediawiki 설치

서론

본 문서는 MediaWiki를 windows에서 설치하는 방법에 대해서 정리를 한 문서이다.

1 APM 설치

MediaWiki를 설치하기 위해서는 windows용 APM을 설치해야 하는데 완전 삽질을 할 뻔했지만 아래의 사이트에서 한번에 받아서 설치를 할 수가 있다.

http://www.apmsetup.com

[그림 1-1] APM 다운로드 사이트

[그림 1-1]에서 APMSETUP6파일을 적당한 위치에 다운로드를 한다. 다운로드 한 후 APMSETUP6_2009021700.exe 파일을 실행을 시킨다.

[그림 1-2] 언어 선택

파일을 실행을 시킨 후 언어 선택을 한다. 뭐 다른 언어를 선택을 해도 상관없지만 난 그냥 한국어를 선택을 하였다.

[그림 1-3] APM 설치 화면

[그림 1-2]에서 언어 선택을 한 후에 OK 를 누르면 [그림 1-3]과 같은 화면으로 나온 뒤 다음을 누른다. 그 다음에 사용권 계약 창이 나타나는 데 아래의 그림과 같다.

[그림 1-4] 사용권 계약

동의함을 누르고 다음 화면은 아래와 같다.

[그림 1-5] 스폰서 화면

스폰서 화면이 나오는데 check를 해제하거나 아니면 선택을 한 상태에서 다음을 누른다.

[그림 1-6] 설치 위치 선택

[그림 1-5]에서 다음을 선택을 하면 [그림 1-6] 설치 위치 선택을 하는 화면이 나온다. 경로를 변경을 할 수 있다. 적당한 위치를 선택을 한 후에 설치를 누른다.

[그림 1-7] 설치중 화면

[그림 1-8] 설치가 완료된 화면

[그림 1-8]에서 마침을 누르면 아래와 같은 readme.txt 창이 나타난다.

[그림 1-9] readme.txt

[그림 1-10] Apache2 실행 중인 화면

APM_Monitor 프로그램을 실행시키거나 원도우 오른쪽 Taskbar를 선택을 해서 보면 다음과 같이 apache2가 실행중이라는 것을 알 수가 있다.

[그림 1-10]에서 localhost를 선택을 하면 다음 아래의 그림과 같은 화면이 나타나면 정상적으로 설치가 된 것이다.

[그림 1-11] localhost 실행 화면

이제 [그림 1-10]에서 phpMyAdmin을 선택을 하면 아래와 같은 화면이 보인다.

[그림 1-12] phpMyAdmin 화면

[그림 1-12]를 접속을 하는 방법은 [그림 1-9]의 readme 파일을 읽어보면 알 수있다.

사용자 이름과 암호를 입력을 한 후 실행을 한 뒤 암호 변경이나 기타 설정을 할 수 있다.

[그림 1-13] phpMyAdmin 로그인 화면

2 Mediawiki 설치

Wiki에는 종류가 여러가지가 있다. 앞에서 ubuntu를 설치하면서 설명을 하였던 dokuwiki라는 것도 있고 다양한 wiki가 존재하는 데, 이 mediawiki는 국내에서 위키 백과에 사용이 되는 그런 위키이다. 그럼 windows xp에서 mediawiki를 설치를 하는 방법에 대해서 알아보도록 하자. 이 위치 설치방법은 http://meta.wikimedia.org/wiki/Help:Installation 를 참고로 하였다.

먼저 파일을 다운로드 한다.

http://www.mediawiki.org/wiki/Download 에서 mediawiki 파일을 다운로드 한다. 나는 그냥 1.14 버전으로 다운로드 했다.

파일을 다운로드 한 후에 APM_SETUP이 있는 폴더에 예를 들면 C:\APM_Setup\htdocs안에 압축을 풀고 이름을 mediawiki로 변경을 한 후 http://자신의 PC IP/mediawiki 또는 http://localhost/mediawiki 를 입력을 하면 아래 이미지가 나타난다.

[그림 2-1] mediawiki/index.php 화면

이 화면에서 please setup the wiki first를 선택을 하면 진짜로 wiki를 설치를 하는 것이 된다.

[그림 2-2] mediawiki 설치 화면 1

[그림 2-3] mediawiki 설치 2번째

마지막에 install을 선택을 하면 아래 그림과 같은 화면이 나온다.

[그림 2-4] 설치 성공 후 화면

설치가 완료된 후에는 config/LocalSettings.php 파일을 mediawiki의 상위 디렉토리로 파일을 이동을 한 뒤에 config 폴더를 삭제를 해 준다. 설정을 다 한 후에 http://localhost/mediawiki/index.php 를 실행을 하면 다음과 같은 화면이 나타난다.

[그림 2-5] 최종 설치 후 화면

출처 :http://yuihorie.tistory.com/76