뭘 이런걸..

Posted
Filed under 둘째 사고 일지
T.T 며칠 지났지만, 8/17 20:30 경.. 야구 방방이로 LCD 판넬을 깨버렸다. 수리비만 49만 8천원..
점점 미쳐가나 보다.
2010/11/19 17:42 2010/11/19 17:42
Posted
Filed under 둘째 사고 일지
둘째가 사고 치는 걸 기록하기로 했다. 도저히 못참겠어서.. 기록해 놓고 나중에.. 다 물어내라고 해야 핟 듯..

오늘은 형아가 게임하고 있는데, 컵에 물을 가득 받아서 노트북 키보드에 한 컵컵을 다 부어 버렸다. 순식간에 노트북 파워가 나가고 아마도 쇼트가 난 듯..

일주일 전에 Warranty 기간이 끝난는데.. --;
2010/11/16 00:12 2010/11/16 00:12
코카스

아.. 제 가슴이 다 아프네요. 침수는 사용자 과실 처리되기 쉽지만, 게다가 워런티도 끝나다니..

Posted
Filed under 주절주절
지인께서 이제 블러그 관리 안하시냐고 물어 보시길래.. 글 올린지가 꽤 되었구나 해서.. 일단 근황을 한번 올려 봅니다.

요즘은 다들 twitter를 이용하여 근황 관리를 하시던데, 전 왠지 me2day도 그렇고 twitter도 그렇고 별로 와닿지를 않습니다. 그리고 blog도 관리를 못해서 허덕이는데, 또 다른것을 펼치기도 그렇고 해서.. 사용하고 있지 않습니다. 그러니 근황도 blog를 통해서 하게 되는 군요.

요즘 초 필살 살인 스케줄에 시달리고 있습니다. D-day가 5일 남았는데(주말 빼면 3일 남았죠), 아직 정해진 것이라고는 D-day는 08/18 이다.. 입니다. T.T 10년을 넘게 일하면서 이런 스케줄은 정말 돌아버리겠군요. 요즘은 메일을 보면 메일의 문자가 한글이라는 것만 인식이 될 정도로 인지력까지 떨어진 상태입니다.

그러다 보니, TB 3.0 작업도 못하고 (석찬님이 대신 해 주셨습니다.) 못한다고 연락도 못드렸군요. 더불어 안녕 리눅스 2.0 작업도 석달때 손 놓고 있는 상황 (이건.. 머 몇 년전 부터이니.. 새삼스럽지도 않지만 ^^)

이 프로젝트가 앞으로도 3달 정도는 더 확장될 예정인데.. 요즘은 정말 좌절 스럽습니다. 같이 근무하던 분이 휴가 쓰신다고 하시니까 화가 나더군요 :-)
2010/08/13 21:26 2010/08/13 21:26
엔죠

우연찮게 구글링하다가

정균님의 블로그까지 들르게 되었네요!


프로젝트가 끝나면 정균님께서도 휴가를 쓰시는 것이 좋을듯 합니다. :-)

건강하시고 일교차가 큰 가을입니다. 감기조심하시구요!

항상 감사합니다!

https://chaeya.startssl.com/

하하 쓰신 글보고 정말 격려해드려야겠다 싶어서 댓글쓰게 되네요.

예전에 oops.org 부지런히 다니면서 정균님 주시는 정보때문에
정말 어려운 고비 많이 넘겼습니다. 이제서야 감사드리네요.

좌절스럽다는 표현에서 상황은 예상이 됩니다만 건투를 빕니다~

Posted
Filed under Tech/Mozilla
이번에는 이전 "Firefox 확장에서 New Tab POST/Referrer 제어"에 이어 New Window로 POST data제어와 Refferer를 제어하는 방법에 대해서 논하도록 하겠습니다.

