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 -->

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:

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 백화점의 변화 또한 느긋이 지켜 보아야 할 듯 하다.

상담을 받으러 신경정신과를 방문했다. 의사는 그대로인데 전보다 방이 좀 커지고 옆에 여자 조수가 붙어 있다. 이야기를 하는데 너무 작게 이야기해서 들리지가 않는다. 좀 더 크게 이야기해 달라고 하자 벽이 방음이 잘 되지 않아 옆 방에 이야기가 새면 프라이버시 문제가 있어서 어쩔 수 없다고 한다. 좀 황당했지만 그러려니 하는 수 밖에 없다.

잠시 후 의사가 나가고 조수가 몇 가지 테스트 준비를 하는데, 틈이 나서 이야기를 나누게 되었다. 나는 보통은 일 년에 꿈 세 네 번 꾸기 힘든데 지난 주에만 세 번은 꾼 것 같다고, 약을 끊어서 그런 것이냐고 물었다. 그러자 그녀는 자신은 꿈 전공이 아니기 때문에 잘 모르겠으니 (방금 나간) 선생님께 물어보라 한다. 음, 그런가, 하면서 잠에서 깨었다.

감정을 배워 보자

지금까지는 지식이나 기술을 습득하는 데 많은 노력을 기울여 왔다. 그러나 그것을 지혜롭게 밯뤼하기 위해서는 인간의 감정을 이해하는 것이 대단히 중요함을 느낀다. 즉, 감정에 대한 이해 또한 마찬가지로 꾸준히 갈고 닦아야 하는 것임에 다름 아니다.

감정을 이해하는 것은 타인의 감정을 이해하는 것으로 이해되기 쉬우나, 유사한 방법으로 스스로가 느끼는 감정을 대하는 것도 중요하다. 자기 자신을 있는 그대로 받아들이는 일에 서투르면 결국에는 불편한 감정을 피하려고만 하게 되고, 그 여파가 대인 관계나 업무에도 영향을 주는 것 같다.

돌이켜 보면 내가 지금 무엇을 어떻게 느끼고 있고 왜 그러한지에 대해 제대로 생각해 본 적이 없었던 것 같다. 두려움과 분노로부터 그저 달아날 궁리만 해서는 달아나는 잡기술만 늘어날 뿐이다. 왜 그렇게 느끼는지 진정 고민하지 않는다면 형사 가제트의 클로우 박사와 다를 게 무어란 말인가. (비유가 좀 깨나 ㅋ)

스스로를 들여다 보는 것

스스로를 현실적으로 바라보고 평가하는 것은 대단히 어려운 일이다. 아니, 근본적으로는 불가능하다고 하는 것이 옳을 것 같다.

그뿐만 아니라, 그 속에서 드러나는 자신의 나약함과 대면하고 그것을 인정하는 것은 열린 마음을 갖겠다고 다짐한들 그 과정에서 맞딱뜨리는 기계적 반응에 가까운 두려움을 어찌할 수는 없다.

그럼에도 끊임없이 자기 자신의 내면을 들여다 보는 것은 중요한 일이라고 믿는다. 그리고 그 과정이 바로 나 자신의 일부가 될 때 두려움도 사라질 것이다.

XBMC 를 제어하는 iPad 앱을 개발해 앱스토어에 올렸는데 별 하나 레이팅만 네 개가 달렸다. 알고 보니 호스트 주소를 하드코딩하여 제대로 작동할 턱이 없었던 것이다. 문제도 해결하고 코드도 깔끔히 할 겸 개발을 하다 보니, 처음에 템플릿에서 자동 생성된 부분을 정리해야 했다. 결과적으로 예외 처리가 미흡하여 에러 메시지 출력 부분을 손봐야 했는데, 예쁘게 메시지를 출력해 주는 모듈을 이용하기로 했다.

재미있게도 이 모듈은 컴퓨터상에 존재하는 것이 아니라 아주 묵직한 만화풍의 아기 인형 로봇이었다. 옆에 있던 친구가 어차피 더 예쁜 여자 캐릭터 모듈이 있으니 무겁더라도 임시로 사용하라고 했다. 해당 모듈을 시험하기 위해 다른 방으로 이동하여 전원을 연결했다. 적당히 사용법을 알아 보면서 로봇과 대화를 하는데, 갑자기 자폭을 하겠단다. 방에는 한 여자 아이가 있었는데, 황급하여 그 여자아이 뒷쪽으로 뛰어들어 위기를 모면했다. (아이는 어떻게 되었는지 모르겠다)

친구에게로 돌아와 있는데, 자폭한 뒤에도 로봇은 계속 움직여서 무기를 들고 쫓아 왔다. 아마도 킬코드 같은 것을 이용하여 동작을 정지시킨 것 같은데 잠에서 깨어나는 바람에 기억이 잘 나지는 않는다.

문득 아주 어렸을 적의 꿈이 떠오른다. 그것은 내가 기억하는 한 최초의 꿈이면서 쉽게 잊혀지지 않는 꿈 중 하나다. 아마도 초등학교 1학년 때나 그 전 즈음인 듯 하다. 나는 달나라로 여행을 떠났고, 그 곳에서 토끼들을 만났다. 즐거운 시간을 보내고 있었는데 외계인 (로봇?) 이 나타나 레이저건으로 토끼들을 죽이기 시작했다. 토끼들은 인형이었기 때문에 피를 흘리지 않고 신기하게도 솜덩이로 변해버렸다. 계속해서 쫒기던 와중에 나는 저항군을 조직하자고 주장한다. 우리는 저항군을 조직하여 반격했지만 결국 궁지에 몰려 나마저도 레이저에 당해 버리고 만다. 레이저를 맞는 순간 나는 땀에 젖은 채로 공포에 휩싸여 깨어났다.

이 꿈들이 무엇을 의미하는가? 아직은 알 수 없지만 꿈을 거의 꾸지 않는 나에게는 앞으로 유용한 자료가 될 지도 모른다.