공지) CleanArchiver 원 개발자분인 INAJIMA Daisuke님과 연락이 되어서 지금까지 수정한 내용을 모두 원래 공식 CleanArchiver 프로젝트에 전달했습니다. 단 개발자분과 저의 구현상 의견차이가 있어서 이곳에 올리는 수정한 버전과는 기능상 차이가 있으니 참고하세요.  개발자님의 홈페이지

참고) 2010.4.22 일자로 올라온 알집 8.0 공개용 버전에서 zip 파일 압축 해제시 위 기능을 지원하도록 추가했네요. 알집 8.0 버전 이상을 쓰시는 분은 맥의 기본 압축 프로그램으로 압축을 하였더라도 알집으로 압축을 풀어주시면 되겠습니다. 

참고2) 2011.5.10 추가로 '압축시대' 프로그램을 제작한 키플러 님의 새로운 압축 프로그램 '반디집'을 통해서도 압축을 풀 수 있다고 합니다. 아래 SkyKIDS 덧글 인용.
 

CleanArchiver 3.1.b2

 맥에서 한글 등의 풀어쓰기로 저장되는 파일명이 있는 파일들을 압축하고 윈도우나 리눅스에서 풀면 글자가 깨어져 보이는 것을 해결하기 위한 오토메이터 버전을 예전에 올렸더랬습니다.

이번에는 기존에 있던 프로그램들을 가지고 보다 쉽게 압축하기 위한 프로그램을 만들어 올려 봅니다.

 사용법은 간단합니다. 압축할 파일이나 폴더를 하나이상 고른 후 프로그램 아이콘이나 프로그램창에 떨어뜨리면 됩니다. 사용자가 원하는 선택사항을 맞춰놓고 기본값을 저장해 놓으면 나중에 파일을 떨어뜨릴때 설정한 값으로 바로 압축을 합니다.

   윈도우나 리눅스 사용자에게 전달 할 때 사용할 압축 형식은 zip과 7zip 두가지가 가능합니다. 이 때 .7z은 '윈도우 호환 파일이름 사용' 옵션을 체크하고 압축하면 됩니다. .zip의 경우 한글윈도우에서 한글파일이름을 위해서는 인코딩 설정에 'CP949'를 입력하거나 드랍다운메뉴를 열어 고르면 됩니다.
 rar의 경우는 개발자가 상용 프로그램으로 소스를 공개하지 않기 때문에 개발자 지원이 있지 않는한 풀어쓰기 글자로만 압축가능합니다. 그런 이유로 맥에서 압축한 rar 파일을 윈도우에서 압축해제시에는 자매품인 7-zip 수정버전 혹은 Namo님의 HangulJasoFixer.exe 을 사용하세요.

 다른 언어의 윈도우 사용자와의 호환성을 위해서 zip 압축을 하려면 외국 윈도우에서 압축시 사용하는 코드페이지를 아래 목록에서 참고 후'CP949'대신 원하는 윈도우 코드페이지를 골라서 압축하면 됩니다. 목록은 택스트박스에 풍선 도움말로 나타납니다. 그리고 지정한 코드페이지로 변경이 되지 않는 문자는 유니코드로 저장이 됩니다.윈도우 기본 압축 프로그램과 같은 유니코드를 지원하지 못하는 압축 프로그램으로 열어보면 유니코드로 저장된 파일을 제외하고는 보이게 됩니다. 7zip은 유니코드를 기본적으로 사용하기 때문에 그런 고민을 하지 않아도 되므로 여러 언어를 동시에 압축하기 위해서는 zip대신 7zip을 이용하기를 추천합니다.

 참고사항으로 zip의 분할압축은 pkzip의 Application note의 split 표준 권고안을 구현하는 압축 프로그램(Winzip, v3zip등)에서만 압축해제가 됩니다. 그리고 프로그램의 인코딩을 지정하는 곳에는 드랍박스에 나타나는 목록 이외에도 실제 iconv 에서 지정가능한 인코딩명이면 아무것이나 가능합니다.

