FSF에서 온 저작권 할양 동의서

예전에 libgcrypt에 대한 SEED패치 작업이 진행되면서, FSF에 저작권을 전달하기 위해 메일을 보냈었는데, 지난 주말에 거의 3주만에 드디어 동의서가 도착했습니다. 목빠지겠어요;

내용물로 △ 동의서 1장 △ 회신용 봉투 1장 △ GNU 소 모양 (스티커커 아님) 2장 △ FSF 멤버가 되세요 광고지 1장 이렇게 들어있습니다. 기왕 주는 걸 스티커를 줬으면 더 좋았을텐데 아쉽네요.

이 문서에 싸인을 하면, 제가 올린 부분에 패치에 대한 저작권을 FSF에 할당하게 돼서, 저작권 방어를 FSF에서 대신 맡게 됩니다. 대략 20줄 내외가 넘는 패치들은 이렇게 한다는데.. 다른 프로젝트에서 다 이런식으로 항상 저작권 할당 작업을 한다면 굉장히 난감할 것 같군요; 좀 더 간단하게 자기가 스스로 인터넷에 간단한 라이선스로 릴리스하고 그걸 받아가게 하는 방법도 있긴 한데, 왠지 한 번 해 보고 싶어서 제일 복잡한 방법으로 한 번 둘러가 봤습니다. ^^;

그러나, 정작 싸인을 하려고 보니까 두둥..

과연 어디에 싸인을 해야 할 것인가! 우리나라에서 늘 쓰는 양식에는 (인) 위에 싸인을 하면 간단한데, 여기는 도대체 어디에 싸인을 해야할 지 애매하더군요; 아흐아흐.. 혹시 외국인들도 우리나라에 와서 싸인할 일이 생기면 (인) 뒤에 공간이 너무 적어서 도대체 여기다가 어떻게 싸인을 하느냐 하고 고민하지 않을까 생각을 해 봤습니다;

왠지 ①아니면 ③ 자리가 맞을 것 같았는데, 인터넷에 찾아보니 대체로 활자로 인쇄된 이름 위에 싸인을 하는 걸 봐서는 ②번 자리에 줄 위에다가 글자를 쓰라는 뜻으로 밑줄을 그어 놓은 것 같아서 거기에 싸인을 했습니다. (혹시 싸인해 보신 분은 정답을 알려주세요 -ㅇ-)

이제 회신을 보내면 저작권 작업이 끝나서, gnupg에서 SEED를 쓸 수 있을 것 같습니다. ^.^

오픈룩 죽었다 다시 살아나다

지난 주 수요일 오후 3시 쯤에 아직 밝혀지지 않은 이유로
오픈룩 서버가 죽었는데, IDC에 들르지 못해서 좀 늦게 오늘
복구 되었습니다. ^.^ 그동안 방문했다가 허탕치신 분들께
양해의 말씀을 (_ _)

하드디스크 문제인 줄 알고, 오픈룩, 대안언어축제, 파이썬마을, 동아리 홈페이지가 다 날아가는 줄 알고 막 가슴이 철렁 했는데, 다행히도 무사하네요 ^^ 이제 열심히 백업을 해야 겠습니다. (늘 말로만;)

이제 인크리멘털 백업이 되는 백업 도구를 적당한 것을 구해서 알아봐야겠네요. 킁.. 어디 쉽고 간단한 것 없을까요? ;

복구에 많은 도움을 주신 티이님, 업동님, 김종X님(모자이크처리 -o-)과 대안언어축제 위키가 죽어서 손으로 수금 작업 열심히 해주신 송수생님 등에게 각별히 감사의 말씀을 드립니다. ^.^;

OpenSSL SEED 패치 업데이트

지난 1월에 올렸던 OpenSSL SEED 패치업데이트하였습니다. 그런데, 지난 6월에 일본의 표준 블럭 싸이퍼인 Camellia가 지난 6월 OpenSSL에 들어갔습니다. SEED와 마찬가지로 새로운 사이퍼를 추가하는 것이다 보니 대부분의 위치에서 패치가 겹쳐서, 결국 지난 번 패치 대부분 파일이 충돌이 있어서 수정할 게 산더미더군요;; — OpenSSL RT #1273번 참조

얼마 전에 패치했던 libgcrypt에 대한 SEED패치는 일단 개발자들이 적극적으로 작업의사를 밝혀와서, GNU에 저작권 할당 과정만 끝나면 거의 바로 적용될 수 있을 것 같습니다. 국제우편으로 문서가 오는거라 그런지 몇 주일씩 걸리는군요 -.-;

