2013년 6월 14일 금요일

신형 맥프로 잡담

WWDC2013을 통해 애플이 내 놓은 것 중 화제가 되는 것 두 가지는 iOS 7과 신형 맥프로이다. 이 글은 이 중 맥프로에 관한 지극히 주관적인 잡담이다.

2013년 6월 7일 금요일

[Cocoa] NSString의 경로(path)와 관련된 기능들

NSString 은 문자열 클래스임에도 불구하고 순수 문자열의 기능을 넘어서는 다양한 기능을 제공한다. 이 중 파일이나 폴더의 경로(path)와 관련된 기능들을 소개해본다.

[Cocoa] 파일이나 폴더를 휴지통으로 이동

보통 파인더에서는 파일을 삭제하는 대신 '휴지통으로 이동' 이라는 방법을 제공한다. 휴지통에 버려 뒀다가 실수로 삭제한 파일을 다시 복원시키기 위함이다.

2013년 6월 4일 화요일

[Emacs] projectile을 이용한 아주 약간 스마트한(?) 파일 열기

helm-projectile을 이용해 Emacs로 프로젝트의 파일을 여는건 쉽게 된다. 하지만 약간의 귀찮음이 동반되어서 약간의 개선된 기능을 하나 만들어 봤다.

2013년 5월 22일 수요일

사파리 한글 폰트 문제 해결 Gridth 확장

Gridth는 사파리 브라우저에서 사이트 별 사용자 CSS를 적용하기 위한 확장이다. 오해의 여지가 있는데, 제목처럼 한글 폰트 문제를 해결하기 위한 전문적인 확장은 아니다.

2013년 4월 25일 목요일

EmacsWiki가 변했다

Emacs 사용자라면 꼭 들러보게 되는 정보의 바다 EmacsWiki 사이트의 레이아웃이 개편되었다. 물론 위키의 특성 상 내용이 바뀐게 아니라 겉모습만 바뀌게 되었다.

2013년 4월 18일 목요일

2013년 3월 19일 화요일

[Emacs] 멀티 프레임 커맨드

개인적인 취향으로 Emacs를 쓸 때 프레임(보통은 윈도우라고 부르지만 Emacs에서 윈도우는 하나의 창 혹은 이 창을 분할한 영역을 의미)을 하나 밖에 쓰질 않았다. 하지만 최근엔 여러 프로젝트의 소스를 참고할 일이 많아지다 보니 결국 멀티 프레임 기능을 쓰게 되어서 관련 기능을 메모한다.

2013년 3월 15일 금요일

Emacs 24.3 - OS X 풀스크린 지원

얼마전에 Emacs 24.3이 공식적으로 릴리즈 되었다. 변경사항이야 워낙 많아서 열거하긴 어렵겠지만 중요한 것이 하나 추가되었다면 OS X 라이언 풀스크린 지원이 공식적으로 포함되었다는 점 일 것이다.

2013년 3월 1일 금요일

[Emacs] 모드 사용법 및 단축키 도움말 시스템

Emacs의 도움말 시스템인 C-h 키는 Emacs를 사용하는 도중 굉장히 자주 이용하게 될 도움말 키이다. Tutorial은 이제 Emacs를 시작하는 이들에게 좋겠지만, 개인적으로 이 도움말 단축키 중 하나를 꼽으라면 바로 C-h m 키를 꼽고 싶다. 특히 단축키가 기억나지 않거나 궁금할 때 이용 할 수 있는 최고의 단축키이다.

[Python] 어느날 import sqlite3 가 실패하기 시작했다

우선 배경 설명부터 하자. OS X 환경에서 Homebrew를 통해 Python 및 기타 여러가지를 설치하고 사용하는 터미널 유저이다. 그리고 업무로 sqlite3를 이용하는 스크립트를 작성하고 있다. 일단은 잘 돌아가고 잘 사용하고 있는 스크립트이다.

그런데 어느날 부터 이 스크립트가 오동작 하기 시작했다. sqlite3 모듈을 import 하는 데서 오류가 발생하는 것이었다.

2013년 2월 28일 목요일

[Vim] TODO 관리용 플러그인 TaskList

코딩 도중 나중에 꼭 해야 할 것이라는 의미에서 TODO로 시작되는 주석문을 달 때가 있다. 물론 사람마다 다르겠지만, 개인적으론 TODO 라는 주석문으로 코딩 내용을 축약해서 적어놓고 나중에 그 내용을 보고 구현(Implementation)하는 방식을 종종 사용한다. 그런데 코드 내용이 길 때는 TODO를 검색해서 코딩하기엔 약간 귀찮을 때도 있다.

