20090213 :: 사소한 불편함

지난 달에 개인적으로는 꽤 큰 사고가 하나 있었습니다.

‘프렌치 XX’ 류의 플라스틱컵에 든 커피류를 샀다가 마시지 못하고 가방에 넣어두었는데, 글쎄 이게 가방속에서 터져 버린 것입니다. 생각만 해도 몸서리 쳐지는 그 날의 가장 큰 아픔은 그 가방 속에 노트북 컴퓨터가 들어있었던 것이었죠. 가방 속에 음료 바다가 넘실거린 경험은 사실 그 이전에도 몇 번 있습니다. 가방 속 오렌지 쥬스의 바다속을 휘저어 핸드폰을 건져내었을 때의 황당함보다도 일단 ‘훨 고가’인 노트북 컴퓨터인데다가 거의 1년 넘게 사용했었던 컴퓨터이기에 속에든 모든 자료들… 게다가 그 중 대 부분은 현재 진행 중인 업무에 대한 내용들이었기에 그 정신적 충격은 이루 말할 수 없었지요. 

가방 자체가 좀 크고 노트북 컴퓨터가 세로로 세워져있었기에 실제 ‘침수’된 부분은 얼마되지 않았지만, 공교롭게도 그 ‘침수’가 일어난 부분이 이어폰 잭을 꽂는 부분인지라 속으로 커피가 꽤 많은 양이 들어갔나 봅니다. 핸드폰 정도라면 깨끗한 수돗물에 몇 번 씻어내어서 하루 이틀 정도 말린 후 사용하면 큰 문제가 없었지만 노트북은 도저히 그럴 용기가 안나더군요. 게다가 커피 씻어내겠다고 물에 담갔다가는 LCD 모니터를 다 갈아야 할지도 몰랐지요. (나중에 들은 이야기로는 다행히 ‘하드디스크’만 침수되었다고 하더군요. 데이터 복구 비용이 꽤 어마어마했기에 그냥 눈물을 머금고 ‘됐다’고 했습니다.)

어쨌거나 업무는 계속되어야 했기에, 부족한 회사 노트북 상황에도 불구하고 노는 노트북을 어렵게 마련했습니다. 예전에 개발자분이 쓰던 노트북을 받았는데 무지막지한 크기와 무게를 자랑하는 IBM ThinkPad T43입니다.  상단 껍데기가 금속재질로 되어있어 가방에 넣을 때 부터 약간 주눅 들게 만들더군요. 

G키와 H키 사이에 달랑 붙어 있는 조이스틱(?)이 처음에는 그렇게 적응이 안되더니 지금은 그래도 꽤나 적응이 됩니다. 게다가 마우스의 3버튼도 키보드 하단에 붙어 있어서 사용에 조금 익숙해지니 터치 패드를 쓰는 것보다 훨씬 편리하게 쓸 수 있더군요.

문제는 이 노트북의 키보드에는 윈도우 키가 없다는 겁니다. 그래서 윈도 탐색기를 불러 내야하거나, 실행창 프롬프트를 여는 등의 아주 많이 쓰는 활동들에 대해 제약을 받게 됩니다. 아무래도 마우스를 쓰지 못하는 경우가 많기에, 마우스 포인터를 저 아래로 내려야만 하는 것이 꽤나 불편하더군요.

그래서 과감히 몇 몇 버튼을 버리기로 결심했습니다. 약간 우습게도 이 노트북에는 ‘앞으로’, ‘뒤로’ 키가 있습니다. 처음에 보고서 뭔가.. 싶었는데 브라우저에서 눌러보니 Forward, Back 기능이더군요. 그래서 이 두 개의 키를 각각 윈도키와 탐색기 단축키로 설정하기로 했습니다.

키보드의 배열을 바꾸는 것은 레지스트리를 수정하는 것으로 가능하다고 합니다만, 그걸 매우 편리하게 해주는 프로그램이 있더군요. 사실 노트북을 쓰시는 분들 중 많은 분들이 키보드 리맵핑을 많이 하시는 것 같습니다. 아무튼 구글링을 통해 알게된 tweak key라는 프로그램을 통해서 그토록 원하던 윈도키를 키보드에 마련했습니다. 예전에도 이런 프로그램들을 좀 알아봤었는데, tweak key라는 프로그램은 설치가 따로 필요없어서 일단 합격 했다지요. :)

20090209 :: Gmail이 오프라인 모드를 지원합니다.

아주 가끔 생각이 날 때마다 gmail 화면 우측 상단에 있는 녹색 플라스크를 클릭해서 요즘 새로 google labs에서 나온 기능이 뭐가 있나 살펴보던 중에 흥미로운 걸 발견했습니다. 네, 제목에서 알 수 있듯이 드디어 gmail에도 gears가 적용되는 군요.

냉큼 해당 기능을 enable로 변경하고 설정을 저장하면 화면이 갱신되면서 우측 상단에 offline 링크가 생기더군요. 클릭하면 예의 그 빙글 빙글 돌아가는 화살표가 나타나면서 먼저 오프라인 모드를 위한 세팅을 시작합니다. 세팅이 끝나면 메일들을 동기화하는데요 아래 그림에서 보실 수 있듯이 지금 연결을 끊으면 언제까지 거슬러 올라가 메일들을 확인할 수 있다는 친절한 설명도 덧붙여 주는군요. 스크린샷에는 약 1270여개의 메일이 남아있는데요, 처음엔 2200개가 넘는 메일이 있었으니, 근 한달 새에 1000여개의 메일을 주고 받은 것인가요!!! (물론 업무용으로 쓰고 있기는 하지만 그래도…)

 

