100% found this document useful (2 votes)
28 views

Instant Download Reactive Programming with JavaScript 1st Edition Jonathan Hayward PDF All Chapters

Jonathan

Uploaded by

dalamamaanni
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
28 views

Instant Download Reactive Programming with JavaScript 1st Edition Jonathan Hayward PDF All Chapters

Jonathan

Uploaded by

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

Get ebook downloads in full at ebookmeta.

com

Reactive Programming with JavaScript 1st Edition


Jonathan Hayward

https://ebookmeta.com/product/reactive-programming-with-
javascript-1st-edition-jonathan-hayward/

OR CLICK BUTTON

DOWNLOAD NOW

Explore and download more ebook at https://ebookmeta.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Programming for Absolute Beginners: Using the JavaScript


Programming Language 1st Edition Jonathan Bartlett

https://ebookmeta.com/product/programming-for-absolute-beginners-
using-the-javascript-programming-language-1st-edition-jonathan-
bartlett/
ebookmeta.com

RxSwift Reactive Programming with Swift Second Edition


Raywenderlich.Com Team

https://ebookmeta.com/product/rxswift-reactive-programming-with-swift-
second-edition-raywenderlich-com-team/

ebookmeta.com

Learning Reactive Programming with Java 8 1st Edition


Nickolay Tsvetinov

https://ebookmeta.com/product/learning-reactive-programming-with-
java-8-1st-edition-nickolay-tsvetinov/

ebookmeta.com

DEAD Box Set 3 Books 7 9 Tw Brown Et El

https://ebookmeta.com/product/dead-box-set-3-books-7-9-tw-brown-et-
el-2/

ebookmeta.com
The Theory and Applications of Iteration Methods 2nd
Edition Argyros

https://ebookmeta.com/product/the-theory-and-applications-of-
iteration-methods-2nd-edition-argyros/

ebookmeta.com

Rockstar Daddy Wilder Rock Book 1 1st Edition Quinn Taryn


Quinn Taryn

https://ebookmeta.com/product/rockstar-daddy-wilder-rock-book-1-1st-
edition-quinn-taryn-quinn-taryn/

ebookmeta.com

Microsoft Azure For Dummies, 2nd Jack Hyman

https://ebookmeta.com/product/microsoft-azure-for-dummies-2nd-jack-
hyman/

ebookmeta.com

Trouble Brews Avery Summer

https://ebookmeta.com/product/trouble-brews-avery-summer/

ebookmeta.com

Beginning 3D Game Assets Development Pipeline: Learn to


Integrate from Maya to Unity Nova Villanueva

https://ebookmeta.com/product/beginning-3d-game-assets-development-
pipeline-learn-to-integrate-from-maya-to-unity-nova-villanueva/

ebookmeta.com
CELPIP Study Guide Reading and Writing Ebook 4th Edition
Paragon

https://ebookmeta.com/product/celpip-study-guide-reading-and-writing-
ebook-4th-edition-paragon/