보통 javascript 에서 새 창을 띄울 경우 windows.open을 사용합니다. Firefox extension에서도 마찬 가지 입니다. 하지만 windows.open을 이용할 경우, referrer를 제어할 수가 없습니다. 또한 Post data를 제어를 하려면 상당히 귀찮습니다. --; Post data를 제어하는 예제를 보시죠.

window.open으로 새 창으로 열기



이 코드는 javascript 에서도 아마 사용이 가능 할 겁니다. 하지만, 얼마나 괴로울까요? 일단 about:blank로 새 창을 열고, 이 창에 DOM을 이용해서 form을 생성 시켜서 데이터를 post 또는 get으로 제어를 해야 합니다.

Translate To Korean 재작성을 하면서 Post 데이터를 처리하기 위해서 열라 검색을 해서 이런 코드를 만들었는데, referrer 처리도 안되고 openNewTabWith 와 object 호환도 안되서 코드가 난장 직전까지 가다 보니, 도저히 이렇게 사용을 할 수는 없겠더군요. 그래서 역시 Firefox source를 또 뒤져 보았습니다.

역시나, openNewTabWith API 아래에 openNewWindowWith라는 API가 존재를 하는 군요. openNewTabWith API 처럼 Post와 referrer를 모두 제어할 수 있도록 되어 있습니다. 그런데 문제는 창 속성을 지정을 할 수 있는 인자가 없습니다. 즉 무조건 새창을 현재창 크기로 띄워야만 하는 군요. 그래서 API 코드를 열어서 어떻게 사용하는지를 확인해 보았고 다음과 같은 코드를 만들어 낼 수 있었습니다.

Firefox API로 새 창으로 열기

2010/02/17 12:53 2010/02/17 12:53
Posted
Filed under Tech/Mozilla
요즘 Translate To Korean을 rewrite 하고 있습니다. 이번 작업에서 두가지를 처리하려고 하는데 하나는 GET으로 정보를 전달 하던 것을 POST method를 이용할 수 있도록 하는 것과, referer로 막는 것을 방지하기 위하여 referer를 처리할 수 있도록 하고 있습니다.

Firefox에서 이미 이를 위한 API를 제공하는데, 이에 대한 문서가 충분하지 않아 기록을 합니다.

새 탭으로 열기

2010/02/17 12:26 2010/02/17 12:26
Posted
Filed under Tech/Mozilla
제가 관리하고 있던 "Translate To Korean" Firefox 확장이 드디어 http://addons.mozilla.org의 sendbox를 탈출하게 되었습니다. 작년에 한번 시도했다가 code review에서 고배를 먹고, 이번에 Worldlingo 번역 URL이 변경되어 이를 수정하다가, 코드를 다시 가이드대로 재작성 하여 제출을 했었는데, 오늘 Congratulations 메일이 왔습니다.

sandbox 탈출의 의미는 현재 부가기능에서 업데이트 찾기가 되지 않는 문제가 Mozilla Addons 를 통해서 가능해 졌다는 점이 가장 의미가 있겠네요.

앞으로 Translate To Korean을 관리하던 http://oops.org/project/Firefox/Extension/translatekorean/ 은 유지하지 않고, Mozilla Addon에서 정식으로 유지를 하는 것으로 하려고 합니다. 그리고 여기서 받은 버전은 Mozilla Addons 사이트에서 받으신 것으로 설치를 해야지 업데이트 찾기가 가능해 집니다.


아래는 메일 전문 입니다. :-)

Congratulations! Your nominated add-on, Translate to Korean, has been reviewed by a Mozilla Add-ons editor who approved your add-on to be public.

Your most recent version (1.7.0) has also been made public.

You can view your public add-on now at: http://addons.mozilla.org/addon/7919

Review Information:
Reviewer: Raymond Lee
Comments: Congratulations, your add-on has been approved for public status. Due to caching and mirroring of AMO, it may take a couple of hours for your add-on to appear public, so please be patient.

Keep up the good work!

