『디지털 생물학』

오랜만의 책 얘기군요.. 그동안 출퇴근할 때 늘 책을 읽기는 했는데, 몇 백페이지씩 되는 책을 겨우 블로그 하나에 감히 요약한다는 게 좀 부담스럽기도 해서 아무래도 손이 잘 안 가네요 흐흐;;

[ISBN-8934912812] 『디지털 생물학』. 요 책은 일반적으로 흔하게 나오는 생물학의 디지털화에 대한 것보다는 진짜로 제목 그대로 디지털 세계의 생물학에 다룬 책입니다. 저자는 정말로 거의 디지털 세계에 대해서는 득도에 가까이 갔는지, 디지털 세상을 현실 세상과 완전히 동일시할 수 있는 능력을 갖고 있음을 책 여기저기서 자랑하고 있습니다. :) 즉, 컴퓨터 네트워크 위의 바이러스라던지, life game위에서 돌아가는 벌레라던지.. 이런 것들을 모두 생물로 볼 수 있는 능력을 갖추고 있는 것이지요. (헉~;)

저자는 디지털 세상의 모든 것을 실세상(사실, 디지털 생물학의 관점에서는 실 세상이란 게 따로 구분할 게 없다는군요. 세상은 매트릭스 수준이랄까 -_-;)의 것들과 비교해가면서 거기서 희열을 느끼는데, 읽다보면 뭔가 세뇌되는 듯한 기분이 들며 진짜로 뇌에 있는 정보를 하드디스크에 저장해두고 싶은 기분이 자주 들게 돼 버립니다. 그는 오히려 사람들의 디지털 세계를 “가상 세계”로 치부하는 태도에 대해 거부감을 표시하는데,

이 시점에서 나는 굵직한 글씨체로 ‘모든 세계에 동등한 권리를 보장하라’는 문구가 씌어진 플래카드를 내걸고자 한다. 흔한 일이지만 디지털 세계는 형편없는 대우에 시달린다. ‘인공적’, ‘시뮬레이션’, ‘가상’이란 말들은 우리의 세계를 닮은 어떤 것이 컴퓨터에 등장할 때 가외로 붙는 수식어이다. 우리는 가상 현실, 인공적인 생활, 시뮬레이션 환경 등에 대한 이야기를 끊임 없이 듣는다. 왜인가? 왜 디지털 세계 속에 존재하는 것은 물리적인 세계의 사물보다 ‘비실제적’인 것으로 간주되어야 하는가? 왜 가상현실은 가상적인가? 조금은 불공평하지 않은가?

이에 그치지 않고, 디지털 세상에 대한 확신으로 독자들에게 강력한 근거를 대며 설득합니다.

다음 장에서 소개하겠지만, 내 컴퓨터에 진화 알고리즘을 실행하면 그것은 진화를 시뮬레이션하지(흉내내지) 않는다. 내 컴퓨터의 새로운 배양기에서는 ‘진짜’ 진화가 발생한다. 마찬가지로 내 컴퓨터가 산과 강 그리고 동물들이 뛰어다니는 어떤 환경을 창조할 때, 거주자의 관점에서 그 환경은 가상이 아니라 실제이다. 또한 어떤 디지털 세계에 의식을 가진 신경망이 성공적으로 진화한다면, 그것은 인공적이 아니라 살아 있는 것으로 불릴 만하지 않겠는가?

어쨌든 컴퓨터의 작동이 비현실적이라는 생각은 대다수의 그릇된 견해이다. 컴퓨터가 어떤 일을 하는지 그리고 그 일을 어떻게 하는지 생각해볼 때, 그러한 관점은 편견에 불과하다. 내가 컴퓨터로 두 수를 곱할 때, 컴퓨터는 그 계산을 모방하는 것인가? 수학을 흉내내는 것인가? 물론 아니다. ALU는 회로에 새겨진 덧셈 규칙에 따라 정확한 답을 계산한다. 그러나 내가 두 수를 곱하면 항상 같은 결과가 나오지는 않는다. 나는 종종 정답을 얻기 위해 내 기억에 의존한다. 이와 같이 수학적 관점에서 내 컴퓨터의 작동은 내 자신의 행동보다 더 실제적이다. 오히려 내가 인공적인 계산기라 할 수 있다.

정말로 말 그대로 “대략 정신이 멍”해지면서.. 충격적이었습니다. 이 말을 어린애들이 들으면 얼마나 충격받을 까요 흑흑 ㅡ.ㅜ (갑자기 18금으로 사이트 등급이 올라간다;;)

