CJKCodecs 1.1 진행상황

파이썬 2.4a1 릴리스에 반영될 버전인 CJKCodecs 1.1 작업을 띄엄띄엄 생각나면 하고 있습니다. 흐흐. (이제 마비노기도 가입했으니 언제 끝날지는 –;; )

CJKCodecs 1.1에서는 당초 JIS X 0213:2004 지원만 넣으려던 계획에서 좀 확장을 해서, CNS 11643 1번 평면부터 7번 평면까지를 모두 넣어서 EUC-TW와 ISO-2022-CN을 지원하고, 홍콩자치구의 BIG5HKSCS를 지원할 예정입니다. 지금 CNS11643, HKSCS 매핑과 EUC-TW, BIG5HKSCS 인코딩 구현은 모두 끝났고, ISO-2022-CN와 JIS X 0213:2004는 아직 구현이 안 됐습니다. CNS11643 매핑은 소스 파일이 총 920KB이고 바이너리로 340KB인데.. 이건 CJKCodecs의 대만을 제외한 다른 한,중,일 3개국 매핑을 모두 합친 것보다 많은 것이라, 이제 앞으로 대만 사람들을 보면 눈을 한번쯤 흘겨줄 겁니다. HKSCS는 BIG5에 그냥 덧씌운 캐릭터셋인데, 일부 C6~C8까지는 BIG5와 겹치기도 합니다. 요건 매핑 소스가 140KB, 바이너리가 80KB정도 나와서 홍콩에는 계속 좋은 감정을 가질 수 있게 되었습니다. ;; (앞으로 혹시나 홍콩할매귀신을 만나서 “왜 CJKCodecs에서 HKSCS지원 안 해주는 거야 으흐흐흐~~ 잡아먹을테다~~”하는 상황을 피하게 돼서 다행입니다;;)

이번에 정리 작업을 하면서 전에 올렸던 글에서 처럼 바이너리를 정리했는데, 그 뿐만 아니라, 아예 코덱 파일을 모두 나라별로 1개씩으로 합쳐버렸고, ISO-2022도 각 나라별 모듈에서 따로 떼내어서, 기존에 500라인짜리 매크로 파일로 떡칠이 되어있던 소스를 간편한 함수 포인터 기반 소스로 바꾸었습니다. 아주 상쾌합니다. 이히히 :) 결과적으로 파일 개수가 1.0.3에 비해 1/3로 줄었습니다.

그러나, HKSCS와 CNS11643 매핑의 등장으로 타볼 용량은 상당히 늘었는데, tar.bz2가 예전엔 400KB정도였는데 이제는 780KB입니다. 아무래도 이렇게 갑자기 불면 미국애들 눈치를 많이 봐야하기때매.. 파이썬에 넣을 때는 CNS11643매핑은 빼고 넣으려고 생각하고 있습니다. 구글에서 검색해봐도 파이썬에서 euc-tw 안 된다고 투덜대는 사람이 없는 걸로 봐서는 필요도 없는데 괜히 수백KB 덧붙이면서 싸울 필요는 없을 것 같아서 ^^;;

PgAdmin3

요즘 회사에서 하는 일에서 갑자기 PostgreSQL을 쓰게 돼서 pgsql 관련 문서를 읽고 있습니다. 흐흐. 생각보다 기능도 괜찮고.. MySQL을 쓰면서 이딴거 왜 버클리 DB나 ZODB같은 것 안 쓰고 왜 굳이 SQL로 어렵고 복잡하게 쓰나 생각했는데, 역시 PostgreSQL 매뉴얼을 보고 나니 RDBMS의 R이 중요한거구나 생각이 들면서 이제 RDBMS를 무시하지 않기로 했습니다. 으흐흐;;

SQL은 MySQL에서도 거의 쿼리 문법을 몰라서 phpMyAdmin같은 툴을 썼었는데, pgsql용으로는 좋은게 뭐가 있나~ 찾아 보다보니, [FreshPorts]databases/phppgadmin[FreshPorts]databases/pgadmin3 가 눈에 띄었는데, phpPgAdmin은 phpMyAdmin과는 좀 다른 투박한 인터페이스에 좀 불편하기는 했지만 우선 기능은 잘 된다는 것에 만족했습니다. 그런데, pgadmin3는 뭔가 엄청나게 무거운 wxGTK2를 달고 들어가는 것이 뭔가 멋있어보여서.. (..) 한번 시도를 해 봤습니다.

