2012년 9월 12일 수요일

첫 애드센스 수익금을 지급받았습니다

사이트 모양이 조잡해 짐에도 억지로 광고를 욱여넣었던 것이 결국 1년 6개월 만에 빛을 보았습니다. AdSense 수익금 집계가 $100을 넘어서 지급 받을 수 있게 된 것이지요.

2012년 9월 5일 수요일

Emacs 24의 새로운 기능: theme

예전부터 Emacs에서 색상 문법 강조(Syntax Highlighting)을 위해서 color-theme 라는 확장을 주로 이용해 왔었다. 어떻게 보면 Emacs에서 가장 필수적인(?) 확장이 아니었을까 생각된다.

Emacs 24부터는 이런 color-theme 기능을 흡수하여 theme라는 기능으로 아예 built-in이 되어버렸다. 더이상은 color-theme를 사용할 이유가 없어진 것이다. (하지만 API가 흡수된 것이 아니라 기능이 흡수되었기 때문에 호환되지 않는다는 점을 주의하자)

2012년 8월 13일 월요일

[Python] fileDownloader.py

제목 만으로도 알 수 있겠지만, 그냥 웹 상의 파일을 다운로드 받을 수 있는 모듈이다. 물론 이 모듈 없이도 urllib과 httplib 등으로 받을 순 있지만 귀찮다. -_-;;;

2012년 7월 26일 목요일

Objective-C 2.0에서 property / synthesize

Objective-C의 OOP에서 특별한 문법이 있다면 바로 property와 synthesize라고 생각한다. 멤버변수(인스턴스)로의 접근 권한을 설정하고 이 멤버에 값을 세팅하는 규칙을 표준적인 방법으로 정의해 둠으로써 클래스의 사용 방법을 인터페이스(interface, 헤더의 역활?)화 해 준다.

2012년 7월 17일 화요일

NSException 디버깅

XCode에서 디버깅 모드로 테스트 중인 앱이 뭔가의 오류로 죽었다. 그런데 죽은 곳을 알 수가 없을 때가 있다. 디버거의 트레이스는 main을 가리키고 있는 경우가 많다. 이 경우 로그창의 메시지를 이용해 간접적으로 원인을 알 수도 있지만 실제 원인은 알 수 없는 경우도 많다.

MKMapView를 사용하는 앱이 자주 죽는 경우...

맵뷰(MKMapView)를 사용한 앱이 자꾸 죽는 문제가 있었다. 에러의 원인은 sent message to deallocated object, 즉 메모리 상에서 해제되어 버린 오브젝트의 무언가를 호출하려 했기 때문에 죽는다는 것이었다.

2012년 7월 12일 목요일

[Emacs] 커서 위치의 단어 검색

Emacs에서 순차검색(isearch. 단축키는 C-s) 시 현재 커서 위치에 있는 단어(Word)를 검색하려면 검색어 입력 시 C-w를 입력하면 자동으로 검색어로 입력된다.

2012년 7월 3일 화요일

Emacs 24에 내장된 Package System

ELPA라는 Emacs용 Lisp 패키지 관리 시스템이 있다. 개인적으로 별로 쓸 만한 확장이 없고 대부분 EmacsWiki에 있는 것을 auto-install 로 설치해서 쓰는 편이어서 그다지 쓸 일이 없었다.

2012년 6월 22일 금요일

Emacs 24에 추가된 electric-pair-mode

electric-pair-mode는 Emacs 24 버전에서 추가된 마이너 모드이다. 기능은 pair 라는 이름에서 auto-pair-mode 와 비슷하다고 느낄 수 있는데 그 기능이 맞다.

앱스토어 판매 가능 국가 32개 추가

오늘 애플 개발자 뉴스레터로 애플 앱스토어의 새로운 판매 가능 국가 소식이 전해졌다. 해당 국가는 아래와 같다. (잘못 보시는 분들이 많은가 본데 '앱'스토어이지 '애플'스토어가 아니다 ㅇㅅㅇ)

2012년 6월 21일 목요일

iPad와 Surface 발표 비교 영상?

잡스의 키노트(주. Keynote는 애플의 프리젠테이션 소프트웨어 상품 명이기도 하지만 원래의 의미는 '기조연설' 등 프리젠테이션과 비슷하다)와 서페이스 발표회의 영상을 서로 비교해 놓은 영상.

2012년 6월 19일 화요일

