Rath World » 2009 » September

Archive

Archive for September, 2009

Apache Lucene 2.9.0 릴리즈 소식

September 28th, 2009 Comments off

지난 9월 25일 Apache Lucene Java 가 2.9.0 로 릴리즈 되었습니다.

While we generally try and maintain full backwards compatibility between major versions, Lucene 2.9 has a variety of breaks that are spelled out in the ‘Changes in backwards compatibility policy’ section of CHANGES. We recommend that you recompile your application with Lucene 2.9 rather than attempting to “drop” it in. This will alert you to any issues you may have to fix if you are affected by one of the backward compatibility breaks.

릴리즈 뉴스에 따르면 많은 feature들과 성능을 위해 (CHANGES 를 보면 알 수 있듯이) 완벽한 하위호환성을 지킬 수 없었다고 합니다. 2.4.1에서 단번에 2.9.0으로 띄웠으니 그럴만도 하네요.

  • Per segment searching and caching (can lead to much faster reopen among other things)
  • Near real-time search capabilities added to IndexWriter
  • New Query types
  • Smarter, more scalable multi-term queries (wildcard, range, etc)
  • A freshly optimized Collector/Scorer API
  • Improved Unicode support and the addition of Collation contrib
  • A new Attribute based TokenStream API
  • A new QueryParser framework in contrib with a core QueryParser replacement impl included.
  • Scoring is now optional when sorting by Field, or using a custom Collector, gaining sizable performance when scores are not required.
  • New analyzers (PersianAnalyzer, ArabicAnalyzer, SmartChineseAnalyzer)
  • New fast-vector-highlighter for large documents
  • Lucene now includes high-performance handling of numeric fields. Such fields are indexed with a trie structure, enabling simple to use and much faster numeric range searching without having to externally pre-process numeric values into textual values.

CHANGES 내역을 보면 API 변경 38개, 버그 수정 26개, 새 기능 36개, 최적화 13개, 하위호환 정책 변경 7개, 런타임 동작 변경 15개 등으로 많고, 그 내용을 제가 전혀 해독할 수 없어서 옮기지 않았고요. 뉴스에 포함된 summary만 옮겨두었습니다.

Lucene 으로 서비스 운영하시던 분들은 작업해야할 것들이 많이 늘었겠네요.

고생하시길 바랍니다.

Categories: Development Tags: , ,

야매로 만든 네이버 영영/영한/한영사전

September 24th, 2009 20 comments
네이버 영어사전 in Dock

네이버 영어사전 in Dock

네이버 영영사전을 즐겨 쓰고 있는 rath 입니다.

브라우저를 띄워놓으면 자꾸 구글리더, 이슈트래커, 미투데이, 이메일 확인 등 여러가지 것들이 자꾸 제 주의력을 다른 곳으로 돌려버립니다. 그렇다고 영어 공부할 때 네이버 영어사전 없이 하기는 싫고..

해서 네이버 영어사전을 만들었습니다. 개인적인 필요에 따라 정규식을 써서 만든거라 네이버가 제공하는 공식적인 사용은 어려울텐데요, 저처럼 브라우저때문에 집중하기 힘들지만 네이버 영어사전을 쓰고 싶은 분들만 써보시기 바랍니다.

소스코드는 github에 공개되어있습니다. 코드는 Java Swing으로 작성되어있습니다.

github에는 이클립스 프로젝트가 그대로 들어가있고요, 패키징은 Mac OS X용으로만 해두었습니다. 다른 플랫폼에서 사용하실 분은 소스코드로부터 컴파일하여 사용하시길 바랍니다.

OS X으로 패키징된 파일은 제 웹서버에 올려뒀습니다.

NaverEngDic-0.2.dmg (553KB)

아파치의 httpcomponent를 써서 만들어서 프로그램 크기가 작지 않습니다.

혼자 쓰려고 만든거라 메뉴나 버튼이 거의 없고 대부분 키보드로 조작해야 하는데요, 간단히 설명드리도록 할께요.

네이버 영영사전 스크린샷

