Fixing Eclipse 'Organize Imports' Annoyance For Static Imports

Static import 문에 대한 이클립스의 ‘Organize Import’ 문제 해결하기

CTRL+SHIFT+O is probably the most pressed shortcut in Eclipse JDT. It cleans up any unused imports, expands ugly asterisks, and reorganizes the import statements in order. It was very nice until asterisks were considered ugly. Since static imports are introduced in Java 5, things have been changed dramatically. Who will ever want his or her static import statement with an asterisk to be expanded? Unfortunately, Eclipse JDT gets rid of the asterisks in static imports mercilessly.

CTRL+SHIFT+O는 아마도 이클립스 JDT에서 가장 많이 눌리는 단축키일 것입니다. 이 단축키를 누르면 더이상 쓰이지 않는 import 문은 사라지고, 보기 흉한 별표 import 문은 전개되고, import문은 순서에 맞게 재정렬됩니다. 별표 import 문이 보기 흉하다고 생각될 때까지는 참 좋았지요. Static import 문이 Java 5에 등장한 이후로 상황이 완전히 바뀌었습니다. 누가 별표 static import 문이 전개되길 상상이나 했겠어요? 안타깝게도 이클립스 JDT는 무자비하게 static import 문의 별표까지 없애버립니다.

What is fortunate though is that there’s an option that changes this default behavior.

그나마 다행스러운 것은 이 디폴트 값을 바꾸는 옵션이 있다는 겁니다.

  1. Choose ‘Window -> Preferences…’ menu.
  2. Choose ‘Java -> Code Style -> Organize Imports’ in the left pane.
  3. Set the ‘Number of static imports needed for .*’ to ‘1’ in the right pane.
  4. Click ‘OK’ button.
  1. ‘Window -> Preferences…’ 메뉴를 선택합니다.
  2. 왼쪽에서 ‘Java -> Code Style -> Organize Imports’를 선택합니다.
  3. 오른쪽에서 ‘Number of static imports needed for .*’를 ‘1’로 설정합니다.
  4. ‘OK’ 버튼을 누릅니다.

Wedding Photographing on April 8th

4월 8일 웨딩 촬영

Being a model for 5 hours was never easier than anything, but it was refreshing and exciting experience. Please click the image above to see the slide show.

5시간동안 모델이 된다는 것만큼 어려운 일도 없었지만, 신선하고 흥미진진한 경험이었습니다. 슬라이드쇼를 보려면 위 이미지를 클릭하세요.

Fixing 'undefined symbol: NS_InitEmbedding' error in Eclipse 3.2.2

이클립스 3.2.2에서 ‘undefined symbol: NS_InitEmbedding‘ 에러 고치기

I happily upgraded my Eclipse SDK to 3.2.2 as soon as it’s released, but it started to crash whenever a tooltip is displayed, printing out the following error message.

이클립스 3.2.2가 릴리즈되자 마자 기쁜 마음으로 업그레이드를 했는데, 툴팁이 표시될때마다 다음과 같은 에러 메시지를 출력하면서 죽어버리기 시작했습니다.

/home/trustin/.local/jdk/bin/java: symbol<br />lookup error: /home/trustin/.local/eclipse/<br />configuration/org.eclipse.osgi/bundles/5/1/<br />.cp/libswt-mozilla-gcc3-gtk-3236.so:<br />undefined symbol: NS_InitEmbedding

After a couple hours of Googling, I found specifying the Mozilla home fixes this problem.

한두 시간 구글링해본 결과 모질라 홈 디렉토리를 지정해 주면 문제가 해결된다는 것을 알게 되었습니다.

#/bin/sh<br /># This is my Eclipse launching script.<br /># 제 이클립스 실행 스크립트입니다.<br /><br /># Set the Mozilla home<br />export MOZILLA_FIVE_HOME=/usr/lib/mozilla<br /># and viola!<br />cd ~/.local/eclipse && ./eclipse <br />        -vmargs -Xms256m -Xmx768m <br />        -XX:MaxPermSize=256m

I won't be that kind anymore.

더이상 그렇게 친절하진 않겠어요.

