2014년 3월 10일 월요일

AWS RDS에서 OSM데이터로 PostGIS 서비스 설정

비 AWS 환경에서 설정하는걸 쓰려다가 AWS에서 너무 간단하게 해버려서 그냥 패스하고 메모.


1. OSM 데이터를 준비한다. 오래 걸리니까 다운 걸어두고,

2. RDS 인스턴스를 생성한다. postgresql로 설정하고 나머지는 알아서.

3. end point가 열리면 postgis extension을 활성화한다.

> CREATE EXTENSION postgis;

필요하면 postgis_topology도..

> CREATE EXTENSION postgis_topology;

4. osm2pgsql로 데이터를 밀어넣는다. 목적에 따라 -l 옵션을 줘서 lat/lng를 사용하도록 해두면 편하겠지..

$ osm2pgsql -v -d DB_NAME -U USER_NAME -l -W -H HOST -P PORT_NUM OSM_FILENAME

꽤 오래 걸린다. 9기가짜리 spain.osm 데이터 넣는데 한 30분 걸린거 같다. 시간 체크는 안해봄.

2012년 10월 28일 일요일

우분투에서 맥OS 타임머신 서버 설정하기


타임캡슐을 사자니 돈이 아깝고, 백업을 안 하자니 마음이 불안하고, 왠지 우분투를 이용해서 타임머신 백업을 멋지게 처리할 수 있을것 같다는 막연한 생각에 구글링을 좀 했더니 결과가 우르르 쏟아진다.

netatalk 패키지를 이용해서 afp (Apple Filing Protocol) 서비스를 운영하는 방법을 통해 맥에서 우분투 서버의 네트웍 드라이브를 마운트 할 수 있고 이걸 타임머신 디스크로 설정하는 방법이다.

우분투 12.04 LTS x86_64 버전과 Mac OS X Mountain Lion 에서 테스트 했다.


서버 설정

avahi-daemon 과 netatalk 패키지를 설치한다.

$ sudo apt-get install avahi-daemon



afp 에서는 몇가지 UAM (User Authentication Method) 를 지원하는 모양인데, 애플 문서를 보면 DHX2 (Diffie-Hellman Key eXchange 2) 를 사용하도록 권고하고 있다.
DHX2 를 지원하기 위해서는 netatalk 버전 2.2 이상을 사용해야 하는데 글을 쓰는 현재 2.2.1이 기본으로 설치되므로 그냥 설치 ㅇㅇ
$ sudo apt-get install netatalk



필요한 패키지는 다 설치했고, 이제 설정만 하면 된다.
고쳐야 하는 설정 파일은 아래와 같다.

/etc/netatalk/afpd.conf
/etc/netatalk/AppleVolumes.default



/etc/netatalk/afpd.conf 파일에서 afp 서비스에 대한 기본 설정을 해준다.
옵션들에 대한 자세한 설명은 afpd.conf 파일 안에 주석으로 달려있으므로 파일 내용을 참고.

default 옵션은 
# default:
# - -tcp -noddp -uamlist uams_dhx.so,uams_dhx2.so -nosavepassword

이렇게 되어 있는데, UAM list 옵션에는 dhx2만 쓰고 dhx는 사용하지 않을것이니 삭제.
그리고 uam_guest.so 가 포함되어야 한단다. (netatalk 버그때문에..) 이 모듈을 추가하지 않으면 SIGSEGV가 발생하므로 주의!

암호를 저장해두는 취미는 없으니 -nosavepassword 는 남겨두자.

afpd.conf 파일에 다음 내용을 추가.

- -tcp -noddp -uamlist uam_guest.so,uams_dhx2_passwd.so -nosavepassword


/etc/netatalk/AppleVolumes.default 파일에서는 마운트 관련 옵션을 설정한다. 역시 각 옵션에 대한 자세한 설명은 AppleVolumes.default 파일 안에 주석으로 달려 있으므로 파일 내용을 참고.

처음 파일을 열어보면 홈 디렉토리를 디폴트로 열어주는데 난 only 타임머신 백업용으로만 쓸거니까 주석 처리. TM 백업 디스크용으로 사용할 위치 (마운트 포인트)와 디스크 이름, 옵션들을 써주자.

