월간 보관물: 7월 2013

OS X 에서 NTFS 쓰기. FUSE for OS X, 그리고 NTFS-3G

얼마전에 티켓몬스터에서 1TB 외장하드 (LETO사 제품, USB3.0 지원) 를 79,900원 이라는 저렴한 가격에 팔길래 냅다 구입했다.

제품은 잘 받았는데, 외장하드 포맷을 하면서 고민이 시작됐다.

OS X 에서는 Mac OS 확장 (저널링) 포맷을 사용하는데, Windows 계열과 TV 에서 지원하지 않는 방식이라 오직 맥에서만 사용가능하다.
나는 OS X, Windows 계열, 그리고 TV 세군데에서 모두 사용을 하기를 원했다.

그렇다면 Mac OS 확장 포맷은 탈락.

그 다음에 선택할 수 있는 방식이 FAT32 방식인데 OS X, Windows, TV 모두 사용할 수 있지만, 아쉽게도 4GB 가 넘는 파일은 저장할 수 없다.
요즘 동영상 추세가 4GB 를 넘어 5GB 넘는 파일도 넘는 걸 감안하면, 역시 탈락. -_-;

그리고 고민하던 게 exFAT 방식인데 OS X, Windows 7 이상 (XP 에서는 별도의 업데이트가 필요하다고 한다) 에서는 잘 된다고 하는데, TV 에서는 인식이 되지 않았다. 그래서 탈락.

결국 남은 건 NTFS 방식인데 OS X 에서는 기본적으로 NTFS 포맷은 읽기만 되고, 쓰기가 되지 않는다.
유료 프로그램을 사용하면, NTFS 에서도 쓰기가 가능하지만, 윈도에서는 무료인데 OS X 에서는 유료로 쓰기를 해야한다는 게 좀 아쉽다.

그래서 찾아보다 보니, 좋은 오픈소스소프트웨어가 있어 소개해 둔다.

OS X 에서 NTFS 쓰기 ( 참고로 나는, OS X 10.8.3 환경이었다. )

