DotGNU WinForm 대회!

Mono에 밀려 불쌍한 신세가 되고 있는 [WWW]DotGNU 프로젝트에서 첫번째 코딩대회를 한다고 합니다. 이번 대회에서는 .NET GUI의 가장 중요한 요소이자 MS.NET 호환성을 위한 가장 삽질부분이라고 생각되는 WinForm 호환성 구현을 목표로 한다고 합니다. 8월 26일에 시작해서 4개월간 진행하게 되는데, WinForm의 완벽한 구현이 안 나올 경우에는 나올 때까지 한다고 하는군요.

그리고 상금은 1등이 2000달러, 2등이 600달러.. 해서 5등은 200달러입니다. 별로 다른 대회들에 비해 상금이 큰 편은 아니지만, 그래도 명목상 :) 에헤헤. 과연 이번 대회로 WinForm 오픈소스 구현이 나올 수 있을까요? GPL로 선언해야 한다는 강제 규정이 붙긴했지만.. 뭐 쓸 수만 있다면야;;;

참고: http://www.gnu.org/projects/dotgnu/competition.html

Cursed GTK+!

헉~ GTK+가 저주를!! 꺄아~*

GTK+ 2의 cursed 바인딩인 gtk+-cursed가 대략 베타가 나왔군요. 역시나 [FreshPorts]graphics/aalib 만큼이나 변태짓이긴 하지만.. 뭐 이런 재미로.. ;; 으흐흐

gdk쪽 패치는 gtk-linux-fb를 뜯어 고쳐서 만든 녀석이라 리눅스 fb쪽 헤더파일과 상수를 여기저기 엄청 많이 쓰고 있습니다. 그래서, 프비에서 컴파일하려면 헤더파일 인클루드를 지워주고 함수 쓰는 부분 주석처리 해버리고 해야하는데.. 이것 뭐 대충 뜨기만 하면 되는 거고 실제로는 안 쓸 거니깐 -ㅁ-;

컴파일이 끝나면 LD_PRELOAD로 gdk와 gtk를 엎어버리면 gtk애플리케이션들이 모두 cursed 기반으로 뜨게됩니다. 몇가지 테스트해보니 [FreshPorts]audio/liteamp 는 콘솔에 아무것도 안 나오고 곡이 단축키로 플레이는 됩니다. 그리고 [FreshPorts]www/mozilla 는 신비롭게도 그냥 X용이 퍽 떠버립니다. 그 외에 [FreshPorts]net/gaim 이나 [FreshPorts]x11/xffm4 같은 것도 시도는 해 봤는데 전부 segfault나버립니다. 그리고 한글이 제대로 안 나오고 전부 ?로 나오는데 이건 어디쪽 문제인지는 잘 모르겠네요.

그럼 기념으로 gtk-cursed에서 잘 돌아가는 애플리케이션 [FreshPorts]korean/gdick 의 원래 모습과 저주받은 모습 =3 =333

0308-cursed-gdick.png

오늘의 FreeBSD~*

와와 오늘의 늬우쓰~

  • 드디어 한다한다 하고 여태까지 안 하고 있었던 Java for FreeBSD가 공식적으로 발표되었습니다. 이제 Sun에서 공식적으로 인증받은 자바 플랫폼으로 1.3.1을 쓸 수 있게 되었습니다. 1.4 포팅 작업은 아직 좀 많이 남았기 때문에, 좀 더 기둘려야겠네용. 흐흐. 코드 명이 JRE가 Latte Diablo, JDK가 Caffe Diablo … -O- [WWW]FreeBSD Foundation 웹페이지에서 받을 수 있습니다. (포트 엔트리는 [FreshPort]java/diablo-jre13 [FreshPort]java/diablo-jdk13 입니다.)

  • 4.9 코드 프리즈 시작: 9월 중에 릴리즈될 4.9를 위해 오늘부터 코드 프리즈가 시작되었습니다. 지금부터 -STABLE 트리에 커밋되는 내용은 전부 릴리즈 엔지니어의 허락을 받은 주로 치명적인 보안 패치들입니다. 그래서 지금 -STABLE을 업데이트하시면 이제 4.9-PRERELEASE로.. 흐흐;; 포트 프리즈는 9월 첫째주에 있을 예정입니다. 포트 프리즈 전에 꼭 고쳐야 될 것이 있으면 지금 즉시 알려주세요~ :)

  • sendmail 보안버그: 보안버그의 대명사(–;;) sendmail에서 또 버그가 발표됐습니다. 이번 버그는 DNS 맵을 처리할 때 라운드로빈 테이블을 초기화하지 않아서 쓰레기값을 통해 외부 공격이 유입될 수 있다는 것 같군요. 4.6, 4.7, 4.8, -STABLE, 5.0, 5.1, -CURRENT 트리에 지금 고쳐져 있습니다. 참고: http://www.sendmail.org/dnsmap1.html

msdosfs utf-8 성공!

으히히.. 순전히 mp3를 들으려고 시작한 작업인 msdosfs 유니코드 지원 작업.. 중간에 2 나누기를 안 해서 한참 커널 패닉을 만나서 고생하긴 했지만, 크게 어렵지 않게 성공했습니다! 짠짠~~

프프프.. 주로 Apple쪽의 소스를 그냥 갖다 붙이기를 했기 때문에, 사실 뭐 만든거라고는 함수 2개 밖에 없지만.. ;; 이제 libiconv로 utf-8을 떼내고 msdosfs가 iconv를 쓰도록 한 뒤에, PR을 보내려고 합니다. :)

우유 속에 진짜 망고 과즙 ^듬뿍

