블로그 이미지
JEEN

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

Rss feed Tistory
IT/Perl 2009.07.09 13:13

[ iPhone & Perl ] Prowl 로 개발자 후렌들리 Notification 서비스를!

  * http://prowl.weks.net/

 요근래 TUAW 에서 Prowl 이라는 iPhone App 에 대한 소개가 올라왔었습니다. Mac 유저에게는 Growl 이라는 알림용 어플을 아실겁니다. 이걸 iPhone 용으로 만든 것인데요. OS 3.0 이후로 Push Notification 이 지원되니... :-) SMS 날릴 필요없이 그냥 Prowl API를 통해서 쏴주면 그냥 메시지가 iPhone 으로 뜨게됩니다.

  이렇게 말이죠. Push Notification 이야.. 백그라운드에서 들어오는 것이니 그때그때의 상황을 알 수 있게 되는 것이죠.

  최근에 Remember the Milk 가 PN 을 지원해주면서 Todo 관리에 상당히 편리해졌다는 얘기를 들었습니다.
  뭐 할 시간되면 자동으로 뿅 하고 알려주니까요.

  이제 RTM 을 부러워할 필요는 없게 되었습니다. 스스로 필요한 기능이 있다면 만들어버리면 되겠거니 하고 있죠.
  (하지만 아직은 능력 부족...)

  주로 IRC 에서 빌붙어사는 날들이 많으니... IRC나 메신저 등에서 필요할 때 "어서 들어와!" 라는 기능으로 집어넣는 다든지. RSS 를 어케저케 하든가... 누구에게 필요한 메일이 왔을 때 이렇게 저렇게 한다든가..
  으음.. 뭔가 많이 편해지겠는데~ 하고 생각은 하지만... 처음부터 만들어야 되는 현실은 아쉽기도 합니다.

  iPhone 의 Push Notification 지원만으로 350엔을 받아먹는 Prowl 이지만... 앞으로 여러가지 연계서비스들도 기대해 볼 수 있겠군요. Plagger 에 붙인다든가 Twitter 라등가.. 뭐 여러가지 있겠지만요(아마 Twitter App 에서 자체적으로 지원해줄 지도...)
  
  Prowl 은 서버에 30일간의 메시지를 저장해준다고 합니다. 거기에 Growl Plugin 으로도 나와 있으니까.. Prowl 로 알려줘야할 것을 해당 어플리케이션에서 Prowl 플러그인을 지정해주면 됩니다. 자세한 내용은 아래의 링크를 참고하세요.

  * http://prowl.weks.net/installation.php

  Perl,Ruby,Python 등의 API 구현은 많이 있더군요. 저는 Perl 위주로 사니까... 어떤 일본분이 만든 API 구현인 WebService::Prowl 을 써봤습니다.

  * http://github.com/sekimura/WebService-Prowl/blob/master/lib/WebService/Prowl.pm

use WebService::Prowl;

my $prowl = WebService::Prowl->new( apikey => 'your api key' );
$prowl->verify || die $prowl->error();

$prowl->add(application => "Fav", event => "f1", description => "한글이 안되면 안된다능!");
신고
IT/Perl 2009.02.03 20:18

[ JavaScript ] jGrowl Notification 을 IRC 로그 뷰어에 갖다 붙여봤습니다.

  요근래 remedie 의 UI 부분 업데이트에서 도입된 jGrowl 을 IRC 로그 뷰어에 갖다붙여보자는 생각을 예전부터 쭈욱 해왔습니다. jGrowl 이란, Mac 의 Growl 이라는 Notifier 비슷하게 JavaScript 로 브라우져 내의 이벤트를 생성할 수 있게 한 것입니다. Growl 은 Mac App 에서 발생하는 각종 동작 정보를 알 수 있습니다. IRC 에서 누가 불렀을 때나, 새로운 RSS Feed 가 있을 때나, Mail 이 왔을 때 등등...

Growl 아이콘


Mac 에서의 Growl Notification 동작


  이 jGrowl 같은 것이 한국에서 쓰인 가장 일반적인 예제로는 미투데이가 있겠네요.

미투데이에서 사용하고 있는 Growl 틱한 Notifier

    jGrowl 은 jQuery 플러그인으로도 만들어져 있기도 하지만, 그외 무툴즈 버젼 이외에 여러 버젼이 존재하고 있습니다. 전 자바스크립트에 그렇게 능숙하지 못해서 그냥 웹사이트 뒤지고 song 님에게 도움받으면서 작업하게 되었습니다.

  - jGrowl : http://www.stanlemon.net/projects/jgrowl.html

