100% found this document useful (4 votes)
1K views

Get JavaScript Design Patterns 1 / Converted Edition Hugo Di Francesco PDF Ebook With Full Chapters Now

Design

Uploaded by

chayedrugz
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (4 votes)
1K views

Get JavaScript Design Patterns 1 / Converted Edition Hugo Di Francesco PDF Ebook With Full Chapters Now

Design

Uploaded by

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

Download the full version of the textbook now at textbookfull.

com

JavaScript Design Patterns 1 / converted


Edition Hugo Di Francesco

https://textbookfull.com/product/javascript-
design-patterns-1-converted-edition-hugo-di-
francesco/

Explore and download more textbook at https://textbookfull.com


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

MASTERING JAVASCRIPT DESIGN PATTERNS create scalable and


reliable applications with advanced Javascript design
patterns using reliable code 3rd Edition Tomas Corral
Cosas
https://textbookfull.com/product/mastering-javascript-design-patterns-
create-scalable-and-reliable-applications-with-advanced-javascript-
design-patterns-using-reliable-code-3rd-edition-tomas-corral-cosas/
textbookfull.com

JavaScript Patterns Build Better Applications with Coding


and Design Patterns 1st Edition Stefanov Stoyan

https://textbookfull.com/product/javascript-patterns-build-better-
applications-with-coding-and-design-patterns-1st-edition-stefanov-
stoyan/
textbookfull.com

Learning OpenTelemetry 1 / converted Edition Ted Young

https://textbookfull.com/product/learning-opentelemetry-1-converted-
edition-ted-young/

textbookfull.com

The Political Anatomy of Domination 1st Edition Béatrice


Hibou (Auth.)

https://textbookfull.com/product/the-political-anatomy-of-
domination-1st-edition-beatrice-hibou-auth/

textbookfull.com
Socio cultural Inspired Metaheuristics Anand J. Kulkarni

https://textbookfull.com/product/socio-cultural-inspired-
metaheuristics-anand-j-kulkarni/

textbookfull.com

The Ottomans and the Mamluks Imperial Diplomacy and


Warfare in the Islamic World Muslu

https://textbookfull.com/product/the-ottomans-and-the-mamluks-
imperial-diplomacy-and-warfare-in-the-islamic-world-muslu/

textbookfull.com

Mathematical Statistics 1st Edition Dieter Rasch

https://textbookfull.com/product/mathematical-statistics-1st-edition-
dieter-rasch/

textbookfull.com

Oswaal CBSE Question Bank Class 12 Biology Chapterwise


Topicwise For March 2020 Exam Oswaal Editorial Board

https://textbookfull.com/product/oswaal-cbse-question-bank-
class-12-biology-chapterwise-topicwise-for-march-2020-exam-oswaal-
editorial-board/
textbookfull.com

Make Me A Daddy 1st Edition M K Moore

https://textbookfull.com/product/make-me-a-daddy-1st-edition-m-k-
moore/

textbookfull.com
The Psychology of Humor An Integrative Approach Rod A.
Martin

https://textbookfull.com/product/the-psychology-of-humor-an-
integrative-approach-rod-a-martin/

textbookfull.com
JavaScript Design Patterns
Copyright © 2024 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 or its dealers and distributors, will be held liable for
any damages caused or alleged to have been 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.

Group Product Manager: Rohit Rajkumar

Publishing Product Manager: Kushal Dave

Senior Content Development Editor: Feza Shaikh

Technical Editor: Simran Udasi

Copy Editor: Safis Editing

Project Coordinator: Aishwarya Mohan

Indexer: Subalakshmi Govindhan

Production Designer: Jyoti Kadam

Marketing Coordinators: Nivedita Pandey and Anamika Singh

First published: March 2024

Production reference: 1150224


Published by Packt Publishing Ltd.

Grosvenor House

11 St Paul’s Square

Birmingham

B3 1RB, UK

ISBN 978-1-80461-227-9

www.packtpub.com
To my wife, Amalia, for being my first supporter in all my endeavors. To my daughter, Zoë, for
making me want to show that the impossible sometimes is.
– Hugo Di Francesco

Contributors

About the author


Hugo Di Francesco is a software engineer who has worked extensively with JavaScript. He holds an
MEng degree in mathematical computation from University College London (UCL). He has used
JavaScript across the stack to create scalable and performant platforms at companies such as Canon
and Elsevier, and in industries such as print on demand and mindfulness. He is currently tackling
problems in the travel industry at Eurostar with Node.js, TypeScript, React, and Kubernetes, while
running the eponymous Code with Hugo website. Outside of work, he is an international fencer, in
the pursuit of which he trains and competes across the globe.
I want to thank all the people who have supported me in my life and writing journey,
particularly my wife Amalia, and my family.