최근에 SEED를 개발한 한국정보보호진흥원(KISA)에서 OpenSSL등 오픈소스 소프트웨어에 SEED 지원을 넣는 것에 대해서 정치적 작업을 포함해 적극적인 대응을 하기로 했다고 합니다. 그래서 OpenSSL 패치가 앞으로 힘을 받아서 빨리 등록될 수 있지 않을까 기대해 봅니다. ^_^;

SKT 전화기용 일회용 패스워드(OPIE) 생성

항상 ssh로 서버에 접속해서 메일도 확인하고 채팅도 하고,
간단한 계산도 하고, 실험도 해보고 하는 일상적인 생활에서
학교나 게임방, 병원 같은 데서 아무나 쓰라고 내놓은 컴퓨터에서
ssh 패스워드를 입력하기란 찝찝하기가 짝이 없습니다.
뭔가 깔려있는 프로그램도 수백만개에다가.. 이거 바이러스
잡는 프로그램도 한 5개씩 깔려있는데 그놈들이 뭔가 더 바이러스
같아 보이고.. 그나마 치료도 안 될 것 같고.. 키보드 입력하는
걸 누가 사진 찍고 있을 것 같은 기분도 들고.. -ㅇ-;

그래서 지난 겨울에는 opiekey로 미리 일회용 패스워드를 여러개 뽑아서 종이에 인쇄해 다녔는데, 이게 또 맨날 까먹고 패스워드 다 됐을 때 보충해 놓지 않으면
접속하지 못하고, 종이에 적어다니다보니 잃어버릴 위험도 있고
해서 어제 전화기용 OPIE 제너레이터를 만들어 봤습니다.

OPIEKey 스크린샷

요즘 세상이 좋아져서 자바 문법도 모르는데 IDE가 시키는 대로만 하니까 뚝딱 되더군요. (난생 처음 짜본 자바 프로그램 -O-;;)

SKT 전화 쓰시는 분들은 한번 해보세용. 다운로드는 무료인데, 데이터 요금은 듭니다. (데이터 무제한 요금제이면 안 들고..)

처음 자바를 하는데 도움을 많이 주신 랫쓰님께 큰 감사 드립니다~ ^.^

싸이월드도 OPIE 지원하라~~ (먼산)

네이버사전체 윈도우 없이 풀기

요즘 굴림체를 합법적으로 쓰는 방법으로 네이버 사전체가 인기를 얻고 있습니다. 상당히 좋은 품질의 비트맵 글꼴을 포함하고 있고, 라이선스도
OS 제한 없이 아무데서나 쓸 수 있게 하고 있어서 썩 괜찮은
선택인 것 같습니다. 흐흐

포트로 등록하기 위해서, 조금 쳐다봤는데 NSIS 인스톨러로 되어있어서 exe를 실행해야 하게 되어있네요~ 그래서 FreeBSD에서
풀 방법을 찾아보다가, p7zip에서 NSIS 설치파일을 풀 수 있다는 것을 발견했습니다.
그런데, p7zip이 C++ 프로그램에 템플릿을 와장창 써버리는 바람에..
컴파일이 어찌나 느린지.. 그래서 포트에서 잽싸게 설치하는 데
문제가 좀 많아서 결국은 디버거로 한참 뚫어져라 쳐다봐서,
파이썬으로 p7zip에서 하는 짓과 비슷하게 한번 만들어 봤습니다.

p7zip은 없고 python이 있으시면 요 방법으로 간단하게 풀어보세요~ -O-

애자일 컨설팅의 영향력!

어제 저도 여기 올린 적이 있는 대안언어축제 2006 참가신청이 굉장한 성황을 이루며 불과 하루만에 150명이 마감되고 대기자가 거의 20명이 되고 있습니다. 상상을 뛰어넘는 이 상황에 아주 감동받고 있습니다. -O-; 처음에 소프트웨어진흥원측과 얘기할 때 과연 200명의 열성적 참가자를 쉽게 모을 수 있을까 생각을 했었는데, 이거 400명으로 해도 며칠 안 가겠네요! +_+

과연 어디서 오셨을까 궁금해서, HTTP 참조 페이지 주소로 통계내어 보았습니다. (방문 수)

