100% found this document useful (1 vote)
5 views

Ruby On Rails 3 Tutorial 1st Edition Michael Hartl pdf download

The document provides a download link for the 'Ruby on Rails 3 Tutorial' by Michael Hartl, which is a comprehensive guide for developers to learn Rails through practical examples. It includes praise from various readers highlighting its detailed and hands-on approach, covering topics such as Git, Heroku, and Test-Driven Development. Additionally, it lists several other related Ruby on Rails resources and textbooks available for download.

Uploaded by

mambeiskala11
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
5 views

Ruby On Rails 3 Tutorial 1st Edition Michael Hartl pdf download

The document provides a download link for the 'Ruby on Rails 3 Tutorial' by Michael Hartl, which is a comprehensive guide for developers to learn Rails through practical examples. It includes praise from various readers highlighting its detailed and hands-on approach, covering topics such as Git, Heroku, and Test-Driven Development. Additionally, it lists several other related Ruby on Rails resources and textbooks available for download.

Uploaded by

mambeiskala11
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

Ruby On Rails 3 Tutorial 1st Edition Michael

Hartl pdf download

https://ebookfinal.com/download/ruby-on-rails-3-tutorial-1st-
edition-michael-hartl/

Explore and download more ebooks or textbooks


at ebookfinal.com
Here are some recommended products for you. Click the link to
download, or explore more at ebookfinal

Professional Ruby on Rails Programmer to Programmer 1st


Edition Noel Rappin

https://ebookfinal.com/download/professional-ruby-on-rails-programmer-
to-programmer-1st-edition-noel-rappin/

Continuous Testing with Ruby Rails and JavaScript 1st


Edition Ben Rady

https://ebookfinal.com/download/continuous-testing-with-ruby-rails-
and-javascript-1st-edition-ben-rady/

Agile Web Development with Rails 7 2nd Edition Sam Ruby

https://ebookfinal.com/download/agile-web-development-with-
rails-7-2nd-edition-sam-ruby/

Agile Web Development with Rails 4 4th Revised edition


Edition Sam Ruby

https://ebookfinal.com/download/agile-web-development-with-
rails-4-4th-revised-edition-edition-sam-ruby/
Beginning Rails 3 1st Edition Cloves Carneiro Jr.

https://ebookfinal.com/download/beginning-rails-3-1st-edition-cloves-
carneiro-jr/

Rails 3 in Action 1st Edition Ryan Biggl

https://ebookfinal.com/download/rails-3-in-action-1st-edition-ryan-
biggl/

Web Services on Rails 1st Edition Kevin Marshall

https://ebookfinal.com/download/web-services-on-rails-1st-edition-
kevin-marshall/

CoffeeScript Programming with jQuery Rails and Node js 1st


Edition Michael Erasmus

https://ebookfinal.com/download/coffeescript-programming-with-jquery-
rails-and-node-js-1st-edition-michael-erasmus/

Mediating Between Concepts and Grammar Holden Hartl

https://ebookfinal.com/download/mediating-between-concepts-and-
grammar-holden-hartl/
Ruby On Rails 3 Tutorial 1st Edition Michael Hartl
Digital Instant Download
Author(s): Michael Hartl
ISBN(s): 9780321743121, 0321743121
Edition: 1
File Details: PDF, 8.86 MB
Year: 2010
Language: english
www.it-ebooks.info
Praise for Ruby on Rails™ 3
Tutorial

RailsTutorial.org: Michael Hartl’s awesome new


Rails Tutorial
The Ruby on Rails ™ 3 Tutorial: Learn Rails by Example by Michael Hartl has become a
must read for developers learning how to build Rails apps.
—Peter Cooper, editor of Ruby Inside

Very detailed and hands-on Rails Tutorial!


Great job! I’m learning Rails, and found your tutorial to be one of the most detailed and
hands-on guides. Besides many details of Rails, it also taught me about Git, Heroku,
RSpec, Webrat, and most important (at least to me), it emphasized the Test-Driven
Development (TDD) methodology. I learned a lot from your tutorial.
Keep up the good job! Thanks so much for sharing it.
—Albert Liu, senior manager, Achievo Corporation.

Ruby on Rails Tutorial is the best!


Just wanted to say that your Ruby on Rails tutorial is the best!
I’ve been trying for a while to wrap my head around Rails. Going through your tutorial,
I’m finally feeling comfortable in the Rails environment. Your pedagogical style of

www.it-ebooks.info
gradually introducing more complex topics while at the same time giving the reader the
instant gratification and a sense of accomplishment with working examples really works
for me. I also like the tips and suggestions that give me a sense of learning from a real
Rails insider. Your e-mail response to a problem I ran into is an example of your generous
sharing of your experience.
—Ron Bingham, CEO, SounDBuytz

I love the writing style of the Rails Tutorial


I love the writing style of the Rails Tutorial, and there is so much content that is different
from other Rails books out there, making it that much more valuable...Thanks for your
work!
—Allen Ding

www.it-ebooks.info
RUBY ON RAILS™ 3 TUTORIAL

www.it-ebooks.info
A d d ison-W e sl e y
Prof e ssion a l Ru b y S eri e s
O bie F ern a n d e z , S erie s E ditor

Visit informit.com /ruby for a c om plete list of availa ble pro du cts.

T h e Addison-Wesley Professional Ruby Series provid e s re a d ers


with pra ctic al, p e o ple -orie nte d, a nd in-d e pth inform ation a b out
a p plying th e Ruby platform to cre ate dyna mic te chnolo g y solutions.
Th e s erie s is b as e d on th e pre mis e that th e n e e d for ex p ert refere n c e
b ooks, writte n by ex p erie n c e d pra ctition ers, will n ever b e s atisfie d solely
by blo gs a nd th e Intern et.

www.it-ebooks.info
RUBY ON RAILS™ 3 TUTORIAL
Learn Rails™ by Example

Michael Hartl

Upper Saddle River, NJ • Boston • Indianapolis • San Francisco


New York • Toronto • Montreal • London • Munich • Paris • Madrid
Capetown • Sydney • Tokyo • Singapore • Mexico City

