레이블이 utility인 게시물을 표시합니다. 모든 게시물 표시
레이블이 utility인 게시물을 표시합니다. 모든 게시물 표시

2009년 4월 1일 수요일

LispIDE - 가볍게 쓸 수 있는 Windows 용 Lisp editor

Windows 환경에서 Lisp으로 간단한 코드를 작성하고 간편하게 실행해볼 수 있는 프로그램을 소개해드립니다. 물론 Emacs + SLIME 궁합이 상당히 강력하긴 하지만, 몇 줄 안되는 짧은 코드를 작성하고 실행해보는 데 그 무거운 Emacs를 실행하기는 좀 부담스러울 때가 있습니다.(저만 그런가요?) 그래서 뭔가 대체할 만한 것이 없을까 찾아보다가 발견하게 된 것이 바로 LispIDE입니다. 아마도 Common Lisp이나 Scheme 공부를 막 시작하시는 분들에게 특히 유용할 것 같네요.


LispIDE 특징을 살펴보면,
  • Lisp과 Scheme 소스에 대한 구문 강조(Syntax Highlighting) 지원
  • SBCL, CLISP, Corman Lisp 등 대부분의 commandline Lisp과 Scheme 구현체 지원
  • 편집창에 다중 탭 지원
  • 간편한 REPL 기능 제공 (Lisp 표현식을 손쉽게 전송)
  • 커서 키로 제어 가능한 편리한 history 기능 제공
  • CHM 형식의 HyperSpec, CLtL2 포함
  • Lisp 재시작 버튼 제공
LispIDE는 무료로 사용 가능한 freeware이고 소스도 함께 공개되어 있습니다. 홈페이지에 darcs 저장소에서 내려받을 수 있는 방법을 친절하게 알려주고 있습니다. :)

잡담.
최근 Windows 상에서 Emacs 23 CVS + SLIME CVS 궁합으로 SBCL을 연결해 사용해보면 약간의 문제가 있더군요. REPL buffer 상에서 입력한 표현식에 에러가 발생하면 그 다음부터 SBCL과 Emacs 사이의 pipeline에 문제가 생겨 더 이상 표현식이 전달되지 않는 현상이 생깁니다. CLISP은 별 문제가 없어서 당분간은 CLISP을 사용하려고 하는데, 속도면에서 월등한 SBCL을 쓰지 못하는 게 좀 아쉽습니다. 좋은 해결 방법 아시는 분 안계세요? :-$

2009년 3월 19일 목요일

Total Commander Unalz Plug-in (0.64 applied)

이런 변두리까지 찾아주시는 분들이 계셔서 약간의 책임감(양심의 가책) 같은 걸 느끼고, 앞서 올렸던 소스를 조금 손 봤습니다. ;-)
  • 내부적으로 사용되고 있는 bzip2, zlib의 최신 버전 소스를 가져다 적용했습니다. (bzip2 1.05, zlib 1.23)
  • Unalz 0.64 소스의 수정 사항을 Unalz plug-in 분리 소스에 반영했습니다. (Unalz plug-in이 Unalz의 소스를 가져다 동일한 파일명으로 복사한 후 일부분만 변경해서 사용하는 방식으로 만들어져 있더군요. 이 작업은 시간이 제법 걸렸습니다.)
  • 경로명 encoding 변경할 때 동적할당 되는 heap 대신 stack을 사용하도록 수정했습니다. (약간의 속도 개선)
  • VC++ 2008 Express Edition에서도 빌드가 가능하도록 수정했습니다. (집에는 VC++ 2008 상용버전이 없어요. ㅜㅜ)
    • Unicode String과 MBCS 간 변환 관련 ATL 라이브러리를 Win32 API로 대체했습니다.
    • afxres.h 관련 error 해결에는 BLUE'nLIVE 님의 글을 참고했습니다.

소스와 바이너리가 위와 같이 변경되었지만, 링크 주소는 예전과 동일합니다. -- 2009.03.30

-----

오래 전에 Total Commander의 unalz plugin을 build해서 올렸던 적이 있는데, 이번에 새로 0.64 버전의 unalz 소스를 가져와 다시 build 해보았습니다. Visual C++ 2008을 사용해서 build 하려다 보니 소스 코드 내용 중 약간 변경이 필요한 부분이 있더군요. 그리고, unalz 내부 자료형이 변한 것도 고려 대상이 되었습니다. 아무튼 얼렁뚱땅 손을 좀 봐서 build하고 사용해보니 아직까지는 별 탈 없이 잘 동작하고 있습니다.

혹시라도 사용하실 생각이 있는 분을 위해 링크 올려둡니다. (수정한 소스도 함께...)

Binary: wcxArc_Unalz_v0.64.rar
Source: unalz_wcx_0.1i_unalz_0.64_source.rar

위 링크에서 다운로드가 불가능하면 아래 링크(DropBox)를 이용해보세요.

BinarywcxArc_Unalz_v0.64.rar
Sourceunalz_wcx_0.1i_unalz_0.64_source.rar

그리고, 경우에 따라 아래의 MS C Runtime Library가 필요할 수도 있습니다.

Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)


원 소스의 출처는 다음과 같습니다.

Unalz 소스: http://www.kipple.pe.kr/win/unalz/
Unalz.wcx 소스: http://www.totalcmd.net/plugring/unalz_wcx.html

당연한 언급이지만, 여기서 링크한 binary와 source에 대해 저는 아무런 권리도 가지고 있지 않습니다. 모든 권리는 원 저작자에게 있습니다. 또한, 여기서 제공된 binary 또는 source를 사용하면서 발생할 수 있는 어떠한 물질적 정신적 손해에 대해서도 책임을 지지 않습니다. ;-)


