블로그 이미지
JEEN

서울에 사는 꽃청년의 IT찌질모험기

Rss feed Tistory
IT/Perl 2008.11.26 12:01

[ Perl ] Pod::HTML, POD 문서를 HTML 로 ...


 지난 2월부터 번역해온 perldoc 은 요즘 답보상태입니다. 언제부턴가 출퇴근 30분씩  perldoc 을 번역하던 것이 일본 IT 연재컬럼들로 바뀌어버렸으니까요. 일단 다른 것들도 골고루 배워가고 싶다는 개인적인 욕망에서 였을까요?

 아무튼 근래에 들어서 다시 perldoc 에 눈이 가기 시작했습니다. 이런 건 되려나? 하는 것들은 대개 perldoc 을 찾아보기 마련이고.. 애써 번역한 것들을 웹상에 공개해두지 않고 그냥 Repository 에 담아두는 것도 아쉽기도 해서 이것들을 제 섭에서 HTML 로 공개해버릴까 해서 좀 찾아봤습니다.

  제가 원하는 작업을 하는 것은 Pod::HTML 인데, 이미 perl 이 들어있는 환경에서는 기본적으로 설치되어 있습니다. 거기에 pod2html 이라는 커맨드라인 툴을 제공해주기도 합니다.

 # pod2html perlfunc.pod > perlfunc.html

  이렇게 하면 끝이죠. 근데 끝이라고 해야할까. 뭔가 상당히 아쉽습니다. 기본적으로 그냥 HTML 로 바뀔 분이라서, CSS 를 적용해서 깔끔하게 하고 싶다든가 하는 생각도 있죠. 마침 옵션도 지원합니다. --css 옵션으로 style 태그를 지정할 수 있더군요. 거기에 title 태그도 들어가 있지 않습니다. 맨 처음에 나온 =head1 의 값이 title 에 들어가게 되었죠.

  문제는 이것뿐만이 아니었습니다. 번역하면서 pod 문법이 간간히 틀린 부분도 있기 때문에 이를 교정해주어야 하는 데요. 여기에 사용할 수 있는 것이 podchecker 입니다. 역시 마찬가지로 기본으로 설치되어 있기 때문에 추가 설치는 필요 없습니다.
# podchecker perlfunc.pod
 
*** WARNING: line containing nothing but whitespace in paragraph at line 641 in file perlfunc.pod
*** WARNING: line containing nothing but whitespace in paragraph at line 1780 in file perlfunc.pod
*** WARNING: (section) in 'getpriority(2)' deprecated at line 4505 in file perlfunc.pod
*** WARNING: (section) in 'dup(2)' deprecated at line 6947 in file perlfunc.pod
*** WARNING: (section) in 'dup(2)' deprecated at line 6996 in file perlfunc.pod
*** ERROR: unterminated L<...> at line 7271 in file perlfunc.pod
*** ERROR: =end without =begin at line 7530 in file perlfunc.pod
*** ERROR: unterminated C<...> at line 7856 in file perlfunc.pod
*** ERROR: unterminated C<...> at line 8597 in file perlfunc.pod

  이렇게 pod 문법 경고와 해당 라인이 나오기 때문에 무엇이 잘못되었는지 살펴보면 금방 알 수 있겠죠?

  하지만 파일 하나하나를 podchecker 로 체크하고 pod2html 로 HTML 로 바꿔줘야 하는가?

  Pod::Html::HtmlTree 라는 모듈은 디렉토리를 지정해주면 해당 디렉토리의 pod 나 pm 모듈 안의 pod 문서를 번역해서 특정디렉토리에 html 로 일괄출력할 수도 있습니다. 하지만 Pod::Html::HtmlTree 는 podchecker 를 거치지 않기 때문에 사전에 완벽하게 pod 문법에 맞출 필요가 있을 것 같습니다.

  그냥 편하게 스크립트 몇 줄 써서 일괄 출력하는 방법이 좋겠다 싶기도 하네요.
 
  P.S: 사실 펄덕펄덕(http://doc.perl.kr) 이 한동안 죽었었는데... 이것을 보완하기 위해서 작업하려고 생각해뒀지만... 최근에 다시 살아나서 필요는 없지 않을까 하고 생각은 했지만. 그래도 역시 자신이 번역한 문서를 누가 더 봐주길 원한다고 할까요?
  그리고 펄덕펄덕이 쓰고 있는 Twiki 는 너무 무겁거든요. 뭐  Twiki 는 pod 도 자동번역해주는 편리함도 있지만. perlfunc 한번 읽으려면 좀 많이 기다려야 되더군요.
 
  뭐 아무튼 일단 위의 과정을 거쳐서 제 서버에도 perldoc 번역본을 올려놨습니다. --css 옵션에 사용할 css를 찾지 못하고 있다가 간단하게 aero 님으로부터 다음과 같은 css 를 받았습니다. aero++
  1. pre {
  2.   padding: .3em .3em .3em .3em;
  3.   border: .05em solid #000000;
  4.   background: #FFFFCC;
  5.   margin-left: 1em;
  6.   margin-right: 1em;
  7. }
  8.  

  단순히 예제 코드부분을 박스로 감싸주는 것 밖에 없지만요. 누군가 깔끔한 css 하나 써주실 분 안계시려나요? :-)
 어쨌든 번역된 perldoc 은 여기에서 볼 수 있습니다.