If you have questions about this review, please reply to this email or join #addons on irc.mozilla.org.

Mozilla Add-ons
http://addons.mozilla.org

2010/02/10 15:58 2010/02/10 15:58
이동원

한분의 노력으로 이렇게 결실을 맺게 되어 정말 축하할일이네요..
종종 오지만 많은걸 배우고..이렇게나마 댓글로 응원합니다.

이런 축하글들이 많이 올라오고, 도움을 주고 받는다면 더 좋은 한글 지원 addon들이 많이 나오지 않을까요..

고생많이 하셨습니다.

정말 축하합니다. :)

Posted
Filed under Tech/Tip & Trick
노트북도 하나 사고, 덩달아 Windows 7 Machine이 하나 생기게 되었습니다. OS를 64bit로 신청했는데 32bit로 온것 빼고는 그리 나쁘지 않더군요. 연말까지 휴가고 해서 회사 notebook을 과감히 Windows 7 64bit로 설치를 해 버렸습니다.

그런데 난리가 나 버렸군요.

제가 사용하는 환경은 Windows 기반에 cygwin + hanterm-xf 또는 portable ubuntu 환경을 사용합니다. 그런데 일단 Cygwin + hanterm-xf환경에서.. Windows 7에서 run.exe를 실행 할 때 cmd 창이 hidden 처리가 되어야 하는데, 되지를 않는 문제가 있더군요. 즉, hanterm 창 하나에 cmd 창이 하나씩 따라 열립니다. --; (엄격히 말하면 cmd 창이 열려서 hanterm-xf.exe를 실행하고 닫혀야 하는데 - 이게 run.exe가 하는 일이죠.) 그래서 이젠 오랫동안 사용한 cygwin + hanter-xf 환경은 버리고, portable ubuntu에 정착을 하자고 마음을 먹고 있었는데.. Windows 7 64bit 에서 colinux가 동작하지 않는다는 것을 까먹고 있었습니다. 그래서 어떡하든 cygwin을 해결해야 하는 상황이 되었습니다.

일단 cygwin homepage를 보니 cygwin 1.7 부터 Windows 7을 지원한다고 하고, 11월 말이나 12월 초에 릴리즈 할 거라고 적어 놓고선.. 왜 안하고 있지 하고 열심히 기다리고 있는데, 어제부로 cygwin 1.7이 릴리즈 되어 얼씨구나 하고 업데이트를 했지만 동일한 증상이 나타나더군요.