I’m getting e-mail messages from people I have never known. Most people are very polite when they ask something, but some people hardly introduces himself and proceed to the main point; the questions he wants to ask such as gory details about his NIO code, which is never related with MINA. I won’t reply to such an impolite message anymore.

전혀 알지도 못하는 사람에게 메시지를 받곤 한다. 대부분의 사람들은 뭔가 부탁하거나 물어볼 때 아주 예의바르지만, 어떤 사람은 자신을 제대로 소개하지도 않은 채 본론 – 예를 들어 MINA와 전혀 관련도 없는 자신의 NIO 코드에 대한 자세한 이야기 – 을 늘어놓는다. 앞으로는 그런 무례한 메시지에 더이상 답장하지 않겠다.

The following is a good example of an annoying impolite message from someone who think me as his paid consultant. (I won’t translate it because it doesn’t deserve a drop of sweat.)

다음은 나를 돈내고 고용한 컨설턴트로 여기는 짜증나는 무례한 메시지의 좋은 예다. (땀한방울 조차도 아까워서 번역하지는 않겠다.)

안녕하세요. 분당의 ********** 입니다.

다름이 아니라 Nio 서버 관련 Datagramchannel read시 알고 있는것과 다른 현상이 발생하여 질문 드립니다.

아래와 같이 UDP Datagramchannel을 selector에 등록하고 클라이언트로부터 request시 서버가 selector로부터 read된 데이타를 읽어 service() 비지니스를 수행하는 서버를 만들었읍니다. 문제는 Client에서 20개의 request만을 쐈는데 서버에서는 20개 이상의 이벤트를 read한다는 것입니다. 가비지 서비스 호출로 인해 자원 낭비되는 현상이 발생하여 골치가 아프군요. 왜 이런 문제가 발생하는지 궁금하여 메일을 드립니다.

아래는 간단한 서버 스타팅 부분의 소스입니다.

… <The message ends right after the source code.> <소스 코드 나열 후 아무 말 없이 메일 끝남>

I don’t want to blame people in my blog, but I can’t stop it unwillingly.

블로그에서 사람을 욕하고 싶지는 않지만, 욕을 안할래야 안할 수가 없군요.

오픈 소스에 대한 진짜 경험 없이 오픈 소스를 말하기

충분한 지식과 경험이 없을때 오해를 불러일으키는 내용을 쓰기한 항상 쉬운 일이다. 여기에 그런 분이 또 계시는군요.

언어, 문화적인 제약이 있는 대부분의 한국 개발자가 외국의 유명 오픈소스 제품의 커미터가 되는 것은 아주 운이 좋거나 대단한 실력과 노력이 동시에 필요할 것이다. 하지만 그게 무슨 대단한 의미가 있을까? 이미 두터운 커뮤니티를 통한 개발이 활발이 진행되는 곳에 구지 끼어 들어갈 필요가 뭐가 있을까? 자신의 명성과 커리어를 위해서라면 모르겠지만.이일민님

이게 무슨 기가 막힌 말인지 도무지 알 길이 없다. 직접 제대로 된 오픈 소스 활동을 해 보지 않고 쓴 글임을 확신한다. 오픈 소스 활동의 본질에 대한 이해가 매우 부족한 상태에서 어떻게 이런 글을 쓸 수 있는지, 그 무책임함에 치가 떨린다.
뭐, 적어도 그 글은 오픈 소스가 훌륭한 코드 품질에 대한 것은 아니라고 잘 지적하고 있긴 하다.

Talking about Open Source without Real Open Source Experience

It’s always easy to write misleading stuff when there’s not enough knowledge and experience, and here comes another troll.

Good luck, great skill, and tremendous effort would be required to become a committer of a famous open source project for a Korean developer, due to the cultural and linguistic barriers. However, is there any great meaning there? Why does he or she have to join the community where active development is in progress already? Probably for his own fame and career.Il-min Lee

What the hell is this guy saying? I’m 100% sure that he have never done any real open source activity at all. How could he write such an article with lack of the essential understanding about open source activity? His irresponsibility makes me sick.
Well, at least, the article addresses a good point that open source is not about great code quality.