주의:
위에서 잠시 언급한 unalz 내부 자료형 변경과 관련하여 주의할 점이 있습니다.
Unalz가 버전이 올라가면서 2 GB 이상의 압축 파일을 지원하기 위해 INT32 대신 INT64 타입을 사용하게 된 것 같은데, Total Commander plugin interface는 아직 32-bit int 형이기 때문에 여기서 문제가 발생할 소지가 있어보입니다. 우선은 32-bit int 범위 내에서 표현 가능한 범위는 적절히 casting 하고, 그것을 넘어가는 경우는 assert로 막아두었기 때문에 엉뚱하게 동작하는 경우는 피할 수 있겠지만, 2 GB 넘어가는 압축 파일을 풀려고 하면 아무래도 crash가 발생하게 될 것 같습니다. :-(

2007년 7월 6일 금요일

Calc version 2.12.1.13 for Win32


무한자리수 계산이 가능하고, 각종 수학함수들을 지원하며, C 스타일의 스크립트까지 사용할 수 있는 뛰어난 계산기를 소개할까 합니다. 비록 Interface는 단순한 Console UI 형식이지만, 그 기능은 지금 껏 봐왔던 그 어떤 계산기보다도 뛰어나다고 할 수 있습니다.

다음은 공식 홈페이지의 주소입니다.

LINK: http://www.isthe.com/chongo/tech/comp/calc/

현재 이 계산기는 GPL 라이센스 하에 그 소스가 공개되어 있고, Source Forge에 등록이 되어 있는 상태입니다. 처음부터 UNIX 기반으로 개발이 되었기 때문에 특별히 Windows용 바이너리가 제공이 되고 있지는 않지만, Cygwin과 같은 Win32 Unix 환경을 이용해서 compile할 수 있습니다.

제가 직접 compile하고 필요한 dll만을 추려서 굳이 Cygwin이 설치되어 있지 않은 시스템에서도 잘 동작하도록 만들어 놓은 패키지가 있습니다. 이 패키지는 Inno Setup을 사용해서 자동으로 설치가 이루어지도록 되어 있습니다. 다음 링크에서 다운로드 하실 수 있습니다.

LINK: Calc_2.12.1.13_setup.exe 다운로드 (MediaFire)
LINK: Calc_2.12.1.13_setup.exe 다운로드 (DropBox)

이 Win32용 Calc 바이너리에 대해서 저는 어떠한 권리도 가지고 있지 않습니다. 모든 소스와 compile 도구 및 라이브러리는 각각 원저작권자에게 그 모든 권리가 있습니다.

2007년 5월 24일 목요일

WMP Keys - Windows Media Player Global Hotkey Plug-in

Global Hotkey란, 대상 프로그램이 포커스를 가지고 있지 않더라도 특정 키 조합을 눌러서 그 키 조합에 할당된 동작이 실행되도록 하는 기능을 말합니다.

간단히 예를 들어보죠. WinAmp로 음악을 들으면서 문서 작업을 하고 있는데, 지금 듣고 있는 곡이 마음에 들지 않아서 다음 곡으로 넘어가고 싶습니다. 그런데, WinAmp는 트레이로 최소화 되어 있는 상태입니다. 이 때, Ctrl + Alt + Page Down 키를 누르면 굳이 마우스로 WinAmp를 끌어올려서 Next 버튼을 누르지 않더라도 간편하게 다음 곡으로 넘어갈 수 있습니다. (WinAmp 설정에서 global hotkey 기능을 활성화 시켜두어야 합니다.) 문서 작성 작업을 열심히 하고 있는 손을 키보드에서 떼지 않고도 빠르고 간편하게 WinAmp에 지시를 내릴 수 있는 것이죠.

많은 프로그램들이 global hotkey 기능을 지원하는데, 특히 음악 재생 프로그램 같이 백그라운드로 동작하는 프로그램들에서 많이 제공됩니다. 대표적인 프로그램이 WinAmp, Cowon JetAudio 같은 것들입니다. 인스턴트 메신저의 전설 같은 프로그램인 ICQ도 global hotkey 기능을 통해 사용자의 접근성을 매우 향상 시킨 경우로 볼 수 있을 겁니다.

이렇게 편리하고 좋은 기능을 Windows Media Player에서도 사용할 수 있도록 도와주는 플러그인이 있더군요. 바로, WMP Keys입니다.


(Windows Media Player에서 WMP Hotkeys 설정 중인 모습)

WinAmp의 global hotkey 플러그인에 비하면 매우 간단하지만, 재생/정지, 다음 곡/이전 곡, 볼륨 키우기/줄이기 등의 핵심적인 기능은 지원하므로 아쉬우나마 Windows Media Player의 가려운 곳을 긁어주기엔 부족함이 없습니다.

WMP Keys의 공식 홈페이지는 다음과 같습니다.

LINK: http://wmpkeys.sourceforge.net

설치 패키지를 다운로드 해서 설치한 뒤 Windows Media Player를 실행하고 플러그인 설정 다이얼로그에 들어가 보면 위 스크린샷과 같이 백그라운드(Background) 카테고리에 'Wmpkeys Plugin'이란 항목이 보일 겁니다. 이것을 선택하고 속성(Properties) 버튼을 누르면 hotkey를 설정할 수 있는 다이얼로그가 뜹니다. 입맛에 맞게 설정하고 닫으면 이제부터 Windows Media Player에서도 global hotkey를 사용할 수 있게 됩니다.

2007년 4월 22일 일요일

TeamTalk - 무료 다자간 음성 통신 유틸리티

온라인 상에서 게임을 하다보면 다자간 음성 통신이 매우 유용할 때가 많습니다. Rainbow SixCounter Strike 같은 게임이 특히 더 그렇다고 할 수 있을 텐데, 상황이 급박하게 돌아가는 순간에 마우스에서 손을 떼고 키보드로 전달할 메시지를 입력하기란 결코 쉬운 일이 아닙니다. 이럴 때 게임에 참여한 팀원끼리 음성 통신이 가능하다면 정말 편리할 겁니다.

수 년 전 Rainbow Six가 한국에서 한참 유행이었을 때 Roger Wilco라는 음성 통신 유틸리티가 있었죠. (물론 지금도 있습니다. 하지만, 유료 프로그램입니다. 공식 홈페이지 URL을 보면 GameSpy 서비스의 일부분이 된 것 같기도 하구요. 어쨌거나 2003년 이후로는 업데이트가 더 이상 나오지 않고 있네요.)

TeamTalk는 무료로 사용할 수 있는 다자간 음성 통신 유틸리티입니다. 함께 음성 통신을 하고자 하는 사람들이 동일한 서버에 접속한 다음, '채널(channel)'이라고 불리는 방을 개설한 이후, 그곳에 참여하는 것만으로 여러 사람들 사이의 음성 통신이 가능해집니다.

쓸데없이 긴 말 할 필요 없으니 스크린샷 몇 장을 통해서 설치, 사용 과정을 간단히 살펴보도록 하죠.

먼저, TeamTalk를 다운로드 해야 합니다. TeamTalk는 공식 홈페이지에서 무료로 다운로드 할 수 있습니다. TeamTalk 공식 홈페이지는 다음과 같습니다.

LINK: http://www.bearware.dk

Windows용 설치 프로그램을 다운로드하여 실행하면 간단하게 설치 과정이 진행됩니다. 설치가 완료된 후 TeamTalk를 처음 실행하면 설정 마법사가 실행됩니다.

가장 먼저 인터페이스에 사용할 언어를 선택합니다. 한글도 지원됩니다.


(설정 마법사 - 언어 선택)

그 다음은 서버 접속 시에 사용하고 싶은 대화명을 설정하고, TeamTalk 동작 방식을 선택합니다. 동작 방식은 두 가지가 있습니다. 첫 번째는 Push to talk으로, 말하는 내용을 채널에 전송하기 위해서 지정된 버튼을 눌러주는 방식입니다. 무전기와 유사한 방식이라고 생각하시면 됩니다. 두 번째는 음성 활성화인데, 마이크로 입력되는 신호를 감지해서 사용자가 말을 하는 순간 자동으로 채널에 전송해주는 방식입니다. 음성 활성화가 사용자 입장에서는 훨씬 편리하지만, 주변 잡음에 따라서 때때로 오동작하는 경우도 생깁니다.


(설정 마법사 - 사용자 설정, 음성 전달 설정)

오디오 장치를 설정합니다. 일반적으로 Direct Sound를 그대로 사용합니다. 테스트 버튼을 눌러서 장치가 잘 동작하는지 확인해볼 수 있습니다.


(설정 마법사 - 사운드 장치 설정)

자, 이제 설정이 끝났습니다.


(설정 마법사 - 완료)

설정이 끝나고 TeamTalk가 본격적으로 실행된 화면입니다. 서버 관리자를 실행하여 TeamTalk 기본 서버에 접속해봅시다.

서버 주소: teamtalk.dyndns.dk
호스트 TCP 포트: 10300
호스트 UDP 포트: 10301


(서버 관리자에서 접속할 서버를 추가한다.)

서버에 접속한 화면입니다. 이미 만들어져 있는 채널들이 많이 있습니다. 기존에 만들어져 있는 채널에 들어가거나 새로운 채널을 만들 수 있는데, 암호를 지정하여 비공개로 생성하는 것도 가능합니다.


(서버에 접속하고 채널을 만들었다.)

이렇게 해서 TeamTalk의 매우 간단한 소개가 끝이 났습니다. TeamTalk는 친구들과 네트웍 게임을 하거나 원격지의 사람들과 간편하게 업무 상 컨퍼런스를 할 일이 있을 때 유용하게 사용될 수 있을 것입니다. 더 이상 의사소통의 어려움으로 게임에 지는 상황을 만들지 마세요. ;)

덧.
TeamTalk 공식 홈페이지에서 제공하는 서버 외에 TeamTalk NT Service(Windows 2000/XP), TeamTalk Daemon(Linux, FreeBSD)을 사용하여 개인 서버를 운영할 수도 있습니다. Manual에 잘 설명이 되어 있으니 관심 있는 분은 한번 시도해보는 것도 좋겠죠. :)

2007년 4월 7일 토요일

Locate32 - 인덱스 DB 방식 고속 파일 검색 도구


(Locate32 실행 화면)

Windows 2000까지만 해도 Windows 탐색기의 파일 검색 기능이 군더더기 없이 빠르고 좋았습니다. 원하는 파일을 빠르고 정확하게 잘 찾아주었죠. 그런데, Windows XP로 넘어오면서 Zip Folder 등과 같은 그다지 유용하지 못한 기능들이 추가되면서 검색의 속도는 더 느려졌고 결과도 시원찮게 변해버렸습니다. (물론 이것은 지극히 주관적인 제 생각입니다.)

이 때문에 Windows XP를 사용하고 난 이후부터는 Total Commander, flyExplorer 같은 별도의 파일 매니저 프로그램을 더 자주 사용하게 되었습니다. 그러나, 비록 이런 파일 매니저 프로그램을 사용하는 것이 Windows 탐색기를 사용하는 것에 비해서 훨씬 만족스런 파일 검색 결과를 얻을 수 있다고는 하지만, 시스템 전체에서 특정 파일을 찾고자 할 때는 여전히 많은 시간이 소요되는 것이 사실입니다.