IRC 상에서 코멘트 입력


웹상의 IRC 로그뷰어에서 jGrowl 동작


  위처럼 IRC 에서의 대화는 웹상에서 일정시간(여기서는 20초설정)에 갱신되며, 이 갱신된 내용은 브라우저 안에서의 jGrowl 이벤트로 알려주게 됩니다.
  jGrowl 과 jQuery 의 높은 완성도에는 정말 탄성이 나올 정도입니다.
  기존에 만들어 둔 로그뷰어에 그대로 jGrowl 만 덧붙이는 간단한 작업이었습니다. jQuery 도 처음으로 써볼 겸 해서 간단하게 코드를 넣었습니다. $.getJSON 한방에 XHR 이 끝나는 게 너무 감동이네요. ㅜ_ㅜ (뭐 여타 JS 프레임웍이 그렇겠지만;;)
   Interval 을 20초 정도로 주고 웹사이트에서 매번 로그 뷰어 서버와 주고받고 합니다. 이러다보니 여러 유저가 붙었을 경우에는 빈번하게 리퀘스트가 오갈텐데... 이 부분에 대해서는 특별한 고민은 일단 하지 않았습니다. 뭐 어차피 쓰는 사람도 적을 테니... 라는 생각으로 있는데요. 이 같은 경우에서 뭔가 브로드캐스트 방식으로 통신할 수 없을까 하는 고민등등.. 여러가지 떠오르는 군요.
  서버쪽의 부하를 덜어줄 수 있는 여러가지 아이디어를 가지고 계신 분들께 지도편달 부탁드리겠습니다.
신고
Project 2008.03.31 19:34

[PERL] 급조 #4 Me2day API를 써서 Growl 로 통보받자! (미완성)

사용자 삽입 이미지

Me2day Growl을 이용한 통지


잠깐 숙고한 끝에 삽질한 결과가 대충 나온 듯 합니다.

생각해보면 me2day 도 RSS 를 제공하고 있는데... 내용을 보면 시간대가 GMT라서 그런지...

제대로 갱신될려면 12시간 시간 차가 있어서 이건 쓸 수 없나 생각을 하게 된다. 뭔가 방법이 있지 않나

싶은데 그런 거 생각하느니.. 그냥 Me2day API로 긁어오겠다고 생각하게 되었죠.

일단은 이전에 올렸던 2008/03/28 - [Project] - [PERL] 급조 #3 Me2Day Perl API 만들기 v2 - 셸에서 미투데이 글쓰기 에서 처럼 똑같은 인증절차를 거치게 됩니다.

 인증후에는 Me2day 친구 정보를 얻어오구요. 이 때 $ENV{HOME} ."/.me2day/"안에 관련 파일을 만들게 해놨습니다.

 이미지라든가, 닉이라든가, 업데이트 날짜 등의 정보는 YAML 로 보관하게 해놓구요.

 일단 Mac::Growl 로 삽질한 보람이 없기 때문에(인코딩 문제가...) growlnotify 로 돌리기로 했습니다.

 좀 징그러운 코드지만 ...  system("growlnotify blahblah") 이런 식으로요...

 나오는 것은  친구 이미지, 아이디, 내용 등이고...

 아직 안해놨지만 커멘트 등록 여부에 대해서도 통보하게 해놔야죠...

 매번 업데이트 될때마다 YAML 에 담긴 정보들을 갱신시켜 주고 말이죠.

 하다보니까 나중에 어떻게 고치지...;; 이런 생각을 해봤는데... 일단은 움직이는 것만 확인하고

올리는 성급한 포스팅입니다. 아마 이번주 중으로 나머지는 어케될 듯 하네요....

 일단 Mac 유저들은 Growl 로 통지 받으면 되는 거지만...

 Windows 유저들은 Snarl 이라는 것이 있다는 데 써보지 않아서 모르겠습니다.

  Snarl도 CPAN 모듈로 제공되고 있기때문에... 나중에 시간이 난다면 해보고 싶... 지는 않습니다.

 perldoc 번역도 쪼큼씩 해야되고, 이것도 조금 해야되고, 일도 좀 해야되고...

 읽고 싶은 책도 많고... 쿨럭.. 우힝...

사용자 삽입 이미지

그나저나 이미지 바꿔봤습니다.


신고
API, growl, mac, me2day, perl
TOTAL 462,479 TODAY 35

티스토리 툴바