Cygwin emacs용 mule-ucs 설치

2009/03/06 19:41
cygwin용 emacs에서 utf-8로 저장된 파일의 한글을 보기에 제일 쉬운방법이 mule-ucs 패키지를 설치하는 방법이다. cygwin 패키지로 제공해주면 좋으련만 그렇지 않기 때문에 직접 컴파일해서 설치해야한다.

http://tats.haun.org/mule-ucs/ 에서 최신 mule-ucs 를 다운받는다.
당당하게 unofficial이라고 써있다.

다운받은 mule-ucs 파일을 적당한 곳에 풀면 mucs-comp.el 이 있는 디렉토리 밑이 doc/ 디렉토리와 lisp/ 디렉토리가 있을것이다. 그 디렉토리에서 mule-ucs를 바이트코드 컴파일 한다
emacs -q --no-site-file -batch -l mucs-comp.el
컴파일이 다되면 emacs/site-lisp 디렉토리 밑으로 lisp/ 디렉토리를 mule-ucs 이름으로 바꿔 옮겨준다
내 cygwin system은 다음과 같은데
$ uname -srv
CYGWIN_NT-6.0 1.5.25(0.156/4/2) 2008-06-12 19:34
다음과 같이 옮겼다
mv lisp/ /usr/share/emacs/site-lisp/mule-ucs
마지막으로 .emacs 파일을 설정한다.
(require 'un-define)
참고로 시그윈 이맥스에서 한글을 쓰는 방법이 여러가지 있지만 나는 다음과 같은 방법을 사용한다
(set-keyboard-coding-system 'korean-iso-8bit) ; using IME
(set-selection-coding-system 'korean-iso-8bit) ; copy/paste

윈도우/개발환경 cygwin, emacs, utf-8

TortoiseSVN에서 키 방식으로 KLDP.net svn 사용하기

2009/01/10 16:59
관련된 글이 kldp 포럼에 올라와있는데, SSH 개념을 몰라 삽질했던것들을 바탕으로 재정리 해본다.

kldp.net 은 svn을 ssh 터널링을 이용하여 사용하도록 되어있다. 그래서 업데이트시나 커밋시에 암호입력을 매번해주거나 ssh 의 공개키-개인키 방식을 이용하여 암호입력없이 이용할수 있다.

ssh의 공개키 - 개인키방식이라는것은 접속하고자 하는 호스트에 공개키를 올려놓고 자신이 사용하는 클라이언트에서는 개인키를 사용하여 접속하는 방식이다. 만일 개인키-공개키가 rsa라는 알고리즘으로 만들져 있다면, 호스트에 올려져있는 공개키는 보통 접속하고자 하는 홈계정의 .ssh/authorized_keys 파일에 있고, 자신의 개인키는 .ssh/id_rsa에 있다.

이러한 공개키 - 개인키를 만드는 프로그램들이 여럿있는데 openSSH 패키지로 들어있는 ssh-keygen 과 PuTTY Key Generator 가 있다. 그리고 각각의 프로그램이 만드는 키는 동일한 형식을 가지지만 관련 파일을 읽어들이는 방식이 미묘하게 다르다. 즉 PuttY key generator가 만든 키나 ssh-keygen 이 만든 키 형식은 같지만 파일로 저장했을때 서로 다른 형식으로 저장된다.

kldp.net을 키 인증방식으로 접속하고자 했을때 처음 봉착했던 문제가 바로 이같은 차이를 인식하지 못해서였다.

TortoiseSVN에서는 ssh 터널링을 PuTTY 계열의 plink를 TortoiseSVN에 맞게 개량한 TortoisePlink를 사용한다. 그 프로그램을 파일로부터 키를 읽어 들일때 Putty계열 파일형식인 ppk를 이용해 읽어들이기 때문에 ssh-keygen이 생성해낸 id_rsa 파일을 읽어들이기 시도를 하면 실패했던 것이다.

다른 문제는 이 망할 kldp.net 계정시스템 때문이었다.

ssh 공개키같은 경우 kldp.net의 계정편집을 통해서 입력이 가능한데 이것이 crontab을 이용해서 1시간 간격으로 업데이트 된다는게 문제다. 처음에 키와 키가 파일에 저장될때 방식이 다르다는것을 이해하지 못해서 파일내용을 그대로 공개키에 입력을 했었은데 그걸 확인하는데 1시간이 걸린다. 헐..

계정으로 접속해서 .ssh/authorized_keys를 직접편집해보고 싶어도 kldp.net은 계정접속을 금지하기때문에 그렇게 할수 없다. 다행히 scp는 이용이 가능해서 파일을 -r 옵션으로 .ssh 디렉토리 통째로 올리면서 테스트 했다.

여하튼 한방에 kldp.net 계정에 TortoiseSVN을 이용하여 접속하는것을 성공하려면

  1. ssh-keygen 이 아닌 putty key generator를 이용해서 키를 만들어라. (키는 마우스 움직임으로 만들어주므로 만드는 동안 마우스를 움직여 주어야 한다)
  2. 공개키 입력은 putty key generator 가 생성한 파일의 내용이 아닌 프로그램에서 붙여넣기를 위해 보여주는 키를 입력하라.

윈도우/개발환경 kldp.net, ssh, svn

부팅시 내문서 자동시작 문제

2007/12/05 23:45
여차여차해서 윈도우를 대규모 업데이트했다. 중요 업데이트에 익스플로러7도 올라오고 이것저것 업데이트 했더니만, 재부팅시에 짜증나게 내문서가 자동시작 되더라..

-_- (이젠 말하기도 지겹지만...) 시험기간인지라, 문제를 해결해야겠다는 강한 집념으로 여기저기 들쑤시고 다니다가 오! 정확한 답변을 여기서 들을수 있었다.

그래서 당장에 regedit 을 열어 HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon 요기의 Userinit 값을 찾아보니, 이런! 나도 역시 C:\windows\system32\userinit.exe,,exploerer.exe 요런식으로 잘못된 값이 적혀 있었다. 그래서 당장 'C:\windows\system32\userinit.exe,' 요렇게 바꿔주니 문제 해결!

지식인같은데에서 쉽게 답변을 찾을수 없었기에 이렇게 블러그에 글을 남겨봤다.

윈도우/실행환경 윈도우팁

VMWare Player 네트워크 설정

2007/11/09 07:59
vmplayer 내의 게스트 OS가 통신을 하려는 대상을 3개로 나눈다면
  • 내부망에서 완전한 컴퓨터 처럼 보이려는 경우. embedded 장비와 통신을 하려면 vmplayer내의 게스트 OS(내 경우에는 redhat9)가 embedded 장비입장에서 완전한 컴퓨터여야 했다.
  • 호스트 OS와의 통신을 하려는 경우. vmplayer 의 경우 공유폴더가 없기 때문에 호스트 OS와 파일교환을 하려면 서로 통신을 할수 있는 환경을 꾸미고 scp 등으로 파일공유를 하는게 제일 편했다.
  • 게스트 OS에서 인터넷으로 웹서핑등을 하려는 경우
로 나눌수 있다. 맨 처음의 경우는 실제 랜카드를 Bridge로 사용하여 통신하면 되고 후자의 두 경우는 vmplayer를 깔때 딸려 설치되는 가상 랜(VMNet)을 이용해 NAT을 이용하면 된다. 이렇게 랜카드를 vmplayer에 매칭시켜주는 프로그램을 vmplayer 폴더에서 찾을 수 있다.
vmnetcfg

vmnetcfg 프로그램을 실행시켜서 브릿지에 Physical LAN을 설정해주고 NAT에는 VMNet8을 지정해 준다.
vmnetcfg_content



브릿지를 사용하여 내부망에서 통신하기
브릿지를 이용한 통신에서 키포인트는 자신의 서브넷을 구축하는 것이다. 내 경우에는 Physical LAN을 게이트웨이로 삼고 192.168.11.0/24 (-_- 맞나, 어쨌든 0 ~ 255)을 서브넷으로 하여 embedded 장비와 vmplayer 내의 게스트OS를 통신했다. 게스트OS의 주소는 192.168.11.111 이었고 embedded 장비의 주소는 192.168.11.112 였다.
  • 호스트 OS인 XP에서 설정
bridge_xp_01

bridge_xp_02


  • 게스트 OS인 Redhat에서 설정
bridge_vmplayer



NAT를 이용하여 호스트OS와의 통신 및 인터넷 공유
게스트OS쪽에서 호스트OS와 인터넷을 공유하거나 호스트OS와 통신을 하려고 한다면 NAT으로 설정하는게 간편하고 쉽다. vmplayer에서 NAT이용할때 이 랜을 사용하겠다고 vmnetcfg 프로그램에서 지정한 랜을 자동으로 해놓고 vmplayer 에서 NAT으로 설정하면 끝이다. 만일 호스트OS와 인터넷을 공유하고 싶다면 XP에서 제공하는 인터넷 공유를 사용하면 된다.
nat_xp_01

nat_internet_share

윈도우/실행환경 vmplayer, 학교수업

PortableApp - Firefox Portable

2007/09/27 20:07
내가 자주쓰는 확장으로 무장된 파이어폭스가 없으면 도저히 웹서핑을 못하는 정도에 이르러서 예전부터 생각해두었던 PortableApp - FirefoxPortable을 깔았는데, 이럴수가. 너무 좋다.

가장큰 장점은 확장을 설치하면 이동저장매체에 설치가 되어서 어디를 가든지 즐겨쓰는 확장을 가지고 파이어폭스를 이용할 수 있다는데 있다. 브라보.

사용방법은 무척 간단한데, http://portableapps.com/ 에서 Firefox Portable을 다운받은후에 적당한 곳에 설치한다음에 그 폴더를 이동저장매체에 카피하면 끝이다. 그후 firefox.exe가 아닌 최상위폴더의 FirefoxPortable.exe를 실행하면 되고 업데이트는 파이어폭스 메뉴에 있는 업데이트를 이용하면 된다.

이후, 파이어폭스가 영문인게 거슬리면 한글팩을 설치해주면 되는데 우선 Locale Switcher 를 설치해주고 김정균님의 파이어폭스 자료실에 가서 ko.xpi라는 한글팩을 설치하고 로케일을 한글로 바꾸면 된다.

몇가지 팁을 적어보면, 우선 sage를 사용하는 경우 custom css를 사용하기가 애매하다. 그래서 내 경우에는 아예 sage.jar에서 기본 css를 Sage Style 에서 제공해주는 mozilla 2단 css 로 바꾸어 사용한다. 바꾸는 방법은 간단한데, 일단 파이어폭스 포터블 하부 폴더에서 sage.jar를 찾아서 압축을 푼후에 content/res 에 있는 sage.css를 원하는 스타일시트로 변경해 주고 다시 jar로 압축한후에(jar는 zip과 동일한 압축 포멧이다. 따라서 zip으로 압축하고 jar로 파일명을 바꿔도 된다.) 기존 sage.jar에 덮어쓰면 된다.

또다른 팁으로 실행시마다 스플래시가 실행되는데, 그것이 보기 거슬린다면 firefoxportable.ini를 찾아서 FirefoxPortable.exe 파일이 있는 곳에 복사한후 DisableSplashScreen를 false에서 true로 변경해 주면 된다.

윈도우/실행환경 파이어폭스

EOUWiz.exe와 무선랜

2007/09/23 19:40
윈도우가 부팅후에 한참동안 탐색기나 다른것들이 실행되지 않았다. 참고 살다가 짜증이나서 고칠라서 나서리 일단 한가지 문제가 EOUWiz.exe 라는 인텔무선랜 프로그램이 무겁기 때문에 지우는게 낫다는거랑 msconfig를 이용해서 서비스를 내리라는 글을 찾고 - 흑흑. 물론 그사이에 다른것글들도 봤고 시키는대로 해봤고 삽질임을 깨달았다 - 시키는대로 했다.

우선 EOUWiz.exe는 인텔에서 제공해주는 최신 드라이버와 프로그램을 까니까, 걍 옛날것들이 다 지워지더라. 황당해하며 윈도우에서 제공하는 무선랜관리프로그램을 쓰고 있는데, 생각보다는 좋다. 인텔의 프로파일 관리기능이 참 좋았는데, 그렇저렇 쓸만한 프로파일관리기능과 비슷한 '사용가능한 네트워크' 목록을 제공해주더라. 그래서 EOUWiz.exe랑 비슷한 인텔무선랜 떨거지들을 덜어낼 수 있었다.

다음으로 msconfig 를 실행창에서 실행한후에 서비스에서 'Server' 항목을 지워주니 부팅후에 멍하니 있는 시간은 없어졌다. 원인은 잘 모르겠지만, 아마 '부팅후 방화벽설정'이라는 MS의 정책을 수행하려다보니 그 사이에 메시지큐를 막나보군..이라고 짐작만 할뿐이다.

어쨌든, 이 두가지 작업으로 상당히 가뿐해졌다. 테마도 고전으로 바꾸고 배경화면에 그럴싸한거 깔고 생활하니 3년전 노트북임을 잊게할만큼 부드럽게 동작한다. 나이스.

윈도우/실행환경 윈도우팁

Visual Studio Express 한글판..

2007/05/06 22:46
윈도우에서 C++ 프로젝트를 하려면 역시 비주얼 스튜디오가 제일 무난하다. 더욱이 express 는 공짜 아니던가!
그런데 한글판 익스프레스에서, 영문판에서 잘되던 win32 위자드가 안되더라. 영문판 1033 대신에 1042 에서 영문판에서 하라는데로 했는데도(삐리리.disable 을 주석처리 하는거) 안되러라. 뿔딱지가 나서 AppSettings.htm을 보고 있는데...이건 정말 완전 개판 html 이었다. 도큐먼트 선언이 없는것은 물론이고, 처음 주석부터가 틀려 먹었다.

근데, FireFox에서는 html 파일이 열렸고, Validator Check에서도 심각한 오류는 없었다. 물론 IE에서는 열리지 않았고.. 보니까, 한글문제 세팅이 잘못되서 열리지 않았던 거였다.

<meta http-equiv="Content-Type" content="text/html; charset=ks_c_5601-1987">

<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
로 바꿔주니 잘된다.
아.. 정말 이런 사소한걸로 골치아프기 싫다.

윈도우/개발환경 비주얼스튜디오

vim fileformat 과 sln

2007/04/30 13:50
간혹 CVS를 통해 얻은 오픈소스의 sln 파일이 unrecognized version 으로 나올경우가 있다. 이건 십중팔구 sln text의 fileformat 문제다.

vim에서는 dos 와 unix 그리고 mac 의 text 파일포맷 변경을 쉽게 할수 있는 명령이 존재한다. fullname으로는 fileformat 이고 줄여서 ff 이다.

unix fileformat 을 dos로 바꾸는것은 간단하다.
:set fileformat=dos

:help fileformat 을 해보면 그밖에 자세한 사용법을 알 수 있다.

윈도우/개발환경 vim, 비주얼스튜디오

MDI 의 종말?

2006/08/03 22:22
최근 많이 쓰는 프로그램들은 MDI를 거의 안쓰는것 같다.
대신에 Splitter Window 라든지 Dockable 윈도우를 쓰는것 같다.

UI에 대한 SWT의 재해석은 놀랍다. 이제 도큐먼트대신에 워크벤치와 사이드바개념은 널리 익숙하다. 사실 MS제품들도 보면 이런 UI다. 윈도우 탐색기나 Visual Studio 등등..

UI를 만든다면, 따라서 윈도우-워크벤치-바 개념으로 접근하여 설계하는게 좋을것 같다. 워크벤치는 탭이 가능한 윈도우가 좋을것이다. 바는 기능에 따라서 지네들끼리 동적으로 나누어 질 수도 있을것이다. 그러나 바에 과도한 자유를 주는것은 위크벤치상의 일을 익숙하게 만드는데 어렵게 할 수 있는 요인이 될수도 있다. 그런면에서 파이어폭스의 고정적 사이드바와 하단의 동적 도구바는 상당한 일관성을 지녀 익숙해지기 쉽다.

최근의 KDE프로그램들의 UI도 관심을 가질만하다. 이들은 전통적으로 MDI가 적었고 DialogBar와 같은 Dockable Window가 많았다. QT를 배워보는것도 UI 공부를 하는데 좋은 일일 것이다.

윈도우/개발환경 Development, MFC, 주저리

MFC를 이용한 맵툴만들기

2006/08/02 00:55
회사에서 하고있는일이다...
나름대로 재미있고 배울것이 많다.
그중에서 MFC를 배우는것은 잘된일일까? 삽질일까?

회사 내부모듈중에 GUI툴킷이 있어서 그것을 더 개량시키는게 어떻냐는 의견을 제시해봤는데, 예전에 그것을 해보고 그만뒀단다. 그래픽 디자이너들이 효율이 떨어진다고 해서...

어찌되었건 MFC는 가장 성공한 GUI 라이브러리 중에 하나다. 일단 지금 파악한것은 도큐먼트-뷰 디자인 아키텍쳐와 이들 사이의 의사소통방법정도.. 구시대의 유물로 치부하기에는 너무 현역에서 잘뛰었다. 하는김에 열심히 하자.

PS. 물론 내가 MFC를 고집하는것은 아니다. 내마음 같아서는 SmartWin++를 개량해서 ToMom프로젝트와 연계한후 이것을 게임 GUI와도 연동되게 하는 장엄한 계획을 해보고 싶지만.... 싶지만... -_-;

윈도우/개발환경 MFC