페이지

2011년 8월 25일 목요일

bye Jobs

오늘은 Jobs가 공식적으로 애플 CEO로부터 사임을 발표 한 날이다. 후계자는 팀쿡을 지명하면서.

존경하는 그가 떠난다는데 그를 기억하며 이 글을 쓴다.

그를 처음 본 것은 05년 스탠포드 대학 졸업식 축사로 기억한다. 강렬했던 메세지들..

- Sometimes life hits you in the head with brick. Don’t lose faith.
- your work is going to fill a large part of your life and the only way to be truly satisfied is to do what you believe is great work. and the only way to do great work is to love what you do. If u haven’t find it yet, keep looking. Don’t settle.
- remembering that u r going to die is the best way I know to avoid the trap of thinking u have something to lose. There is no reason not to follow your heart
- Your time is limited, so don’t waste it living someone else’s life
- Stay hungry, stay foolish

이렇게 멋있는 말을 했던 그가 07년 1월 iPhone을 들고 청중을 사로잡는 Keynote를 보여주었다. 발표는 이렇게 하는거야의 best practice를 보여줬다. 그 어느 CEO가 이렇게 섹시한 발표를 할 수 있단 말인가? 그의 PT를 분석한 책만해도 여러권 봤다. 

그후 iPad , IPhone 3GS, IPhone4, AppStore, ITues, Mac PC 및 노트북까지 히트를 쳤고 올해 10월에 IPhone5 출시를 앞두고 있다. 현재 애플은 전세계 휴대폰업계 이익의 60%를 싹쓸이 하고 있다. Android가 없었다면 어떻게 되었을지 정말 아찔 하지 않을 수 없다.

잡스의 스타일을 알 수 있는 일화를 하나 소개한다. 구글의 VP인 Vic Gundotra가 쓴 글인데 대략 줄거리만 옮겨와 봤다.

Icon Ambulance

08년 1월 6일,  일요일 아침에 난 종교행사 중이었을때 unknown caller id 로 부터 전화가 왔서 받지 았았다. 행사후 메세지를 보니 Steve로 부터 “ 급히 의논할게 있으니 전화를 달라”는 메세지를 보고 바로 전화한다.

Steve는 “아이폰에서 Google 아이콘 의 두번째 o의 노란색 gradient가  틀렸다. Greg에게 내일 수정하라고 했는데 괜찮겠니?” 나는 당연히 문제 없다고 얘기했다. 몇분후 “Icon Ambulance”라는 이메일을 받았다.

나는 리더쉽을 디테일에 대한 열정과 관심이라고 생각한다. 그것은 어느 일요일에 Steve가 나에게 준 잊을수 없는 교훈이다. CEO는 디테일에 항상 신경을 써야 한다. 노란색의 shade까지 그것도 일요일에.

굿바이 잡스!

2011년 8월 11일 목요일

emacs ido introduction

emacs의 저변 확대와 내 기억향상을 위해 이글을 작성함.
ido-mode는 emacs 22부터 emacs 패키지에 들어가게 되었고, ido는 Interactively Do Things의 약자라고 한다. 일종의 completion-engine 이라고 보면 된다.
예를 들어, “*Ediff Registry”로 버퍼를 변경(C-x b)한다고 가정하자. 그러면 먼저 첫번째 글자인 *를 입력하고 Tab을 치고 운좋게 자동완성이 되면 끝이고 안되면 그 다음글자를 입력하고 또 그 다음 글자를 입력하고 자동완성이 될때까지 반복하면 된다.
ido로는 Registry 혹은 Ediff만으로 선택할 수 있다. 입력한 글자와 말그대로 match만 되면 바로 해당 버퍼를 선택할 수 있다. 심지어는 *er 만으로 원하는 버퍼를 선택할 수 있다. 첫글자인 *, Ediff의 e, Registry의 r만으로.
ido-mode를 사용하려면 .emacs 파일에 아래부분을 추가해주면 된다.
(ido-mode 1);; for buffers and files
ido를 위와 같이 enable하면 Switch-buffer(C-x b) 와 find-file (C-x C-f) 이 각각 ido-switch-buffer와 ido-find-file로 바뀌게 된다.
ido의 동작을 변경하는 여러가지 옵션이 있는데 그 중 몇가지를 소개해 보면
  • ido-ignore-buffers : switch-buffer시 무시할 buffer를 regex형식으로 명시할 수 있다. 보통 *로 시작하는 버퍼들을 명시해주면 유용하다.
  • ido-ignore-files : 마찬가지로 무시할 파일을 regex형식으로 명시할 수 있다.
  • ido-ignore-directories : 무시할 directory를 regex로 명시.
  • ido-case-fold : t로 주면 case-insensitive하게 동작한다
  • ido-use-filename-at-point : 현재 커서가 위치하고 있는 곳의 스트링으로 필터링을 한다. 예를 들어 main.c 에서 #include “test.h”라는 소스 파일이 있다고 치고, 현재 커서가 test.h에 위치해 있다고 하고 이때 find-file(C-x C-f) 명령을 주면 test.h로 필터링 된다.
  • ido-confirm-unique-completion t : candidate가 하나만 남아 있더라도 리턴을 해야지만 선택되게 한다.
