2011년 4월 30일 토요일

[iOS] Status Bar 스타일 바꾸기 및 숨기기

아이폰 화면의 가장 상단에 안테나나 시계 등이 표시되는 막대기를 Status Bar라 부른다. (국내 특정 업체에선 인디케이터라 부르기도 한다). 이 포스팅은 이 스테이터스바의 스타일을 바꾸거나 숨기는 등의 예시를 들어본다.

Xcode 4.1 Developer Preview 4 공개

너무 무거워 살 좀 빼줘! 라고 외치게 되는 Xcode4의 다음 버전인 4.1 Developer Preview 4가 나왔나보다. 미국시간으로 29일 이니깐 오늘인가 -_-;

2011년 4월 29일 금요일

[Objective-C] 가변 인자(Variable Arguments) 구현

Objective-C 스타일의 가변 인자(Variable Arguments)에 대한 소개.

[Emacs] 괄호 자동 입력 마이너모드 textmate-mode

TextMate는 Mac OS X에서 코드에디터로써 아주 대명사처럼 쓰여지고 있다. 그만큼 기능이 좋다는 이야기겠지만 써 보질 않았으니 당췌 뭔지... -_-

하여간 textmate-mode는 뭔가 기능이 많아 보이지만, 일단 Emacs에서 괄호 등을 입력했을 때 자동으로 페어(닫히는 괄호 등)를 입력해 주는 기능을 제공해 준다. 물론 비슷하게 autopair 모드가 있는데 내 Emacs 에서 로딩 시 에러가 발생하는 바람에 포기한 비운의 모드다.

2011년 4월 28일 목요일

[Python] 'is' 커맨드

Python의 비교문에는 '=='(equal), '!='(not equal) 외에도 'not'과 'is'가 있다. 이 중 not은 말 그대로 False일 때 True가 되게 만드는 연산자일 뿐.

자 그럼 남아있는 'is'를 한번 확인해 보자.

2011년 4월 26일 화요일

Map App Store: The Unarchiver

맥 앱스토어에 The Unarchiver 가 Free로 올라왔다.

한국에서 맥을 쓰는 사람 대부분이 다 알고 있고, 또한 항상 추천해 마지않는 이 유틸리티는... 단순히 말해서 통합 압축파일의 압축 해제 유틸리티다.

2011년 4월 25일 월요일

[Emacs] face-list.el

Emacs로 색칠놀이(color-theme 만들기)를 즐긴다면 꼭 필수인 확장같다.

[Humor] 진짜 프로그래머는 그림판으로 코딩한다

이어지는 Real Programmers use... 시리즈. 이번에는 신비주의를 부각(?)시키기 위해 링크로 대체.

애플이 위치저장을 하도록 한 이유?

우선 한 가지, 현재 트위터 상에서 알려진 아이폰/아이패드 등에서 위치정보 저장을 하지 않도록 막는 방법을 소개한다.

[Humor] Emacs 유저의 Vim 유저 사이의 소소한 전쟁(?)

sudo 권한을 가진 누군가가 /etc/profile에 다음 코드를 남겨놨다.
alias vi='emacs'
alias vim='emacs'
일반 유저들의 원성이 들린다. 환청이겠지?

Emacs vs Vim

심심해서 정리해 오던 Emacs와 Vim에 대한 짤막한 비교글 모음. 개인적인 주관이 많이 담겨있을 지도 모른다.

[Humor] Real Programmers use ...

약간 고전 자료. 진짜 프로그래머는 vim도 아니고 emacs도 아니고 나비를 쓴다는 유머스럽지 않은 유머. 여기서도 emacs유저의 고집은 빛이 난다.

[Emacs] 한글 폰트(글꼴) 설정

최신의 Emacs 22~23 에서는 한글 폰트 설정에 따른 불편함은 많이 사라진 편이지만, 역시 마음에 드는 폰트 설정은 힘든 편이었다. 특히 영문과 한글 폰트를 별도로 설정해야 하는 경우 크기를 맞추는 등의 삽질이 필요한 편이다.

2011년 4월 22일 금요일

[Vim] MacVim 한글 입력 문제