Xcode Storyboard, 약인가 독인가

스토리보드도 Xcode 4 버전에 들어서 새롭게 지원되기 시작한 개발 도구이다. 뷰 디자인과 흐름을 시각화 시켜서 직관적인 개발이 가능하게 도와준다는 점에서 편하게 개발 할 수 있다. 이 글은 이 스토리보드에 관한 감상 일 뿐이지 상세한 설명을 위한 글이 아님을 먼저 밝힌다.

제목이 '약이냐 독이냐' 라고 지었다면 역시 결론은 나온다. 잘 쓰면 약이고 못 쓰면 독이다. 다만 잘 써야 한다는 것은 잘 사용해야 한다는 의미가 아니라 용도에 맞게 사용해야 한다는 점이다.

2012년 6월 18일 월요일

Objective-C의 레퍼런스 카운트는 왜 필요한 건가

다른 언어를 사용하던 이가 Objective-C 를 접했을 때 가장 생소해하며 혹은 헷갈려 하는 부분이 바로 레퍼런스 카운트 개념이다. 이 글은 레퍼런스 카운트 개념이 왜 필요한지에 대한 것이다. 다만 도움이 될지 이해가 될지 잘 모르겠다. ;-)

Xcode ARC, 약인가 독인가

ARC(Automatic Reference Counting)라는 기능은 XCode 4 들어서 보여준 새로운 기능이다. Objective-C에 정의된 요소이긴 하지만 사실상 Objective-C를 사용하게 되는 곳은 현재로썬 Xcode 뿐인 것 같으니 그려러니 생각하자.

무료 Git/SVN/Hg 프론트엔드 SourceTree

소스트리(SourceTree)는 Git, Mercurial(hg), SVN 등을 지원하는 맥 OS X용 GUI 프론트엔드이다. 프론트엔드(front-end)란 간략히 설명해서 커맨드라인(CUI) 유틸리티를 GUI로 쓰기 편하게 만든 어플리케이션이라는 말이다. 다른 말로는 클라이언트 라고도 표현하기도 하지만...

2012년 6월 16일 토요일

블로거 게시물 관리 기능에 절망하였습니다.

태그 관리가 잘 안되어 있어서 이 참에 조금씩 태그를 글 하나하나 지우고 만들고 하고 있습니다. 그런데 블로거 게시물 관리 기능에 일괄적으로 태그를 붙이는 기능이 있는 것을 발견하고 기뻐했습니다.

그래서 블로거의 게시물 관리 기능으로 일괄적으로 태그를 붙이고 있었습니다. 하나하나 검색해서 말이지요.

그런데 큰 문제가 있었습니다.

  1. 특정 단어 검색
  2. 태그 붙이기 위해 선택 한 후 태그 지정
  3. 다른 단어 검색
  4. 앞에서 선택했던 게시물 중 일부도 검색됨
  5. 문제는 체크했던 게시물은 계속 체크가 되어있음

문제가 무엇이냐면, 체크된 것을 언체크 해도 눈에 안보이는, 즉 이전에 체크했던 게시물은 그대로 계속 체크가 되어 있다는 점입니다. 일괄 언체크를 해도 눈에 보이는 것들 중에서만 언체크가 됩니다.

결과적으로 계속 검색 해 가며 일괄 태그 적용 기능을 이용하면 지금까지 체크 했던 글 모두 해당 태그가 붙어버리게 됩니다.

...

급좌절. 결국 하나하나 문제가 생긴 태그를 수정하고 있습니다만 이것도 언제 끝날지 장담 할 수 없군요. 300개가 넘는단 말입니다! 어휴!

이 문제를 회피하려면 검색 할 때 마다 관리 페이지가 아닌 다른 페이지로 이동 후 다시 관리 페이지로 접속해야 합니다. 관리 페이지는 전체적으로 자바스크립트로 계속 메모리가 관리되기 때문이지요.

블로거 너무하는데 이거...

2012년 6월 14일 목요일

Python용 PostgreSQL 인터페이스 psycopg2

psycopg2는 Python에서 PostgreSQL을 다루기 위한 인터페이스 모듈이다. 즉, PostgreSQL 서버에 접속하거나 쿼리를 보내거나 데이터를 읽어 오는 등의 기능을 Python으로 하기 위한 모듈 중 하나이다. 이번에는 이 psycopg2 모듈을 간단히 소개한다.


2012년 6월 12일 화요일