다른 추천 프로그램으로 마우스 오른쪽 버튼을 눌러서 기본 압축 프로그램처럼 사용을 하려면 FinderPop 을 추천합니다. 스노우 레퍼드 사용자를 위해서 서비스 메뉴를 통한 압축을 할 수 있게 만들어 놓았습니다. 그리고 이 프로그램은 압축만 하기 때문에 압축해제는 The Unarchiver를 추천하며 압축 파일의 손상복구를 위한 정보 생성을 위해서는  MacPAR deluxe 를 추천합니다.

  • CP437 - 영어
  • CP737 - 그리스어
  • CP775 - 발트어
  • CP850 - Multlingual 라틴문자 I
  • CP852 - 라틴문자 II
  • CP855 - 키릴어
  • CP857 - 터키어
  • CP858 - Multlingual 라틴문자 I + Euro symbol
  • CP860 - 포르투갈어
  • CP861 - 아이슬란드어
  • CP862 - 히브리어
  • CP863 - 프랑스어(캐나다)
  • CP864 - 아랍어
  • CP865 - 북유럽어
  • CP866 - 러시아어
  • CP869 - 현대 그리스어 
  • CP874 - 태국어
  • CP932 - 일본어, Shift-JIS와 비슷함
  • CP936 - 간화자 중국어(중국, 싱가폴)
  • CP949 - 한국어
  • CP950 - 정체자 중국어(대만, 홍콩)

P.S.
 좀 더 섬세한 설정을 하시기 원하는 분은 '추가 압축 옵션'에 압축 프로그램별 커맨드라인 옵션을 스페이스를 띄워서 넣어주시면 됩니다. 가령 7zip의 solid 압축을 해제하려면 '-ms=off' 옵션을, 멀티코어를 이용해 압축시간을 많이 줄일 수 있는 LZMA2알고리즘을 사용하려면 '-m0=LZMA2' 옵션을 주면 됩니다. 이외에도 파워유저들의 사용을 위해 나머지 옵션은 내장된 압축프로그램에 -h 옵션을 주고 터미널에서 살펴보거나 info-zip , 7zip 홈페이지에 있는 온라인 매뉴얼을 참고하세요.

 zip에 인코딩 문제를 지원하기위해 추가한 옵션으로는 -EN=? 과 -UN=NFC 가 있고 7za에는 -nfc 옵션이 있습니다. -EN=? 는 압축시 파일명을 물음표에 적은 윈도우 코드페이지로 변환해서 압축합니다. -UN=NFC 는 유니코드 파일명을 유지하기는 하되 맥 이외의 운영체제에서 주로 사용하는 NFC로 정규화해서 저장합니다. 7zip의 -nfc 도 zip의 -UN=NFC 와 동일한 역할을 합니다.

 ClealArchive 프로그램 안에 zip과 7za 커맨드라인 유틸리티가 들어있습니다. 인코딩 처리 패치가 모든 기능에 구현이 된 것이 아니기 때문에 새로 압축을 할 때만 압축이 잘 되고 기존의 압축한 파일을 업데이트하거나 삭제등의 기능을 사용하면 제대로 작동되지 않을수 있습니다. 그래서 내부에 있는 커맨드라인 툴을 따로 빼서 사용하시려는 분은 이점을 꼭 참고하시기 바랍니다. info-zip , 7zip 개발자에게 인코딩변경에 대한 수정의견을 전달했지만 그리 좋은 답변이 오지 않아서 fork를 하게 되었습니다. rar개발자에게도 전달했으나 중요한 사항이라고 생각하지는 않아서 언제 공식 지원이 될지는 미지수 입니다.

 7za에 대한 한가지 참고사항으로 터미널에서 압축 대상파일을 전달할 때 한글과 같은 풀어쓰기가 되는 유니코드 파일명을 전달하면 파일을 찾지 못합니다. 이는 CleanArchiver가 호출할때는 풀어쓰기(NFD)형식으로 파일명이 전달되지만 터미널에서 사용자가 언어 입력기로 입력한 문자열은 NFC형식이기 때문입니다. 

위 프로그램을 만드는데 사용한 오픈소스들은 아래와 같습니다.
  1. CleanArchiver
  2. Info-zip
  3. p7zip
  4. Apple's CFUniCharPrecompose() , vfs_utfconv.c (실제 파일은 Open Darwin의 xnu 패키지에서 받을 수 있습니다.)
  5. libiconv
수정한 소스들을 올리려니 온라인 리파지토리가 없어서 요청하면 모두 올려드리겠습니다. : )

<업데이트 내역>
2009.09.22
zip에서 암호를 지정해도 압축되지 않던 경우를 제대로 작동하게 수정했습니다.
zip 분할압축시 압축자체가 실행되지 않던 문제를 해결했습니다.
rar 압축형식을 추가했습니다. ( 단 윈도우/리눅스 호환 파일명 지원은 지원하지 않습니다.)

