뭘 이런걸..

Posted
Filed under Tech/프로그래밍
요즘은 대세가 Subversion 인가요? 하지만 구관이 명관이라는 말처럼 제게는 Subversion 이 그리 와닿지가 않습니다. 일단 설치하고 셋팅하는 것이 너무 빡세고 새로운 것을 받아들여야 하는 것이 예전처럼 그리 와닿지가 않는군요. :-)

뭐 하여튼.. 그래서 전 CVS 를 사용하고 있다고 말을 하고 있습니다. CVS를 사용하다 보면 CVS Web UI 자주 사용하게 됩니다. 로그나 diff 같은 것을 보기가 상당히 편하게 되어 있으니까요. (Subversion 에서도 사용할 수 있는 Web UI가 있죠. 어쩌면 이런 부분에서는 Subversion 이 더 잘 되어 있습니다.) 그런데, 이 CVS Web UI의 속도가 느리고, local repository 밖에 다룰수 없다는 것이 상당히 불만이었습니다. 그래서 그냥 내가 만들어 버려.. 하고 생각한지 2년만에 틈틈히 손을 대기 시작했고, 드디어 어느정도의 성과물이 나왔습니다.

일단 새로 개발한 것의 특징은 원격 repository 를 지원하기 위하여, local rcs tool 을 이용한 것이 아니라 CVS protocol 을 hacking 하여 구현했다는 점입니다. 즉, anonymous 나 cvs account 권한이 있으면 서로 다른 repository 를 이 Web UI 에서 함께 관리할 수 있다는 점이 가장 큰 차이입니다. 이 기능은 CVS 1.2 의 rls 를 이용하거나 rls를 지원하지 않는 경우에는 따로 cvsdserver 라는 directory listing 을 해 주는 inet daemon 을 이용하여 처리를 하도록 되어 있습니다.

두번째로는, 속도의 향상에 있습니다. 기존의 Web UI 들이 모두 파싱을 하여 배열로 만들어서 이 배열을 정렬하든지 등등으로 관리를 하는데, 제가 만든 것은 네트워크 전송이 들어오는 족족 처리를 하도록 하여 속도의 향상을 시켰습니다. 다만, 이 부분 때문에 일부 자각하기는 힘든 기능들을 포기할 수 밖에 없었습니다. 일단 기본적인 기능은 FreeBSD 에서 배포하는 CVS Web을 기준으로 하였습니다.

현재까지..

사용을 하는데는 무리가 없을 정도.. 즉 세상에 꺼낼 정도는 만들어 졌습니다만.. 몇가지 처리사항을 더 하여 내 놓으려고 합니다. 일단, local repository 에 대하여 CVS protocol 을 탈 필요가 없기 때문에, 이를 처리하는 루틴이 들어가야 할 것입니다. 조만간.. 만날 수 있지 않을까 싶습니다. 다만.. 가장 큰 작업은 이를 어떻게 문서화를 하느냐가 아닐까 싶군요 ^^;
2007/10/30 22:39 2007/10/30 22:39
Posted
Filed under Tech/Tip & Trick
Redhat 8 이후부터 route 명령을 실행해 보면 다음과 같이 이상한 routing path 를 발견할 수 있습니다.