자, 그럼 좀더 효과적인 파일 검색 방법에는 뭐가 있을까요? 가장 먼저 떠오르는 것이 데스크탑 검색 엔진을 사용 것입니다. Google, Yahoo, Naver, MSN(지금은 Windows Live로 이름을 바꾸었죠.) 등등 정말 많은 데스크탑 검색 엔진이 있습니다. 이들은 하나 같이 막강한 기능으로 무장하고 있고 거기다 이쁘기까지 합니다. 파일 뿐 아니라 이메일, 웹 서핑 내역까지 다 인덱싱 해서 편리하게 검색할 수 있도록 도와줍니다. 심지어 다양한 문서(MS Office, HWP, PDF, Text, RTF 등등)의 배를 갈라서 문서 내 텍스트까지도 인덱싱 해주죠. 회사에서 업무 상 넘쳐나는 자료들을 빠르게 검색하기엔 이보다 더 좋은 방법이 없을 겁니다.

하지만, 결정적으로 무겁습니다. 단순히 파일 이름, 날짜, 크기 등의 정보만을 가지고 원하는 파일을 빠르게 찾고 싶었을 뿐인데, 여기에 데스크탑 검색 엔진까지 쓰는 건 소 잡는 칼로 닭을 잡는 격이죠. - 사실 전 회사에서 데스크탑 검색 엔진을 유용하게 잘 사용하고 있습니다. 하지만 집에서까지 쓰고 싶지는 않아요. ;-)

결국 오늘 이야기의 핵심은 가볍고 빠른 파일 검색 도구를 소개해드리고자 함인데, 서론이 심하게 길었습니다. 오늘 소개해드리는 파일 검색 도구는 Locate32입니다.

Locate32는 선인덱싱(pre-indexing) 방식의 데스크탑 파일 검색 도구입니다. 무슨 말인고 하니 검색하기에 앞서 미리 모든 로컬 파일 시스템에 있는 파일들의 기본 정보를 DB화한다는 것입니다. 그 이후 검색을 할 때는 실제 파일 시스템을 일일이 뒤지는 것이 아니라 미리 만들어둔 DB 안에서 찾기 때문에 속도가 엄청 빠릅니다. 또한 검색을 하지 않을 때에는 시스템에 아무런 부하도 주지 않습니다.


(Locate32 검색 DB 설정 화면)

대신, 검색하기 전에 최소 한번 이상은 미리 인덱싱을 해야 하는 것이 부담일 수 있습니다. 그리고, 자주 내용이 바뀌는 드라이브나 폴더들은 제대로 된 검색 결과를 위해서 다시 인덱싱을 해야하기 때문에 오히려 더 번거로울 수도 있습니다. 하지만, 드라이브나 폴더 별로 DB 파일을 따로 만들 수 있기 때문에 자주 갱신되는 것과 그렇지 않은 것을 분리해서 DB를 구성해두면 큰 부담 없이 변경된 파일 시스템 내용만 빠르게 반영할 수 있습니다.


(인덱스 갱신할 DB를 따로 지정할 수 있다.)

그리고, Windows 탐색기 메뉴에 등록되기 때문에 특정 폴더나 드라이브를 대상으로 빠르게 검색 기능을 활성화 활 수 있다는 것도 장점입니다.


(Windows 탐색기 메뉴에서 바로 사용 가능)

결론적으로, Locate32는 갱신이 비교적 덜 발생하는 파일 시스템에 대해서 빠르고 효과적인 검색을 제공하는 유용한 도구입니다. 데스크탑 검색 엔진의 아쉬운 점을 잘 대체해주는 또 다른 매력의 필수 도구 중 하나라 할 수 있겠죠.

Locate32의 공식 홈페이지는 다음과 같습니다.

LINK: http://locate32.webhop.org

2007년 3월 25일 일요일

HxD - Freeware Hex Editor

컴퓨터로 이런 저런 작업을 하다보면 특정 파일의 내부를 있는 그대로 까보아야 하는 경우가 제법 있습니다. 그 파일의 형식이 일반 텍스트 파일이라면 텍스트 편집기나 하다 못해 메모장으로라도 열어서 확인할 수가 있지만 이진(binary) 데이터로 가득 찬 파일들은 문제가 좀 있죠.

이때 필요한 것이 hex editor입니다. 개별 byte를 16진 값으로 보여준다고 해서 붙여진 이름인 것 같은데, 정말 없어서는 안될 필수 도구 중 하나라고 감히 말할 수가 있겠습니다.

문제는 쓸만한 hex editor는 죄다 상용 프로그램이라는 것입니다.(꽤 유명한 hex editor로는 Hex Workshop, WinHex 등이 있습니다.) 물론, 무료로 개발되어 배포되는 것들도 제법 있고, 16진 편집 기능을 함께 제공하는 텍스트 편집기(PSPad, DesyEdit 등이 있죠.)도 있지만 상용 hex editor에 비해서 기능이 많이 부족한 것이 사실입니다. 늘 이런 사실을 안타까워 하고 있었는데, 오늘 우연히 발견하게 된 HxD가 그 안타까움을 상당 부분 해결해주었습니다.



HxD의 제작자가 소개하는 주요 기능을 나열해보면..
  • RAM 편집 기능
  • Disk 편집 기능 (Hard disk, Zip-disk, CD, ...) (Win9x, WinNT and higher)
  • 유연하고 빠른 찾기/바꾸기 기능(Unicode 지원을 포함하는 문자열, 16진 값, 정수 값, 실수 값)
  • Ansi, DOS, EBCDIC 문자셋에 대한 표현 기능
  • 체크섬 생성 기능: Checksum, CRCs, Custom CRC, SHA-1, SHA-512, MD5, ...
  • 소스 코드 형식에 맞춘 데이터 내보내기(Pascal, C, Java)와 형식화된 데이터 내보내기(plain text, HTML, Richtext, TeX) 기능
  • 기본적인 수준의 데이터 통계
  • 파일 크기 무제한
  • 수정된 데이터 부분 표시 기능
  • 되돌리기 무제한
정말 상용 프로그램에 비해서 크게 뒤지지 않는 멋진 기능들을 제공하고 있습니다. 이런 좋은 프로그램을 무료로 배포한다는 점에 대해 제작자에게 감사하지 않을 수 없습니다. ;-)

그리고, 제가 별도로 강조하고 싶은 특징은, 설치가 필요 없는 단일 실행 파일로 구성되어 있다는 점입니다. USB 메모리 등에 휴대하고 다니면서 편리하게 사용할 수도 있고, 홈페이지에서 바로 다운로드해서 사용하고 사용이 끝나면 지워버려도 상관없기 때문에 PC방 등이나 내 소유가 아닌 PC에서 작업할 때에도 부담이 없습니다.

HxD의 공식 홈페이지는 다음과 같습니다.

LINK: http://www.mh-nexus.de/hxd/

저와 같은 목마름으로 안타까워 하셨던 분들은 이제 HxD로 그 목마름을 해결해보시기 바랍니다. :)

2007년 3월 11일 일요일

Giveaway of the Day - 하루에 하나씩 무료 정품 S/W

웹초보의 Tech 2.1 블로그 사이트에서 Aston <- 빨리 받으세요!!란 글을 통해 Giveaway of the Day를 알게 되었는데, 당시 Aston을 받아 놓고도 멍청하게 즉시 설치하지 않고 다음 날 설치하는 바람에 activation을 할 수 없었던 안타까운 사연을 가지고 있습니다.


(이 로고는 공식 홈페이지에서 가져왔습니다.)

Giveaway of the Day는 매일 유료 S/W 하나씩을 선정해서 그날 하루 동안 다운로드 하고 바로 설치하여 사용하는 사람에 한해 그 S/W를 무료로 제공해주고 있습니다. 좀더 정확하게 말하면, 다운로드한 패키지 내에 activation 프로그램설치 프로그램이 함께 들어 있는데 activation 프로그램을 실행하여 서버로부터 등록 코드를 받아오게 됩니다. 그런 다음 설치 프로그램으로 설치하면 정품과 마찬가지로 사용할 수 있게 되는 것이지요. 당연한 것이겠지만, activation 프로그램으로 등록 코드를 받아올 수 있는 시간은 그 S/W가 제공되는 24시간으로 제한됩니다.

