Slik SVN: 윈도우용 커맨드 라인 기반 SVN 클라이언트

요즘 회사들어와서 처음으로 제품 메뉴얼을 작성하고 있습니다. XML 형태로 작성되는 메뉴얼 파일은 SVN을 통해 형상관리 되고 있는데, 윈도우 비스타에 설치한 TortoiseSVN가 자꾸 commit 할때마다 죽어서 대안을 찾던 중에 Slik SVN이라는 것을 발견하게 되었습니다.


간단히 설치만 하면 윈도우 cmd에서 svn 관련 커맨드(svn, svnadmin, …)를 사용할 수 있습니다.

http://www.sliksvn.com/en/download

이런 복잡한 상황을 맞이할때마다 유닉스 기반의 Mac OSX가 그리워지는군요…

dlopen error: Bad magic number

dlopen()으로 shared object를  로딩하는 과정에서 에러가 발생하여 dlerror() 함수를 통해 에러의 원인을 확인해 보았습니다.

‘aaa.so’ is not a valid load module: Bad magic number

구글에서 에러 메세지를 이용해 검색하다가 해결의 실마리를 찾았습니다! file 명령어로 파일의 타입을 확인해 보니 executable과 shared library의 파일 타입이 다르더라구요.

$ file aaa.so
aaa.so:     ELF-64 shared object file – IA64
$ file a.out
a.out:     ELF-32 executable object file – IA64

stack에 동적으로 메모리 할당: alloca

C프로그래밍을 하다보면 memory leak에 대한 걱정 때문에 메모리를 동적으로 할당(malloc)하는 것이 부담스럽습니다.

만약 동적으로 할당한 메모리가 함수내에서만 사용된다면 함수 끝에서 free할 필요 없이 malloc 대신 alloca로 메모리를 할당해 사용하면 됩니다. alloca를 사용하면 activation record(stack)에 메모리가 할당되거든요.

NAME
       alloca – allocate memory that is automatically freed

SYNOPSIS
       #include <alloca.h>

       void *alloca(size_t size);

DESCRIPTION
       The  alloca() function allocates size bytes of space in the stack frame
       of the caller. This temporary space is automatically  freed  when  the
       function that called alloca() returns to its caller.

저의 개발 환경을 소개 합니다.

회사에서 제가 사용하는 개발 환경을 소개합니다. 제가 하는 일은 프로그래밍 언어의 compiler, interpreter, traslator를 개발하는 것 입니다. 주로 사용하는 툴은 gcc, flex, bison, subversion, vi, eclipse 등등 이구요.

한동안 console + screen + vi 환경을 고집하다 eclipse + vi plugin으로 넘어온지 몇달 되었습니다.


자주 들여다보는 flex, bison description의 syntax highlighting이 안된다는 것을 제외하고는 매우 만족스럽습니다. 특히 eclipse를 사용할때 가장 좋은 점은 Refactor > Rename 기능을 제공하기 때문에 변수, 함수 등의 이름을 바꾸기가 편리하다는 것 입니다.

제가 사용하는 컴퓨터에는 Vista가 설치되어 있고, VMWARE 환경에서 Ubuntu를 부팅해 놓고 개발환경으로 사용하고 있습니다. 2GB의 메모리를 할당해서 개발환경으로 부족함 없이 잘 동작합니다. 이렇게 설정해 놓은 덕분에 윈도우와 리눅스를 아주 편리하게 동시에 사용하고 있습니다.

console 환경에서 기본적인 툴을 다루는 능력이 뒷받침 된다는 전제하에, 다양한 개발 도구, 개발 환경에 대하여 열린 자세를 지니는 것은 개발자가 가져야할 중요한 덕목이라고 생각합니다. 좀 더 효율적으로 일할 수 있는 방법에 대한 끊임 없는 고민이 우리의 퇴근 시간을 앞당겨 줄 수 있을테니까요.

SteerMouse 3.9

맥을 사용하면서 가장 불편한 것은 바로 마우스의 움직임 입니다! 가속도가 적용되는 방식에 적응하기가 쉽지 않네요. 더군다나 회사에서는 윈도우, 리눅스를 쓰고 집에서 잠깐 맥을 사용하다보면 맥의 마우스 방식이 너무 불편하게 느껴집니다.

맥에서는 마우스가 같은 거리를 움직이더라도 빠르게 움직이면 포인터가 많이 이동하고, 느리게 움직이면 적게 이동합니다. 윈도우의 경우에는 빠르던지 느리던지 동일하게 이동하기 때문에, 이런 습관대로 맥에서 마우스를 움직이면 정교한 컨트롤을 하기 어렵고 손목이 아파옵니다.

게다가 기본적인 마우스 속도도 굉장히 느립니다. 덕분에 24인치 아이맥 화면을 기본 마우스 설정으로 돌아 다니다 보면 속에서 천불이 나죠! 그래서 마우스 속도를 높이고자 주로 사용되는 프로그램이 MouseZoom 입니다. 그러나 여전히 가속도를 반영하는 움직임으로 인한 불편함은 해결되지 않죠. 이 때 이와 같은 문제를 어느정도 개선해 주는 프로그램이 바로 SteerMouse 입니다.

http://www.apple.com/downloads/macosx/drivers/steermouse.html
약간의 설정을 해주니 윈도우랑 별차이를 못 느끼겠군요. 맥에서 마우스 사용에 불편함을 겪고 계신 분이라면 꼭 한번 설치해 보세요.