About the reviewers


Dr. Murugavel, a distinguished and versatile educator in the realms of computer science engineering
and information technology. With over 13 years of enriching experience at renowned universities and
an additional 8+ years dedicated to the dynamic field of data analytics, Dr. Murugavel stands as a
beacon of expertise at the intersection of academia and technology.

His journey is marked by successive achievements, particularly in handling core subjects and
programming languages, with a keen emphasis on practical knowledge. As a mentor and guide for
major projects, Dr. Murugavel actively engages in groundbreaking research within his specialized
field. His commitment to bridging theory and application has made him a valuable resource for
students and researchers alike.

His technical proficiency extends across a spectrum of disciplines. He is well-versed in full stack web
development, SQL, data analytics, Python, and BI tools, showcasing theoretical knowledge and a
hands-on understanding of these technologies. His extensive portfolio includes the development of
numerous applications using JSP, ASP, and ASP.NET, reflecting his prowess in both frontend and
backend development.

In the realm of databases, he demonstrates versatility across MS-SQL Server, MySQL, MongoDB,
Django, MS Access, Oracle, and FoxPro. His proficiency in various Integrated Development
Environments (IDEs) and tools such as Anaconda, Visual Studio, GitHub, JBuilder, JCreator,
MATLAB, Sublime 3, and Adobe Dreamweaver further solidifies his standing in the technological
landscape.

In the realm of data science and Business Intelligence (BI) tools, his skills are extensive,
encompassing PowerBI, DAX, VBA Macros for Excel, SSAS, and SSIS. His ability to harness these
tools illuminates the path to insightful data analysis and visualization.

Shubham Thakur, a dynamic senior software engineer (A3 grade) at EPAM, specializes in
technologies such as JavaScript, Angular, Next.js, Node, MySQL, MongoDB, AWS Cloud, and IoT.
His expertise in these domains has significantly contributed to his project successes. He expresses
deep gratitude to Priya for her unwavering love and to his brother, Yash, for his constant support.
Shubham also acknowledges the profound impact of his mentors, Avnish Aggarwal, Yogesh
Dhandekar, and Amit Jain, whose guidance has been instrumental in shaping his professional
journey. Their mentorship has not only honed his technical skills but also enriched his approach to
complex problem-solving in the tech industry.
Table of Contents

Preface
Part 1: Design Patterns

Working with Creational Design Patterns


What are creational design patterns?
Implementing the prototype pattern in JavaScript
Implementation
A use case
The singleton pattern with eager and lazy initialization in
JavaScript
Implementation
Use cases
Improvements with the “class singleton” pattern
A singleton without class fields using ES module behavior
The factory pattern in JavaScript
Implementation
Use cases
Improvements with modern JavaScript
Summary

Implementing Structural Design Patterns


Technical requirements
What are structural design patterns?
Implementing the Proxy pattern with Proxy and Reflect
A redaction proxy implementation
Use cases
Improving the proxy pattern in JavaScript with the Proxy and
Reflect global objects
Decorator in JavaScript
Implementation
Use cases
Improvements/limitations
Flyweight in JavaScript
Implementation
Use cases
Improvements/limitations
Adapter in JavaScript
Use cases
Improvements/limitations
Summary

Leveraging Behavioral Design Patterns


Technical requirements
What are behavioral design patterns?
The observer pattern in JavaScript
Implementation
Use cases of the observer pattern
Limitations and improvements
State and strategy in JavaScript and a simplified approach
Implementation
Use cases of the state and strategy patterns
Limitations and improvements
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Visitor in JavaScript
Implementation
Use cases of the visitor pattern
Summary
Part 2: Architecture and UI Patterns

Exploring Reactive View Library Patterns


Technical requirements
What are reactive view library patterns?
The render prop pattern
Use cases
Implementation/example
Limitations
The higher-order component pattern
Implementation/example
Use cases
Limitations
The hooks pattern
An implementation/example
Use cases
Limitations
The provider pattern
Use case – the prop drilling problem
An implementation/example
Limitations
Summary

Rendering Strategies and Page Hydration


Technical requirements
Client and server rendering with React
Client-side rendering in React
Server rendering in React
Trade-offs between client and server rendering
Static rendering with Next.js
Automatic static generation
Static generation with a third-party data source
Static generation with dynamic paths
Page hydration strategies
Common React rehydration issues
React streaming server-side rendering
Summary

Micro Frontends, Zones, and Islands Architectures