최종적으로 내가 사용하는 셋팅은 아래와 같다.
(setq
ido-save-directory-list-file "~/.emacs.d/ido.last"
ido-ignore-buffers ;; ignore these guys
'("\\` " "^\*Mess" "^\*Back" ".*Completion" "^\*Ido" "^\*trace"
"^\*compilation" "^\*GTAGS" "^session\.*" "^\*")
ido-case-fold  t                 ; be case-insensitive
ido-enable-last-directory-history t ; remember last used dirs
ido-max-work-directory-list 30   ; should be enough
ido-max-work-file-list      50   ; remember many
ido-use-filename-at-point 'guess
;; ido-use-url-at-point nil         ; don't use url at point (annoying)
ido-everywhere t       ; ??
ido-enable-flex-matching nil     ; don't try to be too smart
ido-max-prospects 8              ; don't spam my minibuffer
ido-confirm-unique-completion t) ; wait for RET, even with unique completion
;; Display ido results vertically, rather than horizontally
(setq ido-decorations (quote ("\n-> " "" "\n   " "\n   ..." "[" "]" " [No match]" " [Matched]" " [Not readable]" " [Too big]" " [Confirm]")))
(defun ido-disable-line-trucation () (set (make-local-variable 'truncate-lines) nil))
(add-hook 'ido-minibuffer-setup-hook 'ido-disable-line-trucation)
;; when using ido, the confirmation is rather annoying...
(setq confirm-nonexistent-file-or-buffer nil)
(ido-mode 1) ;; for buffers and files

2011년 7월 8일 금요일

Support resume download in NSIS

installer에서 이어받기를 구현하라는 명을 받았다. 네트웍이 좋지 않은 지역에선 대용량의 SDK를 받다가 끊기는 일이 다반사여서, 이어받기를 지원해줬으면 좋겠다는 VOC가 많이 들어온다고 했다. 하여 리서치 끝에 이틀만에 구현한 로그다.

My boss tells me ‘could you support resume download at the SDK installer? in some countries, the download almost fails due to bad internect connection. so the developers are complaining why this program doesn’t support resume download.’ that’s why I researched this.

처음시도, inetC 가 /RESUME 옵션을 주기에 시도해 보았지만 여기서의 resume은 내가 원하는 RESUME이 아니라, 처음부터 다시 시도하는 resume이었다. 일종의 사기? 그래서 탈락.

according to the google search, inetc seems support /RESUME parameter. so I tried it, but it doesn’t work as I expected.

NSIS forum을 뒤지던 중, 금쪽같은 글을 발견, 이것을 시도해 보니 아니나 다를까 잘 된다. NSISdl plugin을 확장한 것인데, NSISdl과 look은 같고 interface는 파라미터 몇개만 추가된 정도이다. 그래서 기존에 NSISdl을 사용했다면 쉽게 바꿔치기가 가능하다.

Finally, I found a forum thread explaining NSISdl extension plugin which is support the feature. it has similar interface with NSISdl and has same look. so I can easily replace it with new one. it works perfectly.

한가지 주의할 것은, NSIS script에서 기존의 NSISdl interface를 사용하는 부분이 존재한다면 새 interface와 충돌이 날 수 있다. 그래서 새 plugin의 이름을 NSISdl2로 리네임 후 사용하길 권장한다. 그리고 그것을 사용할때에는 NSISdl2 download를 사용하면 된다.

one thing you should know, if you use both old and new NSISdl interface, there NSIS will not know how to resolve each interface call. so I recommend renaming a new one to NSISdl2. and call it NSISdl2::download.

2011년 6월 14일 화요일

태호PD 강연

이게 웬일인가. 무한도전의 태호PD가 회사에 특강을 왔다기에 진짜 박명수 보다 못생겼는지 확인하러 갔지.

아래가 생각나는 꼭지들...

  • 게스트 중심 탈피
    무슨 말인고 하니 기존엔 게스트 연예인을 돋보이게 하는 것이 예능이었고 그 연예인의 스케쥴에 모든 것을 맞춰야 했고, MC들은 조연에 불과했는데 이것을 MC들 중심의 예능으로 바꿈

  • 출연자:카메라 비율을 1:N으로
    처음에는 카메라가 2대 뿐이어서 유재석 위주로 화면에 잡힐 수 밖에 없었다. 그 2대를 N대로 바꾸기 위해 회사를 설득하는게 어려웠다. 처음에는 사설 카메라 기사를 채용해서 진행했고 이 사건때문에 짤릴뻔하기도 했다고. 결국에 N대의 카메라로 인해 유재석외에 다른 캐릭터들이 보이기 시작했고 그것이 좋은 반응을 얻었다고 함.

  • 2교대 스텝
    방송 업계에 종사하는 사람들의 삶은 너무나 고단하다. 일도 일이지만 가족도 중요하다고 생각했다. 그래서 예능 최초로 2교대 스텝을 돌리고 있다고 함.

  • 무한도전 달력
    기존의 봉사 프로그램의 컨셉은 '네가 얼마나 불행한지 보여줘 그럼 집 지어줄께' 였다. 이게 너무 싫었다. 그래서 무한도전 달력을 시작하게 되었다.

  • 가족에게는 미안한 말이지만 나는 무한도전 일이 제일 재미있다.

2011년 6월 1일 수요일

연우의 꿈–11년

연우에게 물었다.
- 커서 뭐가 되고 싶어?
+응 소방관도 되고 싶고 경찰관도 되고 싶어
- 왜 되고 싶은거야?
+ 소방관은 불속에도 들어갈 수 있고, 경찰관은 용감해서 도둑들을 물리칠 수 있으니까
- 경찰관 소방관 중에 선택하라고 하면 뭘 선택할거야?
+ 경찰관!
그래도 작년에 내가 물어 봤을땐 경찰차/소방차 라고 대답한걸 생각하면 네가 처음으로 꿈다운 꿈을 말한게 되는구나. 앞으로 매년 초에 너에게 꿈을 묻고 그것을 기록해 놓을 생각이다. 네가 훌쩍 커서 이글을 보게 되겠지. 아빠가 너 어렸을때 이러 이러한 꿈이 있었어라고 말하곤 이글을 보면 바로 증거가 되는거지! 넌 반박하지 못한단다.
PS. 나중에 안 사실인데 요즘에 로보카 폴리라는 만화를 좋아한다고 들었다. 네 꿈도 이와 무관하지 않은것 같구나. 음.. 유행에 휘둘리면 안되는데 ㅋ

2011년 5월 27일 금요일

계정 선점

오늘은 연우가 커서 가장 많이 사용할 것 같은 글로벌 서비스의 계정을 만들어 주기로 마음 먹었다.

구글은 yeonwoo.ha
트위터는 yeonwooha
페이스북도 해주고 싶었는데 네가 너무 어려서 안된대.
왜 갑자기 이런 것을 하는지 궁금하다고?. 아래 동영상이 너무 멋있어서 이것을 하려면 너에게 구글 계정을 만들어줘야 하거든.
근데 정말 아래처럼 할 자신은 없단다.
Dear Sophie

2011년 5월 18일 수요일

time stamp of a file is important in build world

time stamp of a file is important in build world. because it is the only criteria to determine the file is changed or not.

when i try proof build of Quikcbuild, i found that it doesn't update timestamp when it should. so i described the problem and why it should be. finally They made the patch. it works as i expected.