1. FUSE for OS X (http://osxfuse.github.io/) 설치 – OSXFUSE 2.6.0 (2013.6.17) download
(설치시 기본적으로는 체크되어 있지 않은 MacFUSE compatibility layer 도 직접 체크해서 설치해야 한다)
2. NTFS-3G for OS X 설치 – NTFS-3G (2010.10.2)download
NTFS-3G 설치시 사용자화 (Customize) 버튼을 눌러서 “Installation Type” 에서 “MacFUSE” 옵션을 체크해제 해야 한다.
추가 설명 및 uninstall은 링크 참조
3.NTFS 외장하드 인식시에 귀찮게 뜨는 오류 메시지를 없애기 위해서는, fuse_wait 를 설치하자. https://github.com/bfleischer/fuse_wait/downloads

그런대로 쓸만해졌다. (그렇지만, fuse_wait 을 설치하고도 간혹 NTFS 외장하드를 연결해제할 때 timeout 메시지가 뜨기는 뜬다.)

Advertisements
태그 지정됨 ,

Homebrew 로 OS X 패키지 관리하기

OS X 은 기본적으로 wget 명령을 내장하고 있지 않다.

물론 curl 로 옵션을 이용해서 파일 (바이너리) 다운로드가 가능하지만, 그외에도 Apple 에서 기본 제공하지 않는 패키지들이 필요할 때가 있다.

하나씩 다운받아 설치할 수도 있겠지만, 이를 편하게 관리할 수 있는 패키지 관리자가 있어 소개한다.

The missing package manager for OS X (OS X 용 패키지 관리자) – Homebrew

사실은 Macports 를 설치하려고 검색하다가, 우연히 Homebrew를 알게 되었고 좀 더 자세히 살펴보다 보니 Macports 의 단점을 보완하고, 훨씬 장점이 많다는 걸 알게 되었다.

참조 : 잘가 macports. 반갑습니다. homebrew.

설치방법은 매우 간단하다.

터미널에서,

ruby -e "$(curl -fsSL https:⁄⁄raw.github.com/mxcl/homebrew/go)"

명령 한방이면 설치 끝.

다만, 정상 작동을 위해서는 Xcode 용 Command Line Tools 가 설치되어 있어야 한다. Xcode 를 설치하여 실행한 후, Preferences > Downloads 에서 Command Line Tools 를 설치하면 된다.

Homebrew 설치후에는, 터미널에서 brew -v 명령 (또는 brew –version) 으로 설치 버전을 확인할 수 있다.

$ brew -v
Homebrew 0.9.4

이제 Homebrew 를 설치했으니 원하는 패키지를 brew 명령을 통해 설치할 수 있다.

설치는 간단하게 brew install 원하는 패키지 명령으로 설치할 수 있다.

가령 macvim 을 설치한다고 하면,
search 명령으로 brew 패키지 검색을 하고, install 명령으로 설치한다.

$ brew search vim
macvim	  vim	    vimpager  vimpc           // vim 으로 찾았더니 4개의 패키지가 있다.
$ brew install macvim
==> Installing macvim dependency: cscope
==> Downloading http://downloads.sourceforge.net/project/cscope/cscope/15.8a/cscope-15.8a.tar.g
######################################################################## 100.0%
==> Patching
patching file src/constants.h
==> ./configure --prefix=/usr/local/Cellar/cscope/15.8a --mandir=/usr/local/Cellar/cscope/15.8a
==> make install
🍺  /usr/local/Cellar/cscope/15.8a: 10 files, 740K, built in 9 seconds
==> Installing macvim
==> Downloading https://github.com/b4winckler/macvim/archive/snapshot-66.tar.gz
######################################################################## 100.0%
==> ./configure --with-features=huge --enable-multibyte --with-macarchs=x86_64 --enable-perlint
==> make
==> Caveats
MacVim.app installed to:
  /usr/local/Cellar/macvim/7.3-66

To link the application to a normal Mac OS X location:
    brew linkapps
or:
    ln -s /usr/local/Cellar/macvim/7.3-66/MacVim.app /Applications
==> Summary
🍺  /usr/local/Cellar/macvim/7.3-66: 1759 files, 27M, built in 53 seconds

종속성이 있는 모듈을 먼저 다운받아 설치한 후, macvim 을 설치한다.
/usr/local/Cellar/ 경로안에 패키지명/버전 으로 설치가 되고, (brew 는 동일 패키지라도 버전별로 따로 관리할 수 있다!!)
/usr/local/bin/ 내에 symbolic link 를 걸어둔다.

/usr/local/bin $ ls -al | grep vim
lrwxr-xr-x   1 rkJun  admin        33  7 14 01:09 gview -> ../Cellar/macvim/7.3-66/bin/gview
lrwxr-xr-x   1 rkJun  admin        32  7 14 01:09 gvim -> ../Cellar/macvim/7.3-66/bin/gvim
lrwxr-xr-x   1 rkJun  admin        36  7 14 01:09 gvimdiff -> ../Cellar/macvim/7.3-66/bin/gvimdiff
lrwxr-xr-x   1 rkJun  admin        34  7 14 01:09 gvimex -> ../Cellar/macvim/7.3-66/bin/gvimex
lrwxr-xr-x   1 rkJun  admin        33  7 14 01:09 mview -> ../Cellar/macvim/7.3-66/bin/mview
lrwxr-xr-x   1 rkJun  admin        32  7 14 01:09 mvim -> ../Cellar/macvim/7.3-66/bin/mvim
lrwxr-xr-x   1 rkJun  admin        36  7 14 01:09 mvimdiff -> ../Cellar/macvim/7.3-66/bin/mvimdiff
lrwxr-xr-x   1 rkJun  admin        34  7 14 01:09 mvimex -> ../Cellar/macvim/7.3-66/bin/mvimex
$ mvim   // 어디서든 MacVim 을 설치할 수 있다.

brew 에서 설치할 수 있는 패키지들을 formula 라고 부르는데, 일종의 패키지 설명, 좀 더 정확히는 해당 패키지를 다운을 받아 설치하는 .rb 파일을 말한다. (이 목록은 /usr/local/Library/Formula 안에 들어 있다)
그리고 Cellar 는 이 패키지들이 실제 경로라 할 수 있고, 위에서 보았듯 /usr/local/bin 에 ln -s (심볼릭링크) 하는 방식이다.

주요 사용할만한 brew 명령은,
brew install formula // 패키지 설치
brew remove formula // 패키지 삭제
brew info formula // 패키지 정보
brew upgrade [formula] // 설치한 패키지의 최신버전을 설치

brew list 또는 brew ls // 설치한 formula 목록
brew update // Homebrew 업데이트
brew doctor // 시스템에 문제가 있는지 확인
brew outdated // 내가 설치한 formula 목록의 이후 버전이 나왔는지 확인
brew cleanup // fomula 의 모든 과거버전을 제거함

관리자 권한이 필요없다는 점 (sudo) 외에도, 설치한 패키지를 버전별로 사용하는 게 참 편하다.
가령 Play! (경량화된 자바 프레임워크) 를 brew 를 통해 설치해서 사용한다고 할 때,

아래와 같이 총 3개의 버전이 설치되어 있고 2.1.2 를 사용하고 있는데,

$ brew info play
play: stable 2.1.2, HEAD
http://www.playframework.org/
/usr/local/Cellar/play/2.1.0 (4148 files, 268M)
  Built from source
/usr/local/Cellar/play/2.1.1 (3790 files, 225M)
  Built from source
/usr/local/Cellar/play/2.1.2 (3681 files, 223M) *

brew switch 명령을 통해, 간단하게 play 2.1.1 버전으로 바꿀 수 있다.

/usr/local/bin rkJun$ brew switch play 2.1.1
Cleaning /usr/local/Cellar/play/2.1.0
Cleaning /usr/local/Cellar/play/2.1.1
Cleaning /usr/local/Cellar/play/2.1.2
1 links created for /usr/local/Cellar/play/2.1.1

물론 과거 버전도 설치할 수 있다. brew edit formula 명령을 통해 직접 파일내의 다운로드 대상 url 을 수정해 주거나, 과거 버전의 rb 파일을 받으면 된다. formula 의 과거 버전은 brew versions 을 통해 확인 가능하고, git checkout 해서 가져올 수 있도록 되어 있다.

그외에,

간단하게 brew unlink poo 또는 brew link poo 명령으로 간단하게 심볼릭을 걸거나 해제할 수 있고,

아래의 명령을 ~/.bashrc 또는 ~/.bash_profile 등, 쉘 시작시 실행스크립트에 넣어두면 brew 명령을 tab 자동완성으로 사용할 수 있다. (물론 아래 명령은 Bash 용이고, 더 자세한 설명 또는 ZSH 용은 homebrew Tips N’ Tricks 를 참조)

source `brew --repository`/Library/Contributions/brew_bash_completion.sh

Homebrew 를 알게된 이후로 더이상 Macports 를 사용할 일은 없을 것 같다.

OS X 에서 기본 제공하지 않는 wget 같은 명령외에도 정말 수많은 패키지들을 관리할 수 있다. 맥용 앱이라던가, 다양한 프레임워크까지… 무궁무진하다. 그러므로 OS X 을 사용하는 사용자, 또는 개발자에게는 강력하게 권하고 싶다.
Homebrew 가 너무 맘에 들어서, 뭔가 기여할 방법을 찾다가 홈페이지를 한글화 했다. (그래봤자 몇문장 안되지만..)

http://brew.sh/index_ko.html

Macports 를 (불만족스럽지만 대안이 없다고) 사용해 왔거나, 별도의 패키지 관리자를 사용하지 않았던 사용자라면, 지금부터 써보자!

태그 지정됨 ,

OS X 용 한글입력기 “구름” 좋다!

OS X 에 기본 내장되어 있는 한글입력기는, 몇가지 아쉬운 점이 있다. 단축키 설정의 한계 (기본적인 설정변경으로는 SHIFT+SPACE 조합불가) 와, 세벌식 모아치기의 미지원, 그리고 vi 사용할 때 한글로 쓰다 명령모드로 바꾸면 -당연히- 명령모드에서 한글이 먼저 입력이 된다는 불편한 점 ···.

윈도를 사용할 때는 6~7년 전부터 김용묵님이 만드신 날개셋 입력기를 사용하고 있었는데, 맥에서는 기본 입력기를 대체할 프로그램이 없으므로, 그냥 사실, 선택의 여지가 없다고 생각하고 있었는데, 이 모든 단점을 한방에 해결한 한글입력기가 존재하고 있었다. 이름하여 구름 입력기다.

언급하고 싶은 장점은,

1. SHIFT+SPACE (⇧Space) 로 한/영전환이 가능하다.

OS X 의 기본 한글입력기에서는 기본설정 변경만으로는 SHIFT 조합으로 단축키 변경이 불가하고, plist 파일 수정을 통해서만 가능하다. 게다가, 한영자판 외에 추가로 외국어자판을 사용하는 사용자의 경우에는 썩 좋은 방법도 아니다. (나름의 불편함을 동반한다) 하지만 구릅입력기를 사용하면 독립적인 구성으로 한영전환시에는 ⇧+Space 조합을 사용하고 기본자판 변경시에는 CMD+Space 를 사용하므로 기존 체제를 유지하면서, 편하게 사용할 수 있다. 게다가 브라우저 등에서 스크롤 올리는 단축키(SHIFT+SPACE) 와 충돌 또한 발생하지 않는다. -기본입력기에서 단축키를 바꾸면 충돌이 나서 스크롤 올리는 기능이 먹지 않는다.

2. 세벌식 모아치기를 지원한다.

꼭 지원해야 한다고 생각하지는 않지만, 편해지는 건 사실이다.

3. ESC 키입력으로 영문자판으로 변경.

vi 명령모드나, 구글크롬 주소창에 입력할 때, 한글입력상태로 되어 있으면 은근 귀찮음을 느끼면서 한영전환을 해주어야 하는데, 한영전환 단축키 입력대신, ESC 키 입력으로 간단히 영문입력상태로 전환해 준다. 꼭 필요했던 기능이다.

4. 한자입력시에도 더욱 보기 편해졌다.

기본 입력기에서는 선택상태에서만 한자풀이가 나오지만, 구름 입력기에서는 선택하지 않은 한자에 대해서도 한자풀이가 나온다.

5. 두벌식, 세벌식 외의 대부분의 자판을 지원한다.

세벌식 390, 세벌식 최종자판 외에도 안마태, 세벌식 옛글, 세벌식 2011, 세벌식 2012 등을 지원한다.

아직까지는 버그가 없고, 완벽하다고 말할 순 없지만 1.5 버전을 사용하면서 매우 만족하면서 사용하고 있다.
게다가 오픈소스로 GitHub 에 모든 소스를 공개하고 있다.

OS X 사용자이면서, 세벌식 사용자 이거나, vi 사용자 이거나, OS X 기본 한글입력기보다 더 나은 한글입력기를 사용하고 싶은 사람들에게 강력하게 권장하고 싶다.^^

태그 지정됨 ,

Happy Hacking Life

얼마전, 키보드를 정전용량무접점 방식의 PFU Happy Hacking Keyboard Professional 2 (HHKB Pro 2) 로 바꿨다.
HHKB Pro2 Box

가장 많은 시간을 소비하고 있는 장비중 하나가 키보드지만, 별다른 고민없이 살았다.
노트북을 많이 쓰다 보니 펜타그래프 방식에 익숙해지면서 (맥과 윈도를 오가며 사용할 수 있는 키보드를 고민하다가) 5년전쯤 구매하게 된 게 애플 키보드였다. 처음에는 유선 키보드를 사용했는데 휴대성이 떨어지고, 블루투스 무선 키보드가 더 갖고 싶어져서, 잠깐 쓰다가 무선 키보드로 바꿨다. (이쁘기까지하고)
윈도 환경에서는 키 배열을 일부 커스터마이징해서 사용했는데, 초반에는 레지스트리를 수정해서 사용하다 나중에는 autohotkey 프로그램을 통해, 간단하게 그리고 편하게 키배열을 바꿔서 사용할 수 있었다. (주로 시작키, ctrl, alt 키 위치변경, page up/down home/end 세팅, 재생정지 등)

그러다 최근에는 OS X 을 메인으로 사용하기 시작하면서 애플 키보드 단축키 사용이 꽤 불편했다. 왼쪽 새끼손가락에 부하가 많이 가는 느낌이 들어서, 키보드를 알아보기 시작했다.
리얼포스, 필코, 해피해킹 키보드 정도가 눈에 들어왔고 OS X 에서 쓰기에는 해피해킹이 제일 낫겠다 싶었다.
해피해킹 키보드 배열을 보다가, caps Lock 키 위치에 Control 키가 있는 것을 보고, 상당히 편하겠다 싶었다. 그래서 해피해킹을 구매하기전에 OS X 세팅을 바꿔서 caps Lock 키에 Control 키를 할당해서 사용해 봤는데, 굉장히 편했다. 키보드를 안사도 되겠다 싶은 생각도 들었다. 하지만 마음이 한번 가니, 안사고 배길 재간이 없었다.

그리고, 고민끝에 해피해킹 키보드를 구입했고 (내손은 소중하니까) 매우 만족하며 쓰고 있다.

해피해킹 키보드는 키 배열이 일반적이지 않다.
위에서 언급했듯,
1. 일반 키보드배열의 caps lock 키 위치에 Control 키를 배치하고,
2. 잘 쓰지 않는 caps lock 키는 Fn+tab 조합을 사용한다.
3. F1~F12 까지의 특수키도 없고 (Fn+숫자 조합)
4. 화살표키 역시 FN 조합을 입력해서 쓴다.
5. ~ 키가 맨 오른쪽 상단에 있다.

그외에도 Volume down/up 키는 Fn+A / Fn+S 조합을 사용하고 마찬가지로 Mute키, Eject키도 Fn 조합, 화살표 이외의 Home, End, Page Up, Page Down 등의 키도 Fn 조합이다.

HHKB Pro 2 화이트 각인

HHKB Pro 2 화이트 각인 모델

HHKB PRo2 블랙 각인모델

HHKB Pro 2 블랙 각인 모델

키 배열때문에 처음에는 낯설게 느껴질 수 있지만, 개인적으로는 하루만에 쉽게 적응하여 쓰게 됐다. 그만큼 편하게 사용할 수 있도록 고려해서 만든 느낌이 매우 강하다. 물론 여러 조합을 이용하는 단축키는 아직도 조금 헷갈리긴 한다.

마지막으로 딥스위치를 통해 조작방식을 변경할 수 있는데 내 경우에는 2번,3번,6번 스위치를 ON 으로 사용한다.
2번 ON – Macintosh 모드
3번 ON – DEL = BS (맥에서는 별의미가 없는 것 같긴 함)
6번 ON – Wake up (이걸 켜놔야, 해피해킹 키보드 입력으로 맥북을 잠자기에서 깨울 수 있다)

지극히 개인적인 감상평이지만 OS X 사용자라면, 고민의 여지가 없겠다. 당연히 해피해킹 키보드를 강추한다. (60키안에 모든 걸 담아냈다.ㅋ 키감 역시 120% 만족하고, 써 보면 알겠지만 손바닥 위치의 변경이 거의 없다.)

HHKB Pro 2 모델은 크게 화이트 각인, 블랙 각인, 무각인 모델 정도 있다. (난 블랙구매) 처음 사용하는 사용자에게는 당연히 각인 모델을 권장하고 싶다. 단, 영문배열만 각인되어 있다. 세벌식 사용자지만, 두벌식도 꽤 타이핑 가능하므로 별 상관은 없다.
(HHKB Pro 2 이후, 작년에 고속타이핑성능업 & 소음을 줄인 Type-S 모델도 나왔지만, 가격이 다소 비싸다.)

아래는 구매 일지.
2013.06.12.수.13:10 아마존 저팬에서 주문 : 18,635엔 / 194.66(US$) – 229,125원(수수료포함)
2013.06.13.목. 몰테일 사무실 도착, 배송대행비 결제 : 21.73(US$) – 25,205원(수수료포함)
2013.06.14.금. 세관 통과 : 23,290 원
2013.06.14.금. 오후 4시 10분 배송 도착 연락받음.

총 277,620원 들었다.

HHKB Pro 2

USB 포트도 두개 있다. 하나는 마우스 사용중.

HHKB Pro 2 with MBPR

말이 필요없다. 강력하게 추천하고 싶은 키보드다. 개발자에게, 키보드만큼 중요한 장비가 또 어디 있을까!

태그 지정됨 ,