2009.09.23
외국 사용자를 고려해 윈도우 호환 파일명 사용 옵션에 인코딩을 지정할 수 있게 택스트 필드를 추가했습니다.

2009.10.22
압축 포멧별 설정 상태를 저장해서 사용가능합니다.
압축이 끝나면 Growl로 결과를 알려줍니다.
업데이트를 자동으로 할 수 있게 Spakle을 추가했습니다.
( 하지만 아직 구글코드나 소스포지에 올리지 않아서 작동되지는 않습니다.)
zip 포멧으로 윈도우 호환 파일명 압축시 지정한 인코딩으로 변경되지 않으면 해당 파일명을 유니코드로 저장해줍니다.
( 이렇게 압축된 파일의 경우 Winzip, 7zip, winrar, v3zip 에서 잘 풀립니다. 단 v3zip는 U+10000의 유니코드 글자를 표준 UTF-8로 처리하지 않아서 제대로 풀어주지 못합니다. 99.99% 사용하지 않는 글자들이니 평소 사용에는 지장이 없을껍니다. 안랩에는 버그리포트를 한 상태입니다.)

2009.10.30
CleanArchiver 원 개발자이신 INAJIMA Daisuke님과 연락이 되어서 지금까지 수정한 내용을 모두 원래 공식 CleanArchiver 프로젝트에 전달했습니다.

2009.11.22 버전 3.0b1
서비스 메뉴를 통한 압축을 할 수 있게 했습니다.
실행을 위해 요구되는 OS X의 최소 버전을 10.4로 수정했습니다.  Intel, PPC에서 모두 실행됩니다.
편의를 위한 메뉴와 일부 옵션이름을 수정하였습니다.
원 개발자분의 업데이트 링크를 사용하여 나중에 업데이트를 자동으로 할 수 있게 해놓았습니다.
(단 윈 개발자분과 제가 만든 프로그램의 기능 차이가 있습니다.)

2009.12.07 버전 3.1b2
압축 프로그램의 32 & 64bit를 구분해 실행합니다. 64비트로 압축시 20%정도 성능향상이 있습니다.
일부 압축 형식에서 파일이름 암호화, 솔리드압축 등의 옵션이 추가되었습니다.
dmg파일의 암호지정, 압축률 지정이 가능합니다.
분할압축, zip에서 인코딩지정 메뉴가 바뀌었습니다.
Posted by trip2me
,
애플포럼에 WebDAV를 사용함에 있어서 애로사항에 대한 글을 보고 요즘 관심사이기에 문제를 해결하는 패치를 만들어 올려 봅니다.

WebDAV( Web-based Distributed Authoring and Versioning) (웹기반 분산형 저작 및 버전관리)는 기존의 HTTP프로토콜을 확장해서 웹서버에 있는 파일을 관리(목록 조회, 수정, 삭제, 이동 등)할 수 있게 하는 확장된 프로토콜 셋입니다. Apache웹서버에서도 이 기능을 mod_dav란 확장 모듈을 통해서 지원합니다. 자세한 소개는 커피닉스님의 소개글과 한컴사의 남동선님글을 참고하세요

OS X에서 항상 한글등의 풀어쓰기로 표현이 되는 문자들에서 문제가 되는 Unicode Normalization이 여기에서도 관심사가 됩니다.

만약 OS X에다 아파치 웹서버를 운영하고 mod_dav를 사용하면 결국 접속하는 클라이언트들은 애플에서만 유일하다시피 사용중인 NFD(Normalization Form Decomposed)(풀어쓰기로 최대한 나타내는 형태)로 표현된 유니코드 UTF-8 문자열을 보게 됩니다. 그렇게 되면 NFD를 제대로 표시하지 못하는 운영체제나 WebDAV클라이언트에서는 한글이나 기타 풀어쓰기 문자들이 죄다 망가져 보이거나 풀어헤쳐져 보이게 됩니다. 여기에서만 문제가 있는게 아니라 이 파일을 자신의 컴퓨터에 복사하면 한 폴더에 같은 이름을 가지는 두개의 파일이 생길 수도 있습니다.( 같은 글자이지만 풀어쓰기 모아쓰기된 유니코드의 섞임때문에 )