Technical requirements
An overview of micro frontends
Key benefits
“Classic” micro frontend patterns
Other concerns in a micro frontend world
Composing applications with Next.js “zones”
Root app
Adding a /search app
Adding /checkout app
The benefits/supporting team scaling
The drawbacks of Next.js zones
Scaling performance-sensitive pages with the “islands”
architecture
Islands setup with is-land
Product island
Cart island
A related products island
Scaling with a team – bundling islands
Drawbacks
Summary
Part 3: Performance and Security Patterns

Asynchronous Programming Performance Patterns


Technical requirements
Controlling sequential asynchronous operations with
async/await and Promises
Parallel asynchronous operation patterns
Asynchronous cancellation and timeouts with AbortController
Throttling, debouncing, and batching asynchronous operations
Summary

Event-Driven Programming Patterns


Technical requirements
Optimizing event listeners through event delegation
Patterns for secure frame/native WebView bridge messaging
Event listener performance antipatterns
Summary

Maximizing Performance – Lazy Loading and Code


Splitting
Technical requirements
Dynamic imports and code splitting with Vite
Route-based code splitting and bundling
Loading JavaScript on element visibility and interaction
Summary

10

Asset Loading Strategies and Executing Code off the


Main Thread
Technical requirements
Asset loading optimization – async, defer, preconnect, preload,
and prefetch
Using Next.js Script’s strategy option to optimize asset loading
Loading and running scripts in a worker thread
Summary

Index

Other Books You May Enjoy


Preface
Welcome! JavaScript design patterns are techniques that allow us to write more robust, scalable, and
extensible applications in JavaScript. JavaScript is the main programming language available in web
browsers and is one of the most popular programming languages with support beyond browsers.

Design patterns are solutions to common problems that can be reused. The most-written-about design
patterns come from the world of object-oriented programming.

JavaScript’s attributes as a lightweight, multi-paradigm, dynamic, single-threaded language give it


different strengths and weaknesses to other mainstream programming languages. It’s common for
software engineers to use JavaScript in addition to being well versed in a different programming
language. JavaScript’s different gearing means that implementing design patterns verbatim can lead
to non-idiomatic and under-performing JavaScript applications.

There are many resources on JavaScript and design patterns, but this book provides a cohesive and
comprehensive view of design patterns in modern (ECMAScript 6+) JavaScript with real-world
examples of how to deploy them in a professional setting. In addition to this complete library of
patterns to apply to projects, this book also provides an overview of how to structure different parts
of an application to deliver high performance at scale.

In this book, you will be provided with up-to-date guidance through the world of modern JavaScript
patterns based on nine years of experience building and deploying JavaScript and React applications
at scale at companies such as Elsevier, Canon, and Eurostar, delivering multiple system evolutions,
performance projects, and a next-generation frontend application architecture.
Who this book is for
This book is for developers and software architects who want to leverage JavaScript and the web
platform to increase productivity, software quality, and the performance of their applications.

Familiarity with software design patterns would be a plus but is not required.

The three main challenges faced by developers and architects who are the target audience of this
content are as follows:
They are familiar with programming concepts but not how to effectively implement them in JavaScript

They want to structure JavaScript code and applications in a way that is maintainable and extensible

They want to deliver more performance to the users of their JavaScript applications
What this book covers
Chapter 1, Working with Creational Design Patterns, covers creational design patterns, which help to
organize object creation. We’ll look at implementing the prototype, singleton, and factory patterns in
JavaScript.

Chapter 2, Implementing Structural Design Patterns, looks at structural design patterns, which help
to organize relationships between entities. We’ll implement the proxy, decorator, flyweight, and
adapter patterns in JavaScript.

Chapter 3, Leveraging Behavioral Design Patterns, delves into behavioral design patterns, which
help to organize communication between objects. We’ll learn about the observer, state, strategy, and
visitor patterns in JavaScript.

Chapter 4, Exploring Reactive View Library Patterns, explores reactive view libraries, such as React,
which have taken over the JavaScript application landscape. With these libraries come new patterns
to explore, implement, and contrast.

Chapter 5, Rendering Strategies and Page Hydration, takes a look at optimizing page performance,
which is a key concern nowadays. It’s a concern both for improving the on-page conversion of
customers and search engine optimization, since search engines such as Google take core web vitals
into account.

Chapter 6, Micro Frontends, Zones, and Islands Architectures, explores micro frontends. Akin to the
microservices movement in the service tier, micro frontends are designed to split a large surface area
into smaller chunks that can be worked on and delivered at higher velocity.

Chapter 7, Asynchronous Programming Performance Patterns, looks at how JavaScript’s single-


threaded event-loop-based concurrency model is one of its greatest strengths but is often
misunderstood or under-leveraged in performance-sensitive situations. Writing asynchronous-
handling code in JavaScript in a performant and extensible manner is key to delivering a smooth user
experience at scale.

