2011년 5월 31일 화요일

맥북프로에 윈도우XP 설치 삽질기

준비


우선은 정보부터 수집.

도데체 부트캠프냐 뭔지 잘 이해가 되게 설명해 주는 곳이 잘 없다. 어쨌든 알아낸 바로는, 부트캠프는 일반적인 윈도우가 설치되는 PC의 BIOS를 에뮬레이션 해 주는 서비스 라는 것을 알게 되었다.

우선 준비되어 있는 건 맥북프로(13인치 2009년형), Mac OS X 스노레퍼드(Snow Leopard), 윈도우XP Professional SP2 정품(32bit).

2011년 5월 27일 금요일

[Emacs] magit

Emacs의 장점을 잘 살려주는 기능이라면 역시 front-end 구현이다. 터미널에서 사용하는 CUI 유틸리티가 명령어가 많고 복잡할 수록 더욱 쓰기 귀찮아지는데 이런걸 편해게 front-end UI로 구현하는 것이다.

git의 경우도 커맨드 라인에서 쓰기에는 명령어가 제법 많은 편이다. 물론 다른 것에 비하면 단순한 것 같지만, 전용 UI가 있다면 더 없이 편할 것이다.

magit은 Emacs용 git front-end이다.

2011년 5월 26일 목요일

[Emacs] Searching and Replacing

쓸 게 없어서 쓰는 뜬금없는 Emacs 기초 이야기. 검색 및 치환에 대한 가장 기본적인 단축키 및 함수를 소개한다.

[node.js] 비동기처리의 환상

node.js 소개글에 따라 다니는 이야기는 비동기(asynchronous) 처리를 위한 이벤트 위주(event driven) 언어라는 점이다. 그리고 한 가지 더 따라다니는 소개는 '빠르고(performance) 확장(scalable)에 강하다 라는 점이다.

소개로는 뭔 말을 못 하랴. 실제로 node.js의 API 구조는 개발하기도 편하고 빠르기도 하다.

하지만 비동기 처리구조에서 오는 단점을 제대로 파악하지 못 하면 node.js의 장점은 그저 환상에 불가능하다.

비동기 처리 구조의 단점을 생각한 글을 그냥 한번 풀어 써 본다. (이 글에서는 직접적인 node.js의 테크닉이나 API는 안나온다.)

2011년 5월 24일 화요일

[node.js] 스크립트 언어로써의 node.js

서버사이드 자바스크립트로 잘 알려진 node.js이긴 하지만, 그래도 스크립트 언어다. 약간 변태적이긴 하지만 (-_-) 그렇다면 여타의 python이나 ruby, perl 등의 영역을 침범해 볼 수 있을만한 능력이 있다는 이야기가 된다.

일반적인 유틸리티를 node.js로 만든다면 어떻게 해야 할까.

Homebrew로 갈아타기: iPython 삽질기

Macport 의 문제점(의존성이나 빌드가 안되는 것 들, sudo가 필수) 때문에 벼르고 있다가 결국 Homebrew로 갈아타는 무모한 도전을 하고 있는 중이다.

2011년 5월 23일 월요일

[Emacs] js2-mode

옛날에 Emacs에서 JavaScript 편집을 위해 espresso-mode가 있었다. 그게 Emacs 23.2에서 js-mode라는 이름으로 바뀌어서 Emacs안으로 들어가게 되었다. 그냥 역사 이야기.

js2-mode 라는 모드는 js-mode 에 비해 여러가지 기능이 추가된 모드다. 예를 들자면 내장 파서를 이용해 문법(syntax) 오류 등을 미리 확인해 주는 등등...

node.js 코딩 하기에 좋을 것 같아서 한번 설치해서 사용해 봤다.

2011년 5월 20일 금요일

[Emacs] autopair 사용 시 term-mode 문제

Emacs에서 term-mode(M-x term) 혹은 multi-term-mode를 사용 할 때 엔터키를 누르면 미니버퍼에 오류가 찍히면서 엔터키가 먹히지 않는 경우가 발생했다.

[Emacs] Keyboard Macro

Emacs에서 특정 동작을 자동화 하기 위해 Keyboard Macro를 만들 수 있게 지원해준다. 특정 동작이란 건 사용자가 키보드로 입력하는 모든 행위를 의미하는 것이다. Vim의 Macro Recording 기능 등과 비슷하다.

[node.js] 모든 것이 비동기다?

비동기라는건, 실행 순서가 순차적이지 않다라고 말해야 되려나... 일 처리를 혼자서 하는 것과 여러명이 하는 것의 차이라고도 볼 수 있다.