사실 유니코드 영역에 풀어쓰기와 모아쓰기글자영역이 모두 있는 언어의 경우에 이들(완성된글자 '한' = 초성ㅎ+중성ㅏ+종성ㄴ) 사이를 같은 글자로 볼 것인가 다른 글자로 볼 것인가에 대해서 Unicode consortium과 국제 표준을 규정하는 ISO/IEC 간에 의견차이가 있다고 하던데 정확히는 모르겠네요. 하지만 실제적으로 사용상에 다르게 본다면 앞문단 끝부분에 적었듯이 문제꺼리가 됩니다.

애플에서도 이런 사항에 대해 몇가지 관련 링크가 있습니다.그 중 하나인 커널레벨에서 인코딩 변환을 위한 자료인Text Encodings in VFS를 가지고 위 문제를 해결했습니다. 추가로 맥에서 제공하는 iconv에서도 자신들의 풀어쓰기 인코딩을 'UTF-8-MAC'이라는 이상야릇한 비공식적인 이름으로 지원합니다. 마찬가지로 여기서도 위 링크의 커널레벨 변환을 이용하여서 구현했더군요. 현재 위 링크의 vfs_utfconv.c란 소스코드는 받을 수 없는데 다행히 공개된 OS X의 xnu소스코드안에 찾아보면 파일이 있습니다. 실제 구현은 HFS+에서 사용하는 인코딩 표를 그대로 배열로 만들어서 1:1변환합니다.

본론으로 돌아와서 패치를 어떻게 한 것인지에 대한 내역을 적습니다. 먼저 아래 그림을 보면 mod_dav와 mod_encoding의 메시지 흐름을 볼 수 있습니다.
mod_dav layer

WebDAV표준에 근거해 mod_dav가 UTF-8 인코딩으로 파일명을 보네달라는 요청에도 로컬 인코딩으로 응답하는 클라이언트의 문제 해결을 위해서 일본에서 mod_enconding 모듈이 만들어 졌습니다. 모듈을 올리면 mod_dav가 파일생성등의 요청을 받기전 먼저 가로채서 클라이언트의 로컬 인코딩을 UTF-8로 바꾸어 전달해주는 방식입니다. 하지만 반대의 상황, 즉 그림에서 역시나 보이듯이 mod_dav가 클라이언트에게 파일이름을 전달하는 경우에는 mod_encoding이 작동하지 않습니다. 그래서 이것을 해결하기 위해서 mod_encoding에서 받아들인 요청에 대한 클라이언트 인코딩 설정을 기록하고 이를 mod_dav에 전달해서 mod_dav가 응답을 할 때 제대로 인코딩을 맞추어 주도록 패치를 만들었습니다.

바꾼 내용은 많지 않습니다. 일본에서 맥용으로 만든 패치가 있는데 이것을 기본으로 해서 단순히 NFD -> NFC로만 바꾸는게 아니라 mod_encoding에서 설정한 인코딩으로 다시 변경을 하여 보내도록 요청된 페이지 정보에 추가 인코딩 정보를 넣어서 mod_dav모듈에서 인코딩이 무엇인지 알 수 있게 만들어 vfs_utfconv.c 혹은 libiconv로 인코딩을 바꾸어 주게 만들었습니다. 그렇게 되면 httpd.conf의 mod_encoding.c 에서 설정한 클라이언트별 인코딩 변경이 서버->클라이언트로도 적용 됩니다. 그러면 표준을 따르지 않던 클라이언트에서도 제대로 파일명을 보고 파일을 만들 수 있습니다.

애플포럼에 첨부파일 용량이 작아서 이곳에 백업 및 좀 더 자유스러운 다운로드가 되게 하기 위해 올립니다. 아무래도 모듈 업그레이드가 되면 업데이트 되어야 하므로 소스의 변경 부분만 diff로 만들어서 나중 적용이 쉽게 해 놓았습니다.

소스코드는 mod_encoding 사이트와 애플의 공개 소스코드 사이트에서 받아 왔습니다. 수정이 필요하다면 소스쪽의 라이센스에 따라 자유롭게 사용하시면 됩니다.

같이 첨부한 모듈 바이너리는 10.5.8에서 컴파일한 유니버설 바이너리 모듈입니다. /usr/libexec/apache2에 mod_dav.so, mod_encoding.so 파일을 넣고 httpd.conf 설정을 아래 예제와 비슷하게 해 주면 됩니다.