애자일 컨설팅의 위력이란! 이번 대안언어축제는 상당히 XP적인 분위기가 날 것 같습니다. ^.^ 게다가, 전체 방문자 수가 250명을 넘지 않는데, 170명 정도 신청하셨다는게, 대안언어축제 참가자 분들은 모두 열의가 가득차 계실 것 같네요!

이제 대기자가 쌓이고 있지만, 그래도 혹시나 꼭 참여해야겠다 싶으시면, 자주 방문하시면 언젠가 깜짝 등록이 약간 있을 지도 모르겠습니다. 🙂

9월의 행사

9월에 두 행사에서 발표를 맡았습니다. 혹시 직접 만나서 물어보실 것이 있으시거나, 전해주시고 싶은 선물-ㅇ- 이 있으시면 오시면 좋을 것 같습니다. ^o^

9월 1일~3일: 대안언어축제에서 Io언어 튜토리얼을 1시간 30분 정도 진행합니다. Io 언어는 문법이 안 독특한 듯 하면서도, 독특하고 자유도가 별로인 것 같으면서도 굉장히 자유로운 재미있는 성질이 있는데요, 혼자 공부하기 귀찮으시면 오셔서 같이~ 물론, 대안언어축제의 다른 행사들도 ∑n=0,∞{정말정말} 재미있습니다. 요즘 참가신청을 받고 있으니 일정을 확인해 보시고 등록하세요~ (마감임박!)

9월 17일: KLDP 10주년 기념 컨퍼런스에서 “오픈소스 프로젝트에 참여하기”라는 제목으로 발표할 예정입니다. 그냥 사용자로써 종종 불편한 점을 패치해서 개발자들에게 보내주는 방법부터 개발자가 되기 위한 중간 과정, 개발자가 되고 나서 있는 여러 인간관계까지 다양한 상황에 대한 소개를 조금씩 해드리려고 합니다. 구글의 Greg Stein도 온다고 하니, 구글에 관심 있는 분들도 오시면 재미있을 것 같네요~ — 아마 Greg Stein의 발표는 그동안의 발표 내용으로 미루어보아 Python과 MySQL에 대한 내용이 주가 되지 않을까 생각합니다.

최적화와 수학

애자일 블로그에 올라온 프로그래머와 수학을 읽고 전에 경험했던 것을 짧게 써 봅니다.

프로그램을 하다보면, 뭔가 하고 있는 것이 비효율적인 것 같은 느낌이 약간은 들지만, 최적화가 충분히 되어있다고 느낄 때가 많습니다. 더 속도가 필요하다면, 더 빠른 언어와 여러 트릭을 동원해서 빠르게 하곤 합니다. 극단적인 경우를 예를 들어서, 항상 예제로 많이 쓰이는 피보나치 수열을 한 번 보겠습니다. 실제 프로그래밍이 피보나치 수열처럼 간단한 루틴일 리도 없고 그렇게 반복적으로 호출될 일은 없겠지만, 그래도 극단적인 예를 보면, 그 특징을 다른 곳에서 활용할 수 있을테니까요~

일반적으로 피보나치 수열 n번째를 구하는 루틴은 파이썬으로 이렇게 합니다.

만약 피보나치 수열의 200005번째 수 “주변”의 것이 정확할 필요는 없고 대충의 값이 필요해서 호출한다면, 제 컴퓨터에서는 대충 2.82초 정도가 걸립니다. 그런데, 이런 루틴이 적어도 초당 100번 이상은 호출되어야 하는 상황이 왔다고 치면 보통 이런 대안을 생각합니다.

  • 파이썬이 느리니까 C로 하자!
  • a, b는 터플이 묶였다가 풀리면서 메모리 할당을 하니까 따로 따로 하게 2줄로 분리해 보자.
  • 내가 요새 어셈블리에 재미를 붙였는데, 어셈블리로 하면 레지스터도 충분히 활용하고 빠르지 않을까?
  • 루프를 매번 돌리는 것은 비효율적이니까, 16번에 한번씩 돌게 풀어쓰면(unroll) 빨라질거야!

자.. 그런데, C로 하면 과연 얼마나 빨라질까요. 200005번째 피보나치 수는 64비트로 커버가 안 되는 수이기 때문에, 빅넘버 라이브러리를 쓰다보면 결국 시간이 제법 걸리고, 속도도 생각보다는 별로 빠르지 않습니다. 어셈블리로 하면? 과연 오늘 퇴근 할 수 있을까요..

여기서 경험많은 프로그래머는 알고리즘을 휙 보고, 이런 코드로 최적화를 합니다.