신고
IT/Perl 2008.06.02 19:29

[ Perl ] Perl 로 OOP 하지 않겠나(요)? - Moose #번외편

사용자 삽입 이미지

 이건 미리 쓸려고 했는데...

 YAPC::Asia 2008 에서 Moose 관련 세션에 대한 소개입니다.

 
  그리고 PT는 여기에 ...
 

 그리고 Moose 에 대한 이야기를 간단하게 번역해 봤습니다.

 1. Moose 는 또다른 OOP 시스템인가요?

 - Perl 5 에서 오브젝트를 생성하는 새로운 방법이 최근 폭발적으로 증가했고, 그 많은 인사이드아웃 오브젝트나 그와 비슷한 것을 기본으로 하고 있는 것을 알았습니다. Moose 는 Perl 5의 새로운 오브젝트 시스템이 아닌 기존의 오브젝트 시스템을 확장한 것입니다.

 2. Moose 는 정말로 쓸 수 있는 것인가요? 아니면 그냥 재미로 만들어 본 건가요?

 - Moose는 Perl 6에서 실험한 메타/모델의 시험작이나 실험을 기반으로 했습니다만 시험삼아서 만든 게 아닙니다. 실제 운용에 쓰일 수 있습니다. Moose 는 몇 명정도의 개인이나 몇 개의 회사에 의해 실제 운용환경에서 사용중입니다. 일년 이상동안, 혹은 전혀 문제없이 실제로 운용되는 Moose 어플리케이션이 몇가지 있습니다. 전 이것이 크게 안정되어 있다고 보고, 앞으로도 그럴 것이라고 약속합니다.          
 
 3.  Moose 는 단순하게 Perl 5에서 움직이는 Perl 6 가 아닌가요?

 - 아뇨. Moose는 Perl 6 에 많은 자극을 받았습니다만, 이것 자체가 Perl6 는 아닙니다. 오히려 Perl5 을 위한 OO시스템입니다. 저는 낡고 지겨운 Perl OO 코드를 쓰는 것에 지쳤고, Perl 6 OO에 감흥을 느꼈기에, Moose 를 만들었습니다. 즉, Ruby 로 가는 대신에 Moose 를 만든 것입니다. :-)

  4. 잠깐. Post Modern 이라구요? 단순히 Modern 으로 생각되는 데요?

 - 전 Larry Wall 의 1999년 Linux World "Perl, 최초의 포스트모던 컴퓨터 언어(Perl, the first postmodern computer language)" 라는 제목의 세션을 읽었습니다. 그 안에서 Larry 가 Perl 의 기능으로써 그가 좋다고 생각하는 것을 넣고, 그가 지겹다고 느끼는 것을 버리는 것에 대해서 말했었습니다. 이것에는 Moose 로 같은 것을 하기에 어떻게 하면 좋을 까 생각하게 되었습니다. Moose는 Perl 6, CLOS (LISP), Smalltalk, Java, BETA, OCaml, Ruby, 그 외의 많은 기능을 "빌려" 왔고, 몇개인가의 좋지않은 것은 버렸습니다. 이런 이유로(그외 2,3가지 이유로) 저는 Moose 를 "포스트모던" 오브젝트 시스템이라고 다시 부르고 있습니다.

  이 외에 내용은 http://search.cpan.org/~stevan/Moose-0.48/lib/Moose.pm 을 확인하시면 되겠습니다.
 문서화가 아직 덜 되어 있지만, 사용하기에는 충분할 것이라고 생각합니다. :-) 문서화가 덜 되어 있어도 일단 문서화 작업에 뛰어들려고 하는데요. Moose 문서화 작업에 참여하실 분을 모집합니다.

 perldoc-kr 에서 작업을 하려고 합니다. 한번 해보지 않으시겠어요? :-)

 관심있으신 분은 aiatejin _at_ gmail.com 으로 메일, 혹은 댓글 달아주시면 되겠습니다.
