Perl DBI / CGI 에서 DBI의 에러처리
아무리 eval{} 로 감쌌어도 $@가 나오지 않았습니다.
다만, 로그파일에는 에러가 제대로 적혀 있었습니다.
이건, DBI의 에러가 warning이 되어 출력되고 있는 것이었습니다.
connect할 때, RaiseError를 사용하는 것을 깜빡하고 있었습니다.
my $dbh = DBI->connect(
'DBI:mysql:dbname', 'user', 'password',
{AutoCommit => 0, RaiseError => 1, PrintError => 0}
) || die;
이것으로 재대로 $@를 catch할 수 있었습니다.
Tuesday, May 26, 2009
Friday, May 22, 2009
perl로 만드는 win util / tts.pl
보물 하나더,
제 컴퓨터에는 Microsoft SAPI (Speach API)가 설치되어 있고, Voice가 영어, 일본어가 설치되어 있습니다. (중국어는 설치했다가 삭제했습니다만.)
주로 emeditor에서 파일 편집작업을 많이 하는데 emeditor에서 TTS speech하도록 한 매크로가 있습니다만, 음성 출력이 완료되기까지 Editing작업을 할 수 없어 만들어 놓고 그다지 사용하고 있지 않았습니다.
콘솔용으로 만들 수 없는 건 아니지만, 콘솔용으로 만들었을 때, 그 프로그램에 출력하는 문장을 전달하는 것이 좀 만족스럽지 않아서 보류하고 있었습니다만,
다음의 Perl Package의 예제를 발견했습니다.
Perl로 하면, speech할 본문을 URL에서 가져온다던지, 어제 발견한 MSNd로부터 입력받은 내용을 speech하게 한다던지, 훨씬 쓰임새가 있어보입니다.
다음에는 인터넷의 자동번역하는 페이지에 post해 일본어<->한글 하는 코드를 javascript로 만들어 둔 것이 있는데 perl로 옮겨두어야 겠습니다.
제 컴퓨터에는 Microsoft SAPI (Speach API)가 설치되어 있고, Voice가 영어, 일본어가 설치되어 있습니다. (중국어는 설치했다가 삭제했습니다만.)
주로 emeditor에서 파일 편집작업을 많이 하는데 emeditor에서 TTS speech하도록 한 매크로가 있습니다만, 음성 출력이 완료되기까지 Editing작업을 할 수 없어 만들어 놓고 그다지 사용하고 있지 않았습니다.
콘솔용으로 만들 수 없는 건 아니지만, 콘솔용으로 만들었을 때, 그 프로그램에 출력하는 문장을 전달하는 것이 좀 만족스럽지 않아서 보류하고 있었습니다만,
다음의 Perl Package의 예제를 발견했습니다.
use Win32::OLE qw( EVENTS );
our $myTTS = new Win32::OLE( "Sapi.SpVoice" );
get_text();
sub get_text{
$output_speech =;
chomp($output_speech);
if($output_speech eq ":jp"){
$myTTS->{voice} = $myTTS->GetVoices("Name=VW Misaki", "Language=932")->Item(0);
}
elsif($output_speech eq ":en"){
$myTTS->{voice} = $myTTS->GetVoices("Name=VW Kate", "Language=409")->Item(0);
}
if($output_speech ne ":q"){
say_this();
get_text();
}
}
sub say_this{
$myTTS->Speak( "$output_speech" );
while( $myTTS->{Speaking} )
{
Win32::OLE->SpinMessageLoop();
Win32::Sleep( 100 );
}
}
Perl로 하면, speech할 본문을 URL에서 가져온다던지, 어제 발견한 MSNd로부터 입력받은 내용을 speech하게 한다던지, 훨씬 쓰임새가 있어보입니다.
다음에는 인터넷의 자동번역하는 페이지에 post해 일본어<->한글 하는 코드를 javascript로 만들어 둔 것이 있는데 perl로 옮겨두어야 겠습니다.
perl로 만드는 win util / msnd.pl
perl로 만드는 win util / msnd.pl
일본에서 일하든 대부분의 동료들과는 달리 저는 9시 출근입니다.
10시가 되면, 하나 둘 씩 로그인을 하지요. 그럼 저는 "오하요오" 메시지를 보냅니다.
간혹, 이런 메시지를 보내는 것이. 규칙적었는지, 혹시 로그인하면 자동으로 메시지를 보내는 프로그램을 만들어서 하고 있는 것으로 생각하는 사람들이 있었습니다. (그래서 매일 메시지를 조금씩 내용을 바꿉니다. ^^)
그런데 이런 프로그램을 만들려면 어떻게 할까요. 오늘 보물을 발견했습니다.
혹시 심심이라고 하는 MSNBot을 알고 계시다면,
그리고 예전에 있었던, 자동번역 Bot을 알고 계신다면, 그것을 제로부터 직접 만드는 것은 꽤 까다로운 작업입니다만, 아래의 MSN Package를 사용하면 그렇게 어렵지 않게 구현할 수 있습니다.
#!/usr/bin/perl
use lib qw(./MSN/lib);
use strict;
use MSN;
my $msn = MSN->new(Handle => 'youraccont@hotmail.co.jp',
Password => 'password');
$msn->setHandler(Message => \&handler_message);
$msn->connect();
while(1) {
$msn->do_one_loop
}
sub handler_message {
my ($self, $username, $name, $message, %style ) = @_;
print "Msg recv.\n";
$self->sendMessage("hello!");
}