자, 이제 구글 캘린더만… (오매불망 벌써 몇 개월 째 손꼽아 기다리고 있음)

20090208 :: py2exe로 배포판 만드는 요령

사무실 컴퓨터에 접속하기 위해 vpn 연결을 자동으로 만들어주는 파이썬 스크립트를 하나 만들어서 사용 중인데, 나름 꽤 유용하게 잘 쓰고 있습니다.  자동으로 세팅값을 맞출 수 있도록 심혈을 기울여 제작한 탓에 파이썬과 pywinauto 모듈만 설치하면 노트북을 갈아 엎더라도 VPN 클라이언트 설정을 자동으로 복구해 주니 참 편하게 쓸 수 있더군요. 그런데 가끔은 제가 늘 쓰던 노트북이 아닌 다른 노트북을 가지고 다닐 경우도 있고 한데, 그 때마다 파이썬을 다 설치할 수도 없는 노릇이고 해서 아예 실행 파일 형태로 만들어서 USB 메모리에 넣어다니는 것이 어떨까 하는 생각이 들더군요.

그래서 py2exe라는 녀석을 찾았습니다. 음.. 모듈을 설치한 후에 따로 setup 스크립트를 만드는 것이 조금은 이해가 안 갔습니다만 몇 가지 테스용 스크립트를 만들어서 시도해보니 이것도 꽤 신기하더군요.

아무튼 py2exe의 사용법은 대략 다음과 같습니다.

먼저 setup.py 파일을 작성합니다. 당연히 파일 이름은 setup.py가 아니어도 상관없습니다. 내용은 다음과 같습니다.

 

from distutils.core import setup
import py2exe

setup(console=["exe로 만들 스크립트.py"])
 

이렇게 하고 setup.py로 저장한 다음(exe로 만들 스크립트와 같은 폴더에 넣어둡니다.) 도스 프롬프트 상에서 다음과 같이 입력합니다.

> python setup.py py2exe

몇 가지 간단한 스크립트를 만들어서 해보니 배포해야할 폴더의 크기가 어마어마 하다는 점에 깜짝 놀랐지만, 그래도 exe파일로 만들어 지는 것이 꽤 신기했습니다. 그래서 이번에는 vpn연결을 해주는 스크립트를 위해 setup.py 파일을 작성하고 실행했습니다… dist 폴더 내에 exe 파일은 정상적으로 만들어 졌지만 실행하니 뭔가 안됩니다. 그냥 콘솔 창이 아주 빠르게 떴다가 없어져 버리는 군요. 구글링을 통해 간단히(?) 답을 찾았습니다. py2exe를 위한 스크립트의 옵션은 그 형태가 매우 심오한 듯 합니다. 대충 아래와 같이 만들어서 성공했습니다.

from distutils.core import setup
import py2exe

setup(console = ['vpn.py'],
        options={
                ”py2exe“:{
                         “packages“:["encodings","pywinauto","pywinauto.controls","pywinauto.application"], } #사용된 모듈들을 적어준다.
                  }
        )

 오 재밌네요. 그리고 wxPython을 사용한 GUI 프로그램의 경우는 조금 특이한데요. 유형이 다음과 같습니다.

from distutils.core import setup
import py2exe

setup(windows=[{"script" : "wx_logextractor.pyw"}],
        options={
                ”py2exe“:{
                        ”packages” : ["encodings" , "wx",]}
                }
        ) 

이렇게 하고 나니 정상적으로 되는 듯 했습니다만, msvcp71.dll 파일이 없다고 합니다. 해당 파일은 dist 폴더에 복사해서 넣어주면 됩니다. 한가지 신기한 것은 제 시스템에도 msvcp71.dll이 설치되어 있지 않는데 pyw 그 자체로 실행했을 때는 잘 실행 된다는 점입니다. (그나저나 이런 dll 파일을 함께 패키징 할 수 있도록 하려면 스크립트에 어떤 내용을 추가해야 하는지 아시는 분 혹시 있으신가요?)

20090201 :: IE8 RC1 설치 실패기. 그리고 후유증

IE8 Beta2를 쓰다가 R1이 나왔다는 이야기를 듣고 설치해보기로 마음먹었습니다. 릴리즈 후보판이니 안정성은 보다 나아지겠지라는 막연한 기대감을 안고 말이지요. 설치 파일을 내려 받고, 혹시 몰라서 랜선을 뽑은 다음 안티 바이러스까지 비활성화 해둔 상태로 설치 시작! 그리고 두근 거리는 가슴을 진정시키며 재부팅!

그리고 그 후론 IE창을 볼 수가 없습니다…
UI가 보이자마자 거의 동시에 닫혀버리는 괴현상! 결국 설치해 둔 것을 제거하니 IE6로 돌아오더군요. 다시 IE7을 설치해보았지만 어김없이 같은 증상이…

오, 이런 결국 IE8 정식 버전이 릴리즈되어도 같은 증상이 생길 것이라는 막연한 (그리고 매우 신뢰도 높은) 불안감이 엄습해오기 시작합니다.

여러 가지 대책안들이 떠오르긴 하지만 이미 야심해졌으니 내일 생각해야겠습니다. 오 마이 갓.

 

p.s 

IE인 상태에서 IEFIX를 사용하여 모든 설정 값을 원상 복구하고 설치된 active-X들을 모두 삭제한 다음, 소심하게도 IE7을 설치하였더니 무사히 작동하는 군요. :) 와 다행이다.