www.it-ebooks.info
Many of the designations used by manufacturers and sellers to distinguish their products are claimed Editor-in-Chief
Mark Taub
as trademarks. Where those designations appear in this book, and the publisher was aware of a
trademark claim, the designations have been printed with initial capital letters or in all capitals. Executive Acquisitions Editor
Debra Williams Cauley
The author and publisher have taken care in the preparation of this book, but make no expressed or
implied warranty of any kind and assume no responsibility for errors or omissions. No liability is Managing Editor
assumed for incidental or consequential damages in connection with or arising out of the use of the John Fuller
information or programs contained herein. Project Editor
Elizabeth Ryan
The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or
special sales, which may include electronic versions and/or custom covers and content particular to Copy Editor
your business, training goals, marketing focus, and branding interests. For more information, please Erica Orloff
contact: Indexer
Claire Splan
U.S. Corporate and Government Sales
(800) 382-3419 Proofreader
corpsales@pearsontechgroup.com Claire Splan

For sales outside the United States please contact: Publishing Coordinator
Kim Boedigheimer
International Sales
international@pearson.com Cover Designer
Gary Adair
Visit us on the Web: informit.com/aw
Compositor
Library of Congress Cataloging-in-Publication Data Glyph International
Hartl, Michael.
Ruby on rails 3 tutorial : learn Rails by example / Michael Hartl.
p. cm.
Includes index.
ISBN-10: 0-321-74312-1 (pbk. : alk. paper)
ISBN-13: 978-0-321-74312-1 (pbk. : alk. paper)
1. Ruby on rails (Electronic resource) 2. Web site development. 3. Ruby
(Computer program language) I. Title.
TK5105.8885.R83H37 2011
005.1 17–dc22 2010039450
Copyright © 2011 Michael Hartl
All rights reserved. Printed in the United States of America. This publication is protected by
copyright, and permission must be obtained from the publisher prior to any prohibited reproduction,
storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical,
photocopying, recording, or likewise. For information regarding permissions, write to:
Pearson Education, Inc.
Rights and Contracts Department
501 Boylston Street, Suite 900
Boston, MA 02116
Fax: (617) 671-3447
The source code in Ruby on Rails ™ 3 Tutorial is released under the MIT License.

ISBN 13: 978-0-321-74312-1


ISBN 10: 0-321-74312-1
Text printed in the United States on recycled paper at Edwards Brothers in Ann Arbor, Michigan
First printing, December 2010

www.it-ebooks.info
Contents

Foreword by Derek Sivers xv


Foreword by Obie Fernandez xvii
Acknowledgments xix
About the Author xxi

Chapter 1 From Zero to Deploy 1


1.1 Introduction 3
1.1.1 Comments for Various Readers 4
1.1.2 “Scaling” Rails 7
1.1.3 Conventions in This Book 7
1.2 Up and Running 9
1.2.1 Development Environments 9
1.2.2 Ruby, RubyGems, Rails, and Git 11
1.2.3 The First Application 15
1.2.4 Bundler 16
1.2.5 rails server 20
1.2.6 Model-View-Controller (MVC) 22
1.3 Version Control with Git 24
1.3.1 Installation and Setup 24
1.3.2 Adding and Committing 26
1.3.3 What Good Does Git Do You? 28
1.3.4 GitHub 29
1.3.5 Branch, Edit, Commit, Merge 31

vii

www.it-ebooks.info
viii Contents

1.4 Deploying 35
1.4.1 Heroku Setup 36
1.4.2 Heroku Deployment, Step One 37
1.4.3 Heroku Deployment, Step Two 37
1.4.4 Heroku Commands 39
1.5 Conclusion 40

Chapter 2 A Demo App 41


2.1 Planning the Application 41
2.1.1 Modeling Users 43
2.1.2 Modeling Microposts 44
2.2 The Users Resource 44
2.2.1 A User Tour 46
2.2.2 MVC in Action 49
2.2.3 Weaknesses of This Users Resource 58
2.3 The Microposts Resource 58
2.3.1 A Micropost Microtour 58
2.3.2 Putting the micro in Microposts 61
2.3.3 A User has_many Microposts 63
2.3.4 Inheritance Hierarchies 66
2.3.5 Deploying the Demo App 68
2.4 Conclusion 69

Chapter 3 Mostly Static Pages 71


3.1 Static Pages 74
3.1.1 Truly Static Pages 75
3.1.2 Static Pages with Rails 78
3.2 Our First Tests 84
3.2.1 Testing Tools 84
3.2.2 TDD: Red, Green, Refactor 86
3.3 Slightly Dynamic Pages 103
3.3.1 Testing a Title Change 103
3.3.2 Passing Title Tests 106
3.3.3 Instance Variables and Embedded Ruby 108
3.3.4 Eliminating Duplication with Layouts 112
3.4 Conclusion 115
3.5 Exercises 116

www.it-ebooks.info
Contents ix

Chapter 4 Rails-Flavored Ruby 119


4.1 Motivation 119
4.1.1 A title Helper 119
4.1.2 Cascading Style Sheets 122
4.2 Strings and Methods 125
4.2.1 Comments 125
4.2.2 Strings 126
4.2.3 Objects and Message Passing 129
4.2.4 Method Definitions 132
4.2.5 Back to the title Helper 133
4.3 Other Data Structures 134
4.3.1 Arrays and Ranges 134
4.3.2 Blocks 137
4.3.3 Hashes and Symbols 139
4.3.4 CSS Revisited 142
4.4 Ruby Classes 144
4.4.1 Constructors 144
4.4.2 Class Inheritance 145
4.4.3 Modifying Built-In Classes 148
4.4.4 A Controller Class 150
4.4.5 A User Class 152
4.5 Exercises 154

Chapter 5 Filling in the Layout 157


5.1 Adding Some Structure 157
5.1.1 Site Navigation 159
5.1.2 Custom CSS 164
5.1.3 Partials 171
5.2 Layout Links 177
5.2.1 Integration Tests 178
5.2.2 Rails Routes 181
5.2.3 Named Routes 183
5.3 User Signup: A First Step 186
5.3.1 Users Controller 186
5.3.2 Signup URL 188
5.4 Conclusion 191
5.5 Exercises 191

www.it-ebooks.info
x Contents

Chapter 6 Modeling and Viewing Users, Part I 193