제가 견문이 얕아서 그런지는 몰라도 이전에는 이런 방식을 본적이 없는데, 이것 역시 S/W 광고의 한 방법이 아닌가 생각됩니다. 하루에 얼마나 많은 사람이 다운로드 할지도 모르는데 무작정 퍼주면 앞서 돈을 내고 구매한 사용자들이 반발하지 않을까, 또한 S/W를 제공해주는 업체는 뭐 먹고 살까 걱정이 되더군요.(걱정도 팔자죠.) 하지만, 곧 그 의문이 풀렸습니다.

Giveaway of the Day를 통해 다운로드한 S/W는 그것을 사용함으로 인해 발생하는 어떠한 문제에 대해서도 보장이나 보증을 해주지 않는다고 명시하고 있더군요. 추가로 다음의 세 가지를 명확히 하고 있었습니다.
  1. No free technical support (무상 기술지원을 받을 수 없음)
  2. No free upgrades to future versions (이후 버전에 대한 무상 업그레이드가 제공되지 않음)
  3. Strictly non-commercial usage (비상업적 목적으로만 사용할 수 있음. 즉, 회사에선 사용불가)
결국, 무료 사용자는 S/W만 사용할 수 있을 뿐 실제 구매자가 누리는 부가적인 권한을 누릴 수 없는 것이죠. 현재 다운로드한 S/W를 사용해보고 마음에 들어서 미래에도 계속 사용하고자 하는 사용자가 있다면 언젠가는 그 S/W를 구매할 것이라는 생각을 바탕에 깔고 있는 것 같습니다. 어떤 S/W가 있다는 사실을 몰라서 사지 못하는 잠재수요를 노린 적극적 혹은 공격적 마케팅 방법이란 생각이 드는데, 사용자 입장에서 봤을 때 상당히 마음에 드는 방식입니다. 질리도록 써보고 구매를 결정할 수 있다는 말이니까요.

아무튼 무척이나 마음에 들었던 Aston을 그렇게 허무하게 놓친 후, 아예 Giveaway of the Day를 RSS로 구독하면서 뭔가 더 좋은 프로그램이 올라오지 않나 유심히 관찰하기 시작했습니다.(친절하게도 매일 바뀌는 S/W 정보에 대해서 RSS feed를 제공해주더군요.)

Giveaway of the Day의 공식 홈페이지입니다.

LINK: http://www.giveawayoftheday.com

기회는 항상 있는 게 아닙니다. 좋은 S/W 놓치지 마세요. 그리고, 정말 마음에 들면 그에 대한 정당한 대가를 지불할 수 있는 마인드를 가져봅시다. ;-)

덧말.
결국 오늘 하나 건졌는데, 3DPlanesoftEarth 3D Screensaver라는 화면보호기 프로그램입니다. 딱 마음에 듭니다. 이에 대한 대가로 Giveaway of the Day의 배너를 사이드바에 달았습니다. :)

2007년 3월 5일 월요일

Toad Data Modeler Freeware - 무료 DB 설계툴

본업은 아니지만 회사에서 급하게 필요한 일 때문에 잠시 APM(Apache, PHP, MySQL)을 기반으로 개발을 할 일이 있었습니다. 개발 절차 상 아무리 간단한 일이라도 요구분석이니 설계니 하는 일들은 항상 거치기 마련인데, 능숙하게 잘 활용할 수 있는 도구가 있으면 이런 작업의 능률이 몇 배는 오르게 됩니다. 이 중에 이번 개발에서 발굴한 좋은 무료 DB 설계 도구가 있어 소개해드릴까 합니다.


Toad Data Modeler Free Edition
이라는 놈인데, 흔히 잘 알려진 ERWin과 기능이 크게 다르지 않습니다. ER 다이어그램(Entity-Relationship Diagram) 방식으로 DB를 설계하고, 설계된 내용을 실제 특정 DBMS에 사용할 수 있도록 SQL Script로 만들어주는 DB 설계툴이죠.


Toad Data Modeler Free Edition은 현재 많이 사용되고 있는 대부분의 DBMS를 지원합니다. 그리고, Logical View와 Physical View를 지원하기 때문에 다이어그램 작성 시 한층 편리합니다. 또한 작성된 다이어그램을 이미지로 저장할 수 있는 기능도 제공합니다.(설계 내용을 Toad Data Modeler가 설치되어 있지 않은 사람에게 보내줄 때 유용한 기능이죠.)


다음은 Toad Data Modeler Free Edition 다운로드 페이지입니다.

LINK: Database design tool - Toad™ Data Modeler
(좌측 메뉴의 Download Freeware 링크를 클릭하시면 됩니다.)

무료 버전 외에 더욱 기능이 보강된 상용 버전도 있습니다만, 어지간한 기능은 무료 버전만으로도 충분할 것 같습니다.(실제 물리적인 DB로부터 ER 다이어그램을 산출해내는 reverse engineering 기능은 상용 버전에만 있네요.)

2007년 2월 23일 금요일

Total Commander Unalz Plug-in

Unalz 0.64 버전이 적용된 새 binary를 올렸습니다. -- 2008.03.19

-----

이번 글은 Total Commander에 대해 알고 있는 분들만을 위한 것입니다. ;-)

Total Commander는 과거 DOS 시절의 M-DIR, Norton Commander 등과 유사한, 전통 있는 Windows용 파일 관리자입니다. 명성에 걸맞게 가볍고 빠르며 강력하죠. 대신 제대로 쓰려면 설정 시에 제법 잔손이 많이 가는 편입니다. 보통 강력한 무기일수록 그 조작 방법이나 설정 방법이 복잡한 것에 비유한다면 비약이 좀 심한 것일까요? :-)

아무튼 저는 회사에 Total Commander 정식 라이센스가 있기 때문에 업무에 아주 유용하게 사용하고 있습니다. 그런데, 최근에 북마크된 사이트를 둘러보다가 Unalz가 업그레이드 된 것을 알게 되었습니다. 그리하여 Total Commander의 알집(alz) 압축 파일 지원 플러그인 소스에 Unalz 최신 소스를 반영하여 새로 build 해보았습니다.

어차피 모든 소스가 공개되어 있기 때문에 누구나 build할 수 있는 것인데, 제가 쓰려고 build한 김에 이 결과물을 한번 올려봅니다.

LINK: unalz-0.61.wcx.zip

원본 소스의 출처는 다음과 같습니다.

Unalz 소스: http://www.kipple.pe.kr/win/unalz/

Unalz.wcx 소스: http://www.totalcmd.net/plugring/unalz_wcx.html

주의.
저는 이 플러그인 바이너리에 대한 어떠한 권리도 가지고 있지 않습니다. 또한 플러그인과 Unalz 소스에 대한 저작권은 각각의 저작자에게 있음을 명확히 언급하고, 제가 제공하고 있는 플러그인 바이너리를 사용하면서 발생하는 어떠한 문제에 대해서도 일체의 보장을 해드릴 수 없음을 밝혀두는 바입니다.

2007년 2월 7일 수요일

Psi - Jabber Client

여러분들은 어떤 메신저를 사용하시나요? 저는 지인들과 연락하기 위해서 주로 네이트온 메신저를 사용하고, 회사 업무용으로 MSN 메신저를 사용합니다. 그리고, Google 계정을 위해서 Google Talk를 사용하죠. 그리고, 기타 관심 메신저로 Jabber client인 Psi를 사용합니다. 이래저래 메신저만으로도 시스템 자원 꽤 소모하고 있는 셈이죠.

사실 MSN 메신저는요즘 잘 사용하지 않고 있습니다. 대신 제가 가입한 Jabber server에서 지원하는 MSN Transport Service를 활용해서 MSN Network에 로그인하는 방법을 사용합니다. ICQ Network도 마찬가지 방법으로 사용하고 있구요.

이 메신저들 중에서 오늘은 Jabber client인 Psi에 대한 이야기를 간단히 해보려고 합니다. 만약 Jabber가 무엇인지 아직 모르신다면 여기 위키백과 내용을 참고 해주세요. 안타깝게도 아직 한글로 잘 설명된 페이지는 눈에 띄지 않는군요. 국내에서는 상업용 메신저들에 가려 Jabber가 그다지 활성화 되지 못한 탓일 겁니다.

