연도 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

2004년 03월

브랜치 확률로 최적화하기

얼마전에 파이썬을 이리저리 컴파일하고 놀다가, 얻은 팁을 하나 씁니다. :)

일반적으로 뻔히 나오는 NULL 포인터 체크나, 범위 검사 같은 조건절 같은 경우에 한쪽으로 가는 확률은 극도로 적습니다. 따라서, 이런 경우에는 분기가 많이 되는 쪽이 더 빨리 실행되도록 최적화를 하는 편이 좋은데, C 언어에서 뭔가 이런 걸 정해주는 문법적인 도구가 없기때매 컴파일러가 제 멋대로 판단을 하죠. 그런데, 언제 생겼는지 (아마 꽤 됐겠지만;;) gcc에도 브랜치 통계를 기반으로 한 최적화가 있더군요. 아주 간단합니다. -fprofile-arcs를 주고 컴파일을 한번 해서 실행하고, 그 옵션을 빼고 -fbranch-probabilities 를 주고 다시 컴파일하면 됩니다. 먼저 한번 실행하는 건 통계 자료를 모으기 위한건데 .da 확장자를 가진 파일들이 우두두둑 생성됩니다.

파이썬을 컴파일할 때에는 OPT="-fprofile-arcs -O3" ./configure 해서 한번 컴파일하고 pystone을 한번 실행한 다음에, OPT="-fbranch-probabilities -O3" ./configure 해서 또 컴파일하면 대충 모듈 빼고는 그냥 다 됩니다. 므흐흐 그래서, 이렇게 컴파일한 결과! pystone이 17210에서 21057로 올라갔습니다. 공짜로 22% 향상! 꺄아. 히히

아무래도 OpenSSL이나 아파치 같은 것들도 브랜치 확률 정보를 줘서 컴파일을 하면 좀 더 빨라질 것 같은 예감이 듭니다.. 근데 이건 아무래도 컴파일도 두번 해야 하고, .da 다루기가 까다로워서 바이너리 패키지 같은 데 쓰기는 좀 어렵지 않을까 하는 생각이 드는군요. ^_^

댓글 0 개 | 트랙백 0 개 (보낼곳) | 태그 happyhacking


UTF-8 로캘 베이스로!

NetBSD에는 진작에 오래 전에 들어간 [FreshPorts]misc/utf8locale 가 드디어 베이스에 들어갔습니다. 캭캭. 그동안 포트에서 2년간 설움의 세월을 보냈던 보람이.. ㅠ.ㅠ -CURRENT에 들어갔기 때문에 5.3부터 적용이 될 예정입니다. 원래는 6에 적용될 예정이었는데 그래도 다행이네요~ 이제 포트를 설치하지 않아도 UTF-8 로캘을 쓸 수 있습니다. :) utf8locale포트를 위해서 버전도 범프돼서 [WWW]502110을 받았습니다. :)

댓글 5 개 | 트랙백 0 개 (보낼곳) | 태그 freebsd


Prothon

작년 Miguel의 MS메일링에서의 Jim Hugunin의 메일 인용 공개를 시작으로 PyCon까지 엄청난 파장을 일으키고 있는 IronPython, 올해 OSCON에서 100달러 내기를 겨루게 되는 Parrot Pie-Thon, 혼자 만들었다고는 믿기지가 않는 8bit CPU를 위한 pymite 등등 정말 재미있는 파이썬 구현들이 많아지고 있습니다. +_+

그러는 와중 이제는, esoteric 계열 언어까지 하나 등장했습니다. 사실 완전히 escoteric 계열은 아니고 그쪽에서 놀던 사람들이 -.-;; 이름은 Prothon, Prototype Python을 줄여쓴 것이라는군요. 특징은 그동안 파이썬을 조금만 쓴 사람이면 다 불평하는, 완전한 쓰레드 지원 (fine-grained locking, object locking)이 들어갔고, lua 5에서도 도입하고 요즘 한창 인기인 스택리스 시스템으로 구현되었으며, 가비지 콜렉션이 CPython처럼 부가적인 마크-앤-스윕 이 아니라 바닥부터 마크-앤-스윕 으로 쓰레드마다 돌아갈 수 있도록 되어있다고 합니다. 사실 pymite에서도 그랬고, 파이썬을 새로 만들겠다 하는 사람들이 다 쓰는 특성이 아닐까 합니다. 크흐;

또한, Prototype Python 이름에서 풍기듯, Prototype-based Language를 표방하고 있다는 점에서 클래스 기반인 Python과는 좀 다르다고 하기는 하는데, prototype-based랑 class-based의 차이가 뭔지 아직 잘 모르겠습니다. -ㅇ-; (전에 들었는데 까먹었다 ㅠ.ㅠ) 그리고, 인덴트 제한이라던지, int형이 이터러블하고, /* */ 주석이 추가되고 등등 엄청나게 많은 문법 수정이 가해졌는데, 이건 참신한 시도이긴 하군요. ;) 실험적인 독자 문법이 시장에 나와서 실제 사용자들의 반응을 볼 수 있는 좋은 기회인 듯 합니다.

