나비!

그동안 ami가 특별한 경쟁자없이 주도하고 있던 XIM 세계에, 드디어 경쟁자가 나타났습니다. 바로 오픈소스 소리바다 클라이언트인 [WWW]소리받아와 GTK+2용 한글 입력기인 [WWW]imhangul로 유명하신 크리스나님께서 ‘나비’라는 이름의 예쁜 입력기를 공개하신 것!

‘나비’는 GTK+2기반으로 되어있지만 표준 XIM 인터페이스를 제공하기 때문에 OpenOffice나 KDE, xterm같은 곳에서도 쓸 수 있기에, ami나 hanIM같은 기존 XIM들을 완전히 대체할 수 있을 뿐더러, imhangul에서 보아왔던 유니코드 기반 오토마타를 내장하고 있기 때문에, 옛 한글 지원 같은 진보적인 기능들을 지원할 수 있는 기반을 갖추고 있습니다.

또한, KDE와 GNOME에 도킹이 되는데, ami가 KDE3에 도킹이 제대로 안 되고 있었던 점을 감안하면 (ami는 KDE3보다 나중에 떠야지만 도킹이 됨) KDE사용자들에게도 이제 축복이~~ :) 그러나, NumLock 이 켜져있는 상태에서는 한글이 입력 안 된다거나, xterm에서 한글입력 중에 스페이스를 누르면 스페이스가 먼저 커밋되는 것 같은 사소한 몇가지 문제점이 있는데, 아직 0.1이기 때문에 개선의 여지는 충분히 많이 있겠죠~

FreeBSD 포트 [FreshPorts]korean/nabi 에 등록되어 있습니다.

파이썬 richrepr 아이디어

지난 번에 string repr과 string print를 로켈에 맞게 수정한 버젼이 pickle같은 몇 가지 곳에서 문제가 발견되어 CVS에 들어갔다가 빠졌는데, 새로운 방법을 여러 모로 생각해 봤지만, 적당한 방법이 생각이 안 나서, 결국은 type object에 tp_richrepr 이라는 메쏘드를 새로 만드는 방법을 한 번 생각해 봤습니다.

파이썬에서 오브젝트가 출력되는 방법은 두 가지인데,

  • PyFile_WriteObject에서 출력하는 오브젝트가 진짜 파일인 경우에는 PyObject_Print로 직접 FILE *fp에다가 출력. PyObject_Print는 재귀적 탐색을 해서 String의 경우에는 PyString_Print가 내부 함수인 string_print를 호출해서 최종적으로 출력하는 데, 이 때에 flags에 Py_PRINT_RAW가 세팅되는 경우에는 그냥 fwrite를 하기 때문에 한글이 제대로 나오는데, 0인 경우에는 한글이 모두 이스케이프되어 버림.

  • PyFile_WriteObject에서 출력하는 오브젝트가 StringIO같은 가짜 파일인 경우에는 PyObject_Repr로 일단 String으로 만든 뒤에 그 녀석을 인자로 해서 출력 오브젝트의 write를 호출.

여기서, 첫번째 방법으로 출력이 되는 경우에는 그다지 어렵지가 않은 것이, Py_PRINT_RICH라는 플래그를 하나 만들어 줘서, 그 녀석을 계속 끝의 flags에 달아 다니다가, PyString_Print와 PyUnicode_Print에서만 적당히 처리해서 뿌려주면 될 것 같습니다.

그런데, 이제 두번째 경우에는 repr()이 호출되어서 PyObject_Repr에 들어온 것인지, 출력하려고 PyObject_Repr에 들어온 것인지 하위 오브젝트들에게 전달해 줄 수 있는 방법이 전혀 없기 때문에, 결국은 새로 오브젝트 프로토콜 메쏘드를 하나 만들어 주는 수 밖에 없는 걸로 보입니다. 그래서, 결국 typedef PyObject *(*richreprfunc)(PyObject *v, const char *encoding); 타입으로 하나 만들어서 typeobject의 제일 끝에 추가하고 PyObject_RichRepr을 PyFile_WriteObject에서 사용하도록 하려고 생각하고 있습니다.