혼자서 일을 할 때는 순차적으로 일을 할 수 밖에 없다. 이 일을 끝내고 저 일을 처리해야 한다.

하지만 여러명과 일을 할 때는 나는 여러 명에게 일을 시키고 결과물을 가져올 때 까지 쉬고 있을 수 있다.

이렇게 설명하니 대단하다! 마치 내 부하 직원이 여럿 생긴 것 같거든! 하하;;

[node.js] 오류 발생 시험

일단 node.js의 기본 HTTP 서버 프레임웍으로 오류 발생 시에 어떻게 되는지 시험해 봤다. 내부 작동 구조를 보려는게 아니라 오류가 발생하면 그냥 어떻게 되는지를 확인해 보려는 것이다.

[node.js] 신기술이 뭔가 체험해 봤다 -_-

최근들어 node.js가 화제가 되고 있다. 계속 이어지고 있다고 해야되나. 새로운 관련 모듈이나 프레임웍이 나올 때 마다 찬양 일색이다. 도데체 뭐길래 그렇게 뜨고 있는 걸까.

딱히 할 일도 없고 해서 (- _ -) 한번 설치해서 뭔가를 돌려봤다.

2011년 5월 19일 목요일

[Emacs] 단축키 잡담

Emacs를 쓰면서 많은 단축키를 사용하게 되는데 이 중 C-c 그리고 C-x 가 굉장히 많다. 그런데 이 단축키는 그 자체로는 아무 역활을 하지 않는다.

C-c와 C-x는 트리커(즉 뭔가를 실행시키기 위한 키)에 가깝다. 그래서 이 다음에 이어지는 키에 따라 뭘 할지가 결정된다.

[Emacs/Python] iPython과 Emacs

iPython 이란건 최근에 들어서 알게 되었다. -_- 어쨌건, iPython은 Python 인터프리터를 좀 더 강화시킨 인터프리터이다. 하지만 그 뿐만 아니라 쉘의 기능 까지 가지고 있어서 쉘을 대체할 수도 있을 만한 기능을 제공하기도 한다.

2011년 5월 18일 수요일

[Vim] Mac OS X 터미널에서의 디스플레이 오류

Mac OS X Terminal.app 에서 Vim을 사용 도중 디스플레이가 발생하는 오류의 한 예로, Macport로 빌드한 vim 7.3에서 윈도우를 나눈 후 긴 파일을 열어서 아래로 스크롤을 하다 보면 모드라인(스테이터스바)가 위아래로 진동하듯이 요동치며 표시되는 문제가 발생하였다.

해당 문제는 터미널 호환성 때문에 발생하기 때문에 설정을 확인해야 한다.

2011년 5월 16일 월요일

[Android] 안드로이드를 혐오하는 개발자 이야기

제목대로 나는 안드로이드를 혐오하는데... 그 이유를 적기 보단 경험담을 적어볼까 한다. 직접 경험한, 그리고 주변 사람들의 경험담이다. 물론 글로 표현하기 위해 과장하거나 고쳤다 -_-;

[참고] 이 글은 2011년 5월 경에 쓰여진 글입니다. 이 글을 썼던 시점부터 이미 안드로이드 개발에서는 손을 떼고 있기에 현재까지의 개발환경 변화는 모른다는 점에 대해 인식하시고 글을 읽어 주시면 감사하겠습니다.

[Emacs] 다국어입력(Multilingual Input Method)

Emacs는 자체에 언어입력기를 내장하고 있다. 물론 IME 같은 것으로 직접 입력할 수도 있지만 Emacs와 호환성 면에서 떨어지는 경우가 있기에 대체로 내장 입력기를 선호하는 것 같다.

구형 Emacs(21이전 버전)의 경우 mule 라는 추가 모듈로 따로 설치를 해야 했지만 Emacs23에서는 대부분 패키지에 포함된 상태로 배포되기에 정말 세상 편해진 것 같다.

[Emacs] Tetris

M-x tetris

[Emacs] Shortcuts for Evaluation

Elisp 코딩 혹은 Emacs 설정 파일을 수정하면서 알아두면 좋은 단축키 몇 가지. Evaluate라는 용어는 '실행'시킨다는 용어와 비슷하다고 이해하는게 좋다. (Python 등 다른 언어에서도 사용되는 용어니...)

블로거 메인터넌스 이후 문제 상황

금요일에서 주말 사이에 블로거닷컴(blogger.com / blogspot.com)의 메인터넌스가 있었습니다.

중간중간 글이 보였다가 안보였다가, 네비게이션바가 안보였다가 보였다가, 댓글이 보였다가 안보였다가, 글 보기만 되고 나머진 몽땅 오류가 발생하는 등의 우여곡절을 겪으며 겨우겨우 살아난 것 처럼 보입니다.