/etc/apache2/httpd.conf... # 모듈 로드 설정부 LoadModule dav_module libexec/apache2/mod_dav.so LoadModule encoding_module libexec/apache2/mod_encoding.so ... # mod_encoding 옵션 설정부분 <IfModule mod_encoding.c> EncodingEngine on # 인코딩 변경 활성화 여부 SetServerEncoding UTF-8 # 기본 서버측 인코딩 NormalizeUsername on #윈도우처럼 '워크그룹\아이디'형식의 사용자명을 아이디만 걸러줍니다. DefaultClientEncoding UTF-8 CP949 # 아래에 클라이언트별 인코딩 설정이 없는 경우 기본 인코딩을 적용할 값 # AddClientEncoding "UserAgent를 매칭할 문자열 정규식" "하나이상의 여러 시도할 인코딩" AddClientEncoding "Microsoft-WebDAV*" UTF-8 CP949 # MS Windows XP AddClientEncoding "RMA/*" CP949 # RealPlayer AddClientEncoding "DataFreeway/.*" CP949 # datafree client AddClientEncoding "WebDAVFS/*" UTF-8-MAC # OS X 인코딩 변환을 무시할 것은 이렇게 인코딩을 지정해도 됩니다. </IfModule> ...


추가로 UTF-8-MAC 인코딩을 다룰 수 있게 패치한 리눅스에서 컴파일되는 libiconv도 함께 올립니다. 단 libiconv의 중간 변형단계를 거치는 특성상 유니코드 Surrogate pair의 변환이 되지 않으므로 U+10000 이상의 문자를 변환시도시 실패하게 됩니다.
Posted by trip2me
,
디스크 이미징 프로그램을 받아서 빌드하던 중 아래와 같은 에러가 났다.

ld_classic: can't locate file for: -lcrt0.o

즉 crt0.o를 찾지 못한다는 이야기인데 구글링해 보니 Apple Developer문서에 있는 내용이었다.

결론은 애플에서는 static링킹을 지원하지 않고 있으므로 가급적 dynamic linking을 사용하여 crt1.o를 링크하라는 내용이었다. 결국 그래서 Makefile에 있는 -static 옵션을 제거하고 동적으로 링킹해서 빌드를 했다.

그리고 반드시 static linking이 필요한 경우라면 Open Darwin에서 Csu 라는 모듈을 다운받아서 빌드후 crt0.o 를 사용하라고 한다. 단 이 모듈은 업데이트가 되지 않으므로 릴리즈 업데이트시 수동으로 빌드를 해 주어야 하는 단점이 있다.


다운받은 Csu module을 빌드할 때
export RC_ARCHS="ppc i386 ppc64 x86_64"
식으로 지정 후 make하면 원래 /usr/lib에 있던 기존 crt1.o와 같은 4가지 아키텍쳐를 지원하게 빌드 가능하다.

10.5.6에서 빌드한 Csu-75 결과물을 첨부파일로 올린다. tarball을 풀어서 crt0.o를 /usr/lib 에 집어넣고 빌드해 주거나 static 빌드하는 패키지에서 적당히 파일 링크를 추가하면 된다.
Posted by trip2me
,
모니터 캘리브레이션 장비가 없는 나로서는 눈을 이용해서 그나마 모니터가 색을 잘 표현하게 설정을 해 줄 수밖에 없다.

맥에서는 캘리브레이션 마법사가 있지만 조금 부족해서 Berg Design사의 Supercal을 이용해서 세밀한 보정을 할 수 있다. 물론 자신의 눈으로 모든 설정을 한다. 조금 힘이 들긴 하지만 세세한 설정으로 꽤나 만족스러운 결과를 볼 수 있다.

첨부파일은 Supercal로 내가 설정한 X61T의 모니터인 HV121P01의 컬러 프로파일이다.



