CJKCodecs 1.0.3 RC

http://people.freebsd.org/~perky/cjkcodecs-1.0.3c1.tar.bz2

CJKCodecs 1.0.3 RC를 공개했습니다. 일본인들에게 리뷰를 요청했는데, 결과를 받아본 뒤에 1~2일 내에 정식 릴리즈를 할 예정입니다.

수정된 사항은:

  • ISO-2022-JP 코덱들에서 JIS X 0208의 0x21/0x40이 원래 매핑이 되어있지 않던 것이, U+FF3C에 매핑되도록 바뀌었습니다.

  • ISO-2022 코덱들이 JIS X 0208:1978 시퀀스를 인식하지 못하던 문제를 고쳤습니다.

  • ISO-2022-JP{,-1,-3} 코덱은 이제 SI, SO를 사용하면 디코드 에러를 냅니다. (JapaneseCodecs 와의 호환성)

  • EUC-JP, SHIFT-JIS 코덱에서 사용자 정의 구역(PUA) 지원을 제거했습니다. 실제로 일본인들은 이 구역을 안 쓴지 오래됐다는군요.

  • ISO-2022 코덱들의 디코더에서 MSB가 세팅된 글자가 넘어오면 디코드 에러를 냅니다.

  • ISO-2022-JP 코덱들이 이제 JIS X 0208:1997 시퀀스 (ESC & @ ESC $ B)를 지원합니다. RFC에 등록된 것은 아니지만, 실제로는 쓰인다기에..

  • 진짜 ISO-2022-JP-EXT 코덱이 들어갔습니다. (ISO-2022-JP-1 + JIS X 0201 반각 카타카나 지원)

리눅스에서 FreeBSD로 변신하기 – Depenguinator

[FreshPorts]security/freebsd-update 로 유명한 Colin Percival이 또 한번 사고를 쳤군요 :)

NetBSD쪽에서도 뭔가 방법이 나온 듯한데, 하여간 잘 돌아가는 [WWW]리눅스에서 FreeBSD를 까는 방법을 공개했습니다. :) 콘솔에 직접 접근할 수 없는 원격 머신에서도 깔 수 있다는 것이 장점인데, 이걸로 스스슥하다가 실패하면. (-ㅇ-;) 구체적으로 쓰인 방법은 [FreeBSDMan]dd 로 임시로 인스톨러를 원격에서 접근할 수 있도록 띄워주는 부팅 디스크를 하드디스크 앞쪽에 넣어서 리부팅하는 방법으로 보이는데, 저는 원격에 있는 펭귄이 없어서 depenguinate를 해보지는 못하겠네요 ;;

이제 리눅스 사용자들이 undaemonizer를 만들 차례~ 잇힝~ ;;

screen에서 화면 스크롤 위로 올리기

으흐흐. 3년동안 모르고 있었던 이 좋은 기능을;; -ㅇ- screen도 pgup이 가능하네요! (나만 모르고 있었나;;)