'리눅스 그냥 재미로' 다시 읽기

요즘 미칠듯한 위염으로 고생중이다. 구정이라 부모님 댁에 머물면서 빈둥거릴 수 있다는 게 정말 다행스럽다. 하지만 빈둥거린다고 불편한 속이 편해지는 건 아니다. 패닉으로 몰고가는 육체적 고통을 잊는데는 때때로 책이나 기사를 읽는 것이 도움이 된다.
오늘, ‘리눅스*그냥 재미로 – 우연한 혁명에 대한 이야기‘를 책장에서 집어들었다. 학부생이었을 때 이 책으로부터 무엇을 느꼈었는지는 기억나지 않는다. 하지만 오늘 커미터로서 이 책을 읽는 것은 내 마음속에서 쉽사리 표현하기 어려운 많은 것들을 느끼게 해 줬다.

Reading 'Just For Fun' Again

I am suffering from crazy gastritis these days. Thank God, it’s Korean lunar new year holidays here, so I can be as lazy as I can staying at my parents’ house. Being lazy doesn’t ease my uncomfortable stomache though. Reading a book or an article sometimes helps me forget my physical pain, which drives me panic.
Today, I picked up ‘Just for Fun: The Story of an Accidental Revolutionary‘ from my bookshelf. I don’t remember what I felt from this book when I was a undergraduate student, but reading this book today as a committer made me feel a lot of things that can’t be expressed easily from my heart.

September 3 – Kyungju Tour

9월 3일 – 경주 여행

Young-hee and I went to Kyungju, an ancient capital city of the Silla dynasty, last year. We didn’t enjoy all aspects of Kyungju because of our laziness, but I was so happy to see her astonished by King Munmu’s tomb, probably the only sea tomb in the world.

작년에 영희씨와 함께 경주에 갔었습니다. 게으른 탓에 많이 즐기지는 못했지만 수중 왕릉인 문무왕릉을을 보고 놀라워하는 영희씨의 모습을 보고 참 기뻤었지요.

A Samba smbpasswd problem with passwords longer than 14 characters

패스워드 길이가 14자 이상일 때 삼바 smbpasswd 문제

I recently switched to Gentoo Linux due to some random problem with dmraid in Ubuntu Linux. It was perfect at least for dmraid issues, but I realized again that it’s not really a kind Linux distribution after dealing with other various issues I’ve encountered so far.

최근에 우분투 리눅스에 있는 무작위로 발생하는 dmraid 문제 때문에 젠투 리눅스로 전환했습니다. 적어도 dmraid 문제는 완벽하게 해결되었지만 지금까지 다른 다양한 문제를 겪으면서 젠투가 그렇게 친절한 리눅스 배포판은 아니라는 걸 다시금 깨닫게 되었습니다.

The craziest one is that smbpasswd allows me to set my password longer than 14 characters while the Samba client truncates my password to 14 characters before encrypting it and sending it to the Samba server, which causes a unexpected NT_STATUS_WRONG_PASSWORD error. Strictly speaking, it’s a limitation of Lanman protocol , which is forced in ‘shared‘ security level, but why the hell should I know this detail!

가장 황당한 것은 smbpasswd로 14자 이상의 암호를 설정할 수 있는 반면 삼바 클라이언트는 제 암호를 14자로 잘라서 암호화해 삼바 서버로 전송한다는 것입니다. 덕택에 생각지도 못한 NT_STATUS_WRONG_PASSWORD 에러를 겪게 되지요. 엄격하게 말하면 ‘shared‘ security level에서 강제로 사용하도록 자동 설정되는 Lanman 프로토콜의 제약 사항이긴 하지만, 제가 도대체 이걸 왜 알아야 되는 건지 모르겠네요!

Ubuntu, I really appreciate you did the truncation for me behind the scene, and am sorry for the betrayal!

우분투여, 날 위해 뒤에서 몰래 14자로 암호를 잘라준 것 정말 고마워, 그리고 배신해서 미안해! ㅜㅜ