6.1 User Model 194
6.1.1 Database Migrations 196
6.1.2 The Model File 201
6.1.3 Creating User Objects 203
6.1.4 Finding User Objects 207
6.1.5 Updating User Objects 208
6.2 User Validations 210
6.2.1 Validating Presence 210
6.2.2 Length Validation 217
6.2.3 Format Validation 218
6.2.4 Uniqueness Validation 222
6.3 Viewing Users 227
6.3.1 Debug and Rails Environments 227
6.3.2 User Model, View, Controller 230
6.3.3 A Users Resource 232
6.4 Conclusion 236
6.5 Exercises 237

Chapter 7 Modeling and Viewing Users, Part II 239


7.1 Insecure Passwords 239
7.1.1 Password Validations 240
7.1.2 A Password Migration 244
7.1.3 An Active Record Callback 247
7.2 Secure Passwords 250
7.2.1 A Secure Password Test 251
7.2.2 Some Secure Password Theory 252
7.2.3 Implementing has_password? 254
7.2.4 An Authenticate Method 258
7.3 Better User Views 262
7.3.1 Testing the User Show Page (With Factories) 263
7.3.2 A Name and A Gravatar 268
7.3.3 A User Sidebar 276
7.4 Conclusion 279
7.4.1 Git Commit 279
7.4.2 Heroku Deploy 280
7.5 Exercises 280

www.it-ebooks.info
Contents xi

Chapter 8 Sign Up 283


8.1 Signup Form 283
8.1.1 Using form_for 286
8.1.2 The Form HTML 288
8.2 Signup Failure 292
8.2.1 Testing Failure 292
8.2.2 A Working Form 295
8.2.3 Signup Error Messages 299
8.2.4 Filtering Parameter Logging 303
8.3 Signup Success 305
8.3.1 Testing Success 305
8.3.2 The Finished Signup Form 308
8.3.3 The Flash 308
8.3.4 The First Signup 312
8.4 RSpec Integration Tests 313
8.4.1 Integration Tests with Style 315
8.4.2 Users Signup Failure Should not Make a New User 315
8.4.3 Users Signup Success Should Make a New User 319
8.5 Conclusion 321
8.6 Exercises 321

Chapter 9 Sign In, Sign Out 325


9.1 Sessions 325
9.1.1 Sessions Controller 326
9.1.2 Signin Form 328
9.2 Signin Failure 332
9.2.1 Reviewing form Submission 333
9.2.2 Failed Signin (Test and Code) 335
9.3 Signin Success 338
9.3.1 The Completed create Action 338
9.3.2 Remember Me 340
9.3.3 Current User 345
9.4 Signing Out 354
9.4.1 Destroying Sessions 354
9.4.2 Signin Upon Signup 356
9.4.3 Changing the Layout Links 358
9.4.4 Signin/Out Integration Tests 362

www.it-ebooks.info
xii Contents

9.5 Conclusion 363


9.6 Exercises 363

Chapter 10 Updating, Showing, and Deleting Users 365


10.1 Updating Users 365
10.1.1 Edit Form 366
10.1.2 Enabling Edits 373
10.2 Protecting Pages 376
10.2.1 Requiring Signed-In Users 376
10.2.2 Requiring the Right User 379
10.2.3 Friendly Forwarding 382
10.3 Showing Users 384
10.3.1 User Index 385
10.3.2 Sample Users 389
10.3.3 Pagination 392
10.3.4 Partial Refactoring 398
10.4 Destroying Users 399
10.4.1 Administrative Users 399
10.4.2 The destroy Action 404
10.5 Conclusion 408
10.6 Exercises 409

Chapter 11 User Microposts 411


11.1 A Micropost Model 411
11.1.1 The Basic Model 412
11.1.2 User/Micropost Associations 414
11.1.3 Micropost Refinements 419
11.1.4 Micropost Validations 423
11.2 Showing Microposts 425
11.2.1 Augmenting the User Show Page 426
11.2.2 Sample Microposts 432
11.3 Manipulating Microposts 434
11.3.1 Access Control 436
11.3.2 Creating Microposts 439
11.3.3 A Proto-feed 444
11.3.4 Destroying Microposts 452
11.3.5 Testing the New Home Page 456

www.it-ebooks.info
Contents xiii

11.4 Conclusion 457


11.5 Exercises 458

Chapter 12 Following Users 461


12.1 The Relationship Model 463
12.1.1 A Problem with the Data Model (and a Solution) 464
12.1.2 User/Relationship Associations 470
12.1.3 Validations 473
12.1.4 Following 474
12.1.5 Followers 479
12.2 A Web Interface for Following and Followers 482
12.2.1 Sample Following Data 482
12.2.2 Stats and a Follow Form 484
12.2.3 Following and Followers Pages 494
12.2.4 A Working Follow Button the Standard Way 498
12.2.5 A Working Follow Button with Ajax 502
12.3 The Status Feed 507
12.3.1 Motivation and Strategy 508
12.3.2 A First Feed Implementation 511
12.3.3 Scopes, Subselects, and a Lambda 513
12.3.4 The New Status Feed 518
12.4 Conclusion 519
12.4.1 Extensions to the Sample Application 520
12.4.2 Guide to Further Resources 522
12.5 Exercises 523

Index 527

www.it-ebooks.info
This page intentionally left blank

www.it-ebooks.info
Foreword

My former company (CD Baby) was one of the first to loudly switch to Ruby on Rails,
and then even more loudly switch back to PHP (Google me to read about the drama).
This book by Michael Hartl came so highly recommended that I had to try it, and Ruby
on Rails ™ 3 Tutorial is what I used to switch back to Rails again.
Though I’ve worked my way through many Rails books, this is the one that finally
made me get it. Everything is done very much “the Rails way”—a way that felt very
unnatural to me before, but now after doing this book finally feels natural. This is also
the only Rails book that does test-driven development the entire time, an approach highly
recommended by the experts but which has never been so clearly demonstrated before.
Finally, by including Git, GitHub, and Heroku in the demo examples, the author really
gives you a feel for what it’s like to do a real-world project. The tutorial’s code examples
are not in isolation.
The linear narrative is such a great format. Personally, I powered through Rails
Tutorial in three long days, doing all the examples and challenges at the end of each
chapter. Do it from start to finish, without jumping around, and you’ll get the ultimate
benefit.
Enjoy!