그리고 독특한 특징 하나는 포터빌러티 레이어를 위해서 아파치의 APR을 썼다는 것입니다. 기존에 공개된 오픈소스 포터빌러티 레이어라면 glib이나 모질라의 nspr같은 것도 있긴 하겠는데 아무래도 라이선스 문제상 apr이 좋긴 하겠지요.. 그런데 apr은 영 거시기 한 것이 약간 거부감이 들기는 합니다. ;;

아직 프리알파 상태라서 지원 모듈이 극소수만 있다고 하는군요. 있다가 퇴근하고 해봐야겠습니다. :)

댓글 3 개 | 트랙백 0 개 (보낼곳) | 태그 python


파이썬, 이슈에서 벗어나 대세로

전의 블로그에서 언급한 기사가 OSS에 등록이 됐습니다. 흐흐 출판된지 1달도 안 됐는데, 막 올려도 되나 모르겠네요. 뭐 원고료도 없는 것이니 딱히 저작권 주장은 안 하겠지만서도 --;

http://developer.oss.or.kr/developissue/view.html?num=18&page=1

요즘 뜨는 언어들은 언급을 안 하고, 옛날 언어들만 언급함으로써 독자의 시야를 약간 가려서 설득시키려고 시도했습니다. (...)

아 근데 뭐 생각해보면 사실 파이썬이 젤 좋지 않아요? =3 =33 (ㅠ.ㅠ)

댓글 2 개 | 트랙백 0 개 (보낼곳) | 태그 python


영어로 된 책을 읽을 때의 애로사항

그동안 영어 책이라고는 컴퓨터 관련된 책만 읽다보니 한국어 책에서도 늘 보던 그 단어들이 주루룩 있어서 어려운 줄을 모르고 살아왔으나.. 한 해에 영어로된 책을 포함하여 80권을 읽으신다는 [WWW]Jania님의 말씀을 듣고 아 나도 이제 열심히 공부해야겠구나 하는 충격을 받아서 으흐흐.. 얼마 전에 이것저것 충동구매를 했었더랬습니다.

처음 읽기를 시도한 것은 Richard Dawkins의 The Blind Watchmaker [ISBN-0393315703] 이었습니다. 헉 그런데 이 책은 페이퍼백에 글자가 빼곡한데다 문장이 걸핏하면 5~6줄씩 넘어가고 아 역시 한국어로 읽어도 어렵더니 장난이 아니구나 하는 것을 느끼고 4일동안 30페이지 읽고서는 나중으로~ ;;

그 다음 시도는 퍼키가 열렬한 팬인 Matt Ridley의 Nature via Nurture [ISBN-0060006781]! 역시 글자도 크고 표지도 예쁘고 하길래;; 이야 역시 좀 더 대중적인 책 답게, 문장도 대체로 짧고 줄간격도 넓고 읽기도 쉬웠습니다. 문장 자체는 거의 컴퓨터 책 못지 않게 쉬워서 그냥 쓱쓱 읽을 수가 있었는데.. 흐흑 결정적인... "모르는 단어가 너무 많다!" tenticle, polygamy, paucity, copula 등등.. 역시 고등학교 때 공부를 열심히 안 한 것이 들통나는 것인가!;;

그래서.. "하하하 그래그래 그런 뜻이겠지.. ^^;;"하고 넘어가는 단어가 1페이지에 10개 정도 -O-; 이래서야;;

그래서 생각해 본 해결책은

  • 그냥 몰라도 계속 읽는다. 나중에 사전 찾아본다.

  • 전자사전을 사서 들고 다니며 읽는다.

  • 단어공부를 더 하고 다시 읽는다.

일단은.. 전자사전 찾으면 뭔가 공부를 하는 느낌이 들어서 지루해질 것 같아서 제외.. 단어공부도.. 공부하는 것을 아주 죽기보다 싫어하므로 제외.. 하고 -ㅇ-; 그냥 읽기로 했습니다.. 흐.. 과연 얼마나 더 읽을 수 있을지!

5차원 영어학습법의 원동연박사께서 한 말을 생각하며 더 읽어봐야겠습니다. 크흣~

""" 전 세계의 쓸모 있는 지식 중에 한국어를 통해 얻을 수 있는 것이 30%라면, 영어로 얻을 수 있는 것은 60%정도는 된다고 볼 수 있다. 따라서, 영어도 할 수 있다는 것은 곧 더 큰 시야를 확보할 수 있다는 뜻이고, 더 큰 물에서 놀 수 있다는 뜻이다."""

댓글 7 개 | 트랙백 0 개 (보낼곳) | 태그 life


500일 남았다!

이히히 제가 병역 특례를 시작한 것이 2002년 9월 19일, 끝나는 날은 단축의 효과로 2005년 8월 1일. 드디어 500일 남았습니다! 캬아아~

그동안 500일 남을 때까지 600여일동안 돌보아 주신 여러분께 감사드립니다. -ㅇ-; 앞으로 더욱 훌륭한 병역특례가.. (..)

