Site Reliability Engineering: How Google Runs Production Systems


Betsy Beyer - 2016
    So, why does conventional wisdom insist that software engineers focus primarily on the design and development of large-scale computing systems?In this collection of essays and articles, key members of Google's Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. You'll learn the principles and practices that enable Google engineers to make systems more scalable, reliable, and efficient--lessons directly applicable to your organization.This book is divided into four sections: Introduction--Learn what site reliability engineering is and why it differs from conventional IT industry practicesPrinciples--Examine the patterns, behaviors, and areas of concern that influence the work of a site reliability engineer (SRE)Practices--Understand the theory and practice of an SRE's day-to-day work: building and operating large distributed computing systemsManagement--Explore Google's best practices for training, communication, and meetings that your organization can use

Testable JavaScript


Mark Ethan Trostler - 2012
    This book shows you what writing and maintaining testable JavaScript for the client- or server-side actually entails, whether you’re creating a new application or rewriting legacy code.From methods to reduce code complexity to unit testing, code coverage, debugging, and automation, you’ll learn a holistic approach for writing JavaScript code that you and your colleagues can easily fix and maintain going forward. Testing JavaScript code is complicated. This book helps you simply the process considerably.Get an overview of Agile, test-driven development, and behavior-driven developmentUse patterns from static languages and standards-based JavaScript to reduce code complexityLearn the advantages of event-based architectures, including modularity, loose coupling, and reusabilityExplore tools for writing and running unit tests at the functional and application levelGenerate code coverage to measure the scope and effectiveness of your testsConduct integration, performance, and load testing, using Selenium or CasperJSUse tools for in-browser, Node.js, mobile, and production debuggingUnderstand what, when, and how to automate your development processes

Hackers & Painters: Big Ideas from the Computer Age


Paul Graham - 2004
    Who are these people, what motivates them, and why should you care?Consider these facts: Everything around us is turning into computers. Your typewriter is gone, replaced by a computer. Your phone has turned into a computer. So has your camera. Soon your TV will. Your car was not only designed on computers, but has more processing power in it than a room-sized mainframe did in 1970. Letters, encyclopedias, newspapers, and even your local store are being replaced by the Internet.Hackers & Painters: Big Ideas from the Computer Age, by Paul Graham, explains this world and the motivations of the people who occupy it. In clear, thoughtful prose that draws on illuminating historical examples, Graham takes readers on an unflinching exploration into what he calls “an intellectual Wild West.”The ideas discussed in this book will have a powerful and lasting impact on how we think, how we work, how we develop technology, and how we live. Topics include the importance of beauty in software design, how to make wealth, heresy and free speech, the programming language renaissance, the open-source movement, digital design, internet startups, and more.

Hard Drive: Bill Gates and the Making of the Microsoft Empire


James Wallace - 1992
    Part entrepreneur, part enfant terrible, Gates has become the most powerful -- and feared -- player in the computer industry, and arguably the richest man in America. In Hard Drive, investigative reporters Wallace and Erickson follow Gates from his days as an unkempt thirteen-year-old computer hacker to his present-day status as a ruthless billionaire CEO. More than simply a "revenge of the nerds" story though, this is a balanced analysis of a business triumph, and a stunningly driven personality. The authors have spoken to everyone who knows anything about Bill Gates and Microsoft -- from childhood friends to employees and business rivals who reveal the heights, and limits, of his wizardry. From Gates's singular accomplishments to his equally extraordinary brattiness, arrogance, and hostility (the atmosphere is so intense at Microsoft that stressed-out programmers have been known to ease the tension of their eighty-hour workweeks by exploding homemade bombs), this is a uniquely revealing glimpse of the person who has emerged as the undisputed king of a notoriously brutal industry.

Return to the Little Kingdom: Steve Jobs, the Creation of Apple, and How It Changed the World


Michael Moritz - 2009
    Now, completely revised and expanded, Return to the Little Kingdom is the definitive biography of Apple and its founders from the very beginning Moritz brings readers inside the childhood homes of Jobs and Wozniak and records how they dropped out of college and founded Apple in 1976. He follows the fortunes of the company through the mid-1980s, and in new material, tracks the development of Apple to the present and offers an insider's profile of Jobs, whose genius made Apple the powerhouse it is today Required reading for everyone who's ever listened to music on an iPod, Return to the Little Kingdom is timely and thorough, and the only book that explains how Steve Jobs founded the company that changed our world.

Where Wizards Stay Up Late: The Origins of the Internet


Katie Hafner - 1996
    Today, twenty million people worldwide are surfing the Net. Where Wizards Stay Up Late is the exciting story of the pioneers responsible for creating the most talked about, most influential, and most far-reaching communications breakthrough since the invention of the telephone. In the 1960's, when computers where regarded as mere giant calculators, J.C.R. Licklider at MIT saw them as the ultimate communications devices. With Defense Department funds, he and a band of visionary computer whizzes began work on a nationwide, interlocking network of computers. Taking readers behind the scenes, Where Wizards Stay Up Late captures the hard work, genius, and happy accidents of their daring, stunningly successful venture.

Writing Secure Code