—Derek Sivers (sivers.org)


Founder, CD Baby and Thoughts, Ltd.

xv

www.it-ebooks.info
This page intentionally left blank

www.it-ebooks.info
Foreword

“If I want to learn web development with Ruby on Rails, how should I start?” For years
Michael Hartl has provided the answer as author of the RailsSpace tutorial in our series
and now the new Ruby on Rails ™ 3 Tutorial that you hold in your hands (or PDF reader,
I guess.)
I’m so proud of having Michael on the series roster. He is living, breathing proof
that we Rails folks are some of the luckiest in the wide world of technology. Before
getting into Ruby, Michael taught theoretical and computational physics at Caltech for
six years, where he received the Lifetime Achievement Award for Excellence in Teaching
in 2000. He is a Harvard graduate, has a Ph.D. in Physics from Caltech, and is an
alumnus of Paul Graham’s esteemed Y Combinator program for entrepreneurs. And
what does Michael apply his impressive experience and teaching prowess to? Teaching
new software developers all around the world how to use Ruby on Rails effectively! Lucky
we are indeed!
The availability of this tutorial actually comes at a critical time for Rails adoption.
We’re five years into the history of Rails and today’s version of the platform has unprece-
dented power and flexibility. Experienced Rails folks can leverage that power effectively,
but we’re hearing growing cries of frustration from newcomers. The amount of informa-
tion out there about Rails is fantastic if you know what you’re doing already. However,
if you’re new, the scope and mass of information about Rails can be mind-boggling.
Luckily, Michael takes the same approach as he did in his first book in the series,
building a sample application from scratch, and writes in a style that’s meant to be read
from start to finish. Along the way, he explains all the little details that are likely to
trip up beginners. Impressively, he goes beyond just a straightforward explanation of
what Rails does and ventures into prescriptive advice about good software development

xvii

www.it-ebooks.info
xviii Foreword

practices, such as test-driven development. Neither does Michael constrain himself to


a box delineated by the extents of the Rails framework—he goes ahead and teaches
the reader to use tools essential to existence in the Rails community, such as Git and
GitHub. In a friendly style, he even provides copious contextual footnotes of benefit
to new programmers, such as the pronunciation of SQL and pointers to the origins of
lorem ipsum. Tying all the content together in a way that remains concise and usable is
truly a tour de force of dedication!
I tell you with all my heart that this book is one of the most significant titles in
my Professional Ruby Series, because it facilitates the continued growth of the Rails
ecosystem. By helping newcomers become productive members of the community
quickly, he ensures that Ruby on Rails continues its powerful and disruptive charge
into the mainstream. The Rails Tutorial is potent fuel for the fire that is powering
growth and riches for so many of us, and for that we are forever grateful.

—Obie Fernandez, Series Editor

www.it-ebooks.info
Acknowledgments

Ruby on Rails ™ Tutorial owes a lot to my previous Rails book, RailsSpace, and hence
to my coauthor on that book, Aurelius Prochazka. I’d like to thank Aure both for the
work he did on that book and for his support of this one. I’d also like to thank Debra
Williams Cauley, my editor on both RailsSpace and Rails Tutorial ; as long as she keeps
taking me to baseball games, I’ll keep writing books for her.
I’d like to acknowledge a long list of Rubyists who have taught and inspired me
over the years: David Heinemeier Hansson, Yehuda Katz, Carl Lerche, Jeremy Kemper,
Xavier Noria, Ryan Bates, Geoffrey Grosenbach, Peter Cooper, Matt Aimonetti, Gregg
Pollack, Wayne E. Seguin, Amy Hoy, Dave Chelimsky, Pat Maddox, Tom Preston-
Werner, Chris Wanstrath, Chad Fowler, Josh Susser, Obie Fernandez, Ian McFarland,
Steven Bristol, Giles Bowkett, Evan Dorn, Long Nguyen, James Lindenbaum, Adam
Wiggins, Tikhon Bernstam, Ron Evans, Wyatt Greene, Miles Forrest, the good people
at Pivotal Labs, the Heroku gang, the thoughtbot guys, and the GitHub crew. Finally,
many, many readers—far too many to list—have contributed a huge number of bug
reports and suggestions during the writing of this book, and I gratefully acknowledge
their help in making it as good as it can be.

xix

www.it-ebooks.info
Discovering Diverse Content Through
Random Scribd Documents
"I'm sorry you made it," she spat at him viciously. "I hate you—hate
you!"
Heydrick spun the dials on the handcuffs. "Okay, kid, if you want to
play rough, you'll sit out the rest of the trip on my lap. The interval is
two feet, as of now."
"I hope you can take it." Then she snapped. Tears burst out. She
raged and screamed and kicked, laughed and cried and choked at
the same time. Heydrick slapped her out of it. She huddled on the
floor, sobbing weakly.
The co-pilot came along the passageway. "Oh, it's your pet? We
thought it might be."
"Still want to trade jobs?"
"It might be fun to spank her, but I'll skip it. I've news for you. We
can't land in City 4—trouble of some kind—sounds like a good row."
"Do you know what's wrong?"
"They didn't say. Orders are to take the ship on the Desert City 12.
You two can go down in the lighters with the freight." The co-pilot
patted Ria on the shoulder—she cringed away from him. "Tough
luck," he said gently. "Too bad you're stuck with Bighead here. If you
were dealing with me, we'd go off to some empty asteroid and camp
out for the rest of your life."