0406-pgadmin3.jpg

전체 화면

으흐.. 역시 멋있기는 하지만.. 그러나 저 화면이 나오기 까지.. 프로그램을 실행시키고 나서 하드가 드르르륵한 시간이 10분…. 10초가 아닙니다;; 그래도 512MB라고 나름대로 램이 충분하다고 자부심을 가지고 있었건만.. pgadmin3는 뜨자마자 바로 570MB정도를 할당하는데다.. RSS도 기본으로 400MB는… 스왑을 1GB잡았는데 40%까지 벅차오르는 이 감동스런 top 화면이란.. 흐흐;; 잽싸게 vmware, gdesklets, gdick 등등 메모리 많이 먹는 것은 모두 다 내려 봤지만.. 그래도 스왑이 200MB가 들어있어서 이거 완전히 마우스만 움직이면 하드 드르르르륵하는 상황이..

성능 외에 인터페이스 자체는 그런대로.. 만족스러운 것 같긴 했지만, 아무래도 메모리 문제 때문에 충격을 받은 게 심각해서인지, phpPgAdmin보다 훨씬 불편했습니다. (안 쓸 이유를 찾기 위해 짜냄..;; )

내일은 pgaccess를 한번 해 봐야겠네요 으흐흐 :)

FreeBSD 포트 작은 세미나

오는 7월 1일 (목요일) 오후 8시에 신촌에 있는 토즈 아트레온점에서 [WWW]FreeBSD 포트 작은 세미나를 합니다. 흐흐 요즘 파이썬 마을에서도 자주 하고 맛 들렸군요~ :)

이번 작은 세미나에서는

  • 포트 만들기 (유형에 따라)

  • 포트 업데이트하기

  • 포트 고치기

  • PR보내기

  • 포트 동네 관습

에 대해서 해 보려고 합니다. 뒷풀이에서는 KLDP Codefest때 Ports/pkgsrc 세션을 할지에 대해서 얘기도 하고.. BSD 관련 오프모임은 정말 오랜만이니까 재미있지 않을까 합니다. BSD 포럼에 꼭 신청하시고 오세요~ :)

SPF (Sender Policy Framework)

얼마 전에 FreeBSD.org에서 SPF 정보를 도메인에 등록하면서, 이제 몇몇 호스트에서 SPF 정책에 맞지 않는 메일을 거부하기 시작했습니다.

[WWW]SPF는 기존에 From헤더를 그대로 믿어버리는 메일의 특성상, 요즘 특히 많이 발생하고 있는 보낸 사람 조작해서 스팸 보내기를 막기 위한 여러 정책을 설정하는 것인데, 그 중에 가장 독특한 것은 도메인의 TXT 에 기록된 정보를 토대로 진짜 From헤더에 적힌 주소에서 맞게 왔는지 확인하는 것이군요. 즉, SPF 없이는 메일에 보낸 사람을 xxx@yyy.org 라고 썼다면, yyy.org에서 진짜 보냈는지 여부에 상관 없이 xxx@yyy.org라고 보냈다고 사용자에게 최종적인 배달을 해 주지만, 이제 SPF를 받는 측의 SMTP 서버나 MDA에서 처리를 해 주면, 진짜로 거기서 보냈는지 확인을 한 다음에 통과시켜주기 때문에, 아무데서나 내 메일 주소로 보낸 척 하는 것을 막을 수 있는 효과를 얻게 됩니다.

지금 freebsd.org는 spf1헤더로 ipv4 주소를 제한하고 있는데, SPF를 지원하는 SMTP 서버로 받는 경우에, 216.136.204.119를 거치지 않은 메일의 헤더에 @FreeBSD.org 에서 보냈다고 돼 있으면 잘못된 메일이라고 튕겨내는 것입니다.

흐흐.. 뭐 엄청나게 교묘해지는 스팸/웜 들로 인해 이제 메일 서버들도 별 짓을 다 해야하게 되는군요.. 오늘은 웬 관악경찰서에서 보냈다는 메일을 받았는데, 한참을 자세히 보니까 메일 헤더에 User-Agent도 없고 SMTP 서버도 전혀 안 거치고 직접 전송을 한데다, 보낸 주소도 하나로 ADSL인 걸로 봐서 스팸으로 …. (이제 스패머들이 경찰 사칭까지..)

흐흐 근데 이제 저도 gmail 사용자라서~~ 스팸 걱정은 안 할랍니다 -ㅇ-;;

A4용지로 2CD 재킷 만들기

