“여기서 어느 길로 가야 하는지 가르쳐 주겠니” 앨리스가 체셔 고양이에게 물었다.
“그건 네가 어디로 가고 싶은가에 달려 있지.” 고양이가 말했다.
“난 어디든 상관이 없는데.” 앨리스가 말했다.
“그렇다면 어디로 가든 상관이 없지.” 고양이가 말했다.
Month: July 2003
CJKCodecs 1.0 릴리즈!
와! 드디어 첫 번째 일반 공개 버전인 CJKCodecs 1.0을 릴리즈했습니다. 음훗훗~
지난 1.0b1에 비해서 변한 부분은:
-
UTF-16 코덱이 삭제되었습니다. (속도도 표준 코덱에 비해서 딸리고, 별로 따로 있을 만한 이유가 없어서..)
-
UTF-7 코덱이 UCS4 파이썬에서 Surrogate Pair를 제대로 못 디코드하는 문제를 고쳤습니다.
그 전의 0.9에 비해서 변한 부분은:
-
새로 인코딩들이 추가됐습니다: SHIFT-JISX0213, EUC-JISX0213, ISO-2022-JP-2, ISO-2022-JP-3, UTF-7
-
Microsoft 코드 페이지들의 Windows 호환성 부분을 수정하였습니다.
-
StreamWriter가 미완성 문자떼(byte sequence)를 버퍼할 수 있게 되었습니다.
-
몇 가지 자잘한 버그가 수정되었습니다.
총.균.쇠
전에 버스에서 옆에 누가 보길래 흘끔흘끔 보다가 뭔가 너무 재미있어 보여서, 다음에 꼭 사야지 하고 까먹고 있었던 「총,균,쇠」를 드디어 봤습니다. 에헤헤. 어찌나 재미있는지 하루 종일 아무 것도 못하고 책만 봤지요. (사실은 빨래 돌려놓고 딱히 할 일이 없기도 했지만;;)
우선, 가격에 비해서 상당한 두께(690쪽) 때문에, 들고 다니면서 보기엔 꽤 버거운 편입니다. (가장 중요한 것-.-) 그리고, 표지가 제법 안 예쁜 편이라, 별로 소장가치는 없는 듯 -.-; (게다가 퓰리처상 받았다고 여기 저기 써 있어서….)
이 책에서는 유럽인들이 어찌해서, 지난 수 세기동안 다른 민족들을 지배하고 몰살할 수 있었으며, 그렇게 발전(서구적인 관점에서는) 할 수 있었던 이유는 무엇인가에 대해서 집중적으로 다루고 있습니다. 이 책의 대부분에서 인류 문명의 발전에서 주요 요소로 작용한, 청동기, 철기, 농업, 문자, 언어, 가축, 무기 등이 폴리네시아, 남/북아메리카, 동아시아 등의 각 문명에서 시기적으로 차이가 있었던 사례와 그 이유를 설명합니다. 결국은 문명의 발전을 이루는 대부분은 환경적 요소에 의해서 크게 좌우된다는 것을 얘기하는데, Sid Meyer의 문명이란 게임에서는 돈만 있으면 업그레이드가 잘 되는데, 실상은 좀 다르더군요 허허~
개인적으로 가장 인상깊었던 것은 아무래도, 중국이 서구에 비해 발전이 쳐지게 되는 계기를 비교적 명쾌하게 설명했다는 것입니다. (물론 에필로그에 써 있으니~;;) 중국은 지형이 너무 단조로워서 국가가 전체적으로 통합되어 있는 경우가 워낙 많다보니, 전제 군주의 영향으로 유럽에 비해 실험적인 사건들이 많이 일어나기 힘든 너무 안정된 사회를 이루었다는 것이 주요 이유인 듯 합니다.
그동안 KOEI의 삼국지 시리즈를 하면서 늘 통일하려고 안간힘을 써서 게임했던 생각을 하면 아찔하군요~~ 하하 -o-;;
웃어요!
Photograph by updong
문서를 인쇄할 때 왠지 스테플러로 한 번만 찍으면, 너무 무표정해 보여요~~ 그래서 문서를 찍을 땐 항상 반대쪽으로 해서 웃는 문서를
프로그래머를 위한 빌드 오더
Make it work, make it correct, make it fast, make it cheap
– Alan Kay
Make it run, make it right, make it fast, make it small
– Kent Beck
(개인적으로는 small이 cheap보다 마음에 드는 군요 v.v)
CJKCodecs 1.0b1 공개!
그동안 심혈을 기울여 (–;;;) 제작하고 있던 CJKCodecs 1.0의 첫번째 베타 버젼을 공개했습니다.
http://mail.python.org/pipermail/i18n-sig/2003-July/001607.html
바뀐 점은 일본어 코덱 쪽의 버그를 대폭 고쳤고, 새로 JIS X 0213 계열의 인코딩들을 추가했습니다. 그리고, CJKCodecs에서 가장 구현이 어려웠던 코덱인 UTF-7코덱을 비롯한 UTF-16 코덱도 추가되었습니다.
눈에 띄는 버그가 있는지 한 1~2주일 눈치를 좀 보다가, 1.0으로 정식 릴리즈를 하려고 생각하고 있습니다.
새 안경 히히히
얼마 전에 눈이 세개로 보이는 사건으로 급히 안경을 했습니다. 오옹.. 이번엔.. 마음을 다잡고 열심히 살아보자는 (-__-) 뜻으로 범생이틱한 안경으로.. ^_^~
Q
안경을 바꾼 소감은?
A
예. 세상이 아름답습니다.
Q
안경을 바꾸고 나서 적응이 안 되거나 그러지는 않았습니까?
A
사실은 안경을 쓰고 나오자 마자, 한 번 넘어졌습니다. (명동..에서.. –;;) 그리고 나서 책을 보는 데, B5책들이 다 없어지고 다 교과서 크기 책으로 줄어든 것에다가, 박카스가 요구르트 만하게 보이는 것입니다.! 헛! 그리고 집에 오니 원래 17인치였던 모니터가 15인치가 돼서;; — 그래서 요즘 적응하려고 노력 중입니다.
Q
라식이나 라섹을 할 생각은 없습니까?
A
에.. 머지않아 인공안구가 나올 것 같은 예감이 들어서.. ;;; (사실은 돈이 없다 -ㅁ-;)
20세기 유전학의 역사를 바꾼 초파리
보통은 과학교양책을 사볼 때 유명한 저자나 이미 다른 사람들이 충분히 많이 추천한 책을 사게 되는데, 이 책은 들어본 적 없이 그냥 충동적으로 샀는데도 무척 재미있게 본 책입니다.
표지부터 파리의 누드 그림이 아주 자세히 그려있는 아주 도발적인;; 느낌이 있지요 -.-a;; 이 책은 1900년대 초반 생물의 유전 특성 연구에, 아주 특별한 기여를 한 실험 소재인 “초파리”를 사용한 도브잔스키나 모건 같은 여러 과학자들의 얘기와 초파리 실험에서 있었던 여러 재미있는 일화들을 소개하고 있습니다.
이 책에서 재미있었던 부분을 인용해 봅니다.
초파리의 기억은행에서 가장 중요한 냄새 중 하나는 알코올이다. 알코올은 과일이 썩거나 발효할 때 부산물로 생성된다. 알코올은 휘발성이 아주 강한 유기화합물이기 때문에, 익은 과일 한 조각에서도 알코올 증기가 스며나온다. 이 알코올 증기가 풍겨오는 곳을 냄새로 알아내는 능력이 있으면, 초파리는 알을 낳거나 먹이를 구하는 장소를 쉽게 찾을 수 있다.
… (중략) …
알코올에 취했을 때 나타나는 효과를 살펴보면, 우리 인간에게 나타나는 일부 기괴한 행동은 초파리와 비슷하다. 초파리에서는 세 단계로 나타나는데, 우리에게 낯익은 행동이다. 처음에는 행복감에 넘쳐 소란스러워지는 단계로, 초파리는 침착성을 잃고 과잉 행동을 보인다. 이것은 초파리가 금기사항(만약 그런 것이 있다면)을 넘어서기 시작하는 때이다. 그 다음에는 몸을 제대로 가누지 못하는 단계로, 초파리는 똑바로 걷는데 어려움을 겪는다. 날 수는 있어도 마음먹은 대로 날 수가 없다. 마지막으로 의식을 잃는 상태가 오는데, 이 경우 초파리는 의식이 돌아왔을 때 시궁창에 쳐박혀 있거나 포식자의 뱃속에 들어 있기 십상이다.
다른 초파리들보다 유난히 알코올에 약한 돌연변이도 발견되었는데, 그 돌연변이 이름이 cheapdate(경제적인 데이트)라는 이름이 붙었답니다. (에헤헤.. ;;)
그 외에 초파리의 여러 설명 중에 독특했던 것은, 단연 암컷과 수컷의 유전적 경쟁이었습니다. 암컷은 수컷에 비해 난자의 생산에 매우 많은 자원이 필요하게 되므로, 수컷은 ‘난교’가 최고의 유전적 방법이지만, 암컷에게는 제한된 자원을 건강하고 좋은 상대를 신중하게 골라서 짝짓기를 하는 것이 유전적으로 현명한 전략이기 때문에 암수는 이를 위한 특별한 경쟁을 하게 된다고 합니다.
그래서 수컷 곤충들은 다른 수컷들의 정자의 침입을 막기 위해서 짝짓기 전에 다른 수컷의 정자를 퍼내기 위한 국자모양의 성기를 갖고 있는가 하면, 짝짓기 후에 암컷의 생식기를 막아버려서 자기 자식을 키우는 데에만 투자를 하도록 강요한다고 합니다. 더 웃긴 녀석으로 코실로코리스 마클리페니스 라는 녀석은 암컷의 몸 아무데나 찔러서 혈관에 정자를 집어넣어 그 정자가 암컷의 몸속에서 돌아다니다가 수정되기도 하고, 다른 수컷의 몸에 찔러 넣어 그 수컷의 고환을 공격해서 자기 정자를 생산하도록 만들어버리기도 한다고 합니다. -ㅁ-;;;
한편, 우리의 초파리는 이런 도구를 갖추고 있다기 보다는, 정액이 신경조작을 함으로써 생식을 도모하게 되는데, 수컷 초파리의 정액을 주사받은 암컷들은 성적 충동이 억제되고 산란이 촉진되게 함으로써 자기 정자가 태어날 확률을 높인다고 합니다. (–;;;) 그 부작용으로 수컷의 정액이 암컷의 생명을 엄청 단축시키게 된다는 것이 발견되었는데, 거세한 수컷 초파리와 사는 암컷 초파리가 난잡한 생활을 하는 암컷 초파리보다 50%정도 더 오래 살 수 있다고 합니다. (-ㅁ-;)
이에 반해서 이제 암컷들도 유전적 도구를 갖추기 시작했는데.. 에.. 요건 블로그가 이미 길어지고 미리 영화 다 보여주는 영화 프로같은 분위기가 나기 시작해서 –;; 직접 읽어보시라는 ;;; 도망 =3
「20세기 유전학의 역사를 바꾼 초파리」 마틴 브룩스 지음
[팁] 파이썬 스크립트 실행 후에 인터프리터 띄우기
잘 안 알려진 (에.. 적어도 제 주위엔;;) 유용한 파이썬 디버깅 팁을 하나 소개합니다~
보통 파이썬 스크립트 테스트할 때 스크립트를 실행해서 익셉션이 발생하면 트레이스백을 보고 대충 상황을 추측하거나 예외난 부분 근처에 print를 잔뜩 써서 해결하게 됩니당. (디버거로 들어가기 힘든 부분에 들어갈 때..)
근뎅, 파이썬의 -i 옵션을 쓰면 요 문제를 바로 깔끔하게 해결할 수 있습니.. 으흐흐흐. 꺄아~* 다음 스크립트는 dict.get을 쓸 때 자주 발생하는 타입 에러 중 하나인뎅 봅시당~
1 2 3 |
<pre> 1 2 3 |
1 2 3 |
#!/usr/bin/env python d = {'hello': 5} print d.get('hello') + d.get('kitty') |
하면 당연히 d에 ‘kitty’가 없기 때문에 int+None해서 타입에러가 납니다. 근데, 요게 무지 긴 프로그램에 들어 가고 막 코드가 흩어져 있으면 깨나 애를 먹일 수 있는데, 파이썬에 -i옵션을 주면 다음과 같이 익셉션이 나자마자 바로 인터프리터가 떠서 상황을 볼 수가 있게 됩니당.
1 2 3 4 5 6 7 8 9 |
puppet(perky):~% python -i kitty.py Traceback (most recent call last): File "kitty.py", line 3, in ? print d.get('hello') + d.get('kitty') TypeError: unsupported operand types for +: 'int' and 'NoneType' >>> print d.get('kitty') None >>> print d {'hello': 5} |
으훗~ 물론 뭐 인터프리터니까 함수 몇 개 실행해 볼 수도.. 파이썬 2.3b2부터는 PYTHONINSPECT 환경변수를 아무꺼나로 지정해 주면, -i 옵션을 안 쓰고도 인터프리터를 띄울 수 있습니다.