네이버 영영사전 스크린샷

  • 영영사전, 영한사전, 한영사전 전환은 검색창에서 방향키를 위아래로 눌러 선택할 수 있습니다. 창 제목에 현재 어떤 사전이 선택되어있는지 표시됩니다.
  • 결과창에서 찾고 싶은 단어를 마우스로 선택(select)한 뒤, Command-S 를 누르면 그 단어를 찾아줍니다.
  • 검색창에서 Command키를 누른 상태로 좌, 우로 움직이면 브라우저의 Back/Forward 버튼과 비슷한 기능을 경험하실 수 있습니다. 원래 찾고자 했던 단어의 설명을 보다가 한단계 깊이 들어간 경우, 이전에 검색했던 내용으로 다시 돌아와야 하는 경우가 많아서, history 큐를 넣었습니다. 큐의 크기는 50이고 요청했던 값들은 메모리에 보존합니다. 웹브라우저의 Back/Forward 기능처럼 뒤로 간 상태에서 새로운 단어 검색을 할 경우 그 앞에 있는 history 값들은 초기화됩니다.
  • 미투데이 PostStoic님의 요청으로 이미지 발음기호가 함께 표시됩니다. 단어 표본 50개 정도를 채택해 발음기호 이미지를 채집한거라, 간혹 발음기호가 표시되지 않는 경우도 있으니 이 경우 댓글로 어떤 단어의 발음기호가 제대로 표시되지 않는지 신고해주시면 갱신하도록 하겠습니다.

네이버에서 제공하는 API를 사용하지 않았고, 웹브라우저에서 표시되는 광고도 표시하지 않았으므로 언제 사용이 제한될지 모릅니다. 감안하시고 사용하시길 바랄께요. 🙂

Categories: Development Tags: ,

다시 시작된 Egoless Programming

September 23rd, 2009 6 comments

나는 프로그래밍 할 때 모든 주의력과 정신을 지금 하고 있는 프로그램에 집중하는 편이다.

내 모든 것을 걸었다는 기분에, 기능이 잘 구현되거나 버그를 잡으면 기분이 좋아지고, 문제가 생겨서 계속 digging을 하고 있으면 아드레날린이 솟구친다. 서비스를 런칭했는대 프로그램에 대한 반응이 좋으면 나도 덩달아 기분이 좋아지고, 누군가가 프로그램을 비판하면 내가 다 우울해진다.

뭐 나쁘지 않다. 하나만 빼고는. 이렇게 프로그래밍을 하다보면 내 자신을 프로그래밍 작업이 모두 빼앗겨 버린다. 일단 마음을 쏟게 된다. 그러다보니 코드에 금칠을 하기도 한다. 결국 다른 곳에 신경을 쓰지 못하게 된다. 삶의 균형이란 것이 아예 없어진다.

지금 내게 필요한 것은 취업이라기보다는 영어다. 듣기가 너무 안된다. 그래서 BBC 팟캐스트를 열심히 듣고 있다. 지금의 내게 이것보다 더 중요한 것은 없다. 그렇다고 프로그래머 정체성이 확실한 사람이 본업을 제쳐두고 영어공부만 하는 것은 옳지 않다. 왜냐하면 몇주가 지나고나면 나는 다시 프로그래밍 감각을 찾기 위해 듣기를 제쳐둬야할 것이기 때문이다.

그래서 다시 시작된 Egoless Programming.

The Ten Commandments of Egoless Programming

1. 실수가 생길 수 있음을 이해하고 받아들여라.

2. 너는 니 코드가 아니다. 너는 너지.

3. 니가 얼마나 잘하는지 신경쓰지 마라. 누군가는 항상 너보다 더 많이 알고 있다.

4. 컨설팅 없이 코드 다시 쓰지 마라. (금칠하지 말라)

5. 너보다 덜 알고 있는 사람을 존중과 친절과 인내심으로 대하라.

6. 이 세상에서 변하지 않는 것은 없다. (고집부리지 말고)

7. 진정한 권위는 지식에서 오는 것이지, 그 사람의 위치에서 오는 것이 아니다. (폼 잡지 말고)

8. 니가 믿는 것을 위해 싸워라. 패배하면 인정하시고.

9. 콜라만 사마시며 방에 쳐박혀서 코딩하지 마라. (마인드 오픈하고 협업도 좀 하시고)

10. 코드를 까라, 사람을 까지 말고. (코더에게는 친절을, 코드에게는 비평을)