아직은 가능성을 위해서 이것 저것 테스트해 보고 있구요 ~.~; 우선, CJKPython 2.3final에서 표준 2.3과 호환성을 유지하기 위해서는 타입 오브젝트의 크기가 변할 수 없기 때문에, SJIS 패치에서만 그냥 원래 일본식 repr을 쓰고 표준 타입에서는 sys.displayhook만 교체하는 방법을 쓰려고 합니다.

파이썬 2.4에서는 다국어 문제가 말끔히 해결되었으면 좋겠네요. :) 혹시 좋은 아이디어 있으신 분들은 꼭 알려주세요~

파이썬 포트 2.3 업그레이드

[FreshPorts]lang/python 을 파이썬 2.3으로 업그레이드하고, [FreshPorts]lang/python22 에 파이썬 2.2를 레포카피한 뒤에 altinstall로 바꿔두었습니다. 대충 파이썬 포트들 한 20개 정도 테스트해 보니 호환성에는 별 문제가 없는 듯 하네요. ~.~

자자 모두들 portupgrade python 때리시고…. 흐흐흐 =3

[FreshPorts]lang/python-devel 포트는 2.4a0 오늘자 스냅샷을 뽑아서 올릴 생각입니다. 참 그리고, 오늘 [FreshPorts]lang/jython 이 드디어 [WWW]2.2a0이 발표되었더군용. Jython 팬들은 꼭 확인을 ~.~

《게으르게 사는 즐거움》, 《게으름뱅이여 당당하라》

[ISBN-8981101698] [ISBN-898144112X] 게으르기로 치면 서로 비교하기가 민망한 [WWW]장호언니와 1권씩 사서 돌려본 게으른 사람들을 위한 책 두 권을 읽은 소감을 한꺼번에 써 봅니다;

게으르게 사는 즐거움(이하 즐거움)은 뉴질랜드 출신으로 캐나다에 살고 있는 어니 젤린스키가 지었고, 게으름뱅이여 당당하라(이하 당당하라)는 독일에 사는 토마스 호헨제라는 분이 지었습니다. 어니 젤린스키의 저자 소개가 근사한데, “현재 그는 최대한 적게(일주일에 나흘)일을 하고 있고, 달 이름에 ‘R’이 안 들어가는 달(5,6,7,8월)은 무조건 일을 하지 않는다.” 라고 합니다. 크크 ~.~;;

‘즐거움’은 독특한 구성으로 되어있는데, 왼쪽 페이지에는 큰 글씨로 몇 줄 안 써있고, 오른쪽에는 보통 책처럼 되어있는데, 왼쪽과 오른쪽이 따로따로 놀고 별로 상관도 없는 내용이라 같이 읽으면 무지 헷갈립니다. 그래서 그냥 오른쪽 다 읽고 왼쪽을;; 두 책은 대체로 세상의 대부분 사람들이 믿고 있는, “열심히 살아야 한다”라는 것을 굳이 따를 필요가 있겠느냐하는 그런 내용으로 평소에 부지런히 살기 싫어하는 사람들에게 달콤한 변론을 해 주고 있습니다. (으하하 어찌나 좋던지~~;; ) 뭐, “오늘 할 일은 내일로 미루고, 내일 할 일은 모레로 미루고~”가 평소에 생활 신조였던터라 특별히 더 게을러질 여지는 없었다마는;;