그런데 쭉 맥을 쓰다가 윈도우로 가끔 가면 이 프로파일이 적용되지 않아서 사진을 보거나 웹사이트를 갈 때 색감이 맞지 않아서 불편할때가 많다. 그래서 이리저리 웹서치를 한 결과 northlight-images라는 사이트에서 소개한 Monitor Calibration Wizard라는 무료 프로그램을 소개 받았다. 프로그램을 설치하고 Supercal보다는 덜 세세한 설정을 하긴 했지만 결과 보정 후 나은 색상을 볼 수 있었다. 조금 아쉬운 점이라면 Gamma수치에 대해서 쉽게 캘빈 온도단위로 설정을 알려주면 좋은데 단지 상대적인 수치로 밝기 조절을 해서 그게 어려웠다. 그리고 컬러 프로파일을 적용하기 위해서 항상 윈도우 실행시마다 해당 프로그램을 실행해 주어야 한다는 단점이 있다. 물론 조그마한 프로그램이라서 부담을 주지는 않는다.

그리고 두 프로그램을 올려본다.


P.S. 좀 더 자세한 캘리브레이션에 대한 내용은 Norman Koren의 사이트를 참고하면 된다.
Posted by trip2me
,
OS X의 쓰레기통을 비우고나서 로그를 보면 Locum이란 프로세스가 종료되었다고 하는 것을 항상 볼 수 있다.

그 녀석이 항상 비울때 마다 뜨는 이유를 GREG MILLER님의 글에서 볼 수 있다.
대강의 설명을 하자면 사용자 자신에게 권한이 없는 파일이나 디렉토리들을 지우기 위해서 실행되는 프로세스란다.

어떻게 생각해 보면 그냥 사용자가 권한 상승을 통해서 해당 삭제를 해도 되겠지만, 보안성을 생각했을때 나름 애플측의 세심한 배려라고 볼 수 있다.
Posted by trip2me
,
Mac OS X에서 POSIX 규격의 세마포어는 사실 Mach semaphore 기반으로 구현이 되어 있다고한다 ( Mac OS X Internals 도서 9.18.5 참고 ).

한가지 사소한 문제점이라면 OS X에서 POSIX규격의 unnamed semaphore(binary semaphore)가 구현되어 있지 않다는 점이다. 그래서 POSIX unnamed semaphore를 구현하려면 2가지 대체 방안을 사용할 수 있다.
  1. POSIX의 named semaphore를 사용
  2. Mach semaphore를 사용

 POSIX의 named semaphore를 사용하는 방법은 POSIX unnamed semaphore를 생성할때 사용하는 함수인 sem_init()대신 sem_open()을 사용하는 방법이다. sem_open("/tmp/sem", O_CREAT, 0777, 0)) 처럼 구체적인 파일을 열어야 한다.

 두번째 방법인 Mach semaphore를 사용하는 방법은 애플 데벨로퍼 사이트를 참고하면 된다. 세마포어를 만들때 semaphore_create()를 사용하는데 조금 다르다. 사이트를 읽어보면 바로 깨어난 쓰레드가 다시 run되는 stavation을 피하도록 설계되었다고 하니 참고할 것.

Using counting semaphores on Mac OS X 링크의 글도 참고~
Posted by trip2me
,
오픈소스인 openVPN을 사용하여 구성한 VPN서버에 쉽게 접속하기 위한 OS X용 클라이언트를 소개한다.


오픈소스로 Tunnelblick이란 프로젝트가 있다. openvpn커맨드라인 소스코드와 tun/tap 오픈소스를 이용해서 GUI로 간편하게 openvpn서버에 접속하게 해 준다. 요 근래에 다시 프로젝트가 활성화되어 레퍼드에서 접속 문제가 있던 것을 해결한 버전이 올라와 있다.

상용으로는 인터페이스가 깔끔한 Viscosity라는게 있다. 이녀석을 외국인들은 추천을 하는듯. KT망으로는 DNS가 막힌건지 우회해서 다운받았다.

설치는 간단히 다운로드 받아서 원하는 곳에 복사해 놓으면 된다.

그리고 실행을 해보면 이렇게 썰렁하게 막혀있는 터널모양의 아이콘이 메뉴막대에 나타난다.

일단 연결 예제를 보여주기 위해서 AlwaysVPN이라는 미국에서 베타로 제공중인 서비스를 이용하겠다. 연결을 위해서 사이트에서 제공하는 익명연결을 지원하는 인증서를 다운로드 받는다.

그리고 받은 파일을 ~/Library/openvpn 디렉토리 아래에 적당한 폴더를 만들어 집어 넣고 이제 Tunnelblick을 다시 실행한다.
그리고 메뉴 아이콘에서 'Details...'를 선택하면 두개의 vpn연결설정이 있음을 확인할 수 있다. ( 주: 이미지의 나머지 하나는 개인적인 연결이다...)
사용자 삽입 이미지


