狠狠撸

狠狠撸Share a Scribd company logo
リビドー駆動開発による Plagger と Catalyst を使った (Mashup) サイト開発  yusukebe : yusuke(at)kamawada.com
注意 心配御無用 今回は (モ有) ヴァージョンにて お送りいたします 「 リビドー駆動開発はストリーミング中継できるのかどうか心配  」 Shibuya.pm リーダーは言いました
自己紹介 yusukebe or id:kamawada 和田裕介  / Yusuke Wada ( 株 ) ワディット @ 鎌倉 代表取締役 2003 年度未踏ユース 準 スーパークリエーター " つながる " 音楽再生ソフト「 VACUUN! 」の開発 ACM SIGGRAPH2005 Emerging echnologies  採択 moo-pong : Kaleidoscope of Movie 慶應義塾大学 政策?メディア研究科 修士 Erogeek ようは鎌倉で Erogeek やってます
?
詳しくは http://yusukebe.com をみてね
リビドーとは? 衝動、 とりわけ 性的 衝動 リビドー  [( ラテン ) libido] 〔欲望の意〕フロイトの用語。性的衝動の基になるエネルギー。また、ユングでは、あらゆる行動の根底にある心的エネルギーを広くいう語。 三省堂提供「大辞林 第二版」より
リビドー駆動開発 Perl 初心者の yusukebe がリビドーに駆られ、 Plagger & Catalyst で Web サイトを作り、   Perl の世界にのめり込んでいく物語 *   *otsune 氏が命名 丁度 1 年前に本格的に Perl を始めた
リビドーその 1
エロ
サイト事例 1: Ero Pla 「たくさんあるエロ動画配信サイトの新着情報がまとめてわかるサイトが欲しい!」 無料サンプルもあるかもよ! 今夜のおかずになるよ!
それ Plagger で RSS 配信していないエロ動画サイトを EntryFullText で Feed & Entry オブジェクト化 -> Publish::Planet
エロ動画情報は Entry で表現できる! title date tags author icon body
caribbeancom.yaml  # http://www.caribbeancom.com/index2.htm custom_feed_handle: http://wwwcaribbeancomcom/index2htm custom_feed_follow_link: | http://wwwcaribbeancomcom/moviepages/.*?html handle: http://wwwcaribbeancomcom/moviepages/.*? extract: <META name=&quot;keywords&quot; content=&quot;(.*?)&quot;>.*?<h2>(.*?) </h2>.*?<p class=&quot;between2&quot;></p>.*?<img src=/slideshow/libido-driven-development-shibuyapm-tech-talk-8/123288/&quot;(.*?)&quot;.*?<tex tarea class=text_basic name=textarea wrap=VIRTUAL cols=55 rows=8>(.*?)</textarea>.*?<td class=&quot;value&quot;>({4}/{2}/ {2})</td> extract_capture: tags title img body date
ひたすら EntryFullText の YAML 書きまくり ?エロサイトに行く ? HTML のソース眺める ? YAML 書く ?正規表現分からなす ?勉強する ?なんとかキャプチャできた! ?次のエロサイトの YAML 書く ?母ちゃん部屋に入ってこないかびびる ?以後、繰り返し
夢の YAML 達 yusuke@com:~/www/pulpsite/eropla/feeds/assets/plugins/Filter-EntryFullText$ ls 1046034.yaml  dmm_monthly.yaml  himemix.yaml  r-shodo.yaml 10musume.yaml  duga.yaml  ittele.yaml  s-angels.yaml 1pondo.yaml  eroerooyaji.yaml  movie-girls.yaml  sexyrose.yaml 99bb.yaml  eroseven.yaml  newplay-st.com.yaml  smooth-movie.yaml ademusume.yaml  exotica-xxx.yaml  omany.yaml  sukiyakiav.yaml caribbeancom.yaml  g-area.yaml  onacle.yaml  tokyo-247.yaml cutie82.yaml  h4610.yaml  peachbomb.yaml  tora-tora-tora.yaml 優良動画配信サイトほぼ網羅、現在 28YAML!
config.yaml  前半 global: timezone: Asia/Tokyo plugins: - module: Subscription::Config config: feed: - url: http://www.caribbeancom.com/index2.htm - url: http://www.1pondo.tv/home.htm - url: http://www.10musume.com/home.html - url: http://www.smooth-movie.com/rss/rss.rdf?a_aid=3950&a_bid=001 - url: http://www.onacle.tv/podcast/rss.rdf?a_aid=3950&a_bid=001 - url: http://www4.omany.tv/rss/rss.rdf?a_aid=3950&a_bid=001 - url: http://www.ittele.tv/rss/rss.rdf?a_aid=3950&a_bid=001 - url: http://www.cutie82.com/list.php?category=10 - url: http://www.exotica-xxx.com/list.php?category=8 - url: http://www.newplay-st.com/list.php?category=8 - url: http://www.ademusume.com/list.php?category=10 - url: http://www.peachbomb.com/movie_list.php?category=10 - url: http://www.eroerooyaji.com/list.php?category=10 - url: http://www.1046034.com/list.php?category=10 - url: http://www.sexyrose.tv/list.php?category=12 - url: http://duga.jp/main/ - url: http://rss.99bb.com/ja/new_release/rss_ppv.xml - url: http://rss.99bb.com/ja/new_release/rss_monthly.xml
config.yam  後半 - module: Filter::EntryFullText - module: Filter::TruePermalink config: follow_redirect: 0 - module: SmartFeed::All rule: module: Fresh duration: 3 days config: title: ERO Pla description: Everything ERO from the Web - module: Publish::Planet rule: expression: $args->{feed}->id eq 'smartfeed:all' config: dir: ./ theme: eropla template: style_url: http://pulpsite.net/eropla/theme-eropla/theme-eropla.css url: base: http://pulpsite.net/eropla/
Ero Pla  完成
その後、ネットランナーに掲載 ネットランナー 2007 年 8 月号
サイト事例 2 : Erolyst  「 Ero Pla は 1 ページのみ アーカイブしてページングできるようにしたい!さらに、女優別など様々な方法でエロ動画情報を見たい!」
Plagger::Plugin::Store::DBIC  を発見 root/branches/feature-server Plagger の Feed & Entry を DB 化し、 SQLite で書き出す Plugin
「それ Plagger と Catalyst で」 が可能に Plalyst or PlaCata  メソッドを考案
Plalyst or PlaCata  メソッド Plagger で Feed と Entry をアグリゲート Web サイト Web サイト Web サイト Store-DBIC entry entry_tag feed feed_tag entry_meta feed_meta … SQLite 形式の DB DBIx::Class モデルとして Catalyst で扱う
ページングの例 package Erolyst::Controller::Entry; use strict; use warnings; use base 'Catalyst::Controller'; sub index : Private { my ( $self, $c ) = @_; my $page = $c->req->param('page') || 1; my $entries = $c->model('DBIC::Entry')->search( undef, { page => $page, rows => 20, order_by => 'date DESC', }); $c->stash->{entries} = $entries; }
Plalyst or PlaCata  メソッドで 実現できたこと
アーカイブ&ページング 「ちょw 1 万件超えてるwww」
Entry の Permalink 化
Feed 別 Entry の表示
そして、タグクラウド&タグ别表示
Plalyst or PlaCata  メソッドを応用して、 さらにリビドーを昇華 リビドー 2 :  無料で音楽 PV を見たい リビドー 3 :  物欲
サイト事例 3 : CDTube http://pulpsite.net/cdtube/ Mashup the Single CD ranking with YouTube
サイト事例 4 :  これ☆ほしい http://pulpsite.net/wewantit/ ウェブで話題の「みんなの物欲」がひとめでわかるサイト
CDTube はなんと 6 つの紙面に掲載 TVBros. 2007 年 1 月 6 日号  ネットランナー 2007 年 3 月号 YAHOO ! Internet Guide 2007 年 06 月号 ネットランナー 2007 年 9 月号 ネットランナー 2007 年 8 月号 ネットコンテンツ?ビジネスの行方
Plalyst or Catalyst  メソッド 使用上の注意 「一歩間違えばスパムサイト」 容量?用法を守って正しく使いましょう
まとめ リビドー駆動 で Perl の世界に飛び込もう Plagger は フィードとして「ウェブ API 」を作れる 道具 Plalyst or PlaCata  メソッドによって 情報を集約させ、見せ方?インタラクションに変化をつける -> うまくやれば 情報の価値を高める こ  とができる
謝辞 miyagawa さんをはじめとした (Plagger を含めた ) モジュール Author の方々、いつもお世話になってます ありがとうございます 自分も人の役に立つモジュール作りたい! ご清聴ありがとうございました
おまけ  : Erogeek の宣伝 ErogeekConference#1 が開催されます! ■  開催日時 2007-10-17(Wed) 20:00  からぐらいかね(予定) ■  開催場所 渋谷のなんか暗い部屋 ■  参加資格 ま○こをお持ちの方あるいはち○ぽをお持ちの方 ■ 基調講演 ヌイッター開発者 イエイリー氏(交渉中) http://erogeek.org/