하지만 몇 가지 문제점을 발견하였습니다.

  1. 오류태그: 특정 태그(라벨)을 글에 붙였는데 이 태그가 붙은 글을 보려면 볼 수가 없고, 이 태그는 지울 수도 없습니다. 그래서 문제가 되었던 태그의 글을 지우고 다시 포스팅 하는 삽질을 하였습니다.
  2. 태그 입력 불가: 메인터넌스 이후 태그가 입력되지 않고 있습니다. 콤마(,)나 엔터로 자동완성 입력하는 순간 입력한 태그가 사라져 버리는군요. 어이가 안드로메다로 갑니다. 태그가 입력되질 않으니 어쩔 수 없이 글 목록에서 태그를 지정하는 우회수단을 이용해 태그(라벨)를 지정해야 합니다.

(으악 라벨인지 태그인지 뭔지 좀 입력할 수 있게 해달라고!!!)

[Emacs/Python] Flymake 를 Python Mode 에서도 사용해보자.

flymake-mode를 사용할 때는 Makefile에 문법 체크용 코드를 추가해 사용해야 한다. 하지만 Python 코드들은 대체로 Makefile이 없을 뿐 더러 컴파일 할 필요성 까지 없다보니 뭔가 맞지 않는 것 같다. 그러니 다른 방법으로 flymake를 사용해야 한다.

Python의 경우 문법 체크를 할 수 있는 몇 가지 도구들이 존재하는데 그 중에 pyflakes 라는게 있다. (pylint 같은 것도 될지도 모르겠지만 안해봐서 모르겠...)

[Python/OpenBook] 예제로 배우는 재미있는 Python

이번엔 다른 글 소개를 위한 포스팅.

2011년 5월 11일 수요일

[Python] copy 모듈 존재의 이유

Python의 'is' 커맨드를 설명하는 과정에서 Python의 대입은 레퍼런스 대입이라고 설명한 적이 있다. 그리고 이 레퍼런스 대입 시의 문제를 해결하기 위해 copy 모듈이 존재한다. 왜 copy 모듈이 필요한걸까.

[Python] 유니코드와 UTF-8간의 전쟁(?)

Python에서 Unicode와 UTF-8에 관한 이야기를 언급한 적이 있었는데, 처리과정에서 발생하는 오류를 이용해 주의점을 한번 환기해 볼 까 한다.

예제는 UTF-8 환경의 터미널에서 python 인터프리터를 사용함을 가정한다.

[Emacs/Vim/Etc] Color Theme 생성 사이트

[Emacs] 의사양반!

Emacs의 오랜 이스터에그인 doctor 모드 소개글...을 쓰고 싶었는데 딱히 적을 게 없다.

[Emacs] 실시간 코딩 오류 파악 flymake-mode

flymake는 Emacs에서 실시간(?)으로 컴파일 오류를 표시해 주는 툴이다. 마치 이클립스나 Xcode4에서 코딩 도중도중 빌드 오류를 실시간으로 표시해 주는 것 처럼...

[Emacs] Live Programming with Overtone

Live Programming이라는 소개가 붙어있어서 본 영상이 무척 인상적이어서 소개. 영상의 내용은 악기를 제어하는 코딩을 하면서 바로바로 확인할 수 있는 내용이다.

[Vim] Plugin: AutoClose

Emacs에 autopair-mode나 textmate-mode가 있다면 Vim에는 AutoClose라는 플러그인이 있다. 기능상 거의 동일한데, 괄호나 인용부호 등의 페어를 자동으로 입력해 주는 기능을 제공한다.

http://www.vim.org/scripts/script.php?script_id=1849

autoclose.vim 파일을 받아서 ~/.vim/plugin/ 디렉토리 혹은 기타 플러그인 디렉토리에 복사해 넣기만 하면 설치는 끝.

2011년 5월 9일 월요일

[Emacs] Copy/Cut/Paste/Delete

Emacs에서 복사 및 잘라내기, 붙이기, 삭제 등과 관련된 뜨금없는 기초 포스팅.

Emacs 에서 사용되는 이와 관련 용어는 일반적인 윈도우용 에디터와는 다르게 Killing and Yanking이라 부른다. 전통적인 Unix 스타일의 에디터에서 쓰이던 용어였으니 좀 익숙하지 않더라도 받아들여야 한다. (Vim도 처지가 비슷한 만큼 비슷한 용어를 사용한다.)

2011년 5월 6일 금요일

iOS 4.3.3 도 탈옥 되는 듯...