자 여기서 먼저 'Edit Configuration' 버튼을 눌러서 설정파일의 위치를 확인한다. 왜냐하면 받은 인증서의 경로가 제대로 설정파일에 설정되지 않으면 제대로 작동되지 않기 때문에~ 그림에서 신경써줄 경로는 블럭으로 파랗게 해 놓은 부분이다. 알아서 적절히 고쳐주면 된다.
사용자 삽입 이미지


그렇게 하고 사파리 등에서 이 VPN연결을 통해서 DNS쿼리를 하려면 'Set Nameserver' 를 선택해주면 된다.
이제 설정이 다 되었다면 연결을 눌러보자~ 연결이 성공적으로 되면 뚫린 터널 아이콘을 볼 수 있고 로그에 성공했다고 나온다.
사용자 삽입 이미지




AlwaysVPN서비스의 경우는 미국에서 제공하는 것이고 공개베타라 그런지 느리고 자주 끊어지는 경향이 있다. 아마 조만간 유료화하리라. 그리고 Tunnelblick의 경우에 AlwaysVPN서비스가 제대로 서비스 되지 않아서(조만간 고쳐지기를~ 아마 스크립트나 내부적으로 사용하는 openvpn 2.1rc16 버전의 문제인것으로 보인다.openvpn 2.0.9 stable로 교체하면 잘 될지도 ㅡ0ㅡ; ) shareware인 Viscosity로 접속하고 그 모습을 올려본다. 이상태에서 사파리등으로 우회한 브라우징을 할 수 있다. 들어갈 수 없는 미국의 사이트에 접근이 가능하다. 예를 들어 위 viscosity사이트를 방문해 보길~

사용자 삽입 이미지
사용자 삽입 이미지
아래 이미지는 VPN을 통한 미국내 접근만 가능한 hulu.com의 family guy의 한 에피소드 플레이 모습. 하지만 속도가 느려서 보는건 무리이다.
사용자 삽입 이미지
Posted by trip2me
,
리눅스에서 습관적으로 pkill을 사용하다가 맥에서도 당연히 있으리라고 pkill을 했지만 되지 않았다.

알고보니 pkill은 기본 유틸리티가 아니었다. 그래서 pgrep, pfind, pkill을 사용하려면 스크립트를 사용하거나 BSD계열을 위해 만든 proctools라는 유틸들을 받아서 빌드하여 사용하면 된다. proctools는 이미 macport에 포팅되어 있는 간단한 프로그램들이므로 macport를 이용해도 된다.

또 몰랐던 나의 실수는 사실 BSD계열에 killall 이란 명령이 있다는 것이다. 이 녀셕이 대략 pkill과 같은 부류의 명령이다. pgrep, pfind는 ??? 글쎄.... 아마 killall에 옵션을 주거나 다른 명령을 조합하면 될지도~
Posted by trip2me
,
scheme을 사용하기 위해 이런저런 scheme구현을 빌드하고 있다. 그중 SICP책에서 사용하는 scheme구현인 MIT-Scheme을 빌드하기 위해 최근 스냅샷을 받아서 빌드하려고 안간힘을 썼다. 처음에는 바이너리를 받아서 설치하니까 .dylib가 있는데도 이미지가 없다고 에러를 내기에 아마도 레퍼드의 동적라이브러리를 사용하기 때문이라고 판단하고 소스 빌드를 시도했다.

그런데 또 하나의 문제가 소스를 빌드할때도 역시나 sbcl처럼 자기자신의 컴파일러가 필요했다. 이런.... 쳇.

결국 한참 삽질을 하다가 이전 스냅샷 릴리즈중에 mit-scheme-20070909-ix86-apple-darwin.tar.gz 바이너리를 일단 받아서 /usr/local 아래에 모두 설치한 후 다시 최신 소스 스냅샷을 받아 빌드했다. 소스 버전이 몇가지 되는데 바이너리가 작동 된다면 그냥 Source (.tar.gz) 버전을 받아서 설치하면 된다. 굳이 portable-c버전을 받을 필요는 없다. 어차피 두 소스 다 바이너리가 설치되어 있지 않으면 빌드가 불가능하다. ㅡㅅㅡ;