Michael Howard - 2001
    You need to assume it will run in the most hostile environments imaginable -- and design, code, and test accordingly. Writing Secure Code, Second Edition shows you how. This edition draws on the lessons learned and taught throughout Microsoft during the firm s massive 2002 Windows Security Push. It s a huge upgrade to the respected First Edition, with new coverage across the board. Michael Howard and David LeBlanc first help you define what security means to your customers -- and implement a three-pronged strategy for securing design, defaults, and deployment. There s especially useful coverage of threat modeling -- decomposing your application, identifying threats, ranking them, and mitigating them. Then, it s on to in-depth coverage of today s key security issues from the developer s standpoint. Everyone knows buffer overruns are bad: Here s a full chapter on avoiding them. You ll learn how to establish appropriate access controls and default to running with least privilege. There s detailed coverage of overcoming attacks on cryptography (for example, avoiding poor random numbers and bit-flipping attacks). You ll learn countermeasures for virtually every form of user input attack, from malicious database updates to cross-site scripting. We ve just scratched the surface: There are authoritative techniques for securing sockets and RPC, protecting against DOS attacks, building safer .NET applications, reviewing and testing code, adding privacy features, and even writing high-quality security documentation. Following these techniques won t just improve security -- it ll dramatically improve robustness and reliability, too. Bill CamardaBill Camarda is a consultant, writer, and web/multimedia content developer. His 15 books include Special Edition Using Word 2000 and Upgrading & Fixing Networks For Dummies®, Second Edition.

Lex & Yacc


John R. Levine - 1990
    These tools help programmers build compilers and interpreters, but they also have a wider range of applications.The second edition contains completely revised tutorial sections for novice users and reference sections for advanced users. This edition is twice the size of the first and has an expanded index.The following material has been added:Each utility is explained in a chapter that covers basic usage and simple, stand-alone applications How to implement a full SQL grammar, with full sample code Major MS-DOS and Unix versions of lex and yacc are explored in depth, including AT&T lex and yacc, Berkeley yacc, Berkeley/GNU Flex, GNU Bison, MKS lex and yacc, and Abraxas PCYACC

The Complete Guide to High-End Audio


Robert Harley - 1995
    With this book, discover how to get the best sound for your money, how to identify the weak links in your system and upgrade where it will do the most good, how to set up and tweak your system for maximum performance, and how to become a more perceptive and appreciative listener. Just a few of the secrets you will learn cover high-end sound on a budget, how to do it cheap and still do it right; five system set-up mistakes and how to avoid them; how to make your speakers sound up to 50% better, at no cost; how to choose and set up a computer-based music system; how to find the one speaker in 50 worth owning; and why all 100-watt amplifiers don't sound the same. Since the first edition's publication in 1994, The Complete Guide to High-End Audio has been considered the essential reference on high-quality music reproduction, with more than 150,000 copies sold in five languages.

Cassandra: The Definitive Guide


Eben Hewitt - 2010
    Cassandra: The Definitive Guide provides the technical details and practical examples you need to assess this database management system and put it to work in a production environment.Author Eben Hewitt demonstrates the advantages of Cassandra's nonrelational design, and pays special attention to data modeling. If you're a developer, DBA, application architect, or manager looking to solve a database scaling issue or future-proof your application, this guide shows you how to harness Cassandra's speed and flexibility.Understand the tenets of Cassandra's column-oriented structureLearn how to write, update, and read Cassandra dataDiscover how to add or remove nodes from the cluster as your application requiresExamine a working application that translates from a relational model to Cassandra's data modelUse examples for writing clients in Java, Python, and C#Use the JMX interface to monitor a cluster's usage, memory patterns, and moreTune memory settings, data storage, and caching for better performance

Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)


Michael T. Nygard - 2007
    Did you design your system to survivef a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatient users?If you're a developer and don't want to be on call for 3AM for the rest of your life, this book will help.In Release It!, Michael T. Nygard shows you how to design and architect your application for the harsh realities it will face. You'll learn how to design your application for maximum uptime, performance, and return on investment.Mike explains that many problems with systems today start with the design.

How You Play the Game: A Philosopher Plays Minecraft (Kindle Single)


Charlie Huenemann - 2015
    At a glance, it bears few similarities to any place we know and inhabit. But upon closer examination, the differences between this complex virtual reality and our own might not be as vast as we think. In “How You Play the Game,” author and philosopher Charlie Huenemann looks philosophically at the game of Minecraft (“What is the point of this game? How does one win? Well, this depends on what you want to do”) and grapples with the ethical conundrums, existential crises and moral responsibilities of the virtual realm. From the Overworld to the Ender Dragon, Huenemann offers an entertaining, insightful and often hilarious examination of Minecraft and the strange worlds—both virtual and not—surrounding it.Charlie Huenemann is a Professor of Philosophy at Utah State University. He writes for 3quarksdaily, and has published several books on the history of philosophy.Cover design by Adil Dara.

The Adobe Photoshop Layers Book


Matt Kloskowski - 2008
    From working with and managing multiple layers to using layers to enhance and retouch photos, this Photoshop guru covers it all.

ERLANG Programming


Francesco Cesarini - 2009
    Erlang is gaining widespread adoption with the advent of multi-core processors and their new scalable approach to concurrency. With this guide you'll learn how to write complex concurrent programs in Erlang, regardless of your programming background or experience. Written by leaders of the international Erlang community -- and based on their training material -- Erlang Programming focuses on the language's syntax and semantics, and explains pattern matching, proper lists, recursion, debugging, networking, and concurrency. This book helps you:Understand the strengths of Erlang and why its designers included specific features Learn the concepts behind concurrency and Erlang's way of handling it Write efficient Erlang programs while keeping code neat and readable Discover how Erlang fills the requirements for distributed systems Add simple graphical user interfaces with little effort Learn Erlang's tracing mechanisms for debugging concurrent and distributed systems Use the built-in Mnesia database and other table storage features Erlang Programming provides exercises at the end of each chapter and simple examples throughout the book.

What's New in Java 7?


Madhusudhan Konda - 2011
    Madhusudhan Konda provides an overview of these, including strings in switch statements, multi-catch exception handling, try-with-resource statements, the new File System API, extensions of the JVM, support for dynamically-typed languages, and the fork and join framework for task parallelism.