TaskList는 Vim에서 TODO 등 특정 키워드 내역을 한방에 정리해서 보여주는 플러그인이다.

2013년 2월 27일 수요일

[Emacs] 버퍼의 내용을 실행시키기 위한 확장 quickrun.el

Emacs에서 코딩을 하다가 특정 루틴을 실행시켜 보고 싶을 때 라던가, 혹은 쉘 스크립트 결과물을 Emacs 안에서 바로 실행시켜서 버퍼에 적고 싶다던가 등등 현재 버퍼의 내용을 실행시켜보고 싶은 때가 있을 수도 있다(-_-). quickrun.el은 이렇게 버퍼의 내용을 실행시켜서 결과를 확인하거나 현재 버퍼에 넣고 싶을 때 활용 할 수 있는 Emacs용 확장이다.

2013년 2월 25일 월요일

[Emacs] 확장 관리 시스템 ELPA/MELPA/Marmalade

이전에 적었던 ELPA 관련 글들이 약간 부실하다는 느낌이 들었고 거기다 Marmalade 라는 또다른 패키지 저장소가 있기 때문에 추가로 정리글을 적어본다.

2013년 2월 22일 금요일

[Emacs] Projectile 및 Helm 확장

Projectile은 Emacs에서 제공해 주지 않는 기능인 프로젝트 단위의 파일 관리를 할 수 있게 해 주는 확장이다. 예를 들자면 프로젝트 내의 파일을 연다던가....

[Emacs] Helm

이번에 소개할 확장은 Helm(투구? 헬멧? 하이바? -_-;;;;) 이다. 간략하게 뭐라고 해야 할지 난감한 확장이지만, 일단 Anything과 비슷한 확장이다. 그도 그럴 것이 Anything에서 새끼친(fork) 프로젝트이기 때문이다.

2013년 2월 21일 목요일

[Vim] 검색어 자동완성 SearchComplete

Vim에서 검색어를 탭키로 자동완성 해 주는 플러그인 SearchComplete 를 우연히 알게 되었다. 굳이 더 자세한 설명은 필요없을 정도로 기능이 알기 쉬우면서도 편한 플러그인이다.

2013년 2월 20일 수요일

[Emacs] ELPA/MELPA를 통한 확장 패키지 관리

이 글은 Emacs 24에서 ELPA/MELPA를 통해 패키지를 관리하는 가장 기본적인 방법에 대한 것이다. 이미 이 블로그에도 ELPA에 관한 글을 썼던 적도 있고 Emacs24에 관한 글에서도 언급한 적이 있지만 한번 더 소개해 볼까 한다.

2013년 2월 19일 화요일

[Emacs] highlight-symbol 을 이용한 심볼 검색

앞서 auto-highlight-symbol-mode 를 이용한 글을 썼었는데 오류와 버그로 인해 가끔 동작하지 않는 문제가 있었다. 다만 Emacs 24에서만 발생하는 문제 일 수도 있다. auto-highlight-symbol-mode가 제대로 동작한다면 굳이 이 글을 참조 할 필요는 없다.

2013년 2월 18일 월요일

[Emacs] auto-highlight-symbol-mode

auto-highlight-symbol-mode 는 Emacs 에서 커서가 위치한 단어를 검색하는 (Vim의 * 키 커맨드 비슷한) 기능을 찾던 도중 발견한 마이너모드 확장이다.

2013년 2월 13일 수요일

[Emacs] emacs-git-gutter

Sublime Text 2 용으로 GitGutter 라는 확장 플러그인은 Git에 등록된 파일을 편집하면 편집된 내용을 알 수 있게 라인번호 왼쪽에 뭔가를 표기해 주는 확장이다. 인기가 좋은지 유용한지는 잘 모르겠지만, 어쨌든 Emacs용으로도 이 git-gutter가 나왔다.

2013년 1월 15일 화요일

Vim으로 즐기는 골프(?) VimGolf

골프라는 스포츠는 공을 얼마나 적게 쳐서 홀에 집어넣는지를 겨루는 스포츠다. 타수를 줄여서 최대한 적게 친 순으로 순위가 메겨진다. VimGolf는 Vim으로 골프치는 것이 아니라 -_- 골프의 목적과 비슷하게 Vim으로 특정한 텍스트 프로세싱을 하는데 얼마나 효율적으로(얼마나 키보드 타이핑 수를 적게 하느냐 등) 해 내느냐를 겨루는 게임같은 서비스이다.

[Vim] 라인 단위 정렬

