뭘 이런걸..

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 에서 됩니다. _--;