뭘 이런걸..

Posted
Filed under Tech/안녕리눅스
안녕 리눅스 1.3 이 드디어 릴리즈 되었습니다. 1월말에 발표되는 듯 하다가, 나름 사정으로 3월까지 미뤄지고 말았습니다.

1.3 에서는 기존에 지원을 하지 못하던 ICH7/8 과 SATA 장비 지원에 중점을 두었습니다. 패키지 준비는 1월말 즈음에 준비가 되었었는데, Packages System 을 운영하는 pkgadm code 가 마음에 들지 않아 재작성을 하려다가 2달을 허비하고 말았습니다.

새로 작성하려다 보니 욕심이 커져서 엄청나게 크고 복잡하게 변해가는 코드를 보고선 이러다간 1.3 릴리즈를 하지 못할 것 같아서, 일단 재작성은 일시 멈추고, 기존의 코드를 급박하게 수정을 하여 릴리즈를 하게 되었습니다.

1.2 R4 가 아니라 1.3 으로 릴리즈 하는 이유는, Packages System 의 기능 추가 때문입니다. 즉, Packages System 의 내부 로직이 변경이 되었기 때문입니다. 가장 중요한 기능으로는 중복 패키지 기능이 지원이 됩니다.

중복 패키지라 함은.. 현재 안녕의 기본 php 는 5.x 를 사용하고 있습니다만, 많은 분들이 5.x 로 오지 못하고 4.x 에 머물러 있는 경우가 많습니다. 이런 경우를 위하여, 안녕의 Packages System 에서 4.x 와 5.x 를 동시에 관리할 수 있도록 지원을 한 것입니다.

그 외에, 1.3 은 1.2 에 있던 보안버그 픽스들이 포함이 되었으며, 1.3 릴리즈와 동시에 1.2 자동 업데이트를 종료할 예정이므로, 1.3으로 업데이트를 하시기를 권장합니다.

정말 1.3 이 1.x 대의 마지막 릴리즈이며, 만 5년이 되는 2007년 6월1일까지 업데이트가 제공될 예정입니다. 간혹 드라이버 지원을 위한 Installer 업데이트가 있을 경우 R1/R2 와 같이 릴리즈 될 수는 있을 겁니다.

많은 분들이 바라시는 2.6 기반의 안녕 2.0 은 3/4 분기 정도를 기약하고 있습니다. 회사가 저를 괴롭히지 않으면 나올 수 있지 않을까 살짝 피해갈 구멍을 만들어 놓습니다. :-)
2007/03/19 16:18 2007/03/19 16:18
Posted
Filed under Tech/Mozilla
모처럼 FF 의 translate to korean extension 을 1.5.1 로 업데이트 했습니다.

별다른 기능이 추가 되었다기 보다는, 없어진 서비스들을 제거하고, 다른 새로운 서비스를 추가한 정도?

1. Empas 영문 번역 사이트가 없어졌습니다.
2. Daum Japan 의 URL 번역이 없어졌습니다.
3. Daum 의 일어 단문 번역이 새로 생겼습니다.
4. 문서에 utf8 문자셋만 존재할 경우 popup 이 되지 않던 문제를 처리했습니다.

제가 짠 코드인데도 한 4개월만에 보는 것 같은데.. 전혀 처음 보는 코드로 변해 있어서 좀 난감하더군요. ㅋㅋ

2007년 들어 posting 할 일이 드물어 일단 한번 올립니다.
2007/02/15 21:55 2007/02/15 21:55
Posted
Filed under Tech/프로그래밍
Happy
New Year!

이제 2006 년도 대략 5시간이 조금 안되게 남았습니다. 얼마전 포스팅한대로 신년 선물로 OOPS Firewall 6.0.0 을 릴리즈 하게 되었습니다. 닥질의 연속이기는 했지만.. T.T