으흐흐. 그런데 학교를 안 다닌지 너무 오래돼서 그런지, 복학해서 숙제하고 시험볼 생각하니 깜깜해요. ㅠ.ㅠ 흑흑~

댓글 7 개 | 트랙백 0 개 (보낼곳) | 태그 openlook


-fPIC와 -fpic

으흐흐. 그동안 같은 플래그인 줄 알고 있었던 -fPIC와 -fpic가 서로 다른 것이었군요. 최근 한 cvs-all 메일에서 David O'Brien씨가 역시 옛날 툴체인 메인테이너답게 이런 구석진 것을 알려주는 군요. 흐흐 [WWW]문제의 메일

대략 요약하면, -fpic는 global offset table (GOT)을 통해 심볼들을 액세스하는데 기계에 따라서 정해진 한계가 있어서 이게 경우에 따라서는 실패할 수도 있다는군요. 그렇지만, 성공하면 -fPIC에 비해 더 적은 속도 저하를 얻을 수 있고, -fPIC는 크기에 상관이 없는 대신 엄청난 속도 저하가~~~ 흐흐 그런데 i386에서는 -fPIC나 -fpic나 똑같아서;;

댓글 0 개 | 트랙백 0 개 (보낼곳) | 태그 freebsd


레이먼드 리스트

올해 초부터 쭉 파이썬 기본 객체들의 최적화 작업을 해오면서 거의 전체적으로 20%정도의 성능을 끌어올리는 전공을 세운 레이먼드 헤팅거씨가 다른 사람들이 시도해 볼 만한 재미있는 해킹꺼리들을 자세히 쓴 [WWW]Raymond's List를 공개했습니다. (그는 제 멘터이기도 합니다. ^_^;; -- 괜히 우쭐 한번 ㅠ.ㅠ)

최근에 서지원님이 많은 해킹을 하고 계시는 컴파일러/VM쪽 외에도 기본 타입/라이브러리 쪽으로도 전체적인 상황을 몰라도 해 볼만한 것들이 많이 있네요. 열정이 넘치는 분들은 다 같이 해 봅시당~ :)

댓글 0 개 | 트랙백 0 개 (보낼곳) | 태그 python


To Me, C is dead.

To Me, C is dead. Except for the JIT!

[WWW]mono 프로젝트의 카리스마 넘치는 이 시대의 리더 Miguel de Icaza씨의 선언! ==> [WWW]O'Reilly 글

그래요. 제가 생각하기에도 사실은 C는 엔드유저/데스크탑/웹/비즈니스 로직 등 숫적으로 대부분을 차지하는 프로그래밍 분야를 이미 잃어버렸다고 사실 생각합니다. 컴퓨터는 갈 수록 빨라지고, 남는게 CPU 파워인데 궁상맞게 C로 열심히 구현해봐야 좀 있으면 고객이 뭐 바꿔달라고 하면 T_T 울면서 싹 갈아엎고.. (잘 짜면야 된다지만.. 잘 짤 시간을 줘야~~ 흐흐..) 아무래도 이제 C는 C#, 파이썬 같은 언어들의 기본 툴킷을 개발하기 위한 언어, JIT를 개발하기 위한 언어, 커널을 개발하기 위한 언어, 아주 일부분의 중요한 부분을 가속하기 위한 언어.. 정도로 일상에서 물러나는 날이 곧 오겠지요. 으흐흑~ 그나마 파이썬을 배워서 얼마나 다행인지~ -ㅇ-;

그나저나, mono에게 얽힐 수 있는 최악의 상황인 .NET MS API부분의 특허 문제는 정말 어떻게 될 지 궁금하군요... 그냥 갈데까지 해보자는 Ximian과 절대 안 된다하는 RedHat의 대결~~ 과연 MS가 .NET API의 특허에 대해 유료화를 선언할 지, 과연 선언한다면 언제쯤 그럴지는.. 으음.. 점쟁이한테 물어봐야..

댓글 0 개 | 트랙백 0 개 (보낼곳) | 태그 thoughts


PowerPC Compiler Writer's Guide

[ISBN-0964965402] (비매품이라 아마존에 없음)

Larry Wall 할아버지가 한 명언으로 이런 것이 있습니다.

"""A real programmer can write assembly in any languages."""

므흐므흐. 코드 생산성과 유지보수성, 가독성 등이 퍼포먼스보다는 훨씬 중요한 세상이 온 것은 사실이지만, 여전히 퍼포먼스는 소프트웨어의 가장 중요한 요소 중의 하나입니다. 같은 기계에서 같은 일을 하는데 더 느리게 돌아서 좋을 것은 크게 없으니까요.. 여전히 전체 프로그램의 5%정도는 다른 요소보다 퍼포먼스를 더 중요하게 하여 최적화를 하여야 하는 편이고, 기계에서 내부적으로 어떤 어셈블리를 거쳐서 실행이 되는지, 메모리 레이턴시가 얼마나 작용하는지, 캐쉬 히트가 어느정도 작용되는지를 코드를 작성할 때 생각하면서 작성하는 것은 사실 심각하게 하자면 어렵겠지만, 자주 쓰이는 패턴이 대부분인 것을 생각해 보면, 사실 익혀두면 큰 노력없이 좋은 코드를 짤 수 있는 좋은 요소가 됩니다. +_+ 자바를 짜던 파이썬을 짜던, 핫스팟을 거치면 어떻게 되는지, 파이썬 VM에서 어떤 경우 최적화된 루틴으로 들어가서 실행을 하는지 알고 짜면, 비슷한 코드에서도 훨씬 빠르게 동작할 수 있는 것은 더 말할 나위도 없구요~