카카오톡/보이스톡, 페이스타임 그리고 이통사

얼마전 카카오톡에서 지원되기 시작한 음성통화(m-VOIP) 기능 때문에 이통사에서 불만이 많았습니다. 자신들이 차려놓은 밥상에 공짜로 숟가락 얹어 놓았다고 말이지요. 그리고 이제는 iOS6의 페이스타임이 이동통신망을 통해 서비스가 시작된다는 것도 동일하게 말이 많습니다.

얼핏 보면 이통사의 이런 주장에 일부 일리는 있습니다. 자기네들의 수익 기반, 문자(SMS)라던가 통화 수익을 갉아먹는 요소임에는 틀림이 없지요. 페이스타임은 또한 영상통화라는 수익 기반을 갉아먹는 요소는 맞습니다.

하지만 그들의 주장에는 납득 할 수 없는 요소가 있습니다. 바로 자신들이 깔아놓은 망에 무임승차 한다는 주장입니다.

2012년 6월 11일 월요일

게시물 보기에 약간 오류가 있습니다. (수정완료)

미리 죄송하다는 말씀을 드립니다.

프로그래머 특유의 귀차니즘이 발동하여서 블로그 템플릿을 좀 뜯어 고치고 있습니다. 이 과정에서 수동 삽입한 광고와 템플릿으로 자동으로 삽입되는 광고가 중첩되어서 글 보는데 지장을 줄 정도로 광고가 표시되는 경우가 있습니다.

현재 포스트를 하나하나 들여다보며 문제를 수정하고 있는 중입니다. 그 전 까진 불편을 드리게 될 것 같습니다.

이 글 포함 총 311개의 글을 하나하나 뜯어 고쳤습니다. 헥헥 힘들어요. 살려주세요. 팔이 아파요.

글 중간에 삽입된 광고를 모조리 제거하였습니다. 과연 광고 수익에 영향을 얼마나 끼칠지는 알 수 없지만 애초에 광고비도 쥐꼬리였기 때문에 줄어봤자겠지요. 하하 ;ㅅ;

2012년 6월 4일 월요일

[Emacs] bash의 PATH 환경변수 eshell로 가져오기

개인적인 경우겠지만, bash를 기본 쉘로 이용하고 .bashrc에 개인적으로 이용하는 몇 가지 경로를 PATH에 추가해서 사용하고 있다. 이럴 때 Emacs를 쉘에서 띄우지 않은 경우 - 즉 OSX의 경우 Emacs를 GUI로 바로 실행한 경우 등 - 에는 PATH 정보가 틀리게 된다.

2012년 5월 29일 화요일

Emacs용 달력 프레임워크 Calfw

Emacs에는 이미 calendar라는 함수가 있어서 실행(M-x calendar)시키면 달력이 표시된다. 하지만 그냥 달력만 표시될 뿐 뭐 특별히 일정 관리라던가 등의 달력과 연관된 기능을 제공하지는 않는다. 당연히 정보를 제공 할 만한 여유 공간도 없다.

Calfw의 등장은 아마도 이런 달력과 연관된 기능을 제공할 목적인 것 같다. 달력을 표시하고 이 달력에 어떤 정보를 넣을 것인지 등의 정보를 입력해서 달력의 기능을 확장 할 수 있는 것이다.

2012년 5월 9일 수요일

iTerm2에서 tmux 화면이 깨지는 현상

iTerm2에서 tmux를 이용해 페인(pane)을 나누었을 경우 화면이 깨지는 케이스가 있다. 예를 들자면 아래 스크린샷 같은 경우이다.

2012년 5월 7일 월요일

iOS 앱 디렉토리 이야기

iOS앱은 데이터를 기록하거나 읽기 위한 몇 가지 디렉토리를 가지고 있다. 다들 알겠지만 이 디렉토리들은 샌드박스로써 해당 앱에서만 접근이 가능하다. 이 글에서는 이 디렉토리의 용도를 간략히 적어본다.

참고로, 이 글에서 디렉토리 이름에 AppHome 이라는 이름은 그냥 앱 디렉토리를 의미한다. 각 앱이 아이폰이나 아이팟, 아이패드 등에 설치된 디렉토리를 의미한다. 무시해도 된다는 의미이다.

2012년 5월 4일 금요일

맥에서 쓸 만한 간단한 머지(Merge) 툴 opendiff/FileMerge