저는 처음 Jabber가 사람들의 관심 거리로 막 부상하기 시작할 때부터 사용해왔으니 Jabber를 알고 Jabber와 함께 지내온 지 꽤 되는 것 같습니다.(정확히 언제인지 기억해내는 일이 귀찮다는 생각이 문득 들어서 그냥 얼버무리는 것이죠. 사실 별로 중요한 문제도 아니구요.) 하지만 아이러니하게도 제 Jabber ID에 등록된 친구는 5 명을 넘은 적이 단 한번도 없습니다. :-$

아무튼 처음 막 Jabber를 사용하기 시작할 때는 client 프로그램으로 JAJC(Just Another Jabber Client)를 사용했습니다. 그 이후로도 꽤 오랫동안 사용했죠. 개발자가 러시아 사람이었던 것으로 기억하는데, 작년(2006년) 상반기가 지날 무렵부터 업데이트가 뜸하더니 결국 지금은 사이트 마저도 사라져버렸습니다. 개인적으로 가장 좋아한 Jabber client였는데 말이죠. :-(

어쩔 수 없이 대안을 찾아 이리저리 뒤진 결과 가장 유력한 후보로 두 가지가 추려졌는데, 하나는 Psi이고 다른 하나는 Exodus였습니다.

일단 Exodus가 꽤 많은 기능을 지원하는 것 같기는 했는데, 이것 역시 꽤 긴 시간동안 업데이트가 없는 것처럼 보여서 어쩐지 불안한(?) 느낌이 들더군요. 인터페이스도 딱딱한 편이었습니다.

(이 스크린샷의 출처는 http://exodus.jabberstudio.org/shots.html입니다.)

Psi는 Google Talk Network에 로그인할 수 있는 Jabber client로 Google Talk 홈페이지에서도 소개가 되고 있더군요. 안정 버전으로 0.10 버전이 출시된 이후 상당히 긴 시간동안 개발 버전만 진행되고 있는데, 다음 안정 버전이 언제 나올지는 알 수가 없습니다. 그냥 개발 버전의 nightly build binary를 받아서 사용해도 큰 문제 없이 잘 작동하는 것 같더군요.




(이 스크린샷의 출처는 http://psi.affinix.com/screenshots입니다.)

Psi의 장점은 깔끔하면서도 화려한 인터페이스와 Exodus에 비해 결코 뒤떨어지지 않는 기능들입니다. 아쉬우나마 자체 파일 전송 기능도 있습니다. 또한 QT 기반으로 개발되었기 때문에 Windows 환경 뿐 아니라, Linux, MacOS 등에서도 사용할 수 있다는 점이 큰 매력 포인트입니다.

이러한 장점들을 고려해서 결국 Psi를 JAJC 대신 사용하기로 결정을 했습니다. Psi가 다중 계정을 지원해주기 때문에 Google Apps 용 계정 하나와 MyJabber.net 계정 하나를 동시에 설정하고 문제 없이 잘 동작하는 것을 확인할 수 있었습니다.

Psi의 공식 홈페이지는 다음과 같습니다.

LINK: http://psi.affinix.com/


그러면 Google Talk와 Psi를 비교해보면?! (비교표 같은 것을 만들면 훨씬 보기 좋겠지만, 귀차니즘의 발동으로 그냥 대강 글로 쓰고 말렵니다.)

  • 매우 당연한 이야기지만, Google Talk(이하 GT)은 Google Account만 지원하고 Psi는 Jabber 호환 network이라면 어디든 지원합니다. 고로 Google Talk Network에도 로그인 할 수 있습니다.
  • GT는 아직까지 단일 계정만 지원하지만, Psi는 복수의 계정을 지원합니다. Jabber server가 transport service를 지원해줄 경우 이종 메신저 network에도 로그인할 수 있습니다. MSN, 네이트온, AIM, ICQ 등등.. 심지어 복수의 Google 계정도 동시 로그인됩니다.
  • GT는 현재 Windows 용 client만 있고, Psi는 Windows를 포함해서 Linux, MacOS 등도 지원하고 있습니다.
  • 인터페이스는 GT가 Google스런 디자인으로 좀 더 단순하면서 깔끔합니다. Psi의 경우 Exodus에 비해서는 화려하고 깔끔하지만, GT에 비해선 조금 조잡한 느낌이 듭니다. 특히 대화창에서..
  • GT는 VoIP를 이용한 음성 대화 및 음성 메시지 기능을 지원하고 있지만, Psi는 아직 비슷한 기능이 없습니다.
  • GT는 다자간의 대화를 아직 지원하지 않고 있습니다. Psi의 경우는 Jabber server가 지원해준다면 Conference Room이란 다자간 채팅방을 만들 수 있습니다.

종합해보면, Open Instant Messaging Network을 지향하는 Jabber client로서 Psi가 기능적인 면에서 훨씬 다양하고 강력합니다. 그리고, Google Talk는 좀 더 깔끔한 인터페이스를 가지고 있고 Google만의 전용 서비스를 사용할 수 있다는 점에서 나름의 매력이 있다고 할 수 있겠습니다.

2007년 2월 4일 일요일

DeSmuME - Nintendo DS Emulator


(이 영상의 출처는 http://www.desmume.com/screenshots.htm 입니다.)

TV 광고를 통해서나 주변 사람들을 통해서 Nintendo DS(이하 NDS)에 대한 이야기를 자주 접하게 됩니다. 요즘 유행하는 뇌 훈련 및 뇌 나이 측정 게임 때문일 겁니다. 그 게임의 정식 명칭이 Professor Kawashima's Brain Training - How Old is Your Brain이었던 걸로 기억하는데 간단히 'Brain Age'라는 타이틀로 자주 소개되곤 하는 것 같습니다.

어쨌거나 이런 유행에 힘입어(?) 관련 자료들을 이리저리 찾아다니다가 발견한 것이 바로 DeSmuME(NDS Emulator)입니다.(사실은 PC나 PDA에서 즐길 수 있는 뇌 훈련 게임을 찾고 있었던 것이었지만)

DeSmuME는 현재까지 만들어진 NDS Emulator들 중에선 가장 높은 점수를 받은 것이라고 하는데, 아직까지 완전하게 구동할 수 있는 ROM이 그다지 많지는 않은 것 같습니다. 출시된 지 오래된 게임들의 ROM은 그럭저럭 구동해주는 것 같더군요.(참고로 현재 최신인 0.5 버전 -> 0.6 버전에서 Brain Age는 구동할 수 없습니다. 시간이 좀 더 지나면 가능해지겠지요.) 또한 최적화가 부족해서인지는 모르겠지만, 꽤 느립니다.

공식 홈페이지는 다음과 같습니다.

LINK: http://desmume.sourceforge.net/

이 emulator는 Source Forge에 등록되어 있는 오픈 소스 프로젝트입니다.

덧말.
NDS ROM과 관련된 정보를 공유하는 사이트도 있습니다. 이 사이트는 NDS emulator를 위한 것이라기보다는 NDS 보유자를 위한 것이란 느낌이 강하게 들었습니다. 그리고, 당나귀 URL만 제공되더군요. 정보는 있으니 알아서 구하란 말인 것 같네요. ;-)

LINK: http://www.nintendo-ds-roms.com/

2007년 1월 23일 화요일

POPFile - 자동화된 메일 분류 도구




POPFile
은 일종의 POP3 Proxy입니다. POP3 서버와 메일 클라이언트 사이에 위치하면서 메일을 자동으로 분류해주는 기능을 하게 됩니다. 얼마 전에 소개해드린 SpamBayes가 Outlook Add-in 방식을 지원하는 것과 비교하면 POPFile이 설치 및 사용에 있어 조금 더 귀찮은 것이 사실입니다. 그러나 POPFile만의 장점도 있으니 계속 읽어보시기 바랍니다. ;-)



POPFile은 Perl로 만들어졌는데, Python을 사용하여 만들어진 SpamBayes와 기본적으로 거의 동일한 알고리즘을 사용하는 것이기 때문에 성능에 대해서는 따로 말씀을 드릴 필요가 없으리라 생각됩니다. 대신, POPFile만의 특징이 있는데 차근히 하나씩 살펴보도록 하죠.

1. 단순히 스팸 메일만 분류해주는 것이 아니라 다양한 bucket('양동이'란 말로 POPFile에서는 분류 기준이 되는 단위를 지칭합니다.)을 두고 여러 가지로 분류를 해주는 것이 가능합니다.

2. SpamBayes처럼 메일을 직접 특정폴더로 이동하는 것이 아니라 메일의 제목에 특정 문자열을 붙여준다거나 혹은 메일 헤더에 특정 문자열을 삽입하는 방식을 이용하기 때문에 이것을 사용해서 실제 메일 클라이언트의 분류 규칙을 따로 설정해야 합니다. 얼핏보면 오히려 불편해보일 수 있겠지만, POP3 Proxy로서는 이것이 최선일 겁니다. 대신 분류 기준을 만드는 것이 훨씬 수월해지는 것은 사실이니 그것만 해도 충분하지 않을까요?

3. POPFile은 Perl로 만들어졌기 때문에 Perl을 사용할 수 있는 거의 모든 플랫폼에서 사용할 수 있습니다. Windows용으로는 친절하게도 초보자를 위해 설치 프로그램도 제공이 됩니다. Perl을 따로 설치할 필요도 없고 Perl에 대해서 아무 것도 몰라도 됩니다.

4. POPFile은 아직 별도의 GUI 프로그램은 제공하지 않고 있으며, localhost의 8080 포트로 웹페이지 형태의 인터페이스를 제공합니다. (설정을 바꾸면 8080 대신 다른 포트를 사용할 수 있습니다.)그렇기 때문에 설정이나 분류 오류에 대한 정정 등은 브라우저를 사용해서 웹 인터페이스에 접속한 후 이용 가능합니다.

5. 다국어를 지원합니다. 당연히 한국어도 지원합니다. :)



단순히 spam과 ham(spam이 아닌 'good' 메일을 지칭)만을 구분하기 위한 용도라면 SpamBayes가 오히려 더 편리할 수 있으니 굳이 POPFile에 목숨 걸지 않으셔도 됩니다. POPFile의 진정한 힘은 다양한 종류의 메일을 적절히 구분하기 위해서 Outlook(혹은 다른 어떤 메일 클라이언트라도)의 분류 규칙과 씨름하시는 분들만 느낄 수 있는 것입니다.

처음 설치를 하게 되면 POPFile 역시 '바부팅이 문어 대가리(POPFile 홈페이지에 문어가 등장합니다.)'에 불과합니다. 아무 것도 모르죠. 그래서 하나씩 차근차근 가르쳐야 합니다. Bucket을 많이 만들수록 가르치는 과정도 더 오래 걸릴 것입니다. 하지만, 잘 가르친 문어는 복잡한 메일의 분류를 정말 손쉽게 처리할 수 있도록 해줍니다. 문어실수(잘못 분류하는 일)를 하게 되면 웹인터페이스의 분류 히스토리 페이지로 가서 정정해주시면 됩니다. 가르치는 방법은 단지 그것뿐입니다.

저는 업무 상 받는 메일들이 꽤 다양해서 업무 관련 bucket만 6 개가 됩니다. 그리고, 기타 개인 메일들을 위한 bucket이 3 개, 스팸 메일용 bucket 1 개, 합이 10 개입니다. 문어를 가르치기 시작한지 이틀째인데, 처음 서너번 정도 실수한 것을 교정해주었더니 이제는 제법 척척 잘 가려주는군요. 스팸 메일은 가차 없습니다. 현재까지 필터율 98% 입니다. 어찌보면 SpamBayes보다 더 잘 가려주는 것 같은 느낌도 들 정도네요.

POPFile 공식 홈페이지는 다음과 같습니다.

LINK: http://popfile.sourceforge.net/

소개글을 쓰는 제가 굳이 설치나 사용법에 대해 언급하지 않아도 될 만큼 공식 홈페이지에서 설치부터 사용법까지 매우 친절하고 상세하게 잘 설명해줍니다.

복잡한 메일을 자동으로 분류하기 위해서 Outlook 분류 규칙에 목숨 걸지 마세요. 메일 클라이언트가 바뀌기라도 하면 어쩌시려구요? 설마 분류 기준을 처음부터 다시 만들 생각은 아니겠죠? 문어(POPFile) 한 마리 키워보세요. ;-)

