Presentation is loading. Please wait.

Presentation is loading. Please wait.

Naoya Ito naoya@naoya.dyndns.org http://naoya.dyndns.org/~naoya/mt/ Blog テクノロジーとWeb サービス Naoya Ito naoya@naoya.dyndns.org http://naoya.dyndns.org/~naoya/mt/

Similar presentations


Presentation on theme: "Naoya Ito naoya@naoya.dyndns.org http://naoya.dyndns.org/~naoya/mt/ Blog テクノロジーとWeb サービス Naoya Ito naoya@naoya.dyndns.org http://naoya.dyndns.org/~naoya/mt/"— Presentation transcript:

1 Naoya Ito naoya@naoya.dyndns.org http://naoya.dyndns.org/~naoya/mt/
Blog テクノロジーとWeb サービス Naoya Ito 2018/11/8 Shibuya.pm Tech Talk #4

2 アジェンダ Blog とは? Blog ツール Blog テクノロジ: RSS Blog テクノロジ: Weblogs.Com Ping
PerlでRSS RssRolling Blog テクノロジ: Weblogs.Com Ping XML-RPC Ping Interface Perl による Ping クライアント Perl による Ping サーバ デモ: Ping Server + IRC Amazon Web サービス Perl で AWS Blog と AWS: mt.cgi 2018/11/8 Shibuya.pm Tech Talk #4

3 Blog とは? (1) Scripting News (by Dave Winer)
“日記形式で日々追記していく形式のテキストを主体としたサイト” (山田BBS) Web + Log = Weblog → Blog ウェブログ、ブログ、ウェブロ etc.. Scripting News (by Dave Winer) 2018/11/8 Shibuya.pm Tech Talk #4

4 Blog とは? (2) 2018/11/8 Shibuya.pm Tech Talk #4 NDO::Weblog
torus solutions! The Food Section blog.bulknews.net ELECTRIC DOC. b2evolution 2018/11/8 Shibuya.pm Tech Talk #4

5 Blogツール(1) iBlog Movable Type Radio BLOGGER Blog を作るためのツール
Movable Type Radio BLOGGER Blog を作るためのツール 様々な Blog ツールがリリースされている サーバインストール型、クライアント型、ホスティング型などアーキテクチャも様々 2018/11/8 Shibuya.pm Tech Talk #4

6 「BlogはXMLだ!」 …これはちょっと大袈裟
サイトのコンテンツやデザインを管理する軽量なCMSを、XML 応用技術やウェブサービスなどでトッピング。 RSS WeblogUpdates Ping TrackBack XML-RPC API PingBack FOAF ATOM Light Weight CMS 「BlogはXMLだ!」 …これはちょっと大袈裟 2018/11/8 Shibuya.pm Tech Talk #4

7 Perl な Blog ツール blosxom Greymatter Movable Type … 私も使ってます。 etc.
2018/11/8 Shibuya.pm Tech Talk #4

8 Blog テクノロジ: RSS サイト概要をXMLで記述したメタデータ
記事タイトル、記事概要、記事URL等の情報をプログラムから効率的に扱うことができる Blogで積極的に利用されている Blogツールが自動生成 2018/11/8 Shibuya.pm Tech Talk #4

9 RSS アプリケーション SharpReader Bloglines RSSリーダー (Windows アプリ)
Bloglines RSSアグリゲータ (Web アプリ) 2018/11/8 Shibuya.pm Tech Talk #4