그 외에도, 진화적 알고리즘(GA)에서의 기계의 기가 막힌 환경 적응력이나, 신경망, 군중 이론, 프랙탈 생명체같은 디지털 세계의 것들에 대해서 설명하고, 그리고 “물리적” 세계의 곤충들의 집단 두뇌나 동물의 면역계 진화, 언어의 진화 패턴같은 우리가 익숙하고 일반적으로 믿고 있었던 “물리적” 세계에서의 특징들을 디지털 생물학적 특징으로 가져갈 수 있는 아이디어들을 제시하고 있습니다.

이 책은 엄청 사색적이면서 적당히 괴짜스럽고 읽기 쉬운 문체로 되어있어서 지하철에서 읽기는 아주 좋았습니다. 그런데, 꽤나 수긍이 가면서도 뭔가 속은 듯한 기분이.. 크크.. :)

국군의 날!

이제 2003년도 얼마 안 남았군요. 벌써 10월이 오다니 ㅡ.ㅜ

오픈룩을 자주 들러주시는 모든 분들 앞으로 남은 세달에 행운만 가득하기를 빕니다. *(_ _)*

아울러 오늘은 국군의 날인데 “국군장병아저씨” 늘 감사합니다. (-ㅇ-;;;) 병특은 뭐 따로 기념일 없나요 흑흑 =3 =33

OpenSSL 보안 결함 발견

wu-* 씨리즈에 둘째가라면 서러운 보안버그 단골 OpenSSL이 또 보안 버그를 발표했습니다. (크크 — 뭔가 혼자 즐겁다;;)

