용기를 낼 시간

과거는 흥미롭다.

돌이킬 수 없기에 받아들인 채 나아가야 한다. 하지만 그대로 묻어두기에는 너무나 아쉽다.

먼지를 털어내려 하면 그것은 두려움이 대상이 되기도 한다. 미숙했던 자신과 마주하게 되니까.

흡사 하이젠버그의 상자와도 같다는 생각이 든다. 돌아보는 것만으로도 스스로의 변화를 느낀다.

현재나 미래뿐만 아니라 과거마저도, 시간은 언제나 내게 용기를 요구한다.

그 날을 향해

피곤하지만 잠은 잘 오지 않는다.

샌프란시스코에서도 체하지 않았는데 오히려 편안한 집에서 갑자기 긴장을 하니 쉽게 체해버렸다. 아마도 나의 위장은 아직도 시차 적응중인 듯 하다.

만약 그 때 십이지장이 천공되지 않고 궤양이 잘 나아 수술을 받지 않았다면 지금의 나는 어떤 모습일까.

필요없는 상상이다. 받아들이고 극복하는 쪽이 좋다.

이제는 갑자기 어지럽거나 두근거려도 쉽게 당황하지 않는다. 약물도 거의 쓰지 않는다.

그것으로 충분하지는 않다. 위장이 더 튼튼하기를 바란다.

아마도 이런 걱정 언제 했냐는 듯 살아가는 바로 그 날만큼 멋진 날도 없겠지?

Self-estimation

큰 두려움을 느낀다. 고비를 넘을 때마다 몰려왔던 긴장이 풀리고 피곤이 쏟아진다. 한편으로는 얼마나 멀리 갈 수 있는지 끝장을 보고 싶다. 나의 정신과 육체는 그 모든 것을 견뎌낼까, 아니면 어느 순간 무너져내릴까.

두려움을 넘어서

열렬히 원하지는 않았지만 선택한 길이 있다. 안정적이기에 남들이 내가 되돌아가기를 바랐던 그 곳으로 나는 돌아갔고, 그다지 마음에 딱 들지는 않았지만 중요한 역할을 맡았음에 스스로를 위안했다. 변화에 대한 두려움도 있었기에 그것은 좋은 선택처럼 보였다.

아마도 내가 잠시 미쳤었나 보다!

이젠 됐다. 내 멋대로 하겠다. 그 누가 나에게 뭐라 해도 나는 내 멋대로 해야 겠다.

How to Start Pidgin Minimized (or always start Pidgin with its buddy list invisible)

Pidgin does not have an option that allows a user decide whether the Pidgin buddy list window starts minimized or not. It just remembers the state of the window when it quits, and restores the last window state.

The last window status is stored in $HOME/.purple/prefs.xml:

...
<pref name='pidgin'>
  ...
  <pref name='blist'>
  ...
    <pref name='list_visible' type='bool' value='0'/> <!-- 0: invisible, 1: visible -->
    <pref name='list_maximized' type='bool' value='0'/> <!-- 0: normal, 1: maximized -->
  ,,,
  </pref>
</pref>
...

When the list_visible property is set to 0, you will see Pidgin minimizes its buddy list window into the system tray (or the notification area). How can we make sure it’s always set to 0 when Pidgin updates it when it exits? Let’s write a shell script:

#!/bin/bash
perl -pi -e "s/pref name='(list_visible|list_maximized)' type='bool' value='[1-9]'/pref name='$1' type='bool' value='0'/gi" ~/.purple/prefs.xml
/usr/bin/pidgin &

The first perl command searches the list_visible and list_maximized properties and replaces their values with 0 before Pidgin starts. Problem solved!

Not that I like this workaround. I still just can’t believe there is no option about this.

Looking for a Job Opportunity

UPDATE: Some nice people at Red Hat apparently made a lot of effort to get me back on track as soon as possible, and I’m officially back to Red Hat since April 18th, 2011. I’d like to thank everyone who contacted me to let me know there are many possibilities in my career.