갑자기 iOS 4.3.3 업데이트가 떠서 좀 놀란 감이 있는데...

http://blog.iphone-dev.org/post/5239805497/tic-tac-toe

4.3.1용으로 만든 탈옥툴이 4.3.3에서도 여전히 (iPad2만 빼고) 된다는 소식이 dev-team blog를 통해서 전해져왔다. 물론 귀찮아서 직접 확인해 보지는 않았지만...;;

[iOS] cocos2d for iPhone 1.0 RC2

5월 3일에 릴리즈 되었으니 좀 된 것 같지만... 어쨌든 iPhone 등의 iOS용 게임 개발 프레임웍인 cocos2d 1.0 RC2가 릴리즈 되었다. 금방 1.0 정식이 나올 줄 알았더니 생각보다 오래 걸리는 것 같다.

http://www.cocos2d-iphone.org/

큰 변화로는 역시 Xcode 4 지원을 들 수 있을 것 같다.

[Emacs] 긴 줄을 나눠서 표시해보자

[Emacs] 쉘 실행 결과 확인을 위한 lively.el

[Emacs] HTML/XML 코딩 어시스트 zencoding

SGML/XML/HTML (사실 전부 SGML에서 파생된 녀석들이지만 -_-) 등의 코딩을 CSS 스타일과 비슷하게 할 수 있도록 도와주는 zencoding-mode.el 소개글.

아마도 다른 에디터에서 이미 지원되는 기능과 동명의 기능을 따로 만들어낸 것이라 생각되지만 정확한 것은 모르겠다.

2011년 5월 4일 수요일

[Emacs] etags

Emacs에서 배포되는 etags는 ctags에서 지원되는 recursive가 없다. 그래서 etags 단독으로 태그(TAGS)를 만드는 건 포기해야 할 것 같다. 물론 ctags를 이용해서 TAGS를 생성할 수도 있지만, ctags에 비해 etags가 objective-c 도 지원해 주는 등 제약이 덜 한 것 같다.

[Emacs] 자동 TAGS 탐색?

예전에 Vim에서 tags 파일 경로를 부모 디렉토리들로 지정해서 자동으로 태그를 지정하는 방법을 포스팅 했던 적이 있다. 하지만 Emacs에서는 동일한 형태로 지정을 해서 사용하는게 안되었다. 이런 기능을 원했지만 검색으로 찾을 수는 없었다.

물론 Emacs도 tag file list를 지원하기 때문에 원하는 태그 파일 경로를 다수 지정해 줄 수 있다. 하지만 프로젝트가 생길 때 마다 설정을 추가해 주는건 너무나 귀찮은 일이다.

그래서 만들었다;;;

[Emacs] camelCase를 읽기 편하게 만들어 주는 glasses-mode

camelCase에 대해 언급한 적이 있었는데, 사실 가독성이 아주 좋은 편은 아니다. 심볼 가독성 면에서는 snake_case가 가장 좋다고 생각되지 않는가? 단어와 단어 사이가 확연하게 구분되니까.

하여간, Emacs에서 좀 특별한 모드가 하나 기본적으로 주어지는데 이런 camelCase혹은 MixedCase 형태의 심볼을 snake_case 처럼 읽기 편하게 만들어 주는 glasses-mode가 그것이다.

[Emacs] 모든 버퍼 저장하기

일단 C-x s키는 모든 수정된 버퍼를 저장할 수 있도록 도와주는 save-some-buffers에 바인드 되어 있는 단축키다. 하나의 버퍼를 저장할 때 쓰는 C-x C-s와는 다르다;;

이 외에 자동저장 등을 구현하는 방법이 있긴 하겠지만...

여기서는 단순하게 종료 시 수정된 버퍼를 몽땅 저장하는 코드를 하나 소개한다.

[Emacs] 쉘 커맨드 결과 가져오기

Emacs에서 간혹 쉘에서 실행한 결과 내용을 가져오고 싶을 때가 있다. 이 경우 물론 shell-mode등으로 실행시켜서 결과를 가져와도 되긴 하지만...

2011년 5월 3일 화요일

화이트 아이폰4 블랙 보다 두껍지 않다.

[Vim] 파일 관리자 대체 플러그인 NERDTree

NERDTree는 Vim의 파일 관리(정확히 탐색이라 하는게 맞을지도 모르겠다)를 대체하는 플러그인으로 트리 형태로 디렉토리와 파일 구조를 보여주고, 자주 찾는 디렉토리 등을 북마크 형태로 관리할 수 있게 해 주며, 파일을 열거나 복사/삭제 하는 것 등을 도와주는 기능을 제공한다.

2011년 5월 2일 월요일