이번 버그는 인증서 데이터를 인코딩할 때 사용되는 ASN.1의 파서에서 발견되었는데, 사실상 대부분의 SSL 코드에서 ASN.1 파싱은 꼭 거치기 때문에 서버가 계속 나자빠지는 등;; 위험하게 작용하게 됩니다. 구체적으로 적용되는 부분을 번역해 보자면:

  • OpenSSL 0.9.7에만 적용되는 문제: 잘못된 형식의 ASN.1이 들어왔을 때 SSL을 거절하는 경우에 메모리 해제(deallocation)가 일어나게 되는데 이 부분에서 잘못된 해제 코드가 들어있어서 결국 프로세스가 죽게 되는 등의 Denial of Service 공격에 사용될 수 있는 버그가 발견되었습니다.

  • 몇가지 자주 사용되지 않는 ASN.1 태그에서, 버퍼 아웃바운드 문제 발견. 버퍼 끝을 잘못 포인트해서 읽게 유도할 수 있기 때문에 마찬가지로 루틴이 죽을 수 있어서 DoS공격에 악용될 수 있습니다. 이 버그는 0.9.6에도 적용됩니다.

  • 인증서에 잘못된 형식의 퍼블릭 키가 들어있는 경우에 제대로 되어있는지 디코딩 전에 확인하는 루틴에서 인증서 잘못을 무시하는 경우에 프로세스가 크래쉬할 수 있습니다. 일반적으로 디버깅 옵션을 끈 상태에서는 항상 무시되기 때문에 늘 악용될 수 있는 버그라고 할 수 있습니다.

  • SSL/TLS 프로토콜 핸들링의 에러로 인해서 서버가 특별히 요청하지 않은 상황에서도 클라이언트의 인증서를 읽게 된다고 합니다. 이 부분은 직접적으로 연결되는 보안 취약점이 있는 것은 아니지만, SSLv1, SSLv2, SSLv3의 각각 프로토콜 자체상의 결함을 상위 버전에서 원치 않게 허용할 수 있게 된답니다.

  • 이번 버그는 OpenSSH건처럼 root가 뚫린다던지 하는 일은 없지만 모두 쉽게 발생시킬 수 있는 DoS코드들이 이미 공개되어 있기 때문에, 원한을 산 분들은 얼른 얼른 업데이트 하셔야 될 듯 합니다. 적용되는 버전은 구석기시대의 SSLeay를 포함한 OpenSSL 0.9.7b까지의 버전이라고 합니다. 간단히 말해서 “지금 쓰는 모든 버전은 구멍이 숭숭~” 이란 말;; =3 =33

    지금 글을 쓰고 있는 현재 FreeBSD에는 보안 패치가 적용되어 있지 않고, Python은 2.3.2에서 0.9.7c를 기반으로 작업할 예정이라고 합니다.

    즐 패치~;;;

    블루투스 동글 “파라니”

    작년에 가공매출로 인한 우루루 연쇄 도산사건으로 유명했던 한국RF로직에서 만든 (제품보다 사기로 유명인가 -ㅁ-;;) “파라니”를 샀습니다. ^.^;; 10월 말에 있는 사발통문 전시회겸 EE Festival(전기전자축제)에 블루 투스 관련된 뭔가를 내야 하기에.. -.-;; 으흐~;

    0309-paranee.jpg

    일단 요걸로 PC와 ARM보드에 1개씩 끼워서 serial over bluetooth로 만든 다음에, diameter over serial/tls로 무선 홈 네트뭐크를 만들어 보려고 합니다~. CD롬에 소유진이 웃으면서 파라니를 들고 있는데 사진에서 보이듯 진짜로 쪼끄맣고 가볍습니다. 꺄아~ 윈도우에서는 따로 드라이버를 깔아야 동작하고, FreeBSD-current와 MacOS X 10.2에서는 전혀 뭔가 안 깔아도 잘 잡힙니다. 므흐흐 (혼자 뿌듯해 한다~ ;;)

    FreeBSD에서는 좀 이상하게 그냥 끼우면 ugen으로 잡히는데, ng_ubt 모듈을 미리 올리고 끼우면 제대로 잡히더군요. vid 힌트를 제대로 안 준 모양.. MacOS X에서 제공해주는 기본 블루투스 도구들로 간단히 시험해보니까 속도도 그런대로 쓸만하고 한 15미터까지는 괜찮네요 (장애물이 없을 때)

    가격도 2개에 8만원이니, 802.11카드보다 싸고 해서, 근거리 저속 무선 네트워크용으로는 앞으로 쓸모가 많을 듯 합니다. 앞으로 PDA랑 디카랑 핸드폰이랑 냉장고랑 전자렌지랑… 다 블루투스로 척척 붙으면 재미있겠네요 흐흣..

    하드웨어 펌웨어상의 버그인지, 자세히 디바이스 정보를 잡아보면 self-powered로 잡힙니다. 근데, 거의 500mA 먹던 801.11 카드들을 생각해 보면 절대 블루투스 장치가 태양열 발전을 안 한들, self-powered로 동작할 일은 없을 것 같고, 아무래도 버그인 듯 합니다. 자가 전원 공급이 가능한 장치에 직접 끼우지 않으면 아무래도 전원 설정이 제대로 안 되서 정상동작이 안 될지도 모르겠군요.

    가격도 싸고 크기도 쪼그맣고해서 다른 분들께도 추천~ 아.. 안에 인터넷 공유 프로그램도 들어있습니다. 물론 윈도우용인데, FreeBSD나 MacOS X에서도 쉽게 ppp로 인터넷 공유를 설정할 수 있더군요~ ^.^

    빵집에서도 망고 만들다.

    이제 망고 유행은 음료업계를 지나 빵집에서도 망고를 만들기 시작했습니다. -ㅇ-; 빵 먹으면서 같이 마시면 좋다는 것인지; “we bake goodness!” 슬로건을 당당히 망고 캔에 붙였네요 흐흐;; 바로 운동회 단골 빵집 “샤니~”에서 만든 “스위트 망고”

    0309-shanymango.jpg

    먼저, 용량은 180ml이고 가격은 편의점마다 다른데, 600~800원선입니다. 델몬트 망고 180ml에 결코 뒤지지 않는 가격! 맛에 자신이 있다는 것일까요. (-o-);

    그런데, 지난 번 정통 망고 음료간의 진검 승부를 다루었던 Blog0309/DelzMango 편을 참고하시면 딱 눈치채실 수 있듯, 전혀 성분이 비교가 안 됩니다.

    상품명

    망고 과즙

    망고 퓨레

    단것

    첨가제

    비타민

    기타

    샤니 스위트 망고

    없음

    태국산 5%

    정백당, 액상과당

    구연산

    비타민C

    망고향

    아니! 망고 퓨레를 5%밖에 안 넣고, “망고향”을 첨가하는 것으로 망고인 척 하고 있는 것입니다. 덕분에 실제로 마셔 보면 향기는 크게 차이가 안 나는데 혀를 달콤하게 감싸는 그 망고음료 특유의 착 달라 붙는 맛이 영 약하다는 것을 눈치챌 수 있습니다.

    지금까지의 전적으로는 델츠 망고와 가야 망고농장이 가장 괜찮은 것 같군요. 단, 포장은 예뻐서 그런대로 봐줍니다. 으흐흐 ~.~;; 하나 좀 마음에 걸리는 것은 포장이 온통 영어로만 되어있군요 해외 수출용인지 -_-; 으흐;;

    • <참고> 어제 책을 읽다가 본 것인데, 망고 열매는 원래 박쥐 먹이로 진화된 것이라고 합니다. -ㅇ-; 우리는 박쥐소년들이게 되는 것인가요~.~ 배트맨~~~

    • <참고2> 망고 “만들다”라고 표현하기는 했지만 사실 샤니는 판매원일 뿐이고, 제조원은 태양식품이라는 곳입니다.

    한국에서 오픈소스하기

    [WWW]GnomeKorea:자유소프트웨어와한국인을 보고 생각나는 것이 있어서 몇자 적습니다. :) (첫 트랙백을 보낼 절호의 기회인데 대상이 위키라 못 보내서 아쉽군요 -ㅁ-;)

    그동안 크게 내세울 것은 없지만 2~3년 정도 오픈소스 개발을 접해 본 느낌으로는 위 글의 내용에 많이 동의할 수 있었습니다. 세계 최고 인터넷 강국이다, IT분야 4위 산업국이다 등등 화려한 수식어는 많지만 사실 오픈 소스 세상에서는, 한국 사람보다 오히려 훨씬 인구도 적고 정보망 수준도 열악한 우크라이나, 체코, 타이 같은 곳 사람들을 훨씬(적어도 100배 이상) 많이 보게 되는 것을 보면 우리의 문화에 확실히 오픈 소스와는 맞지 않는 특징이 있는 것은 확실한 것으로 느껴집니다. 그렇다고, 한/중/일 동아시아 고유의 특징으로 몰아가기엔, 한국을 제외한 중국, 대만, 일본에서는 참여하고 있는 사람이 충분히 많기에…

    다른 문화적 특징들은 그놈한국위키의 글에 충분히 논의가 되었지만, 몇 가지는 정말 절실하게 느껴와서 말하지 않고 넘어갈 수 없네요~ 으흐흐;;

  • 불만을 얘기하지 않는다.

    • 오픈 소스 프로그램은 아무래도 전담 테스터가 없는 경우가 많아서 개발자가 주로 쓰는

      기능이 아니면 버그가 있더라도 발견되지 않는 경우가 많은데, 사용자들은 사용 시에 문제가 발견하더라도 그냥 주변 사람들에게만 불평을 한 뒤, 정작 개발자들에게는 어떤 문제가 있었다는 것을 알려주지 않는 경향이 있는 듯 합니다. 그리고는 다음 버전이 나와도.. “또 버그네!” 하고 불평을…

  • 매뉴얼이 무용지물.. 고객센터로 변신…

    • 매뉴얼이나 README같은 문서를 아무리 열심히 작성해도 읽지 않습니다. 처음에는

      영문으로 써서 안 읽나보다 하고, 한글로 썼는데도 여전하더군요.. 설치하던 도중 대부분의 사람들이 겪을만 할 문제가 몇 개 생각나서 README에 써 주면, 여지없이 릴리즈 하자마자 수십~수백명의 사람이 사적인 접촉 경로(메일이나 IRC)로 그에 대해 물어옵니다. 그것도 사실은 프로그램과 관계있는 것이면 그나마 다행인데, 많은 수가 크론탭 고치는 방법, 압축 푸는 방법, 라이브러리 경로 주는 방법 같은 기초적인 질문들을 해 옵니다. 물론 매번 시간도 오래 걸리고 가끔 원격쉘로 접속해서 직접 세팅해 주기를 요구하기도 합니다.

      새로운 오픈소스 프로그램을 만드는 것은 정말 재미있고 좋은데.. 새 프로그램을 만들 때마다 이런 질문과 지원에 답해야 할 기회가 많아진다는 것이 새로 뭔가 만들 때 의욕을 꺾습니다. ㅠ.ㅠ

  • 패치를 보내주세요

    • 이 경우는 그래도 버그 레포트는 되는 경우라 1번 보다는 훨씬 편하게 느껴지는데요.. :)

      저는 개인적으로 혼자하고 있는 프로젝트도 10개가 넘고, 회사 일도 늘 있기 때문에 항상 특정 오픈소스 프로그램에 매진하기는 어렵습니다. 그리고, 자발적이고 능동적인 오픈소스 특성상 자기가 하고 싶지 않을 때나 다른 더 재미있는 것이 있을 때는 손이 안 가게 마련입니다. 그런데, 가끔 어떤 분들은 버그를 발견하고서는 계속 고쳐달라고(그것도 당장)합니다. 저는 소프트웨어를 판매하거나 지원을 약속한 적이 없는 데 말이죠.. 자꾸 재촉하시는 경우에는 서로 민망해서 제가 다른 것 하고 싶은 작업이 있어도, 그냥 어쩔 수 없이 고쳐드리는 경우가 있기는 하지만, 그래도 내켜서 하는 작업이 아니라 아무래도 코드 품질도 안 좋기 마련입니다. 패치를 보내주세요. 패치를 보내주시면 오픈소스 프로젝트를 진행하는 사람들도 문제를 빨리 고칠 수 있고, 어떻게 되는 것을 원하는 지 말로 길게 설명하는 것보다 훨씬 나을 수도 있습니다. 물론, 패치를 위해서 프로그램을 뜯어보는 동안, 개발자가 사용한 디자인이나 기법들도 훔쳐볼 수 있고 실력향상에도 많은 도움이 된다는 것은 덤! :)

    꼭 제 프로젝트에 한정된 얘기는 아니고 근처에서 지켜본 몇몇 프로젝트에서 느꼈던 점들입니다. 물론 우리나라 오픈 소스 사용자분들이 모두 이렇다는 건 아니구요~ 흐흐;; 사실 늘 좋은 버그 레포트 보내주시고 패치 보내주시는 분들도 많지만~ 아무래도 사람이 안 좋은게 더 눈에 띄게 돼서, 그게 더 기억나게 되는게 아닌가 싶네요 ^.^;; 주제넘게 투덜댄 느낌이 좀 있어서 찝찝하긴 한데요 이히.. 뭐 다 같이 잘 살아보세~ 차원에서 -o-;;

    • PuTTY로 유명한 Simon Tatham씨가 쓴 “버그 레포트 효과적으로 하기”입니다. 영어로 작성되어있는데, 이 내용 대로만 버그를 보고한다면, 안 고쳐줄 개발자가 없겠죠~ :) http://www.chiark.greenend.org.uk/~sgtatham/bugs.html

    “국감이 아니라 코미디”

    한겨레 신문에서 재미있는 기사를 봤습니다. 크크.

    국회 정무위의 29일 금감원 감사에선 대통령 주변문제와 관련, 증인으로 출석한 강금원 창신섬유 대표가 의원들의 국감 자세를 질책'해 소란이 벌어졌다.

    이날 오후 2시 속개될 예정이었던 국감이 여야 의원들간 질의순서를 둘러싼 논란으로 1시간 가까이 열리지 못하자, 이를 보다 못한 강씨가 소신 발언’을 한 것이 발단이 됐다.

    증인석에서 일어선 강씨는 “집에 가도 되나? 이런 식으로 하니까 개혁하자는 것 아닌가”라고 운을 뗀 뒤 “증인을 불러놓고 6시간 동안 한 게 뭐야? 국감이 아니라 코미디”라고 목소리를 높였다.

    기회가 되면 이런 말을 언제든 할 수 있도록 평소에 마음을 다잡고 있어야 겠다는 생각이 듭니다! :)

    고대! 오늘 뷁~!!

    해보나 마나 이기는 경기지만 그냥 재미로 하는 연고전이 올해도 열띠군용. ~.~

    0309-koreabreak.jpg

    아 이제 나이도 나이고 학번도 학번인지라 -.- 가서 뛰기 민망하다…기보다는 회사 일이 월요일에 급한게 있어서 흑흑흑 ㅡ.ㅜ 내년엔 꼭 간다~~;;

    어제 스코어는 2:1이라고 하는데 뭐 오늘 합쳐서 넉넉하게 4:1로 이기지 않을까 싶군요~ 호홋;;;

    고대의 준우승을 미리 축하합니다~!

    CJKCodecs 1.0.1 릴리즈

    얼마전에 강태욱님께서 알려주신 빈 문자열을 str.decode 메소드를 이용해서 디코딩할 때 에러가 나는 문제를 수정한 CJKCodecs 1.0.1을 릴리즈했습니다. 그 외에, ISO-2022-JP-2 코덱이 G2에 할당되는 ISO-8859-1(서유럽알파벳), ISO-8859-7(그리스알파벳)을 처리하지 못하던 문제도 수정하였습니다.

    아마 이번 버그 픽스로 ninix-aya나 orange-slice에서 발생했던 문제가 모두 해결되지 않을까 생각됩니다.

    한국 ISP들은 로컬 캐쉬가 징하게 길기때문에 한국에서는 업데이트된 홈페이지를 보시는데 며칠 걸릴 수도 있습니다. (-.-;;)

    Marcus의 첫 커밋 송~

    Asami상이 있을 때 인기를 누렸던 ports/INDEX 커밋 송이 살아 돌아왔습니다. 흐흐.. Marcus씨의 작품~ (원곡 http://openlook.org/distfiles/portsfreezebaby.ogg 를 들으면서 같이 불러보세요~)