RSS and Atom in Action: Web 2.0 Building Blocks
暫譯: RSS 與 Atom 實戰:Web 2.0 建構基石
Dave Johnson
- 出版商: Manning
- 出版日期: 2006-08-01
- 售價: $1,580
- 貴賓價: 9.5 折 $1,501
- 語言: 英文
- 頁數: 300
- 裝訂: Paperback
- ISBN: 1932394494
- ISBN-13: 9781932394498
已絕版
買這商品的人也買了...
-
$680$578 -
$2,280$2,166 -
$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$298 -
$650$553 -
$650$507 -
$680$449 -
$550$468 -
$520$343 -
$880$748 -
$350$298 -
$880$695 -
$750$713 -
$580$452 -
$490$323 -
$680$537 -
$750$638 -
$1,200$948 -
$600$480 -
$420$357 -
$450$383 -
$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
![]()
![]()
商品描述(中文翻譯)
**描述**
《RSS 和 Atom 實戰》分為兩個部分。第一部分介紹了新聞提要格式和發布協議的部落格技術——這些是基本構件。第二部分展示了如何將這些構件組合在一起,以組裝有趣且實用的部落格應用程式。
遵循 Manning 的「實戰」系列背後的原則,本書通過大量的 Java 和 C# 範例,向讀者展示如何解析 Atom 和 RSS 格式的新聞提要,如何生成有效的新聞提要並高效地提供它們,以及如何通過基於新 Atom 協議和舊 MetaWeblog API 的網路服務自動化部落格。書中還展示了如何開發一個完整的部落格客戶端庫,讀者可以在自己的應用程式中使用。書的後半部分專注於十幾個部落格應用程式——這些小型但立即有用的範例應用程式包括社群聚合器、檔案分發新聞提要、部落格交叉發佈器、電子郵件到部落格的網關、用於部落格軟體構建的 Ant 任務等。
**目錄**
前言 xix
序言 xxi
致謝 xxiii
關於本書 xxiv
**第一部分 可寫網路的程式設計 1**
0 你需要先知道的 3
0.1 你需要知道的 Java 或 C# 4
0.2 你需要知道的網路開發 5
- 網路服務 5
- Java 網路開發 5
- C# 網路開發 5
- 執行排程任務 6
0.3 你需要知道的 XML 6
- Java XML 工具 6
- C# XML 工具 6
0.4 部落格技術術語 7
0.5 我們將使用的組件 8
- 部落格應用程式的基本構件 8
0.6 本書的組織 10
0.7 Blogapps 範例 14
0.8 總結 15
1 新的協作方式 16
1.1 研究部落格 17
1.2 狀態部落格 20
1.3 建構部落格 21
1.4 商業部落格 22
1.5 Nina 和 Rangu 的宏偉計畫 25
1.6 總結 27
2 開發啟動 28
2.1 部落格伺服器設置 29
2.2 Blog Poster 範例 31
- 調用 Blog Poster 32
2.3 Java 的 Blog Poster 32
- 執行 Java 的 Blog Poster 35
2.4 C# 的 Blog Poster 35
- 執行 C# 的 Blog Poster 38
2.5 總結 39
3 內部運作 40
3.1 部落格伺服器的解剖 41
- 部落格伺服器數據模型 42
- 部落格條目的解剖 43
- 使用者、權限和群組部落格 45
- 部落格伺服器架構 46
3.2 維基伺服器的解剖 49
- 維基伺服器數據模型 49
- 維基伺服器架構 51
3.3 選擇部落格或維基伺服器 52
- 縮小選擇範圍 52
- 比較部落格和維基伺服器 53
3.4 總結 55
4 新聞提要格式 56
4.1 RSS 的誕生 57
- RSS 0.91 57
- RSS 0.91 的元素 59
4.2 RDF 分支:RSS 1.0 61
- RSS 1.0 的元素 62
- 使用模組擴展 RSS 1.0 63
4.3 簡單分支:RSS 2.0 65
- RSS 2.0 的元素 65
- 附件和播客 67
- 擴展 RSS 2.0 67
4.4 九個不相容的 RSS 版本 68
4.5 新標準:Atom 70
- 透過範例了解 Atom 70
- Atom 的常見結構 71
- Atom 的元素 73
- Atom 標識符 74
- Atom 內容模型 75
- 使用 Atom 進行播客 76
4.6 總結 77
5 如何解析新聞提要 79
5.1 可能性 80
5.2 使用 XML 解析器解析 81
- 解析 RSS 1.0 81
- 解析 RSS 2.0 83
- 解析 Atom 86
5.3 使用新聞提要庫解析 91
- Python 的 Universal Feed Parser 91
- ROME 新聞提要工具 92
- Java 的 Jakarta Feed Parser 93
- Windows RSS 平台 95
5.4 開發新聞提要解析器 97
- Java 的 AnyFeedParser 98
5.5 高效獲取新聞提要 104
- HTTP 條件 GET 104
- 其他技術 106
5.6 總結 108
6 Windows RSS 平台 109
6.1 Windows RSS 平台概述 110
- 使用 IE7 瀏覽、搜尋和訂閱 111
- Windows RSS 平台的組件 113
6.2 使用 Common Feed List 管理訂閱 117
- 開始使用 Common Feed List 117
- 創建訂閱 120
- 監控事件 121
6.3 使用 Feeds API 解析新聞提要 124
- 一個簡單的新聞提要解析範例 125
- 解析擴展元素和奇特的 RSS 126
6.4 Windows RSS 平台新聞提要擴展 130
- Common Feed (CF) 擴展 131
- 簡單列表擴展 (SLE) 134
- 簡單共享擴展 (SSE) 136
6.5 總結 139
7 ROME 新聞提要工具 140
7.1 介紹 ROME 141
- ROME 的工作原理 142
- ROME 的限制 146
- ROME 的子專案 146
7.2 使用 ROME 解析新聞提要 148
- 解析到 SyndFeed 模型 148
- 解析奇特的 RSS 150
- 解析到 RSS 模型 152
- 解析到 Atom 模型 154
7.3 使用 ROME 獲取新聞提要 158
- ROME 獲取器的工作原理 158
- 使用 ROME 獲取器 159
7.4 使用 ROME 生成新聞提要 161
7.5 擴展 ROME 163
- ROME 插件架構 164
- 向 ROME 添加新模組 166
- 覆蓋 ROME 171
7.6 總結 176
8 如何提供新聞提要 177
8.1 可能性 178
8.2 基本知識 179
- 支持哪些新聞提要格式? 179
- 如何指示新聞提要可用? 179
- 靜態還是動態? 181
- 使用哪個生成器? 182
- 確保 XML 格式正確 182
- 驗證新聞提要 183
8.3 File Depot 範例 185
8.4 使用 Java 生成新聞提要 186
- 在 Java 中實現 File Depot 186
- 在 Java 中生成 File Depot 新聞提要 187