특정 키워드를 정리하는 코딩을 하고 있었는데 가끔 중복되는게 있어서 검색으로 일일이 찾아보면서 코딩을 하고 있었다. 그런데 입력한 코드를 정렬해 두면 미리 검색해 보지 않아도 어느 정도 쉽게 중복되는 것이 눈에 들어오지 않을까 하는 생각에서 Vim에서 라인 단위 정렬을 하는 방법을 찾아보게 되었다.

Vim에서는 sort라는 명령을 자체적으로 지원한다. 혹은 *NIX 유틸리티를 이용하는 것도 가능하다.

2012년 12월 26일 수요일

Objective-C 에 관한 잡담

그렇게 오래는 아니지만 어쨌든 Objective-C를 수 년 간 이용해 왔다. 이제는 익숙해졌기 때문에 처음 봤을 때의 인상에 비해 호감이 가는 언어가 되었다. 심심해서 이 언어에 대한 썰을 한번 풀어본다.

이하 Objective-C는 한글로 '옵씨'로 줄여서 표현한다. 그리고 옵씨에 대한 설명이 아니다 보니 옵씨를 이제 시작하는 분들에게는 별 의미 없는 글일 것 같다.


2012년 12월 24일 월요일

[Python] 데이터를 예쁘게(?) 찍어주기

제목을 정확히 쓰자면 'Data Pretty Print' 이다. Python에 기본적으로 포함되어 있는 pprint 모듈에 대해 간단히 소개하고자 한다.

pprint는 말 그대로 Pretty Print 이긴 한데 이름 만으론 잘 감이 안 올 수도 있다. 이 모듈은 복잡한 자료구조의 내용을 조금 더 알기 쉽게 표시해 주는 역활이다.

[Python] 특정 디렉토리(폴더)의 모든 파일 이름 알아내기

이전에는 os.listdir이나 glob 같은걸 써서 재귀호출(recursive call)로 특정 디렉토리 아래의 모든 폴더를 순환하며 파일 이름을 모으는 코드를 만들곤 했었는데, 이는 순전히 무식해서 고생한 거였다. Python의 기본 모듈인 os.walk가 이런 역활을 하도록 이미 구축되어 있었다.

2012년 12월 10일 월요일

[Python] Nested 문법?

개인적으로 Python 언어로 코딩을 하면서 자주 안쓰게 되는 문법이 있다. 이 문법을 정확히 어떤 용어로 표현해야 하는지 몰라서 일단 'Nested 문법' 이라고 적었는데 틀린 표현 같지만 제목이 필요하기에 어거지로 썼다.

C에 익숙했던 (비영어권) 사람이라면 아마도 Python이나 기타 스크립트 언어들 특유의 문법에 간혹 놀라기도 혹은 질리기도 한다. 스크립트 언어들의 독특한 문법 중 하나는 프로그래밍 언어를 마치 사람의 언어처럼 표현하기도 하거나 이 코드의 내용을 마구 줄여버리는 것이다.

참고로 이 글은 Python을 어느 정도 공부한 사람이라면 읽을 필요가 없다.

2012년 12월 6일 목요일

변화를 거부하고 도전을 싫어하는 개발자

변화를 거부하거나 도전을 싫어하는 사람은 물론 있다. 많을 것이다. 이런 사람들의 태도가 무조건 잘못된 것이라고 평가하는 것은 좋지 못 하지만, 이런 사람들을 위해 하고 싶은 말이 참 많기도 하다.

나 조차도 변화나 도전은 좀 겁을 내는 경향이 있다. 하지만 어느 순간 약간씩 도전해 보면서 얻기도 하고 성취하기도 하고 보람을 느끼기도 하고 실패하기도 한다.

별 의미는 없겠지만 이런 저런 불평불만을 글로 한번 남겨볼까 한다.

2012년 12월 5일 수요일

추억 속의 컴퓨터 이야기 IQ-2000

내 나이대도 이제는 젊다고 하기에는 힘든(?) 수준으로 치닫고 있다. 세월의 흐름이 너무 빨라서 아쉽고 벅차고 숨차기는 하지만, 이럴 때 일 수록 추억을 떠올려 보면 나름 재미있는 세월을 보냈구나 생각이 든다.

이참에 옛날 옛적에 쓰던 구식 컴퓨터에 대한 이야기를 한번 써 볼 까 한다. 이 글은 이 중 IQ-2000이라는 고물(?)에 대한 이야기다.

2012년 12월 4일 화요일

[Python] parse

간단한 문자열 파싱을 할 때는 대체로 정규표현식(re) 모듈을 많이 활용한다. 하지만 단순한 패턴을 읽어 낼 때는 정규표현식은 귀찮은게 많다. 이럴때는 간단하게 파싱 할 수 있게 도와주는 parse 모듈을 사용 할 수도 있다. 이 모듈의 설명은 아래 한줄이면 충분하다.