요즘 효리누님의 영향으로 망고 열풍이 엄청난 가운데~ (어제는 신촌에 지나가다가 어떤 40대 아줌마가 50대로 보이는 아저씨한테 델몬트 망고 캔을 주면서 “야 난 이게 젤 맛있더라☆ 너도 먹어봐~♡”라고 아주 아양떨면서 얘기하는 것을 봤습니다. -ㅁ-;;;;;;;) 드디어, 가난한 망고팬들을 위해 “우유 속에 진짜 망고 과즙 ^듬뿍” 이 나왔네용~

0308-mangomilk.jpg

아히히 근데 소감은?

별로;; 뭔가 너무 진짜 망고라서 그런지 약간 신 비린내랄까.. 델몬트 망고의 가식적인 달콤한 그 맛이 없더군요;; 역시 델몬트 망고가 최고 (*⌒.^)^

아론 키보드 새로 삼

저번주에 [WWW]장호언니와 마지막 밤을 새다가 커피를 쏟는 바람에 아론 키보드를 망가뜨린 이후에.. 우울하게 삼성키보드를 쓰고 있다가, 드디어 아론키보드를 새로 샀습니다. 으흐.. 삼성키보드는 아무래도 너무해서 –;;; (아래 키보드를 자세히 보세요 히히히)

0308-keyboard1.jpg

원래 스크롤락 색깔이 촌스러운 노란색이었는데, 초록색으로 바뀌었더군요 :) 에헤헤 아이좋아~~

0308-keyboard0.jpg

Guido와의 인터뷰

얼마전 OnLamp[WWW]Guido van Rossum과의 인터뷰가 올라왔습니다. 얼마전에 귀도가 Zope를 떠나서 다른 회사로 간다고 발표한 것도 있고, 2.3과 2.3.1얘기도 있고 해서 인터뷰 내용이 아주 재미있는 게 많네요 :) 그동안 파이썬 문법이 계속 복잡해지면서(관점에 따라..) CP4E를 포기한 것인가! 하고 주장하는 사람도 있었는데, 아직 Guido는 CP4E가 어느 정도는 지금도 말이 된다는 입장이군요 으흐흐;;

FreeBSD Dynamic Root

엊그제 블로그에서 언급되었듯이, 예전부터 논의되어 왔던 Dynamic Root가 이제 커밋되었습니다. 흐흐 근데 디폴트는 아니기 때문에 WITH_DYNAMICROOT=yes 를 /etc/make.conf를 넣고 make world를 해주면 Dynamic World로 갑니다. 흐흐 그런데 주의할 점이.. 그냥 마구 했다가는 인스톨하는 도중에 cp나 install같은 바이너리가 동적으로 바뀌어버려서 인스톨이 뻑나면서 시스템 쫑나는 -_- 문제가 생기니까, 최근에 /rescue 생기기 전에 make world하신 분들은 반드시 /usr/src/rescue가서 make install을 먼저 해 주고나서 make installworld를 해야합니당. 에.. 혹시나 벌써 rescue 인스톨하기 전에 installworld해서 이미 쫑난 상태다 싶으신 분들은, 다음 명령으로 우선 응급 처치해 놓으면 그 rescue를 make install할 수 있을 정도로는 됩니다.

예. 이렇게 해서 Dynamic Root를 만들고 나면 이제 다음과 같이 /bin에 있는 것들이 동적으로 나옵니다.

Dynamic Root가 도입되었을 때의 장/단점은..

  • 장점

    • 디스크 용량을 조금 먹는다: 원래 /bin /sbin은 크런치 바이너리가 아니므로 따로따로 static 바이너리라서 엄청나게 먹었습니다. 그런데, 이제 동적 라이브러리로 링크됐기 때문에, libc부분이 공유돼서 줄어들었고, /rescue의 바이너리들도 전부 크런치된 바이너리 라서, 디스크 용량을 전체적으로 훨씬 적게 먹습니다. NO_RESCUE=yes 하면 더 줄일 수 있지만 요것만은 하지 맙시다 =3 =33

    • 플러그인 형태의 공유 라이브러리를 쉽게 쓸 수 있다: nss(dns 캐쉬), pam(Pluggable Authentication Module) 같은 플러그인 형태의 모듈들을 쉽게 쓸 수 있게 됩니다. 그동안 pam같은 경우에는 /bin/login 같은 곳에서 쓸라면 아주 힘들었는데, 이제 pam을 붙일 수 있는 형태로 만들 수 있으니 만세입니당.

    • 휴지통이나 libfsxlat같은 라이브러리를 쓸 수 있다: LD_PRELOAD 흑마법을 기반으로 한 시스템콜 가로채기 라이브러리인 trashcan이나 libfsxlat같은 것들을 이제 /bin /sbin에 있는 녀석들 한테도 쓸 수 있겠죠.

  • 단점

    • 업글 잘못하면 클난다: 리눅스 사용해 보신 분들은 몇 번 겪으셨겠지만, Dynamic Root는 업글 잘못하면 난리가 나서.. 아주 고생을… 그래서 FreeBSD에서는 /rescue에 원래 /bin과 /sbin에 있던 바이너리 전체를 크런치해서 넣어두었습니다.

    • 실행 속도가 느려진다: 공유 라이브러리들을 쓰면 프로그램이 뜰 때마다 리로케이션하느라 힘들어져서, 뜨는 속도가 제법 느려지고, PIC(Position-Independent Code) 생성때문에 최적화에서 불리해져서, 또한 별로 좋은 효과가 들어가지는 않습니다.

흐물~ 뭐.. 5.2에서 너무 많이 바뀌고 있는 것 같아서 좀 불안하긴 하지만, NetBSD도 그랬듯, 뭐 좀 지나면 괜찮아 지겠죠 -ㅁ-;