XCode에 포함된건지 OSX에 기본적으로 배포되는지는 모르겠지만, 일단 기본적으로 FileMerge라는 머지툴을 이용 할 수 있다. 이걸 터미널에서 실행시킬 때는 opendiff 명령을 이용할 수 있다.

2012년 4월 19일 목요일

[iOS] 특정 코드를 비동기로 실행시키기

특정 API를 호출했는데 이 API가 작업시간이 오래 걸린다면 UI가 그 동안 멈추는 현상이 발생한다. 예를 들자면 대용량 파일을 읽거나 쓸 때 그 동안은 UI가 동작하지 않는 경우가 있다. 이 문제를 회피하려면 오래 걸리는 작업을 비동기(Asynchronous)로 처리하도록 할 수 있다.

이런 경우를 위해서 애플이 만든 GCD(Grand Central Dispatch)라 불리우는 기술(개념?)을 이용 할 수 있다. 쓰레드로 분리된 큐에 작업 내용을 넣어서 이를 차례대로 실행시키는 방식으로, 백그라운드 프로세싱과 병렬 처리를 한방에 해결 할 수 있도록 해 주는 고마운 기능이다.

2012년 4월 5일 목요일

OSX용 한글 대안 입력기 '구름 입력기'

Mac OS X에 기본적으로 포함되어 있는 한글 입력기는 제법 불만이 많다. 개인적으로 꼽는 가장 큰 불만은 입력 모드 전환이 너무 느리다 라는 점이다. 한글모드로 바꿀 때 마다 바람개비가 뺑뺑 돌아가는데 속 터진다. 개선이 언제될지는 모른다.

그래서 많은 사람들과 나는 바람입력기라는 대안 입력기를 사용했다. 다만 바람입력기는 한동안 개발이 지연되면서 뭔가 버그 개선이 안되는 느낌이 있었다. 이런 차에 구름입력기 라는 또 다른 한글입력기를 알게 되었다.

2012년 4월 3일 화요일

맥 용 동영상 플레이어, 지금은...

'맥용 동영상 플레이어에 대해' 라는 글을 쓴 뒤 1년 가량 지난 지금에서야 느끼는 맥(OS X)용 동영상 플레이어에 대한 소감을 뜬금없게 또 정리해 볼 까 한다. 물론 정리 대상은 한글 SAMI자막이 지원되는 동영상 플레이어에 한해서이다.

2012년 4월 2일 월요일

맥 용 무료 백신 Avira Free Mac Security

지금까지 맥을 써 오면서 딱히 악성코드 등으로 피해를 입은 경우가 없다보니 백신 등의 보안 프로그램이 필요한지를 잘 느끼지는 못 했다. 물론 지금도 못 느끼고 있다.

[iOS] Launch Image 다국어 작업 및 오류

일단 iOS용 앱 다국어 작업은 많이 알려져 있고 관련 문서도 많으니 일단 생략한다. 여기서는 Launch Image(혹은 Splash Image)를 각 언어에 맞게 설정하는 방법과 관련 오류에 대한 내용을 정리해 본다.

2012년 3월 31일 토요일

js3-mode와 auto-complete

최근 Emacs를 다시 사용하기 시작하면서 js3-mode 혹은 js2-mode를 사용 할 때 auto-complete가 동작하지 않는다는 것을 알게 되었다. 어떻게 보면 굉장히 치명적인 문제다.

2012년 3월 30일 금요일

[Vim] 콘솔에서 클립보드 엑세스 하기

Vim 7.2 이하 버전이라면 fakeclip이라는 플러그인을 이용해 콘솔 버전의 Vim에서 클립보드를 엑세스 하는게 가능하다.

Vim 7.3 부터는 Mac OS X 의 터미널에서 클립보드 엑세스가 가능하다. (출처)

[Emacs] 버퍼를 관리하기 위한 ibuffer

Emacs에서 너무 많은 버퍼를 띄웠을 경우 일일이 죽이기(C-x k)는 귀찮은 일이다. 이럴 때는 ibuffer를 사용해보자.

[Python] Python Debugger - pdb 기본 사용법

Eclipse같은 통합 IDE를 사용한다면 다른 이야기겠지만, 그 외의 경우라면 Python코드 디버깅은 쉬운 일은 아니다. 그나마 다행인 점은 pdb 모듈이 있다는 것.

2012년 3월 29일 목요일

