gcc 3.4 임포트로 인한 포트 뷁

몇주 전쯤에 커런트에 gcc 3.4가 들어오면서, gcc 마이너 버전이 올라갈 때마다 있는 행사인 포트 대량 깨짐이 일어났습니다. gcc가 점점 더 문법이 빡빡해 지는 것 같군요.. 3.0에서 3.1로 올라갈 때는 정말 엄청났던 기억이 납니다 흐흐; (2.95에서 3.0으로는 빌드 고치는 PR 만 수십개를 올려서 한달만에 포트 커미터가 된 사람이 여럿 나올 정도였긴 하지만;; )

이번에 제 포트 중에서는 [FreshPorts]graphics/py-gdchart[FreshPorts]archivers/py-lzma 가 깨졌다고 kris가 벤또를 통해서 알려왔는데, py-gdchart는 switch문 안에서 default뒤에 스테이트먼트 없이 그냥 끝내는 바람에 에러가 났던 것이고.. (이게 왜 그동안은 컴파일 됐던 것이지 흐흐;;) py-lzma의 경우에는 무지 신기한 에러라서 고치긴 했는데 왜 이렇게 하면 고쳐지는지 이해도 못 하고 있습니다. (사실은 C++을 할 줄 몰라서;;)

그게 어떤거냐면~ 소스가 대충 이렇게 되어있습니다.

정말 이상하게도 *여기1* 부분에서 Probability가 멤버임에도 불구하고 그냥 Probability라고 쓰면 undefined라고 에러가 납니다. 그래서 this->Probability로 고치는 걸로 해결했는데.. –;; 왜 그러면 또 되는지~ 흐흐.. 그리고 *여기2* 부분에서도 UpdateModel이 부모 클래스인 CBitModel의 메쏘드인데도 또 undefined라고 그래서.. 그것도 this->UpdateModel로.. 우엑~ gcc 3.4의 미스터리인지.. 원래 템플릿을 쓰면 그런건지 잘 모르겠네요 *.*

괜한 자랑 하나~;;

최대용량 파이썬 배포본으로 유명한 Fourthought의 CEO인 Uche씨가 블로그에 [WWW]Python 2.4 is coming이라는 글을 썼는데 CJKCodecs에 대해서 좋게 썼네요 ;;

그리고 두번째 문단에서 지원님이 구현하신 제너레이터 익스프레션에 대해서도 굉장히 우호적으로~ 으히히. 과연 데코레이터와 스트링 인터폴레이션에 대해서도 이렇게 말할 수 있을지는… (흐읍~ 흐읍~)

(뭔가 자랑하고 나니 뻘쭘하다.. -o-)

추석 기차표 예약~

올해 KTX의 도입때문에 철도 예약이 대폭 개편되면서, 이번 추석 승차권 예매도 완전히 바뀌었군요~ 기존에는 100% 오프라인에서 처리하고 취소표를 인터넷으로 푸는 방식이었는데, 이번부터는 60%를 인터넷에서 10,11,12일 예매하고, 40%를 오프라인에서 처리하는 방식으로 되었습니다.

10일은 장항선, 중앙선, 11일은 전라선, 12일에 경부선을 하게 됩니다. 이번에 아주 독특한 것은 일반적인 철도 예매처럼 조건 입력 -> 조회 -> 예약 -> 예약 확인 순서로 하는게 아니라 오로지 예약만 된다는 .. 그러니까 예약 당일에는 조회가 안 된다는 것이군요.. 그래서 미리 예약 가능한 열차 번호와 출발 시간을 정확히 입력을 해야 한다고 합니다. -ㅇ- 흐흐 그래서 저는 철도 목록을 미리 인쇄해서 좋은 시간을 대충 골라 두었습니다. 대충보기에는 열차가 상당히 많아서 그런대로 정상적인 방법으로도 가능할 것 같긴 한데.. 과연 쉽게 될지 모르겠네요; 이번엔 일반 예매랑 방법도 완전히 달라서 미리 스크립트를 준비할 수도 없고 해서 –; 클릭 연습이나 하는 수밖엔;;

추석에 내려가시는 분들 꼭 성공하시길; -o-

PEP-318 데코레이터 대란

평소에 하루에 5통 내외의 낮은 소통을 갖고 있는 파이썬 개발자 메일링 리스트에 요즘 하루에 100통 정도의 엄청난 난리가 나고 있습니다. 바로, [PEP]PEP318 펑션/메쏘드 데코레이터 때문인데요. 작년부터 엄청난 토론이 있었지만 별로 예쁜 문법이 안 나왔다가, 이번엔 결국 귀도와 앤써니의 합작으로 2.4a2 릴리스 이틀 전에 기습적으로 CVS에 커밋되었습니다. 보통은 커밋 되기 전에 소스포지나 개발자 메일링 리스트에서 여러 주를 토론을 하고 리뷰를 하다가 넣는데 이번엔 거의 우리나라 국회 날치기 처리하듯이.. ;;