Chapter 8, Event-Driven Programming Patterns, explores how event-driven programming in


JavaScript is of paramount importance in security-sensitive applications as it is a way to pass
information from and to different web contexts. Event-driven applications can often be optimized to
enable better performance and scalability.

Chapter 9, Maximizing Performance – Lazy Loading and Code Splitting, deals with how, in order to
maximize the performance of a JavaScript application, reducing the amount of unused JavaScript
being loaded and interpreted is key. The techniques that can be brought to bear on this problem are
called lazy loading and code splitting.

Chapter 10, Asset-Loading Strategies and Executing Code off the Main Thread, looks at how there
are situations in the lifecycle of an application where loading more JavaScript or assets is inevitable.
You will learn about asset-loading optimizations in the specific case of JavaScript, as well as other
web resources, and finally how to execute JavaScript off the main browser thread.

To get the most out of this book


You will need to have prior experience with JavaScript and developing for the web. Some of the
more advanced topics in the book will be of interest to developers with intermediate experience in
building for the web with JavaScript.

Software/hardware covered in the book Operating system requirements

Node.js 20+ Windows, macOS, or Linux

NPM v8+ Windows, macOS, or Linux

ECMAScript 6+ Windows, macOS, or Linux

React v16+ Windows, macOS, or Linux

Next.js Windows, macOS, or Linux

If you are using the digital version of this book, we advise you to type the code yourself or
access the code from the book’s GitHub repository (a link is available in the next section).
Doing so will help you avoid any potential errors related to the copying and pasting of code.

Download the example code files


You can download the example code files for this book from GitHub at
https://github.com/PacktPublishing/JavaScript-Design-Patterns. If there’s an update to the code, it
will be updated in the GitHub repository.

We also have other code bundles from our rich catalog of books and videos available at
https://github.com/PacktPublishing/. Check them out!
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Conventions used
There are a number of text conventions used throughout this book.

Code in text: Indicates code words in text, database table names, folder names, filenames, file
extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: “ In order
to make the code easier to follow, we’ll switch on the lowercased version of tagName.”

A block of code is set as follows:

<script>
// handle receiving messages from iframe -> parent
const allowedMessageOrigins = ['http://127.0.0.1:8000'];
window.addEventListener('message', (event) => {
if (!allowedMessageOrigins.includes(event.origin)) {
console.warn(
`Dropping message due to non-allowlisted origin ${event.origin}`,
event,
);
return;
}
// no change to the rest of the message handler
});
</script>

Bold: Indicates a new term, an important word, or words that you see onscreen. For instance, words
in menus or dialog boxes appear in bold. Here is an example: “When opening the select, things seem
to work ok, we’re seeing the Fruit: prefix for all the options.”

TIPS OR IMPORTANT NOTES


Appear like this.

Get in touch
Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book, email us at
[email protected] and mention the book title in the subject of your message.

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do
happen. If you have found a mistake in this book, we would be grateful if you would report this to us.
Please visit www.packtpub.com/support/errata and fill in the form.

Piracy: If you come across any illegal copies of our works in any form on the internet, we would be
grateful if you would provide us with the location address or website name. Please contact us at
[email protected] with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in and you
are interested in either writing or contributing to a book, please visit authors.packtpub.com.

Share Your Thoughts


Once you’ve read JavaScript Design Patterns, we’d love to hear your thoughts! Please click here to
go straight to the Amazon review pagefor this book and share your feedback.

Your review is important to us and the tech community and will help us make sure we’re delivering
excellent quality content.

Download a free PDF copy of this book


Thanks for purchasing this book!

Do you like to read on the go but are unable to carry your print books everywhere?

Is your eBook purchase not compatible with the device of your choice?

Don’t worry, now with every Packt book you get a DRM-free PDF version of that book at no cost.

Read anywhere, any place, on any device. Search, copy, and paste code from your favorite technical
books directly into your application.

The perks don’t stop there, you can get exclusive access to discounts, newsletters, and great free
content in your inbox daily

Follow these simple steps to get the benefits:


1. Scan the QR code or visit the link below

https://packt.link/free-ebook/978-1-80461-227-9

2. Submit your proof of purchase

3. That’s it! We’ll send your free PDF and other benefits to your email directly
Part 1:Design Patterns
In this part, you will get an overview of design patterns and how they can be implemented effectively
in modern JavaScript. You will learn how and when to implement creational, structural, and
behavioral design patterns in the “classical” object-oriented way and how modern JavaScript features
can be used to make this implementation more idiomatic to the language. Finally, you’ll see real-
world examples of design patterns being applied in the JavaScript ecosystem, thereby learning how to
recognize them.