More Related Content

Libido driven development Shibuya.pm tech talk #8

  • 1. リビドー駆動開発による Plagger と Catalyst を使った (Mashup) サイト開発 yusukebe : yusuke(at)kamawada.com
  • 2. 注意 心配御無用 今回は (モ有) ヴァージョンにて お送りいたします 「 リビドー駆動開発はストリーミング中継できるのかどうか心配 」 Shibuya.pm リーダーは言いました
  • 3. 自己紹介 yusukebe or id:kamawada 和田裕介 / Yusuke Wada ( 株 ) ワディット @ 鎌倉 代表取締役 2003 年度未踏ユース 準 スーパークリエーター &quot; つながる &quot; 音楽再生ソフト「 VACUUN! 」の開発 ACM SIGGRAPH2005 Emerging echnologies 採択 moo-pong : Kaleidoscope of Movie 慶應義塾大学 政策?メディア研究科 修士 Erogeek ようは鎌倉で Erogeek やってます
  • 4. ?
  • 6. リビドーとは? 衝動、 とりわけ 性的 衝動 リビドー [( ラテン ) libido] 〔欲望の意〕フロイトの用語。性的衝動の基になるエネルギー。また、ユングでは、あらゆる行動の根底にある心的エネルギーを広くいう語。 三省堂提供「大辞林 第二版」より
  • 7. リビドー駆動開発 Perl 初心者の yusukebe がリビドーに駆られ、 Plagger & Catalyst で Web サイトを作り、   Perl の世界にのめり込んでいく物語 *   *otsune 氏が命名 丁度 1 年前に本格的に Perl を始めた
  • 10. サイト事例 1: Ero Pla 「たくさんあるエロ動画配信サイトの新着情報がまとめてわかるサイトが欲しい!」 無料サンプルもあるかもよ! 今夜のおかずになるよ!
  • 11. それ Plagger で RSS 配信していないエロ動画サイトを EntryFullText で Feed & Entry オブジェクト化 -> Publish::Planet
  • 12. エロ動画情報は Entry で表現できる! title date tags author icon body
  • 13. caribbeancom.yaml # http://www.caribbeancom.com/index2.htm custom_feed_handle: http://wwwcaribbeancomcom/index2htm custom_feed_follow_link: | http://wwwcaribbeancomcom/moviepages/.*?html handle: http://wwwcaribbeancomcom/moviepages/.*? extract: <META name=&quot;keywords&quot; content=&quot;(.*?)&quot;>.*?<h2>(.*?) </h2>.*?<p class=&quot;between2&quot;></p>.*?<img src=/slideshow/libido-driven-development-shibuyapm-tech-talk-8/123288/&quot;(.*?)&quot;.*?<tex tarea class=text_basic name=textarea wrap=VIRTUAL cols=55 rows=8>(.*?)</textarea>.*?<td class=&quot;value&quot;>({4}/{2}/ {2})</td> extract_capture: tags title img body date
  • 14. ひたすら EntryFullText の YAML 書きまくり ?エロサイトに行く ? HTML のソース眺める ? YAML 書く ?正規表現分からなす ?勉強する ?なんとかキャプチャできた! ?次のエロサイトの YAML 書く ?母ちゃん部屋に入ってこないかびびる ?以後、繰り返し
  • 15. 夢の YAML 達 yusuke@com:~/www/pulpsite/eropla/feeds/assets/plugins/Filter-EntryFullText$ ls 1046034.yaml dmm_monthly.yaml himemix.yaml r-shodo.yaml 10musume.yaml duga.yaml ittele.yaml s-angels.yaml 1pondo.yaml eroerooyaji.yaml movie-girls.yaml sexyrose.yaml 99bb.yaml eroseven.yaml newplay-st.com.yaml smooth-movie.yaml ademusume.yaml exotica-xxx.yaml omany.yaml sukiyakiav.yaml caribbeancom.yaml g-area.yaml onacle.yaml tokyo-247.yaml cutie82.yaml h4610.yaml peachbomb.yaml tora-tora-tora.yaml 優良動画配信サイトほぼ網羅、現在 28YAML!
  • 16. config.yaml 前半 global: timezone: Asia/Tokyo plugins: - module: Subscription::Config config: feed: - url: http://www.caribbeancom.com/index2.htm - url: http://www.1pondo.tv/home.htm - url: http://www.10musume.com/home.html - url: http://www.smooth-movie.com/rss/rss.rdf?a_aid=3950&a_bid=001 - url: http://www.onacle.tv/podcast/rss.rdf?a_aid=3950&a_bid=001 - url: http://www4.omany.tv/rss/rss.rdf?a_aid=3950&a_bid=001 - url: http://www.ittele.tv/rss/rss.rdf?a_aid=3950&a_bid=001 - url: http://www.cutie82.com/list.php?category=10 - url: http://www.exotica-xxx.com/list.php?category=8 - url: http://www.newplay-st.com/list.php?category=8 - url: http://www.ademusume.com/list.php?category=10 - url: http://www.peachbomb.com/movie_list.php?category=10 - url: http://www.eroerooyaji.com/list.php?category=10 - url: http://www.1046034.com/list.php?category=10 - url: http://www.sexyrose.tv/list.php?category=12 - url: http://duga.jp/main/ - url: http://rss.99bb.com/ja/new_release/rss_ppv.xml - url: http://rss.99bb.com/ja/new_release/rss_monthly.xml
  • 17. config.yam 後半 - module: Filter::EntryFullText - module: Filter::TruePermalink config: follow_redirect: 0 - module: SmartFeed::All rule: module: Fresh duration: 3 days config: title: ERO Pla description: Everything ERO from the Web - module: Publish::Planet rule: expression: $args->{feed}->id eq 'smartfeed:all' config: dir: ./ theme: eropla template: style_url: http://pulpsite.net/eropla/theme-eropla/theme-eropla.css url: base: http://pulpsite.net/eropla/
  • 18. Ero Pla 完成
  • 20. サイト事例 2 : Erolyst 「 Ero Pla は 1 ページのみ アーカイブしてページングできるようにしたい!さらに、女優別など様々な方法でエロ動画情報を見たい!」
  • 21. Plagger::Plugin::Store::DBIC を発見 root/branches/feature-server Plagger の Feed & Entry を DB 化し、 SQLite で書き出す Plugin
  • 22. 「それ Plagger と Catalyst で」 が可能に Plalyst or PlaCata メソッドを考案
  • 23. Plalyst or PlaCata メソッド Plagger で Feed と Entry をアグリゲート Web サイト Web サイト Web サイト Store-DBIC entry entry_tag feed feed_tag entry_meta feed_meta … SQLite 形式の DB DBIx::Class モデルとして Catalyst で扱う
  • 24. ページングの例 package Erolyst::Controller::Entry; use strict; use warnings; use base 'Catalyst::Controller'; sub index : Private { my ( $self, $c ) = @_; my $page = $c->req->param('page') || 1; my $entries = $c->model('DBIC::Entry')->search( undef, { page => $page, rows => 20, order_by => 'date DESC', }); $c->stash->{entries} = $entries; }
  • 25. Plalyst or PlaCata メソッドで 実現できたこと
  • 26. アーカイブ&ページング 「ちょw 1 万件超えてるwww」
  • 28. Feed 別 Entry の表示
  • 30. Plalyst or PlaCata メソッドを応用して、 さらにリビドーを昇華 リビドー 2 : 無料で音楽 PV を見たい リビドー 3 : 物欲
  • 31. サイト事例 3 : CDTube http://pulpsite.net/cdtube/ Mashup the Single CD ranking with YouTube
  • 32. サイト事例 4 : これ☆ほしい http://pulpsite.net/wewantit/ ウェブで話題の「みんなの物欲」がひとめでわかるサイト
  • 33. CDTube はなんと 6 つの紙面に掲載 TVBros. 2007 年 1 月 6 日号 ネットランナー 2007 年 3 月号 YAHOO ! Internet Guide 2007 年 06 月号 ネットランナー 2007 年 9 月号 ネットランナー 2007 年 8 月号 ネットコンテンツ?ビジネスの行方
  • 34. Plalyst or Catalyst メソッド 使用上の注意 「一歩間違えばスパムサイト」 容量?用法を守って正しく使いましょう
  • 35. まとめ リビドー駆動 で Perl の世界に飛び込もう Plagger は フィードとして「ウェブ API 」を作れる 道具 Plalyst or PlaCata メソッドによって 情報を集約させ、見せ方?インタラクションに変化をつける -> うまくやれば 情報の価値を高める こ  とができる
  • 36. 謝辞 miyagawa さんをはじめとした (Plagger を含めた ) モジュール Author の方々、いつもお世話になってます ありがとうございます 自分も人の役に立つモジュール作りたい! ご清聴ありがとうございました
  • 37. おまけ : Erogeek の宣伝 ErogeekConference#1 が開催されます! ■ 開催日時 2007-10-17(Wed) 20:00 からぐらいかね(予定) ■ 開催場所 渋谷のなんか暗い部屋 ■ 参加資格 ま○こをお持ちの方あるいはち○ぽをお持ちの方 ■ 基調講演 ヌイッター開発者 イエイリー氏(交渉中) http://erogeek.org/