그런데, 이제 ‘즐거움’이 읽을 가치가 있는 것은, 게으르기 위해서 추가적으로 갖춰야 할 것들에 대해서 짚어 주고 있다는 것입니다. 게으르고 창의적인 사람이 되기 위해서는, 현명하고 효율적이며 창조적이고 긍정적으로 살아야 한다고 합니다. (늘 듣던 소리지만, 앞에 “게으르기 위해서는”이 붙었으므로 유효;;) 그리고, 게으르게 살려면, 돈을 아껴써야 합니다. (역시~~) 생각해 보면, 뭔가 사려고 막 하기도 싫은 일 억지로 해서 결국 사 놓고는 별로 안 쓰던 뭐 그런게 지난 날을 되돌아 봤을 때 허다했던… 그냥 하고 싶은 일을 하기 위해서는 꼭 필요한 것인가~~ 생각을 해봐야겠다는.. (그래서 이제 애플 홈페이지도 안 가기로 했습니다~) 대사량이 적을 수록 오래 산대잖아요~ ;;

‘즐거움’의 왼쪽 페이지의 인용구 중에서 멋있었던 것 :)

성공함으로써 자기가 좋아하는 일을 더 많이 할 수 있는 경우에만 성공은 중요한 것이 될 수 있다. – 사라 콜드웰

속도를 늦추고 즐겨라. 당신이 너무 빨리 달림으로써 놓치는 것은 주변 풍경뿐만이 아니다. 당신이 어디로 왜 가고 있는지에 대한 감각마저 잃어버리게 되는 것이다. – 에디 캔터

당신이 좋아하는 것에 관심을 기울여라. 그렇지 않으면 당신이 좋아하지 않는 것을 좋아하도록 강요받을 것이다. – 조지 버나드 쇼

모든 사람이 하루 4~5시간만 일하면 세상이 어떻게 될까 염려하지 마라. 스트레스와 갈등은 줄어들고, 사람들은 더욱 건강하고 행복해지며 환경오염도 낮아져서 분명히 훨씬 살기좋은 세상이 될 것이다. – 저자

그리고 ‘당당하라’는 양쪽이 모두 보통 책처럼 편집되어 있는데, 가끔 삽화도 있는 게 아주 독특합니다. +_+ 이 책은 읽으면서 약간 의심이 되는 것이 있는데, 게으름뱅이 책을 표방하고는 있지만, 이 책에 나오는 대로만 살면 웬만큼은 부지런하고 열심히 일하는 사람 대열에 들어가지 않을까 싶더군요 -.-; 이렇게 하고서도 게으르다니! ‘당당하라’에서 게으르기 위해서 필요한 조건은 더 많은 것들을 들고 있는데, 계획을 열심히 세워라, 계속 그 생각을 해라, 필요한 주변 사람들을 찾아봐라, 자서전 써봐라.. 뭐 잡다하게 하라는 게 많습니다. -ㅁ-; 그냥 안 게으르고 말지 흑흑;; 그렇지만, “시간을 관리하려다가 시간에게 관리당한다.”나, “잘 하는 것을 효율적으로 하라”, “미뤄두기도 좋은 방법이다”같은 것들은 뭐 좀 적당히 생각해 볼 만한 내용이었던 것 같습니다. 크크 또 빠질 수 없는, 인상깊은 부분 인용 -.-;;

미국의 심리학자 개리 에머리가 그의 부인과 함께 파리를 방문했을 때의 일이다. 호텔에 도착해보니 호텔 측의 실수로 그들이 예약한 방이 이미 차 있었다. 마침 똑같은 일을 당한 여행객들이 불평을 하며 직원에게 항의하고 있었다. 어떻게 할까 잠시 고민한 에머리 부부는 모처럼의 파리 여행을 망치고 싶지 않았기에 파리에 온 것 만으로 기뻐하기로 결정했다. 그들은 근처의 다른 호텔을 찾았고 곧 방을 구할 수 있었다. 저녁 무렵에 산책을 나온 그들이 처음의 호텔 앞을 지나갈 때, 그 여행객 무리는 여전히 그곳에서 불평을 하고 있었다.

‘당당하라’는 뭔가 좀 읽으면서 불만이 좀 많은 책이었지만. 뭐 그런대로.. ;;;

