새해엔 함께 뜁시다!
- 2003년 12월 31일 10시 50분
- 댓글 2 개
엊그제 엄마로부터(;;) 받은 문자
| 연도 | 1월 | 2월 | 3월 | 4월 | 5월 | 6월 | 7월 | 8월 | 9월 | 10월 | 11월 | 12월 |
| 2008 | 2 | 8 | 3 | 10 | 6 | 3 | 4 | 6 | 6 | 2 | 1 | |
| 2007 | 3 | 13 | 10 | 2 | 4 | 4 | 6 | 2 | 3 | 4 | 3 | |
| 2006 | 15 | 12 | 24 | 7 | 11 | 9 | 11 | 5 | 14 | 6 | 7 | 5 |
| 2005 | 5 | 8 | 17 | 14 | 13 | 16 | 10 | 12 | 11 | 17 | 9 | 13 |
| 2004 | 26 | 23 | 20 | 22 | 26 | 24 | 20 | 24 | 12 | 19 | 18 | 10 |
| 2003 | 4 | 27 | 38 | 32 | 35 | 36 | 29 |
http://people.freebsd.org/~perky/cjkcodecs-1.0.3c1.tar.bz2
CJKCodecs 1.0.3 RC를 공개했습니다. 일본인들에게 리뷰를 요청했는데, 결과를 받아본 뒤에 1~2일 내에 정식 릴리즈를 할 예정입니다.
수정된 사항은:
ISO-2022-JP 코덱들에서 JIS X 0208의 0x21/0x40이 원래 매핑이 되어있지 않던 것이, U+FF3C에 매핑되도록 바뀌었습니다.
ISO-2022 코덱들이 JIS X 0208:1978 시퀀스를 인식하지 못하던 문제를 고쳤습니다.
ISO-2022-JP{,-1,-3} 코덱은 이제 SI, SO를 사용하면 디코드 에러를 냅니다. (JapaneseCodecs 와의 호환성)
EUC-JP, SHIFT-JIS 코덱에서 사용자 정의 구역(PUA) 지원을 제거했습니다. 실제로 일본인들은 이 구역을 안 쓴지 오래됐다는군요.
ISO-2022 코덱들의 디코더에서 MSB가 세팅된 글자가 넘어오면 디코드 에러를 냅니다.
ISO-2022-JP 코덱들이 이제 JIS X 0208:1997 시퀀스 (ESC & @ ESC $ B)를 지원합니다. RFC에 등록된 것은 아니지만, 실제로는 쓰인다기에..
진짜 ISO-2022-JP-EXT 코덱이 들어갔습니다. (ISO-2022-JP-1 + JIS X 0201 반각 카타카나 지원)
security/freebsd-update 로 유명한 Colin Percival이 또 한번 사고를 쳤군요
NetBSD쪽에서도 뭔가 방법이 나온 듯한데, 하여간 잘 돌아가는
리눅스에서 FreeBSD를 까는 방법을 공개했습니다.
콘솔에 직접 접근할 수 없는 원격 머신에서도 깔 수 있다는 것이 장점인데, 이걸로 스스슥하다가 실패하면. (-ㅇ-;) 구체적으로 쓰인 방법은
dd 로 임시로 인스톨러를 원격에서 접근할 수 있도록 띄워주는 부팅 디스크를 하드디스크 앞쪽에 넣어서 리부팅하는 방법으로 보이는데, 저는 원격에 있는 펭귄이 없어서 depenguinate를 해보지는 못하겠네요 ;;
이제 리눅스 사용자들이 undaemonizer를 만들 차례~ 잇힝~ ;;
으흐흐. 3년동안 모르고 있었던 이 좋은 기능을;; -ㅇ- screen도 pgup이 가능하네요! (나만 모르고 있었나;;)
바로.. 그것은.. Ctrl-A [ 누르면 들어가는 카피모드에서 pgup/pgdn이 된다는 것~! 물론 ctrl-f ctrl-b도 되구요.
.. 영 쓸모 없는 줄 알고 있었던 copymode인데 스크롤이 되는군요 흐흐; 스크롤 저장 줄 수는 .screenrc에서 defscrollback 1000 을 써주면 1000줄씩 저장된답니다. 와와~~
동영상 볼 때마다 정말 절실했던 기능 "항상 맨 위에"가 드디어 XFwm에도 들어왔네요. 흑흑 그동안 동영상 보려면 구석탱이에 띄워놓고 다른 프로그램 안 겹치게 조절하느라 힘들었는데.. 이제 XFce유저들에게도 봄이 온 것입니다~ 으훗.;;
Master^Shadow라는 사람이 패치한 것인데, 바로 CVS에 적용이 된 듯 합니다. 패치를 받아서 설치해 보니 무척 잘 되는군요. ^_^
요즘 열심히 보고 있는 Walking with Dinosaurs를 "항상 맨 위에"로 띄운 것
KLDP.net주최 HHK컵 투표에서 2위를 했습니다. 꺄~~♡ peer간 투표에 가중치가 붙어서 생기는거라 아주 짜고치는 고스톱으로 --;; (여러모로 봐도 krisna님이 1위하셔야 하는뎅.. 흐흐 =3)
상품으로 Happy Hacking Keyboard를 받았습니다. ^^; 흑흑 그런데.. 정말 슬픈 일 하나는... KLDP.net 투표 상품이 발표되기 전날 제가 HHK를 충동구매 했다는.. 우에엥... 그래서 결국은 HHK가 2개가 생겨버렸습니다. -.- 충동구매한 것은 검은색이고 상품으로 받는 것은 흰색이라 그나마 색깔이 달라 다행이지만;;
충동구매한 불운의 HHK 검은색 ㅡ.ㅜ
그런데, 놀란 것은.. 아론을 쓰다가 바로 HHK로 바꿔서 그런지 생각보다 HHK Lite 키감이 너무 안 좋았다는 것인데, scari님에 따르면 M모사 부사장님은 HHK Lite의 키감을 "쫄깃쫄깃하다"라고 표현하셨다는데, 제 표현으로는 "뚝컥뚝컥하다(말을 새로 만듦;;)"라고 말하고 싶군요; 영문배열이라 그런지 처음 들어가는 힘도 전혀 32g던가 스펙보다 훨씬 무거운 것 같고, 눌린 후에 들어가는 힘도 상당히 많이 든다는 점에서.. 써본 키보드들의 키감만 갖고 평가하기는 아론 - LGK3000 - MS Natural - HHK Lite - 삼성 정도의 순서로 하고 싶군요~ 크;
그런데, 키감외 다른 측면에서는 아주 좋았습니다. 딥스위치 3,4번을 켜서 Alt와 다이아몬드를 바꾸고, BS와 Delete를 바꾼 뒤에는 별로 자리가 헷갈리지도 않았고, 왼쪽 Ctrl을 손바닥으로 누르는 것에 그동안 집착을 해 왔었는데 생각보다 HHK식으로 새끼손가락으로 누르는 것도 괜찮더군요; 다만, 리버스 솔리더스랑 딜리트의 위치가 MS나 Apple키보드와 반대라는게 좀 불편하네요. 딜리트는 위에 있는 게 더 편한 것 같은데.. USB 포트도 2개짜리 허브가 달려있어서 (내부적으로는 3개) 아주 좋았습니다.
결론은 아론에서 HHK를 만들면 정말 좋겠다는 생각이.. (와와~~)
지난
8비트가 아닌 char 사건 때 C 타입이 그동안 알아왔던 것과는 다르구나 하는 느낌이 있었는데.. 새로 다른 쓰레드에서 IPv4 어드레스같은 용도를 위해 고정된 크기의 표준 타입이 있으면 좋겠다는 제안에 답변을 받으면서 C 타입을 새로 공부해야겠다는 생각이 들었습니다. 으흐흐;;
원전의중요성에서도 누차 강조됐듯, 백날 C 책을 읽어봐야.. ANSI/ISO C 문서를 안 읽고서는 C를 안다고 말하기가 부끄러운 것인 것을 이제서야 깨닫게 되었다는.. ㅡ.ㅜ (진짜 원전이야 K&R white book이기는 하지만, 아직까지 K&R 문법만 지원하는 컴파일러는 대형 메인프레임/유닉스 서버에서나 볼 수 있는 것이니까;;)
하여간, 찾아서 본 ISO C 문서에서의 바이트 정의는 이런 것이었습니다.
byte addressable unit of data storage large enough to hold any member of the basic character set of the execution environment (실행 환경의 기본 문자 세트 전체를 담을 수 있을 만한 충분한 크기를 가진 주소 지정이 가능한 데이터 저장 공간의 크기)
NOTE 1 It is possible to express the address of each individual byte of an object uniquely. (각각의 바이트는 주소로 표현될 수 있다.)
NOTE 2 A byte is composed of a contiguous sequence of bits, the number of which is implementation defined. The least significant bit is called the low-order bit; the most significant bit is called the high-order bit. (바이트는 연속된 비트들로 조합되어있는데 그 수는 구현에 따라 정의된다. 가장 낮은 비트를 low-order bit라고 부르고 가장 높은 비트를 high-order bit라고 부른다)
즉, 그동안 수많은 입문서, 교과서, C 관련 서적, 상식서적, 수험서적에서 나왔던 "바이트는 8비트를 묶은 것을 1바이트로 부르는 단위다." 이런 것은 쌩판 거짓말이었던 것입니다. ;; 그리고, int, short, long등의 정의도 "16비트 컴퓨터에서는 16비트임" 뭐 이런 것과는 차원이 다른, 그냥 char 크기의 n배이다. 뭐 이런 정의 밖에 없다는 것을 발견할 수 있습니다. (크기는 구현하는 사람 맘대로..) 그런데, 진짜 크기를 구체적으로 지정할 수 있으면 얼마나 좋을까하는 생각에, 좀 더 찾아보니 POSIX 확장 헤더인 줄로만 알고 있었던 stdint.h와 inttypes.h가 ANSI/ISO/IEC C99에도 있는 것을 발견! (stdint.h는 7.18, inttypes.h는 7.8에) stdint.h와 inttypes.h에 있는 타입들은 extended integer types라고 부른다는데, stdint.h에는 int16_t uint32_t 이런 타입들이 정의되어있고, inttypes.h에는
fprintf 류 함수를 위한 PRI 시리즈와
fscanf 류 함수들을 위한 SCN 시리즈 매크로가 있는데, PRIdLEAST32 (fprintf의 %d에서 사용 가능한 가장 작은 32비트 타입), SCNuFAST16 (fscanf의 %u에서 사용 가능한 가장 빠른 16비트 타입) 이런식이네요..
ANSI/ISO/IEC C 문서는 ANSI 홈페이지에서 30달러에 파는데, ISO 워크그룹 홈페이지에서
마지막 드래프트를 공짜로 받을 수도 있습니다. 흐흐;;
댓글 2 개 | 트랙백 0 개 (보낼곳) | 태그 happyhacking
이힛. 드디어 기다리던 왕의 귀환을 보고야 말았습니다. 메가박스 1관 한가운데서~ 꺄~ 메가박스 좌석 배치 시스템이 인터넷 예매용으로 우선 좋은 자리를 모두 주고, 그 바깥쪽 자리를 티켓링크에 주고 그 바깥 자리를 현장 판매한다는군요.. 그래서 티켓링크나 현장에서 사서는 구석탱이에 밖에 앉지 못하는 현실입니다~. (인터넷 예매에서 남는 자리는 상영 3시간전에 현장으로 돌림)
흐흐 이번에도 3시간 넘는다길래.. 마음을 다잡고 화장실갔다가.. 으흐흐;; 역시 크리스마스가 다가와서 그런지.. 다른 때는 많아 보이던 솔로부대 동지들이 오늘따라 안 보이더군요.. 영화는 혼자 보는게 재미있는데.. (-_-;;;;;;;;;;)
아.. 역시 아라곤 멋있습니다. 꺄아 ㅡ.ㅜ 에오윈도 정말 멋있긴 했지만, 내 마음 속에는 이미 아라곤이.. (..) 나중에 꼭 여자로 태어나서 아라곤같은 남자를 공략을 ..
영화가 다 끝나고 나서 나오는데 출구에 안내 직원들이 8명정도 여기저기 서서, 같은 말을 외치는 게 참 이색적이더군요;;
"화장실은 왼쪽입니다."
py-rrdtool 프로젝트를 호스트하고 있던 사바나가 데비안과 같은 방법으로 뚫리는 바람에 서비스가 아직도 완전히 정상복구 되지 않고 있습니다. 그런데, 어떤 개발자가 py-rrdtool 프로젝트에 개발자로 참여하고 싶다고 해서 (제 개인 프로젝트 최초로 외국인 개발자가! -ㅇ-;) 그래서 그냥 소스포지로 옮기기로 했습니다.
그런데, 옮겨다닐 때 마다 리비전도 잃어버리고 CVS 로그들도 다 잃어버리는게 좀 그래서, 관리자한테 요청을 할 까 생각도 해봤는데, 처리도 엄청 느리고 귀찮을 것 같아서, 그냥 손으로 임포트를 해버렸습니다. (cvs import가 아니라 rcsfile레벨 import)
우선, 임포트를 준비하기 위해서, 사바나에서 RCS파일들을 받아와야하는데, ftp://ftp.gnu.org/savannah/ 에 고스란히 다 보관이 되어있어서 거기서 바로 받아왔습니다. 흐흣. 거기서 임포트할 py-rrdtool 모듈 레포지트리만 뽑아서 우선
shar 명령을 이용해서 쉘 아카이브를 만듭니다.
% shar `find py-rrdtool` > savannahimport
요렇게 해서 생성된 쉘 아카이브는 권한 조절이 안 되기 때문에 끝에 chmod를 적당히 넣어서, CVS에서 쓰는 퍼미션인 디렉토리 775, 파일 664 퍼미션으로 맞춰줘야합니다. 그 다음에는, savannahimport 스크립트를 CVSROOT에 넣고 임포트합니다.
CVSROOT% cvs add savannahimport CVSROOT% echo "savannahimport" >> checkoutlist CVSROOT% cvs ci
이렇게 되면 CVS서버에서 $CVSROOT/savannahimport 스크립트만 실행해주면 바로 임포트되는 상태가 되는데, 요걸 실행하기 위해서 loginfo 꽁수로 다음 줄을 CVSROOT/loginfo 끝줄에 넣습니다.
DEFAULT (cd $CVSROOT;/bin/sh $CVSROOT/CVSROOT/savannahimport)
이렇게 하면, 그냥 loginfo가 커밋되고 실행은 안 되는데, 아까 그 줄을 지우고 다시 커밋하면 짠! 하고 임포트 스크립트가 실행됩니다.
Checking in loginfo; /cvsroot/py-rrdtool/CVSROOT/loginfo,v <-- loginfo new revision: 1.3; previous revision: 1.2 done c - py-rrdtool x - py-rrdtool/ACKNOWLEDGEMENT,v x - py-rrdtool/AUTHORS,v 중략.. x - py-rrdtool/src/_rrdtoolmodule.c,v x - py-rrdtool/src/rrd_extra.h,v x - py-rrdtool/src/rrd_format.h,v cvs server: Rebuilding administrative file database
흐흐흐. 그리고, 아까 임시로 썼던 savannahimport 스크립트를 지우고 checkoutlist에서 빼주면 간단히 임포트는 완료!
그런데, 이건 커밋 스크립트에서 /bin/sh 실행이 허용된 CVS 서버들에서만 가능하기 때문에,
사바나나
OSS에서는 사용이 불가능하고, KLDP.net, 소스포지, BerliOS같이 모든 스크립트 실행이 허용된 곳에서만 사용할 수 있습니다.
댓글 0 개 | 트랙백 0 개 (보낼곳) | 태그 happyhacking
어제 iBook으로 놀다가.. 갑자기 하드가 열심히 긁히더니 화면이 꺼멓게 돼버렸습니다. 배터리가 다 됐나 싶어서 전원을 꽂아주고 막 두드렸는데도 안 돼서.. 으음 가만 보니.. 모니터가 뭔가 심상치 않았습니다. 대충 보면 이런 상황이었지만.
헉. 가만히 보면 뭔가 거의 서태지 피가모자라 수준으로 뭔가 화면에 글자가 숨어있는 것이었습니다. 불빛에 비춰봐도 거의 안 보이고.. 디카로도 거의 20장을 찍었는데도 겨우 1장 빼고는 안 보일 만한 글자 --;
젤 위에 영문 메시지를 보면 "You must reboot 어쩌고 저쩌고.."가 거의 안 보이는 글자로 써있고 --;; 그 밑에 다른 나라 말로 (안 보이게 할 거면서 뭐하러;;) 또 한참 써 있습니다. (이 사진은 색상대비를 높인 것으로 원래는 훨씬 더 안 보입니다 --;)
거의 하드웨어 문제인지 속을 뻔 했는데.. 이런 커널 패닉을 시꺼먼 화면에 안 보이는 글자로 숨겨놓다니;;; 역시 파란화면을 그대로 보여주는 윈도우는 너무 순수했던 것입니다. -ㅁ-; 으흐흑. 프비도 앞으로 패닉나면 화면을 꺼멓게 해서 안보이는 글자로 "리붓하세요"를.. --;
http://kldp.net/projects/hangul
X 한글입력기 "나비", 윈도우용 IME방식 한글 입력기 "새나루", GTK+2 한글 입력기 imhangul에서 공동으로 사용할 오토마타 엔진을 위해 "열린 한글 프로젝트"를 개설했습니다. 사실 이전에도
사바나에 프로젝트가 있었지만, 사바나는 거의 망해가는 추세로 보이고 해서.. --;;
우선은 한글 조합, 분해와 기본 오토마타 구조를 내년초 릴리즈를 목표로
박원규님과
최환진님과 같이 할 예정입니다.
한글 해커 메일링 리스트도 내부에 개설되어 있으니 한글 처리에 관심이 많으신 분들은 가입해 주세용~
댓글 7 개 | 트랙백 0 개 (보낼곳) | 태그 happyhacking
http://openlook.org/distfiles/J.ogg (64kbps OGG)
이제 돌아서려해 너를 두고 떠나가려해 나 가슴으로 붙잡은채 다가설수록 나와 멀어져만 또가는 니 눈물속에 가려진채 사라져간...... 봐라 보고만있어 다시 뒤돌아보고 있어 아려린 맘을 비추어 또 우연히라도 내게 돌아갈수 있다면 꺼지지 않는 희망이길... 우리 사랑 우리 약속 이젠 시간속에 묻어두기로 해 오직 세상에서 견딘 이--유 바로 너란걸 잊지 말아죠 너 영원히....... 너와 멀어진 삶은 내게 빛이 주는 그림자 눈부신 날의 흔적인걸 시간이 지나 다시 와주는 계절처럼 우리 언젠가 만나질까.. 우리 사랑 우리 약속 이젠 시간속에 묻어두기로 해 오직 세상에서 견딘 이--유 바로 너란걸 잊지 말아죠 너 영원토록 ..... 우리의 사랑 기억할게 그리 영원으로 내가 물어갈게 너무 보고풀 때 나와 너..... 긴 우연이라 믿고 살아줘 너만을...
언젠가 아침에 일어날 무렵 라디오에서 듣고 정말 궁금했던 노랜데, 드디어 찾았습니다.
단적비연수 OST에 실렸던 곡이네요. (... 하필이면;; )
그런데, 이곡을 찾다가 정말 깜짝 놀란게 하나 있는데 --;
MBC드라마 "상도"에서 다녕아씨와 임상옥이 통군정에서 몰래 만나기로 했는데 안 나와서 안타까움에 어쩔 줄 모르는데 다녕아씨는 자기 방에서 우는 그 장면에서 나왔던 배경음악
"상사몽"을 제이가 불렀군요;;; 으허헛 -ㅇ-; 제이 만세 ㅡ.ㅜ
엊그제
gcc 워닝을 제거하는 커밋을 하나 했는데, 여기에 unsigned char이 256보다 클지도 모르니 체크해봐야된다는 MAL의 답글이 올라왔습니다. 그래서 의아하게 생각하던 와중, Fredrik Lundh가 ANSI C 스펙을 참고해 보라고 해서 찾아봤더니.. char의 크기는 "각 기계에서 주소 지정이 가능한 최소 단위"라고 정의되어 있어서, char은 H6070에서는 9비트이고 Cray에서는 64비트, TI의 DSP칩에서는 16비트라는군요.. (....)
10년간의 char에 대한 믿음이 허물어지는 순간 흑흑 ㅡ.ㅜ char는 int8_t가 아니구나.. 아니였던 것이구나. ㅡ.ㅜ
Univac 시절부터 메인프레임을 써 왔다는 Tim Peters의
답변에 따르면 Univac은 이런 char크기 싸움에 휘말리지 않기 위해서 char을 6비트, 9비트 또는 36비트로 쓸 수 있게 했다는군요.. (웃음)
여하간, 귀도와 팀이 char를 8bit로 파이썬 전반에서 사용하는 것에 대해서 괜찮다고 답변을 줬기 때문에, 뭐 더 걱정할 일은 없겠습니다. ^^; 그리고 이번 기회로 역시 20년 이상 경력을 가진 개발자들의 깊은 지식에는 역시 감탄을...
(ANSI C의 세계는 멀고도 험난하구나~~;;)
댓글 7 개 | 트랙백 0 개 (보낼곳) | 태그 happyhacking
원래 파이썬에서 import 하면 모듈이 존재하는 곳을 맨 먼저 찾고, 표준 서치 패스를 찾게 되어있습니다. 그런데, 얼마 전 Raymond의
크리스마스 소원 목록에서 등장해서 엄청난 이슈를 일으키고 있는 명시적 상대 경로 임포트 (explicit relative import)가 이제 뭔가 대세가 되고 있군요.
중간에 문법과 구현 원리가 엄청 많이 제시되기는 했지만, 대충 지금까지의 의견 수렴은
'.'를 기본 sys.path에서 뺌 (지역 디렉토리에서의 단순 임포트 불가)
from의 패키지명 앞에 . 1개를 쓰는 경우 지역 디렉토리, 2개이상을 쓰는 경우 상위 디렉토리를 찾음.
이렇게 되어가고 있는데, 여기서도 구체적인 문법 모양 등의 사안에 대해서는 의견이 아직 분분하군요.
예를 들면 현재 같은 디렉토리에 있는 파일을 임포트할 때 import what하면 될 게, 이제 앞으로는 from . import what이 된다는.. 상위 디렉토리의 다른 패키지 모듈을 임포트 하는 경우에는 from ..subdir import what 이런식으로 일단은 될 모양이군요. (아직 결정은 안 됨)
이 이외의 의견으로는 이런 것도 있습니다. (다들 나름대로의 지지자들을 확보.
)
상위 디렉토리에 올라갈 때 .대신 __parent__를 쓰고 현재 디렉토리에서 임포트할 때에는 __here__에서 임포트
상위 디렉토리에 올라갈 때 ../../ 식으로 슬래쉬를 넣자는 의견
그냥 상대경로 임포트를 놔둔 채로 표준 경로에서 임포트할 때 from stdlib import xxx로 하자는 의견
어떻게 될 지는 며칠 더 토론이 진행되어야 될 것 같습니다.
40년대 분자생물학 붐을 일으킨 바로 그 에르빈 슈뢰딩거의 «생명이란 무엇인가»의 강연 50주년을 기념하여 93년에 나온 (번역판은 올해) «생명이란 무엇인가? 그후 50년»을 읽었습니다.
므흣. 이 책은 슈뢰딩거의 업적을 평가하고 "생명이란 무엇인가?" 주제에 대한 현재 기술과 미래의 진행에 대해서 열명의 저명한 과학자들이 논문을 한 편씩 낸 것을 묶어놓은 것인데, 참여한 사람들 이름이 어찌나 화려한지.. 으흐흐 저자들 이름만 봐도 뭔가 무서운 책이라는... +_+ 특히 스티븐 제이 굴드, 제레드 다이아몬드, 존 메이나드 스미스, 만프레드 아이겐, 로저 펜로즈 등 스타급 저자들의 탁월한 글들은 본인들의 책에서 쓴 것 못지 않게 정말 재미있습니다. 와와~
우선, 스티븐 제이굴드와 제레드 다이아몬드, 스튜어트 카우프먼 같은 앞쪽에 나오는 저자들은 대체로 슈뢰딩거의 업적에 대해서 비판적으로 평가해보는 내용을 담고 있는데, 셋이서 어찌나 똑같이 비판을 하는지.. 뭐하러 슈뢰딩거 기념 논문에 이런걸 세개나 썼는지 모르겠군요 므흐 -ㅁ-; 하여간, 비판하는 내용을 뺀 나머지 부분이라도 역시 굴드와 다이아몬드의 글은 정말 재미있습니다.
원래 좋아했던 굴드와 다이아몬드 외의 다른 저자들의 논문 중에서 인상깊었던 것은, 만프레드 아이겐의 "무엇이 미래의 생물학을 지배할것인가?"였는데, 아이겐의 일반인의 과학에 대한 시각, 과학 정책, 바이러스 이야기, 20세기 생물학에 대한 평가 같은 것들을 보면 역시 엄청난 포쓰가 느껴집니다. 뒷 부분의 로저 펜로즈와 스콧 켈소 등의 논문은 방정식이 등장하고 양자 물리학 공식이 막 왔다갔다 해서 정신이 없지만 --; 서너번 더 읽어보려구요;; 혹시나 이해 될까봐 -_-;;
고등학교 때 읽고서는 세계관이 흔들리게 됐었던 «생명이란 무엇인가»를 읽고서, 무려 6년만에 놀랜 가슴을 이 책으로 정리할 수 있었습니다.(또 오바한다 --;)
생물을 연구해 보면 현재의 물리학이 얼마나 원시적인지 잘 알 수 있다.- 알베르트 아인슈타인
어느 과후배가 게시판에 그린 크리스마스 (프리오더) 트리 ... 아이디어가 깜찍하군요.
C
/ \
H M
/ \ / \
R T A S
/ \
I S
지난 5월이었던가요.. PyCon에서 Parrot(perl6에 사용될 JIT 지원 VM)팀의 Dan Sugalski가 귀도에게 내년에 패럿기반의 파이썬과 오리지널 CPython간의 벤치마크 시합을 해서 지는 쪽이 맥주를 사고 50달러 내기를 했던 것을 기억하실겁니다.
최근 Dan Sugalski가 이 작업을 위해서 본격적으로 벤치마크할 프로그램의 조건을 구체적으로 얘기를 꺼내기 시작했는데, 대충 파이썬 코어팀과 Dan간의 협의 사항은 이렇게 정해졌네요
순수 인터프리터 자체만 테스트하는 것을 목표로 함
I/O 성능은 테스트하지 않음
정규표현식 성능은 테스트하지 않음
eval과 expr은 테스트하지 않음
펜티엄 기반의 리눅스 박스에서 테스트함
파이썬 소스가 아닌, 바이트코드를 기반으로 하며 최소한 30초 이상 작동하는 코드로
바이트코드는 12월 내에 결정
확장 모듈은 사용하지 않고 빌트인 함수는 사용함
귀도는 Parrot이 엄청난 격차로 CPython을 이긴다면, CPython을 버리고 파이썬 기반을 패럿으로 옮겨버릴 수도 있다고 합니다. (과연..
)
블루님이 무려 5년 전에
freebsd-chat에 제안하시기도 했고, 2달전, 슬래시닷에
리눅스용이 공개돼서 열풍이 몰아쳤던 NDIS 드라이버 로더 호환성 레이어가 최근 FreeBSD에서 구현되고 있습니다.
리눅스용은 상용으로 공개된 반면에, FreeBSD에서는 메인스트림에 오픈소스로 들어오고 있다는 점이 아주 좋군요
NDIS를 처음 들어보시는 분들을 위해서 약간 소개를 드리자면, NDIS는 Network Driver Interface Specification으로 Microsoft와 3Com이 공동으로 개발한 네트웍 드라이버/프로토콜 드라이버 겸용의 스태커블 구조의 API입니다. Windows 95이후 모든 버전은 NDIS를 지원하고 있어서, 네트웍 카드들과 프로토콜 드라이버들 (예를 들면 WinPcap의 packet32나 Windows XP Wireless Zero Configuration에서 사용되는 ndisuio, 리눅쓰코리아의 DynaRADIUS WCM에서 쓰는 dot1xuio 드라이버 같은 것들)이 모두 윈도우 커널 API가 아닌 NDIS만을 사용해서 구현되어 있습니다. 따라서, 대부분의 윈도우용 네트웍 드라이버들은 NDIS만 구현하면 쉽게 다른 x86기반 OS에서도 사용할 수 있는 것인데, 이제 FreeBSD에서도 윈도우용 드라이버들을 쓸 수 있게 되는 것~!
소스를 보면, 지원되는 NDIS OID (SNMP처럼 OID기반 Query/Set을 합니다.)가 OID_STATUS, OID_GEN, OID_802_3, OID_PNP, OID_802_11 계열 밖에 없어서, 우선은 오직 무선랜 카드들만을 대상으로 하고 있다는 냄새를 맡을 수 있습니다. 역시 브로드콤의 정책때문에.. 으흐;;
그런데, 이제 앞으로 NDIS 레이어가 들어가버리면, 무선랜카드 드라이버들이 구현이 안 될테니 non-x86 아키텍처가 아주 큰 문제군요.. 그리고, NDIS가 3Com과 MS가 공동으로 특허를 갖고 있다는 것도 좀 찜찜~~
여하간.. NDIS 삽질을 정말 열심히 하고 있는 Bill Paul(wpaul@)씨 화이팅~ (Bill Paul은 FreeBSD의 다른 대부분의 랜카드 드라이버도 작성한 일종의 괴물 분류입니다. -o-)
며칠 전
Miguel의 블로그에 올라온 블로그가 크게 파장을 일으키고 있네요. Jython 개발자인 Jim Hugunin이 .NET 기반의 새로운 파이썬인 Iron Python을 만들어서 Microsoft 내부 메일링 리스트에 결과를 올렸는데, 예전의 Active State의 구현이나 Parrot계열의 Pirate의 실망스러운 결과와는 완전 상반되게 70%나 CPython보다 빠르다는 결과를 얻었다고 합니다. (
원본 메일 (Miguel의 복사본))
IronPython과 CPython, Jython의 벤치마크 (숫자가 낮을 수록 빠름)
IronPython-0.1 Python-2.3 Python-2.1 Jython-2.1
pystone 0.58 1.00 1.29 1.61
function call 0.19 1.00 1.12 1.33
integer add 0.59 1.00 1.18 1.08
string.replace 0.92 1.00 1.00 1.40
range(bigint) 5.57 1.00 1.09 16.02
eval("2+2") 66.97 1.00 1.58 91.33특히나 function call, integer add쪽은 CPython에서 엄청난 오버헤드가 있는 것으로 유명했던 부분이라.. 역시나 IL asm으로 직접 번역하는 것으로 구현된 Iron Python보다 엄청나게 느린 것으로 결과가 나왔군요. 그리고 range의 경우에는 메모리 할당이 단편적으로 엄청나게 일어나기 때문에 CPython이 유리한 게 나왔고 eval("2+2")쪽은 CPython은 컴파일러가 순수 C로 구현되어있기 때문에, 흐흐..
하여간 .NET IL asm으로 직접(C# 안 거치고) 파이썬 코드를 번역하면 아무래도 CPython보다 더 빠르지 않을까 생각하던 초기 .NET 개발자들의 예상은 대충 맞았다는 것이 증명되고 있는 듯 합니다. 아직 Iron Python이 많이 구현되지 않은 반면 최적화를 수행하지 않았기 때문에, 앞으로 변동이 좀 있을 것 같기도 한데.. 하여간 무지 기대가 되네요.
(MS에 팔아먹으면 대략 낭패 --; )
한편, Iron Python이 오픈소스가 아닌 MS나 다른 회사의 상용 제품으로 들어가는 것을 대비해서 최적화를 계획해야할 텐데, CPython도 이제 슬슬 표준 환경에서의 JIT 지원에 대해서 본격적으로 진지하게 고려해 봐야 할 것 같기도 합니다. (PyPython은 아직 까마득.. 으흐...)
얼마전에 읽은 스티븐 제이 굴드 논문 중에 인용한 일화가 재미있는 것이 있어서..
분명하게 참인 것은 정의하기가 지독이 어려울지 모른다. 재즈의 정의를 묻는 열성 팬에게 답한 루이 암스트롱의 유명한 말은 이 점을 표현하는 전형적인 보기일 것이다. "신사 양반, 물어 봐야 하는 것이라면 말해 줘도 모를 것이오."-- 스티븐 제이 굴드 《한 모더니스트의 선언문》 중에서 (
[ISBN-8986270862] 생명이란 무엇인가 그후 50년에 포함)
파이썬이 왜 좋습니까? 질문을 들으면 참 설명할 것도 없고 해서 답답한데 앞으로 이런 대답을;;; (-o-;)
그래서 루이 암스트롱의 명언을 찾다가 또 멋있는 것을 하나 찾았습니다.
What we play is life, my whole life, my whole soul, my whole spirit is to blow that horn.-- 루이 암스트롱, 죽기 몇달 전에 공연 하지 말라는 의사에게 거절하며..
"Codito Ergo Sum"에 적극 동감하고 있던 터라.. 루이 암스트롱의 열정도 정말 멋있어서 따라하고 싶군요 크크;;
What we code is life, my whole life, my whole soul, my whole spirit is to code that program.
으흐흐 지난 주 토요일에 갔었는데, 어제 밤샘하느라 바뻐서 오늘에야.. +_+
소프트 엑스포에 wooil님과 jiwon님과 함께 갔습니다. 가서 등록을 했는데 글쎄.. 명함을 안 주고 손으로 써서 줬더니 글자를 못 알아 봤는지..
흐흐흐;;
들어가서는 정보통신부 대회에서 ExmanIDE로 은상을 받으신
exman님과 exman님의 깜찍한 여자친구분과 같이 만나서 다섯이서 점심을 먹으러 갔습니다. 크크 exman님은 상도 받고 병특도 끝나고 예쁜 여자친구도 있고 정말 부럽 +_+
그리고, KLDP 부스에 가서 드디어 권순선님도 처음으로 뵙고.. (알고보니 고등학교도 바로 옆 학교 나오시고.. 대학교도 같은 과 선배.. 크크;;) 책도 받고 초록색 맨투맨티도 받고 와와 역시 엑스포는 선물이 최고야~;; (사실은 사려고 미리 CD기에 들렀는데 -o-) KLDP 부스에서 krisna님 pyrasis님 양파님 외에도 닉네임만 들어오던 분들을 많이 뵈어서 아주 즐거웠습니다.
오픈소스, 엠베디드 쪽에는 공짜 부스가 많아서인지 지나치게 썰렁한 편이었기도 했는데.. 으음.. 뭐 사실 전시할 게 별로 없긴 한가;; 2회 파이썬 세미나때 CEO분이 참석하셨던 에호박이라는 회사도 이번에 참여한 것 같아서 반가웠습니다.
그리고, 이번 소프트 엑스포의 백미 선물인 바로 피망 화투! 도 받아왔는데. 역시 권순선님의 소프트 엑스포 가이드에서 들었듯이 최고네요. 이것 하나 만으로도 갔다온 보람이 뿌듯 -ㅇ-;
그런데, 게임관 도우미 들을 보니... 앞으로 전시회를 자주 다녀야겠다는 생각이 -.-;;;;; (아 눈 높아지면 고생하는데 --;;) 뭐 하여간;; 평일이라 못 들었던 오픈소스 컨퍼런스 쪽은 정말 아쉬웠고.. 앞으로도 계속 평일에 한다는 계획인 진흥원 주최의 컨퍼런스는 아주 그렇군요 -.- 왜 다 평일인거야~
http://sourceforge.net/project/memberlist.php?group_id=5470 (끝 쪽에..)
에헤헤.. 파이썬 커미터가 되었습니다. 앞으로 파이썬을 튼튼한 놈으로 키우겠습니다! (불끈!) 혹시 파이썬에 문제가 있는데 영어로 말하기 곤란하다 싶으시면 앞으로 문 앞에서 퍼키군을 찾아주세요 ~.~
멘터 Raymond Hettinger씨에게 이 자리를 빌어 많은 감사드립니다. (_ _) (한글은 모른다지만;;)
저는 앞으로 당분간은 PEP
289 구현 팀에서 일할 예정인데.. 스물스물 문화를 익히고 나서는 cjkcodecs나 iconvcodec을 불쑥 집어넣을 기회를 노려 보겠습니다. --;;
"Do not worry about your difficulties in Mathematics. I can assure you mine are still greater."-- Albert Einstein
.. 정말 큰 힘이 되었습니다. 아인슈타인선생님! ㅡ.ㅜ;;;;;
("적어도 너보다는 나아! 하고 벌떡 일어날지도;;")
포트 PR이 올라왔길래 한 번 해봤습니다. 흐흐 IPython은 예전에 나왔던
devel/py-repl 같이 파이썬 인터랙티브 인터프리터 프론트엔드인데 오토 컴플릿 같은 몇가지 유용한 기능을 추가로 지원하는 녀석입니다. py-repl이 국제화가 제대로 안 된 것에 비해 IPython은 그래도 국제화도 잘 되어있고, 다국어지원도 대비되어 있네요.
젤 독특한 것은 젠투 만큼이나 화려한 칼라인데.. -.- 프롬프트가 녹색이고 에러는 빨간색이고 아주 난리가 납니다. 흐흐 아아 그런데, 왜 정작 신택스 하이라이트는 안 되는거야!! ㅎㅎ ;; 정말 아쉽네요~
오리지널 파이썬의 것 보다 인덴트도 좀 더 똑똑하고, import c<tab>누르면
In [5]: import c callable class cmp compile continue credits chr classmethod coerce complex copyright
요렇게 임포트 할 수 있는 모듈 이름도 나오고.. 흐흐 py-repl보다 대체로는 만족스럽군요. 한글도 잘 되구요. 신택스 하이라이트만 되면 정말 좋을텐데~~ 크크
홈페이지는 http://ipython.scipy.org/ 이고, 포트에는
devel/ipython 으로 등록하려고 원 PR 저자에게 메일을 보냈습니다. 그 사람은 devel/py-ipython으로 만들었는데, 아무래도 모듈로 쓰이는 게 아니니까 그냥 py-를 안 붙이는 게 나은 것 같네요
Python 2.3.3이 2주일 내로 릴리즈될 예정이라고 합니다. (대략 크리스마스때 쯤..)
파이썬 역사상 가장 단기간에 .3까지 달아버린 이번 릴리즈에서는 이런 것들이 고쳐집니다:
weakref 객체에서 segfault나는 버그 수정 (Blog0311/WeakrefObject)
IntFutureWarning, apply 내장함수, coerce 내장함수 등 몇가지 2.4 이후 버전에 대해 유연한 업그레이드를 위한 경고 추가. (2.4부터는 apply 함수도 deprecate에 들어갑니다.)
IDLE의 몇가지 버그 수정
파이썬이 죽을 때 gc가 콜렉션을 두번 해서 특수 환경에서 제대로 종료되지 않는 현상 해결
object.contains (in 연산자)가 0/1이 아니라 True/False를 리턴하도록 수정
한글 음절을 노멀라이즈하는 도중에 죽는 문제 해결
내장 expat이 1.95.7로 업그레이드
FreeBSD와 MacOS X에서 ncurses.h 경고 안 나오도록 수정
distutils가 MSVC6에서 정상 동작하지 않는 버그 수정
이라고 합니다.
FreeBSD 포트가 방금 반이 풀렸습니다. 요즘은 Half Freeze Duration 마법 걸린 아이템을 샀는지 freeze기간이 상당히 짧아졌네요. 작년엔 2달씩 막 하더니만 --;
KDE나 GNOME같은 대형 포트들은 업데이트가 금지되지만, 간단하고 작은 포트들은 semi-frozen상태에서 업데이트가 허용 됩니다.
Guido가 몇 년째 열심히 반대하다가 얼마전에 드디어 들어간 list.sorted와 얼마전 블로그에서 얘기했던 itertools.groupby에서 아주 유용한 itemgetter와 attrgetter가 얼마전에 추가됐습니다. 원래 lambda로 처리해야하는 건데 아무래도 lambda만 들어가면 일단 거부감이 들기 때매.. 흐흐...
예를 들면 원래 [(10, "merong"), (20, "hoho"), (30, "abcd")]를 순서대로 정렬하려면
>>> x = [(10, "merong"), (20, "hoho"), (30, "abcd")] >>> x.sort(lambda x,y: cmp(x[1],y[1])) >>> x [(30, 'abcd'), (20, 'hoho'), (10, 'merong')]
이렇게 됐는데, 파이썬 2.4에서는 이렇게 처리하면 됩니다. (미리 from operator import itemgetter 한 상태)
>>> list.sorted([(10, "merong"), (20, "hoho"), (30, "abcd")], key=itemgetter(1)) [(30, 'abcd'), (20, 'hoho'), (10, 'merong')]
므흐흐.. 좋기는 한데, 뭔가 itemgetter랑 attrgetter는 너무 한군데만 특수화되었다는 느낌을 지울 수 없는데, 다시 메일링 리스트에 Michael W. Hudson이 엄청난 팁을 하나 공개했는데, 요렇게 쓴다고 합니다. (정확히는 이 코드는 Thomas Heller가 mwh의 사용법을 보고 추리해서 짠 것..)
class Adder:
def __init__(self, number):
self._number = number
def __call__(self, arg):
return arg + self._number
class X:
def __add__(self, number):
return Adder(number)
X = X()
print map(X + 1, range(2))즉, X + 1 하면 + 1하는 순간에 Adder인스턴스가 생성돼서, +1하는 객체로 둔갑을 해서 결국 웬만한 것은 lambda 없이도 쓸 수 있게 된다는.. 크크 정말 멋지네요 +_+. 그런데, 이 방법에서는 X.split('.') 같이 아래 어트리뷰트를 호출하는 건 코드가 실행되는 때가 먼저 와 버리기 때문에 제대로 동작하지 못하게 되는데, 몇가지 껍데기를 씌우면 되기는 되겠네요..
음.. 하여간 대부분의 경우에 정말 멋지게 동작해서 mwh의 이 아이디어는 아주 멋져보입니다.~
(덧붙임: 나중에 리스트에 다른 사람이 이걸 파이썬으로 구현한 소스를 올려놨네요. http://www.sil-tec.gr/~tzot/predicates.py 에서 받을 수 있습니다.)
제가 고등학교 2학년 때 나왔던가요.. 누구나 고등학교 내내 출퇴근길을 같이 했던 가수가 있는 편인데, 저는 단연 이소라였습니다.
늘 이소라 노래만.. 들으면서 아주 이소라 프로포즈도 다 듣고, 밤에 하는 이소라 라디오도 -O-;;;
원래 나온 시기가 12월이라 그런지, 전곡이 12월 분위기의 노래로만 꽉 차 있는 이소라 2집 《영화에서처럼》은 한 곡도 안 빼고 다 좋아합니다. 에헤헤. 특히 첫곡인 '쉼'은.. 뚜우웅~뚱~뚱~ 하고 곡이 시작하면 온몸이 찌릿~; 크크.. (오바 1g;) 근데, 2001년의 이소라 베스트에서 쉼이 빠진 건 정말 유감이군요.
벅스에서도 유독 '쉼'은 가처분되지 않았기에 한번 올려봅니다. -o-;
12월은 정말 뭔가 땡땡이만 쳐도 한 달이 지나갈 것같은 정말 즐거운 달인데 (--;) 모두 신나고 재미나는 12월되세요~☆
