RSS and Atom in Action: Web 2.0 Building Blocks

Dave Johnson

  • 出版商: Manning
  • 出版日期: 2006-08-01
  • 售價: $1,560
  • 貴賓價: 9.5$1,482
  • 語言: 英文
  • 頁數: 300
  • 裝訂: Paperback
  • ISBN: 1932394494
  • ISBN-13: 9781932394498
  • 已絕版

買這商品的人也買了...

相關主題

商品描述

Description

RSS and Atom in Action is organized into two parts. The first part introduces the blog technologies of newsfeed formats and publishing protocols—the building blocks. The second part shows how to put to those blocks together to assemble interesting and useful blog applications.

In keeping with the principle behind Manning’s “In Action” series, this book shows the reader, through numerous examples in Java and C#, how to parse Atom and RSS format newsfeeds, how to generate valid newsfeeds and serve them efficiently, and howto automate blogging via web services based on the new Atom protocol and the older MetaWeblog API. The book also shows how to develop a complete blog client library that readers can use in their own applications. The second half of the book is devoted to a dozen blog apps—small but immediately useful example applications such as a community aggregator, a file distribution newsfeed, a blog cross-poster, an email-to-blog gateway, Ant tasks for blogging software builds, and more.

 

Table of Contents

foreword xix
preface xxi
acknowledgments xxiii
about this book xxiv

Part 1 Programming the writable web   1

0 What you need to know first   3
0.1 What you need to know about Java or C# 4
0.2 What you need to know about web development 5
Web services 5
Java web development 5
C# web development 5
Running scheduled tasks 6
0.3 What you need to know about XML 6
Java XML tools 6
C# XML tools 6
0.4 Blog technology terminology 7
0.5 The components we’ll use 8
Blog application building blocks 8
0.6 Organization of the book 10
0.7 The Blogapps examples 14
0.8 Summary 15
1 New ways of collaborating   16
1.1 Research blogging 17
1.2 Status blogging 20
1.3 Build blogging 21
1.4 Blogging the business 22
1.5 Nina’s and Rangu’s grand plan 25
1.6 Summary 27
2 Development kick-start   28
2.1 Blog server setup 29
2.2 The Blog Poster example 31
Invoking Blog Poster 32
2.3 Blog Poster for Java 32
Running Blog Poster for Java 35
2.4 Blog Poster for C# 35
Running Blog Poster for C# 38
2.5 Summary 39
3 Under the hood   40
3.1 Anatomy of a blog server 41
Blog server data model 42
Anatomy of a blog entry 43
Users, privileges, and group blogs 45
Blog server architecture 46
3.2 Anatomy of a wiki server 49
Wiki server data model 49
Wiki server architecture 51
3.3 Choosing a blog or wiki server 52
Narrowing your choices 52
Comparing blog and wiki servers 53
3.4 Summary 55
4 Newsfeed formats   56
4.1 The birth of RSS 57
RSS 0.91 57
The elements of RSS 0.91 59
4.2 The RDF fork: RSS 1.0 61
The elements of RSS 1.0 62
Extending RSS 1.0 with modules 63
4.3 The simple fork: RSS 2.0 65
The elements of RSS 2.0 65
Enclosures and podcasting 67
Extending RSS 2.0 67
4.4 The nine incompatible versions of RSS 68
4.5 The new standard: Atom 70
Atom by example 70
Atom common constructs 71
The elements of Atom 73
Atom identifiers 74
The Atom content model 75
Podcasting with Atom 76
4.6 Summary 77
5 How to parse newsfeeds   79
5.1 The possibilities 80
5.2 Parsing with an XML parser 81
Parsing RSS 1.0 81
Parsing RSS 2.0 83
Parsing Atom 86
5.3 Parsing with a newsfeed library 91
The Universal Feed Parser for Python 91
The ROME newsfeed utilities 92
Jakarta Feed Parser for Java 93
The Windows RSS Platform 95
5.4 Developing a newsfeed parser 97
AnyFeedParser for Java 98
5.5 Fetching newsfeeds efficiently 104
HTTP conditional GET 104
Other techniques 106
5.6 Summary 108
6 The Windows RSS Platform   109
6.1 Windows RSS Platform overview 110
Browse, search, and subscribe with IE7 111
Components of the Windows RSS Platform 113
6.2 Managing subscriptions with the Common Feed List 117
Getting started with the Common Feed List 117
Creating subscriptions 120
Monitoring events 121
6.3 Parsing newsfeeds with the Feeds API 124
A simple newsfeed parsing example 125
Parsing extension elements and funky RSS 126
6.4 Windows RSS Platform newsfeed extensions 130
Common Feed (CF) extensions 131
Simple List Extensions (SLE) 134
Simple Sharing Extensions (SSE) 136
6.5 Summary 139
7 The ROME newsfeed utilities   140
7.1 Introducing ROME 141
How ROME works 142
ROME limitations 146
The ROME subprojects 146
7.2 Parsing newsfeeds with ROME 148
Parsing to the SyndFeed model 148
Parsing funky RSS 150
Parsing to the RSS model 152
Parsing to the Atom model 154
7.3 Fetching newsfeeds with ROME 158
How the ROME Fetcher works 158
Using the ROME Fetcher 159
7.4 Generating newsfeeds with ROME 161
7.5 Extending ROME 163
The ROME plug-in architecture 164
Adding new modules to ROME 166
Overriding ROME 171
7.6 Summary 176
8 How to serve newsfeeds   177
8.1 The possibilities 178
8.2 The basics 179
Which newsfeed formats to support? 179
How to indicate newsfeeds are available? 179
Static or dynamic? 181
Which generator? 182
Ensuring well-formed XML 182
Validating newsfeeds 183
8.3 File Depot examples 185
8.4 Generating newsfeeds with Java 186
Implementing the File Depot in Java 186
Generating the File Depot newsfeed in Java 187
Serving the File Depot newsfeed in Java 190
8.5 Generating newsfeeds with C# 192
Implementing the File Depot in C# 193
Generating the File Depot newsfeed in C# 193
Serving the File Depot newsfeed with C# 196
8.6 Serving newsfeeds efficiently 197
Server-side caching 197
Web proxy caching 198
Client-side caching 199
Compression 199
Caching and compression in a Java web application 199
Caching and compression in a C# Web application 202
8.7 Summary 205
9 Publishing with XML-RPC based APIs   206
9.1 Why XML-RPC? 207
Making a method call 207
9.2 The Blogger API 210
9.3 The MetaWeblog API 211
The same metadata as RSS 211
Six new methods that complement the Blogger API 212
9.4 Building a blog client with C# and XML-RPC 213
Why a blog client library? 213
Three blog client library interfaces 214
Implementing the blog client library in C# 217
9.5 Using the blog client library 224
9.6 Summary 225
10 Publishing with Atom   227
10.1 Why Atom? 228
Why not XML-RPC or SOAP? 228
10.2 How Atom protocol works 229
Discovery and collections 229
Atom protocol from the command line 230
Discovering Atom resources and services 231
Posting and updating blog entries 235
Posting and updating media files 238
10.3 Building a blog client with Atom protocol 240
Atom does more 240
Expanding the blog client interfaces 242
Atom blog client implementation 244
Atom blog client in action 245
10.4 Summary 246