신고
IT/Perl 2008.05.26 13:18

[ Perl ] IRC와 한글 펄 문서 사이트 시작!

   IRC 를 freenode 에도 열었습니다. - 펄매니아
 
   한글 펄 문서 사이트를 열었습니다. - 펄매니아
 최근에 한국 내 Perl 커뮤니티가 뜨겁습니다. 매주 자체적인 스터디를 해나가면서, Perl에 대해 배워나가는 것은 물론이고, 나라를 대표하는 Perl Mongers 설립을 위해서 분주한 움직임을 보이고 있고, 지난 2-3월 부터 시작한 perldoc-kr 프로젝트에서 이제는 Perl 문서를 모으기 위한 사이트 마저 오픈되었습니다.

  요 근래 일본에서도 perl-users.jp 라는 Perl Hub Site를 만들고, 이를 위한 컨텐츠를 채워나가고 있고, 이를 따라하면서 여러 언어들도 저마다의 *-users.jp 를 만들어 내고 있고, 기타 여러 수단을 통해서 나름대로의 커뮤니티를 만들어내고 있는 듯합니다. 대표적인 게 Twitter 와 IRC죠.

사용자 삽입 이미지

 한글 펄 문서 사이트(doc.perl.kr)을 만드는 것에 pung96 님께서 힘써주셨습니다. pung96++

 그리고 지난 펄 스터디에서는 IRC 포트가 막힌 곳이 많아서 웹 IRC의 사용에 대한 이야기가 나왔습니다. 이 때문에 mibbit같은 웹 IRC 클라이언트를 이용하자는 이야기가 나왔고, 불행히도 현재 사용중이던 hanIRC에서는 UTF-8 지원이 되지 않기에, freenode에도 #perl-kr 채널에서 모이고 있습니다.

 거기에 더해서 아직은 제대로 운영되지 않지만, 미투데이에 perl 이라는 ID도 얻었고, Twitter 에도 perl_kr 이라는 ID를 등록해서 IRC상에서 이용할 수 있게 되어 있습니다. 어느정도 홍보수단이 되지 않을 까 하는 망상 속에 살고 있습니다. :-)

 뛰어난 현직 Perl Hackers 들이 스터디에 참여하고 있고, 친절한 설명이 함께 하고 있사오니, 많은 분들의 참여를 부탁드립니다.

 그리고...

 Perl 에 젊은 피를 구합니다. 중심이 20대 후반이상 분들이 많기 때문에, 젊은 피 수혈이 시급합니다. 그래서 10대 프로그래밍을 즐기는 여중고생 분들은 미국 쇠고기 반대 촛불문화제가 성공적으로 끝난 다음에는 Perl 커뮤니티에 참여해주셔서 부디 Perl 에 활기를 불어넣어 주셨으면 합니다. :-)

 Perl 중심 커뮤니티는 펄매니아 , Perl IRC는 #perl-kr@irc.freenode.org , #perl@irc.hanirc.org
 
 Perl IRC 는 아래 위젯에서 닉네임을 넣고 바로 접속이 가능합니다. :-)