열심히 googling을 하다 보니.. 이미 메일링 리스트(http://www.cygwin.com/ml/cygwin-apps/2009-08/msg00018.html)에 이슈가 되어 있었으나, 개발자는 해당 패치를 거부한 모양 입니다. 혹시나 싶어서 이 패치를 적용해 보니.. ㅎㅎ 잘 되더군요.

혹시 비슷한 문제를 겪으시는 분들을 위해서.. 포스팅 합니다. 해당 패치가 된 run package는 ftp://mirror.oops.org/pub/Cygwin/pcakages/run/ 에서 받으실 수 있습니다. (웹 브라우저로 접근이 잘 안될 겁니다. ftp client를 이용하세요.) Windows 7 이 아닌 경우에는 받으실 필요 없습니다.

받으신 후에

shell> tar xvfpj run-1.1.12-11.tar.bz2 -C /


명령으로 설치가 가능 합니다. (한마디로 덮어 씌우는 거죠 ^^)
2009/12/24 03:01 2009/12/24 03:01
Posted
Filed under Tech/Tip & Trick
저번달에 비해 KRNIC (정확하게는 kisa.or.kr 이죠) data를 가져오려다 보니, access 제한을 걸어 놓았더군요. 처음 접속했을 때 특정 쿠키가 없으면 쿠키를 set하고 reload 하도록 되어 있는데, 문제는 이걸 javascript 로 처리해 놓았다는 것 입니다. 즉 java script를 지원하지 않는 w3m, wget, links, lynx 같은 브라우저들은 접근 조차 할 수 없다는 얘기이죠.

libkrisp가 KRNIC data를 이용해서 parsing 하는 것이라서 script 화를 해 놓았는데, 이 스크립트가 작동하지 않아서 보니.. 이런 변경 사항이 있었습니다. 그래서.. 뚫을 수 있는 스크립트를 다시 만들어 보았습니다.

Class KRNIC_data { static public $useragent = 'Mozilla/4.0 ' . '(compatible; MSIE 6.0; Windows NT 5.1; ' . '.NET CLR 1.1.4322; .NET CLR 2.0.50727)'; function get ($url) { if ( false === ($cookie = self::getCookie ($url)) ) return false; if ( false === ($data = self::getPage ($url, $cookie)) ) return false; return $data; } function getPage ($url, $cookie = '') { $c = curl_init ($url); curl_setopt ($c, CURLOPT_URL, $url); curl_setopt ($c, CURLOPT_TIMEOUT, 60); curl_setopt ($c, CURLOPT_NOPROGRESS, 1); curl_setopt ($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($c, CURLOPT_USERAGENT, self::$useragent); $src = array ('!http[s]?://!', '!/.*!'); $dst = array ('', ''); $host = preg_replace ($src, $dst, $url); $header[] = 'Host: ' . $host; #$header[] = 'Excpet:'; curl_setopt ($c, CURLOPT_HEADER, 0); curl_setopt ($c, CURLOPT_NOBODY, 0); curl_setopt ($c, CURLOPT_HTTPHEADER, $header); curl_setopt ($c, CURL_FAILONERROR, 1); curl_setopt ($c, CURLOPT_SSL_VERIFYPEER, false); if ( $cookie ) curl_setopt ($c, CURLOPT_COOKIE, $cookie); $data = curl_exec($c); if ( empty ($data) ) { error_log ('Error: ' . curl_error ($c), 0); return false; } curl_close ($c); return $data; } function getCookie ($url) { $data = self::getPage ($url); preg_match ('/(_accessKey2=[^\']+)\'/', $data, $m); if ( ! trim ($m[1]) ) { error_log ('Error: Can\'t get krnic cookies => ' . $m[1], 0); return false; } return $m[1]; } } $site = 'https://ip.kisa.or.kr/ip_cate_stat/stat_05_04_toexcel.act'; echo KRNIC_data::get ($site); exit (0);


이 스크립트를 작동 하시기 위해서는 curl extension 이 필요 합니다.
2009/12/04 18:52 2009/12/04 18:52
이혜원

안녕하세요. 저도 비슷한 문제에 봉착해서 어떻게 해결하셨는지 조언 듣고 싶어서 연락드립니다.

서버 최초 접속 시
<html><script lang=javascript>
document.cookie = '_accessKey2=4K0vhJlSdVkvJXFyslMRDa8MH1-L9cIG'
window.location.reload();
</script></html>
코드로 리로드 시키는데, 문제는 OCX단에서 보내는 요청도 이 코드가 응답으로 와서 문제입니다.

해당 웹서버를 우리가 관리하는게 아닌터라 어떤 단(?)에서 어떤 녀석(?)이 위 코드를 뿌려주는건지 알 수 있을까요?

김정균

처리는 간단합니다. 해당 코드가 쿠키를 구어서 보내라는 의미이기 때문에 쿠키 데이터를 넣어서 query를 다시 보낸 것 입니다. :-)

위 코드는 해당 웹서버가 보내주는 것일 겁니다..

김정균

ㅎㅎ 쓸데 없는 행동을 한 것을 안 것인지, 이번달에 보니 풀어 버렸네요. :-)

redjade

오오오오 +_+

Posted
Filed under Tech/Mozilla

About Thunderbird 3

Thunderbird 3 작업을 벌써 1여년을 끌고 가는 것 같네요.

이 놈의 Thunderbird가 참 사람을 괴롭힙니다. 원래 5월에 RC가 나왔어야 하는 상황인데, 계속 연기가 되더니, 11/3에 RC1이 build 될 계획입니다. rc3 - 4 정도 까지 갈거라고 예상을 한다면, 아마 정식 release는 내년 중반은 되어야 하지 않을까 예상이 됩니다.

다만, 안습인 상황은.. Stuats Meeting 에 따르면 l10n string freeze가 9/29 인데, 아직도 영문 string이 freeze 되지 않은 듯 싶습니다. beta 4가 나왔는데도 불구하고, string 변경 사항이 거의 60-70개 짜리 bug track issue가 등록이 되고 있습니다. --;

Firefox의 경우 Beta 가 출시 되면 string쪽은 거의 변경이 되지 않습니다. 큰 변경이 있어야 할 것 같으면 다음 버전으로 넘겨 버리는데, Thunderbird는 2.0출시 이후, 만 2년만에 나오는 release라서 그런지, Beta 단계에서도 string쪽 변경이 무지하게 빈번하게 진행이 되고 있습니다. 덕분에 따라가는 l10n 커미터들만 죽어나갈 뿐이죠. ^^;

그래도, 문맥을 알 수 없는 부분을 확인하기 위해서 Thunderbird 3의 구석구석에 있는 기능들을 다 까보게 되었는데, Thunderbird 3은 기대할 만 한 듯 싶습니다. 아직도 약간의 버그가 수시로 보이기는 하지만 새로 지원하는 기능들 중 아쉬웠던 부분을 긁어주는 것들이 꽤 되는 것 같습니다. 특히 검색의 경우에는, UI가 한국 실정에는 좀 헷갈리기는 하지만 상당히 신경써서 만든 듯 싶군요.

아직 10개월 정도 더 고생해야 할 듯 싶기는 합니다만.. 그냥 궁금하신 분이 있으실까 중간에 살짝 끄적여 보았습니다.

P.S.
흠.. 전 FF 번역을 도와 주는데, channy님은 TB 번역을 도와주지 않는 군요. --; 벌써 FF 3.6 beta 1 작업을 시작해 버렸습니다. TB는 또 저 혼자 계속 해야 할 듯.. (FF 3.5를 제가 하다가 말았더니, channy님이 TB beta 1 까지만 하고 도와주고 있지 않으십니다. T.T
2009/10/03 04:23 2009/10/03 04:23
김정균

일정이 대충 나오는 것 같습니다. (PST 기준)

10.29 String freeze
11.02 L10n freeze
11.03 Rc1 code freeze
11.10 Rc1 release

이 후에 필요하다면 rc2가 나올 예정이랍니다. (물론 나오겠지만.. ^^) 11/2 이 지나면 메시지 고치려면 버그 등록하고 승인을 받아야 합니다. 그 전에 리포팅 많이 해 주세요.

http://forums.mozilla.or.kr/viewtopic.php?f=15&t=12285 으로 해 주시면 됩니다.

Posted
Filed under Tech/안녕리눅스
이미 추가된지는 오래된 패치들이기는 하지만, 따로 announce를 하지 않아 모르는 분들이 많은 안녕 리눅스만의 패치에 대한 글들을 포스팅 해 보려고 합니다.

오늘 첫번째로는 안녕 리눅스에 포함된 openssh의 추가 사항을 보도록 하겠습니다.

1. Skip host key check

보통 ssh로 접속할 때 ssh client는 접속할 host에서 host key를 받아서 ~/.ssh/known_hosts 파일에 기록을 해 놓습니다. 이 이유는, 오타로 다른 호스트에 접근을 하거나 또는, 어떤 host가 자신을 접속하려는 host라고 속이는 것을 방지하기 위함이 목적입니다. 그러므로 접근 하려는 호스트가 known_hosts 파일에 등록이 되어 있지 않을 경우 다음과 같이 confirm을 하게 됩니다.

[root@work ~]# ssh domain.com
The authenticity of host 'domain.com (12.0.0.1)' can't be established.
RSA key fingerprint is fe:de:8d:34:27:82:7c:42:09:16:0f:34:33:dd:72:d9.
Are you sure you want to continue connecting (yes/no)?


참 좋은 기능임에는 틀림이 없으나, ssh notty를 이용하여 여러 서버에 동일한 명령을 내리기 위해서 script같은 것을 사용할 때, 이게 걸리면 무지하게 불편합니다. 300대의 서버에 명령을 내리려면.. 300번 엔터를 입력해야 하니까요...

그래서 안녕 리눅스에서는 -H 옵션을 제공해서, known_hosts에 등록이 되어 있지 않으면, 물어보지 않고 등록을 하고, confirm 부분을 skip 할 수 있도록 지원하고 있습니다.

[root@work ~]# ssh -H domain.com
LInux AnNyung release 1.3R5 (Indongcho)
Login domain.com in 20:04 on Friday, 02 October 2009
root@domain.com's password:


키 등록을 해 놓았다면, 패스워드도 물어보지 않고 로그인이 되겠죠. :-)


2. 한글 도메인 사용

안녕 리눅스에는 multibyte domain에 대한 패치가 많이 되어 있습니다. 보통 multibyte 도메인을 사용하기 위해서는 브라우저 외의 경우에는 puny code로 변환된 도메인을 사용해 주어야 합니다. 하지만 안녕 리눅스의 왠만한 application(nslookup, dig, host, ssh 등..)들은 내부적으로 패치가 되어 있어 multibyte domain을 직접 사용할 수 있습니다.

[root@work ~] ssh 안녕리눅스.com
LInux AnNyung release 1.3R5 (Indongcho)
Login 안녕리눅스.com in 20:04 on Friday, 02 October 2009
root@안녕리눅스.com's password:



3. sftp 에서 readline 제공

안녕 리눅스의 sftp에는 readline 기능이 패치되어 있습니다. sftp 접속을 하신 후에, 디렉토리 이동을 하신 후에, 화살표 상/하를 움직여 보시면, 이전에 실행한 명령의 history를 보실 수 있고, 실행하실 수 있습니다. tab기능도 구현을 하려고 했으나, 쉽지 않더군요. 그래서 이건 보류해 놓았습니다.


3. Banner Magic Cookie 지원

openssh는 sshd_config의 Banner 에 지정된 파일을 login전에 출력해 주며, login 후에는 /etc/motd파일을 출력합니다. 기본적으로 original openssh는 magic cookie를 지원하지 않습니다만, 안녕 리눅스의 경우

[root@work ~]# ssh domain.com
LInux AnNyung release 1.3R5 (Indongcho)
Login domain.com in 20:04 on Friday, 02 October 2009
root@domain.com's password:


와 같이 Banner에 지정된 /etc/issue.net과 /etc/motd 에서 magic cookie를 사용할 수 있도록 수정이 되어 있습니다. 지원하는 Magic Cookie의 경우는 다음과 같습니다.

\t, \d - 현재 시간과 날자를 출력
\h, \n - 시스템의 노드명(FQDN)을 출력
\s - 운영체제의 이름을 출력
\m - 하드웨어의 유형을 출력
\r - 운영체제의 릴리즈를 출력
\v - 운영체제의 버전을 출력
\\ - '\' charactor 를 출력



이상 오늘은 안녕 리눅스가 다른 배포본과 어떤 차이점이 있는지 포스팅을 시작했으며, 그 첫번째로 openssh를
살펴 보았습니다. 시간이 나는대로 계속 다른 기능을 소개하도록 하겠습니다.
2009/10/02 20:33 2009/10/02 20:33