2010년 7월 29일 약속대로 Perl 6 ( http://perl6.org/ )의 Parrot ( http://www.parrot.org/ ) 위의 구현인
Rakudo ( http://rakudo.org/ )의 첫 공식릴리즈
Rakudo Star 가 릴리즈 되었습니다.
Perl 6는 2010년 7월 16일 말이 나온지 10년째 되는 생일을 맞았고
( Perl 6의 비하인드 스토리: http://use.perl.org/~masak/journal/40451 )
Perl의 창시자 Larry Wall은 그동안 Perl 6는 언제 나오냐? 는 질문을 받으면
항상 다음 크리스마스에 나온다고 농담삼아 얘기하곤 했었는데
결국 Rakudo Star가 릴리즈 되면서 Perl 6를 기다리던 사람들은
한여름의 크리스마스를 맞게 되었습니다. :)
이번에 출시된 Rakudo Star는 Stable이라는 이름을 달지 않고
a useful, usable, "early adopter" 라는 이름을 달고 출시되었습니다.
이것은 완벽함을 끊임없이 기다리기 보다는 적정한 선에서 선보이고
피드백을 받아들여 개선해나가는 전략이 낫다는 판단에서 나오지 않았나 생각됩니다.
Perl 6가 어떻게 동작하는지를 보고싶으면 다음의 링크들을 참고하시면 됩니다.
http://j2k.naver.com/j2k_frame.php/korean/d.hatena.ne.jp/uasi/20100730/1...
http://j2k.naver.com/j2k_frame.php/korean/d.hatena.ne.jp/uasi/20100730/1...
http://daniel.carrera.bz/2009/06/perl-6-and-the-josephus-problem/
http://perl6advent.wordpress.com/
http://github.com/perl6/book/downloads
http://en.wikibooks.org/wiki/Perl_6_Programming
마우스로 싸이즈를 마음대로 조정하기 힘들고( 가로 크기는 마우스로 늘어나지 않고 설정에서 수동으로 바꿔야 함) 폰트설정에도 기본적으로 제한이 있으며 다른 터미널 프로그램 처럼 투명한 효과를 못낸다든지 등등 마음에 안 드는게 한 두 가지가 아니다.
그래서 항상 cmd.exe를 linux의 터미널 처럼 좀 유연하고 말랑말랑한 느낌으로 쓸 수 없는가를 고민해오다 msys의 rxvt등으로 대체하거나 다른 cmd대체 프로그램들을 시도 해보았으나 썩 마음에 들지 않아 다시 울며 겨자먹기로 cmd.exe로 복귀하곤 했다.
하지만 인터넷을 서핑하다 우연히 정말 마음에 드는 cmd.exe 대체품을 찾게 되었다.
그 이름은 ckw라고 하는 것으로 일본에서 rxvt에서 가상 unix환경 부분등은 빼버리고 꼭 필요한 부분만 빼서 cmd.exe와 호환되게 만든 것이다.
참고: http://d.hatena.ne.jp/hideden/20071115/1195229532
여기서 제일 아래의 ckw-0.8.10-mod-bin.zip 를 받고 압축을 푼다.
그 다음 ckw.exe를 실행시키면 cmd.exe를 대체할 창이 뜬다. 이 창은 마우스로 자유롭게 크기를 조절할 수 있으며 마우스 버튼을 통한 copy & paste가 가능하고 Vista부터 막혀버린 기능인 탐색기에서 특정한 폴더를 끌어 창위로 가져오면 해당 폴더 경로가 자동으로 복사되는 기능등이 동작한다.
본인은 좀 더 예쁘게 쓰기 위해 ckw.cfg 파일을 다음과 같이 수정했다.
일단 구글에서 "Bitstream Vera Sans Mono 맑은고딕"으로 검색하면 나오는 내가 제일 좋아하는 고정폭 폰트인 Bitstream Vera Sans Mono + 맑은고딕 합성폰트를 받아 설치한 다음
설정을 다음과 같이 고쳤다.
!
! ckw setting
!
Ckw*foreground: white
Ckw*background: midnightblue
Ckw*cursorColor: green
Ckw*cursorImeColor: red
!Ckw*backgroundBitmap: ckw_background.bmp
Ckw*title: ckw[cmd]
Ckw*exec: cmd.exe
Ckw*chdir: c:\
Ckw*scrollHide: no
Ckw*scrollRight: yes
Ckw*internalBorder: 1
Ckw*lineSpace: 0
Ckw*topmost: no
Ckw*transp: 220
Ckw*transpColor: #000000
Ckw*font: Bitstream Vera Sans Mono
Ckw*fontSize: 12
Ckw*geometry: 80x26
Ckw*saveLines: 5000
Ckw*color0: #000000
Ckw*color1: #000080
Ckw*color2: #008000
Ckw*color3: #008080
Ckw*color4: #800000
Ckw*color5: #800080
Ckw*color6: #808000
Ckw*color7: #C0C0C0
Ckw*color8: #808080
Ckw*color9: #0000FF
Ckw*color10: #00FF00
Ckw*color11: #00FFFF
Ckw*color12: #FF0000
Ckw*color13: #FF00FF
Ckw*color14: #FFFF00
Ckw*color15: #FFFFFF
다음은 위 설정을 적용한 ckw 동작화면이다.

정말 알흠답지 아니한가? T_T
$ perldoc DateTime
처럼 perldoc 명령 뒤에 모듈이름을 적어주면 text로 포멧팅해서 보여주긴 하지만 예쁘게 포멧팅된 HTML문서에 비하면 보기에 썩 좋지 않다. 그래서 보통 모듈 문서를 볼 때 http://search.cpan.org 에 가서 해당 모듈을 검색해서 거기서 문서를 보곤 하는데 인터넷이 연결되지 않거나 할 경우 로컬에서도 HTML로 예쁘게 포멧팅된 문서를 보고 싶다면 어떻게 해야 할까?
다행이도 이미 CPAN에는 설치되어 있는 문서들을 심플한 로컬웹서버를 띄워 로컬로 접속해서 HTML로 예쁘게 볼 수 있게 해주는 간단한 툴들이 이미 몇가지가 있다. 그것들을 나열해보면
Perldoc::Server
Pod::Browser
Pod::POM::Web
Pod::Server
Pod::Webserver
이다.
개인적으로 평을 하자면 Perldoc::Server는 perldoc 싸이트와 완벽히 같은 형태에 문법하일라이팅등 가장 예쁘다 (하지만 속도가 약간 느린감이 있음), Pod::POM::Web은 속도도 빠르고 문서도 적당히 예쁘게 보여주는 것 같다. 나머지는 그냥 그럭저럭~
Perl 5.12.0 는 2007년 12월 이전 안정버젼인 5.10.0 버젼이 나온후 2년여간 200여명의 개발자에의해 750,000라인 이상, 3000개 파일 이상이 변경/추가 되었다고 한다.
Perl 5.12.0 이 가지는 또 하나의 의미는 두단계 이전 안정버젼인 5.8.0 버젼에서 5.10.0 버젼까지 5년 정도가 걸릴만큼 개발/릴리즈상에 정체가 있었고 Perl 6와 병행해서 개발되면서 그 집중도가 좀 떨어졌으나 Jesse Vincent씨가 2009년 여름에 Perl 5 Pumpkin(프로젝트 메니져정도로 보면 됨)으로 취임하면서 정기적이고 예측가능한 개발/릴리즈 주기를 가져가기로 한 후 발표된 첫 버젼이라는 것이다. ( 이러한 비하인드스토리는 상용 Perl 패키지를 판매하는 ActiveState사의 jan dubois씨가 올린 Perl 5 is Alive란 블로그 포스트에 잘 정리되어 있다. )
Perl 5.12.0에서 변경된 점은 perl5120delta 문서에 잘 정리되어 있으며
몇가지 주요 변화사항을 들자면
- Unicode 5.2 표준 적용
- Pluggable keyword/syntax를 개발자가 확장할 수 있는 api제공
- 32bit 자료형에 의한 Y2038문제 해결
- 새로운 package 버젼 지정방법 추가
- deprecated된 방법을 사용할 시 자동 경고
- 재미있고 획기적인(?) 일명 yada yada 연산자.
- DTrace 지원
이번에 Perl 5.12.0 버젼을 로컬계정에 설치하면서 요즘 많이 issue가 되고 있는 cpanm 과 perlbrew를 써보았다.
perlbrew 0.04버젼에서 File::Path make_path문제가 해결되어서 수정. 예전버젼 스크립트는 여기에
그래서 예전 아래한글 워드프로세스시절부터 상용 한글 맞춤법엔진들이 채용되어 사용되어 왔는데 요즘에는 그러한 엔진이 한국어 맞춤법/문법 검사기 같은 웹서비스를 통해서 제공되고 있다.
하지만 해당서비스는 결과를 테이블 구조로 보여주기는 하나 틀린 부분을 테이블과 원문을 비교해서 찾기 힘드는 등 사용하는데 불편한 점이 있어 편하게 쓰려고 작업을 좀 해봤다.
일단 위 서비스의 결과를 정해진 자료구조로 뽑아내는 WebService::KoreanSpeller Perl모듈을 만드는 데부터 시작해서 모듈을 이용해서 명령행에서 사용할 수 있는 스크립트를 만들고 마지막으로 결과를 Web+Ajax를 사용해서 원문 위에서 보며 쉽게 확인할 수 있도록 하는 또 다른 한글 맞춤법 검사기 가칭 YAKS(Yet Another Korean Speller)를 만들어 봤다.
아무쪼록 필요하신 분들에게 도움이 되기를~
YAKS(Yet Another Korean Speller) <- 사용해 보려면 클릭