이번에 들어간 문법은 @method 이렇게 펑션 윗줄에 연달아 쓰는 것인데, 이 외에는 리스트를 앞이나 뒤에 달아쓰는 것, | 연산자 활용하기, ^연산자 활용하기, AS 활용하기 등등 별의 별 나올 수 있는 문법은 다 나왔지만 결국은 몇명은 좋아하고 몇명은 다 싫어하는 문법들이란 것이 나오고 말았습니다. 메일이 수백개가 오간 뒤 어느정도 @method 데코레이터 문법이 어느정도 지지자들을 모으고 있는데, 이 문법은 새로운 기호를 사용해서 기존 파이썬 기반 확장 문법을 사용하던 ipython이나 Leo 등등에서 심각한 문제를 만들고 하위호환성 보장이 전혀 안 된다는 문제가 있지만 생각보다 쓰다보면 그다지 안 예쁘지는 않다는 장점이 있군요; 저도 처음엔 펄 같아보여서 아주 싫었는데 그런대로 쓰다보니 괜찮네요 흐흐; -ㅇ-;

이번 데코레이터 날치기 통과를 계기로 파이썬이 싫어졌다고 공공연히 밝히는 유명한 개발자들이 굉장히 많기는 하지만.. 아무래도 print >> fp 문법처럼 결국은 모두 다 싫어하면서도 쓰는 문법이 되지 않을까 생각해 봅니다 –;

[팁] 파이썬 소스 추적, 쉽게 하자!

파이썬은 소스가 수도 코드라서 아무래도 버그 추적할 때 문서보다는 소스를 찾아댕기는 일이 많습니다. 그런데, /usr/local/lib/python2.3/site-packages/twisted .. 뭐이렇게 길다랗게 나가는 디렉토리를 매번 일일이 치고 들어가는 건 참 고통스러운 일인데.. 그래서, pydoc처럼 간단히 vi를 열 수 있는 녀석을 만들어 봤습니다.

vipy {모듈이름} 하면 바로 해당 소스를 vi로 띄워줍니다. :)

FreeBSD 개발자들의 분포

최근 FreeBSD에 프랑스인 개발자들이 엄청나게 불어나면서, 한 사람 한 사람 들어올 때 마다 다른 프랑스인 개발자들이 세계 정복이 다가오고 있다면서 아주 프랑스어판을 한번씩 만들어 버립니다. 흐흐; 그런데, 프랑스인이 많긴 많은데, 진짜로 많은가 이번엔 Ruslan이 직접 [WWW]calendar.freebsd를 기반으로 통계를 냈군요.. 물론 여기에 등록 안 한 개발자들도 있기 때문에 약간 모자라는 값이긴 하지만.

출생 국가별

미국

55

일본

19

소련(연방국가 전체 합계)

18

독일

17

영국

12

프랑스, 오스트레일리아

7

캐나다

6

중화민국(대만)

5

덴마크

5

아일랜드

4

네덜란드, 남아프리카공화국, 이탈리아, 오스트리아

3

에스파냐, 그리스, 브라질, 벨기에, 대한민국

2

짐바브웨, 스웨덴, 중국, 노르웨이, 핀란드, 동아프리카, 불가리아

1

FreeBSD 개발자가 지금 350명쯤 되니까 대충 1/3정도만 계산된 수치이군요..

Ruslan은 그 외에 출생월, 출생년 별로도 통계를 냈는데 이렇게 나왔습니다.

5월

22

7월

21

3월

21

2월

20

8월

17

1월

16

6월

14

4월

14

9월

12

12월

10

10월

10

11월

9

9,10,11,12월이 다른 달에 비해 현저히 낮게 나온 걸 보면 뭔가 가을~겨울 사이에 태어난 사람들은 FreeBSD 개발자가 되기에 뭔가 어려운 것이 있나봅니다;;

그리고, 생년 별로는

(상위 10년만 뽑은 것)

1976년생

16

1978년생

14

1972년생

14

1974년생

13

1981년생

12

1980년생

12

1977년생

11

1970년생

8

1979년생

7

1983년생

6

평균 연령은 30.65살이고 가장 나이가 많은 사람은 Greg Lehey가 1948년 9월생, 가장 어린 사람은 Hiten M. Pandya가 1986년 9월생입니다. :)