This part has the following chapters:


Chapter 1, Working with Creational Design Patterns

Chapter 2, Implementing Structural Design Patterns

Chapter 3, Leveraging Behavioral Design Patterns


1

Working with Creational Design Patterns


JavaScript design patterns are techniques that allow us to write more robust, scalable, and extensible
applications in JavaScript. JavaScript is a very popular programming language, in part due to its
place as a way to deliver interactive functionality on web pages. The other reason for its popularity is
JavaScript’s lightweight, dynamic, multi-paradigm nature, which means that design patterns from
other ecosystems can be adapted to take advantage of JavaScript’s strengths. JavaScript’s specific
strengths and weaknesses can also inform new patterns specific to the language and the contexts in
which it’s used.

Creational design patterns give structure to object creation, which enables the development of
systems and applications where different modules, classes, and objects don’t need to know how to
create instances of each other. The design patterns most relevant to JavaScript – the prototype,
singleton, and factory patterns – will be explored, as well as situations where they’re helpful and how
to implement them in an idiomatic fashion.

We’ll cover the following topics in this chapter:


A comprehensive definition of creational design patterns and definitions for the prototype, singleton, and factory patterns

Multiple implementations of the prototype pattern and its use cases

An implementation of the singleton design pattern, eager and lazy initialization, use cases for singleton, and what a singleton
pattern in modern JavaScript looks like

How to implement the factory pattern using classes, a modern JavaScript alternative, and use cases

By the end of this chapter, you’ll be able to identify when a creational design pattern is useful and
make an informed decision on which of its multiple implementations to use, ranging from a more
idiomatic JavaScript form to a classical form.

What are creational design patterns?


Creational design patterns handle object creation. They allow a consumer to create object instances
without knowing the details of how to instantiate the object. Since, in object-oriented languages,
instantiation of objects is limited to a class’s constructor, allowing object instances to be created
without calling the constructor is useful to reduce noise and tight coupling between the consumer and
the class being instantiated.
In JavaScript, there’s ambiguity when we discuss “object creation,” since JavaScript’s multi-
paradigm nature means we can create objects without a class or a constructor. For example, in
JavaScript this is an object creation using an object literal – const config = { forceUpdate: true }.

In fact, modern idiomatic JavaScript tends to lean more toward procedural and function paradigms
than object orientation. This means that creational design patterns may have to be adapted to be fully
useful in JavaScript.

In summary, creational design patterns are useful in object-oriented JavaScript, since they hide
instantiation details from consumers, which keeps coupling low, thereby allowing better module
separation.

In the next section, we’ll encounter our first creational design pattern – the prototype design pattern.

Implementing the prototype pattern in JavaScript


Let’s start with a definition of the prototype pattern first.

The prototype design pattern allows us to create an instance based on another existing instance (our
prototype).

In more formal terms, a prototype class exposes a clone() method. Consuming code, instead of
calling new SomeClass, will call new SomeClassPrototype(someClassInstance).clone(). This method
call will return a new SomeClass instance with all the values copied from someClassInstance.

Implementation
Let’s imagine a scenario where we’re building a chessboard. There are two key types of squares –
white and black. In addition to this information, each square contains information such as its row,
file, and which piece sits atop it.

A BoardSquare class constructor might look like the following:

class BoardSquare {
constructor(color, row, file, startingPiece) {
this.color = color;
this.row = row;
this.file = file;
}
}

A set of useful methods on BoardSquare might be occupySquare and clearSquare, as follows:

class BoardSquare {
// no change to the rest of the class
occupySquare(piece) {
Random documents with unrelated
content Scribd suggests to you:
“Pansies for thought, sleep as you ought,
Sleep, but awake for your true lover’s sake,”

Mary repeated as she did this; it was the incantation of her


childhood.
Florimel took up the dahlias. The girls had early recognized their
own types, and had distributed tasks accordingly. Florimel’s dark,
vigorous beauty was suited to dahlias as well as Mary’s quiet
loveliness harmonized with pansies. With the dahlia bulbs Florimel
executed a solo march, formal steps and courtly gestures its ritual.
So the morning went on, filled with work, but work brightened to
play, and elevated close to poetry by all sorts of curious fancies.
Mary, Jane, and Florimel were serious, almost reverent in their
fantastic ceremonies. Though they were almost grown up, the
association of these things with childish faith made the day and its
events to them something between fantasy and reality.
Mrs. Garden watched them, participating in what they did, as far
as she was able, with the keenest enjoyment and no less wonder.
This curious day brought her into touch with her children’s lost
childhood. She realized what clever little beings they had been,
developing in their own way, set apart by their father’s theories of
education. The pang with which she realized this, her pride in them
and regret for the days in which she had been separated from them,
days never to be recovered, showed her how far she had travelled
from the old Lynette Devon, whose joy had been the public; how far
toward Lynette Garden, whose increasing joy was in being her
beautiful and gifted children’s mother.
Joel Bell was an amazed witness of the Slumber Day ceremonies.
What they represented he could not imagine; why “great girls like
these should carry on so” he could still less imagine. He wheeled
barrowloads of straw and leaves, dug and tied and trenched, with
unvarying gravity, but his pitying disapproval peeped forth.
Noon afforded the first moment when conversation was possible.
One of the unwritten laws of Slumber Day was that no talking was
allowed; participants in ceremonies are not supposed to converse
while they are going on. Joel availed himself of this interlude.
“Say, Mis’ Garden,” he began, “about that nus’ry you was thinkin’
of foundin’. Seem’s if it couldn’t hardly be, ’thout they was a widder,
or some such woman, ready to let the children be dumped with her.
Who’d look after ’em?”
“We were saying just that, Bell,” said Mrs. Garden. “My daughters
thought we could find such a person, but so far none has been
suggested. Do you know one?”
Joel Bell shook his head. “Fact, I don’t,” he said. “I spoke to one
woman, but she quick showed she thought I meant her to take Mis’
Bell’s place, my wife’s, you know, or else she meant to take it. I
didn’t wait to find out which; either way my safety laid in flight, an’ I
flew.”
In spite of themselves the girls burst out laughing at this.
“Don’t you laugh, girls,” said Joel, with deeper seriousness.
“There’s been many a unfort’nate man married before this because
he hadn’t the ready money, nor yet the courage to go to law to
prove he had no notion of takin’ a woman who ran him down like a
hunted deer. It’s a dreadful thing when a woman that’s at all set
picks out some man to marry him! Matrimony is seriouser, anyway,
than girls like you thinks, an’ I believe it’s the dooty of older folks to
try to make the younger generation sense that.”
Mrs. Garden could never accommodate herself to the American
freedom of speech on the part of those whom she employed. “Such
awfully bad manners!” she said in her most English accent, when her
disapproval was not more severe. Now she turned toward the house.
“Anne must have called us, my dears,” she said. “Very well, Bell; we
will try to find a matron for our Day Nursery.”
At the house Anne met them. “I called, but you did not hear, Mrs.
Garden,” she said. “Lunch is nearly ready. Jane, Florimel, there is the
strangest person waiting to see you. She came some twenty minutes
ago, but would not let me disturb you. She would not give her name.
She said she wanted to see one of the Garden girls, ‘the one with
red hair,’ she said, or a younger one with black hair, but the red-
haired one she would rather see. She is fearfully frowsy; light hair, I
truly think it is bleached, but maybe not. She is in mourning, yet she
has on a good deal of queer jewellery and a white voile waist, all
covered with coarse machine embroidery. She is a queer person,
Jane, altogether. What can she want of you?”
“I’ve no idea, Anne; can’t imagine who she is,” Jane began, but
Florimel said:
“I can! It’s Miss Alyssa Aldine, and somebody’s died.”
“Oh, Florimel!” Jane remonstrated. She did not like to remember
that she had sought Miss Aldine—Mrs. Peter Mivle—to ask advice as
to her career. Nevertheless, Jane hastened to the library, not waiting
to alter her costume, instantly sure that Florimel was right, and that
it was Miss Aldine whom she should find waiting for her.
Florimel was right. Miss Aldine, quite as blowsy in her mourning as
she had been in her pink wrapper, arose to meet Jane as she
entered, followed close by Florimel.
“How are you, my dears?” she said. “I don’t suppose you
remember me.”
“Surely we do,” said Jane, putting out her hand with a sudden
cordiality. She saw that Mrs. Mivle looked a great deal older, and sad
and worn, and, Jane-like, was moved to welcome her. “Surely we
remember you, Mrs. Mivle. You were very nice to me when I was so
silly as to bother you.”
“No trouble at all,” said Mrs. Mivle, tears springing to her eyes.
“You were an awfully pretty pair to drop into a body’s room so
unexpected. It does a body good to see girls like you. And now you
don’t call me Miss Aldine, but you give me my sainted Petey’s name.
I suppose you saw by the papers my loss?”
“No, we haven’t seen,” said Jane, feeling her way. “I noticed you
were in mourning. It isn’t—you don’t mean——”
“Yes, I do!” sobbed Mrs. Mivle. “My blessed Petey took sick, and
before we knew he was more’n kind of off his feed, you might say,
he was past all hope—appendicitis! Ain’t it awful? Sydney Fleming—
you remember, his stage name, that was?—was simply great in the
lead, could do anything. We acted together like we were made for it.
And it’s my belief we were. Things come out like that in this world,
once in a while; folks sent into it to be with certain other folks, for
work and pleasure. And say, we were happy, honest! Petey and me
got on when we was in private life just like the leading lady and her
support does in the slickest plays. It’s broke me up something fierce
to lose him. See, I’m wearing his ring! I won’t part with it while I can
hold it, but I’m down on my luck. Comp’ny burst up, couldn’t get a
leading man fit to take Pete’s place, I was all in; couldn’t do justice
to my repertoire, we played to poor houses, manager was up against
it; sorry for me, sorry Pete died, but sorry for himself when he run
behind. He had to shut down, and it took pretty much every cent I
had to get home; we was playin’ the State of Washington when the
end come. So I don’t know how long I’ll be keeping poor blessed
Petey’s ring.”
The poor creature, kind and honest, though grotesque and slangy,
pulled off her shabby glove and displayed the huge diamond, of
yellowish cast, which Jane and Florimel remembered on her lost
“Petey’s” hand.
“Oh, I’m so sorry!” murmured Jane. “I’m truly sorry. Not that it
does you any good. What will you do?”
“My dear, that’s exactly what I’ve come to ask you,” returned Mrs.
Mivle earnestly. “You come once to ask my advice. Says I to myself, I
believe I’ll go hunt up that little handsome red-haired girl, and her
little beauty black-haired sister, and ask them to find me a job. I
haven’t one friend outside the perfession. I’ve gotter go to work at
some ordinary job. My acting days are over. Not an act left in me;
haven’t the heart. Do you suppose I could act Lady of Lyons with
another playing Claude Melnotte in Petey’s place? Not on your life!
Do you think there’d be anything for me to do here in Vineclad?
There often is work, and few to do it, in one-night-stand kind of
towns—I beg your pardon! It’s a real nice place, but you’ve got to
admit it’s small and slow! You can ask any one about me. There isn’t
a thing to be said of me I wouldn’t just as lieves as not was said. I’m
honest, if I do say it, and I’m good natured. Pete always said any
one had a cinch keeping his temper living with me. I’d do anything I
could do; no pride left in me. All my pride was perfesh’nal, and, as I
say, my acting days is over, with Petey’s life. Get me a job at
anything, there’s a dear child! I’ll do my best, though, to tell the
truth, I wouldn’t advise any one to get me to cook. Petey used to
say: ‘Nettie,’ he’d say, ‘the quality of mercy is not strained; neither is
your soup.’ Oh, my Petey! Always like that, jokin’, and witty, and
great, simply great!” Peter’s widow gulped painfully. There was no
doubt that her grief was profound.
“You wouldn’t care to look after children all day, would you?”
asked Jane. “We have a charity we are starting here. It began in a
sort of play; we began it, my other sister and I, but it is going to be
a real charity, and go on far and long, we hope. We’ll tell you about
it. But you must have lunch with us. Please excuse me a moment,
while I tell my mother and sister you are here, and then we’ll have
lunch. Why, I forgot! Florimel, please take Mrs. Mivle up to my room
and let her cool her face and hands with fresh water. I know one
doesn’t care to eat after one has been talking fast and feeling sad.
You mustn’t say a word, Mrs. Mivle! As you told me about my visit to
you: it isn’t any trouble!” Jane ran away, and, as rapidly as she
could, prepared her mother and Mary for what they were to meet.
Mary apprehended the situation quicker, having already known of the
former Miss Aldine. But after Mrs. Garden understood, she was as
ready as her girls were to befriend this unfortunate one, who stood
on the lowest rung of the ladder of fame, on which, and in another
and higher form of dramatic art, Lynette Devon’s little feet had once
balanced.
Mrs. Mivle was completely overcome by the kindness which she
received. Before lunch was over Mrs. Mivle had been offered and had
accepted the post of matron of the Day Nursery. It was arranged
that she was to return to New York, where she had left her slender
belongings, and fetch them to Vineclad at once. She went away
immediately after lunch in the station carriage summoned for her,
tearfully grateful, relieved, and nearer happy than had seemed
possible to her ever to be again.
The Gardens and Anne watched her away, amazed at this sudden
solution of a difficulty. They were not a little pleased that the Day
Nursery was proving its right to exist, though it had been begun with
light-hearted indifference, by doing a great service for a lonely
woman, whose merit was so overlaid with misleading externals that
it was hard to see what could have become of her without its refuge.
“And I know she’ll make the babies happier than almost any one
else in all the world could!” said Jane, as if she were answering some
one, though no one had made a comment.
“She’s very good indeed, kind and honest,” said Anne Kennington,
who was keen to judge. “I’m sure she’ll make every child that comes
near her quite wild over her, when she begins singing songs to them
and amusing them; you can see she’s that sort! But, my heart, Mrs.
Garden, dear, what slang they’ll learn from her!”
“Oh, no, Anne, perhaps not. We’ll try to get her to talk and dress
less picturesquely,” said Mrs. Garden, who had whole-heartedly
espoused the dethroned leading lady’s cause.
The afternoon ceremonies of Slumber Day were resumed and
carried to their end. Win came home, as he had promised, to take
part in the finale. He brought Mark with him; they had to be told of
the singular guest and her prospective office, in spite of the rule
against interrupting the routine of Slumber Day by conversation.
Joel Bell listened to the tale with, literally, open mouth. “Well, how
little you can tell what’s around the corner before you turn it!” he
said. “To think you’ve been the means of givin’ a sorrowful lady, an’
a lady without a way to git her bread, both comfort an’ bread an’
jam, so to speak!”
“Everything is done; the Slumber Day ceremonies are over,”
announced Mary at last. “We have put the garden to sleep till
another spring. Now our closing rite, then for supper! Mark, you may
take part in it. We each in turn bid our garden sleep well till next
year, and then we tell it what has been the best gift we have had
this year, and ask it to make the gift grow and blossom next year.
Florimel first; we begin at the youngest.”
“No, Chum and Lucky first!” laughed Florimel, and she held the
cat’s, and then the dog’s, head close to the ground, under the sun
dial, where this last event always took place.
“Good-night, sweet garden, our best friend. My best gift has been
my home. Keep it and increase it another year for me,” she said in
turn, for each. Then when she released them, Lucky ran up the lilac
bush, and sat there, and Chum ran around and around the grass, tail
out and mouth stretched, laughing, taking it all as a frolic.
Florimel, Jane, and Mary said the same thing:
“Good-night, sweet garden, our best friend; rest well and waken
refreshed. My best gift has been my mother. Keep her for me, and
increase her health and happiness next year.”
“Good-night, old garden, true friend,” said Win. “My best gift this
year”—he hesitated—“has been hope and greater happiness. Fructify
both for me next year.”
Mark bent over the sod.
“Good-night, new-old friend, noble garden,” he said. “My best gift
this year has been through the Gardens—home, affection, hope.
Keep my gifts for me, and let them grow great another year.”
Mrs. Garden bowed low, her hand upon the sun dial.
“Good-night, sweet garden, patient friend. My best gift was won
coming back to thee. My best gift this year, and for all years, is my
children. Guard their health, and help me keep them, the flower of
your soil, forever.”
She straightened herself and looked around. Mary’s deep blue
eyes, Jane’s golden ones, Florimel’s glowing black ones smiled at her.
“My Garden blossoms,” she cried. “My best gift, truly, is that I’ve
learned to be your mother!”
Mary turned toward the house, a hand on her mother’s shoulder,
the other on Jane’s arm. Florimel, behind them, encircled her mother
with her hands on her sisters’ shoulders.
“Now we are all going from our happy, put-to-bed garden into our
happy, waking house! Come, boys, both!” Mary said.
“We’re so blessed that we can’t quite know how happy we are.
Isn’t that beautiful? To know we’re happier than we can know we
are?” said Jane.
“I wonder if we aren’t the very luckiest girls in the world?” said
Florimel. “I wonder if we could call our garden fairies, and ask them
who were the happiest girls in the world, what they’d say?”
And from the steps, where she stood in the setting sun, came
Anne’s voice calling, like an answer:
“Garden girls! Garden girls!”
THE END
THE COUNTRY LIFE PRESS
GARDEN CITY, N. Y.
Transcriber’s Note:
Punctuation has been standardised. Other changes
have been made as follows:

Page 38
of the simple chambreys in which changed to
of the simple chambrays in which
Page 43
green and white chambrey changed to
green and white chambray
Page 64
tell their wards it is somethng changed to
tell their wards it is something
Page 141
in all it’s vineclad life changed to
in all its Vineclad life
Page 170
through the vineclad streets changed to
through the Vineclad streets
Page 172
its size unobstrusive changed to
its size unobtrusive
Page 205
in the Roman colosseum changed to
in the Roman Colosseum
Page 259
squat wedgewood teapot changed to
squat Wedgewood teapot
Page 316
You musn’t say a word changed to
You mustn’t say a word
*** END OF THE PROJECT GUTENBERG EBOOK HOLLYHOCK
HOUSE: A STORY FOR GIRLS ***

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.

You might also like