200005번째 수를 주는데 걸리는 시간이 눈깜짝할 새 입니다. 아이 그런데, 또 주변의 수가 더 필요해졌습니다. 그래서, 좀 더 많은 범위에서 캐시를 할 수 있게 데코레이터도 쓰고 해서 멋있는 캐시를 넣어서 정말 더 빨라졌습니다. 그랬더니 이제는 메모리를 너무 많이 먹습니다! 결국에는 캐시 관리 기능에 메모리가 얼마인지 보게도 만들어서, 이 프로그래머는 주변의 존경을 받습니다.

그러나, 이때 옆에서 보던 한 수학자가 종이에 뭘 끄적거리더니, 이렇게 하면 안 되겠냐고 조심스럽게 코드를 한손가락으로 톡톡 쳐줍니다.

아! 아.. 프로그래머는 뭔가 속은 기분이 들었습니다. 그래서 유심히 보니까, 실행해 보면 정확한 값이 나오지는 않았습니다. 그래서 따져보고 싶었지만 필요한 것은 그냥 대충 화면 좌표를 잡는 것이라 유효숫자 6개 정도만 하면 넘칠정도라는 사실에 슬펐습니다.

컴퓨터 전공 학생들은 대부분 4학년 되면, 적분기호를 까먹을 정도로 수학을 쓸 일이 없습니다. 그런데, 간단한 프로그래밍의 수준을 지나면 생각보다 훨씬 수학을 활용할 수 있는 일이 늘어나는 것 같습니다. 물론 굳이 수학 뿐만 아니라, 넓게 봐서 논리의 흐름과 여러가지 알고리즘적인 방법, 패턴 등이 있겠죠.

모니터 가까이에서 코드를 보고 있으면, 앞에서 본 C로 하면 무조건 제일 빠를거야!, 터플 때문에 괜히 메모리 할당하는 것을 줄이면 정말 빠를거야! 라는 생각을 늘 하게 되기에 마련이지만, 가끔은 좀 멀리서 최적화에 조바심을 내지 않으면서 코드를 볼 기회도 가져봄 직 할 것 같습니다.

“Real efficiency comes from elegant solutions, not optimized programs.
Optimization is always just a few correctness-preserving transformations
away.” – Jonathan Sobel, 《Is Scheme Faster than C?》에서

붙임: 중간에 든 예가 좀 과장이 심해서 죄송 -ㅇ-; 글의 원래의도가 피보나치 수열을 최적화하자는 것은 아닙니다. ^^;

대학원 지원에 대한 조언을 구합니다~

언제 졸업할 지 까마득했던 저도 이제 2007년 2월에 졸업하게 되었습니다. ^^; 하고 싶었던 길에 좀 더 가까이 가기 위해서, 여러모로 알아봐서 이제 다음 주부터 원서를 접수하는 대전에 있는 모대학의 바이오시스템학과에 지원해 보려고 합니다.

그래서 여러 분야에 경험이 많으신 오픈룩 독자 여러분께 조언을 구해 봅니다. 뭔가 구체적으로 물어볼 것이 있는 것은 아니고요~ 원서 작성할 때 알아두면 좋은 점, 인터뷰 들어갈 때 알아두면 좋은 점 이라던지 연구실 선택의 주의점, 다른 학교가는 것이 좋지 않겠느냐 등등 여러가지 임의의 주제 어떤 말씀이든 좋습니다~

주변 설명을 드리자면, 저는 지금 다니고 있는 과는 기계전자공학부인데, 전공은 정보산업공학입니다. 그리고, 부전공으로 생명공학을 하고 있긴 하지만, 아직 1학기 남았기 때문에 부전공 승인이 난 상태는 아닙니다. 생물 분야에서는 아직 시작한지 얼마 되지 않아서 기초적인 유기화학, 생화학, 미생물학, 물리화학, 생체공학 같은 것만 들었고요, 분자생물학이나 세포생물학은 다음 학기에.. 제 관심 분야는 단백질 3/4차 구조/기능 예측, 컴퓨터-보조 단백질 설계, complex gene regulation network modelling 분야입니다. 그리고, 난감하게도, 다른 보통 지원자들에 비해서 학점이 택도없이 낮기떄문에 별로 상황이 좋지는 않은 편입니다. 아하하 ^^; (그래도 혹시나 하고 한 번 –;)

말씀 부탁드리며 (_ _)*