2007년 1월 20일 토요일

Free42 - An HP-42S Calculator Simulator

저는 계산기를 좋아합니다. 이러한 성향은 저의 기초 산술 능력 부족에 기인하는 것일지도 모르겠네요. 아무튼 그 핑계로 계산기 하나를 또 소개 해드리려고 합니다.


Free42라는 이름의 계산기인데, Emu48이 HP 계산기의 ROM을 구동시켜주는 emulator라면 Free42는 HP-42 계산기와 동일하게 동작하도록 구현한 simulator입니다. 즉, HP-42 계산기의 ROM을 필요로 하지 않는다는 말이죠. 그렇기 때문에 emulator보다 빠릅니다. 그리고, 사용하기에 조금 더 편리합니다. (HP-42 계산기는 RPN 계산 방식을 사용하는데, 자세한 정보는 HP 계산기 박물관의 HP-42 페이지를 참고해주세요.)



Skin 기능을 사용해서 외관을 실제 HP-42 계산기와 매우 유사하게 설정을 할 수 있기 때문에 기능이나 인터페이스가 HP-42와 거의 동일하다고 보시면 됩니다. 또한 Windows, Linux, MacOS, Pocket PC, Palm 등의 다양한 플랫폼을 지원하기 때문에 desktop이나 휴대용 PDA 등에서 편리하게 사용할 수 있습니다.(제 Pocket PC 탑재 PDA에도 실려 있어요.)

공식 홈페이지는 다음과 같습니다.

LINK: http://thomasokken.com/free42/

SpamBayes - 학습 가능한 스팸 메일 필터

연말연시에는 스팸 메일이 특히 극성을 부린다는 기사를 본 적이 있습니다.(비단 e-mail에만 해당되는 것은 아닐 겁니다. 우리 집 현관문 앞과 우편함에 날마다 끊임 없이 쌓이는 광고 전단들과 우편물들을 보면 말이죠. ㅡㅡ) 그래서 그런지 요즘 부쩍 스팸 메일이 많이 오는 것 같은데, 회사에서 업무 상 사용하고 있는 Outlook이 감당을 못하더군요. 자체 정크 메일 필터도 꽤 성능이 좋은 편이긴 하지만, 점점 더 교활해지고 점점 더 대량화 되고 있는 스팸메일들을 상대하다 보니 아무래도 한계가 있는 모양입니다.

궁하면 통한다고, 이런 상황이 반복되던 어느 날 웹서핑 중 우연찮게 알게 된 SpamBayes라는 놈이 어째 물건인 것 같은 느낌을 받아 한번 사용해보게 되었습니다. Python으로 만들어졌다는 점과 Source Forge에 등록된 open source project라는 점, Outlook Add-in 형식을 지원한다는 점, 이 세 가지 특징이 저를 붙든 주 요인이었습니다.

공식 홈페이지는 다음과 같습니다.

LINK: http://spambayes.sourceforge.net

공식 홈페이지에서 대강의 설명을 보니, Paul GrahamA Plan for Spam에서 소개된 Bayesian spam filtering 알고리즘을 바탕으로 Gary Robinson개선 사항을 반영하여 만들었다고 합니다.

알고리즘에 대한 설명 역시 날림으로 살펴본 바로는, 메일 내용을 token으로 쪼개어서 통계적 방법으로 점수를 매기고 이에 근거하여 spamham(spam mail이 아닌 good mail을 의미하는데, 언어 유희인가요?), unsure 등을 구분하는 방식인 것 같습니다.

그러면 그 통계적 방법의 근거는? 여기서 훈련(training)이라는 말이 나옵니다. 처음에는 spam과 ham을 구분할 수 없다는 것입니다. 속된 표현으로 똥인지 된장인지 먹어봐야 안다는 것이죠. 사용자의 판단으로 미리 구분해 놓은 spam과 ham을 가지고 훈련을 시켜주면 그 자료를 토대로 새로운 메일에 대해 점수를 매기게 되는 것입니다. 또한 훈련 부족으로 오판을 하게 되는 경우 사용자가 이것을 정정해주는 기능이 있습니다. 이것 역시 훈련의 한 부분이 됩니다. 아무 것도 모르는 아이를 하나 둘 가르쳐서 사리분별 할 수 있는 '사람'으로 만드는 과정에 비유한다면 좀 비약이 심한 것일까요? :)