AppleVolumes.default 파일에 다음 내용을 추가.

#~/ "Home Directory"
/path/to/TimeMachineFolder "TM on ubuntu" cnidscheme:dbd options:usedots,upriv,tm volsizelimit:300000 allow:user_account

volsizelimit 은 MiB 값으로, 내 맥북에 달린 SSD가 300G 짜리니까 300G으로 줬다. 주황색 부분은 각자 알아서들...



맥에서는

Finder 에서 Command+K 를 눌러서 서버 연결을 열자 (Finder Menu -> 이동 -> 서버에 연결)

afp://server_ip_address

서버 주소에 이렇게 입력을 하면, 우분투 서버의 계정과 비번을 물어본다. 계정 정보는 아까 AppleVolumes.default 에서 설정한 놈으로 넣으면 된다.


그리고 타임머신 앱을 실행시켜서 백업 디스크로 방금 마운트 한 우분투 서버의 afp 드라이브를 지정하면 끝!

만세!



References:

2012년 7월 27일 금요일

XCode 에서 vim key binding 사용하기

오래된 vim 유저들은 키보드질을 할 때, vim key binding 이 아니면 심기가 불편해지는 경향이 있다. 

나의 경우엔 이 증상이 심할때는 firefox 에서도 vim key binding을 사용했을정도이니 (이걸썼음) 코딩할때는 오죽하겠나..

 나는 본디 GUI 보다 CUI가 편리한 갈라파고스에서 태어나서 그렇게 10년이 넘게 진화를 해서 (아니 이건 퇴화라고 봐야되나...), 굳이 IDE가 필요하다고 생각할만큼 IDE가 주는 장점들 (자동완성,디버깅지원 등)에 큰 메리트를 느끼지도 못했고, 터미널 상에서도 크게 불편하지 않을 정도로 해당 기능들을 잘 사용하고 있었다.

하지만 iOS 개발을 할때는 특성상 Xcode를 사용하지 않으면 생산성이 현저히 떨어지는 관계로, 부득이하게 터미널을 버리고 그냥 Xcode를 사용한지 벌써 서너달이 되었다.

아... 
처음엔 적응기간이 필요하려니 하고 캄캄한 동굴속에서 쑥과 마늘만 우적우적 씹는 호랑이의 심정으로 불편한 심기를 잘 다스리며 차츰 적응해나갔다.
에디팅은 여전히 불편하고, 터미널에서 보던것과는 다르게 코드의 심미적인 면이 많이 죽어보인다. 터미널에서 보는 코드는 바다에서 바로 낚아 챈 싱싱한 횟감의 펄떡이는 날 것의 기운이 그대로 느껴진다고 하면, IDE에서 보는 코드는 솜씨좋은 주방장이 이미 회를 떠서 낸 그런 기분이랄까....

헛소리가 길어졌는데,
드디어 오늘, Xcode에서 vim key binding을 쓸 수 있게 되었다!!!
jugglerShu 라는 훌륭하고 멋진 개발자가 XVim 이라는 Xcode 용 vim plugin 을 만들어 놓았다. 네이밍이 좀 여러가지 다른 이미지가 떠오르게 하지만 괜찮다! 이렇게 좋은 플러그인이면 그게 이름이 미쿠루빔이라도 상관없을것 같다. 

github에서 코드를 받아서 xcode에서 빌드/실행하면 자동으로 설치까지 마무리된다. 
이 플러그인의 목적은 Xcode의 기능들을 포기하지 않는 선에서 vim 경험을 최대한 xcode에서 살려보겠다는 것이다.

지원하는 vim command 는 여기서 확인.
설치를 끝내고 이것저것 테스트를 끝내니 격한 기쁨이 쏟아지면서, "Diamonds are a girl's best friend" 라는 노래가 떠올랐다.
Vim is a Geek's best friend 라고 가사를 바꿔서 흥얼흥얼~

BGM이 하나쯤 필요하겠지?
그럼 물랑루즈에서 니콜키드만이 불렀던 버전을 쓰는걸로.
 

 이상~