parse() is the opposite of format()

앞서 소개했던 str.format() 과는 반대되는 기능을 제공한다는 의미이다. 이걸로 대충 설명은 끝나는 것 같다. :-)

[Python] str.format()

파이썬에선 기본적으로 C 스타일의 문자열 포맷 방법을 제공한다. printf나 sprintf 처럼 % 문자를 사용해서 문자열을 대체하는 것 말이다. 우연찮은 기회에 이 방법이 아닌 다른 방법으로 문자열을 포매팅 하는 방법(str.format)을 알게 되어서 이에 대해 가장 기본적인 사항을 포스팅을 해 본다.

우선 이 기능은 Python 2.6 부터 동작하며 일부는 2.7에서 추가된 기능도 있을 수 있다.

2012년 12월 3일 월요일

[프로그래머 유머] C Perl GNOME Java

왠만한 프로그래머라면 고전 유머로 이해될 만한 내용이겠지만, 이 글은 비 프로그래머 일반인 혹은 현대적인(?) 프로그래머를 위해 그냥 풀어보는 썰이다. ;-)

2012년 11월 30일 금요일

스마트폰 관련 뉴스를 볼 때 마다 화가 난다

스마트폰 붐을 타면서 아이부터 어른까지 스마트폰을 사용하고 있다. 그러면서 나오는 문제들은 보안과 중독성에 관한 것이고 시간이 가면 갈 수록 더욱 크게 이슈가 되고 있다. 지금 하려는 이야기는 이 중 보안과 관련된 뉴스들에 대한 이야기이다.

2012년 11월 20일 화요일

[Python] 인터프리터 테스트는 다르다

특정 모둘을 만들고 이 모듈을 파이썬 인터프리터로 테스트 할 때 간혹 문제가 생기는 케이스가 있다. 특히 PYTHONPATH와 함께 발생 할 수 있는 import 문제가 있다.

약간의 신중하지 못한 (혹은 무식한) 점이 이틀 간의 삽질로 나를 이끌었다. 아직도 명확한 원인은 모른다. 애초에 이런 디자인은 좋지 않다는 것을 되세기며 이번 포스팅을 기록으로 남긴다.

2012년 11월 19일 월요일

Emacs 24.x S-SPC 키보드 먹통 문제

Emacs가 버전 24로 올라오더니 OS X에서 S-SPC(Shift-Space) 키 입력을 인식하지 못 하는 문제가 생겼다. 그리고 24.2 버전이 되면서 구름 입력기를 이용 도중에 S-SPC를 누를 경우 키보드가 먹통이 되는 문제로 진화(?)되었다.

2012년 11월 13일 화요일

[Python] logging 의 중복 로그 현상

logging 을 사용해서 로그 찍는 루틴을 만들었는데, 로그를 찍을 때 마다 동일한 로그가 계속 하나씩 더 찍히는 현상을 경험했다. 로그1, 로그2, 로그2, 로그3, 로그3, 로그3, ... 이런 식이었다.

사실 현상이라기 보단 코딩을 잘못해서 나타난 문제이다. 하지만 이 문제 해결을 위해 너무나 귀찮은 짓을 다 해 봤기에 기억하자는 의미로 글을 남긴다.

2012년 11월 12일 월요일

[OS X] 한글 입력 상태에서 특정 키가 동작하지 않는 증상

OS X에서 한글 입력 상태에서 특정 키, 예를 들자면 Emacs 키맵과 비슷한 Ctrl-A, Ctrl-E 같은 키가 제동작을 하지 않는 증상이 있었다. 이 문제 해결을 위해 굉장히 단순한 포스팅을 한다. ;-)

2012년 11월 9일 금요일

스크린세이버, 과연 필요한가?

스크린세이버(Screen Saver). 이름 처럼 화면을 보호하기 위해 만들어진 기능이다. 하지만 이 기능이 지금에 와서야 정말 필요한건가 의문이 든다.

2012년 10월 22일 월요일

윈도우 사용자를 위한 맥 및 OSX 용어

개인적으로 윈도우를 오랫동안 사용하다 맥을 처음 사용했을 때 용어나 각 앱의 이름이 뭔지 몰라서 막막했던 시절이 있었다. 그 때를 회상하며 약간 헷갈리거나 알 수 없는 용어들을 한번 정리해 볼까 한다.

2012년 10월 18일 목요일

[Emacs] jump-char.el

이번 글은 아주 간단하다면 간단한 네비게이션용 확장인 jump-char의 소개글이다. 기능은 많지만 중요한 것을 하나 꼽자면 바로 Vim의 f 키 기능과 비슷한 기능을 하는 확장이다.