신고
IT/Perl 2008.03.16 23:25

I WANT YOU TO LEARN PERL

사용자 삽입 이미지

   일단 evernote 테스트 겸해서 이 이미지를 올려서 한번 테스트 해봤습니다. 흠... (사실은 EVERNOTE 베타테스트에 관한 포스트를 할려고 했는데...)

  위와 마찬가지로 저도 역시...

  되도록이면 여러분들이 PERL을 배웠으면 좋겠습니다. :-)
 
  그렇다고 제가 PERL을 잘한다는 것도 아니구요. 뭐랄까...

  그냥 좋다고 해야하나요.

  그렇다고 해서... PERL 책이 많은 것도 아니고...

  디씨의 어느 분이 말씀하신 것 처럼... "펄은 옛날 언어"  일지도 모르고...

  $@% ... 무슨 뭔 놈의 언어가 욕하면서 싸우는 것도 아니고...

   하지만 펄 배운지 한 두달만에 아마존 사이트 긁어서 회사에서 인정받고,

 몇 달치 웹 로그 긁어서 요 근래 어떤 서비스가 거시기하다 라는 데이터를 기반으로 한 이야기도 할 수 있고...

 가끔은 펄로 아르바이트 같은 것도 구할 수 있습니다( 저 같은 경우는 운 좋게 하다가, 회사 업무때문에 접었지만...)

 혹은 캐 뉴비가 뒹굴거리면서, 업계에서 여러 경험을 갖춘 사람들의 경험과 정보를 얻는 계기가 되기도 합니다.

 그런 경험과 정보가 뉴비인 저에게는 좋은 뼈와 살이 되는 것이죠.
 
 irc://irc.hanirc.org    #perl

 언어를 방이름으로 내건 것 중에서는 제일 활발하지 않을 까 싶네요.

  다른 곳에서는 들락날락 거리는 로그만 주루루룩한데 말이죠.

 뭐, 그렇다고 펄 이야기만 하는 것도 아니고... 가끔은 음담과 사담과 협담과 악담이 오가는 활발한 활동이

 오가고 있으니까요.

 실제로 #perl 에서 perldoc 한글화 이야기가 나와서 저도 perldoc 작업 중이기도 하구요.

 이와 비슷하게 해외에서의 사례를 얘기하면...

  Catalyst의 메인 개발자인 Jonathan Rockway가 올린 모듈 중에 하나인 __ 도 #moose에서  Matt S Trout 와의 대화 중의 내용에 착안해서 개발하게 되었다는 것도 알수 있습니다.

  실제로 일본 생활 중에서 알 수 있는 게... 일본의 Perl 개발자들은 Twitter나 개발자 IRC등에서 나온 어떤 힌트 등을 착안으로 해서 자신의 모듈을 개발한다거나 기존의 모듈들을 개선하기도 하죠.

  이 모든 게 참여를 바탕으로 한 개발이죠!  정부는 실용이라지만, 그래도 참여가 그립습니다.
 
  I Want you to learn PERL!

  There's More Than One Way To Learn Perl.

 뭐,, 결국 뉴비가 말할 수 있는 것은 이정도 입니다.
신고

'IT > Perl' 카테고리의 다른 글

[PERL] CPAN Mirror를 바꾸자 ( 자기삽질 방지용)  (0) 2008.03.26
I WANT YOU TO LEARN PERL  (0) 2008.03.16
별 찍기 운동을 알고 계시나요?  (0) 2008.02.16
일본의 Perl Hackers들  (0) 2008.01.11
TOTAL 462,432 TODAY 22

티스토리 툴바