6.0.0 에서의 변경 사항은



  1. inbound 와 outbound 설정의 확실한 구분
    OUTPUT table 을 제어하여 inbound 설정이 outbound 설정에 영향을 미치는 부분을 처리
  2. random 한 host 의 IP 를 처리하기 위해 source 와 destination 을 구분하지 않던 부분을 처리
  3. Bridge mode 제어 기능 추가
  4. Interface 설정이 WAN 1개 Local 1개 까지만 제한이 되던 문제 해결
    (이전 버전과의 호환성 문제가 남게 됨. (처리 가능할까???)


입니다. 새로이 interface.conf, bridge.conf, application.conf 가 추가 되었으며, masq.conf 의 MASQ_DEVICE,
MASQ_CLIENT_DEVICE 옵션은 interface.conf 의 MASQUERADE_WAN, MASQUERADE_LOC 로 대체 되었으며, forward.conf 의 FORWARD_MASTER 옵션은 삭제 되었습니다.

최대한 5.0.0 의 설정을 사용할 수 있도록 되어 있으나, 새로 설치 후 꼭 ineterface.conf 설정은 해 주시는 것이 좋으며, masq.conf 와 forward.conf 의 device 설정 옵션은 제거해 주시면 되겠습니다.

다만, 아직 확실하게 파악이 되지 않은 부분으로..

  1. Bridge client 로 서버를 운영할 경우 서비스가 제대로 되는지 확인 못함
  2. Bridge server 에서의 ftp outbound 시에 passive 시에 지연현상 발생


정도가 있습니다. 이는 서비스 구성 환경을 못만든 부분과, 제 네트워크의 문제일 수도 있으나 다른 곳에서의 확인이 불가능한 경우입니다.
2006/12/31 19:17 2006/12/31 19:17
김명성

축하드립니다.
드디어 릴리즈 되었군요...
아직 설치는 못해봤지만 내일 설치를 해봐야겠습니다.
시간이 되신다면 글자가 너무 빽빽해서 알아보기 힘든데 정리를
부탁드립니다..^^
새해 복 많이 받으시고, 행복하세요.

Posted
Filed under Tech/프로그래밍
http://jigsaw.w3.org/css-validator 가 드디어 업데이트 되었습니다. 그동안 http://css-validator.kldp.org 가 개발 버전으로 운영되어 오다 보니 디자인이 달라서 이거 뭐에요 하는 질문을 많이 받았었는데, 이제 디자인도 동일해진 관계로 이런 질문은 더이상 오지 않을 듯 싶군요.

한국어 버전을 사용하면 좋은 점은 일단 한글 폰트가 들어가 있을 때 에러가 발생하지 않는 다는 점과 속도가 빠르다는 점이죠. 아직까지 http://jigsaw.w3.org/css-validator 에서 검사를 하시던 분들은 http://css-validator.kldp.org 로 이전하시기 바랍니다. ^^;

또한, 한국어 서비스만 가능하던 것에서, multi language 서비스가 가능하도록 기능이 추가 되었습니다. 외국에 페이지 검사도 유용하게 사용할 수 있을 겁니다.
2006/12/28 04:43 2006/12/28 04:43
Posted
Filed under Tech/프로그래밍
현재 안녕 리눅스와 Redhat, Debian 등에서 설치하시는 많은 유저들이 사용하시는 oops-firewall 은 v5 대까지 개발이 되어 있습니다. 솔직히 v1 에서 v2 로 갈때와 v2 에서 v3 으로 갈 때는 ruleset 의 변경등 많은 변화가 있었지만 v3 에서 v5 까지는 ruleset 의 변화라기 보다는 내부 코드의 변경 즉, iptables rule set 을 만드는 parse 의 변경 사항이 많았던 것이 사실입니다. 즉, 대략 4여년 정도는 기능상의 발전이 없었다는 얘기입니다.

  1. v1 2000.08
    kernel 2.2 ipchains
  2. v2 2001.03
    kernel 2.4 iptables
  3. v3 2001.10
    ruleset 강화
    close all port
    inbound 와 outbound 설정 구분
    session state 제어
  4. v4 2003.06
    i18N support
    module 제어 기능 추가
  5. v5 2005.12
    코드 재작성
    filter order 변경


올해 남은 휴가를 연말에 몰아쓰면서, 크리스마스 기념으로 (jsboard 를 개발할 때 부터 크리스마스 마다 이벤트(?) 같은 것을 하기는 했습니다만..) oops-firewall v6 를 내 놓으려고 열심히 노력을 했습니다...만 결국에는 크리스 마스가 지나버리고 말았습니다. T.T 아무래도 신년 기념으로 해야 하지 않을까 싶은데, 개발 환경상의 제약 때문에 그것도 기약하기가 힘들것 같군요 :-)

