Download PDF Responsible software engineering: with real-world case studies from google (early relea

Page 1


Visit to download the full and correct content document: https://textbookfull.com/product/responsible-software-engineering-with-real-world-cas e-studies-from-google-early-release-daniel-j-barrett/

More products digital (pdf, epub, mobi) instant download maybe you interests ...

Real World Decision Support Systems Case Studies 1st Edition Jason Papathanasiou

https://textbookfull.com/product/real-world-decision-supportsystems-case-studies-1st-edition-jason-papathanasiou/

Linux Pocket Guide Essential Commands 3rd Edition

Daniel J. Barrett

https://textbookfull.com/product/linux-pocket-guide-essentialcommands-3rd-edition-daniel-j-barrett/

Software Engineering at Google: Lessons Learned from Programming Over Time 1st Edition Titus Winters

https://textbookfull.com/product/software-engineering-at-googlelessons-learned-from-programming-over-time-1st-edition-tituswinters/

Real-World Software Projects for Computer Science and Engineering Students 1st Edition Varun Gupta

https://textbookfull.com/product/real-world-software-projectsfor-computer-science-and-engineering-students-1st-edition-varungupta/

Mathematical Modelling in Real Life Problems Case Studies from ECMI Modelling Weeks Ewald Lindner

https://textbookfull.com/product/mathematical-modelling-in-reallife-problems-case-studies-from-ecmi-modelling-weeks-ewaldlindner/

Space Engineering Modeling and Optimization with Case Studies 1st Edition Giorgio Fasano

https://textbookfull.com/product/space-engineering-modeling-andoptimization-with-case-studies-1st-edition-giorgio-fasano/

Real World Software Development 1st Edition RaoulGabriel Urma

https://textbookfull.com/product/real-world-softwaredevelopment-1st-edition-raoul-gabriel-urma/

Software Engineering Modern Approaches Eric J. Braude

https://textbookfull.com/product/software-engineering-modernapproaches-eric-j-braude/

Smart Digital Manufacturing A Guide for Digital

Transformation with Real Case Studies Across Industries 1st Edition Rene Wolf

https://textbookfull.com/product/smart-digital-manufacturing-aguide-for-digital-transformation-with-real-case-studies-acrossindustries-1st-edition-rene-wolf/

Responsible Software Engineering

With Real-World Case Studies from Google

With Early Release ebooks, you get books in their earliest form— the author’s raw and unedited content as they write—so you can take advantage of these technologies long before the official release of these titles.

Responsible Software Engineering

Copyright © 2025 Daniel J. Barrett. All rights reserved.

Printed in the United States of America.

Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.

O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com.

Acquisitions Editor: John Devins

Development Editor: Michele Cronin

Production Editor: Gregory Hyman

Interior Designer: David Futato

Cover Designer: Karen Montgomery

Illustrator: Kate Dullea

March 2025: First Edition

Revision History for the Early Release

2024-02-27: First Release

See http://oreilly.com/catalog/errata.csp?isbn=9781098149161for release details.

The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. ResponsibleSoftwareEngineering, the cover image, and related

trade dress are trademarks of O’Reilly Media, Inc.

The views expressed in this work are those of the author and do not represent the publisher’s views. While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights.

978-1-098-14916-1

Brief Table of Contents (Not YetFinal)

Chapter 1: Responsible Software Engineering — A Quick Introduction (available)

Chapter2:AvoidCreatingorReinforcingUnfairBias(unavailable)

Chapter3:AnyRealDomainIsaComplexSystem(unavailable)

Chapter4:AnticipateandPlanforDownstreamConsequences (unavailable)

Chapter 5: Secure and Respect Users’ Privacy (available)

Chapter6:BuildandTestforSafety(unavailable)

Chapter7:MeasureandReduceYourCode’sCarbonFootprint (unavailable)

Chapter8:PutGuardRailsintoPlace:Governance(unavailable)

Preface

This book was created in fourteen seconds. That’s the time I spent watching one compelling scene in the documentary film TheSocial Dilemma. The film is about social media companies and how they engage in practices that may be harmful to our health, our ties to other human beings, and democracy itself. I found some scenes convincing and others overly dramatic, but those fourteen seconds altered my whole outlook on software development.

The scene in question is an interview with a former Facebook engineer, Justin Rosenstein, a developer of the Like button. His team’s “entire motivation” for inventing likes, he said in the film, was to “spread positivity and love in the world.” However, he continued, they did not anticipate some serious consequences as their invention spread to billions of users. “The idea that... teens would be getting depressed when they don’t have enough likes, or it could be leading to political polarization, was nowhere on our radar.”

This scene nagged at me. I mean, I was coding web applications back in 2007 when the Like button was conceived. What if fate had placed me at Facebook on Rosenstein’s team? Would I have thought ahead about potential risks of the Like button? Or would I just have been swept up in the coolness of the invention? I couldn’t know. But I was fascinated to learn that such experienced software engineers, acting with the best of intentions, could deliver a product with these unforeseen complications. So, I decided to spread the word to other engineers. And here we are.

What’s in This Book?

This book is about writing software responsiblyfor the real world — a world that’s complex, multicultural, hard to predict, and downright

messy. Applications that work beautifully during development and testing may behave unexpectedly when real people and their lives enter the picture. Anticipating and mitigating these issues is called responsiblesoftwareengineering.

I’ll cover various principles of responsible software engineering to help you build better applications that are more ready for real-world situations:

Treating people more fairly, regardless of their beliefs, gender, culture, skin tone, and other attributes.

Operating more safely, to reduce the risk of physical, psychological, or financial harm.

Better protecting people’s privacy, particularly when collecting personal information.

Incorporating wisdom from the social sciences, law, ethics, and other fields that many engineers may be unfamiliar with.

Reducing emissions of carbon dioxide (CO2), to address the risks of climate change.

Gaining and maintaining users’ trust in your products.

If you’re a software engineer, or you work with software engineers to create products, this book is for you.

Incidentally, 100% of my royalties from sales of this book are donated to the nonprofit Girls Who Code.

What’s Not in This Book?

This book is a broad look at responsible software engineering with real-world case studies. It’s filled with general guidance and specific tips. It also does notinclude several notable things:

There’s little or no code. If you’re looking for source code to make your software more responsible, this is not the book for you. Check out MachineLearningforHigh-RiskApplications: ApproachestoResponsibleAI, also from O’Reilly.

This book is not official Google policy. It is my own work, informed by interviews with my fellow Googlers and other professionals.

Conventions Used in This Book

The following typographical conventions are used in this book:

Italic

Indicates new terms, URLs, email addresses, filenames, and file extensions.

Constant width

Used for program listings, as well as within paragraphs to refer to program elements such as variable or function names, databases, data types, environment variables, statements, and keywords.

Constant width bold

Shows commands or other text that should be typed literally by the user.

Constant width italic

Shows text that should be replaced with user-supplied values or by values determined by context.

This element signifies a tip or suggestion.

NOTE

This element signifies a general note.

WARNING

This element indicates a warning or caution.

O’Reilly Online Learning

NOTE

For more than 40 years, O’Reilly Media has provided technology and business training, knowledge, and insight to help companies succeed.

Our unique network of experts and innovators share their knowledge and expertise through books, articles, and our online learning platform. O’Reilly’s online learning platform gives you on-demand access to live training courses, in-depth learning paths, interactive coding environments, and a vast collection of text and video from O’Reilly and 200+ other publishers. For more information, visit https://oreilly.com.

How to Contact Us

Please address comments and questions concerning this book to the publisher:

O’Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

800-889-8969 (in the United States or Canada)

707-827-7019 (international or local)

707-829-0104 (fax)

support@oreilly.com

https://www.oreilly.com/about/contact.xhtml

We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at https://www.oreilly.com/catalog/<catalog page>.

For news and information about our books and courses, visit https://oreilly.com.

Find us on LinkedIn: https://linkedin.com/company/oreilly-media

Follow us on Twitter: https://twitter.com/oreillymedia

Watch us on YouTube: https://youtube.com/oreillymedia

Chapter 1. Responsible Software Engineering — A Quick Introduction

A NOTE FOR EARLY RELEASE READERS

With Early Release ebooks, you get books in their earliest form— the author’s raw and unedited content as they write—so you can take advantage of these technologies long before the official release of these titles.

This will be the first chapter of the final book.

If you have comments about how we might improve the content and/or examples in this book, or if you notice missing material within this chapter, please reach out to the editor at mcronin@oreilly.com.

A friend of mine writes articles in the national media. A few years ago, one of their articles drew the attention of extremists who responded with thousands of aggressive, hateful messages over email, social media, and telephone, including death threats. It was a stressfest for my friend. They blocked the threatening phone callers and started using Google Voice to screen calls. In case you’re not familiar with Google Voice, it’s an app that can stand in for your phone and require callers to identify themselves before they can reach you. It also uses artificial intelligence to transcribe voicemail messages and email them to you.

The hate storm eventually dissipated. Time passed, and life returned to normal. My friend continued using Google Voice anyway. Until one

day, they received the unsettling voicemail transcript shown in Figure 1-1: “Dead dead dead dead dead dead dead.”

Figure 1-1. An unfortunate voicemailmessage as transcribedby Google Voice.

What did the message mean? Was it a threat? Was the horrible hate storm starting up again? Feeling worried, my friend connected to Google Voice and listened to the message directly.

The call was not a threat. It was a series of beeps — the classic sound of a disconnected phone call in the United States. The AI software that powers Google Voice had transcribed the “beep, beep, beep” sound as “dead, dead, dead.”

Clearly, the team of engineers who developed Google Voice did not intend for their product to frighten anyone. Their mission was to create a great application. This incident demonstrates that software products, even those developed with the best of intentions, can have unexpected consequences.

In my friend’s case, the only consequences were a few minutes of discomfort, and they can chuckle about the voicemail message today. But in other cases, the risks can be more significant. Right this moment (literally, as I write this paragraph), a major tech company has just announced a smartphone feature that mimics any

human voice from a small number of samples. This feature appears to have been developed with good intentions to help people who have lost their voice due to illness or disability. But major Wall Street investment firms use voice recognition to permit their clients to access their financial accounts without a password. It doesn’t take a genius to wonder what happens when these two technologies meet.1

Part of a software engineer’s job is to foresee and prevent harmful consequences of their applications as they run in the real world. This idea is called responsiblesoftwareengineering. In this chapter, I’ll introduce some concepts of responsible software engineering that form the foundation for the rest of the book. You’ll learn what responsible software engineering is and isn’t, cruise through a little history, and preview the major themes to come.

What is Responsible Software Engineering?

Responsible software engineering means developing software products to be sociallybeneficialand nottoharmtheEarthorits inhabitants. Let’s unpack that definition one piece at a time.

Sociallybeneficialmeans designing products so they primarily serve the well-being of the public.

NottoharmtheEarthmeans optimizing products not to squander resources, such as electricity and water in data centers, and to contribute as little as possible to harmful climate change.

…oritsinhabitantsmeans designing products that don’t hurt people physically, emotionally, economically, or in other ways we’ll discuss. I say “inhabitants” rather than “people” to include other living things on our planet when relevant.

Notice that this definition of responsibility focuses on how we developproducts, not on the products themselves. Pretty much any product can cause harm if wielded maliciously. Email programs and social media platforms, for example, bring social benefits because they help us communicate quickly over long distances; yet they can also be used in harmful ways, like spreading falsehoods or malware at a large scale. It’s more realistic for us to say whether a particular application or platform was engineeredresponsibly. A social media platform that does nothing to block the spread of malware would fail this test, because its creators arguably have a social responsibility to protect their users.

Responsible software engineering is about more than just technology. It also includes the social context in which technology is deployed. Here’s what I mean. Suppose you create the most powerful map app in the world, which uses AI to help people to walk or drive the most efficient routes to their destinations. Responsible software engineering could mean not only calculating those routes accurately, but also considering the societal impact on the neighborhoods along those routes. They might receive far more traffic than before, increasing congestion and pollution in those areas. You might want to work directly with the inhabitants of affected areas so you can mitigate unwanted side-effects.

Responsible software engineering is also about more than AI. It’s about any software engineering that impacts society at a large scale. An example of this impact is the design of certain cryptocurrencies with massive energy needs that exceed the electricity usage of whole countries.

Finally, responsible software engineering isn’t just about testing your applications carefully. Testing is certainly critical (and we’ll devote a chapter to it), but it happens relatively late in the development process, after you’ve made many design decisions and begun coding. If you practice responsible software engineering earlier, when you’re gathering requirements or creating the design or even

just brainstorming, you may proactively catch issues that would be expensive to fix later.

A little help from some specialists

Responsible software engineering is a huge topic, so I’ve invited a trio of specialists to help us throughout the book as we grapple with thorny issues.

Our first specialist is Ree, a software engineer. Ree wants to develop “ree-sponsible” apps but doesn’t have the skills yet to do so. Ree is curious and has good intentions: they want to do the right thing for their users and their employer. Ree will be learning right along with you.

Our second specialist is Cwip, who is a Creative, Well-Intentioned Person. Cwip likes to come up with ideas for software products and

features, but as we’ll see, their ideas usually have concerns that lead us away from responsible software practice. Perhaps you know or even work with someone like Cwip. They mean well, but….

Finally, meet Peep, one of the “peep-le” who uses your software products. Peep is the voice of the customer, a combination of innocence and skepticism. They ask questions that sound simple but touch on deep issues of responsibility.

What is responsible engineering not?

Effective debugging is certainly goodsoftware engineering. But responsible software engineering is more than developing solid code or being a reliable teammate. Table 1-1 provides a bunch of examples to distinguish responsible software engineering from plain old “good” engineering. The descriptions on the left side should look

familiar to most software engineers. The concepts on the right side may be new considerations for you.

Table1-1.Examplesofgoodvs.responsibleengineering

Good software engineering Responsible software engineering

Collaborating with other software engineers on your team and integrating your code with theirs.

Working closely with program managers, product managers, test engineers, marketing professionals, and other coworkers to bring your product to market.

Writing code that meets its functional specifications and passes all its unit tests.

Optimizing the performance of your code so it runs faster.

Collaborating with communities who may be affected when your software is released.

Testing your software on a wide range of possible inputs.

Working with sociologists, lawyers, teachers, ethicists, health professionals, and other experts in relevant domains where you have little direct experience, long before bringing your product to market.

Writing code that treats all its users fairly, regardless of their backgrounds or personal traits.

Optimizing the number of servers or processors running your code in a data center, to use less energy and reduce greenhouse gas emissions.

Testing your software with users who are very different from you and your teammates and come from cultures other than your own.

Writing clear code comments so future engineers can

Writing an FAQ for the public on the security and privacy risks in

Good software engineering

understand how your code works and can maintain it effectively.

Releasing your software to 100 million users in a successful launch.

Maintaining a queue of bug reports and enhancement requests, prioritizing them based on their business value, and implementing them as time permits.

A little history

Responsible software engineering

your software and how your business has addressed them, to help users trust your products.

Identifying and reducing bias in your software so its 100 million users are treated equitably.

Creating mechanisms for your users to send you feedback, taking the feedback seriously, and continually iterating on your product to improve your users’ lives.

Responsible software engineering is not a new idea. Decades ago, responsibility mostly meant ensuring safety from harm. And some software didcause harm. One tragic example is the Therac-25 radiation therapy machine from the mid-1980s, which killed or severely injured six patients due to careless software design. Its makers had replaced hardware fail-safe mechanisms with software fail-safes that were buggy (they had race conditions)2 and exposed patients to fatal levels of radiation. Another example is the Ariane 5 rocket that exploded in flight on June 4, 1996 (with no one on board, thankfully). Its onboard software tried to store a 64-bit floating point value as a 16-bit integer. This operation produced a garbage value that the software treated as flight data, leading the Ariane 5 to destroy itself. Responsible engineering in those days meant being more careful to avoid these sorts of catastrophic bugs.

Over the years, the concept of responsible software engineering has expanded, as software has twined its tempting tendrils more deeply into our lives. A slew of AI-powered chatbots have appeared that can answer our questions in friendly prose but also produce authoritative-sounding falsehoods. Generative AI systems are creating images and videos that are almost indistinguishable from real scenes and events, for better or worse. We’ve opened our homes to “smart” appliances that provide helpful services but may also gather data about our daily activities. Public spaces now commonly have tracking devices, such as network-connected cameras, that may have been installed for one purpose (such as monitoring automobile traffic) but are used for another (such as identifying individuals). Job candidates are being reviewed by AI systems that evaluate their facial movements to guess at their emotions and their suitability for a job.

A number of respectable organizations have written down rules for responsible software engineering. In 1997, two of the world’s major software-related organizations, the Association for Computing Machinery (ACM) and the Institute of Electrical and Electronics Engineers (IEEE), jointly created a Software Engineering Code of Ethics and Professional Practice. It lays out eight principles to maintain “the health, safety and welfare of the public” as engineers practice their craft. The principles also go beyond responsibility into areas like “lifelong learning” to stay abreast of developments in the field. The document is a long and worthwhile read for every software engineer. The two organizations are also updating their recommendations for undergraduate computer science education with additional material on Society, Ethics and Professionalism. Some major companies also have published their own principles for responsible software engineering, particularly for artificial intelligence. Some examples are Google’s AI Principles and Responsible AI Practices, Microsoft’s Responsible AI Standard,

Amazon’s Responsible Use of Artificial Intelligence and Machine Learning, and Facebook’s Five Pillars of Responsible AI.

Laws are very much on people’s minds these days, and governments are getting into the act. For example, the U.S. government published a Blueprint for an AI Bill of Rights in 2022 and an executive order on safe AI in 2023. Various government agencies also have stated AI principles, such as the US Department of Defense’s Ethical Principles for Artificial Intelligence for the military and the US National Institute for Standards AI Risk Management Framework. In the domain of privacy, the European Union has led the way with its General Data Protection Regulation (GDPR), which we’ll explore in detail in chapter NNN. The European Union is also drafting an Artificial Intelligence Act, aimed at tackling the many legal issues associated with AI head on.

Adopting a responsible mindset

Here are some responsible practices that should give you a clue that you’re doing the right thing. Likewise, if you manage software projects or teams, these are also great practices to pass down to your team members. (Responsible software engineering is both a bottom-up and top-down activity.)

Proactivity. A responsible engineer thinks about potential downstream harms very early in the development of a product, when they’re tossing ideas around and brainstorming initial designs. If you think about risks too late, discover unintended harms after launch (or even after code freeze), and try to retrofit solutions, the costs are much higher, not just financially but also in burnt engineering cycles. Aim to be more proactive, and you can spend more time innovating and inventing instead of scrambling to fix emergencies.

Humility. Not every problem is a technology problem. A responsible engineer acknowledges when they’ve hit the limits of their knowledge and their field. Team up enthusiastically (and early) with experts in the social sciences, law, ethics, and other disciplines to bring a product to market.

Fairness. When assessing if a system “works,” a responsible engineer moves beyond traditional metrics like technical

accuracy, CPU performance, memory use, and disk space, and incorporates a lot more context, especially social. Your system might pass all its unit tests, integration tests, and load tests, but does it treat all users fairly? Does it exhibit harmful bias towards certain populations?

Curiosity. A responsible engineer engages early with their users to predict the impact of their software on specific communities and cultures. No matter how certain you feel that you know your users, they are more diverse than you might realize. It’s important to collect feedback from users and stakeholders throughout design and development and after launch. Be open to (and practice) constant iteration and improvement based on the feedback and data you collect.

Complexity. A responsible engineer understands that their products run within complex social contexts around the world, where users have different expectations, values, behaviors, and risks. Chapter NNN will discuss how to think about societal context up front instead of after the fact.

We’ll return to these ideas again and again in later chapters.

Summary

Many software engineers design systems and write code for the joy of it. We like to create exciting applications that improve lives. So, I’m guessing that when you originally set out to become a software engineer, you probably didn’t think, “Hey, I can’t wait to write an app that snoops on people’s privacy and accelerates climate change.”

In our complex, interconnected world, our exciting applications need a bit more care than they used to. That’s what responsible software engineering is all about: creating applications that are socially beneficial and don’t harm the Earth or its inhabitants.

Yes, modern software development is a ton of work. So, here are a few considerations that I hope will help before we jump into the rest of the book.

First, the factors that Ree listed — correctness, ease of use, reliability, security, scalability, and so on — are important architectural drivers of quality software. It’s also true that any software project has limited time and resources. You can’t devote full attention to all of these drivers, so it’s important to prioritize them. Your team can come to consensus on (say) the five architectural drivers that most deserve your team’s time and energy, because they’re critical to your users, your product, and your business. As you read this book, I hope you’ll come to agree that responsibility should be one of the five.

Second, the earlier you engage in responsible software engineering, the less time it’s likely to take. It is much, much easier to mitigate harm in an application up front, beforeyou launch it. This is a hallmark of good software maintenance. The further along you are in the release process (from design to development to integration to testing to release), the more difficult and expensive it is to fix problems. Once the app reaches users, you have to not only fix bugs but also address any harm your app has caused, whether it annoyed users or blew up a rocket. So apply the tips in the book when you’re in the early stages, not the day before the big launch. Or worse, the day afterlaunch. Have you ever been awakened at 3:00am by an

irate operations team because your app is aggravating customers? It’s not fun.

Finally, imagine what happens if you don’t devote enough time to responsible software engineering. Your users, your project, and your company may be at risk. If your app collects users’ personal data carelessly, for example, you could violate regulations such as the GDPR and owe huge fines. In addition, if software engineers more widely don’t practice responsible engineering, then government regulators may step in. The actions they take may create burdens much larger than the work of coding responsibly in the first place.

I don’t mean to sound all doom and gloom here. Responsible software engineering also brings huge opportunities. It helps us design systems that are fairer for all users. It helps us to protect people’s privacy. It helps us test software more thoroughly. It helps to reduce the carbon footprint of data centers. Overall, businesses that embrace responsible software engineering can better earn and deserve their users’ trust, which benefits everyone.

1 In fact, it’s already happening: “Voice Deepfakes Are Coming for Your Bank Balance,” New YorkTimes, August 30, 2023.

2 A race condition occurs when a system assumes that two independent actions will happen in a particular order, but the actual order is outside the control of the system (i.e., it’s nondeterministic).

Chapter 2. Secure and Respect Users’ Privacy

A NOTE FOR EARLY RELEASE READERS

With Early Release ebooks, you get books in their earliest form— the author’s raw and unedited content as they write—so you can take advantage of these technologies long before the official release of these titles.

This will be the fifth chapter of the final book. If you have comments about how we might improve the content and/or examples in this book, or if you notice missing material within this chapter, please reach out to the editor at mcronin@oreilly.com.

Years ago, when I was young and foolish, I managed the intranet of a well-known company (not Google), and we had a problem. Employees were complaining that some information on our main internal website was difficult to find. So, my team had an idea: capture all the search queries our users entered on the site. We could then identify the most commonly searched topics and make the most relevant articles more visible, delighting our users. Simple, right? Also, since our company culture was extremely open, we decided to remove all employee names from the query data and make it visible to everyone in the company, because why not? The website was protected behind a firewall, and it would be cool to see what our nameless coworkers searched for. What could possibly go wrong?

Twenty-four hours after our search-tracking feature went live, we shut it down, because somebody with actual sense explained the risks to us. Even on a work-related website, it turns out, employees search for intimately personal topics such as maternityleaveand medicalbenefitsforcancer. Collecting and viewing this information was a serious violation of personal privacy. Worse, our decision to make these search terms visible to others, even with the searcher’s name removed, was potentially perilous. Imagine what could happen if an employee were laid off shortly after they searched for maternity leave. They could say — accurately — that their anonymous searches were visible, and conclude that their management had guessed they were pregnant and fired them illegally. My team, in trying to be helpful, had unknowingly created a situation with serious legal consequences. (Fortunately, we turned off searchtracking and deleted the data before any problems could occur.)

Privacy in technology is a critical concern. It’s subtle and tricky. Data that seems anonymous sometimes isn’t. Products that take our personal data into consideration can provide a better user experience when privacy is done well, but the data can also be used in ways that are surprising or uncomfortable. When that happens, users can be harmed, and penalties can be huge. And as my searchtracking story demonstrates, even creative, well-intentioned people can cause privacy problems without meaning to.

There’s no way we can tackle every issue of privacy in a single chapter or even a single book. The topic is vast and has been debated for thousands of years. In this chapter, I’ll provide an overview of privacy in technology and discuss some best practices for responsible software engineers. We’ll lead up to a final case study with particularly strong privacy practices: the Google/Apple Exposure Notifications app for COVID-19.

What is Privacy?

The question “What is privacy?” is complicated because the answer varies with context and culture. In the United States, for example, if you’re riding a train and a complete stranger starts asking about your family and whether you’re married or single, you might find these questions intrusive. But in India, if you’re a young man chatting on a train with a woman of an older generation and you’ve never met before, questions about your marital status are not only acceptable but even expected.

When people talk about privacy in our networked world, they usually mean a user’s right to keep their personal data to themselves. It also means that we have a responsibility to limit the data we collect to legitimate purposes like providing and improving our services, to collect it transparently, and to keep the data private. This responsibility has multiple parts:

Technological: Coding securely to protect our users’ data from malicious actions, such as cross-site scripting attacks and SQL injection attacks, and from vulnerabilities like memory corruption and buffer overflows that attackers could exploit.

Legal: Working with experts to ensure that our data collection practices adhere to privacy laws and regulations in all geographies where our applications run.

Social: Partnering closely and humbly with experts in privacy, ethics, social science, user experience, trust and safety, government, and other fields when privacy concerns go beyond software engineering.

There’s no one-size-fits-all approach to privacy in tech. If you’re a software engineer surrounded by other software engineers, it’s sometimes easy to forget that users are diverse and live in extremely varied circumstances. A typical user is not necessarily a member of the social majority, packing a high-end smartphone and laptop. Our products also serve members of historically underrepresented groups. They serve people who live on the knife’s edge between “just getting by” and homelessness. They serve activists in countries with authoritarian governments. They serve families who share their devices and accounts because they can’t afford more than one. Our users are healthy, sick, rich, poor, stressed, vulnerable, accepted, stigmatized, powerful, oppressed, you name it. And these varied contexts sometimes bring unique privacy concerns and may violate our own assumptions about how people live.

Some users seem unconcerned about privacy online. “I have nothing to hide,” they say. Governments may use similar arguments to justify their surveillance programs: “If you aren’t doing anything wrong, what do you have to hide?” But privacy is not merely about hiding secrets. In the words of cryptographer Bruce Schneier, “We are not deliberately hiding anything when we seek out private places for reflection or conversation. We keep private journals, sing in the privacy of the shower, and write letters to secret lovers and then burn them.” Perhaps the journalist Cory Doctorow said it best: “Every one of us has parents who did at least one private thing that’s not a secret, otherwise we wouldn’t be here.”

Governments today are hard at work setting privacy standards and passing regulations. Currently, the big hammer of online privacy regulations is the General Data Protection Regulation (GDPR) from the European Union. Its guide to data privacy “empower[s] users to

Another random document with no related content on Scribd:

would have had to cross the swollen stream at the very start. They would go north, to Tacarigua. She was sure of that. And, taking off her alpargatas, she walked in a great semicircle, looking for fresh footprints.

Across ditch after ditch she went, through black water and blacker ooze. Sometimes her steps were sure, more often she sank to the knees, or fell, her hands flattening against a ditch side.

She found fresh footprints in countless numbers, and leading toward every point of the compass. Some had been made by naked feet, some by alpargatas Some were long and wide, some were short and more narrow. She was bewildered by them.

“Ah! Madre de Dios!” she faltered.

Presently, pointing northward, she found two sets, the one plainly a man’s, the other smaller They were new, too, for the ooze still stood in them. Instantly her attention fixed upon these. She floundered after them, rod upon rod, as certain that she was upon the right trail as if she could see Ricardo and the woman ahead of her. Here the footprints were close together—she ground her teeth. Here they were farther apart. And here someone had stumbled, for there was the mark of a naked palm on the soft earth. She laughed, and stroked the handle of the lanza.

When the tracks left the hacienda of San Jacinto they entered that of its northern neighbour—Guevara. Here they made a detour to avoid the cacao court and huts of the plantation’s workers. Then on again, through mud and mire, keeping always straight toward Tacarigua. Farther still, when this hacienda was crossed, they entered the rough path leading northward through the forest, and were lost.

At midday Manuelita stopped at a deep-shadowed spot on the road to eat a meal of baked plantain and arepa. The monkeys jabbered down at her. Now and then she heard strange movements close by in the jungle. But she felt no fear. A few moments for food, a pull at a water-filled gourd flask, a few crumbs to a lizard, blinking—head downward—from a tree trunk at her elbow, and she trotted on.

It was the hour before sunset when, through a tangle, she peered out from the forest’s edge. Before her was a shallow stream, muddy though it was flowing over a bed of pebbles. Beyond, a cluster of red, tiled roofs, was Tacarigua. Tacarigua! And they were there!

She opened her bundle for the comb; bathed quickly face, arms, and from foot to knee, and carefully rubbed away the caked dirt marring the bright figures of her skirt. Then, with the sun looking back from the ragged range of La Silla de Caracas, and a breeze beginning to stir the leaves that fringed the water, she slipped on her alpargatas, took the path again, and entered the village.

General Blanco Alcantara, in command of the Revolutionary force at Tacarigua, sat upon his horse before the green-walled Jefatura Civil. He looked quite imposing. A broad hat, wound in the blue of his cause, was set rakishly upon his black hair. A wide sash of webbed stuff in the same blue ran over his right shoulder and was wrinkled into the loop of his sabre scabbard, from which, knotted, it fell, ends free, to a silver spur.

Near him, lounging upon the steps of the building, were several officers, smoking, talking, and evidently waiting. To one side, also occupied with their tabacos and gossip, were as many asistentes, waiting, too, and looking as important as the discarded apparel of their superiors would permit.

When Manuelita approached the general, he was looking down his straight nose at the cigarette he was rolling in his fingers. But at the sound of her voice close to his stirrup, he turned his deep-set black eyes upon her.

“Señor general,” she began, quaveringly.

He saw eyes as dark as his own, a pale face scarce younger. And his short upper lip, under its wiry moustache, lifted a little, in what was meant to be a smile.

“At your order, señorita,” he replied.

And now he saw the girl’s eyes widen and flash, saw the red of anger run into lip and cheek.

“Señor general,” she continued huskily, “there is a man—one Ricardo Villegas—who last night left the hacienda San Jacinto to come to Tacarigua and join La Revolución. Leaving, he took with him our cubierta, a new machete, and—a woman.”

The general laughed.

“That man of yours was equipped for fighting,” he said. She was clasping and unclasping her hands with nervous intensity.

“He had best be so,” she answered, “when next he meets me.”

“You will not meet him here.”

“No? no?”—quickly. Suspicion darkened her face. She drew back. The general was lying, doubtless, to save a much-needed soldier from his deserts.

“No,” went on Alcantara, lighting his cigarette, “you will not find him here. I have one hundred men, but each has been with me since before the beginning of the wet season. No one has joined me of late.”

She turned about, half murmuring to herself, and made as if to go.

“He went the other way, perhaps,” suggested the general; “to Rio Chico, where is another force of Los Salvadores.”

She came round upon him, arms raised, set teeth showing between lips that were pale again.

“I go to Rio Chico,” she said.

“And he will be gone—wait, wait! General Pablo Montilla leaves Rio Chico to-night with his column.”

“I shall follow.”

“I join him with my men at dawn.”

He saw the light of a terrible hope illuminate her countenance. She came to his stirrup again.

“Señor general,” she pleaded, “let me go with your soldiers. I am young and strong—I can cook—I can carry a load——”

Alcantara puckered his lips teasingly, looking down at her He marked the plump, well rounded figure, the clear, copper-coloured skin with its scarlet touches on mouth and cheek, the long braid, the full, girlish throat.

“You go,” he said.

Child as she was, she knew the men of Venezuela, and she saw and understood his look.

“I go for revenge, Señor general,” she declared meaningly. “If you are so good as to allow me to follow you, I—I will be safe? Else I walk far in the rear—alone.”

“As you like,” answered Alcantara. “There will be two other women along—Maria, who goes with one of my coroneles, and La Negrita, the woman of the black general, Pedro Tovar. You may march with them.”

“And when will you start?” she asked eagerly. “When?”

“We thirst for the blood of Ricardo Villegas,” laughed Alcantara. “Well ——”

A squad was approaching, led by a determined-looking officer. Two of his men carried large-calibre German Mausers, the third had a Mauser and a canvas money bag, and the fourth a Mauser and a rope.

“Comisario,” said the general, as the latter shuffled near and saluted, “what raciones have you collected?”

An expression of defeat spread upon the commissary’s countenance. He shook his head dejectedly, and, reaching round, seized and brought forward the money bag.

“These unreasonable, these unpatriotic people!” he began with heat. “Actually they decline to give up their miserable savings. Observe!”

Alcantara peeked into the bag. “Oh, not so bad,” he said. “But perhaps a better display of the rope——”

The other nodded. “I promise you they will be loyal.” Then, his face more determined than before, the commissary departed. Behind came the squad, the Mausers, the bag, and the noose.

The general addressed Manuelita. “We shall start at sunset,” he said. “But you? You have walked all day, you say.”

“It does not matter. I will walk all night, gladly, gladly!”

He bent to arrange the knot of his sash. When he turned back again she was gone.

At sunset the soldiers of Alcantara left the huts where they had been quartered and gathered in the Plaza. Ragged and dirty they were, and unshaven. Some of them were part Indian, with straight black hair and copper-coloured skins. Others were negroes or half-castes, with flat noses and kinky heads. But all were without uniforms. Their drill trousers were of different colours, and held up by lengths of string or rope. Their tight-fitting, collarless shirts, made of a cheap woven material, were as vari-coloured. Even their little jackets, that buttoned up to the neck and were brought in at the waist under a cartridge belt, were not of the same shade or kind. Here and there among them, stripped of its red trimmings, showed the khaki uniform of the government—spoil of a battlefield. All wore alpargatas; and those fortunate enough possessed straw hats of generous circumference or brown, furry pelo de guamas, which displayed, on a narrow divisa sewed around the crown, the corps and division of the fighter beneath. Over the left shoulder of some of the men, and passed under the belt, was a rolled, double-wool poncho, the blue side out, if it so happened, but quite as often, in unconscious treason, the other, which was dyed the red of the enemy.

Despite the commissary’s promise of loyalty, when the soldiers came together there were no cheers from the townspeople, who, gathering to see the departure, chattered in undertones among themselves, and eyed the motley force in illy concealed dislike.

And now, obeying the call of a battered bugle, the start was made. First down the street came General Blanco Alcantara, in fine style; then the black general, Tovar, astride a lanky horse; after these, a

bevy of mounted officers—three coroneles, two commandantes, and two capitanes; the privates—on foot and in no formation; the asistentes, loaded down with the personal effects of their superiors; and several burros and mules carrying pack saddles heavy with ammunition; next, each with a bundle balanced on her head, a hat hung to her arm, a gourd and a smoky pail swinging and clinking together at her side, and a long tabaco in her mouth, two women; last of all, a padre, in cassock and shovel hat, riding a gaited mule.

The third woman to accompany the expedition was on the edge of the town, where the road to Higuerote opens into the forest. She was watching as she rested, eating an arepa and the remaining plantain. As Alcantara rode into sight, she stood up, her eyes shining, her lips parted, her head erect. The command by, she walked forward sturdily and fell in behind.

Night was falling then, but she was soon spied by those in the rear. Presently, these had told others, and the soldiers stretched their necks to look back to where she trudged. There was some whispering among those nearest her, and presently the padre reined a little to speak.

“You were not with us when we left the town,” he said. “How come you to be here?”

“I wish to go to Higuerote,” she answered, but would explain no further

Seeing her questioned, one of the asistentes, a kindly old man, fell back to offer her a cigarette. She took it gratefully

“And do you ignore the Church?” demanded the padre reprovingly.

The asistente handed over a cigarette, and soon the three were journeying forward together.

The night breeze swept over them as they went, making the way cool, and bringing with it the fragrance of growing things. But their travelling was difficult. The road was only a cart’s width, hard and stony, rising and falling, too, on broken ground. There was no moon over the first third of the journey, and every little while a jaguar,

scenting their passing, howled out at them from the dark, vine-hung forest lining the march.

Bit by bit Manuelita told her companions the story of Ricardo’s flight. As the padre listened, his round, florid face grew solemn, and he poked out his under lip dubiously. The asistente, on the other hand, swore often and pityingly, so that the good priest was kept busy crossing himself.

“And have you come all the way from the hacienda San Jacinto today?” asked the soldier.

“Since morning,” Manuelita answered.

“In that case,” interposed the padre, settling himself in the saddle, “to make your walking more easy, you may hold to the tail of my mule on the up grades.”

Not long after, they were forced to cover their faces and cease talking. For before the night was half gone, the moon topped the trees, showing its great, burnished shield upon the starlit sky And with the rising of the moon the forest thinned, the way became more level, but sandy, the walking extremely heavy, and legions of hungry mosquitoes came swarming upon them. The padre’s mule, tormented by the pests, made the middle of the track dangerous for Manuelita. She fell back, and walked in silence beside the old orderly. Once she uncovered to ask him how far they had got.

“Half-way,” he answered, when she murmured a thanksgiving. Later she again spoke: “And how long before Higuerote is near?”

“Three hours,” he replied. Her hands stole to her belt.

“Only one day and one night,” she said, “and yet I am almost upon them!”

But she was miserably tired by now, and many times would have stumbled to her knees had not the asistente supported her. He gave her frequent draughts from his aguardiente flask, and little lumps of damp brown sugar out of a canvas bag at his thigh. The padre, riding

just in advance, looked back often to speak encouragement, and as often called the asistente forward to levy upon him for a cigarette.

Bravely Manuelita persevered. Toward morning her brain seemed to wander, for she talked meaningless things to the old man lagging beside her. But a moment’s rest, a swallow of drink, a whispered reminder, and she struggled forward.

“Santa María!” was her petition, “only give me strength!”

The yellow moon had gone and the dawn was near when, having arrived at three great sand hummocks thrown up close to the road, General Alcantara drew rein. Noiselessly the soldiers laid down their ponchos, partook of cold coffee and a little food, and stretched themselves for a brief rest. The horses of the officers and the ammunition animals were led to one side, where they might crop the grass growing about in clumps. Alcantara and Pedro Tovar walked apart, conversing. The padre guided his mule to one side and, out of his saddle, was soon drowsing as comfortably as the mosquitoes would permit; while Manuelita sought the women, who were smoking, and squatted on the sand beside them, her face to the east, her lips moving with soundless words.

Swiftly the day came. A moment of little light, another that was brighter, and the stars dimmed. Then the unkempt force got to their feet and moved on—cartridge belts filled and machetes slipped under them. Above, floating on white-tipped wings, followed a score of the bald black samuro, their curved beaks lowered in horrid watchfulness.

When the sun rose, the company made a second halt, behind a line of scrub growth. From here General Alcantara, dismounting, went forward alone on hands and knees. He stopped while yet in the shelter of the dense underbrush and stood up. To his left lay a town —tile-roofed, low houses, three rows of them, two rows having their back yards to the sea. Beyond these was a gently shelving beach strewn with the unpainted, dugout canoes of fishermen. Still farther, dotted here and there with a dingy sail, was the blue of the Caribbean, its outermost edge moving up and down upon the paler blue of the sky. To his right, some two hundred yards away, was the

curving line of a railroad, then beach and boats, then sea again. And in the very foreground, seated on the sand, under a sagging telegraph wire, was a man in khaki, fast asleep, with his gun, muzzle end down, in a land-crab hole.

Alcantara now lowered himself again to creep on, and a moment later the sentry awoke and found himself a prisoner. Presently, from the south, there sounded a faint rumble. And soon, far down the rusty rails, appeared a train. Alcantara gave a signal to those who had come up from behind, and at once the Revolutionists in khaki gathered the officers’ mounts and, taking the captured sentry with them, went back along the road to the shelter of the sand hummocks. The padre turned his gaited mule and single-footed after them, concern written large on his round, florid face. The rest of the company displayed their agitation. The soldiers craned and gestured, or examined their arms. La Negrita and the other woman chattered under their breath. The two capitanes ran to and fro between Alcantara and the black general, taking and bringing messages. The men with the pack animals proceeded slowly toward the road gap in the shielding shrub. Only one of them all was giving the hour a solemn beginning. This was Manuelita, kneeling, bareheaded, in the sand, her hands clasped, her eyes closed, her face upturned.

“Santa María!” she whispered, for once more she was praying.

When the train was less than half a mile away Alcantara drew a small blue flag from his breast. It was of flimsy muslin, and showed at its centre a cross of yellow, blue, and red. The general, having unfolded it, held it in his right hand, so low that it could not be seen from the town. Instantly similar colours were waved from the engine cab. Again Alcantara signalled those behind, and the black general led them forward. At their front was borne a large flag of the cause, fastened to a bamboo pole.

When the train had crawled abreast of the Tacarigua force, its antique, ramshackle coaches came to a stop. Out of them tumbled some sixty soldiers, the heavy-set Pablo Montilla commanding. Alcantara saluted silently and made off with two-thirds of his own

men straight along the track toward a railroad bridge in the town. As quietly, Tovar took the remaining third, joined Montilla, and started toward a second bridge, which crossed the Rio Curiepe at the main street. The train backed. The ammunition-mules and -burros were held close to the track, where stayed Maria and the other woman. But Manuelita, marking which way the men of Rio Chico had gone, ran after, and fell in behind them.

That advance was made in two lines, the soldiers trotting single file. Those on the track were heard from first. A shot rang out—then another. Then the battered bugle sounded a few clear notes, which the Mausers obeyed with a spatter of shots.

Now Tovar turned to his men with a cry: “Adelante, muchachos!”

The soldiers broke into a run, firing willy-nilly, and bunching together at the bridge end.

“Viva Montilla!” they shouted. “Viva Tovar!”

Then came answering cries from across the bridge, where khaki uniforms were swarming in a hasty rally, where shots were plentiful now, and a drum was keeping up a steady thump! thump!

Behind the cluster of men on that bridge was Manuelita. She had no thought of danger for herself, though the bullets were flying about her. She did not even watch the khaki figures hurrying to oppose, or those others spreading out between the bridges, lining the Curiepe to prevent a crossing. Her gaze was upon the men of Rio Chico. Her dust-rimmed eyes searched for one figure.

But now Tovar was leading Los Salvadores across the stone-flagged bridge. Officered by red-sashed men in blue, the front ranks of the government received them with bayonets. Those in the background sent upon them a hail of lead.

“Ah!”

The piercing cry that broke from Manuelita was heard above the clashing of steel, the singing of bullets, the curses and vivas, the shrieks of agony. There he was, there—in the very front of the fight,

laying about him with his machete Her whole body trembled, her heart fluttered, her breath came in gasps, she choked.

“Madre de Dios!” She clutched the spear-shaped knife. “Let me but get at him first!”

But now she was rudely driven back. The government was gaining— it was machete to bayonet, and the latter’s deal was the more deadly. Los Salvadores retreated, one against another, clubbing their Mausers, filling the air with their yells. Maria’s coronel raced up, bringing a futile order. For Pedro Tovar was out of earshot, in the front of them all, still facing the enemy, but backing from the fierce onslaught of the men in yellow.

But where was Ricardo? Manuelita could not see. Forgetful of personal safety, she sprang upon the nearer iron rail of the bridge. And from there, looking beyond the line of hand-to-hand combat, beyond the van of the government, she saw him—lying flat upon the flags, arms stretched out, face downward. At his curly head was a growing pool.

Like a flash, she was down and standing on the bridge. She flattened herself against the hand rail to keep from being knocked off her feet. Men of the Revolution struggled by her, bravely contesting each step of the way. And now Pedro Tovar was beside her—losing his ground. And now the khaki of the government was on every side.

“Viva el Gobierno! Viva Domingo Morales!”

Los Salvadores were losing!

She saw more khaki-clad men running up from the tumbled-down church in the Plaza—running straight toward the bridge, toward Ricardo, helpless, but moving feebly now, turning his head from side to side as if in pain. They would cut at him as they passed!

Another cry, and she made her way back along the hand rail to where Tovar was swinging his black arms. Then on, beyond him, to where showed the top of the Revolution’s colours. A moment, and she had seized the bamboo pole, had unfurled the blue flag with its tricoloured cross. Then, facing about, with cries again, she pushed her way toward the black general.

“Viva la Revolución!” she cried.

Spent with their night march and with fighting, disheartened by retreat, the motley forces of Montilla and Tovar now beheld a girl at their front, waving aloft the flag of their cause. They hesitated; then, spurred by the sight, stood fast.

And now, with cheers from Alcantara’s men to announce a victory at the railroad bridge, there came the change of balance in that fight at the other. A moment and the government was retreating, not foot by foot, but quickly, up the gentle slope.

“Viva la Revolución!” was the whole shout now. And with a fearful grin on his black face, Pedro Tovar cried on the men, cursed them into fiercer fighting, struck them with the flat of his sabre.

And now the wavering blue flag was at the middle of the bridge, was on the farther slope, was almost to the man lying face downward on the approach—then, beside him.

Another hand caught the bamboo pole there, saving the riddled colours from fluttering to the ground. Still the government fell backward, still the Revolution pressed on. The bridge was cleared, except where wounded or dead lay stretched upon the stone; the clash of weapons grew less and less. The retreat of the government was a rout.

But back at the bridge, unmindful of victory, exhausted, yet not realising that, sat Manuelita, a soldier’s head pillowed against her breast, a wet cheek rested against a paler one.

“Santa María!” she sobbed, “he is alive—alive! Madre de Dios, I thank thee!”

THE

END

TRANSCRIBER’S NOTES:

Obvious typographical errors have been corrected. Inconsistencies in hyphenation have been standardized.

Archaic or variant spelling has been retained. New original cover art included with this eBook is granted to the public domain.

*** END OF THE PROJECT GUTENBERG EBOOK THE JUSTICE OF GIDEON ***

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

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.