[WWW]BSD포럼에서 [WWW]cjh님이 올리신 팁을 보고 저도 A4용지로 2CD 재킷을 만들어 봤습니다. :)

집에서 만들어 본 CD 자켓 :)

0406-2cd.jpg

공씨디는 늘 케이크 벌크로 사다보니, 항상 재킷이 모자랐는데, 뭐 신경써서 줘야 하는 경우에야 주얼 케이스 전에 사다 놓은 것에 주지만;; 보통은

  • 휴지로 싸서 준다.

  • 대충 아무 종이로 약봉투처럼 접는다.

  • 책 사이에 끼워서 갖고 가서 대충 CD 만 준다.

  • 등등 그다지 서로 안 좋은(?) 방법을 사용해 왔었지요.. 실~로 시작하는 책을 보면 선물은 포장을 제대로 안 할 바에야 그냥 안 주는게 낫다는 말도 있고 한데.. 흐흐 뭐 자켓이 없으니~~ 그런데 역시 인간이라면 응용을 해야하는 것이었군요. [WWW]종이 접기로 간단하게 A4 용지로 2CD 자켓을 만들어버리다니 .. 감동입니다.~ 훌쩍

    그래 친구들아 앞으로는 자켓을 만들어서 주마.. :)

    시간나면 자켓을 접은 뒤에 본을 떠서 미리 원하는 글자를 제 위치에 프린트할 수 있는 틀을 만들어 봐야겠군요.

    플래닛 파이썬

    예전에 파이썬 블로그 모음집? 뭐 비슷한 길쭉한 이름으로 제공되던 서비스가 드디어, 유행에 맞춰서 [WWW]플래닛 파이썬으로 도메인을 샀군요. :) 엄청나게 많은 피드들이 들어가 있는데, “플래닛 파이썬 한국”도 얼른 만들어서 sanxiyn님이 혼자만 좋은 것 알고 있지 못하도록 해야겠습니다. ^^^;;;

    (나도 영어 공부해서 영어로 블로그 써 볼까;;;;;; )

    슈렉 2!

    0406-shrek2.jpg

    으흐흐. 요즘 집이 가까우니 메가박스 가는 데 맛들려서.. 4주 연속.. ^^^;; 오늘은 《슈렉2》를 봤습니다. TV에서 광고도 엄청나게 나왔지만, 아 역시 전편에 비해 손색 없는 아주 즐거운 영화로군요~ :)

    《슈렉2》에서 엄청난 인기를 얻고 있는 “장화신은 고양이 (Puss in Boots)”는 뭔가 소문으로 들었을 때와는 사뭇 다른 이미지였는데, 으흐흐 귀여운 척할 때는 온 극장 안의 여자들이 다들 거의 애견센터 쇼윈도 앞에서 소리 지르듯 그런데, 아 정말 나도 고양이나 한 마리 (?) ;; 장화신은 고양이의 대사 중에서는 “I hate Mondays.”가 젤 기억에 남는군요.;;

    퍼키의 개인적인《슈렉2》에서 받은 좋은 인상은 아무래도 “꽃미남”들이 다들 머리가 크고 네모나다는.. 아 나도 머리 큰 건 제법 하는데 ^ㅂ^;;

    KLDP CodeFest

    지난 주 토요일에 있었던 [WWW]KLDPConf는 아주 재미있었습니다. (사실 강의는 거의 끝날 무렵 가서 못 들었지만 ^^^;;) 특히 Wine개발자인 Mark는 한국어도 잘 하고 성격도 참 즐거운 분이라 같이 얘기하기 아주 유쾌했습니다.

    KLDPConf 뒷풀이에서 예전에 KLDP BBS에서 논의되었던 Hackathon에 대해 얘기를 나누었는데, 공식 명칭은 권순선님의 제안으로 만장일치(;;;)로 [WWW]KLDP CodeFest로 결정되었습니다. Hackathon은 아무래도 발음하기도 힘들고 Codefest 뭔가 화려해 보이는 기분도 있고 해서 아주 좋네요~ (만족 만족~)

    우선은 예상 참가자를 40명정도로 해서 4~5명 단위로 8~10개 정도의 그룹으로 묶어서 활동하기로 했습니다. 원래 Hackathon들은 자유 주제에 그룹이 따로 미리 묶이지는 않지만, 아무래도 KLDP에서 하는 경우에는 전부 같은 프로젝트에서 일하던 사람도 아니고, 관심사가 매우 다르기 때문에, 현장에서 자유롭게 그룹이 왔다갔다 하는 건 시간 상으로나 여러모로 위험할 것 같은 것 같네요. 우선은 그룹이 제가 맡은 “파이썬 버그 잡이” 그룹과, [WWW]류창우님의 “데비안 인스톨러” 그룹, 방준영님의 “NetBSD 번역” 그룹 정도가 확정 되었고, 나머지는 추후에 계속 공모될 예정입니다.

    “파이썬 버그 잡이” 그룹에서는 몇 주 전쯤에 [WWW]FreeNode에서 열렸던 Python Bug Day의 한국식 오프라인 버전으로 다시 해 보려고 하는데, [WWW]파이썬 버그 트래커에 올라온 것 중 10개 정도를 미리 정해서, 현장에서 버그 분석, 패치, 리뷰, 커밋 까지 모두 해결해버리려고 합니다. 커밋 메시지에 KDLP Codefest에서 했다고 적으면.. :)

    사실은 그 외에 FreeBSD 포트도 사실 리뷰를 옆에서 해 주는 사람이 있으면 간단한 것은 1시간에 2개 정도씩은 배우면서도 만들 수 있기 때문에, 그동안 포트됐으면 좋겠다 싶은 소프트웨어를 마음에 품고 있던 분들은 해도 괜찮을 것 같긴 한데.. FreeBSD 포트에 관심있는 분들이 워낙 적은 국내 현실 상 어렵지 않을까 하긴 하는군요. 흐~~;;

    아무튼, 7월 17일-18일 정말 기대가 됩니다. 잘 되면 2, 3회 계속 하면 지역화한 hackathon으로 뭔가 slashdot에도 오를 수 있지 않을까 생각을 한 번 해 봅니다. –;;

    오래된 파이썬 포트 삭제

    3달 전쯤에 미리 알려졌던 대로 [FreshPorts]lang/python15[FreshPorts]lang/python20 을 포트에서 삭제했습니다. 혹시나 깔고 쓰시던 분들은 업데이트하시면 포트에서 없어졌다고 지울 것이냐 물어볼 것 같습니다. :)

    그동안 포트에 없으면서도 [FreshPorts]Mk/bsd.python.mk 에서 지원되고 있었던 python 1.6 포트에 대한 것도 덩달아 삭제했기 때문에, 이제 포트에서는 2.1 이상만 사용이 가능합니다~

    CJKCodecs 1.1 발표 계획

    파이썬 2.4의 첫 알파 릴리스가 곧 임박했기에, 그 후에는 크게 변화가 있는 작업을 하기가 힘들어서, 우선 급한 JIS X 0213:2004 지원과 CNS 11643 (euc-tw, iso-2022-cn) 지원을 넣고, 좀 하는 김에, 용량도 줄이고 모듈 개수도 팍팍 줄이기 위해서, 기존에 파이썬 코덱 1개당, C 코덱 1개씩으로 나뉘어 있던 구조에서, 팍 줄여서 각 국가별 1 코덱 모듈로 모두 합쳐버리는 방식으로 하려고 하고 있습니다.

    원래는 한국어의 경우에 euc-kr과 cp949를 분리하고, 일본어의 경우에는 JIS X 0208, JIS X 0212로 해결되는 묶음 하나, JIS X 0213을 쓰는 묶음 하나 이렇게 또 분리를 할 계획이었는데, 엊그제의 python-dev에서의 토론에서 Marc-Andre가 아무래도 그냥 합치는게 근래의 OS에서는 훨씬 낫겠다 해서, 그냥 합치기로 했습니다. 그래서 결국은 CJKCodecs 관련 모듈로 2.4에 최종적으로 들어가는 C 모듈은 현재 24개에서 _codecs_{cn,jp,kr,tw}와 _multibytecodec 이렇게 5개로 줄어들게 되었습니다. :)

    우선, 모듈 간에 합치는 것은 ISO-2022-JP 계열 인코딩을 제외하고는 작업이 완료되었고, ISO-2022-JP 계열 인코딩 간에, 같은 모듈로 들어가는 경우 난감한 게 좀 있어서, 그것과 JIS X 0213:2004, CNS 11643 지원을 주말에 넣어서 다음 주 초에 CJKCodecs 1.1 베타1을 릴리스하려고 하고 있습니다. 파이썬에 머지하는 것은 아무래도 테스트를 좀 하자면 월말은 되어야 될 것 같군요~