만약 바람 한글 입력기를 사용 중일 때 MacVim에서 한글 입력이 이상할 수도 있다. 버전에 따라 틀리겠지만 자모가 흩어지거나 이상 입력되는 현상이 발생할 수도 있다.

내 경우 ㅆㅣㅂㅏㄹ (죄송합니다. 욕입니다. 하지만 이게 가장 좋은 예라서요... ㅠㅠ 일단은 그냥 쓰기 그래서 풀어서 씁니다만 실제로는 붙여서 적어야 해요...) 을 입력해보면 '씨' 라는 글자가 '씨ㅅ' 이런 식으로 써지는 등의 문제가 있었다.

[Emacs] 외부에서 파일이 수정되었을 때 자동으로 읽어들이기

Vim에서 편집 중이던 파일을 다른 에디터 등으로 수정했을 때, 다시 Vim으로 돌아가보면 그 파일이 변경되었다면서 다시 읽을 것인가를 물어온다.

하지만 Emacs의 경우 기본적으로 물어보는 절차라던가 자동으로 다시 읽어들인다던가 하지는 않는다. 그래서 낭패를 본 경우가 제법 있다.

[Emacs] Emacs for iPhone

[iOS] SBJson - JSON Framework

SBJson 은 Objective-C로 만들어진 Cocoa용 JSON Framework 이다. Mac OS X 용 혹은 iOS 용으로 사용할 수 있다.

2011년 4월 20일 수요일

[Emacs] 윈도우 관련 커맨드

Emacs에서 윈도우 생성/닫기/크기조절/포커스 이동에 대한 커맨드와 관련 정보를 소개한다. 아래는 기본적으로 제공되는 단축키 및 기능 중 자주 쓸 만한 것 들이다.
  • C-x 1: 다른 창 모두 닫기 (즉 현재창을 최대화)
  • C-x 2: 현재창을 세로로 나누기
  • C-x 3: 현재창을 가로로 나누기
  • C-x o: 다른 창으로 이동(other-window)
  • 정보표시줄 좌클릭 후 드래그: 해당 창의 세로 크기 조절
  • 정보표시줄 우클릭: 해당 창을 닫는다.

[Emacs] Meta키 사망사건

사건의 발단은 윈도우 이동키를 새로 바인딩 하던 도중에 발생했다.

[Emacs] 반복 입력을 위한 모드, dot-mode.el

Vi/Vim의 강력한 기능 중 하나가 .으로 '마지막으로 입력했던 내용 그대로 붙여넣기'가 있다. 뭔가를 입력한 다음에 ESC를 누르고 원하는 위치로 이동해서 .을 누르면 방금 전에 입력했던 내용이 그대로 달라붙는다. 즉 반복적으로 동일한 커맨드를 입력할 때 굉장히 편한 기능이다.

Emacs의 경우도 물론 비슷한(-_-) 기능이 있지만 결코 편하지는 않다. 그래서 이와 비슷한 기능을 구현한 것이 바로 dot-mode 이다. (공식적으로 언급하고 있지만, dot 이라는 이름은 결국 vi의 . 을 의미하는 것으로 보면 된다)

2011년 4월 18일 월요일

[Elisp] List Enumeration

이번에는 Elisp(Emacs Lisp)에서 리스트를 순환하는 방법에 대해 소개.

[Emacs & Vim] Color Theme - Solarized

http://ethanschoonover.com/solarized

눈의 피로를 덜어주며 가독성이 좋은 색상을 많이 연구한 듯한 그런 컬러테마 사이트를 발견했다. 위 링크를 통해 들어가보면 어떤 색상 위주로 테마를 잡고 있는지 엄청나게(?) 설명을 하고 있다.

[Emacs] anything-for-files 의 문제

이전 anything-for-files를 C-x C-f에 바인드 시켜서 파일을 열 때 사용할 수 있는 예제를 적었던 적이 있다. 그런데 이 방법으로 파일을 열 때 간혹 에러가 표시되는 문제가 있다. (미리 언급하는데 이 글은 이 문제를 해결한 기록이 아님을 밝힌다.)

[Humor] vim or emacs?

http://www.haypocalc.com/wiki/images/3/30/Viemacs.png
유머임에도 심오한 철학이 있음이오니, 그것은 vim이 확실히 emacs보다 사용하기는 편하다는 것이다.