레퍼드라면 이런 삽질을 하지는 않았을텐데... 왜 미리 레퍼드라고 사이트에 알려놓지 않은건지... 어제 설치한 gambit-c도 자기 마음대로 버전넘버를 prefix에 집어 넣어서 짜증나게 만들더니...
Posted by trip2me
,
새로운 링크 소개 이 게시물 대신 새로 만든 프로그램을 사용하세요. 


맥을 쓰면서 가끔 불편한 구석이 있었을때가 친구는 윈도우를 쓰는데 필요한 자료를 묶어서 보내 줄 때 한글이 포함된 경로명이나 파일이 있으면 죄다 깨어져 보인다는 것이었다.

이걸 해결해 보려고 많은 시도를 해 보았었다. 유니코드를 지원하는 압축 포멧들( 7z, rar )를 써 보았지만 한글이 깨어지지는 않는데 또 첫가끝형식을 사용하는 맥의 한글이 그대로 윈도우에서 나타나버려서 가령 '연습.txt'의 경우 윈도우에서 'ㅇㅕㄴㅅㅡㅂ.txt'처럼 풀려버리는 문제가 있었다. bzip2의 경우는 화일 하나만 저장 가능하지만 글자가 풀리는 문제는 없었다. 하지만 일일이 하나씩 압축 할 수는 없고 디렉토리도 해결할 수 없다.

그래서 애플 포럼의 글도 참고해 보았고 여러 블로그를 검색해 보았는데 zip형식은 파일의 인코딩제한을 하지 않는다는 것과 파이선의 zipfile모듈은 zip으로 압축할때 내부에 저장되는 이름을 바꿔 저장이 가능하다는 것이었다.

그래서 처음에 파이선으로 경로명을 UTF-8에서 EUC-KR로 바꾸어주는 unicode모듈을 이용해서 스크립트를 만들었다. 그런데 만드는 도중에 인코딩 변환이 생각대로 되지 않고 에러를 내기에 알고보니 NFD를 사용하는 맥의 문자열을 내가 그대로 NFC를 사용하는 파이선의 인코딩 변환함수에 적용하였기 때문이었다. 구글링과 파이썬 마을 장혜식님의 답글을 통해 문제를 해결했다. 빠른 답변을 해 주셔서 고마웠다.

만든 스크립트를 사용해 보니 잘 되긴 하지만 아무래도 터미널에서 사용하는게 불편하기도 하고 압축되는 경로 사이에 압축 파일이 있을 때 자신을 제외하는 예외처리를 하지 않은 상황이라 그래도 좀 무리없이 사용하기 위해서 애플 포럼의 패치맨님 워크플로우에서 힌트를 얻어서 오토매이터 버전으로 변경을 해 보았다.

처음에 바꿀때 잘 몰랐던 사실은 오토메이터가 'get selected items'로 선택된 파일을 줄 때 모두 절대경로명이 넘어온다는 것이었다 그래서 짜 놓았던 스크립트를 조금 변경해야 했다. 또한 압축파일 중복시 새로 이름 바꾸어서 저장하는 부분도 추가하고 선택한 파일의 이름을 압축결과의 파일명이 되도록 했다.

아직 예외처리가 없어서 파일읽기 오류나 디스크 가득찰때, 모르는 기타사항에 대해 오류를 보여주지는 않지만 간단히 윈도우로 보낼 것을 압축하는데는 유용하게 사용 가능할 듯 하다.



설치는 간단히 첨부파일의 압축을 풀어서 자신의 맥버전에 맞추어 폴더안에 들어있는 파일만 ~/Library/Workflows/Applications/Finder/ 아래에 넣어 주면 설치끝~
파인더를 열고 Cmd+Shift+G 를 눌러 나온 글상자에 위의 경로를 붙여넣으면 한방에 이동할 수 있다.

사용방법은 압축을 원하는 파일이나 디렉토리를 하나이상 골라서 놓고나서 마우스 오른쪽 버튼을 눌러 컨택스트 메뉴의 Automation -> winzip을 고르면 압축을 해 준다.
winzip



ps. 타이거 유저는 파이썬버전이 낮아서 2.4 이상으로 업그레이드가 필요하다.
1.우선 최신 파이썬 mac용을 다운받아 설치한다
2.터미널을 열고나서 아래 명령을 차례대로 실행한다. 암호를 물을때 사용자암호를 입력하면 된다..
sudo mv /usr/bin/python /usr/bin/python.old
sudo cp /usr/local/bin/python /usr/bin/python


Posted by trip2me
,