RSS and Atom in Action: Web 2.0 Building Blocks
Dave Johnson
- 出版商: Manning
- 出版日期: 2006-08-01
- 售價: $1,550
- 貴賓價: 9.5 折 $1,473
- 語言: 英文
- 頁數: 300
- 裝訂: Paperback
- ISBN: 1932394494
- ISBN-13: 9781932394498
已絕版
買這商品的人也買了...
-
$680$537 -
$1,986Code Complete: A Practical Handbook of Software Construction, 2/e (Paperback)
-
$1,176Computer Organization and Design: The Hardware/Software Interface, 3/e(IE) (美國版ISBN:1558606041)
-
$380$300 -
$699Beginning RSS and Atom Programming (Paperback)
-
$680$646 -
$350$277 -
$650$553 -
$650$507 -
$680$578 -
$550$468 -
$520$442 -
$880$695 -
$350$315 -
$880$616 -
$750$713 -
$580$452 -
$490$417 -
$680$578 -
$750$593 -
$1,200$948 -
$600$480 -
$420$332 -
$450$356 -
$720$562
相關主題
商品描述
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