두 책에서 공통점을 모아보자면, 지금이 바로 천국이며 삶을 즐기라는 것이지요.. 열심히 죽어라 하기싫은 일 억지로 하면서 돈 모아 갖고 부자로 죽어봐야 뭐하겠습니까 -ㅁ-; (뭔가 종교 얘기 같은 이 분위기는 뭐람 _-_)

마지막으로..

당신이 없었다면 이 세상에 나오지 못했을 것을 세상에 드러내라. – 로버트 브레슨

Nullsoft SuperPiMP Installation System

Winamp로 유명한 Nullsoft에서 만든 오픈소스 인스톨러 시스템인 [WWW]NSIS를 드디어 써 봤습니다. 흐흐 전에 dToyomo 통합 코덱 팩을 보고 불법 소프트웨어치고는 인스톨러가 꽤 괜찮군~ 했는데 크크.. 그게 바로 NSIS기반이었던 것입니다. +_+

NSIS는 대충 맘대로 써도 되는데, 자기가 만들었다고 주장만 안 하면 되는 [WWW]zlib 라이센스를 기반으로 하고 있는데, 사실 이 라이센스는, 지난 zlib 보안 버그 때, Microsoft의 프로그램들에서 대거 zlib과 동일한 보안 버그가 발견돼서, Microsoft가 zlib 라이센스 위반한 것이 아니냐 하는 그 유명한 라이센스지요. 에.. 말이 옆길로 ;;

NSIS는 소스 전체가 공개되어 있고, 사용자 커뮤티니가 이미 크게 갖춰진 편이라 사용자 기여에 의해서 많이 발전되고 있습니다. 아직 install log에 의한 Uninstall을 지원하지 않는 것이나 몇 가지 사소한 편의 상의 문제를 제외하고는 상용 인스톨러들을 충분히 압도하는데다, 오히려 더 쉽군요. :)

그럼, 심심해서 NSIS로 만들어 본 CJKPython 인스톨러 스크린샷을 몇 개..

0307nsis0.png

인스톨러 시작 화면 (NSIS 내장 번역)

0307nsis1.png

라이센스 화면

0307nsis2.png

인스톨 구성요소 선택 화면

0307nsis3.png

설치 중 화면

[WWW]Nullsoft가 찾아보니 오픈소스 소프트웨어를 제법 많이 만들더군요. 크크 멋집니다 만세! -ㅇ-; (Winamp 소스 공개하지 않는 이유는, 소스가 더러워서 일까요? -.-;;)

포트 9000개 돌파!

드디어 FreeBSD 포트의 개수가 9000개가 넘었다고 합니다. :)

재작년이었던가, Jordan Hubbard가 포트가 10000개 넘으면 7000~10000까지의 포트에 대한 가장 큰 공로자들 세 명에게 뭔가 선물을 준다고 했었는데, 당연히 뽑힐 Ports Fury 외의 2명은 누구일 지 기대가 되는군요. :)

The Yummiest Yogurt in the World

0307-redmango.jpg

(를 표방하는) 레드 망고에서 드디어 먹기 전에 촬영 성공! ;;; (생각보다 힘듭니다. 워낙 맛있어 보여서 보자 마자 덥썩~;; 에.. 그냥 보통 아수쿠림 같지만 요구르트 맛 아수쿠림!

아몬드가 들어가면 더 맛있습니다~ :)

더 빨리! 잡담하지 말고!

가장 이상한 점은 나무들과 그 주변의 것들이 결코 움직이지 않는 것이다.
그들이 아무리 빨리 달려도 주변의 풍경은 그대로인 것 처럼 보였다. ‘모든 것들이 우리를
따라 움직이는 걸까?’ 하고 앨리스는 어리둥절하게 생각했다. 그때 여왕은 앨리스의 그런 생각을
알아차리기나 한 듯이 이렇게 외쳤다. “더 빨리! 잡담하지 말고!”

— 루이스 캐럴, 《거울 나라의 앨리스》