고등학생을 위한 Summer of Code, GHOP Contest

Summer of Code를 여러 해 동안 성공적으로 운용해오고 있는
구글에서 드디어 얼마 전, 고등학생을 위한 행사를 공개했습니다.
이름은
The Google Highly Open Participation Contest
이고,
대상은 13세 이상이고 대학이전의 학교(한국에서는 초,중,고등학교)에 다니고 있는 사람입니다. 그리고, 북한에 사는 학생들은 참가가 제한됩니다. -O-
그동안 SoC가 대학생이 주 대상이었는데, 실제로 요즘은
고등학생들이 꽤 많이 참가하고 있고, 앞으로 오픈소스 새싹을 키우려면 (상투적이지만;;) 중,고등학생이 프로젝트에 적극적으로
참여할 수 있는 이런 기회가 생겨서 무척 좋습니다.

파이썬 재단의 GHOP 목록
보면 그다지 어렵지 않으면서도 파이썬의 중요한 부분에 재미있게
참여할 수 있는 여러 작업들을 가지고 있어서 중고등학생이
오픈소스 프로젝트의 마수에 걸려들게 하는 좋은 미끼일 것 같군요. 🙂

구체적인 형식은 Summer of Code와는 많이 다른데요, 큰 프로젝트를 멘터와 함께 만들어서 제안하는 방식이 아니라, 일정기간
(2007년 11월 27일부터 2008년 2월 3일까지)동안 이뤄낸 작은
작업들에 대해 보상을 받습니다. 쿠폰바꾸는 것과 비슷한데요, 도장 1개는 24달러짜리 티셔츠를 받을 수 있고, 3개는 100달러를 현금으로 받을 수 있습니다. 1인당 티셔츠 1개 + 500달러 현금으로 최대 상금이 제한되어있습니다.

구체적인 규칙은 GHOP 2007-8 Rules에 나와 있습니다. 우리나라의 열의 넘치는 중고등학생들이 많이 참가해서 다음 행사에 티셔츠 우루루 입고 참가하면 좋겠네요~ 🙂

파이썬 모듈 관광 4회: 기본제공 자료구조 겉핥기!

오늘은 파이썬에서 기본으로 제공하는 자료구조가 어떤
것이 있는지 겉핥기식으로 쭉 고속으로 관광가겠습니다~ 🙂

내장 자료구조

우선 기본 내장자료구조 str, unicode, list, tuple, dict, set 여섯가지에서 아무 기능이나 하나씩 써 봅시다. ^.^;

밑의 타입들은 보통 다른 언어에서는 자료구조라기보다는 그냥 primitive 타입이지만 그래도 그냥 나머지도 끼워줘 봅시다;

bool, frozenset 등등은 그냥 넘어갑시다 -ㅇ-;

이제 기본 자료형을 보았으니 다음으로 표준 확장 모듈 자료구조들을..

표준 라이브러리 자료구조

작은 값을 많이 저장할 때 효율적으로 메모리또는 디스크에 들고 있을
수 있는 array
모듈입니다.

heapq
모듈은 기본 list자료형을 가지고 우선순위 큐(priority queue)
쓸 수 있게 해줍니다. 스케줄링 루틴 같은 곳에서 정말 편리합니다.
속도가 무진장 빠릅니다. 🙂

bisect
모듈은 정렬된 list에서 이진검색법으로 자료의 위치를 찾아줍니다.
dict로 다루기에는 자료의 양이 많거나, 순서가 중요한 경우에 쓸만합니다.
아래 예제는 동전을 몇 번 던지면 앞면이 나오나 같은 경우를 나타내는

기하분포
랜덤함수를 bisect로 만든 방법인데, 그냥 계산해버리는
방법도 있지면 예제를 위해서 –; (실제로 분포함수가 없고 그냥 이산확률만
덩그러니 주어졌을 때 bisect가 꽤 쓸만합니다.)

다음은 어정쩡한 이름을 달고 있는
collections
입니다.