v6 에서는 강화 되는 부분은 다음과 같습니다.
  1. inbound 와 outbound 설정의 확실한 구분
    OUTPUT table 을 제어하여 inbound 설정이 outbound 설정에 영향을 미치는 부분을 처리
  2. random 한 host 의 IP 를 처리하기 위해 source 와 destination 을 구분하지 않던 부분을 처리
  3. Bridge mode 제어 기능 추가
  4. Interface 설정이 WAN 1개 Local 1개 까지만 제한이 되던 문제 해결
    (이전 버전과의 호환성 문제가 남게 됨. (처리 가능할까???)


또한, 시간이 나면, 현재 Masq mode 에서 forward rule 에서는 filtering 을 하지 않는 문제도 같이 처리를 할까 생각 중입니다만 이 부분은 다음 버전으로 넘어갈 확률이 높을 듯 싶고요. (제가 별로 사용하지 않는 기능이기에 ㅋㅋ)

하여튼 크리스마스 선물로 드리려던 계획은 물거품이 되었고, 신년 선물로 제공해 드릴까 하지만, 일정상 불가능 할 것 같기도 하고.. 그래도 내년 1월 안에는 모습을 보일 수는 있지 않을까 생각이 됩니다. 그래도 제가 공개해 놓은 프로그램들 중에는 jsboard 가 가장 알려져 있지만 사용률은 아마 oops-firewall 이 가장 많을 듯 싶은데..
2006/12/26 03:09 2006/12/26 03:09

Happy New Year! 이제 2006 년도 대략 5시간이 조금 안되게 남았습니다. 얼마전 포스팅한대로 신년 선물로 OOPS Firewall 6.0.0 을 릴리즈 하게 되었습니다. 닥질의 연속이기는 했지만.. T.T 6.0.0 에서의 변경 사항은 inbound 와 outbound 설정의 확실한 구분 OUTPUT table 을 제어하여 inbound 설정이 outbound 설정에 영향을 미치는 부분을 처리 random 한 host 의 IP 를 처리..

Posted
Filed under Tech/프로그래밍

http://banner.kldp.org

80x15 size 의 배너를 만들어 주는 Brilliant Button Maker 는 꽤 유명한 사이트 입니다. 필자도 AnNyung Linux 의 banner 와 W3C validator 의 banner 를 만들기 위해 이용을 했었습니다. 최근 W3C validator 를 업데이트 하고선, 배너를 좀 다양하게 지원을 하려고 접속을 했다가 속도가 너무 느려서 혹시 코드를 공개를 했나 살펴보니 역시 공개가 되어 있더군요.

그래서 이참에 그래 한국에 빠르게 사용할 수 있도록 설치를 해 보자고 해서, KLDP 의 open service server 에 설치를 하기 시작했습니다. 아 그런데 소스 코드를 받아서 보니, 이거 engine 만 공개를 해 놓은 것이더군요. (정확히는 PHP class file 하나..) Frontend 를 생으로 만들어야 하는 노가다.. (Frontend 를 만들려면 또 class 와 ajax java script 들을 분석해야 하는 암울함 T.T)

결국에는 디자인을 배껴와서 어떻게 해 보자 하다가 결국에는 동일하게 작동(내부적으로는 다르겠지만..)하고 동일하게 보이도록 UI 를 만드는데 성공을 했습니다.

http://banner.kldp.org 에서 이용하실 수 있으며, 혹시 설치를 원하시는 분들은 http://banner.kldp.org/source/BrilliantButtonMaker-ko.tar.gz 에서 받으실 수 있습니다. 웹 경로에 압축을 해제 하시고, README-ko 파일을 참고하여 사용하시면 됩니다.

배포되는 압축 파일은 Brilliant Button Maker 의 저자에게 현재 배포 허가 메일을 보내놓은 상태인데, 저자의 답장에 따라 배포가 중지될 수도 있습니다.
2006/12/18 02:56 2006/12/18 02:56
김정균

2006.12.18 일 22:55 이후로 silkscreen font 외에서 공백문자가 %20 으로 처리되는 문제가 fix 되었으며, 한글을 사용할 수 있도록 처리되었습니다.

김정균

저자에게서 배포에 대한 허락을 받았습니다. 마음놓고 받아 가시면 되겠습니다.

dusl

음. 저... 띄어쓰기가 들어가면 안되나요. %20 이라고 나와서;;;

김정균

font 가 silkscreen 일 경우에만 공백 문자가 처리됩니다. 나머지 font 에서는 모두 %20 으로 처리되더군요. 이건 gd 로 넘어갈때의 문제인듯 싶습니다.

저도 현재는 local 에서 실행할 수 있도록 하는데만 신경을 쓴지라..^^; 앞으로 해야 할일이 한글 font 사용할 수 있도록 하는 것과 %20 문제를 처리해야 하는 문제는 해야할 일입니다. (이건 원 site 도 동일한 문제를 가지고 있습니다.)

현재로서는 font 를 silkscreen 으로 하는 것 외에는 대안이 없습니다. 아니면 띄어쓰기를 하지 말든지..

Posted
Filed under Tech/프로그래밍
한 2달은 지난일이지만, 공유하는 것도 괜찮을 듯 해서 작성합니다.

회사에서 Game 의 version.ini 다운로드시에 cache 의 문제로 웹서버에서 강제로 NoCache header 를 출력하도록 한 적이 있습니다.

setenv.add-response-header = ( "Expires" => "Thu, 01 Jan 1970 00:00:00 GMT", "Cache-Control" => "no-store, no-cache, must-revalidate, post-check=0, pre-check=0", "Pragma" => "no-cache" )


위와 같이 lighttpd 에서 설정을 한 후에, test 까지 마치고 귀가를 했었는데, 새벽에 난리가 나고 말았습니다. 새벽부터 전화가 불같이 오더군요. 직감적으로 어제 설정한 no-cache 가 문제가 된것 같아서 일단, 설정을 rollback 하고나니 역시나 문제가 해결이 되었습니다.

황당한 에러메시지

문제 해결후, 출근을 해서 장애 리포트도 작성할 겸 도대체 왜 문제가 되었는지 검증을 하던 중, 황당함에 어쩔 수 없는 사실을 발견하게 됩니다. IE 또는 WinInet API 로 다운로드를 받을 경우, ini 확장자가 no-cache header 를 받을 경우 WinInet API 차원에서 좌측과 같은 에러 메세지를 출력을 하는 겁니다.

다른 browser 에서는 모두 정상적으로 받아지는데 왜 IE 에서만 이런 문제가 발생할까 고민을 하고 검색을 하다가, 로그를 봐도 200 코드 반환을 했고, 믿을 수가 없어서 packet dump 를 떠 보았는데, 서버측에서도 정상적으로 파일 내용을 보내고 있었고, 심지어는 client 에서도 파일을 받았음에도 불구하고 IE (WinInet API) 만 유독 이런 처리를 하는 것으로 보아서, WinInet 자체적으로 이런 짓거리를 한다고 밖에 단정할 수 없겠더군요. --; 그래서 설정 값을 하나씩 제거하면서 테스트를 해 본바, no-cache 값이 들어갈 경우에만 발생을 하고 있었습니다.

MSDN 의 WinInet 의 Cache 관련 문서를 찾아봐도 이런 언급은 없었는데, 검색을 하다가 http://support.microsoft.com/kb/323308 문서를 발견하게 됩니다. 물론 상관은 없지만 HTTPS protocol 에서의 WinInet API 의 이상 작동에 관한 기술 문서더군요. 순간.. 버그가 또 있었구나.. 하는 암울한 생각만.. T.T 결국에는 장애 리포트만 쓰고선, 다음 부터는 꼭 IE 에서 테스트 하자는 결의만 다지고 허탈함을 달랠길이 없더군요.

혹시라도, Game 관련 회사의 Download Server 를 운영하신다면, Cache-Control header 에 no-cache 를 출력해서 저같은 경우를 당하지 말기를 바라면서 포스팅을 해 봅니다.
2006/12/18 00:45 2006/12/18 00:45
김정균

흠.. 간만에 이 이슈로 google 신께 질문하다가.. 얻은 답..

Expires: 0

으로 하면 IE 에서 됩니다. _--;

Posted
Filed under Tech/Mozilla
Mozilla Firefox 정보

Mozilla Firefox 정보


대략 6개월간의 한국어팩 작업끝에, Firefox 2.0 이 출판되었습니다. 2.0 에서는 최대한 어색한 표현을 고치고, syntax 오류를 고치고자 하였으나, 역시 시간에 쫒기어 원하는 수준까지는 오르지 못한듯 싶습니다. 물론 2.0 에서의 목표에 대하여 일종의 attack 도 있기는 했으나, 모두 잘 해 보자는 의견이라 생각이 되며, 3.0 에서는 이런 의견들이 반영이 될 수 있도록 노력해 봐야 겠지요.

어쨌든 2.0 은 이제 shipping 이 되었고, 천둥새 2.0 작업을 계속 해 나가야 겠습니다. T.T
2006/10/25 14:14 2006/10/25 14:14
Posted
Filed under Tech/프로그래밍
http://css-validator.kldp.org 를 접속해 보셨던 분들은 아시겠지만, 일주일 전 부터 design 과 결과가 달라진 것을 아실 수 있을 겁니다. 현재 KLDP CSS validator 는 http://jigsaw.w3.org/css-validator/ 보다 훨씬 새 버전으로 많은 변경 사항이 있습니다. (물로 보이는 것은 외부적인 변화가 더 크지만..)

이번 update 에서는 완전 한글화에 중점을 두었으며, 이전에 처리를 하지 못하던 부분을 완료하였습니다. 일단, 내부적인 메세지 번역은 이전 버전에 해 두었지만 각종 문서들의 번역은 이루어지지 않았는데, 이전의 일본어 번역 페이지뿐 아니라 이번에는 중국어 번역페이지가 추가된 것에 자극을 받아, 한국어 번역 페이지까지 모두 작성하게 되었습니다.

또한,
"유효한 CSS 정보"
에서 css 에 한글이 들어가 있을 경우 (예를 들어 폰트 이름.. 등) 한글이 깨져서 나오는 문제를 해결을 했습니다. css-validator 가 내부적으로 UTF8 로 처리를 하는데, 이 경우 multi-byte 환경을 고려하지 않는 문제점이 있더군요. 대략적으로 문서가...

1. EUC-KR일 경우
  1. EUC-KR -> ISO-8859-1
  2. ISO-8859-1 -> UTF-8
2. UTF8 문서일 경우
  1. EUC-KR -> ISO-8859-1


와 같이 변환하여 print 를 하는 문제가 있습니다. 제가 java 를 모르는 관계로, 몇가지 patch 를 한것 외에는 이것까지 하려니 너무 막막해서, php wrapper 를 이용하여

function iconv_callback ($m) { global $u; $c = iconv ("utf8", "iso-8859-1", $m[3]); if ( ! $u->is_utf8 ($c) ) $c = iconv ("euc-kr", "utf-8", $c); return $m[1] . $c; }


꽁수를 사용하여 KLDP CSS Validator 에서는 정상적으로 나오도록 처리하고 있습니다.

마지막으로 중요한 것은... 이 메세지 번역과 기타 한글 관련 패치, 그리고 multi-byte 환경에서의 오작동 부분을 reporting 을 하는 것이 맞으려나.. 메일링 리스트 가입을 하지 않으면 투고할 곳이 없고, 그렇다고 메일링 리스트를 가입하여, 그 메일들을 받고 싶은 생각도 없고, 또.. 영어도 못하는 관계로.. 결국에는 main stream 으로의 진입은.. 또 다시 좌절 입니다. ^^;

다만, 한국어 버전으로 설치를 하고 싶으신 분은..

http://css-validator.kldp.org/howto/

를 참고 하시면, 제가 CSS Validator 를 설치하기 위한 닥질의 내용이 적혀 있습니다. 이번 업데이트된 버전은 예전 버전과 달리 문서가 많이 없데이트 되었고, 공식적인 설치 문서는

http://css-validator.kldp.org/DOWNLOAD.html

를 참고 하시면 됩니다. 다만, 전자가 좀더 자세할 겁니다. :-)
2006/09/29 17:21 2006/09/29 17:21