Brooding over the immensity of the plain below was Canal City 4.
Covering the entire city like a tremendous bubble was the iridescent
dome of fused-quartz. The tiny fleet of ore-lighters nosed through
the valves of airlock after airlock and headed across town toward the
sprawling terraces of the freight docks. Like a chain of brightly
silvered pumpkin seeds, the clumsy craft wound in and out among
the towers of the 7th level, down to the freight docks.
Heydrick took his prisoner through the airlock in the freight terminal
to condition her and himself for street-level atmosphere, then went
out on the huge platform again.
Pausing only long enough to ask a robot attendant for information,
Heydrick pushed the button to stop a descending elevator.
"Labor trouble—the workers are picketing—riots have broken out at
street level," droned the mechanical voice of the robot.
A crowded car stopped, signalling raucously. Heydrick showed his
badge to the robot pilot. "Street level," he said crisply. "Space Patrol
priority." The robot grunted. "We have orders not to stop unless it's
vitally necessary."
"It's necessary."
Jumbles of neo-plastic architecture, rising tier on tier above the
series of terraces on which the city was built, whirled upward past
the descending car.
On the street level, all was bustle and confusion. A polyglot crowd
composed of every human and near human species in the universe
jammed the streets. Stares followed the I.P.S. uniform as Heydrick
pushed out of the elevator. A few people gave nods of respect, but
in most faces burned a sullen hatred and resentment.
Ria followed him in stolid silence as the handcuffs tugged at her. The
knots of angry people came suddenly in focus and she had a
moment's desperate inspiration.
She jerked back heavily on the cuffs and began to scream.
Heydrick was caught off guard and spun sharply about.
"Help me, somebody," Ria cried wildly. "The cops are taking me in. I
haven't done anything."
The mob clotted around the pair, snarling angrily.
Heydrick reached for his gun, just as somebody threw a spanner. He
dodged, heard Ria's voice shout a welcome, "Thorsan," and that was
all. A sharp jab in his cheek as the paralysis needle went home was
the last he knew. Darkness rushed over him in a smothering cloud.

Someone kept slapping him. He felt as if he were trying to swim in


thick syrup. The light on the desk shone blindingly in his eyes. He
got his hand up to shield his eyes, then they struck it down. He
blinked sharply awake.
Behind the desk sat a handsome man. Pale blue eyes that probed
deeply, plump cheeks, thick blonde eyebrows, muscular shoulders.
Heydrick had seen him before. Where? Oh, yes—the pieces clicked
together. The Feyjak investigation. The man had testified against Ria
Tarsen, reluctantly, the Visiphone News had commented. He had
been Feyjak's assistant, Ria's friend.
Thorsan drummed the desk with his fingers. "Heydrick, you've given
us a lot of trouble. You probably want to know where you are. You're
in the underground galleries below Level 1. We have our
headquarters here. I am the head man of the Wildings."
Heydrick's brain spun. He fought back the whirl and tried to think
calmly.
Below the lowest inhabited level of Canal City 4 were endless mazes
of caverns, galleries and abandoned mine-shafts.
Rumor said that bands of outlaws roamed among the savages,
second and third generations of the outcast rebels who long-ago had
been driven to the refuge of the city's ratholes. Banded together by
their common hatreds, these outlaws had built up a strong
organization known as the Wildings. There was some talk that
numbers of them had infiltrated the City's government; men of
dangerous ability, infinite cunning, and vicious philosophy, whose
sole aim was the overthrow of the Government of Scientists.
Heydrick's heart turned suddenly to ashes as he realized that Ria
Tarsen must have been a Wilding. Surely no group would have gone
to the trouble of instigating riots merely to rescue an outsider,
however innocent. It was all clear now, painfully clear.
Thorsan must have divined the nature of Heydrick's thoughts. He
laughed harshly, then turned to a subordinate.
"They're no use to us, either of them. The girl didn't know as much
as I thought she did. Now they both know too much. We'll have to
get rid of them. Put him in the cell with her while I figure out what
to do with them."
Hands reached out of the darkness and dragged Heydrick roughly to
his feet. He was thrust along a winding gallery that he realized must
be part of an old mine. They must have given him a full dose with
the paralysis needle. He kept stumbling, and his legs moved stiffly.
The group came to a halt before an old wooden-plank door. The
room inside was damp, and smelled mouldy. It was evidently a
chamber cut in the rock for storage of explosives. His captors thrust
him inside. He bounced off a wall and fell heavily. The door bumped
shut and a sound like a bar dropping in place came muffled through
the planks.
"Well, tough guy, how do you like being pushed around?" A familiar
voice came out of darkness.
"Who is it?" he asked needlessly.
"It's not your Aunt Sophie," the voice said acidly. "You should kick.
You have better company than I have."
The two sat in moody silence for a while. "Are you all right?" the girl
asked finally.
"Still stiff," he answered. "You should know what that's like."
"I do. You and your toy handcuffs. They only wanted me; Thorsan
thought I knew he killed Feyjak. He was afraid I might give him
away. They had to drag you along on account of your silly handcuffs.
If you hadn't split my lip, I could laugh at you. They're going to kill
us, you know."
"Yes, I heard him say that."
"What are we going to do? Any ideas?"
"Not so far. How about you?"
"Nothing definite. I still have the benzedrine tablets I swiped. They
didn't find 'em when they searched me. I'll split with you. If we take
it before they come for us, we may get a chance to make a break.
It'll counteract the paralysis drug if they're counting on that to make
us dead pigeons while they haul us around."
Her hand found his in the dark and thrust six pellets into his open
palm. Her fingers were wet and sticky.
"You're bleeding."
"It's nothing serious. That bracelet of yours cut my arm when they
chiselled it off."
"I'm sorry about everything, Ria—"
"Skip it," she said harshly. "Of course you're sorry. Now shut up. I
hate post-mortems. Besides, I think they're coming. Better get your
benzedrine down."