헛 잠시 말이 딴데로 빠졌지만, 이 책은 96년에 나온 꽤 오래된 책이지만 여전히 mono나 gcc같은 프로젝트에서 추천서 목록에 빠지지 않고 등장하는 실용적인 명저입니다. 제목대로 PowerPC에서의 C/Fortran 컴파일러를 만들 때 코드 전략에 대해서 논한 책이지만, PowerPC 인스트럭션을 기준으로 설명했다는 것 외에는 근래의 다른 CPU 아키텍처들에서도 통상적으로 적용될만한 교훈들을 많이 담고 있습니다. 예를 들면 if-else를 브랜치 프리딕션 없이 논리식으로 풀어버리는 방법, switch-case 의 개수별/변수타입별/변수범위별 최적화 방법 등 C 코딩을 할 때 사소한 것으로 컴파일러의 최적화를 방해할 수 있는 이슈들을 많이 논하고 있어서 별로 고치지 않고도 컴파일러의 최적화를 많이 도와줄 수 있게 됩니다. PowerPC가 아무래도 컨소시움에서 만들어진 개방표준형 아키텍처이다보니 인텔의 책처럼 자기 구현에 대해서만 최적화를 다루지 않고 여러 구현(모토롤라와 IBM, PowerPC/QUICC 4,5,6,7,8씨리즈)에서 공통되게 잘 돌아가는 방법같이 좋은 예를 C와 Fortran, PowerPC 어셈블리로 다루고 있어서 참 좋았습니다. 그런데, 아무래도 어셈블리 코드가 전부 PowerPC기준으로 되어있다보니 약간 생소하기는 하지만, 모토롤라의 파워피씨 매뉴얼을 놓고 같이 보면 크게 문제는 되지 않는군요~

이 책은 http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF7785256996007558C6 에서 다운로드 받을 수 있습니다.

댓글 5 개 | 트랙백 0 개 (보낼곳) | 태그 book


요리만 못하는 똑똑한 여자들을 위한 요리책.

[ISBN-897365408x] 6년간의 하숙생활을 청산하고 독립생활을 시작한 지 1개월. 슬슬 가사에 재미를 붙이고 있습니다. ^^^;; 요리는 단연 자취생의 로망! 그래서 요리책을 2권 사서 보고 있었는데 처음 산 책들은 정말 맛있어 보이는 사진이 가득한 책으로, 특히 재료 개수가 적어보이는 책들을 샀었습니다. 헉. 그런데, 사고나서 보니.. 이럴수가.. 재료는 냉장고 2개 있는 집에 재료를 항상 가득 채우고 있는 사람이 추가로 사야하는 뭐 그런 것이었습니다. -_-;; 49리터짜리 냉장고에 음료수 몇 개 넣어놓고 사는 자취생에게는 꿈과 같은... 거기 있는 재료 다 사서 요리하고 나면 남는 재료는 다 버려야 .. 흑흑..