I have been on a parental leave since January 1st this year. Although I was supposed to be back next year, I decided to get back sooner. However, there aren’t any open job slots for me at the moment, so I have to wait at least until June to get back to Red Hat and get the right position. To be honest, I don’t think I can wait that long unless it is certain enough. Unfortunately, it doesn’t seem so yet although I still would love to be a Red Hatter.

Since my manager kindly told me that it is fine for me to explore any job opportunity publicly because I might not be able to get back to Red Hat soon enough, I’d like to let everyone know I’m looking for a job.

As some of you may know, I’m an expert on building Java-based high performance server applications, spanning from asynchronous messaging to modern RPC style communication and from highly optimized custom protocol to HTTP. I’m the founder of Netty and Apache MINA, the Java NIO frameworks. I have strong background on Java network programming, multi-threading, and performance profiling. I also am interested in writing in Scala or any interesting JVM-based languages, although I’m a beginner in those languages at best. You might want to check my LinkedIn profile for more information.

If you are interested enough and your company can let me work at home in South Korea (GMT+9) without relocation, please contact me.

제일 좋아하는 것

우리 딸이 보는 세상은 현재 이렇다:

아빠가 제일 좋아하는 것은 책
엄마가 제일 좋아하는 것은 회사
고모가 제일 좋아하는 것은 고모부
고모부가 제일 좋아하는 것은 고모
이모가 제일 좋아하는 것은 밥 (애들한테 매일 밥먹으라고 해서 그런 듯, 작년에는 인형)
이모부가 재알 좋아하는 것은 담배
할머니랑 할아버지가 제일 좋아하는 것은 등산
이모네 큰오빠가 제일 좋아하는 것은 피아노
이모네 작은오빠가 제일 좋아하는 것은 컴퓨터
채은이가 제일 좋아하는 것은 꽃 (슈퍼 마리오의 요시인 줄 알았는데)

나름 많이 맞아 떨어지는 것 같아서 깜짝 놀랐다. 아이들의 세계를 바라보는 능력은 역시 위대하다.

What I don't like about IntelliJ IDEA

Although IntelliJ IDEA is a very nice IDE, I hate several things about it, especially comparing to Eclipse.

Horrible font rendering

Not IDEA’s fault, but its font rendering in Linux is horrible. Everyone who recommends IDEA seriously was Mac user, and that might mean something is wrong with Swing. Fortunately, I found a workaround.

Meaningless keymap

The default keymap is not easy to learn & remember. How can I know if Ctrl+F9 means ‘Make project’ and Shift+F6 means ‘Rename’? Ctrl+B and Alt+Shift+R of Eclipse are much easier to remember. I know we can’t do it that way for all shortcuts, but at least we should do the best. Some old IDEs had the similar keymap with IDEA, and in my opinion IDEA looks like it simply followed some bad tradition.

Unstylish color scheme

The default color scheme (i.e. syntax coloring) looks so 80-ish. It makes me feel like working with a very old IDE such as Visual Studio 6.0. Most modern text editors like TextMate and Sublime Text have much more lovely out-of-the-box color schemes.

Personally, I prefer the color scheme of Eclipse, and use the same color scheme in IDEA. If you like Eclipse style, download it here.

No ‘build on save’

There is a plugin called ‘Eclipse Mode’ that emulates this behavior, but it is not in the same league with the native incremental compilation engine that Eclipse ships with, and it doesn’t seem to work with the latest IDEA version.

No way to browse the complete list of errors and warnings of a project

Eclipse has a view called ‘Problems’ which shows all errors, warnings, TODO tags of the project (or the scope you prefer). In combination with the ‘build on save’, the Problems view updates the list of problems almost in real time. In contrast, I have to build the project manually to get or update the list of warnings and errors.

No quick documentation lookup on hover

I have to type CTRL+Q to look up the Javadoc of a class on the current cursor position. Why can’t I simply view the Javadoc by moving my mouse cursor on it instead of moving the text cursor? It does seem like some people doesn’t care about this lack of feature, but without this feature I have to move the text cursor back and forth in the middle of coding session instead of briefly moving the mouse cursor while retaining the current text cursor position.

Also, did you know most applications define CTRL+Q as a shortcut for ‘Quit’?