Part 2 Blog apps   247

11 Creating a group blog via aggregation   249
11.1 Introducing Planet Tool 250
11.2 Configuring Planet Tool 251
11.3 Creating templates for Planet Tool 253
11.4 Running Planet Tool 256
11.5 Planet Tool object reference 256
11.6 Under the hood 259
11.7 Summary 260
12 Searching and monitoring the Web   261
12.1 Technorati.com: Conversation search engine 262
Subscribing to Technorati watchlists 264
Monitoring tags with Technorati 264
12.2 The Technorati API 265
Getting a Technorati API key 266
Calling the Technorati API 266
12.3 Other blog search services 271
12.4 Open Search: The future of search? 274
Open Search description format 274
Open Search result elements 275
Why Open Search? 276
12.5 Summary 276
13 Keeping your blog in sync   278
13.1 Designing Cross Poster for C# 279
Design limitations 280
13.2 Configuring Cross Poster for C# 280
13.3 The code for Cross Poster for C# 281
13.4 Running Cross Poster for C# and Java 285
13.5 Summary 285
14 Blog by sending email   286
14.1 Designing Mail Blogger for C# 287
14.2 Configuring Mail Blogger for C# 287
14.3 The code for Mail Blogger for C# 288
14.4 Running Mail Blogger for C# and Java 291
14.5 Summary 291
15 Sending a daily blog digest by email   292
15.1 Designing Blog Digest for C# 293
Design limitations 293
15.2 Configuring Blog Digest for C# 293
15.3 The code for Blog Digest for C# 294
15.4 Running Blog Digest for C# and Java 298
15.5 Summary 298
16 Blog your software build process   299
16.1 Blogging from Ant 300
Base blog task 301
Post blog entry task 304
Post blog resource task 306
16.2 Summary 308
17 Blog from a chat room   309
17.1 A wiki-blogging chatbot 310
Chat Blogger design 310
Chat Blogger guidelines 311
Chat Blogger configuration 312
Chat Blogger construction 313
Chat Blogger implementation 314
Running Chat Blogger 318
17.2 Summary 319
18 Distribute files podcast style   320
18.1 Designing FileCaster 321
The podcast server 322
18.2 Implementing FileCaster 323
18.3 FileCaster upload page 325
18.4 FileCaster newsfeed 330
18.5 Running FileCaster 332
18.6 Room for improvement 332
18.7 Summary 332
19 Automatically download podcasts   333
19.1 Designing FileCatcher 334
19.2 Implementing FileCatcher 335
19.3 Running FileCatcher for C# 338
19.4 Summary 339
20 Automatically validate newsfeeds   340
20.1 Getting started 341
Setting up Python 341
Setting up Feed Validator 341
20.2 Implementing auto-validator 342
20.3 Running auto-validator 344
Using Windows Scheduled Tasks 345
Using UNIX cron 346
20.4 Summary 346
21 The best of the rest   347
21.1 Monitor anything 348
Monitor the weather 348
Shop with your newsfeed reader 349
Use newsfeeds to monitor eBay auctions 350
Monitor upcoming events via calendar newsfeeds 350
Turn mailing lists into newsfeeds 351
21.2 Syndicate everything 351
Syndicate operating system and network events 352
Syndicate vehicle status 352
Syndicate your logs 352
21.3 Tag the Web 353
Create a tagged link blog with del.icio.us 353
Create a tagged photo blog with Flickr.com 353
Tag your blog entries with Technorati Tags 354
Geotag the Web 354
21.4 Aggregate yourself 355
Create an aggregated blog with Planet Tool 355
Mix your own newsfeeds with Feedburner.com 356
21.5 Get the word out 356
Bring your bloggers together with aggregation 356
Bring bloggers together with tagging 356
Track news and blogs to find the conversations 357
21.6 Open up your web site 357
Open up your site with newsfeeds, protocols, and tagging 357
Syndicate your search results with A9 Open Search 357
21.7 Build your own intranet blogosphere 358
Unite internal communities with aggregation 358
Build a folksonomy of your intranet 358
21.8 Blog your software project 358
Use newsfeeds to syndicate source code changes 359
Pull software documentation from a wiki 359
21.9 Summary 360
 
index 361 1