한글 PuTTY 0.55.h1 릴리스

다운로드 6000의 인기 소프트웨어 :) [WWW]한글 푸티 0.55.h1이 릴리스 됐습니다. 메인스트림 PuTTY의 예전 버전에서 발견된 보안 버그로 인해 조급해 하시는 분들이 많아서 좀 일찍 작업을 했습니다. 이번 업데이트는 그래도 비교적 벤더 임포트 이후에 머지하는데 컨플릭트가 하나밖에 안 나서 간단한 것이었지만 그래도 awkn`n님께서 많이 도와주셔서.. 이히히

이번 한글푸티 릴리스부터는 ssh.c의 한글 번역을 모두 제거했습니다. 여기 ssh.c에서는 터미널에 직접 출력을 하게 되는데 푸티는 자체적으로 다국어 지원이나 실시간 인코딩 번역같은 프레임웍을 전혀 갖추고 있지 않기 때문에 한글 번역을 해 봐야, 터미널 인코딩이 CP949가 아니면 제대로 안 돼서 어쩔 수 없었습니다. 0.55의 주요 기능을 보니 아랍어 지원과 오른쪽에서 왼쪽으로 쓰는 언어 지원 (bidi)가 추가되고 있는게 다국어를 제외한 다른 다국어 지원은 정말 대단하네요… 다음 한글 패치버전부터는 꼭 멀티 플랫폼도 꼭 지원하도록.. (..)

PuTTY 심각한 보안 버그 발견

멀티 플랫폼 SSH 클라이언트인 PuTTY에서 심각한 보안 버그가 발견되어, 0.55가 릴리스되었습니다. 우리나라에도 물론 많은 사용자들이 이미 PuTTY를 (주로 윈도우에서) 사용하고 있었기 때문에 영향을 미칠지도 모르겠네요. 흐흐. 이번 버그의 주요 내용은 호스트 키 교환이 일어나기 전에 서버측의 고의적인 시도가 있는 경우 PuTTY 클라이언트가 띄워져 있는 컴퓨터에서 임의의 해로운 코드를 실행해서 클라이언트 측을 공격할 수 있다고 합니다.

아무래도 믿을 수 있는 서버들만 접속하는 상황에서는 뭐 그다지 중요하지는 않겠지마는.. 으흐흐 혹시나 아무데나 접속할 일이 있는 분이 있다면 고치시는 게 좋겠네요. ‘ㅇ’; 한글푸티는 제가 요즘 파이썬 2.4a2 작업하느라 좀 바뻐서 금방은 패치를 못 내놓을 것 같고 주말에는 돼야 겠네요~ 으흐흐; 우선 급하시면 오리지날 판을 쓰세요~ ;;

컨설팅의 비밀 (The Secrets of Consulting)

[ISBN-8991268005] 전에 인사이트 출판사에서 메일온 것에 하나 답변을 줬던 적이 있는데, 나중에 좋은 책이 출간됐다고 하나 보내줬는데 바로 이 《컨설팅의 비밀》을 받았습니다. 아무래도, Programming Pearls 같은 책을 주로 번역 출판하던 회사라서 뭔가 싸구려 책은 아니겠지 했는데, 컴퓨터 관련 책도 아니라니 참 기대가 됐습니다.

회사에 택배를 우선 선불로 보내줘서 아주 좋은 인상을;; 그런데 아아 역시 이거 상당하군요. 페이퍼백이 14900원이라니 -ㅇ-; 그래 뭔가 읽을 게 있으니 그렇게 했겠지 하고;; 으음 그런데 뭔가 뒷면의 추천에 오우 김창준님이 추천하는 말 끝을 쓰셨군요. 뭔가 기대가 되면서.. :) 그런데 받고 한 3분쯤 있다가 갑자기 친구 [WWW]승범이에게서 msnm메시지가 왔는데 앗 갑자기 웬 방금 받은 책의 표지가 있는 [WWW]페이지의 URL을 알려주는 것이 아닙니까! 아앗 내가 이 책 받은 걸 어떻게 알았지! 했는데 아이 이런 흐흐 승범이가 이 책의 일러스트를! 아 그림이 어디선가 본 그림체 같다 했더니~ 아 이제 책에 호감이 굉장히 생기면서 괜히 뿌듯하면서;;

그런데 그 이후로 책을 다 읽는데는 시간이 꽤 걸렸습니다; 우선 전에 읽던 《베트남 10000일의 전쟁》과 《전쟁의 역사》를 덜 읽어서 출퇴근할 때만 읽다보니 아무래도 시간이.. 내용은 주로 컨설턴트의 고객 다루는 방법, 자기 발전하는 방법에 대해서 쓰고 있는데, 유명한 책이라서 그런지 역시 법칙이 상당히 많아서 뒤에 부록으로 법칙 목록이 정리되어있기도 합니다.; 각각의 법칙이 실제 저자의 경험에서 나온 것이라 그런지 설명이 상당히 수긍이 가도록 되어 있어서 아아 그래 맞아 맞아~ 하며 맞장구를 치며 읽게 됩니다. 수긍이 갔던 부분 몇군데를 발췌해 보자면,,

돈이 필요하면, 일자리를 구하지 말라.

왜? 이상한가? 만약 돈이 절실하면 이 일자리 하나로 돈 문제를 해결하려고 몸값을 너무 높게 책정할 것이기 때문이다. 아니면 가격을 바탕으로 자신을 팔려서 가격을 너무 낮게 책정하던가. 이러한 경우 둘 다 컨설팅에서 몸값을 도구로 사용할 유용한 기회를 놓쳐 버린다. — 254 페이지, 금전에 대한 니드와 다섯 번째 법칙

뭔가를 잃는 최선의 방법은 그것을 지키려고 애쓰는 것이다. — 201 페이지, 로머의 원칙

그 외에도 꼭 컨설턴트가 아니라도 누군가에게 뭔가 조언을 할 일이 생길만한 경우, 외부의 컨설턴트에게 대처하는 경우 등에서 이 책을 안 읽었더라면 여러번 시행착오를 거쳤을 만한 일들이 많이 적혀 있어서 “페이퍼백이 14900원”임에도 불구하고 아주 가치 있는 책으로 느껴집니다. :)

파이썬 2.4a2 릴리스 계획

파이썬 릴리스 엔지니어인 앤써니 백스터씨에 따르면 이번 주 목요일에 파이썬 2.4a2를 릴리스할 예정이라고 합니다. 2.4 브랜치의 첫 릴리스이자 MSI 인스톨러가 실제 사용이 가능할 지 알아보는 첫 알파 릴리스였던 2.4a1에 이어 이번 2.4a2에서는 2.4의 가장 큰 싸움터였던 [PEP]318 메쏘드 데코레이터의 시험 무대가 됩니다.

메쏘드 데코레이터는 필요성에 대해서는 대체로 최소한 +0 정도는 주고 있었지만, 공감을 얻어내는 깔끔한 문법이 하나도 나오지 않은 상태에서 반발을 사는 안만 수십개가 난립하고 있었는데, 우선 2.4a2에서 귀도의 결정으로 앤써니가 자바 스타일 문법을 그대로 사용한 것을 우선 트렁크에 넣었습니다. 이렇게 됩니다.

지금까지 함수 끝에다가 test = staticmethod(test)했던 다른 언어에서 건너온 사람들이 거부감을 느낄 듯 한 문법상의 문제점을 해결을 해서 뭐 그럭저럭 괜찮은 것 같기는 하지만서도.. @라는 여태까지 파이썬에서 사용되지 않았던 기호를 하나 더 사용하게 된 것은 조금 거부감이 듭니다. 뒤에 as붙이는 거나 []안에다 마구 써대는 것 보다는 그래도 훨씬 나은 것 같네요;;

그리고, 2.4a2에서는 CJKCodecs 1.1이 머지돼서 HKSCS와 JIS X 0213:2004지원이 원활해졌습니다. 또한, 인터랙티브 셸에서 sys.stdin.encoding을 존중하지 않던 문제가 해결되어, 이제 u”한글” 이런 식으로 인터랙티브 셸에서도 쓸 수 있게 되었고, 일본 사람들이 shift-jis 로캘에서 몇몇 글자를 입력하면 이스케이프때문에 에러가 나는 문제가 해결됩니다.

그 외에 국제화와 관련이 없는 주요 문제들로는

  • 그동안 임포트 중에 실패한 모듈들이 모듈 캐시에 남아서, 그 다음에 또 임포트하면 마치 에러가 안 난 것처럼 배시시 거리고 있는 현상이 이제 고쳐졌습니다.

  • None이 컴파일러에서 상수형으로 처리되어 더이상 None = 1 같은 처리가 불가능해졌습니다. (..)

  • SSL 소켓을 넌블러킹 소켓으로 사용할 수 있게 되었습니다.

  • threading 모듈의 쓰레드 오브젝트에 local이라는 속성이 추가돼서 TLS(Thread-Local Storage) 사용이 가능해 졌습니다.

  • Optik이 1.5로 업그레이드 되었습니다.