전에 잠시 서버관리를 위해, 뭔가 Notification해야 할 일이 생긴다면 실시간으로 메시지로 받을 수 있도록 Microsoft Alert Service를 사용할까 한 적이 있었습니다.
이 패키지를 발견한 뒤로는, 필요 없을 것 같습니다. 무얼 만들까요.
Source Repository에 업데이트 되면 메시지를 보내는 어플?
CI build 가 깨지면 메시지를 보내는 어플?
다양한 방법으로 사용할 수 있을 것 같습니다. :)
일본에서 일하든 대부분의 동료들과는 달리 저는 9시 출근입니다.
10시가 되면, 하나 둘 씩 로그인을 하지요. 그럼 저는 "오하요오" 메시지를 보냅니다.
간혹, 이런 메시지를 보내는 것이. 규칙적었는지, 혹시 로그인하면 자동으로 메시지를 보내는 프로그램을 만들어서 하고 있는 것으로 생각하는 사람들이 있었습니다. (그래서 매일 메시지를 조금씩 내용을 바꿉니다. ^^)
그런데 이런 프로그램을 만들려면 어떻게 할까요. 오늘 보물을 발견했습니다.
혹시 심심이라고 하는 MSNBot을 알고 계시다면,
그리고 예전에 있었던, 자동번역 Bot을 알고 계신다면, 그것을 제로부터 직접 만드는 것은 꽤 까다로운 작업입니다만, 아래의 MSN Package를 사용하면 그렇게 어렵지 않게 구현할 수 있습니다.
#!/usr/bin/perl
use lib qw(./MSN/lib);
use strict;
use MSN;
my $msn = MSN->new(Handle => 'youraccont@hotmail.co.jp',
Password => 'password');
$msn->setHandler(Message => \&handler_message);
$msn->connect();
while(1) {
$msn->do_one_loop
}
sub handler_message {
my ($self, $username, $name, $message, %style ) = @_;
print "Msg recv.\n";
$self->sendMessage("hello!");
}
전에 잠시 서버관리를 위해, 뭔가 Notification해야 할 일이 생긴다면 실시간으로 메시지로 받을 수 있도록 Microsoft Alert Service를 사용할까 한 적이 있었습니다.
이 패키지를 발견한 뒤로는, 필요 없을 것 같습니다. 무얼 만들까요.
Source Repository에 업데이트 되면 메시지를 보내는 어플?
CI build 가 깨지면 메시지를 보내는 어플?
다양한 방법으로 사용할 수 있을 것 같습니다. :)
Thursday, May 21, 2009
[정보공유] 최근, 도코모에서 구글의 Android를 탑재한 폰이 공개됨
최근, 도코모에서 구글의 Android를 탑재한 폰이 공개됨
http://k-tai.impress.co.jp/cda/article/news_toppage/45367.html
Iphone에서는 Flash를 보는 것이 불가능한 반면,
이 Android폰에서는 웹에서 플래쉬보는 것이 가능함.
>woo_김택우 says:
>iphone에서 youtube볼수 있어?? youtube전용 어플리케이션이 있음
>(Dev) Kim tonghyun says:
>아하
>woo_김택우 says:
>현재는iPhone의Safari에서 플래쉬를 지원 안하니까
>woo_김택우 says:
>웹사이트에 들어가서는 못보는 상황이지
>(Dev) Kim tonghyun says:
>나루호도네
Iphone에서는 ObjectC로만 개발가능한 반면
Android폰 에서는 당연히 java나 perl, python등을 지원하므로 다른 언어의 개발자가 접근하기 용이함. ActionScripter도 당연히 자기가 Flash를 만들어 올리는 것이 가능
사업적인 측면으로 개발자로서 볼 때 IPhone의 AppStore보다는 접근하기 더 쉽지 않을까 하는 생각이 듬.
>woo_김택우 says:
>내년까지 스마트폰이 이본에서만 300만데 시장으로 성장 할꺼야
>woo_김택우 says:
>아마 반이상이 안드로이드가 들어가겠지
>(Dev) Kim tonghyun says:
>나루호도-
>woo_김택우 says:
>음 아무레도 자바가 쉽겠지
>woo_김택우 says:
>서비스나 브랜드만 만들면, 개발언어는 선택이지
>woo_김택우 says:
>시장이 있으면 진입하면되고
>woo_김택우 says:
>일본에 전화기가 1억7천만데 사용하고 있는데, 300만이면 아직 멀었지만, 배수로 성장한다고봐
이상. 정보공유 끝.
http://k-tai.impress.co.jp/cda/article/news_toppage/45367.html
Iphone에서는 Flash를 보는 것이 불가능한 반면,
이 Android폰에서는 웹에서 플래쉬보는 것이 가능함.
>woo_김택우 says:
>iphone에서 youtube볼수 있어?? youtube전용 어플리케이션이 있음
>(Dev) Kim tonghyun says:
>아하
>woo_김택우 says:
>현재는iPhone의Safari에서 플래쉬를 지원 안하니까
>woo_김택우 says:
>웹사이트에 들어가서는 못보는 상황이지
>(Dev) Kim tonghyun says:
>나루호도네
Iphone에서는 ObjectC로만 개발가능한 반면
Android폰 에서는 당연히 java나 perl, python등을 지원하므로 다른 언어의 개발자가 접근하기 용이함. ActionScripter도 당연히 자기가 Flash를 만들어 올리는 것이 가능
사업적인 측면으로 개발자로서 볼 때 IPhone의 AppStore보다는 접근하기 더 쉽지 않을까 하는 생각이 듬.
>woo_김택우 says:
>내년까지 스마트폰이 이본에서만 300만데 시장으로 성장 할꺼야
>woo_김택우 says:
>아마 반이상이 안드로이드가 들어가겠지
>(Dev) Kim tonghyun says:
>나루호도-
>woo_김택우 says:
>음 아무레도 자바가 쉽겠지
>woo_김택우 says:
>서비스나 브랜드만 만들면, 개발언어는 선택이지
>woo_김택우 says:
>시장이 있으면 진입하면되고
>woo_김택우 says:
>일본에 전화기가 1억7천만데 사용하고 있는데, 300만이면 아직 멀었지만, 배수로 성장한다고봐
이상. 정보공유 끝.
Monday, May 18, 2009
[정보공유] FireFox의 BookMark 기능을 이용하여 일본어페이지 바로 번역해 보기
원리를 지금까지 설명하지 않았는데
안에 %s 는 파이어폭스가 뒤에 파라메터로 받아서 자동으로 바꾸어서 URL을 Query함
북마크 등록정보
Name : google translate web japanese->korean
Location : http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&u=%s&sl=ja&tl=ko&history_state0=
keyword : jako
테스트용 페이지 : http://www.wowkorea.jp
어제 와이프가 구약소 유치원 지원금 페이지를 보느라 애쓰는 걸 보고 생각해냄.
일본어 페이지를 보고 주소창에 앞에 'jako '라고 덧붙여 주면 됨.
[추가 정보공유] 다음과 같이 등록하면 중국어 페이지도 금방 번역해 볼 수 있음.
Name : google translate web chinese->korean
Location : http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&u=%s&sl=zh-CN&tl=ko&history_state0=
keyword : chko
테스트용 페이지 : http://baike.baidu.com/view/29.htm
이상.
안에 %s 는 파이어폭스가 뒤에 파라메터로 받아서 자동으로 바꾸어서 URL을 Query함
북마크 등록정보
Name : google translate web japanese->korean
Location : http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&u=%s&sl=ja&tl=ko&history_state0=
keyword : jako
테스트용 페이지 : http://www.wowkorea.jp
어제 와이프가 구약소 유치원 지원금 페이지를 보느라 애쓰는 걸 보고 생각해냄.
일본어 페이지를 보고 주소창에 앞에 'jako '라고 덧붙여 주면 됨.
[추가 정보공유] 다음과 같이 등록하면 중국어 페이지도 금방 번역해 볼 수 있음.
Name : google translate web chinese->korean
Location : http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&u=%s&sl=zh-CN&tl=ko&history_state0=
keyword : chko
테스트용 페이지 : http://baike.baidu.com/view/29.htm
이상.
[정보공유] FireFox의 BookMark 기능을 이용하여 영어사전 바로보기
Name : Google Dictionary : %s in Korean
Location : http://www.google.com/dictionary?aq=f&langpair=ko%7Cen&q=%s&hl=en
Keyword : eng
이후 FireFox의 Address 입력창에 다음과 같이 입력하면 해당 단어가 번역되어 나옴.
eng school
eng 학교
이상.
Location : http://www.google.com/dictionary?aq=f&langpair=ko%7Cen&q=%s&hl=en
Keyword : eng
이후 FireFox의 Address 입력창에 다음과 같이 입력하면 해당 단어가 번역되어 나옴.
eng school
eng 학교
이상.
[정보공유] 파일업로드 하는 폼을 강제로 파일아닌 일반데이타만 전송하게 하고 싶을 때의 enctype 지정
[정보공유] 파일업로드 하는 폼을 강제로 파일아닌 일반데이타만 전송하게 하고 싶을 때의 enctype 지정
다 알고 있겠지만, 찾으려면 또 까먹어서 -_-;
파일업로드하는 form이어서
ENCTYPE = "multipart/form-data" 했는데,
자바스크립트로 일반데이타 전송하도록 하게 할 때.
ENCTYPE = "application/x-www-form-urlencoded"
로 강제 enctype 지정
http://www.htmlcodetutorial.com/forms/_FORM_ENCTYPE.html
이상.
다 알고 있겠지만, 찾으려면 또 까먹어서 -_-;
파일업로드하는 form이어서
ENCTYPE = "multipart/form-data" 했는데,
자바스크립트로 일반데이타 전송하도록 하게 할 때.
ENCTYPE = "application/x-www-form-urlencoded"
로 강제 enctype 지정
http://www.htmlcodetutorial.com/forms/_FORM_ENCTYPE.html
이상.
Subscribe to:
Posts (Atom)