파이썬 2.4 파이널 릴리스

동아시아 사람들이라면 누구나 기다렸을 파이썬 2.4가 드디어 정식 릴리스가 되었습니다.:)

다운로드는[WWW]여기에서 하실 수 있고, FreeBSD 포트는 레포카피를 해야 하기 때문에, 재수가 좋으면 모레 정도면[FreshPorts]lang/python을 업데이트하고 2.3을 lang/python23 으로 몰아낼 수 있을 듯 합니다. (요새 레포카피 요청을 안 해봐서 레포카피가 금방 되는지는 잘 모르겠;)

흐흐 지금까지 뭐 지겹게 많이 들으셨겠지만 파이썬 2.4의 주요 변경점을 간단히 요약해 보자면,

  • 빨라짐(list, tuple 등의 기본적인 것들이 최적화가 되어서 2.3에 비해 15~20%정도 기본적으로 빨라졌음.)

  • 펑션 데코레이터 등장 (@xxx)

  • None이 상수로 변경

  • sets빌트인 타입의 등장! (엄청 좋습니다! 꺄아~)

  • int, long의 통합 (이제 int에서 비트 연산을 해서 넘치면 자동으로 long으로 변환)

  • 서지원님이 구현하신 제너레이터 익스프레션 등장 sum(x for x in range(5))

  • 역 이터레이터 등장 (reversed)

  • decimal 모듈 들어옴. (이제 0.3+0.3이 0.6이 아니라고 걱정할 필요가 없습니다!)

  • CJKCodecs가 표준 파이썬 안으로 들어감.

  • heapq 모듈이 C로 재구현되면서 약 10배정도 빨라짐.

  • profile 모듈이 이제 확장 모듈의 함수들도 프로파일링 가능.

  • 셸 스크립트식의 스트링 대체를 위한 string.Template 등장.

이 외에도 여러가지 변경사항이 더 있는데, 자세한 것은 amk의[WWW]What’s New in Python 2.4를 참조하세용.

:)

28사단 가는 길

wayto28.jpg

흐흐.. 드디어 말년 병특의 특권! 훈련 소집이 나왔습니다! 꺄아 +_+

근데 군대 갔다온 사람들이 다들 겨울에 가면 동상걸린다고 가지 말래서.. 고민이군요 –; 연기 어떻게 하는지도 잘 모르겠고..;; 흐흐..

자바스크립트에서 다른 프레임의 함수 호출하기

고객의 꿈을 실현하려는 도중에.. (.. 우어~) 자바스크립트로 도배가 되어 있는 웹 화면에서 숨은 프레임을 통해 서버와 통신해서 숨은 프레임이 또 상위 프레임을 제어해야 할 일이 생겼습니다. 양쪽에 모두 코딩을 하자니, 몇가지 전역변수에도 접근을 해야하기에 js를 양쪽에 모두 포함하기도 그렇고.. 여러모로 딱히 대책이 없어서 한참을 고민 끝에 하나 해결책을 만들었습니다. -O-

므흐흐.. 빈 구멍에 input 태그를 하나 넣고 거기서 onclick을 통해서 호출을~ 아아.. 깔끔하게 document.getScriptFunction 뭐 이런 것 있으면 참 좋을텐데 말이죠.

공중 무선랜 공짜로 쓰기

무선랜 서비스 AP가 요즘 지나다니다보면 정말 많이 잡힙니다. -o- 아 이거 등록을 해서 쓰기는 또 너무 쓸 일이 없고.. 가끔가다가 한번 쓰면 정말 좋은데.. 하고 참 아쉬운데, 언젠가 미국의 어느 호텔에서 IETF 회의가 있었을 때 IP over DNS 같은 ㅂㅌ 프로토콜들이 마구 만들어져서 단체로 돈을 안 내고 인터넷 했다는 얘기가 생각나서 해 봤습니다. 므흐흐

원리

