목록개발자 이야기 (107)
동글동글 라이프
얼마전 cpan에서 테트리스게임을 구현한 코드를 발견하였다. yewenbin이란 중국사람이 만들었는데 멋지다. 소스 코드를 다운받아서 분석하던 중 ( perl은 소스코드를 바로 확인할 수 있어 좋은듯 ) Goo::Canvas 라는 모듈을 발견하고 이게 뭘까?? cpan에서 검색해 보았다. Goo::CanvasPerl interface to the GooCanvas Goo-Canvas-0.05 - 29 Mar 2008 - 叶文彬 오옷!! Gtk+ 를 사용하여 자동으로 그림을 그려주는 모듈인데 재밌는 기능이 많은듯 +_+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 my $canvas = Goo::Canvas->new(); $canvas->set_size_request(450, 280);..
perl로 연결리스트를 한번 구현해 보자. 연결리스트가 어떤것인지 궁금하다면... 위키디피아의 연결리스트를 보시기 바란다. http://ko.wikipedia.org/wiki/연결_리스트 그래도 잘 모르겠다는 분들을 위해서 간단히 정리해 보았다. 연결 리스트 - 연쇄적으로 연결된 원소로 이루어진 자료구조 데이터들이 쭉~~~ 연결되어있는 구조를 이야기한다. 지나가던 행인1 : 배열도 쭉~ 연결되어 있잖아? 죄송.. 설명이 시원찮아서...... 일단 밑의 그림을 보시라... 위의 그림으로 설명하자면... 데이터( data ) 뒤에 다음 데이터를 가르키는 주소( next )가 담겨져 있다. 다음 데이터를 추가하고 싶을때는 데이터와 다음주소값을 가르키는 값을 하나 더 생성한뒤 이 전의 주소와 연결만 시켜주면 계..
재귀(再歸)란? 원래 자리로 되돌아오거나 되돌아옴을 뜻하는 명사이다. 처음있던곳으로 계속 돌아온다는 뜻을 가진 이 단어는 프로그래밍에서 재귀용법이라는 알고리즘으로 프로그래머들을 때로는 탄성으로, 때로는 경악으로 몰고가는 알고리즘들 중 하나에 속한다. 재귀적 표현을 프로그래밍으로 그대로 옮겨놓은 것이 재귀함수(recursive function) 인데 이것은 자기자신을 계속적으로 호출하는 함수를 뜻하며 2가지 방법론이 제시된다. - 함수안에서 자기자신을 직접 호출하는 방법 - 두개의 함수가 상호 호출하는 방법 왠만하면 한큐에 끝낼 수 있는 자기자신을 직접 호출하는 방법이 더 좋다. 재귀용법은 일반적인 프로그래밍에서도 많이 응용이 되는데... 예를들어 지뢰찾기의 어떤 블럭을 클릭했을때 주변에 빈블럭이 있다면 ..
Perl로 배우는 알고리즘에서 좋은 내용을 발췌한다. 이진 탐색은 옛부터 알려진 탐색 방법중의 하나이며 어떠한 데이터를 우리가 원하는 테이블에서 검색을 할 때. 순차적으로 검색을 하는 것보다 더 효율적으로 반씩 끊어가면서 탐색을 하는 알고리즘을 이야기한다. 뜬구름 잡는 이야기 같아 죄송하지만... 실제코드부터 먼저 보기로 하자. 1 2 3 4 5 6 7 8 9 10 11 sub binary_search{ my ($array,$word) = @_; my ($low,$high) = (0, @$array -1); while( $low [$try] lt $word; $high = $try-1, next if $array->[$try] gt $word; return $try; # 값을 찾았을 때 해당 값 리턴 }..
네이트온 사용시 부재시 자동으로 답장을 해주는 프로그램을 만들어 봤다.. 네이트온에는 부재시 4종류의 행동패턴만 지원한다. ( 자리비움 , 다른용무중 , 통화중 , 회의중 ) 세부적으로 어떤일을 하고 있는지 정확히 알 수 없으므로 내가 하고 있는일을 전달하기가 어려울 때가 있다. 사람의 마음이라는것이 다 똑같다 쪽지를 한번 씹기 시작하면 인간관계가 서글퍼지므로 넓은 인맥관계를 형성하기 위한... 프로젝트... -_-... 쪽지가 왔을때 즉시 자동으로 답장을 해주며 부재중이더라도 사람들에게 친절하게 답장할 수 있는 프로그램을 소개한다.. 사실 만들고 나서야 알았지만 대규모 쪽지들도 모두 잽싸게 처리를 할 수 있다. 이런 류의 일을 하는 사람한테 도움이 될 수도 있다. 제작 언어 Perl 후후후... 필요한..
예전 WIn32::GuiTest 모듈을 사용한 예제에서 영문만 지원이 되고 한글은 지원되지 않기에 한글문자열이 직접 영문타자로 변환되는 모듈을 만들어 볼까 생각했었다. 오늘 시간이 남아 일단 여러 자료들을 다 펼쳐놓고 작업에 들어갔는데... 크게 정리하자면 1. 한글 문자열을 각 문자단위로 조각조각 낸다. 2. 조각조각 낸 단위의 문자들을 각각 영문키로 바꾼다. 3. 끝(?).... 응?? 어떻게 보면 간단하다... 하지만 세부적으로 들어가야하는 코딩은 까다롭기 때문에 잘 생각해보자. 가장먼저 한글을 쪼개어서 각 문자코드로 변환시켜주는 모듈을 소개한다. Lingua::KO::Hangul::Utilutility functions for Hangul in Unicode Lingua-KO-Hangul-Util..
이번에는 프로세스에서 메모리를 읽고 쓸수도 있는 Win32::Process::Memory 에 대해서 알아보자. 이 모듈을 찾게 된 계기는 다른 프로세서에 있는 메모리를 읽어오기 위한 방법이 없을까 해서 cpan에서 찾는 도중 발견~! Win32::Process::Memoryread and write memory of other windows process Win32-Process-Memory-0.20 - 01 May 2004 - Qing-Jie Zhou 만든지 꾀 오래 된 모듈이다 2004년 쯤이니.. 벌써 4년이 훨신 지났다. 기본적인 예제를 한번 실행해 보자. # 프로세스를 오픈한다. my $proc = Win32::Process::Memory->new({ name=>'cmd.exe' }); # 디버..
네이버 웹툰은 업데이트 시간이 정확히 정해져 있지 않아서 그런지 처음 댓글을 다는 사람들의 몇몇은 등수놀이를 한다. 의미없는 등수놀이지만.. 1등이 되기란 쉬운일이 아니다. 계속적으로 웹툰이 업데이트 되는지 모니터링을 해야 하며 업데이트가 되는 즉시 바로 댓글을 달아야 하기 때문에 스크롤을 번개같이 움직여 재빨리 글을 쓴 뒤 등록버튼을 눌러야 1등이 가능한것이다. 특히 인기좋은 웹툰에서는 1등하기란 하늘의 별따기이다. 나도 예전에 어쩌다 운이좋아 생활의참견에서 1등으로 댓글을 단 적이 있었는데... 그때 복권이라도 당첨된 것처럼 기분이 좋았다^^; 웹툰을 즐겨보는 사람들은 즐겨보는 웹툰에서 한번정도는 1등을 해보고 싶을 것이고... 이런 기분 좋은 일을 격고 싶지 않는가?? 그래서 어제... 무적 모듈인..
얼마전에 KISC에 놀러갔더니 카페 스텝분이신 이창민(miniuslab)님이 html_parser을 만드신 것을 보고 영감을 얻었다. perl로 만들어도 괜찮겠다 싶어서... 어제 gtk를 사용하여 약 1시간정도만에 후다닥 만들어보았다 ㅋㅋ (나는 따라쟁이 ;;) 사실... 원리를 아시는 분에게는 이정도야 껌이라고 하실듯... LWP::Simple 모듈을 사용하면... 금방 만들어 진다.. 헤더정도 따위는 없.... 처음 실행한 메인화면이다. 타이틀 아이콘 고르는것에 10분이상 투자를 했다.. 결국 파란 별을... ㅡㅡ; gtk2_textview.pl 을 참고해서 만들었으며 Editable 같은 옵션들이 맘에들어 그대로 남겨 두었다. 나같은 경우에는 URL로 소스를 먼저 얻은 후에, 정규식을 사용해서 다..