10 Perl で RSS XML::RSS POE::Component::RSS
use XML::RSS; use LWP::Simple; my $string = LWP::Simple::get(‘ my $rss = XML::RSS->new; $rss->parse($string); for my $item { print $item->{title}, “\n”; print $item->{link}, “\n”; } XMLのパースなどはモジュール任せ。XMLを全く意識しなくて良い。 2018/11/8 Shibuya.pm Tech Talk #4

11 RssRolling Blog サイトなどから RSS を集めて来て新着記事を表示する Perl アプリケーション。 RssRolling
2018/11/8 Shibuya.pm Tech Talk #4

12 RssRolling の動作 Weblogs.Com BlogRolling blogs 主な使用モジュール 2018/11/8
XML::RSS HTML::RSSAutodiscovery LWP::UserAgent HTML::Template リンク集のRSS Weblogs.Com BlogRolling 出力  HTML  RSS 1.0  OPML 1.0  ATOM 巡回 記事のRSS blogs BlogRolling と連携、リンク集の RSS を元に Blog サイトを巡回する 2018/11/8 Shibuya.pm Tech Talk #4

13 Blog テクノロジ: Weblogs.Com Ping
UserLand Software が運営 changes.xml Blog の更新情報を XML で配信するサイト 更新情報は Blog ツールが送信する更新通知(Ping)から構築 2018/11/8 Shibuya.pm Tech Talk #4

14 (XML-RPC or SOAP or REST)
Weblogs.Com Ping XMLで情報公開 Ping (XML-RPC or SOAP or REST) name url 利用 Weblogs.Com Blog with a Blog Tool 各種メタブログサービス 2018/11/8 Shibuya.pm Tech Talk #4

15 XML-RPC Ping Interface
XML-RPC … メッセージングにXMLを用いるRPC。SOAP のベースとなった仕様。 メソッド名 引数 返値(構造体) ret = weblogUpdates.ping(‘NDO::Weblog’, ‘ Request Request (HTTP POST etc.) Response Response 2018/11/8 Shibuya.pm Tech Talk #4

16 Perl による Ping クライアント XMLRPC::Lite Frontier::Client
use Frontier::Client; my $server = Frontier::Client->new( url => ‘ ); my $ret = $server->call(‘weblogUpdates.ping’, ‘NDO::Weblog’, ‘ メッセージングにXMLが使われていることは一切意識する必要がない。あたかもローカルのオブジェクトのメソッドを呼び出しているかのように。 2018/11/8 Shibuya.pm Tech Talk #4

17 Perl による Ping サーバ XMLRPC::Transport::HTTP::CGI (or Daemon)
POE::Component::Server::XMLRPC use XMLRPC::Transport::HTTP; XMLRPC::Transport:: package weblogUpdates; sub ping { my ($self, $name, $url) return {flerror => XMLRPC::Data->type(‘boolean’, 0), message => “Thanks for the ping”}; } DB 更新処理などの業務ロジック CGIプログラムとして動作 やはりXMLメッセージングは意識しなくて良い 2018/11/8 Shibuya.pm Tech Talk #4

18 デモ: Ping Server + IRC 仕様 Weblogs.Com Ping を受信する 受信した Weblog の RSS から最新記事のタイトルを取得する 取得した情報を IRC チャンネルに発言する XML-RPC サーバとして動作 RSS を取得しに行く HTTP クライアントとして動作 IRC bot として動作 様々なコンポーネントがメッセージをやり取り … Perl なら POE (Perl Object Environment) を使うと◎ 2018/11/8 Shibuya.pm Tech Talk #4

19 POE によるコンポーネント非同期プログラミング
use POE qw ( Component::Server::XMLRPC Component::IRC …); POE::Component::IRC->new(“irc”); POE::Component::Server::XMLRPC->new( alias => “xmlrpc” ); POE::Session->create ( inline_states => { _start => \&setup_service, _stop => \&shutdown_service, ‘webloUpdates.ping’ => \&ping_handler, … });: POE::Kernel->run; sub ping_handler { my $poe = sweet_args; my ($blog_name, $blog_url) = ($poe->args->[0], $poe->args->[1]); $poe->kernel->call ( irc => privmsg => ‘#test’=> sprintf(“Ping Received from %s (%s)”, $blog_name, $blog_url )); } POEコンポーネント イベント登録 イベントハンドラ 2018/11/8 Shibuya.pm Tech Talk #4

20 Amazon Web サービス 2003年7月に Amazon.co.jp も Web サービス対応。
日本の商品データベースにアクセス可能に。 SOAP or REST インタフェース Amazon.co.jp Web サービス 2018/11/8 Shibuya.pm Tech Talk #4

21 Perl で AWS SOAP::Lite Net::Amazon 2018/11/8 Shibuya.pm Tech Talk #4
use Net::Amazon; my $ua = Net::Amazon->new( token => ‘トークン’, affiliate_id => ‘アソシエイトID’, locale => ‘jp’); my $response = $ua->search( asin => ‘ ’ ); if ( $response->is_success) { for my $property ( $response->property ) { print $property->ProductName, “\n”; } } else { warn $response->message; 2018/11/8 Shibuya.pm Tech Talk #4

22 Blog と AWS : mtaws.cgi Amazon アフィリエイトリンク作成支援ツール ASIN検索
リンクするためのHTMLコードを出力 Movable Type 風インタフェース Bookmarklet から利用可 2018/11/8 Shibuya.pm Tech Talk #4

23 まとめ Blog のキーワードは “Lightweight” Lightweight な言語 Perl との相性◎
Lightweight なCMS Lightweight なウェブサービス Lightweight なXML Lightweight な言語 Perl との相性◎ CPAN を活用すると吉 2018/11/8 Shibuya.pm Tech Talk #4

24 おまけ: Blog な CPAN 生活 XML::RSS XML::RSS::Aggregate
HTML::RSSAutodiscovery SOAP::Lite, XMLRPC::Lite Net::Blogger, Net::MovableType Net::Amazon Net::Google POE::Component::Server::XMLRPC, SOAP 2018/11/8 Shibuya.pm Tech Talk #4


Download ppt "Naoya Ito naoya@naoya.dyndns.org http://naoya.dyndns.org/~naoya/mt/ Blog テクノロジーとWeb サービス Naoya Ito naoya@naoya.dyndns.org http://naoya.dyndns.org/~naoya/mt/"

Similar presentations


Ads by Google