There was sound of the bar being withdrawn. A heavy foot kicked
the door open. A man with a twisted face held the light and the gun
while two others approached warily and jabbed needles into the
captives. Coarse hands jerked them to their feet, and the two were
dragged outside, feigning limpness.
"Now," said Ria. She thrust out her foot. The man with the gun
tripped and went sprawling on the floor. Heydrick swung with all he
had at the darkness where he remembered a chin and felt bone
shatter beneath his fist. Then he was tangled in a savage knot with
the third man, rolling and threshing about in deadly fury.
Ria was not idle. She salvaged the light, switched the radilume back
on, and hunted for the dropped gun. In a matter of seconds, she
brought the butt down on an exposed skull. The thug let go and
sank to the floor.
Heydrick dusted himself off.
"I ought to let you have it, too," Ria mumbled, "but I always was a
softy. Come on, sucker."
"Which way?"
"I think they brought me that way," the girl said slowly. "Let's try the
other. Heaven knows where it leads."
Heydrick took the gun from her and thrust it through his belt. They
struck off down the tunnel, taking forks at random, but going as
cautiously as they could.
Luck was against them. They came suddenly round a turn and into a
chamber full of Wildings. It was the room where Heydrick had been
questioned by Thorsan. The man still sat at the desk. Heydrick drew
the gun and pressed its trigger as Thorsan dived for a doorway. The
desk glowed, then exploded. The room was choked with dust.
Heydrick remembered a nightmarish pursuit, running down a series
of criss-cross galleries with endless side passages. The gallery ended
abruptly. An open mine-shaft barred their way.
It was a double shaft, with space for two elevators, but neither lift
was on their level. Sounds of pursuit came from the gallery behind
them.
Heydrick leaned over and looked down the shaft. A floor below was
the open-platform lift.
"Jump for the cable," he ordered. "Try to slide down it."
"You first," she said. "I'm a sissy." Heydrick jumped and his stomach
wrenched with nausea. Then the cable was burning through his
hands. His feet stung as they came down solidly on the metal
flooring. The girl was right behind him. He found the control lever
and jammed it all the way over.
The car dropped under them with sickening speed.
A blaster beam flamed briefly above them, and the discharge set a
chorus of echoes bouncing back and forth in the old mine-shaft.
"Hang tight," he shouted. "I don't know how far down this shaft
goes. If we hit bottom at this speed, we'll flatten out like saucers."
A mushroom of brilliant light expanded above them. The car jerked
and grated on the rock walls, then went down in a free fall, the
cable trailing slack above them.
Down the shaft hurtled the old lift, air whistling eerily round its
edges.
"They've blasted the cable!" Heydrick cried. "Now we are in for it."
He leaped to the brake lever and tugged at it. The bar was rusted
fast. Ria tried to help. With their combined weight and effort, the bar
gave a little. Inch by inch, it moved. The clamps started taking hold
of the side walls and a shriek of protest came from rock and metal.
The elevator slowed slightly. Too late.
With a grinding rasp of smashed metal, it struck. Ria was hurled
clear, but Heydrick was trapped.
The metal cable came down, coiling and snapping like a whip. A stiff
spiral of it covered Heydrick, pinning him fast to the floor. He wiped
a smear of blood from his face and tried vainly to lift the heavy
strands. They refused to budge.
Ria knelt beside him and tried to shift the coils, but it was no use.
"You'd better go," he said roughly. "They'll be down as soon as they
can get to the other elevator ... to make sure of us."
Ria glared at him. "It's my maternal instinct," she said. "I can't leave
you."
"You wanted a chance to escape. This is it."
Ria seized the broken brake lever and pried up part of the strands.
Heydrick worked himself part way out, but the weight was too much
for her strength. The bar twisted out of her hands. Down came the
full weight again. Heydrick cried out in agony. She moved the bar
and lifted again. This time, he crawled free.

Leaning on her, he was able to stand and walk along the old gallery,
but it was a slow business. Deadly slow.
Behind them, they could hear the whine of a descending lift.
"They're coming," he said. Crouching against an angle of the tunnel,
they waited. It was useless to run. Heydrick cut the switch of his
radilume and braced the blaster against cold stone. He felt better
with the trigger nestling against his trembling finger.
The Wildings came cautiously, but they needed light to move at all.
Light splashed off the rock around the corner. Shadowy figures
moved behind the light. Heydrick pressed the trigger, and a pale
beam flicked the darkness. In the close confinement of the tunnel,
the shattering blast stunned their brains.
The explosion stopped some of the pursuit, but a scuff of boots on
rough rock warned Heydrick. Needles from paralysis guns snicked
nastily from the naked rocks beside them. He and the girl turned
and fled headlong through the darkness. Pain forgotten, he thrust
Ria ahead of him, and pried up part of the strands. Heydrick
followed, stumbling and swearing.
In the darkness ahead, he heard Ria cry out. Unable to stop, he too
collided with what seemed to be a solid wall of metal. Heydrick
flicked the radilume switch. Light flooded an ore depot, with rusting
electric cars.
"Ore cars," he gasped. "Get in." He boosted the girl up and
scrambled after her. Heydrick fumbled for the switch, found it. The
car leaped ahead as a blaster beam licked the rails behind them.
With shaking hands, Heydrick re-primed his blaster and fired wildly
at the darkness behind them. Shadows danced. It seemed seconds
before the blasts went off. Two in rapid succession.
Another car leaped from the dust cloud behind. It was pursuing
them on the parallel tracks.
A blaster beam grazed the back wall of the ore-car. It was gone with
a flash and a roar. The shock flattened Heydrick and the girl against
the front wall. Heydrick re-primed his gun, but it was impossible to
aim. The tracks went into a black maw and went up in a steeply
climbing spiral. Flanges screamed wildly as the wheels bit into the
curves. Up. Up. Up. The miles raced backward in a dizzy flow of
darkness lit by faint reflections from the radilume.
Suddenly the track levelled off on a straightaway. Heydrick peered
ahead. Heaven alone knew where the tunnel led or how far the
tracks were good. The car was going like a runaway rocket.
Then they were out in the open, in daylight. The tracks came out of
a tunnel-mouth on the banks of the dry canal.
The hurtling ore-car was half way across the bridge before Heydrick
knew they were heading for the city.
Out of the tunnel-mouth across the canal shot the other ore-car.
Both cars raced toward the city.
Ten miles. Five. Three. One.
Weird lights flickered on the tremendous dome ahead, as if some
infernal carnival was being held within the city.
Up a steep ramp to the airlock shot the cars. Seconds now. The
airlock was closed.
A gate of metal and plastic loomed close. Glass, plastic, metal and
quartz vanished in a thunderous melee of sound. The first lock. The
city's automatic wall-magnets clawed at the racing car. It slowed
rapidly. The deceleration pinned both of them flat against the front
wall of the car. It went through the second gate like a knife through
dough. The jar was agony.
The car rolled up to a dock and stopped.
Heydrick was out of the car and racing for a visiphone as a wobbling
wheel came loose and romped down the track, smashing sheds to
metal splinters.
"Get Tyko," he bellowed.
"Sorry," a robot said tonelessly. "No calls are going through till the
end of the emergency."
Heydrick swore wildly. He and Ria ran through the building and out
onto the huge terrace in front. The vast bowl of the city was in
tumult. Fires were raging on all the lower levels, and several of the
towers of the 7th level had crashed down in ruins. Mobs roared
through the streets, killing, burning, and looting. It was revolution.
Security police, trying to stem the outbreak, were caught in the
maelstroms, overwhelmed, and submerged. The lower levels had
gone mad with hate. Wildings were everywhere, organizing, leading,
destroying.
Heydrick commandeered an empty flier, got Ria aboard and set the
automatic pilot for Tyko's tower in West 21.