[Vim] Script: Open URL

Vim에서 현재 라인에 있는 URL을 웹브라우저로 열어보고 싶을 때가 있어서 다음 스크립트를 만들어 봤다.

[Emacs] Cocoa Emacs 에서 Pymacs 기동이 안되는 경우

Mac OS X 용 Emacs로 Aquamacs가 유명하다. 과거에 Carbon 기반 GNU Emacs가 포팅되어 있을 때 Aquamacs가 Cocoa로 나오면서 유명해진 듯 하다. 하지만 개인적으로 좀 찝찝한게 있는데 GNU Emacs의 설정이 안먹거나 특별한 기능들이 일부 포함되어 있다는 점이었다.

2011년 4월 17일 일요일

Mac OS X 업데이트


Emasc 를 시작하려는 이들이 필수적으로 알아야 할 것

Symbol Naming

변수나 클래스, 메소드나 함수 등의 이름을 지을 때 대소문자나 underscope(_)의 배치가 획일적이지 않다. 특히 단어와 단어 사이를 구분하기 위해 뭔가 특별한 방식을 사용한다. 이런 방식은 각각 명칭이 있긴 하지만 아마도 대체로 모르고 그냥 쓸 것 같다. 나도 몰랐기 때문에 이 기회에 알아낸 것들을 정리해 보고자 한다.

[Vim] 자동 편집을 위한 길, Recording

Vim이 강력한 편집기로써 군림하게 된 건 편한 키맵, 정규표현식, 그리고 이 매크로 레코딩 기능이 있기 때문이라고 감히 주장하고 싶다.

레코딩 기능은 사용자가 입력하는 키를 그대로 녹화해서 매크로로 만들어 주는 기능이다.  이 기능에 대해 간단히 소개한다.

[iOS] NSArray Enumeration

NSArray 혹은 NSMutableArray를 순차탐색(Enumeration) 하기 위한 3가지 방법 메모.

2011년 4월 15일 금요일

Emacs 용으로 만든 3D FPS 게임

트위터의 emacs 타임라인을 오랫동안 휩쓴 내용 중 하나가 바로 이 Emacs로 만든 3D 게임에 대한 이야기다. FPS라는 제목을 달긴 했는데, 1인칭 슈팅 FPS와는 다른 의미 같다. -_-;; 심각하게 보진 말고 재미삼아 보자.

[Emacs] Show Line Numbers

2011년 4월 14일 목요일

[Mac OS X] Mactracker

Mac App Store의 Top Free항목에 Mactracker라는게 올라와 있었다. 뭐하는 어플인가 했더니 맥 시스템 정보(혹은 맥 카탈로그)를 보여주는 어플이었다.

[Vim] Plugin: Align

Vim에서 코딩 중 가끔 Emacs에서 코드 정리하는 기능이 부러울 때가 있다. 코드를 막 입력했지만 정렬이 안되어 있어서 보기 좋게 만들고 싶은데 이럴 때 물론 수동으로 노가다 처리하면 되긴 된다. 하지만 자동으로 해 준다면 더 없이 좋을 것이다.

Emacs의 align 류 함수와 비슷하게 Vim에도 Align 이라는 플러그인이 있다.

[Vim] Plugin: The NERD Commenter

간혹 Vim 에서 특정 영역을 주석처리(commenting)를 하거나 주석을 해제하고 싶은 경우가 있을 것이다. 개발자라면 자주 쓸 수 밖에 없다. Emacs에서 comment-region 과 uncomment-region은 사랑받는 함수이니까...

Vim의 경우는 외부 플러그인의 도움을 받는 편이 편한 것 같다. 이번에 소개할 플러그인은 The NERD Commenter 이다.

2011년 4월 12일 화요일

[Mac OS X] 바람 입력기 설정창이 뜨지 않을 때

바람입력기를 사용할 때, 환경설정 창을 열었을 때 Window라는 창만 달랑 뜨고 아무런 변화가 없는 경우가 있다. 내 경우 오랫동안 사용하다 환경설정을 열어봤을 때 종종 이런 경우가 발생했었다.

[Vim] Plugin: Conque Shell

Conque Shell은 Vim 내부에서 쉘을 쓸 수 있게 에뮬레이션 해 주는 플러그인이다.