2012년 10월 11일 목요일

[Vim] 파일 저장 시 뭔가를 하고싶다

어떻게 보면 광범위한 제목이 될 지도 모르겠지만, 이 글은 Vim에서 특정 파일을 편집하다 저장 했을 때 특정한 일을 실행 하기에 관한 내용이다.

2012년 10월 6일 토요일

[OSX] 사파리의 탭 자동 리로드 문제 해결(?)

OS X에서 사파리(Safari)를 사용하다 종종 버리곤(?) 했었는데 굉장히 단순하면서도 치명적인 이유가 있어서 였다. 여기 블로거에 글을 작성하는 도중에 참고 문서를 찾기 위해 새 탭을 띄워 구글링을 하다 다시 글을 작성하던 탭으로 돌아오면 탭이 리로딩 되면서 그 동안 써 놓은 글이 싹 날아가 버리는 어이없는 문제를 몇 번 겪어서이다.

2012년 10월 5일 금요일

[Emacs] YASnippet용 템플릿 만들기

YASnippet에 관한 글은 별도로 적지 않았는데 Emacs에서 YASnippet은 워낙 유명하다 보니 소개에 관해서는 생략. 이 포스트는 YASnippet용 템플릿과 관련한 가장 기본적인 내용을 다룬다.

2012년 9월 28일 금요일

[iOS] 시스템 아이콘 추출기 UIKit Artwork Extractor

아이폰이나 아이패드 등 iOS용 앱을 개발 할 때 함께 일하는 디자이너가 없다면 앱 디자인 때문에 골머리를 썩힌다. 특히 아이콘은 가장 단순하면서도 필수적인 것인데 이걸 구하는 것도 힘든 일이다. 특히 기존의 아이폰 앱 등과 비슷한 모양을 만들어야 할 때는 시스템 아이콘을 쓰고 싶기도 한데 가끔 제약이 따른다.

2012년 9월 26일 수요일

[Emacs] Speedbar를 메인 윈도우에 넣기: sr-speedbar.el

Emacs의 내장 Speedbar는 별도의 윈도우가 뜨면서 동작한다. 개인적으론 좀 불편하다고 생각되어서 메인 윈도우 안에다 집어넣는 방법을 찾고 있었는데 누군가 이미 비슷한 목적으로 만들어 놓은 것을 찾았다.

[Emacs] Speedbar에서 특정 파일이 보이지 않는 경우

최신 Emacs에는 Speedbar가 포함되어 있으니 (정확히는 CEDET) 설치는 생략. 아는 사람은 알다싶이, Speedbar는 파일 목록을 띄워주는 Emacs용 확장이다. 사용법도 간단해서 그냥 M-x speedbar 로 띄우는 것이 가능하다.

그런데 이 Speedbar가 모든 파일을 표시해 주는 것은 아니다. 기본 설정 상태에서는 제한적인 파일만 표시해 준다.

2012년 9월 22일 토요일

[Emacs] expand-region.el

expand-region.el 은 선택 영역을 확장(Expand)해주는 확장(Extension)이다. 아래의 github 저장소 링크에서 확인 할 수 있다.

[Cocoa] 창이 다 닫기면 앱 종료하기

처음으로 써 보는 코코아 관련 메모. 기본적으로 코코아 앱은 멀티 윈도우를 지원하는 경우 창을 다 닫아도 앱 자체가 종료되지 않는다. 만약 윈도우(MS-Windows) 처럼 창이 다 닫기면 애플리케이션이 종료되길 원한다면 AppDelegate에 다음 코드를 넣는다.

2012년 9월 20일 목요일

[Emacs] Javascript와 CSS가 포함된 HTML 파일 편집

Emacs는 다양한 메이저모드(Major mode)를 가지고 있고 특정 파일을 편집 할 때 특정한 모드가 매핑되어 편집이 편하도록 도와주는 것이 일종의 메카니즘이다. 하지만 이런 정책(?)이 방해되는 케이스가 있으니 바로 웹 개발, 특히 자바스크립트와 CSS가 포함되어 있는 HTML을 편집하는 경우이다.

2012년 9월 14일 금요일

아이폰5, 그놈의 혁신 타령 궁시렁...

몇 일 전, 애플이 아이폰5를 발표 하자마자 바로 국내 언론사의 기사가 떴다. 또 '혁신은 없었다' 라는 기사다. TV 공중파 뉴스에서도 혁신은 없었다 라고 평가절하하는 내용이 주류를 이루고 있다. 도데체 왜 혁신이 없다고 하는 걸까?