블로그 포스팅 정리정돈 중입니다(?)

글 내용을 몽땅 보여주던 방식에서 일부만 보여주는 방식으로 바꾸고 있습니다.  물론 자세히 읽기로 들어가면 다 보이지요. 제 자신이 태그를 통해서 글을 찾을 때 너무 불편해서 이렇게 정리합니다. 300개 가까이 되는 포스트 일일이 다 정리하려면 시간이 좀 걸리겠군요.

뭐 그렇습니다. 아직까지는 대부분 글 내용이 그대로 전부 보이는데 조만간 수정 될겁니다. ;-)

이 작업이 완료되는 대로 블로그 스킨도 손을 좀 봐야겠네요. 언제가 될지는 모르겠지만...

그 밖에 돈에 눈이 멀어서 광고를 수동배치하고 있습니다. 뭐 이래도 한달에 4~5달러 벌기도 힘들겠지만 -_-;

2012년 3월 23일 금요일

[OS X] 파인더에서 숨겨진 파일 보기

OS X 파인더에서는 기본적으로 숨겸진 파일이나 디렉토리는 보이지 않는다. 특히 .(점)으로 시작하는 이름은 기본적으로 숨겨진다. (이는 유닉스의 특징이다. 점으로 시작하는 파일 이름은 좀 특별하게 취급한다)

파인더의 옵션을 뒤져봐도 숨은 파일을 보는 방법을 못 찾았는데 다른 방법을 이용해 숨은 파일을 볼 수 있는 방법이 있었다.

간단한 웹 서버 aspen

단순한 웹 서버가 필요할 일이 있을까 생각했지만 의외로 필요한 경우가 제법 있다. 예를 들어 Sencha Touch 등을 이용한 웹 앱을 만드는 경우 AJAX 통신을 하려면 꼭 웹서버가 필요하다. 이럴 때는 필요한 기능만 제공하는 단순한 웹서버가 있으면 편하다. 하물며 요즘처럼 웹 개발이 대세인 시대에 이런 도구 하나쯤은 있는 편이 좋을 것 같다.

2012년 3월 22일 목요일

Github for Mac

소스리비전툴인 git를 터미널에서 주로 이용해 왔는데 파일이 많아지면 많아질 수록 역시 터미널은 한계가 있다는 느낌이 들었다. 가끔 귀찮기도 하고... 그래서 맥 용 GIT GUI 클라이언트를 찾아봤는데 Tower라는 칭찬이 자자한 물건이 있었다. 그런데 유료였다! 아악!

2012년 3월 19일 월요일

구글 일본어 입력기와 OS X 라이온 사이의 문제?

이전 XCode4의 버벅임 문제가 여전히 이어지고 있다. 일시적으로 좋아졌다가 다시 나빠지기 시작한 것이다. 현 시점에서 가장 최신 버전의 OS X와 XCode를 이용 중인데 윈도우를 전환해서 활성화 할 때 자주 멈추면서 바람개비가 돌아간다. 심하면 5분 넘게 멈춰있기도 했다.

2012년 3월 16일 금요일

XCode를 위한 gitignore 설정

버벅이는 XCode4. 살려줘!

XCode4가 4.3.1까지 오면서 많이 개선되었다고 생각하지만 실제 체감은 초기 개선 이후로 그다지 별 변함이 없는 것 같다. 요즘은 XCode를 띄운 채로 웹브라우징 시 심심하면 굳어버리는(freezing) 증상이 심해지는 것 같았다.

그래서 해법을 찾다 보니 제법 좋은 방법을 하나 발견했다.

2012년 2월 22일 수요일

버전(Version)을 제대로 이해하기

Q. 1.3과 1.12 중 어느 버전이 더 최신 버전인가요?
A. 1.12가 더 최신버전입니다.

위의 같은 질문류를 커뮤니티에서 본 적이 있는데 놀랍게도 1.3을 1.12보다 더 높은 버전으로 생각하는 사람이 많은 것 같았다. 그래서 이번에는 버전 번호를 제대로 이해하는 방법을 한번 써 볼까 한다.

XCode4 Archive 시 이미지파일 압축 오류

2012년 2월 16일 목요일

[Color Theme] Tomorrow

오랫만에 올리는 포스팅꺼리는 컬러테마. Tomorrow라는 어떻게 보면 굉장히 단순한 어두운 배경에 밝은 글자색을 모토로 하는 테마이다.