In Tyko's tower, the old man stood watching the end of the grim
spectacle in the streets below. Walls of white fire moved out in ever-
widening circles from the experimental domes, moved through the
city, quieting the mobs, herding them back to their homes. Dead lay
in windrows.
A bell rang behind him. He turned. "Oh, come in," he said. It was
Thorsan, Feyjak's assistant.
"It's almost over," Tyko told him. "Order is being restored now. After
this, we'll keep the Blues in power and give the people a government
they can like. It's a sad thing, to govern people. Herding them about
like animals. Men should be free. I'm an anarchist myself ... out of
hours."
"How about my people?" Thorsan asked, an odd expression on his
face.
"Your people? Oh, the Red Scientists. Don't worry. We knew this
revolt was coming, even if you Reds didn't. We've had our eye on
the Wildings for some time. You Reds are safe enough. When order
is restored, perhaps a joint government...."
Tyko stopped. He was looking into the muzzle of a blaster.
"I don't understand," he quavered.
"My people are the Wildings. We don't want any of your kind of
governments," Thorsan said slowly. "With you out of the way,
nothing can stop the revolution. I regret the necessity."
From the open doorway, Heydrick fired. The paralysis needle bit
deep in Thorsan's neck. He crumpled silently.
Heydrick and Ria stood before Tyko.
"I see you've completed your mission," the old man said. He
frowned as Heydrick put his arm around Ria.
Heydrick laughed. "When Thorsan comes out of it, give him
scopolamine. He'll tell you who did kill Feyjak."
"I suppose you want my blessing? You have it."
"How's your war coming?"
"It's over by now. Nasty business, government. What are you going
to do?"
Heydrick and Ria looked at each other.
"I think we'll find an empty asteroid and camp out for a while. The
universe is getting too crowded. I'm glad she was innocent, Tyko. I
could never have brought her in ... for any reason."
"I wish I were young enough to go with you," Tyko sighed. "Not on
your honeymoon, of course. I guess you won't be coming back. This
is goodbye, then? Is there anything I can do for you?"
Heydrick started to reply but Ria cut in. "Yes, there is. I want
another pair of those magnetic handcuffs."
Heydrick shrugged. "She has the maternal instincts of a buzz-saw."
*** END OF THE PROJECT GUTENBERG EBOOK LADY INTO HELL-
CAT ***

Updated editions will replace the previous one—the old editions will
be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States copyright in
these works, so the Foundation (and you!) can copy and distribute it
in the United States without permission and without paying
copyright royalties. Special rules, set forth in the General Terms of
Use part of this license, apply to copying and distributing Project
Gutenberg™ electronic works to protect the PROJECT GUTENBERG™
concept and trademark. Project Gutenberg is a registered trademark,
and may not be used if you charge for an eBook, except by following
the terms of the trademark license, including paying royalties for use
of the Project Gutenberg trademark. If you do not charge anything
for copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such as
creation of derivative works, reports, performances and research.
Project Gutenberg eBooks may be modified and printed and given
away—you may do practically ANYTHING in the United States with
eBooks not protected by U.S. copyright law. Redistribution is subject
to the trademark license, especially commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the free


distribution of electronic works, by using or distributing this work (or
any other work associated in any way with the phrase “Project
Gutenberg”), you agree to comply with all the terms of the Full
Project Gutenberg™ License available with this file or online at
www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand, agree
to and accept all the terms of this license and intellectual property
(trademark/copyright) agreement. If you do not agree to abide by all
the terms of this agreement, you must cease using and return or
destroy all copies of Project Gutenberg™ electronic works in your
possession. If you paid a fee for obtaining a copy of or access to a
Project Gutenberg™ electronic work and you do not agree to be
bound by the terms of this agreement, you may obtain a refund
from the person or entity to whom you paid the fee as set forth in
paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only be


used on or associated in any way with an electronic work by people
who agree to be bound by the terms of this agreement. There are a
few things that you can do with most Project Gutenberg™ electronic
works even without complying with the full terms of this agreement.
See paragraph 1.C below. There are a lot of things you can do with
Project Gutenberg™ electronic works if you follow the terms of this
agreement and help preserve free future access to Project
Gutenberg™ electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright law
in the United States and you are located in the United States, we do
not claim a right to prevent you from copying, distributing,
performing, displaying or creating derivative works based on the
work as long as all references to Project Gutenberg are removed. Of
course, we hope that you will support the Project Gutenberg™
mission of promoting free access to electronic works by freely
sharing Project Gutenberg™ works in compliance with the terms of
this agreement for keeping the Project Gutenberg™ name associated
with the work. You can easily comply with the terms of this
agreement by keeping this work in the same format with its attached
full Project Gutenberg™ License when you share it without charge
with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.

1.E. Unless you have removed all references to Project Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project Gutenberg™
work (any work on which the phrase “Project Gutenberg” appears,
or with which the phrase “Project Gutenberg” is associated) is
accessed, displayed, performed, viewed, copied or distributed:
This eBook is for the use of anyone anywhere in the United
States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it away
or re-use it under the terms of the Project Gutenberg License
included with this eBook or online at www.gutenberg.org. If you
are not located in the United States, you will have to check the
laws of the country where you are located before using this
eBook.

1.E.2. If an individual Project Gutenberg™ electronic work is derived


from texts not protected by U.S. copyright law (does not contain a
notice indicating that it is posted with permission of the copyright
holder), the work can be copied and distributed to anyone in the
United States without paying any fees or charges. If you are
redistributing or providing access to a work with the phrase “Project
Gutenberg” associated with or appearing on the work, you must
comply either with the requirements of paragraphs 1.E.1 through
1.E.7 or obtain permission for the use of the work and the Project
Gutenberg™ trademark as set forth in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is posted