[root@db ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 211.115.85.0 * 255.255.255.224 U 0 0 0 eth0 172.16.0.0 * 255.255.0.0 U 0 0 0 eth1 169.254.0.0 * 255.255.0.0 U 0 0 0 eth1 default gw.kldp.org 0.0.0.0 UG 0 0 0 eth0


"어라.. 169.254.0.0는 내가 설정한 적이 없는데 어디서 튀어 나온거야?" 와 같은 의문을 가진 적이 없으신지요?

169.254.0.0/16은 Zero Configuration Networking 을 위하여 예약된 subnet 입니다. Zero Configuration Networking 이라는 것은.. DHCP 환경이 없는 네트워크에서 Peer to Peer 연결이나 Wireless 환경에서 관리자의 수동적인 설정이 없이 네트워킹을 할 수 있는 환경을 만들기 위한 규약입니다. (영어로 되어 있어서 대충 봐서 정확하지는 않습니다. 궁금하신 분들은 http://www.zeroconf.org/ 를 참고 하시기 바랍니다. 영어입니다!)

일반적인 IDC 환경에서는 별 의미가 없을 수 있지요. 그렇다면 이런글을 적는 이유는 무엇일까요? 바로 이 설정이 필요도 없고 보기도 싫으신 분들이 있을 것입니다. 부팅시나 네트워킹을 재시작 하여 이 정보가 올라오지 않게 하려면 /etc/sysconfig/network에 다음의 라인을 넣어주면 네트워킹이 재시작 된 이후부터는 나오지 않게 됩니다.

[root@db ~]# cat /etc/sysconfig/network NETWORKING=YES HOSTNAME=db.kldp.org NOZEROCONF=yes
2007/10/22 23:47 2007/10/22 23:47
Posted
Filed under Tech/프로그래밍
얼마전 어느분이 제게 CVS 에 rls 가 지원되도록 요청을 해 주셨습니다. CVS 1.2 로 업데이트를 하면 간단하게 해결이 되지만, CVS 1.2 가 아직 stable 이 아닌 관계로 별로 업데이트를 하고 싶지 않더군요. 그래서 1.12.13 의 rls 기능을 CVS 1.11 에 백포팅을 해 보았습니다.

strftime 관련하여서 m4 파일의 수정 문제가 귀찮아서 그냥 오리지날 strftime 을 사용하도록 변경한 것 외에는 거의 동일할 것 같습니다.

패치 파일을 첨부하니 관심 있으신 분들은 사용해 보시기 바랍니다. 이 패치파일은 RHEL 5 의 cvs 1.11.22-5 에 패치를 한 것이니 다른 버전에서는 참고하여 수정을 하시면 될 듯 싶습니다.

2007/10/21 05:09 2007/10/21 05:09
Posted
Filed under Tech/프로그래밍
얼마전 제 홈페이지의 QnA 게시판에 lighttpd 에서 mod_url 을 사용할 수 없냐는 문의가 들어와서 작성해 보았습니다. 물론 IE7 대응되게 작성이 되어졌으며, redirect 를 사용하지 않고 새로 만들어진 apache mod_url 처럼 내부에서 직접 physical.path 를 수정하도록 변경을 했습니다.

Apache mod_url 의 공식 개발자가 된 기념으로 lighttpd 용 mod_url 역시 apache mod_url site 인 http://modurl.kldp.net 에서 관리하도록 하겠습니다. 이 사이트에서 받으실 수 있으며, 문서를 참고 하실 수 있습니다. 물론 문의/버그등도 이 사이트를 이용해 주시면 되겠습니다.
2007/10/19 03:17 2007/10/19 03:17
Posted
Filed under Tech/프로그래밍
얼마전 W3C 의 HTML validator 가 0.8.1 로 업데이트 되었습니다. 기존의 0.7 대와는 많은 것이 달라졌습니다. 그래서 KLDP 의 open service 중의 하나인 http://validator.kldp.org 도 0.8.1 로 업데이트 하기 위해 준비중이었는데..

결정적으로 0.7 대까지 되던 localization 이 0.8 에서는 안되는 문제가 있더군요. 빡세게 번역을 했는데, 한글 출력이 되지 않는 안습의 상황이 발생하고 있습니다.

고쳐볼까 하고 코드를 살짝 둘러봤는데, 쉬운 문제가 아닌 것 같은 느낌이 들어 일단 포기하고 W3C 버그리스트를 살펴보니 0.9 milestone 에서 처리하려는 듯한 글만 찾을 수 있었습니다.

이걸 업데이트 해야 하는지 말아야 하는지 갈등이군요. 현재 영문으로 출력되는 것은 http://opens.kldp.org 에서 확인을 할 수는 있습니다. (아직 전체적인 정상 작동 여부는 확인을 안했습니다만..)
2007/10/01 15:37 2007/10/01 15:37
김정균

한글 출력 문제를 드디어 해결을 했습니다. :-) css-validator 와 비슷한 문제이더군요. cgi-bin/check 를 다음과 같이 수정함으로 해결이 가능 합니다.

@@ -972,7 +972,7 @@ $template->param(file_source => &source(
# $T->param(file_outline => &outline($File)) if $T->param('opt_show_outline');

# transcode output from perl's internal to utf-8 and output
-print Encode::encode('UTF-8', $template->output);
+print Encode::encode('ISO-8859-1', $template->output);

#
# Get rid of $File object and exit.