[Vim] 자동완성 플러그인 AutoComplPop

이전에 Emacs의 auto-complete-mode가 vim에서 된다면 emacs를 버릴 거라는 이야기를 농담삼아 했었던 적이 있는데 정말로 되는 기능이었다. AutoComplPop이 바로 그 기능을 제공해 주는 플러그인.

[Vim] Vim에서 ESC를 눌렀을 때 영문 상태로 전환하기

Vim에서 한글을 입력하다 ESC를 눌러서 편집모드를 빠져 나와서 다른 커맨드를 입력하려 할 때 동작 안하는 경우가 있다. 한글 상태라서 키 입력을 제대로 못 알아먹는 상태인데 수동으로 영문으로 바꿔주면 되긴 된다. 이런 불편함으로 인해 영어만을 사용하는 나라가 아닌 것에 비운을 느껴야 할 것인가!

[iOS] Objective-C Singletone Pattern

2011년 4월 11일 월요일

[Emacs] emacs-evernote-mode

simplenote에 관해서는 좀 글을 썼었지만, evernote는 3rd Party에 대한 지원이 별로 없는 것 같아서 오래전에 버린 메모 서비스다. 리눅스용 클라이언트도 지원이 안되었다. 하지만 emacs에서도 이 에버노트를 사용할 수 있는 확장이 개발된 것으로 봐서 API를 제공하는 서비스 였다는 것을 알 수 있게 되었다.

[Emacs] Edit by root privilege

Unix나 Linux, 혹은 Mac OS X 사용자라면 루트(root) 사용자 권한으로 특정 파일을 편집해야 할 일이 있다. 이 경우 터미널에서 sudo 명령을 조합해 vim 등을 띄워서 편집하는 등의 방법이 많이 쓰이고 있다. (구형 Unix 라면 su 명령으로 유저 권한을 바꾸거나 root쉘로 바꾸는 경우도 있겠지만)

하지만 Emacs의 경우, emacs 자체를 루트 권한으로 띄우지 않는 한은 사용자에게 권한(permission)이 주어지지 않은 파일을 편집할 수가 없는 것 같다.

[Emacs] shell/eshell/terminal-mode?

Emacs는 버퍼 내에서 쉘 구동이 가능한 모드 몇 가지를 가지고 있다. 아래 3가지 커맨드를 입력해 보면 셋 다 비슷한 화면이 나오는 것을 확인할 수 있다.
  • M-x shell
  • M-x eshell
  • M-x term

[Emacs] 설정파일(.emacs) 공유

올려둔지는 제법 오래 되었지만 일단 개인적으로 쓰는 Emacs 설정파일(.emacs, dotemacs)을 개인적인 용도(?)로 github.com에 올려두었다.

2011년 4월 8일 금요일

[Vim] Vim 에서 MarkDown 사용하기

오랫만에 또다시 마크다운 애찬론. 이번엔 Vim에서 사용하기 위한 플러그인 들을 살펴보겠다.

[iOS] UINavigationController의 push/pop 애니메이션 변경하기

UINavigationController는 아이폰의 일반적인 네비게이션 UI를 쉽게 만들 수 있도록 해 준다. 물론 애니메이션도 필요하면 사용할 수 있다.

하지만 pushViewController:animated 혹은 popViewControllerAnimated:animated 를 사용할 때 애니메이션을 사용할지 여부만 고를 수 있지 애니메이션 종류를 고를 수는 없다. 무조건 좌/우로 플립되는 애니메이션만 사용할 수 있다.

그렇다고 해서 못 바꾸는 건 아니다. 약간의 노가다가 추가되면 원하는 에니메이션을 이용할 수 있다.

2011년 4월 7일 목요일

Dropbox를 경험해보세요


윈도우/맥/리눅스를 몽땅 쓰다 보니 Dropbox가 유일한 동기화 클라우드 웹하드 솔루션이긴 하지만, 그래도 Dropbox는 굉장히 훌륭합니다. 국내 서비스에 비해 속도가 좀 느리다는 단점이 있지만, 특정 디렉토리/폴더를 기준으로 완벽하게 원하는 컴퓨터와 동기화를 맞추는데 굉장히 안정적인 느낌입니다. 더구나 데몬이 알아서 동기화를 하기 때문에 별도로 동기화 서비스를 관리할 필요도 없습니다.