with the permission of the copyright holder, your use and distribution
must comply with both paragraphs 1.E.1 through 1.E.7 and any
additional terms imposed by the copyright holder. Additional terms
will be linked to the Project Gutenberg™ License for all works posted
with the permission of the copyright holder found at the beginning
of this work.

1.E.4. Do not unlink or detach or remove the full Project


Gutenberg™ License terms from this work, or any files containing a
part of this work or any other work associated with Project
Gutenberg™.

1.E.5. Do not copy, display, perform, distribute or redistribute this


electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
with active links or immediate access to the full terms of the Project
Gutenberg™ License.

1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.

1.E.7. Do not charge a fee for access to, viewing, displaying,


performing, copying or distributing any Project Gutenberg™ works
unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8. You may charge a reasonable fee for copies of or providing


access to or distributing Project Gutenberg™ electronic works
provided that:

• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”

• You provide a full refund of any money paid by a user who


notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.

• You provide, in accordance with paragraph 1.F.3, a full refund of


any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.

• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.

1.E.9. If you wish to charge a fee or distribute a Project Gutenberg™


electronic work or group of works on different terms than are set
forth in this agreement, you must obtain permission in writing from
the Project Gutenberg Literary Archive Foundation, the manager of
the Project Gutenberg™ trademark. Contact the Foundation as set
forth in Section 3 below.

1.F.

1.F.1. Project Gutenberg volunteers and employees expend


considerable effort to identify, do copyright research on, transcribe
and proofread works not protected by U.S. copyright law in creating
the Project Gutenberg™ collection. Despite these efforts, Project
Gutenberg™ electronic works, and the medium on which they may
be stored, may contain “Defects,” such as, but not limited to,
incomplete, inaccurate or corrupt data, transcription errors, a
copyright or other intellectual property infringement, a defective or
damaged disk or other medium, a computer virus, or computer
codes that damage or cannot be read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for


the “Right of Replacement or Refund” described in paragraph 1.F.3,
the Project Gutenberg Literary Archive Foundation, the owner of the
Project Gutenberg™ trademark, and any other party distributing a
Project Gutenberg™ electronic work under this agreement, disclaim
all liability to you for damages, costs and expenses, including legal
fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR
NEGLIGENCE, STRICT LIABILITY, BREACH OF WARRANTY OR
BREACH OF CONTRACT EXCEPT THOSE PROVIDED IN PARAGRAPH
1.F.3. YOU AGREE THAT THE FOUNDATION, THE TRADEMARK
OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL
NOT BE LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT,
CONSEQUENTIAL, PUNITIVE OR INCIDENTAL DAMAGES EVEN IF
YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you


discover a defect in this electronic work within 90 days of receiving
it, you can receive a refund of the money (if any) you paid for it by
sending a written explanation to the person you received the work
from. If you received the work on a physical medium, you must
return the medium with your written explanation. The person or
entity that provided you with the defective work may elect to provide
a replacement copy in lieu of a refund. If you received the work
electronically, the person or entity providing it to you may choose to
give you a second opportunity to receive the work electronically in
lieu of a refund. If the second copy is also defective, you may
demand a refund in writing without further opportunities to fix the
problem.

1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of damages.
If any disclaimer or limitation set forth in this agreement violates the
law of the state applicable to this agreement, the agreement shall be
interpreted to make the maximum disclaimer or limitation permitted
by the applicable state law. The invalidity or unenforceability of any
provision of this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation,


the trademark owner, any agent or employee of the Foundation,
anyone providing copies of Project Gutenberg™ electronic works in
accordance with this agreement, and any volunteers associated with
the production, promotion and distribution of Project Gutenberg™
electronic works, harmless from all liability, costs and expenses,
including legal fees, that arise directly or indirectly from any of the
following which you do or cause to occur: (a) distribution of this or
any Project Gutenberg™ work, (b) alteration, modification, or
additions or deletions to any Project Gutenberg™ work, and (c) any
Defect you cause.

Section 2. Information about the Mission


of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new computers.
It exists because of the efforts of hundreds of volunteers and
donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the


assistance they need are critical to reaching Project Gutenberg™’s
goals and ensuring that the Project Gutenberg™ collection will
remain freely available for generations to come. In 2001, the Project
Gutenberg Literary Archive Foundation was created to provide a
secure and permanent future for Project Gutenberg™ and future
generations. To learn more about the Project Gutenberg Literary
Archive Foundation and how your efforts and donations can help,
see Sections 3 and 4 and the Foundation information page at
www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-profit
501(c)(3) educational corporation organized under the laws of the
state of Mississippi and granted tax exempt status by the Internal
Revenue Service. The Foundation’s EIN or federal tax identification
number is 64-6221541. Contributions to the Project Gutenberg
Literary Archive Foundation are tax deductible to the full extent
permitted by U.S. federal laws and your state’s laws.

The Foundation’s business office is located at 809 North 1500 West,


Salt Lake City, UT 84116, (801) 596-1887. Email contact links and up
to date contact information can be found at the Foundation’s website
and official page at www.gutenberg.org/contact

Section 4. Information about Donations to


the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission of
increasing the number of public domain and licensed works that can
be freely distributed in machine-readable form accessible by the
widest array of equipment including outdated equipment. Many
small donations ($1 to $5,000) are particularly important to
maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws regulating


charities and charitable donations in all 50 states of the United
States. Compliance requirements are not uniform and it takes a
considerable effort, much paperwork and many fees to meet and
keep up with these requirements. We do not solicit donations in
locations where we have not received written confirmation of
compliance. To SEND DONATIONS or determine the status of
compliance for any particular state visit www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states where


we have not met the solicitation requirements, we know of no
prohibition against accepting unsolicited donations from donors in
such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot make


any statements concerning tax treatment of donations received from
outside the United States. U.S. laws alone swamp our small staff.

Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.

Section 5. General Information About


Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could be
freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose network of
volunteer support.
Project Gutenberg™ eBooks are often created from several printed
editions, all of which are confirmed as not protected by copyright in
the U.S. unless a copyright notice is included. Thus, we do not
necessarily keep eBooks in compliance with any particular paper
edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg Literary
Archive Foundation, how to help produce our new eBooks, and how
to subscribe to our email newsletter to hear about new eBooks.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookfinal.com

You might also like