바로.. 그것은.. Ctrl-A [ 누르면 들어가는 카피모드에서 pgup/pgdn이 된다는 것~! 물론 ctrl-f ctrl-b도 되구요.

.. 영 쓸모 없는 줄 알고 있었던 copymode인데 스크롤이 되는군요 흐흐; 스크롤 저장 줄 수는 .screenrc에서 defscrollback 1000 을 써주면 1000줄씩 저장된답니다. 와와~~

XFce에서 “항상 맨 위에”쓰기

동영상 볼 때마다 정말 절실했던 기능 “항상 맨 위에”가 드디어 XFwm에도 들어왔네요. 흑흑 그동안 동영상 보려면 구석탱이에 띄워놓고 다른 프로그램 안 겹치게 조절하느라 힘들었는데.. 이제 XFce유저들에게도 봄이 온 것입니다~ 으훗.;;

[WWW]Master^Shadow라는 사람이 패치한 것인데, 바로 CVS에 적용이 된 듯 합니다. 패치를 받아서 설치해 보니 무척 잘 되는군요. ^_^

요즘 열심히 보고 있는 Walking with Dinosaurs를 “항상 맨 위에”로 띄운 것

0312-xfcealwaysontop.jpg

KLDP.net주최 HHK컵 2위;;

[WWW]KLDP.net주최 HHK컵 투표에서 2위를 했습니다. 꺄~~♡ peer간 투표에 가중치가 붙어서 생기는거라 아주 짜고치는 고스톱으로 –;; (여러모로 봐도 krisna님이 1위하셔야 하는뎅.. 흐흐 =3)

상품으로 Happy Hacking Keyboard를 받았습니다. ^^; 흑흑 그런데.. 정말 슬픈 일 하나는… KLDP.net 투표 상품이 발표되기 전날 제가 HHK를 충동구매 했다는.. 우에엥… 그래서 결국은 HHK가 2개가 생겨버렸습니다. -.- 충동구매한 것은 검은색이고 상품으로 받는 것은 흰색이라 그나마 색깔이 달라 다행이지만;;

충동구매한 불운의 HHK 검은색 ㅡ.ㅜ

0312-hhk.jpg

그런데, 놀란 것은.. 아론을 쓰다가 바로 HHK로 바꿔서 그런지 생각보다 HHK Lite 키감이 너무 안 좋았다는 것인데, scari님에 따르면 M모사 부사장님은 HHK Lite의 키감을 “쫄깃쫄깃하다”라고 표현하셨다는데, 제 표현으로는 “뚝컥뚝컥하다(말을 새로 만듦;;)”라고 말하고 싶군요; 영문배열이라 그런지 처음 들어가는 힘도 전혀 32g던가 스펙보다 훨씬 무거운 것 같고, 눌린 후에 들어가는 힘도 상당히 많이 든다는 점에서.. 써본 키보드들의 키감만 갖고 평가하기는 아론 – LGK3000 – MS Natural – HHK Lite – 삼성 정도의 순서로 하고 싶군요~ 크;

그런데, 키감외 다른 측면에서는 아주 좋았습니다. 딥스위치 3,4번을 켜서 Alt와 다이아몬드를 바꾸고, BS와 Delete를 바꾼 뒤에는 별로 자리가 헷갈리지도 않았고, 왼쪽 Ctrl을 손바닥으로 누르는 것에 그동안 집착을 해 왔었는데 생각보다 HHK식으로 새끼손가락으로 누르는 것도 괜찮더군요; 다만, 리버스 솔리더스랑 딜리트의 위치가 MS나 Apple키보드와 반대라는게 좀 불편하네요. 딜리트는 위에 있는 게 더 편한 것 같은데.. USB 포트도 2개짜리 허브가 달려있어서 (내부적으로는 3개) 아주 좋았습니다. :)

회사 데스크탑 (HHK Lite2와 MS Wheel Optical)

0312-hhk0.jpg

결론은 아론에서 HHK를 만들면 정말 좋겠다는 생각이.. (와와~~)

ANSI/ISO/IEC C 타입의 실체

지난 [WWW]8비트가 아닌 char 사건 때 C 타입이 그동안 알아왔던 것과는 다르구나 하는 느낌이 있었는데.. 새로 다른 쓰레드에서 IPv4 어드레스같은 용도를 위해 고정된 크기의 표준 타입이 있으면 좋겠다는 제안에 답변을 받으면서 C 타입을 새로 공부해야겠다는 생각이 들었습니다. 으흐흐;;

[NoSmoke]원전의중요성에서도 누차 강조됐듯, 백날 C 책을 읽어봐야.. ANSI/ISO C 문서를 안 읽고서는 C를 안다고 말하기가 부끄러운 것인 것을 이제서야 깨닫게 되었다는.. ㅡ.ㅜ (진짜 원전이야 K&R white book이기는 하지만, 아직까지 K&R 문법만 지원하는 컴파일러는 대형 메인프레임/유닉스 서버에서나 볼 수 있는 것이니까;;)

하여간, 찾아서 본 ISO C 문서에서의 바이트 정의는 이런 것이었습니다.