[iOS] UIView's bounds on UINavigationControl

콩글리쉬 영어 제목을 한글로 풀어써보자면 (-_-) UINavigationController에 특정 뷰를 뷰 영역에 집어 넣었을 때 이 뷰의 위치 및 크기에 관한 이야기다.

2011년 4월 5일 화요일

맥용 동영상 플레이어에 대해

블로그 검색 유입 경로 중 동영상 플레이어에 대한 검색어가 많아서 이와 관련된 글을 하나 써 보자 한다. 주제는 개인적으로 사용해 본 Mac OS X 용 동영상 플레이어 및 소감. (내용이 길어질 것 같기에 스크린샷은 생략 ~_~)

통신사와 스마트폰 OS 그리고 카카오톡

카카오톡 트래픽 때문에 말이 많다. 트래픽 때문에 3G망에 과부화가 걸린다는 통신사측 주장. 특히 SKT가 심하게 딴지를 걸고 있는 상황이다.

사용자 입장에서는 통신사에 돈을 지불하고 통신망을 사용하는데 과부화 때문에 카카오톡에 딴지를 걸고있는 통신사측을 곱게 볼 수가 없다.

엔지니어 입장에서 기술적(?)으로 이 사태(?)에 대한 판단을 한번 휘갈겨본다.

2011년 4월 4일 월요일

[Python] 가장 단순한 싱글톤 패턴(Singletone Pattern)

싱글톤 패턴은 전역변수를 직접 제어하는 형식의 문제점(?)을 보완하기 위해 정말 자주 쓰이는 패턴이다. 보통은 팩토리 패턴(factorypattern)과 결함하여 싱글톤 객체를 넘겨주는 팩토리 메소드를 호출해서 싱글톤 객체를 얻고 이 싱글톤 객체를 엑세스 해서 전역변수를 이용하는 것과 비슷한 효과를 얻을 수 있다.

[Python] ASCII Conversion

각 문자와 이를 ASCII Code로 서로 바꾸는 건 C에서는 크게 신경쓸 일이 아니었다. 하지만 Python에서 문자는 문자열과 동일하게 취급되며 그 자체의 값을 읽어서는 ASCII 코드가 나오지 않을 수도 있다. (물론 요즘 이런걸 Python으로 쓸 일은 별로 없겠지만 -_-)

2011년 4월 2일 토요일

[Emacs] emacs-w3m

w3m은 텍스트 웹브라우저의 최고봉(?)이라고 개인적으로 일컷는데 lynx에 비해서 화려하기 때문이다. -_-;;; 어쨌든 Emacs 내에서 브라우징을 할 때 가장 자주 사용하는게 바로 이 w3m 연동 기능일 듯 하다. (w3라 불리우는 순수 Elisp으로 제작된 브라우저도 있지만 좀 느린 듯 하다.)

2011년 4월 1일 금요일

[Python] isdigit()의 함정

[Emacs] 번역 기능을 추가해보자

현재 커서가 놓인 단어, 혹은 선택된 영역을 구글 번역기를 이용해 자동으로 한국어로 번역하는 기능을 만들어 보자. 여기서는 결과물을 브라우저로 본다는 것을 가정한다.

[Vim] VimOrganizer: org-mode for Vim

Emacs의 대표적인 모드 중 하나인 org-mode는 할일(TODO)이나 일정관리 및 메모 등 여러 용도로 사용되는 기능이다. 특히 TODO 관리와 다양한 파일에 나눠진 TODO를 모아서 알려주는 org-agenda 등의 기능도 제공되고 있다.

VimOrganizer는 이 org-mode 기능을 Vim 용으로 만든 확장이다.

만우절 트위터 타임라인 속 풍경 한가지

[Emacs] Anything VS IDO

anything.el은 다양한 기능을 가지고 있는데 그 기능 중 일부가 IDO와 충돌을 일으키는 경우가 있다. 특히 파일 오픈 시 경로를 입력하다 갑자기 오류가 발생하며 취소되는 경우가 잦다. IDOAnything이 서로 싸우고 있기 때문에 그런 듯 하다.