뭐, 이론상 이 방법 역시도 100% 완벽할 수는 없겠지만, 'mistake-based training'이란 말에서 알 수 있는 것처럼 실수라는 중요한 경험을 통해서 학습하게 되고 점점 더 똑똑한 필터가 되어가기 때문에 훈련 회수를 거듭할수록 점점 완벽에 가까워지는 것입니다. 그리고, 사용자의 기준에 부합하는 스팸 필터를 만들 수 있다는 장점도 있습니다. 사용자마다 스팸을 구분하는 기준이 다를 수도 있는데, 훈련 과정에 이것을 충분히 반영해줄 수 있기 때문입니다.

SpamBayes는 Outlook Add-in 형식 외에도 POP3 Proxy, IMAP filter, procmail embedded filter 형식을 지원합니다. Outlook이 아닌 다른 메일 클라이언트를 사용하시는 분들도 좀 번거롭긴 하지만 사용할 수 있다는 말이죠.

자, 여러분들도 더 이상 스팸 메일 때문에 골치 아파하지 마시고, SpamBayes 한 마리 키워보세요. 얼마 지나지 않아서 필터를 뚫을 수 있는 대단한(?) 스팸 메일이 오기만을 학수 고대하는 자신을 발견할 수 있을 겁니다. ;-)


주의) 현재 alpha 버전인 1.1.3aHOMEPATH 내에 한글 문자가 있을 경우 초기화 오류가 발생하는 버그가 있습니다.(HOMEPATH 내에 한글 문자가 있다는 것은 Windows 로그인 계정을 만들 때 한글을 사용했다는 것을 의미합니다.) 안정 버전인 1.0.4는 문제 없이 잘 되더군요. 같은 팀에서 일 하고 계시는 대리님 한 분이 알려주셨습니다. ;-)

2007년 1월 11일 목요일

EMACS + SLIME + CLISP on Win32

얼마 전에 EmacsW32에 관한 글을 올렸는데, 그 때 잠시 언급했던 SLIME mode를 사용하는 방법에 대해 조금 더 자세히 살펴보려고 합니다.

1. 준비물:
  • EmacsW32+Emacs:
    보통 latest EmacsW32+Emacs patched Emacs patched icon을 받으시면 됩니다.
  • SLIME mode:
    stable release를 받으시면 됩니다. (이 글을 작성하는 시점에서 2.0이 최신 버전이네요.) 취향에 따라서 CVS 저장소로부터 직접 받으셔도 됩니다.
  • CLISP (또는 SLIME이 지원하는 다른 Lisp 구현체):
    보통 clisp-x.xx-win32-mingw-without-readline.zip 파일을 받으시면 됩니다. CLISP 대신 다른 상용 Lisp 구현체나 SBCL도 많이 사용하신다고 알고 있는데, 이 글에서는 제가 애용하는 CLISP만을 예로 들겠습니다. - 사실 SLIME 설정 시에 큰 차이는 없습니다. -

2. CLISP 설치
매우 간단합니다. download한 파일을 적절한 폴더에 압축 풀어주면 끝입니다. 바탕화면에 단축아이콘을 생성해주는 install.bat가 별도로 제공이 되지만, 경로명에 한글이 들어가는 경우에는 parse error를 내더군요. 그냥 'clisp.exe' 파일에 대해서 직접 단축아이콘 하나 만드시면 됩니다. 그리고, 어차피 Emacs 내에서 SLIME mode를 통해 실행할 것이기 때문에 단축아이콘을 쓸 일이 거의 없을 겁니다. 이 글에서는 'C:\CLISP' 폴더에 압축을 풀었다고 가정합니다.

3. EmacsW32+Emacs 설치
이것 역시 설치가 매우 간단합니다. 설치 패키지 형태로 되어 있기 때문에 실행한 다음 next 버튼만 누르다보면 설치가 완료됩니다. 설치 중간에 설치 폴더를 변경하지 않았다면 'C:\Program Files\Emacs' 폴더에 설치가 되었을 겁니다.

4. SLIME mode 설치 및 설정
Emacs 설치 폴더 아래에 만들어진 'site-lisp' 폴더에 'slime-2.0.zip' 파일의 압축을 풉니다. 그러면 'slime-2.0' 폴더가 만들어집니다. 이것으로 설치는 끝입니다. 이제 SLIME mode가 Emacs에서 load 될 수 있도록 '.emacs' 설정 파일에 SLIME 관련 내용을 추가해주기만 하면 됩니다. '.emacs' 파일은 'C:\Documents and Settings\사용자 계정\Application Data' 폴더에 있습니다. 없다면 새로 하나 만들어 주세요.