중간 점검

프롤로그 를 올린 지도 시간이 꽤 흘렀다. 그 때의 다짐이 무색하게 근래 글이 뜸했다. 사실 마음속으로는 매일 글을 써야 겠다고 다짐했는데.

쉬는 시간이 많으니 뭔가 이 기간 동안 이뤄 놓아야 겠다는 생각이 자꾸만 든다. 하지만 그렇게 의욕을 세우다 보면 그런 행동 자체가 휴직의 본래 목적 (심신의 건강 회복) 과 상충함을 느낀다.

그렇다고 이렇게 여유롭게만 시간을 보내면 내년이 찾아왔을 때 격렬한 업무 속에서 마음의 평화를 유지할 수 있을지 의문이 든다. 현재로서는 자신이 없다.

그저 이 평화를 만끽하고만 있을 수는 없다. 하지만 변화는 너무나 천천히 찾아오는 것 같다. 나는 믿음을 갖고 꾸준히 스스로를 이해하고 변화시켜 나아갈 수 있을 것인가.

올 한 해가 별다른 성과도 없이 허비되고 있는 것은 아닌가 하는 고민이 나를 지배하고 있는 한 나는 앞으로 나아갈 수 없다. 그저 익숙한 삶을 계속하며 고민만 할 수는 없지 않은가. 지금 이 순간의 나를 위해 할 수 있는 일을 하자. 삶을 변화시키는 것은 결과가 아니라 과정이다.

부천 GS 스퀘어 유감

부천에는 두 개의 백화점이 있는데, 하나는 GS 스퀘어 (현 롯데 백화점), 다른 하나는 현대 백화점이다. 우리 가족은 조금 더 가깝고 예전부터 이용해 오던 GS 스퀘어를 주로 이용한다. 3월부터는 아이도 그 곳의 문화 센터를 이용할 예정이다.

하지만 곰곰히 따져 보면 현대 백화점이나 인근의 소풍이 쇼핑 자체를 하기에는 더 좋지 않나 하는 생각이 든다. 우선 현대 백화점 쪽이 매장이 좀 더 널찍한 느낌이고, 옆에 연결된 로담코 플라자 (현재는 유플렉스) 쇼핑몰도 쉽게 이용할 수 있다. 특히 현대 백화점에서 인수한 뒤로 좀 더 몰 구성이 백화점과 잘 맞물려 돌아간다는 인상을 받았다. 마찬가지로, 소풍도 건물 자체도 크고 브랜드도 다양하면서 식당이나 극장까지 갖추고 있어서 백화점같은 호사스러움은 없어도 나름의 매력이 있다.

GS 스퀘어는 반면 롯데에 인수된 후에도 나아지는 것 같지 않다. 입점한 브랜드의 쇼핑 자체의 편의성이야 문제삼을 것이 없지만, 부가적인 면에서 부족함이 보인다. 우선 식당가가 빈약하다. 가뜩이나 가게도 부족한데 얼마전 스파게티 가게가 문을 닫았고, 그 자리에 왠 허술한 가구 매장이 들어섰다. 그뿐아니라 질 면에서 기준 미달인 몇몇 업체 때문에 선택의 폭이 사실상 제한되어 있다. 그나마 GS 스퀘어의 대표적인 커뮤니티 서비스이며 자랑이라고 할 만한 수영장 및 헬스 시설이 들어선 9층마저도 3월에서 5월 사이에 매장으로 바뀔 예정이라고 한다. 이거 뭐 물건만 사고 후딱 가라는 건지..

점점 GS 스퀘어만의 매력은 점점 사라져가고 다른 대형 쇼핑몰과의 차별화도 하지 못하는 듯 하여 안타깝다. 다른 곳보다 더 자주 방문하기에 이런 단점이 도드라져 보이는지도 모르겠다. 현대 백화점이 로담코 플라자 인수 후 매장 구성을 바꾸는 동안 분위기가 어수선했던 것을 감안하면 롯데에 인수된 GS 백화점의 변화 또한 느긋이 지켜 보아야 할 듯 하다.