ebookmeta.com
Reactive Programming with JavaScript
Table of Contents
Reactive Programming with JavaScript
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Introduction and Installation
A 10,000-foot overview
An easier way to handle user interface programming
Programming paradigms
Installing the tools required
Installing Google Chrome
Installing Node.js
Installing the Starter Kit for ReactJS
Summary
2. Core JavaScript
The strict mode
Variables and assignment
Comments
Flow control
A note on values and NaN
Functions
Comments
Loops
Taking a look at ECMAScript 6
Summary
3. Reactive Programming – The Basic Theory
Declarative programming
The war on Heisenbugs
The Flux Architecture
From the pit of despair to the pit of success
Complete UI teardown and rebuild
JavaScript as a Domain-specific Language
The Big-Coffee Notation
Summary
4. Demonstrating Nonfunctional Reactive Programming – A Live Example
The history of a game with multiple ports
The HTML for the web page
Using a content distribution network wherever we can
Some simple styling
A fairly minimal page body
The JavaScript that animates that page
A brief syntax note – Immediately Invoked Function Expression
Variable declaration and initialization
The function used to start or restart the game
The function that creates game levels
Getting our hands dirty with ReactJS classes
Tick-tock, tick-tock – the game's clock ticks
GAME OVER
Summary
5. Learning Functional Programming – The Basics
Custom sort functions – the first example of functional JavaScript and first-
class functions
This leads us to array.filter()
Illusionism, map, reduce, and filter
Fool's gold – extending Array.prototype
Avoiding global pollution
The map, reduce, and filter toolbox – map
The reduce function
The last core tool – filter
An overview of information hiding in JavaScript
Information hiding with JavaScript closures
Summary
6. Functional Reactive Programming – The Basics
A trip down computer folklore's memory lane
Advanced prerequisites for Hello, World!
Distinguishing the features of functional reactive programming
If you learn just one thing...
Learn what you can!
JavaScript as the new bare metal
Summary
7. Not Reinventing the Wheel – Tools for Functional Reactive Programming
ClojureScript
Om
Bacon.js
Brython – a Python browser implementation
Immutable.js – permanent protection from change
Jest – BDD unit testing from Facebook
Implementing the Flux Architecture using Fluxxor
Summary
8. Demonstrating Functional Reactive Programming in JavaScript – A Live
Example, Part I
What we will be attempting in this chapter
This project's first complete component
The render() method
Triggering the actual display for what we have created
Summary
9. Demonstrating Functional Reactive Programming in JavaScript with a Live
Example Part II – A To-do List
Adding a to-do list to our application
Including ReactJS add-ons in our project
Setting the appropriate initial state
Making text editable
Heavy lifting with render()
Inner functions used to render
Building the result table
Rendering our result
Differentiating columns visually
Summary
10. Demonstrating Functional Reactive Programming in JavaScript: A Live
Example Part III – A Calendar
Play it again Sam – an interesting challenge
Classical Hijaxing works well
Built with usability in mind, but there's still room to grow
Plain old JavaScript objects are all you need
Progressive disclosure that starts simply
A render() method can easily delegate
Boring code is better than interesting code!
A simple UI for simply non-recurring entries...
The user can still opt-in for more
Avoiding being clever
Anonymous helper functions may lack pixie dust
How far in the future should we show?
Different stripes for different entry types
Now we're ready to display!
Let's be nice and sort each day in order
Let them use Markdown!
One thing at a time!
The holidays that inspired this calendar
Summary
11. Demonstrating Functional Reactive Programming in JavaScript with a Live
Example Part IV – Adding a Scratchpad and Putting It All Together
Adding a WYSIWYG scratchpad, courtesy CKeditor
Bringing all things together into one web page
This book is about ReactJS, so why use CKeditor?
CKeditor – small free offerings, and small is beautiful
Including CKeditor in our page
Integrating all four subcomponents into one page
Persistence
One detail – persisting the CKeditor state
Summary
12. How It All Fits Together
A review of the terrain covered
Could the Mythical Man-Month have been avoided?
ReactJS is just a view, but what a view!
Programming is fun again!
Summary
The next steps from here
A. A Node.js Kick start
Node.js and INTERCAL
Warning – Node.js and its ecosystem are hot, and hot enough to burn you
badly!
A sample project – a server for our Pragmatometer
Client-side preparations
The server side
Summary
Index
Reactive Programming with JavaScript
Reactive Programming with JavaScript
Copyright © 2015 Packt Publishing All rights reserved. No part of this book
may be reproduced, stored in a retrieval system, or transmitted in any form or by
any means, without the prior written permission of the publisher, except in the
case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy
of the information presented. However, the information contained in this book is
sold without warranty, either express or implied. Neither the author, nor Packt
Publishing, and its dealers and distributors will be held liable for any damages
caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of