다음은 제가 사용하고 있는 SLIME 설정 내용입니다.
전체 파일은 여기서 받으세요.
;; SLIME 설치된 폴더
(add-to-list 'load-path
"C:/Program Files/Emacs/site-lisp/slime-2.0/")
(require 'slime)
;; UTF-8 인코딩을 기본으로 사용 --> 한글 symbol 사용을 위해
(setq slime-net-coding-system 'utf-8-unix)
;; Lisp 실행 파일
(setq inferior-lisp-program "C:/CLISP/clisp.exe")
(setq common-lisp-hyperspec-root
"http://www.lispworks.com/documentation/HyperSpec/")
;; FireFox를 사용한다면 아래 주석 해제
;(setq browse-url-generic-program
; "C:/Program Files/Mozilla Firefox/firefox.exe")
;(setq browse-url-browser-function (quote browse-url-generic))
(add-hook 'inferior-lisp-mode-hook
(lambda () (inferior-slime-mode t)))
(add-hook 'lisp-mode-hook
(lambda ()
(set (make-local-variable
'lisp-indent-function)
'common-lisp-indent-function)))
(slime-setup :autodoc t)

5. 실행해보기
자, 이제 실행을 해봅시다. Emacs를 실행한 다음 아래과 같이 입력합니다.

M-x slime

'M-x'는 'Alt'키를 누르면서 'x' 키를 누르라는 의미입니다. 그러면 창 가장 아래쪽 미니 버퍼에 커서가 깜빡이는데, 여기서 'slime'이라고 입력한 다음 enter 키를 누르면 됩니다. 이제 편집창에 새로운 버퍼들이 만들어지면서 뭔가 글이 막 올라가다가 마지막에 CLISP prompt가 뜨게 됩니다.

이 다음부터는 여러분의 몫입니다. ;-)

6. 재미있는 팁 한 가지를 알려드리면...
위 SLIME 설정 내용 중에 UTF-8 사용이 가능하도록 추가해준 부분이 있는데, 이렇게 UTF-8 인코딩을 사용하게 되면 한글 symbol을 사용할 수 있게 됩니다. 물론 사용하는 Lisp 구현체가 UTF-8을 지원해주어야 가능합니다. CLISP은 UTF-8을 지원하고 있습니다.

2007년 1월 8일 월요일

EmacsW32 - Enhancements for Emacs W32 Users


Unix 계열 환경에서 프로그램을 작성하거나 Lisp 프로그램을 주로 작성하는 사람이 아니라고 해도 Emacs라는 이 위대한 editor(사실 editor 그 이상이죠.)에 대한 이름은 한 번쯤 들어보셨을 것이라 생각됩니다. - Emacs에 대한 상세한 소개는 이미 잘 만들어져 있는 Wikipedia의 이맥스 페이지를 참고해주세요. -

저는 성격 상 Emacs보다는 vi 쪽으로 더 많은 정이 가지만, 요즘 들어서 Common Lisp을 공부하다 보니 Emacs만한 것이 없다는 생각이 절로 드네요. 그래서, Windows 환경에서 쓸만한 Emacs 패키지를 찾아보았습니다. EmacsWiki라든가 EmacsKR 같은 Emacs 커뮤니티 사이트를 뒤지다 보니 많은 분들이 추천하는 패키지가 딱 있더군요. 바로 EmacsW32입니다.

EmacsW32 자체는 Emacs lisp 모듈과 Emacs를 위한 유용한 Windows 프로그램을 모아 놓은 것입니다. 그런데, 친절하게도 현재 한창 개발 중인 Emacs 22 버전을 CVS 저장소에서 직접 가져다가 Windows 환경을 위한 몇 가지 유용한 patch까지 가미해서 설치 패키지 형태(EmacsW32+Emacs)로 제공해주고 있습니다. 이 설치 패키지는 기본적으로 leim을 포함하고 있어서 별도의 추가 설치 없이 바로 한글을 입력할 수 있고, Unicode 파일에 대한 편집도 가능하더군요. 몇 년 전에 잠시 사용해본 Emacs for Windows NT보다 훨씬 간편하고 안정적이라고 할 수 있었습니다.

EmacsW32 공식 페이지는 다음과 같습니다.

LINK: http://ourcomments.org/Emacs/EmacsW32.html

Windows 환경에서 간편하게 사용할 수 있는 Emacs 패키지를 찾고 계신다면 EmacsW32+Emacs를 강력히 추천합니다. 그리고, Common Lisp 개발자인 경우 SLIME mode를 설치하시면 금상첨화입니다. :-)

XSPF Web Music Player (Flash)

요즘 동영상 형태의 UCC(User-Created Content, 사용자가 직접 만든 컨텐츠를 말함)를 공유하는 사이트들이 많은데 여기에 크게 기여하는 것이 Flash로 만들어진 동영상 재생 프로그램이 아닌가 싶습니다. 예전의 Browser plug-in 또는 ActiveX component에 의존하던 방식은 사용자의 OS 환경이나 인터넷 브라우저 종류에 따라서 많은 제약이 있었죠. 그런데, FLV라고 불리는 Flash Movie 형식과 함께 Flash 동영상 재생 프로그램이 나오게 되면서 이러한 문제는 아주 깔끔(?)하게 해결이 되었습니다. Flash 자체가 다양한 OS 환경과 인터넷 브라우저를 이미 지원하고 있었기 때문입니다.

같은 맥락으로, 블로그나 홈페이지에 간단히 MP3 파일을 포함시켜 재생하려고 할 때 주로 Embed 태그를 그냥 사용하실 텐데 이 방법은 페이지를 열람하는 브라우저나 OS 환경에 따라서 재생이 제대로 되지 않는 경우가 발생할 수 있습니다. 이러한 문제를 해결할 수 있는 간단한 Flash MP3 Player가 있어서 소개해드릴까 합니다. - 사실 제가 필요해서 이리 저리 찾던 중 발견하게 된 것이죠. -

XSPF Web Music Player라는 것인데, Source Forge에 등록된 오픈 소스 프로젝트입니다. 공식 홈페이지에서 swf 파일을 받을 수 있고 여기에는 Flash 소스도 함께 포함되어 있습니다.

공식 홈페이지는 다음과 같습니다.

LINK: http://musicplayer.sourceforge.net

이 프로그램은 용도에 따라서 세 가지로 구분이 되는데, 재생 목록과 곡에 대한 정보까지 표시되는 Extended, 간단히 한 줄로 현재 재생되는 곡에 대한 정보만 보여주는 Slim, 오로지 재생 버튼만 표시되는 Button이 그것입니다.

상세한 사용 방법은 공식 홈페이지를 참고하시면 되겠고, 버튼 방식으로 한 곡만 간단히 재생해주는 예제는 다음과 같습니다.
<embed src="http://your.domain/musicplayer.swf?&song_url=http://mp3-song.domain/example.mp3" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" height="18" width="18"></embed>

각각 파란색(MP3 재생 프로그램 swf 파일 URL)과 빨간색(MP3 파일의 URL)으로 된 부분만 적절히 수정해주시면 됩니다.

2006년 10월 27일 금요일

Hamachi - 쉽고 강력한 VPN 프로그램


(이 스크린샷은 Hamachi 공식 홈페이지에서 가져온 것입니다.)

Hamachi는 가상의 네트워크를 구성하여 그 안에 합류한 구성원이 마치 하나의 로컬 네트워크에 있는 것처럼 만들어 주는 매우 강력하고 유용한 VPN 프로그램입니다.

하나의 로컬 네트워크에 있다는 것은 엄청나게 큰 의미를 가집니다. 쉽게 말해서 LAN 내에서 가능한 거의 모든 작업이 가능해진다는 것이죠. 서로 멀리 떨어져 있는 친구들과 StarCraft 같은 게임을 Battle.net에 접속하는 일 없이 IPX 방식으로 함께 플레이하는 것이 가능해집니다. 친구의 Windows 공유 폴더에 접근하는 것도 가능해지죠. Hamachi 네트워크에 참여할 수만 있다면 방화벽을 bypass 하는 것도 가능합니다. (Hamachi 프로그램이 서버에 접속하기 위해서 사용하는 포트를 방화벽에서 차단하지 않는다면 말이죠.) 친구의 PC에 원격 데스크탑으로 접속하는 것도 물론 가능해집니다. 이외에도 활용 분야는 무궁무진하다고 할 수 있습니다.

그러나, 불이 정말 편리하지만 잘못 사용하면 엄청난 재앙이 되는 것처럼 Hamachi 역시 양날의 검입니다. 물리적으로는 원격지간이지만 Hamachi를 통해 마치 하나의 로컬 네트워크에 있는 형상이 되어 버리기 때문에 로컬 네트워크를 통해 전파되는 각종 웜이나 악성 코드, 바이러스 등에 더욱 쉽게 노출 될 수 있고, 뜻하지 않게 Windows 공유폴더 등에 담긴 내 개인 파일이나 정보가 제 3자에게 흘러나가 버릴 수도 있습니다. 결국 Hamachi를 사용할 때는 보안에 상당히 신경을 써야 할 필요가 있다는 말이죠. (Hamachi 네트웍을 항상 믿을 수 있는 사람으로만 구성한다는 보장은 없으니까요.)

실제 동작 원리를 살펴보면, Hamachi는 Windows 네트워크 장치에 가상의 네트워크 인터페이스를 추가합니다. 그리고, 다른 네트워크 인터페이스들과 마찬가지로 사용가능한 모든 프로토콜을 지원하게 됩니다. IP와 관련해서는 5.x.x.x 형식의 IP 주소를 할당받게 되며, 5.0.0.1 이란 gateway에 연결되도록 구성됩니다. (이 때 subnet mask는 255.0.0.0 이 됩니다.) Hamachi 사용자는 모든 Hamachi 네트워크 상에서 자신만의 고유한 IP 주소를 가지게 되지만, 기본적으로 서로를 볼 수 없고, 특정 이름의 네트워크를 생성하고 그 네트워크에 참여한 사람들끼리만 서로를 볼 수 있는 구조로 되어 있습니다. 물론 동시에 둘 이상의 네트워크에 참여하는 것도 가능합니다. (이것을 잘 활용하면 방화벽 몇 개를 훌쩍 뛰어 넘어버리는 것도 가능할 겁니다.)

Hamachi의 공식 홈페이지는 다음과 같습니다.

LINK: http://www.hamachi.cc

현재는 베타버전으로 계속 개발 중에 있는데, 한 네트워크에 최대 16 명 정도까지 참여할 수 있는 것 같습니다. 그리고, 시간이 좀 더 지나 정식버전이 출시되면 기본적인 서비스 외에 프리미엄 서비스를 추가하여 부분 상용화를 할 가능성도 있는 것 같더군요.

2006년 10월 26일 목요일

Open Capture - 작지만 강력한 무료 화면 캡쳐툴


PC를 사용하다보면 현재 보고 있는 화면 일부분 혹은 전부를 캡쳐하고 싶을 때가 있습니다. S/W 매뉴얼 작업을 위해 스크린샷을 뜬다거나 웹브라우징 중 마음에 드는 화면 디자인을 발견했을 때 참고용으로 캡쳐해두는 등의 일들이 그런 것이죠.

화면 캡쳐용 프로그램은 이미 오래 전부터 많이 있어 왔습니다. Open Capture도 역시 동일한 목적으로 만들어진 툴이며, 달랑 실행 파일 하나로만 구성되어 있다는 점이 특징인데, 이 때문에 portable device 등에 담아 간편하게 휴대하면서 필요할 때 즉시 사용이 가능합니다. (근래에 들어 기능이 추가되면서 실행 파일 외에 추가되는 파일이 생겼고 그 때문에 설치판 형태로 배포됩니다.) 또한 작은 크기지만 필요한 기능들은 빠짐없이 갖추고 있어 매우 유용하죠.

공식 홈페이지는 다음과 같습니다.

LINK: http://openproject.nazzim.net/opencapture.htm
LINK: http://simples.kr/bbs/group.php?gr_id=11
LINK: http://opencapture.net

Open Capture는 국내 개발자에 의해 제작되었기 때문에 한글 인터페이스를 지원하고 있고, 현재도 지속적으로 업그레이드가 이루어지고 있습니다. 더군다나 무료로 배포되고 있지요.