Dreamweaver CS4: The Missing Manual. The Missing Manual - Helion
ISBN: 978-05-965-5426-2
stron: 1090, Format: ebook
Data wydania: 2008-11-22
Księgarnia: Helion
Cena książki: 126,65 zł (poprzednio: 147,27 zł)
Oszczędzasz: 14% (-20,62 zł)
When it comes to building professional websites, Dreamweaver CS4 is capable of doing more than any other web design program -- including previous versions of Dreamweaver. But the software's sophisticated features aren't simple. Dreamweaver CS4: The Missing Manual will help you master this program quickly, so you can bring stunning, interactive websites to life.
Under the expert guidance of bestselling author and teacher David McFarland, you'll learn how to build professional-looking websites quickly and painlessly. McFarland has loaded the book with over 150 pages of hands-on tutorials to help you create database-enabled PHP pages, use Cascading Style Sheets (CSS) for cutting-edge design, add XML-based news feeds, include dynamic effects with JavaScript and AJAX, and more. This witty and objective book offers jargon-free language and clear descriptions that will help you:
- Learn how to control the appearance of your web pages with CSS, from the basics to advanced techniques
- Design dynamic database-driven websites, from blogs to product catalogs, and from shopping carts to newsletter signup forms
- Add interactivity to your website with ready-to-use JavaScript programs from Adobe's Spry Framework
- Effortlessly control the many helper files that power your website and manage thousands of pages
- Examine web-page components and Dreamweaver's capabilities with the book's "live examples"
Perfect for beginners who need step-by-step guidance, and for longtime Dreamweaver designers who need a handy reference to the new version, this thoroughly updated edition of our bestselling Missing Manual is your complete guide to designing, organizing, building, and deploying websites. It's the ultimate atlas for Dreamweaver CS4.
Osoby które kupowały "Dreamweaver CS4: The Missing Manual. The Missing Manual", wybierały także:
- Rzeczywistość wirtualna (VR) dla każdego - Aframe i HTML 5. VR w HTML 5 na każdym urządzeniu z Internetem! Wydanie II 24,90 zł, (12,45 zł -50%)
- Adobe Dreamweaver CC/CC PL. Oficjalny podręcznik 89,00 zł, (44,50 zł -50%)
- Dreamweaver CC: The Missing Manual. Covers 2014 release. 2nd Edition 176,92 zł, (152,15 zł -14%)
- Dreamweaver CS6: The Missing Manual 216,45 zł, (186,15 zł -14%)
- Dreamweaver CS5: The Missing Manual 147,27 zł, (126,65 zł -14%)
Spis treści
Dreamweaver CS4: The Missing Manual. The Missing Manual eBook -- spis treści
- Dreamweaver CS4: The Missing Manual
- SPECIAL OFFER: Upgrade this ebook with OReilly
- A Note Regarding Supplemental Files
- The Missing Credits
- About the Author
- About the Creative Team
- Acknowledgements
- The Missing Manual Series
- Introduction
- What Dreamweaver Is All About
- Why Dreamweaver?
- Whats New in Dreamweaver CS4
- HTML, XHTML, CSS, and JavaScript 101
- Of Tags and Properties
- XHTML, Too
- Adding Style with Cascading Style Sheets
- Adding Interactivity with JavaScript
- The Very Basics
- About This Book
- About These Arrows
- Macintosh and Windows
- About the Outline
- Living Examples
- About MissingManuals.com
- Safari Books Online
- What Dreamweaver Is All About
- I. Building a Web Page
- 1. Dreamweaver CS4 Guided Tour
- The Dreamweaver CS4 Interface
- The Document Window
- The Insert Panel
- The Files Panel
- The Property Inspector
- The Application Bar
- Organizing Your Workspace
- Floating panels
- Iconic panes
- Workspace Layouts
- Setting Up a Site
- The Site Definition Wizard
- Defining a Site the Fast Way
- Creating a Web Page
- The Dreamweaver Test Drive
- Phase 1: Getting Dreamweaver in Shape
- Phase 2: Creating a Web Site
- Phase 3: Creating and Saving a Web Page
- Phase 4: Adding Images and Text
- Phase 5: Preview Your Work
- Phase 6: Finishing the Page
- The Dreamweaver CS4 Interface
- 2. Adding Text to Your Web Pages
- Adding Text in Dreamweaver
- Adding Special Characters
- Line Breaks
- Nonbreaking Spaces
- Multiple Spaces
- Adding a Date to Your Page
- Copying and Pasting Text
- Simple Copy and Paste
- Paste Special
- Pasting Text from Word: The Basic Method
- Pasting Text with Word Formatting
- Pasting Excel Spreadsheet Information
- Importing Word and Excel Documents (Windows)
- Selecting Text
- Spell Checking
- About Dictionaries
- Performing the Check
- Undo, Redo, and the History Panel
- Undo
- History Panel
- Adding Text in Dreamweaver
- 3. Text Formatting
- Paragraph Formatting
- Paragraphs
- Headlines
- Preformatted Text
- Paragraph Alignment
- Indented Paragraphs
- Creating and Formatting Lists
- Bulleted and Numbered Lists
- Creating a new bulleted or numbered list
- Formatting existing text as a list
- Reformatting Bulleted and Numbered Lists
- Adding new items to a list
- Formatting bullets and numbers
- Nested lists
- Definition Lists
- Removing and Deleting List Items
- Removing list items
- Deleting list items
- Bulleted and Numbered Lists
- Text Styles
- Paragraph Formatting
- 4. Introducing Cascading Style Sheets
- Cascading Style Sheet Basics
- Why Use CSS?
- Internal vs. External Style Sheets
- Types of Styles
- Creating Styles
- Phase 1: Set Up the CSS Type
- Phase 2: Defining the Style
- Creating a Style with the Property Inspector
- Using Styles
- Applying a Class Style
- Applying a class style to text
- Applying a class style to objects
- Other class styling options
- Removing a Class Style
- Applying IDs to a Tag
- Linking to an External Style Sheet
- Applying a Class Style
- Manipulating Styles
- Editing Styles
- Deleting a Style
- Renaming a Class Style
- Duplicating a Style
- Checking Browser Compatibility
- Text Formatting with CSS
- Choosing a Font
- Applying font formatting
- Creating custom font lists
- Changing the Font Size
- Picking a Font Color
- Adding Bold and Italics
- Aligning Text
- CSS Type Properties in the Rule Definition Window
- Block Properties
- List Properties
- Choosing a Font
- Cascading Style Sheets Tutorial
- Setting Up
- Creating an External Style Sheet
- Editing a Style
- Adding Another Style
- Creating a Class Style
- Attaching an External Style Sheet
- Cascading Style Sheet Basics
- 5. Links
- Understanding Links
- Absolute Links
- Document-Relative Links
- Root-Relative Links
- Link Types in Action
- Link from the Home page (index.html) to the Contact Us page (contact.html)
- Link from the Horoscopes page to the Pisces page
- Link from the Scorpio page to the Horoscopes page
- Executive Summary
- Adding a Link
- Browsing for a File
- Using the Point-to-File Tool
- Typing (or Pasting) the URL or Path
- Using the Hyperlink Object
- Adding an Email Link
- Linking Within a Web Page
- Method 1: Creating a Named Anchor
- Method 2: Adding an ID
- Linking to an Anchor or ID
- Viewing and Hiding Anchors
- Modifying a Link
- Changing a Link's Destination
- Removing a Link
- Styling Links
- CSS and Links
- Creating a Navigation Menu
- Adding a Menu
- Adding, Editing, and Removing Links
- Changing the Look of the Menu
- Formatting regular menu buttons
- Formatting rollover menu buttons
- Formatting submenu buttons
- Changing the width of menus and buttons
- Positioning pop-up menus
- Removing a Spry menu
- Link Tutorial
- Linking to Other Pages and Web Sites
- Formatting Links
- Adding a Navigation Bar
- Styling the Menu Bar
- Submenus and Rollover Buttons
- Understanding Links
- 6. Images
- Adding Images
- Adding an Image Placeholder
- Inserting an Image from Photoshop
- Method 1: Using the Insert Image Object
- JPEG optimization options
- GIF and PNG8 optimization options
- PNG optimization options
- Method 2: Copying and Pasting from Photoshop
- Method 1: Using the Insert Image Object
- Modifying an Image
- Adding an ID to an Image
- Adding a Text Description to an Image
- Changing an Image's Size
- Some Properties to Avoid
- Controlling Images with CSS
- Wrapping Text Around an Image
- Adding Borders
- Background Images
- Background image
- Background repeat
- Background attachment
- Horizontal and vertical position
- Editing Graphics
- The Built-In Editing Tools
- Cropping an image
- Resampling an image
- Brightness and contrast
- Sharpening images
- Setting Up an External Editor
- Editing Smart Objects
- Smart Object Warnings
- Editing Images Pasted from Photoshop
- Optimizing an Image
- The Built-In Editing Tools
- Image Maps
- Editing a Hotspot's Properties
- Rollover Images
- Tutorial: Inserting and Formatting Graphics
- Setting Up
- Adding an Image
- Inserting a Photoshop File
- Inserting a Rollover Image
- Using Background Images
- Adding Images
- 7. Tables
- Table Basics
- Inserting a Table
- Selecting Parts of a Table
- Selecting a Table
- Selecting Rows or Columns
- Selecting Cells
- Expanded Table Mode
- Formatting Tables
- Aligning Tables
- Clearing Height and Width Values
- Resizing a Table
- Modifying Cell and Row Properties
- Alignment Properties
- Table Header
- A Property to Forget
- Cell Decoration
- Setting Cell Dimensions
- Tips for Surviving Table Making
- The contents take priority
- There's no such thing as column widthonly cell width
- Do the math
- Adding and Removing Cells
- Adding One Row or Column
- Adding Multiple Rows or Columns
- Deleting Rows and Columns
- Merging and Splitting Cells
- Tabular Data
- Importing Data into a Table
- Sorting Data in a Table
- Exporting Table Data
- Tables Tutorial
- Adding a Table and Data
- Modifying the Table
- Formatting the Table
- Final Improvements
- 1. Dreamweaver CS4 Guided Tour
- II. Building a Better Web Page
- 8. Advanced CSS
- Compound Selectors
- Descendent Selectors
- Descendent selectors with Class and ID styles
- Styling Groups of Tags
- Descendent Selectors
- Fast Style Editing With the Properties Pane
- Moving and Managing Styles
- More about CSS
- Inheritance
- The Cascade
- The Other Side of the CSS Styles Panel
- Using the Code Navigator
- Styling for Print
- Previewing Media Styles in Dreamweaver
- Tips for Printer Style Sheets
- Compound Selectors
- 9. Page Layout
- Types of Web Page Layouts
- Float Layout Basics
- The Mighty <div> Tag
- The Insert Div Tag Tool
- A Simple Example
- Understanding the Box Model
- Dreamweaver's CSS Layouts
- The Structure of Dreamweaver's CSS Layouts
- Modifying Dreamweaver's CSS Layouts
- Making General Changes
- Modifying Fixed Layouts
- Modifying Liquid Layouts
- Modifying Elastic Layouts
- Absolute Positioning
- The CSS Positioning Properties
- Positioning type
- Width and height
- Visibility
- Z-index
- Overflow
- Placement
- Clip
- The CSS Positioning Properties
- Adding an AP Div to Your Page
- Drawing AP Divs
- The AP Elements Panel
- Modifying AP Element Properties
- Resizing Absolutely Positioned Elements
- Moving AP Elements
- Aligning AP Elements
- Background Image and Color
- Nesting AP Divs
- CSS Layout Tutorial
- Adding Content
- Fine-Tuning the Layout
- Adding Styles and Navigation
- Fiddling with the Footer
- 10. Under the Hood: HTML
- Roundtrip HTML
- Auto-Fixing Your Code
- Web Application Server Pages
- Special Characters and Encoding
- Code View
- Coding Toolbar
- Code Hints
- Code Collapse
- Setting Code Formatting
- Indents
- Text wrapping
- Line breaks
- Case for tags and attributes
- TD tag
- Advanced formatting options
- Related Files
- Live Code
- Quick Tag Editor
- Using the Quick Tag Editor
- Tag Inspector
- Comparing Versions of a Web Page
- Using WinMerge to Compare Files
- Using Text Wrangler to Compare Files
- Reference Panel
- Inserting JavaScript
- Roundtrip HTML
- 8. Advanced CSS
- III. Bringing Your Pages to Life
- 11. Forms
- Form Basics
- The Code Backstage
- Creating a Form
- Adding Form Elements
- What All Form Elements Have in Common
- Text Fields
- Checkboxes and Checkbox Groups
- Checkbox Groups
- Radio Buttons and Radio Groups
- Radio Group
- Pull-Down Menus and Lists
- File Field
- Hidden Field
- Buttons
- <label> Tag
- <fieldset> Tag
- Validating Forms
- Spry Validation Basics
- Formatting Spry Error Messages and Fields
- Spry Text Field
- Validation types
- Custom validation
- Enforcing a pattern
- Supplying a hint
- Limiting characters and enforcing a range of values
- Spry Text Area
- Spry Checkbox
- Spry Select
- Spry Password
- Spry Confirm
- Spry Radio Group
- Forms Tutorial
- Inserting a Form and Adding a Form Field
- Adding a Spry Validation Text Field
- Adding a Spry Form Menu
- Adding a Spry Radio Group
- Completing and Testing the Form
- Form Basics
- 12. Spry: Creating Interactive Web Pages
- What is Spry?
- Tabbed Panels
- Adding a Tabbed Panel
- Adding and Editing Panel Content
- Formatting Tabbed Panels
- Accordions
- Adding an Accordion
- Adding and Editing Accordion Content
- Formatting a Spry Accordion
- Collapsible Panels
- Adding a Collapsible Panel
- Adding Content to a Collapsible Panel
- Formatting a Collapsible Panel
- Spry Tooltips
- Adding a Spry Tooltip
- Adding Content to a Tooltip
- Formatting a Tooltip
- Spry Data Sets
- Storing Data in an HTML File
- Storing Data in an XML File
- What is XML?
- Rules of the road
- Inserting a Spry Data Set
- Inserting HTML Data
- Inserting XML Data
- Choosing a Data Layout
- Spry Table
- Master/Detail Layout
- Stacked Containers
- Stacked Containers with Spotlight Area
- Creating a Spry Region
- The Bindings Panel
- Spry Repeating Region
- Spry Repeat Lists
- Live View
- 13. Dreamweaver Behaviors
- Understanding Behaviors
- Behavior Elements
- More about Events
- Applying Behaviors
- The Behaviors Panel
- Applying Behaviors, Step by Step
- Adding Multiple Behaviors
- Editing Behaviors
- A Quick Example
- Events
- Mouse Events
- Keyboard Events
- Body and Frameset Events
- Selection and Highlighting Events
- Form Events
- The Actions, One by One
- Spry Effects
- Appear/Fade
- Blind
- Grow/Shrink
- Highlight
- Shake
- Slide
- Squish
- Navigation Actions
- Open Browser Window
- Go to URL
- Jump Menu and Jump Menu Go
- Check Plugin
- Image Actions
- Preload Images
- Swap Image
- Swap Image Restore
- Set Navigation Bar Image
- Message Actions
- Popup Message
- Set Text of Status Bar
- Set Text of Text Field
- Set Text of Container
- Text of Frame
- Element Actions
- Show-Hide Elements
- Draggable and Animated Divs
- Spry Effects
- Advanced Behaviors
- Call JavaScript
- Change Property
- Adding More Behaviors
- Understanding Behaviors
- 14. Flash and Other Multimedia
- Flash: An Introduction
- Inserting a Flash Movie
- Flash Movie Properties
- Naming a Flash movie
- The movie file
- Src property
- Movie size
- Play options
- Margins
- Quality settings
- Scaling
- Alignment
- Background color
- Wmode
- Making It Easier to Download the Flash Plug-in
- Adding Flash Videos
- The Land of Obsolete Web Technology
- Flash: An Introduction
- 11. Forms
- IV. Building a Web Site
- 15. Introducing Site Management
- Structuring a Web Site
- Defining a Site
- Site name
- Local root folder
- Default images folder
- Links relative to
- HTTP address
- Case-sensitive links
- Cache
- Editing or Removing Defined Sites
- Exporting and Importing Sites
- Organizing Site Files
- Modifying the Files Panel View
- Adding New Folders and Files
- Adding files
- Adding folders
- Moving files and folders
- Renaming files and folders
- Deleting files and folders
- Defining a Site
- Site Assets
- Viewing the Assets Panel
- Inserting Assets
- Adding color and link assets
- Favorite Assets
- Identifying your Favorites
- Using your Favorites
- Removing Favorites
- Organizing Favorite assets
- Structuring a Web Site
- 16. Testing Your Site
- Site Launch Checklist
- Find and Fix Broken Links
- Finding Broken Links
- Checking just one page
- Checking specific pages
- Checking the entire Web site
- Fixing Broken Links
- Listing External Links
- Orphaned Files
- Changing a Link Throughout a Site
- Finding Broken Links
- Validating Web Pages
- Steps for Validating Web Pages
- Cleaning Up HTML (and XHTML)
- Site Reporting
- Accessibility
- Accessibility Priorities
- Accessibility Options
- Download Statistics
- 17. Moving Your Site to the Internet
- Defining a Remote Site
- Setting Up a Remote Site with FTP
- Setting Up a Remote Site over a Local Network
- Setting Up a Remote Site with RDS
- Setting Up a Remote Site with WebDAV
- Setting Up a Remote Site with SourceSafe
- Transferring Files
- Moving Files to the Web Server
- Other ways to move files to the Web server
- Getting Files from the Web Server
- Cloaking Files
- Moving Files to the Web Server
- Check In and Check Out
- Checking Out Files
- Checking In Files
- Synchronizing Site Files
- Communicating with Design Notes
- Setting Up Design Notes
- Adding Design Notes to a File
- Viewing Design Notes
- Organizing the Columns in the Files Panel
- "All Info" Design Notes in Column Views
- Phase 1: Defining the new information types
- Phase 2: Adding the column
- Defining a Remote Site
- 15. Introducing Site Management
- V. Dreamweaver CS4 Power
- 18. Snippets and Libraries
- Snippets Basics
- Using Snippets
- Creating Snippets
- Organizing Snippets
- Built-In Snippets
- Library Basics
- Creating and Using Library Items
- Adding Library Items to a Page
- Editing Library Items
- Renaming Library Elements
- Deleting Library Elements
- Snippets and Library Tutorial
- Creating a Snippet
- Creating a Library Item
- 19. Templates
- Template Basics
- Creating a Template
- Turning a Web Page into a Template
- Building a Template from Scratch
- Defining Editable Regions
- Adding a Basic Editable Region
- Adding a Repeating Region
- Repeating Tables
- Making a Tag Attribute Editable
- Adding Optional Regions
- Locking Optional Regions
- Repeating Optional Regions
- Optional Editable Regions
- Advanced Optional Regions
- Even fancier tricks
- Controlling regions with expressions
- Editing and Removing Optional Regions
- Nested Templates
- Customizing Nested Templates
- Using Nested Templates
- Building Pages Based on a Template
- Working with Repeating Regions
- Changing Properties of Editable Tag Attributes
- Hiding and Showing Optional Regions
- Applying Templates to Existing Pages
- Updating a Template
- Updating Nested Templates
- Unlinking a Page from a Template
- Exporting a Template-Based Site
- Template Tutorial
- Creating a Template
- Creating a Page Based on a Template
- Creating Another Template-Based Page
- Updating a Template
- 20. Automating Dreamweaver
- The History Panel Revisited
- Replay Your Steps
- Exceptions and Errors
- Copying and Pasting Actions
- Save Steps as Commands
- Recording Commands
- Find and Replace
- Find and Replace Basics
- Basic Text and HTML Searches
- Phase 1: Determine the scope of your search
- Phase 2: Specify what to search for
- Phase 3: Provide the replacement text
- Phase 4: Choose the search settings
- Phase 5: Take action
- Advanced Text Searches
- Limiting the search by tag
- Limiting the search by attribute
- Advanced Tag Searches
- A Powerful Example: Adding Alt Text Fast
- The History Panel Revisited
- 21. Customizing Dreamweaver
- Keyboard Shortcuts
- Make Your Own Shortcut Set
- Changing Keyboard Shortcuts
- Create a Shortcut Cheat Sheet
- Dreamweaver Extensions
- Browse the Exchange
- Find a Good Extension
- Other Extension Sources
- Download and Install Extensions
- Extension Manager
- Make Your Own Extensions
- Keyboard Shortcuts
- 18. Snippets and Libraries
- VI. Dynamic Dreamweaver
- 22. Getting Started with Dynamic Web Sites
- Pieces of the Puzzle
- Understanding Server Models
- PHP
- ASP
- ColdFusion
- Picking a Server Model
- Understanding Server Models
- Dynamic Web Sites: The Setup
- Setting Up a Testing Server
- Windows
- Mac
- Localhost and the htdocs Folder
- Setting Up Dreamweaver
- Setting Up a Testing Server
- Creating a Dynamic Page
- Databases: A Quick Introduction
- Tables and Records
- Relational Databases
- Loading a Database
- Connecting to a Database
- Exploring the Databases Panel
- Pieces of the Puzzle
- 23. Adding Dynamic Data to Your Pages
- Retrieving Information
- Understanding Recordsets
- Creating Recordsets
- Filtering Information
- Comparison Operators for Filters
- Comparing text values
- Comparing numbers
- Getting Comparison Values
- Form variables
- URL parameters
- Creating a link with a URL parameter
- Creating the recordset for the results page
- Advanced Recordsets and SQL
- SQL: the very basics
- Using the Data Tree view
- Creating variables for filtering data
- Reusing Recordsets
- Editing Recordsets
- Deleting Recordsets
- Adding Dynamic Information
- The Bindings Panel
- Formatting Dynamic Information
- Deleting Dynamic Information
- Displaying Multiple Records
- Creating a Repeating Table
- Creating a Repeat Region
- Editing and Removing a Repeat Region
- Recordset Navigation
- Recordset Navigation Bar
- Recordset Navigation Status
- Viewing Live Data
- Live Data View Settings
- Master Detail Page Set
- Passing Information Between Pages
- Tutorial: Displaying Database Info
- Creating a Recordset
- Live Data View and Creating Repeating Regions
- Editing a Recordset and Linking to a Detail Page
- Building the Detailed Product Page
- Filling in the Details
- Operators Standing By
- Retrieving Information
- 24. Web Pages that Manipulate Database Records
- Adding Data
- Dreamweaver's Record Insertion Form Wizard
- Using the Insert Record Behavior
- Updating Database Records
- The Update Record Form Wizard
- The Update Record Server Behavior
- Dynamic Form Fields
- Dynamic Text Form Fields
- Dynamic Checkboxes and Radio Buttons
- Dynamic radio buttons
- Dynamic checkboxes
- Dynamic Menus and Lists
- Deleting Records
- Deleting Records for ASP
- Deleting Records for PHP and ColdFusion
- Tutorial: Inserting and Updating Data
- Adding an Insert Product Page
- Finishing the Insert Form
- Building a Page for Editing Database Records
- Linking to the update page
- Creating the update page
- Creating and Linking to the Delete Page
- Adding a link on the details page
- Creating the delete page
- Adding Data
- 25. Advanced Dynamic Site Features
- Password-Protecting Web Pages
- The Users Table
- Creating a Registration Form
- Creating the Login Page
- The Log Out User Behavior
- Protecting Individual Pages
- Additional Data Sources
- For PHP and ColdFusion
- For ASP
- URL Variables
- Form Variables
- Cookies
- Session Variables
- Server Variables
- Advanced Server Behaviors
- Recordset Paging
- Show Region Server Behaviors
- Tutorial: Authentication
- Building a Login Page
- Password-Protecting the Administration Pages
- Displaying a Portion of a Page to Logged-In Users
- Password-Protecting Web Pages
- 26. Server-Side XML and XSLT
- Understanding the Technologies
- Creating Dynamic Pages with XSLT and XML
- Inserting and Formatting XML
- Inserting a Repeat Region
- Building a repeat-region filter
- Inserting a Conditional Region
- Using Multiple Conditional Regions
- Inserting a Repeat Region
- Advanced XSLT Tricks
- Sorting Data in a Repeat Region
- Using XSLT Parameters
- 22. Getting Started with Dynamic Web Sites
- VII. Appendixes
- A. Getting Help
- Getting Help from Dreamweaver
- Detailed Assistance
- Getting Help from Adobe
- Adobe Web Site
- Paid Support
- The Forums
- Help from the Real World
- DMX Zone
- Community MX
- Getting Help from Dreamweaver
- B. Dreamweaver CS4, Menu by Menu
- File Menu
- Edit Menu
- View Menu
- Insert Menu
- Modify Menu
- Format Menu
- Commands Menu
- Site Menu
- Window Menu
- Help Menu
- A. Getting Help
- Index
- About the Author
- Colophon
- SPECIAL OFFER: Upgrade this ebook with OReilly