the companies and products mentioned in this book by the appropriate use of
capitals. However, Packt Publishing cannot guarantee the accuracy of this
information.

First published: August 2015

Production reference: 1260815

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-78355-855-1

www.packtpub.com
Credits
Author

Jonathan Hayward

Reviewers

Antal Orcsik

Sven A Robbestad

Hibai Unzueta

Commissioning Editor

Kunal Parikh

Acquisition Editor

Manish Nainani

Content Development Editor

Aparna Mitra

Technical Editor

Mohita Vyas

Copy Editors

Vikrant Phadke

Alpha Singh

Ameesha Smith-Green

Project Coordinator

Mary Alex
Mary Alex

Proofreader

Safis Editing

Indexer

Rekha Nair

Graphics

Jason Monteiro

Production Coordinator

Aparna Bhagat

Cover Work

Aparna Bhagat
About the Author
Jonathan Hayward is a polymath with advanced degrees bridging mathematics,
computers (UIUC), theology, and philosophy. He obtained his theology and
philosophy degrees from Cambridge University. He has worked in many areas of
web development, with a site (http://cjsh.name/) for "after hours" titles, and he is
also interested in the human side of computing, including usability/UI/UX. His
most popular work is a piece of poetry at https://cjshayward.com/doxology/. The
faster route to get there is by typing cjsh.name/doxology, and it gets there.
Jonathan has studied many languages, including French, Spanish, Latin, and
Greek. He is currently learning Russian. He has worked on various other books
as well (refer to http://www.amazon.com/s/ref=nb_sb_noss_2?url=search-
alias%3Daps&field-keywords=%22CJS+Hayward%22 to find out more).

I would like to thank my parents, John and Linda; my brothers, Matthew, Joe,
and Kirk; my sisters-in-law, Kristin and Adrien; and my nephews, Jack and
James. I would also like to thank all of the Packt Publishing editorial team,
including a great many who I do not know, but I would like to single out Usha,
Akshay, Neetu, Mohita, and Aparna. They are the editors who left me wishing
we lived next door. Finally, I'd like to thank all those at Facebook for releasing
ReactJS as a framework that is free for the rest of the world.
About the Reviewers
Antal Orcsik is a full-stack web developer from Hungary. He works at Prezi
(https://prezi.com/) as a payment engineer. In the last decade, he worked for
Hungary's biggest real estate catalog site and one of the biggest local weather
portals. Then he joined the fantastic team that created a revolutionary
presentation tool called Prezi to change the way the world shares ideas. During
this time, he gained experience in Scala, Python, and PHP backend environments
as well as JavaScript frontend technologies, while experimenting with various
other fields of the full-stack web development spectrum. Antal is a big fan of
cats, games, science fiction, and hamburgers.

I would like to thank my lovely girlfriend for her support and patience while I
played my part in creating this book.

Sven A Robbestad is a Norwegian open source developer and frequent


conference speaker with more than 20 years of experience of working on the
Web. He is passionate about mobile development and is always ready to talk
about code. Sven is currently employed at TeliaSonera
(http://www.teliasonera.com/) as a technologist.

Hibai Unzueta is a multifaceted builder who was programming and designing


complex systems much before he applied for his first job.

He believes that technology is nothing without technique and technique in turn


needs a solid vision-based foundation. He enjoys territories where different
knowledge areas overlap. Lately, he has been involved in projects of data
visualization and user experience design.

For the past 2 years, he has been researching travel search paradigms and
technology with the intention of launching a new project that is expected to
rethink the way we do travel planning. As a result, he has worn many hats, but
never all of them at once.
www.PacktPub.com
Support files, eBooks, discount offers, and more
For support files and downloads related to your book, please visit
www.PacktPub.com.

Did you know that Packt offers eBook versions of every book published, with
PDF and ePub files available? You can upgrade to the eBook version at
www.PacktPub.com and as a print book customer, you are entitled to a discount
on the eBook copy. Get in touch with us at <service@packtpub.com> for more
details.

At www.PacktPub.com, you can also read a collection of free technical articles,


sign up for a range of free newsletters and receive exclusive discounts and offers
on Packt books and eBooks.

https://www2.packtpub.com/books/subscription/packtlib

Do you need instant solutions to your IT questions? PacktLib is Packt's online


digital book library. Here, you can search, access, and read Packt's entire library
of books.
Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Other documents randomly have
different content
The Project Gutenberg eBook of Inconstancy
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.

Title: Inconstancy

Author: Roger D. Aycock

Illustrator: Leo Summers

Release date: November 22, 2023 [eBook #72203]

Language: English

Original publication: New York, NY: Ziff-Davis Publishing Company,


1961

Credits: Greg Weeks, Mary Meehan and the Online Distributed


Proofreading Team at http://www.pgdp.net

*** START OF THE PROJECT GUTENBERG EBOOK


INCONSTANCY ***
INCONSTANCY

By ROGER DEE

Illustrated by SUMMERS

The trouble with a Martian-Terran romance


is that it has to buck things like tradition.
Up on Mars, when they sing "If you were the only
girl in the world," they really mean it.

[Transcriber's Note: This etext was produced from


Amazing Stories January 1962.
Extensive research did not uncover any evidence that
the U.S. copyright on this publication was renewed.]
His first day on Earth promised to be even worse than Mirrh Yahn y
Cona had feared when he left Yrml Orise y Yrl, his fiancee, to
become Mars' first interplanetary ambassador. The frenetic bustle of
Denver spaceport, his ominous spiriting away through screaming
hordes of spectators, left him bewildered and uneasy.
Alone in the first brief privacy of his Denver Heptagon apartment, he
ideographed a facsimile transmission to Yrml at once. "I long for you
already," he said. "And for the serenity of home. Earthpeople are as
barbarous and mercurial as their weather."
Babelous decades of taped newsreels and video serials should have
prepared him for that inconstancy, but the first-hand reality was
appalling. He would gladly have returned home at once, before
planetary conjunction's end cut him off for two interminable years, but
for the inevitable stumbling-block: Earth had sent an exchange of her
own, and Mirrh Yahn y Cona could not back down without disgracing
his planet as well as himself.
"Write often," he pleaded, in closing. "That I may take comfort in your
steadfast regard even in this simian hurlyburly."
The missive finished, he found time remaining before Ellis, of
Diplomatic, arrived to switch on the multisensory projection of his last
evening with Yrml. The projection had been cubed in a Privileged
Couples nook complete with real plants and hermetically sealed
fountain, and near its close the two of them had sung the traditional
Song of Parting from the ancient Tchulkione Serafi.
Ellis arrived all too soon, trailing an aura of Scotch, diplomatic
enthusiasm and geniality.
"No time to waste," Ellis said briskly. "Little enough of it before you
leave us, and you're going to see Earth from pole to pole. The three
of us begin this evening with a sample of Denver night life."
"Three?"
"Came early to brief you," Ellis said. "Found a guide for you. Can't run
about unescorted, you know."
He answered the door buzzer and admitted a young woman in
evening dress. Rushed from the spaceport in what amounted to
cloak-and-dagger secrecy, Mirrh Yahn y Cona had until now seen
Earthwomen only on video and at indistinguishable distance, and the
sudden appearance of this one in the flesh unnerved him completely.

The girl was small and slender, well under Mirrh Yahn y Cona's
athletic six-foot height. She was warmly and roundly vital with a
stunning abundance of life at which the two-dimensional simulacra of
recorded soap-opera could only hint.
"Miss Leila Anderson," Ellis introduced her. "Member of Diplomatic,
so it's all in the family."
She took the hand that Mirrh Yahn y Cona raised as if to defend
himself.
"I'm to see that you aren't bored to death here among strangers," she
said. "All work and no play isn't good for anyone. Especially," she said
to Ellis, "for one so handsome. I didn't dream he'd look so—"
"So Terran," Ellis finished before she could say so human. "And why
not? We're from the same original stock, separated ages before our
history begins. Martian annals run back for millennia, did you know?
Gold mine of information, settle problems our experts have puzzled
over for centuries."
"I am not truly representative of my people," Mirrh Yahn y Cona said
with some bitterness. "A special case, reared from birth for this
assignment."
The multisensory projector swung into the Tchulkione Serafi's Song of
Parting. Mirrh Yahn y Cona's resonant baritone, operatically assertive
above Yrml's reedy soprano, filled the room. He shut off the machine
abruptly, feeling a sense of desecration that the tender scene had
been bared to alien eyes.
Still he felt a puzzling premonitory twinge of guilt when the projection
collapsed. Yrml had been infinitely desirable when the sequence was
cubed; why should she now seem so sallow and angular, so suddenly
and subtly distant?
"Remarkable voice," Ellis said. "You could make a fortune with it
here."
"It was lovely," Leila Anderson said. "Could I hear the rest of it some
time?"
"No." He realized his curtness and added, "It is the Song of Parting
for lovers. Very personal."
He found that he was still holding Leila's hand, and dropped it hastily.
Ellis, who had risen high in Diplomatic for good reasons, stepped
competently into the breach.
"Night duty calls," Ellis said. "Let's be off."

A diplomatic limousine without insignia took them to a nightclub large


enough, and dim enough, to promise anonymity. On the way a quick
summer shower left the streets wet and glistening and turned the
night into a many-scented freshness that was sheer fantasy to one
accustomed to the sterile air of sealed underground ways.
The rain had ended when they left the car, but the brief moment
outside, under a vast openness of night sky empty except for
dispersing clouds and speeding white moon, struck Mirrh Yahn y
Cona suddenly cold with too-familiar panic.
They had found their table before anyone spoke.
"Agoraphobia?" Ellis said, in frowning concern. "I should think you'd
be conditioned against that, with all the time they've had to prepare
you."
Leila Anderson put an impulsive hand on the Martian's.
"I'm a touch claustrophobic, so I know how it must be." She shivered.
"To be buried under all those tons and tons of—"
"Immurement is security," Mirrh Yahn y Cona said. "The ultimate
stability."
"You'll get acclimatized," Ellis said. "It takes time."
He broke off to peer through the gloom beyond the dance floor.
"Good Lord, there's Ryerson of the Post, camera and all. If he
recognizes me he'll know who Mirrh is and—"
"Yahn," Mirrh Yahn y Cona corrected automatically. "With us the
second name is impersonal. First is used only by loved ones."
"Yahn, then," Ellis said. "If Ryerson tumbles, he'll want pictures and
an interview. Yahn will be lionized before he's ready. Can't publicize
him until he knows the ropes."
"You'd better skip," Leila said. "If we all go, he'll spot us for sure."
"Right." Ellis shoved some money at Leila. "Call me at my office when
it's safe."
When Ellis had gone and their waiter had brought drinks, they faced
each other across the table, Yahn visibly on guard and Leila with the
beginning of speculation in her eyes.
"Maybe it's better like this, without protocol," she said. "Yahn, can you
—do you dance in our gravity?"
He was bitter again. "Remember my training. I am taller, stronger and
more freakishly agile than any Martian—including my fiancee—has
been for thousands of years."
Her clear look made him ashamed and he added, "With us the dance
is an art form only. Here the intent seems different."
"It is," Leila said almost grimly. "Finish your drink, Buster. You're going
to need it."

He needed several before the evening was finished. The Terran


dance in its limited variations offered small challenge; Yahn mastered
it with an ease that delighted Leila and brought tacit envy from other
couples. The cocktails may have contributed to his own mixed
reactions, lending primitive tactility to Leila's pliant response.
Neither of them, when Ryerson of the Post went away with his
camera, considered calling Ellis.
"I don't often enjoy my work so much," Leila said. "Let's not spoil the
evening with diplomacy, shall we?"
They left the Diplomatic vehicle for Ellis, rented an agency car and
drove through the charged serenity of the night into the mountains.
They talked the Moon down and the Sun up. Nothing took place that
might have shocked a reasonably tolerant duenna, but by dawn they
had reached the sort of understanding that comes spontaneously or
not at all.
"The biologists who tailored me to Terrestrial standards," Yahn said,
"did their work too well. I find myself more Terran than Martian."
The immovable obstacle, of course, was Yahn's obligation to Yrml,
who would be waiting with enduring Martian patience for his return.
Leila went into that matter later with Ellis, not so much to enlist his
dubious sympathies as to clarify the bristly problem in her own
troubled mind.
"Martians use our broadcasts as a standard of judgment," Leila said.
"And you know where that leads. The more prominent the people in
the newscasts, the higher the divorce rate. The more popular a video
serial, the greater its emotional shilly-shallying. To Martians we're the
last word in fickleness."
"I know," Ellis agreed. "Our cultural geometry was always triangular."
"Exactly. So how can Mirrh-Yahn break the news to his dry little
fiancee back home? We're accustomed to inconstancy and to
incontinence. We sing corny songs about girls who write jilting letters
to their men in service. Our opera flaunts Perkinses and Mesdames
Butterfly, and the fact that we enjoy them shocks the ascetic pants off
the Martians. Did you know that their population control quota
demands a strictly equal sex-ratio, so that there's never more than
one boy for one girl from the beginning? Mirrh-Yahn simply hasn't it in
him to leave Yrml dangling. He'd feel a renegade for the rest of his
life."
"Mirrh-Yahn," Ellis noted. "Obviously he's willing enough, if you're on
a first-name footing."
"I can't call him Yahn any longer, like a stranger. Mirrh-Yahn is a
compromise."
Ellis rummaged in his desk and brought out a personnel folder.
"Dossier on J. Frederic Thomas, our young man on Mars. Maybe we
can turn up an angle through him."
The exchange ambassador's folder was neither interesting nor
helpful. J. Frederic Thomas stood revealed as a dwarfish scholastic
type, complete with massive glasses and receding hairline.
"He looks more Martian than Terran," Leila said. "Is that deliberate?"
"Mars sent us a man specially bred to fit into our culture, didn't they?
Simple job here to turn up a Martian type. Matter of fact, J. F.'s
reports show he fits in up there like a native."
"Check with him, then," Leila said. "Though I can't imagine what help
we can expect from a wizened little stick like that."

Leila was wrong. J. Frederic Thomas—who quite predictably, being


paired off with the only unattached female on Mars as his cicerone,
had immediately found himself caught in the same thorny dilemma
that gouged his opposite number on Earth—was eager to help. The
result of Ellis' inquiry was a swift letter from Yrml Orise y Yrl to Mirrh
Yahn y Cona; a letter which Ellis turned over in duplicate, one in
Martian ideograph, the other a translation, to Leila.
It broke Yrml's engagement to Yahn for the excellent reasons that J.
Frederic Thomas was not only more Martian in physique and
deportment, but also possessed a fine reedy tenor which blended
ever so better with Yrml's soprano in the less poignant duets from the
Tchulkione Serafi.
"The man never lived," Ellis pointed out, "Martian or Terran, no matter
how relieved he might be, whose ego wouldn't need attention after a
letter beginning Dear Yahn. Shall I let it go on through the mails, or
will you—"
Leila answered him on her way out. "Don't bother," she said.

THE END
*** END OF THE PROJECT GUTENBERG EBOOK INCONSTANCY
***

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

You might also like