빼놓으면 서운하니까
bsddb
도 한 번..

이 외에도
UserString,
UserDict,
StringIO,
decimal,
Queue
등 유용한 것이 많이 있습니다만, 신비감 조성을 위해서 모두 소개하지 않고
이쯤에서 마칩니다. =3=33

파이썬 모듈 관광 3회: durus

별로 관심있는 분들이 없는 것 같아서 다음 편을 안 쓰고
있었는데, 오늘 어딘가에서 모듈 관광을 읽었다는 분을 만나고
어딘가에는 읽는 분이 있구나! 싶어서 생각난 김에 한 번 또 씁니다;

오늘의 모듈은 durus 입니다. 이미 SCGI같은 여러 프로그램들로 유명한 CNRI MEMS-Exchange 팀에서 만들었습니다. 원래 파이썬 뿐만 아니라 다양한 환경에서 캐시 공유나 분산 배치 작업 같이 한 데이터 공간을 여러 프로세스가 써야하는 경우에는 memcached가 거의 압도적으로 많이 쓰이는 솔루션이겠지요. durus는 이와 비슷한 역할과 표준 shelve의 기능이 모두 필요한 경우에 요긴하게 쓸 수 있습니다.

미리 서버를 띄워두고.

시험삼아 접속해서 UUID 객체를 하나 넣어봅니다.Watch Full Movie Online Streaming Online and Download

이렇게 되면 서버에 커밋되었다는 메시지가 보입니다.

이제 다시 클라이언트를 따로 띄워서 접속해서 확인해 봅니다.

역시 MEMS Exchange에서 만들었던 다른 작품들과 같이 기능도 괜찮으면서 단순해서 속도도 쓸만합니다. 여러 프로세스가 협업하거나 임시로 떴다 죽었다 하는 프로그램들에서 객체를 다뤄야할 때 쓰면 좋겠네요. ?

네이트온 클라이언트 FreeBSD 포트

가족, 친구를 포함한 일반인들과 대화하려면 상당히 필수품 중의
하나가 되어버린 네이트온. 얼마
전에 리눅스용과 맥용이 공개돼서 KLDP에서도 한동안 이슈가 됐었는데요.
그동안 pidgin용 nateon
플러그인을 쓰다가, 자꾸 gaim/pidgin을 업데이트할 때마다 자꾸
컴파일이 안 되거나 안 돌거나 그러는 일이 발생하고 그룹 대화가
안 된다거나 몇 가지 불편한 점이 있어서 호기심에 한번 리눅스용을
깔아 봤습니다.

네이트온 리눅스용은 버전 번호가 1.0 베타임에도, 웬만한 프로그램들 0.1 버전보다도 못한 빌드체계/배포구조로 되어 있어서 리눅스가 아닌 플랫폼에서 빌드하기는 간단하지 않았지만, 다행히도 automake/autoconf를 직접 안 하고 리눅스에서 한 것을 FreeBSD로 들고 와서 넣어서 돌리니 그런대로 잘 되더군요; 결국 수 시간 작업 끝에 포트를 하나 만들었습니다. 🙂

하나 조심하셔야할 점은, knateon이 GPLv3로 배포되어서 쓰는 것은 자유이기는 하지만, KNateOn 네이트온 서비스 약관에 보면 이런 조항이 있어서, FreeBSD 사용하다가 계정이 막히거나 할 수도 있으니, FreeBSD에서 쓰고 있다고 어디 가서 티내시면 안 됩니다. -ㅇ-;; 조용히 리눅스 쓰고 있다고.. ;; 으흐;

제7조 (서버 접속 관련)
.. 중략 ..
④ 회사는 다음 각 호의 경우 서버 접속을 중단시킬 수 있습니다.
1. 회사의 접속허가를 받지 않은 경우
2. 리눅스(Linux) 운영체제 외 다른 운영체제를 통해 서버에 접속하는 경우
.. 하략 ..
knateon 소스코드이용및서버접속약관 중 (오자는 제가 임의로 수정하였습니다.)