원래 무선랜은 이런 과정을 통해서 접속하도록 되어 있습니다.

  • 서플리컨트(고객측 기계)가 AP를 스캔한 뒤에 접속할 AP에 접속(Associate)요청.

  • AP가 서플리컨트에 EAP-Start 보냄.

  • 서플리컨트가 원하는 인증 프로토콜과 껍데기 ID를 적어서 EAP-Response를 보냄.

  • AP가 받은 EAP-Response를 AAA(인증/과금서버)에 전송해서 답을 서플리컨트로 전송.

  • 인증이 완전히 끝날 때까지 3-4를 반복. (EAP-MD5는 2회, EAP-TLS류는 8~10회)

  • AAA측에서 EAP-Success가 오면 서플리컨트에 EAP-Success를 보내주고, 접속을 완전히 열어 줌.

  • 서플리컨트가 DHCP요청.

  • 정식으로 라우팅돼서 해당 망을 담당한 DHCP 서버가 IP 할당.

  • 끝.

  • 그런데, 우리나라 무선랜 서비스들은 사용자 가입 페이지를 보여주게 하기 위해서 자동 접속하게 하는 편법을 이용하느라 이런 방식으로 되어 있습니다.

  • 서플리컨트가 AP에 접속 요청.

  • AP는 가인증 상태로 서플리컨트의 접속을 열어 줌.

  • 서플리컨트가 DHCP서버에 IP 할당 요청.

  • DHCP서버에서 IP 할당.

  • CM(접속관리자)를 띄워서 AAA와 EAP 인증을 함. (물론 중간에 AP는 거침.)

  • AAA에서 EAP-Success를 보내주면 중간에 막아 놨던 포트들을 모두 열어 줌.

  • 끝.

  • 여기서 바로 문제가 되는 것은, 완전히 인증도 되기 전에 IP를 주고, CM 다운로드나 가입 신청 페이지같은 것을 제공해 주기 위해서, 몇몇 포트를 열어준다는 것인데, 국산 AP들은 대부분 53 udp, tcp를 그냥 열어버리고 80번은 투명 프락시로 어떤 호스트에 접속하던 ISP의 가입 페이지로 리다이렉트하도록 하고 있습니다. 여기서 바로 53번 포트가 열려 있다는 점에 주목! +_+

    응용

    53번 포트가 열려있으니 이제는 뭐 거기로 나가는 방법만! 우선 제일 세팅이 간단한 방법은 sshd를 53번 포트에 열어서 쓰는 방법.ssh -p 53 -L 8080:127.0.0.1:8080 대상호스트이런 식으로 하면 로컬 호스트의 8080번 포트가 sshd가 띄워져 있는 서버측의 8080로 포워딩되기 때문에, 서버측에 HTTP 프락시가 띄워져 있다면 웹도 다 쓸 수 있게 됩니다. 물론 좀 다르게 응용해서 53번 포트에 VNC나 rdesktop을 띄워놓는 방법도 있겠고.. 아예 L2TP를 어떻게 엮어버리면 완전히 VPN 터널로 응용도 가능하겠죠. 믓흥;

    현실적인 한계현실적으로는 53번 TCP 포트에 뭔가 터널에 응용할 수 있을만한 서버를 띄울 수 있는 사람을 대상이 제한됩니다. 따라서, 거의 대부분의 일반인은 사용할 수가 없고, 자기 서버를 갖고 있고, DNS 서비스를 안 하고 있는 경우에만 이런 방법이 사용이 가능하겠죠.

    해결책

    이런 방법을 막기 위해서는 53번을 모두 열어버리는 것이 아니라, AP의 기본 설정 DNS로 리다이렉트해버리는 방법을 접속을 허용하기 전에 사용해야 합니다. 그렇게 되면 53번을 아무리 열심히 시도를 해도 결국은 ISP측 네임 서버로 갈 것이기 때문에 딱히 방법이 없어집니다..:)

    만들어 낸 이미지의 링컨

    오늘 출근하면서 읽던 책에서 흥미로운 내용을 발견해서.. (요새 놀라움의 연속~ 흐흐)

    반면에 수 페이지 다음에 있는 다윈의 인용이 참 대조적으로 인상이 깊었습니다.:)

    흐흐 굴드가 다윈의 팬을 자처하고 있기 때문에 이러한 인용이 약간 속보이는 면도 없지만 그래도 나름대로 인종문제에 있어서는 상당한 영웅으로 알려져 있었던 링컨이 저런 면이 있었다는 것은 약간 실망스럽군요. -ㅇ- 흑흑~~~~~ 링컨 위인전에 이 내용을 쓰면 애들이 얼마나 실망할까요. ㅡ.ㅜ

    BincIMAP

    요즘 업무 상 한글 파일 이름을 첨부로 받는 메일이 많아지면서, gmail로 받는게 좀 불편해서 한번 말로만 들어 왔던[WWW]천둥새를 설치했습니다. 천둥새 아.. 역시 소문대로 아주 좋네요. 스팸 메일 처리하는 것이 특히!:)spamassassin에 피드백 넣기가 정말 불편했었는데..

    그런데, POP으로 받으려니 집 데스크탑, 바이오, 아이북, 회사 데스크탑 4대에서 다 따로따로 메일이 받아지니, 메일이 어디로 갈 지도 모르고 메일함 관리도 안 되고 상당히 불편해서 IMAP을 설치해 보려고 마음을 먹었습니다. 예전에 설치해 봤던 courier-imap은 가장 기본적인 서비스만 쓰는데도 데몬이 10개가 넘게 뜨니.. 부담스럽기가 한이 없어서, 다른 것을 찾아보던 중에[WWW]BincIMAP을 찾았습니다. 이놈은 qmail을 좋아하는 사람이 qmail 스타일로 만든 것이라 상당히 모듈라하게 만들어서 courier-imap같지 않게 그냥 daemontool이나 xinetd에서 서비스당 1개씩만 뜰 수 있도록 되어있어서, 리소스 절약에 큰 도움이 될 것 같은 예감이!

    결국 포트로 설치는 했는데, 이게 포트에서는 서비스 등록이라던지 이런게 하나도 안 되어 있어서 –; 결국은 수동으로 README 문서 보면서 설치하고 나니 거의 30분이 걸리는군요. (xinetd를 한 번도 안 써봐스.. 흐흐;) 그리고 생짜 imap은 아무래도 쓰기가 껄끄러워서 SSL을 세팅하고 나니 거의 1시간이.. 흐흐.. CA도 만들고~ -ㅇ-. 그런데, 세팅하는 도중에 Bincimap의 문서에서 아주 좋은 팁을 하나 발견했는데, 보통 raw 세션은 telnet으로 간단하게 테스트를 할 수 있지만, SSL 세션은 테스트하려면 클라이언트를 만들거나 stunnel같은 걸 쓰거나 상당히 불편한 편인데, Bincimap 문서 중에 테스트하는 방법이 간단하게 쓰여 있었습니다.

    openssl을 이렇게 쓰는 방법이 있었다니 흐흐. 앞으로 SSL 테스트하는데 꼭 써먹어야..

    bincimap은 메모리도 SSL 세션에서 4메가도 안 쓰고, 평소에는 그냥 xinetd만 떠 있어서, courier-imap에 비하면 정말 있는둥 마는둥! 그리고 기본 기능도 크게 떨어지는 것도 없어서 좋습니다~. awkn`n님 말씀에 의하면 데비안에서는 설치도 간단하다니 좋군요.:-)

    좋아요~

    0411-soojung.jpg

    은채 (임수정)

    호주 수도가 어디예요?

    무혁 (소지섭)

    캔버라.

    은채

    음.. 시드니 아닌가 시드니? 그럼, 한국 수도가 어디예요?

    무혁

    서울.

    은채

    엉.. 정신 이상한 사람은 아니구나.. 좋아요. 우리 사귀어요.

    나한테 물어봐도 잘 대답할 수 있는데…!!! (-ㅇ-);;

    INDEX는 갔습니다.

    FreeBSD ports의 구시대 유물 중 가장 어리숙했던
    /usr/ports/INDEX가 드디어 포트에서 지워졌습니다.

    아..
    이제 아련한 asami씨의 소인수분해 놀이,
    marcus의”ports freeze baby”도
    희미한 Attic에서나 볼 수 있게 되었습니다.

    이제 ports에서도 pkgsrc처럼 make index를 하거나
    아니면 make fetchindex로 서버에서 자동 빌드된 인덱스를 가져와야 합니다.
    오래된 포트 정보를 보여주고,”그래 이건 원래 이런 거야.”하고
    야릇한 감정을 느끼던 시절도 이제 옛 이야기가 되었습니다.

    있으나 마나 했던 make upgrade도 가고,
    슬프도록 이상했던 INDEX도 가고..
    이제 portupgrade -a 쳐놓고 넋 놓고 한나절 기다리면
    업그레이드 되어있는 말쑥한 포트만 남았습니다.

    (아멘 -ㅇ-)