byte addressable unit of data storage large enough to hold any member of the basic character set of the execution environment (실행 환경의 기본 문자 세트 전체를 담을 수 있을 만한 충분한 크기를 가진 주소 지정이 가능한 데이터 저장 공간의 크기)

  • NOTE 1 It is possible to express the address of each individual byte of an object uniquely. (각각의 바이트는 주소로 표현될 수 있다.)

  • NOTE 2 A byte is composed of a contiguous sequence of bits, the number of which is implementation defined. The least significant bit is called the low-order bit; the most significant bit is called the high-order bit. (바이트는 연속된 비트들로 조합되어있는데 그 수는 구현에 따라 정의된다. 가장 낮은 비트를 low-order bit라고 부르고 가장 높은 비트를 high-order bit라고 부른다)

즉, 그동안 수많은 입문서, 교과서, C 관련 서적, 상식서적, 수험서적에서 나왔던 “바이트는 8비트를 묶은 것을 1바이트로 부르는 단위다.” 이런 것은 쌩판 거짓말이었던 것입니다. ;; 그리고, int, short, long등의 정의도 “16비트 컴퓨터에서는 16비트임” 뭐 이런 것과는 차원이 다른, 그냥 char 크기의 n배이다. 뭐 이런 정의 밖에 없다는 것을 발견할 수 있습니다. (크기는 구현하는 사람 맘대로..) 그런데, 진짜 크기를 구체적으로 지정할 수 있으면 얼마나 좋을까하는 생각에, 좀 더 찾아보니 POSIX 확장 헤더인 줄로만 알고 있었던 stdint.h와 inttypes.h가 ANSI/ISO/IEC C99에도 있는 것을 발견! (stdint.h는 7.18, inttypes.h는 7.8에) stdint.h와 inttypes.h에 있는 타입들은 extended integer types라고 부른다는데, stdint.h에는 int16_t uint32_t 이런 타입들이 정의되어있고, inttypes.h에는 [FreeBSDMan]fprintf 류 함수를 위한 PRI 시리즈와 [FreeBSDMan]fscanf 류 함수들을 위한 SCN 시리즈 매크로가 있는데, PRIdLEAST32 (fprintf의 %d에서 사용 가능한 가장 작은 32비트 타입), SCNuFAST16 (fscanf의 %u에서 사용 가능한 가장 빠른 16비트 타입) 이런식이네요..

ANSI/ISO/IEC C 문서는 ANSI 홈페이지에서 30달러에 파는데, ISO 워크그룹 홈페이지에서 [WWW]마지막 드래프트를 공짜로 받을 수도 있습니다. 흐흐;;

왕의 귀환

0312-lotr.jpg

이힛. 드디어 기다리던 왕의 귀환을 보고야 말았습니다. 메가박스 1관 한가운데서~ 꺄~ 메가박스 좌석 배치 시스템이 인터넷 예매용으로 우선 좋은 자리를 모두 주고, 그 바깥쪽 자리를 티켓링크에 주고 그 바깥 자리를 현장 판매한다는군요.. 그래서 티켓링크나 현장에서 사서는 구석탱이에 밖에 앉지 못하는 현실입니다~. (인터넷 예매에서 남는 자리는 상영 3시간전에 현장으로 돌림)

흐흐 이번에도 3시간 넘는다길래.. 마음을 다잡고 화장실갔다가.. 으흐흐;; 역시 크리스마스가 다가와서 그런지.. 다른 때는 많아 보이던 솔로부대 동지들이 오늘따라 안 보이더군요.. 영화는 혼자 보는게 재미있는데.. (-_-;;;;;;;;;;)

아.. 역시 아라곤 멋있습니다. 꺄아 ㅡ.ㅜ 에오윈도 정말 멋있긴 했지만, 내 마음 속에는 이미 아라곤이.. (..) 나중에 꼭 여자로 태어나서 아라곤같은 남자를 공략을 ..

영화가 다 끝나고 나서 나오는데 출구에 안내 직원들이 8명정도 여기저기 서서, 같은 말을 외치는 게 참 이색적이더군요;;

“화장실은 왼쪽입니다.”

사용자 권한으로 CVS 레포지트리 옮기기