http://jigsaw.w3.org/css-validator 가 드디어 업데이트 되었습니다. 그동안 http://css-validator.kldp.org 가 개발 버전으로 운영되어 오다 보니 디자인이 달라서 이거 뭐에요 하는 질문을 많이 받았었는데, 이제 디자인도 동일해진 관계로 이런 질문은 더이상 오지 않을 듯 싶군요. 한국어 버전을 사용하면 좋은 점은 일단 한글 폰트가 들어가 있을 때 에러가 발생하지 않는 다는 점과 속도가 빠르다는 점이죠. 아..

Posted
Filed under Tech/프로그래밍
얼마전 올렸던 usermap patch 의 버그 수정입니다. 이전 패치에서 usermap 파일이 없을 경우 에러가 발생하는 문제가 있었습니다. 파일이 없으면 CVS_FOPEN 이 에러가 발생할 것이라는 엄청난 착각을 한 결과이네요. 이런저런 경우의 수를 다해서 테스트를 했다고 생각했는데..

diff -urNp cvs-1.11.17.org/src/server.c cvs-1.11.17/src/server.c --- cvs-1.11.17.org/src/server.c 2006-09-13 17:35:21.000000000 +0900 +++ cvs-1.11.17/src/server.c 2006-09-13 18:07:24.000000000 +0900 @@ -5785,7 +5785,56 @@ handle_return: It might or might not be the same as host_user. */ CVS_Username = xmalloc (strlen (username) + 1); strcpy (CVS_Username, username); - } + + if ( ! strcmp (username, host_user) ) { + char filename[256] = { 0, }; + FILE *op; + int userlen = strlen (username); + char *linebuf = NULL; + size_t linebuf_len; + struct stat mapfile; + sprintf (filename, "%s/%s/usermap", repository, CVSROOTADM); + + //syslog (LOG_DAEMON | LOG_NOTICE, "oops: %s", filename); + + if ( CVS_STAT (filename, &mapfile) > -1 ) { + if ( (op = CVS_FOPEN (filename, "r")) != NULL ) { + while ( getline (&linebuf, &linebuf_len, op) >= 0 ) { + if ( (strncmp (linebuf, username, userlen) == 0) + && (linebuf[userlen] == ':') ) { + char *mapuser = NULL; + char *ws = NULL; + char mapuserlen = 0; + + mapuser = strchr (linebuf, ':'); + if ( (ws = strchr (mapuser, ' ')) ) + mapuser[ws - mapuser] = 0; + else if ( (ws = strchr (mapuser, '\t')) ) + mapuser[ws - mapuser] = 0; + else if ( (ws = strchr (mapuser, '\r')) ) + mapuser[ws - mapuser] = 0; + else if ( (ws = strchr (mapuser, '\n')) ) + mapuser[ws - mapuser] = 0; + + mapuserlen = strlen (mapuser) - 1; + if ( mapuserlen > 0 ) { + free (host_user); + host_user = xstrdup (mapuser + 1); + } + break; + } + } + } + if (linebuf) free (linebuf); + + if ( ferror (op) ) + error (0, errno, "cannot read %s", filename); + + if ( fclose (op) < 0 ) + error (0, errno, "cannot close %s", filename); + } + } + } return host_user; }
2006/09/13 19:47 2006/09/13 19:47