그러던 중 괜찮은 책이 있어서 hoya`님께 선물로 받았습니다. "perky님 맛있는 요리하셔서 사랑받는 살림꾼 되세요."라는 메시지와 함께;; 흐흐. 제목은 "요리만 못하는 똑똑한 여자들을 위한 요리책"라는 상당히 자극적인 제목인데 뭔가 약간 전통적 성역할을 벗어나지 못한 성차별 요소가 담겨있는 책 제목인 듯한 느낌이 있기는 합니다. 므흐. 어쨌던 이 요리책에는 음식 사진이 하나도 없습니다. 두둥! 요리책에 음식사진이 없으면 과연 무엇이 있단 말인가!. 이 책은 논리적이고 간결하게 기술된 책을 선호하는 사람들을 위한 책인 것입니다. 각각의 조리법의 자세한 과학적인 이유와 그에 따라 일어나는 여러가지 분화적인 요소들을 과학적으로 다루고 있습니다. 예를 들면

"""스파게티가 들러붙지 않는 이유는?
스파게티는 삶은 뒤 찬물에 헹구지 않아도 서로 들러붙지 않습니다. 그 점이 일반 국수와 다르지요. 물론 반죽에 기름이 들어갔고 또 삶을 때 기름을 넣고 삶기느 했지만 들러붙지 않거나 불어나지 않는 것은 그 때문만은 아닙니다. 그렇다면 그 이유는 무엇일까요? 그것은 바로 스파게티는 강력분 밀가루로 반죽을 한다는 데 있습니다. 강력분에 다량 함유된 단백질인 글루텐(강력분은 15%이상, 박력분은 10%이하)이 반죽 자체에서 서로 당기는 힘이 강해 다른 국수처럼 서로 들러붙지 않는 것입니다."""

이렇게 각각의 조리법에서 소금을 더 넣어야 하는 이유, 물을 더 넣어야하는 이유까지 상세하게 모두 설명하고 있고, 관련 역사까지도 다루고 있습니다. :) 사진으로 가득찬 요리책에서는 사진의 위치때문에 감히 시도할 수 없었던 것이었을텐데 이런 책이 나와서 정말 다행입니다~

그리고 요리책을 읽다보면 제일 불편한 것이 아무래도 해요체로 가득차있는 것인데 모든 문장이 모두 해요체로 끝나다보니 신뢰감도 덜하고 문장관계 파악도 힘든 것이 사실입니다. 그럼에도 불구하고 친절한 것이 잘 팔리는지 전부들 싹 해요체를 채택하고 있는데, 이 책은 부분적으로 해요를 쓰기도 하지만 전반적으로 -합니다 로 기술하고 있어서 편하고 신뢰감을 느끼며 읽을 수 있었습니다. :)

밥짓는 방법과 각 단계의 원리, 튀김이 되는 원리와 각 맛의 비결과 그 과학적인 과정같은 것도 모두 설명하고 있는 등 아주 기초에 충실하면서도 흥미를 충분히 돋울만한 소재를 다루고 있어서 재미있게 읽을 수 있었습니다. 또한, 다른 책에서는 대체로 계량 기구를 완벽하게 갖춘 듯이 정량적 단위를 완벽하게 제시하거나, 아니면 또 초보를 위한다고 굉장히 모호한 단위를 전체적으로 써버리기 마련인데, 이 책에서는 정량적인 단위를 제시하면서도 그것을 측량할 수 있는 방법을 여러가지 접근 방법으로 알려주고 있어서 좋았습니다. 예를 들어 계량단위인 "1컵"을 계량하는 방법에 대해서,

"""우리는 "1컵"을 200ml로 치지만, 서양에서는 1컵을 240ml로 칩니다. 그러나 만일 한글로 번역된 요리책을 보며 요리를 하신다면 1컵=200ml로 생각해도 됩니다.

시중에서 파는 작은 우유팩의 용량이 200ml이므로 당장 집에 계량컵이 없다면 우유 한 팩을 컵에 부어 눈금을 표시해서 간이 계량컵으로 써도 됩니다.

순수한 물 200ml의 무게는 200g이지만, 다른 성분이 섞인 액체는 조금씩 무게 차이가 있어 물엿이나 토마토케첩, 고추장처럼 되직한 것들은 부피의 물보다 무게가 더 나가게 마련이므로 부피가 같다고 무게가 같지는 않다는 사실을 유념해야 합니다."""

으흐흐~~ 하여간 이 책은 제가 요리책을 많이 본 것은 아니지만 요리책 역사에 한 획을 긋는 정말 멋진 책인 것 같습니다. 앞으로 다른 분야에서도 이렇게 논리적으로 기술된 좋은 책들이 많이 나왔으면 합니다.

그렇지만, 책 제목은 좀 바꿨으면 좋겠군요. 분명 마케팅 차원에서 그랬겠지만 -ㅇ-;

댓글 6 개 | 트랙백 0 개 (보낼곳) | 태그 book


프린세스 메이커

1인칭 게임 중 유일하게 할 줄 아는 Rainbow 6가 새로운 확장판 [WWW]Athena Sword가 나왔길래 해보려고 열심히 시도를 해 봤으나.. 원판 Raven Shield CD가 없으면 안 된다는.. 메시지를 보고서는 좌절해서 프린세스 메이커 2004란 것이 있길래 해 봤습니다. +_+

0403-pm1-main-thumb.jpg 큰 화면으로

헛 근데 프린세스 메이커 1을 새로 만든(refined) 버전이었습니다. 전체적으로 음성이 모두 한국어로 더빙되었고, 그래픽도 상당수 수정한 듯 깔끔하군요. 그리고 음악도 미디 외에 PCM도 지원해서 사운드 캔버스 기본 음질 정도의 음악이 나옵니다. +_+ 원판의 기분을 살리기 위해서인지.. 인터페이스도 전혀 바뀌지 않고 효과도 거의 그대로라 옛날 분위기가 물씬 나서 무지 좋았습니다. 헤헤 :)

사실 프린세스 메이커는 2부터만 해 봤는데, 1은 시스템이 2에 비해서 엄청 단순하네요;; ;;; 13살까지만 키우면 별로 할 게 없어서 허송세월만;; 앞으로 YS2 Special이나 천사의 제국, 파워돌스처럼 무지 재미있었던 게임들이 다시 최근 시스템들에 맞춰서 옛날 분위기 그대로 재현을 해 준다면 정말 좋겠네요. 계속 3D쪽으로 발전하면서 크기가 커진 게임들 보다는 아무래도 2D 분위기의 아기자기한 게임들도 계속 나왔으면 하는 바램도 :)

0403-pm1-carn-thumb.jpg 큰 화면으로

그리고, 파르페도 정말 그런대로 괜찮은 게임인데 버그를 좀 잡고 윈도우98에서만 돌아가게 만들어버리는 치명적인 몇몇 메모리 버그들만 좀 고쳐서 팬시상품들과 함께 재 출시를 했으면 하는 소망도 해 봅니다;; 으흐흐

댓글 4 개 | 트랙백 0 개 (보낼곳) | 태그 life


파이썬, 이슈에서 벗어나 대세로 자리매김

0403-itsolutions.jpg

IT Solutions라는 작은 잡지에 쓴 기사입니다. -ㅇ-; 3페이지밖에 안 되니 보고 싶은 분은 서점에서 보고 오세요;; _-_

=> 큰 화면 보기

댓글 4 개 | 트랙백 0 개 (보낼곳) | 태그 python


최적화의 양면

얼마전 python-dev메일링에 올라온 [WWW]"Who cares about the performance of these opcodes?"에 대한 amk의 답변에 -O3보다 -Os가 더 빠르다는 글을 보고 몇가지 테스트를 해 봤습니다. 파이썬 바이트 코드를 실행하는 Python/ceval.c는 거의 1000라인에 육박하는 switch-case문으로 구성되어있는데, 요즘 LIST_APPEND같은 특화된 옵코드를 계속 추가하면 전체적으로 switch-case가 느려지지 않겠느냐하는 글에 딸려 나온 것입니다.

오오. 그런데, 테스트를 해 보니 정말로 amk 말 대로 ceval을 -Os로 컴파일한 것이 더 빠른 것이었습니다.

Pentium3 550 Pentium4 Xeon 2.4G -O3로 전부 (Python 기본 배포 디폴트) 12284 23616 ceval만 -Os 12379 23970 -Os로 전부 11615 18713 -O로 전부 (FreeBSD 포트 디폴트) 11594

이야. 캐쉬 히트나 브랜치 프리딕션 히트 때문인 것인지 궁극의 최적화 옵션 -O3보다 비실비실 -Os가 더 빠른 것입니다! 이건 단순히 1%도 안 되는 성능 향상을 컴파일 옵션으로 얻을 수 있다는 뭐 그런 의미보다는 switch-case문만 잘 줄이면 속도를 더 빨리 만들수 있다는 것을 암시해 주는 것! JIT를 사용하지 않는 파이썬 VM에서는 옵코드 개수가 역시 속도에 큰 영향을 미친다는 것이군요.

요즘 Raymond가 리스트, 딕셔너리, 컴파일러 등등 여러가지 최적화를 해서 정말 파이썬 2.4는 1.5 속도를 따라잡고 멋진 릴리즈가 되지 않을까 하는군요. 기대가 됩니다. :) 그리고, 컴퓨터 아키텍처 책 말고 실전에서도 코드 크기가 영향을 미친다는 것도 신비롭네요. -S옵션으로 풀어놓고 좀 더 연구를 해 봐야겠습니다. -ㅇ-;

댓글 4 개 | 트랙백 0 개 (보낼곳) | 태그 python


흑흑흑 소포질

지난번에도 한번 얘기했듯 소스포지에서 이제 돈낸 사람 이름 옆에 기어를 달아주고 있는데 그 기어 색깔이 기부액마다 달라서 5단계가 있습니다. 흑흑 저는 처음에 기부액 차별 없을 때 기부해서 5달러로 노란색 기어를 달았는데, 차별제도가 생기면서 회색기어로 강등돼버렸... 그래서 트래커에서 검색을 할 때마다 남들은 노란색 번쩍번쩍 기어 달고 있는데 밑에 회색 기어 달고 있으려니 추리해서.. 가슴이 아프다가 결국은 질러버렸습니다. -ㅇ-;

"그래, 사이월드 아바타에 돈내는 사람들 심정이 이해가 간다!. -.-.."

처음엔 10달러면 될 줄 알고 원래 5달러에 5달러 더 기부했는데, 10달러로 안 되더군요.. 그래서 할테면 해보자 하고 10달러를 더 기부해서.. 20달러를 냈더니 영광의 노란기어를.. ...

0403-yellowgear.png

... 노란기어를 달게 돼서 한편으로는 폼나지만.. 20달러면 초코파이가 214개인데.. 하는.. 우에엥 -ㅇ-;

댓글 4 개 | 트랙백 0 개 (보낼곳) | 태그 life


파이썬 포트 shared 포함

[FreshPorts]lang/python 포트가 2.3에 처음 올라왔을 때는 멋있게 보이려고 --enable-shared를 디폴트로 짠!하고 넣었다가. [WWW]파이썬 공유 라이브러리의 진실에 대해 깨닫고 다시 static으로 잽싸게 바꾸었는데, static이 단순하고 빠른 면은 아주 좋은데 몇가지 문제점이 최근에 많이 제기 되었습니다. 흐흐

  • 파이썬을 엠베드하는 컨슈머들이 몽땅 정적라이브러리를 링크해버려서, 파이썬 업그레이드할 때 같이 안 딸려 올라가기 때문에 호환성 문제가 생길 수 있고, 파이썬 버전 올라갈 때 마다 고역이다. (대부분의 의견)

  • ia64나 amd64같이 PIC바이너리와 non-PIC바이너리가 전혀 링크조차 안 되는 플랫폼에서 PIC바이너리 링크를 제공해 주기 위해서 결국은 static까지도 PIC로 컴파일해야해서 static으로 하는 득이 많이 줄어든다.

  • 쪼끄만 프로그램에 커다란 파이썬 정적 라이브러리를 붙이려니 괜히 낭비다.

  • 정적 라이브러리는 동적 라이브러리에 대한 의존성이 기록이 안 되기 때문에, [FreshPorts]www/mod_python3 같은 포트에서 동적 라이브러리에 대한 의존성이 무시되는 바람에, pthread라이브러리를 같이 물고 들어올 수가 없다.

등등.. 아우성이라서 결국은 빌드방식을 약간 바꿔서 정적빌드를 몽땅 한 다음에, 서브디렉토리에서 [FreeBSDMan]make 의 VPATH 변수 기능을 이용해서 libpython2.3.so와 python-shared만 빌드하도록 수정했습니다. 그래서 결국은 빌드 시간이 1/3정도 길어졌는데, shared 옹호파와 static 옹호파 양쪽을 모두 만족시키는 방법은 이것밖에 없다싶어서 Y.Y

그래서 이제는 곧 기본 파이썬 포트에서 bin/python 바이너리 외에 bin/python-shared 바이너리도 설치하게 되는데, python-shared는

    파이썬 -> 파이썬 확장모듈 -> 파이썬을 엠베드하는 공유라이브러리 -> 파이썬 공유라이브러리

식으로 붙는 일부 KDE 애플리케이션들을 위해서 넣어두는데 평소에는 별 쓸모는 없을 듯 합니다. 흐흐

메일링에서의 토의는: http://lists.freebsd.org/pipermail/freebsd-python/2004-March/thread.html

댓글 3 개 | 트랙백 0 개 (보낼곳) | 태그 python


동원 망고 슬라이스

0403-dongwon.jpg

므흐흐. 오랜만입니다. 망고팬 여러분. 오래 기다리셨죠 -ㅇ-;

이번 상품은 망고슬라이스~ 파인애플이나 백도처럼 산성캔에 담겨 나오는 그~ 망고 슬라이스입니다. 므흣. 이 망고 슬라이스는 망고 과육이 진짜로 들어있는데 안에 7개가 들어있습니다~ (무게에 따라 달라지려나~~)

태국 수입산인데, 함량이 망고 54%, 설탕 17%, -ㅇ-;;; 거의 쨈 수준이군요;; 뭐 그래도 그럭저럭 백도랑 맛이 비슷한 것이 먹을만 합니다. ^_^ 0403-mango.jpg

hia님이 생일선물로 주신 예쁜 접시에 담아서~ 살콩~ 아이 상큼해~ 사실 눈감고 먹으면 백도랑 구분을 못할듯 --; 설탕이 많아서 그럴까요.. 하여간 색깔이 오렌지색인 것이 뭔가 망고같아 보여서 흐뭇합니다. (시각적인 것에 약하다 -.-) 가격이 1750원인 것이 약간 비싸긴 하군요. ㅡ.ㅜ. 앞으로 월급 받는 날에 하나씩 사 먹어야.. 흑흑~

댓글 0 개 | 트랙백 0 개 (보낼곳) | 태그 life


호리에 유이 발견!

아앗. 제가 가장 좋아하는 애니메이션 성우인 호리에 유이씨를 스토킹하던 중 (물론 구글로.. -.-;) 참여 작품 목록에 [WWW]파르페가 있다는 것을 발견했습니다. 파르페로 말할 것 같으면. 퍼키가 1학년부터 2학년까지 3학기를 "파르페" 게임 한글화 알바를 해서 하숙비를 내고 댕겼기 때문에 거의 다른 농촌집의 소팔아서 등록금 댄 그 "소"같은 관계에 캐릭터나 그림풍도 너무나 딱 제가 좋아하는 스타일이라 정말 고향같은(;;) 게임이라고 할 수 있습니다. 주로 여중생이하를 대상으로 한 소녀용 게임이라 아주 내용도 나름대로 건전(?);; 하구요. 므흐;

그래서, 갖고 있던 소스 백업 씨디에서 찾아보니, 그래픽은 대부분 코가도 고유 포맷인 .pak으로 묶여 있는데 이게 또 일본어 윈도우 아니면 풀리지도 않는지라.. 그냥 풀려있는 것을 뒤지던 중. 으하하 엔딩 장면 중에서 호리에 유이짱의 이름을 찾을 수 있었습니다. +_+

0403-horieparfait.jpg

그것도 제가 파르페 씨리즈를 통틀어 가장 좋아하는 캐릭터인 루티(르티르)로~~ ;)

에헤헤. 내일은 일본어 윈도우를 깔고 성우 녹음 파일을 다 끄집어내서 들어봐야겠습니다.;; -O-

댓글 6 개 | 트랙백 0 개 (보낼곳) | 태그 life


DNA: 생명의 비밀

[ISBN-897291357x] 2003년 6월은 제임스 왓슨과 프랜시스 크릭이 DNA 구조를 공개한지 50년째되는 때여서 구글에도 이미지가 걸리고 그랬었습니다. 늘 그랬던 것처럼, 제임스 왓슨은 이 날도 그냥 넘기지 않고 TV 시리즈물도 만들고 이것 저것 떠들썩하게 했었는데, 역시 책도 한권 냈었네요. "DNA: 생명의 비밀" 이 책인데, 왓슨이 혼자 쓴 것은 아니고, 앤드루 베리라는 글빨 좋은 사람과 같이 쓰는 바람에 아주 책이 짜임새 있고 재미있게 쓰여졌네요. :)

"DNA: 생명의 비밀"은 저자 이름에도 걸맞게, 생명과학에서 있어왔던 여러 사건을 다뤄왔다는 점에서 "분자생물학: 실험과 사유의 역사" [ISBN-8989418232]와 비슷한 주제인데, 책 내용은 완전히 다릅니다!. "실험과 사유의 역사"는 굉장히 공식적이고 전문적인 용어를 많이 쓰면서도 밖에서 보이는 모습과 과업들을 주로 다룬 반면에, "DNA: 생명의 비밀"은 아주 평이한 용어에 그림으로 가득한 쉬운 설명으로 현장감있고 팽팽한 긴장감이 느껴지는 실제 생명과학계의 50년간의 분위기를 생생하게 전달하고 있습니다. 역시 "이중나선" [ISBN-8970445439]에서도 그랬듯이 제임스 왓슨 정도되니 아무나 대놓고 욕도 하고, 누가 나쁜놈인지 약간 주관적이기는 하지만 딱 보여주는 것이 통쾌합니다! 예를 들면 (물론 다른 책에서도 맨날 씹히기는 하지만) 말종 라마르크주의자인 리센코에 대해서 이렇게 썼습니다.

""" 이중나선이 발견되었다는 소식에 리센코주의자들이 보인 반응은 계몽 반대주의자들에게 전형적으로 나타나는 반응 그것이었다. 그들은 "하나가 반으로 갈라지는 것이 아니라 반복을 통해서 두 배로 되고, 증가하기는 하지만 발달하지는 않는다"고 주장했다. 나는 그 말이 무슨 뜻인지 도저히 알 수가 없었지만, 리센코가 유전에 관해서 쓴 다른 글들과는 (무의미하다는 점에서) 부합되는 듯 했다.
--- 404p. """

므흐.. 물론 리센코 말고도 셀레라 지노믹스의 크렉 벤터에 대해서도 굉장히 공격적인 어조를 택하고 있는데, 그것도 아주 볼 만하네요.. 그리고, 이 책 전체에 풀컬러 사진이 굉장히 많이 깔려있는데, 다른 책들과는 달리 등장인물들의 사진들이 아주 인포멀합니다. @.@ 해변에 놀러간 사진, 요트 타고 있는 사진, 모터사이클 위에 올라가 있는 사진 등등... 논문만으로는 느낄 수 없는 뭔가 가까운 느낌이~~

가격은 좀 비싸긴 하지만, 읽을 거리도 굉장히 많고 무엇보다도 전면 풀컬러라는 점에서 (-.-;;;) 강력추천입니다. :) 읽고 나면 다른 생명과학 교양서적 10개정도는 뭉쳐놓은 듯한 뿌듯한 마음이~~

댓글 0 개 | 트랙백 0 개 (보낼곳) | 태그 book


망고 케익 (을 가장 한 생일 광고 -ㅇ-)

Orkut에서 보신 분도 많으시겠지만.. 오늘은 삼일절~ 제 생일입니다. ^^;; 그리고 저희 어머니의 음력 생신(2월 11일)이기도 합니다. 간단히 계산해 보니까 1890년과 2004년이 1800~2100년 사이에 유일하게 겹치는 생일이더군요. 크크 그래서 대구에 와 있습니다~ 0403-mangocake.jpg

저희 집 앞 뉴욕제과점에서 파는 망고케익~ 망고쟁이가 망고케익을 보고 그냥 지나칠 수 없어서 덥썩 사 왔지요. 크크. 망고 크림이 아주 약간 발려 있고, 뭐 전체적으로 망고향을 내려고 흉내는 한 듯 하지만, 크게 망고 맛이 나지는 않았습니다. -ㅇ-; 썬키스트 망고 과립 캔이라도 약간 넣었으면 하는 아쉬움이~~

0403-uncledalki.jpg

가운에 딸기 아저씨 두분이 밖혀 있는게 아주 깜찍하더군요. :)

오늘 생일축하 메시지 보내주신 가형, 창우옹, 서마이님 감사합니다. 에헤헤 꾸벅 (_ _);

댓글 17 개 | 트랙백 0 개 (보낼곳) | 태그 openlook


누구?

장혜식 (Hye-Shik Chang)
내일을 사랑하는 소년(!)

최근 댓글