py-rrdtool 프로젝트를 호스트하고 있던 사바나가 데비안과 같은 방법으로 뚫리는 바람에 서비스가 아직도 완전히 정상복구 되지 않고 있습니다. 그런데, 어떤 개발자가 py-rrdtool 프로젝트에 개발자로 참여하고 싶다고 해서 (제 개인 프로젝트 최초로 외국인 개발자가! -ㅇ-;) 그래서 그냥 소스포지로 옮기기로 했습니다.

그런데, 옮겨다닐 때 마다 리비전도 잃어버리고 CVS 로그들도 다 잃어버리는게 좀 그래서, 관리자한테 요청을 할 까 생각도 해봤는데, 처리도 엄청 느리고 귀찮을 것 같아서, 그냥 손으로 임포트를 해버렸습니다. (cvs import가 아니라 rcsfile레벨 import)

우선, 임포트를 준비하기 위해서, 사바나에서 RCS파일들을 받아와야하는데, ftp://ftp.gnu.org/savannah/ 에 고스란히 다 보관이 되어있어서 거기서 바로 받아왔습니다. 흐흣. 거기서 임포트할 py-rrdtool 모듈 레포지트리만 뽑아서 우선 [FreeBSDMan]shar 명령을 이용해서 쉘 아카이브를 만듭니다.

요렇게 해서 생성된 쉘 아카이브는 권한 조절이 안 되기 때문에 끝에 chmod를 적당히 넣어서, CVS에서 쓰는 퍼미션인 디렉토리 775, 파일 664 퍼미션으로 맞춰줘야합니다. 그 다음에는, savannahimport 스크립트를 CVSROOT에 넣고 임포트합니다.

이렇게 되면 CVS서버에서 $CVSROOT/savannahimport 스크립트만 실행해주면 바로 임포트되는 상태가 되는데, 요걸 실행하기 위해서 loginfo 꽁수로 다음 줄을 CVSROOT/loginfo 끝줄에 넣습니다.

이렇게 하면, 그냥 loginfo가 커밋되고 실행은 안 되는데, 아까 그 줄을 지우고 다시 커밋하면 짠! 하고 임포트 스크립트가 실행됩니다.

흐흐흐. 그리고, 아까 임시로 썼던 savannahimport 스크립트를 지우고 checkoutlist에서 빼주면 간단히 임포트는 완료!

그런데, 이건 커밋 스크립트에서 /bin/sh 실행이 허용된 CVS 서버들에서만 가능하기 때문에, [WWW]사바나[WWW]OSS에서는 사용이 불가능하고, KLDP.net, 소스포지, BerliOS같이 모든 스크립트 실행이 허용된 곳에서만 사용할 수 있습니다.

Microsoft가 Apple에게서 배울 점

어제 iBook으로 놀다가.. 갑자기 하드가 열심히 긁히더니 화면이 꺼멓게 돼버렸습니다. 배터리가 다 됐나 싶어서 전원을 꽂아주고 막 두드렸는데도 안 돼서.. 으음 가만 보니.. 모니터가 뭔가 심상치 않았습니다. 대충 보면 이런 상황이었지만.

0312-ibooknormal.jpg

헉. 가만히 보면 뭔가 거의 서태지 피가모자라 수준으로 뭔가 화면에 글자가 숨어있는 것이었습니다. 불빛에 비춰봐도 거의 안 보이고.. 디카로도 거의 20장을 찍었는데도 겨우 1장 빼고는 안 보일 만한 글자 –;

0312-ibookpanic.jpg

젤 위에 영문 메시지를 보면 “You must reboot 어쩌고 저쩌고..”가 거의 안 보이는 글자로 써있고 –;; 그 밑에 다른 나라 말로 (안 보이게 할 거면서 뭐하러;;) 또 한참 써 있습니다. (이 사진은 색상대비를 높인 것으로 원래는 훨씬 더 안 보입니다 –;)

거의 하드웨어 문제인지 속을 뻔 했는데.. 이런 커널 패닉을 시꺼먼 화면에 안 보이는 글자로 숨겨놓다니;;; 역시 파란화면을 그대로 보여주는 윈도우는 너무 순수했던 것입니다. -ㅁ-; 으흐흑. 프비도 앞으로 패닉나면 화면을 꺼멓게 해서 안보이는 글자로 “리붓하세요”를.. –;