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

Write Great Code: Volume 1: Understanding the Machine


Randall Hyde - 2004
    A dirty little secret assembly language programmers rarely admit to, however, is that what you really need to learn is machine organization, not assembly language programming. Write Great Code Vol I, the first in a series from assembly language expert Randall Hyde, dives right into machine organization without the extra overhead of learning assembly language programming at the same time. And since Write Great Code Vol I concentrates on the machine organization, not assembly language, the reader will learn in greater depth those subjects that are language-independent and of concern to a high level language programmer. Write Great Code Vol I will help programmers make wiser choices with respect to programming statements and data types when writing software, no matter which language they use.

From Mathematics to Generic Programming


Alexander A. Stepanov - 2014
    If you're a reasonably proficient programmer who can think logically, you have all the background you'll need. Stepanov and Rose introduce the relevant abstract algebra and number theory with exceptional clarity. They carefully explain the problems mathematicians first needed to solve, and then show how these mathematical solutions translate to generic programming and the creation of more effective and elegant code. To demonstrate the crucial role these mathematical principles play in many modern applications, the authors show how to use these results and generalized algorithms to implement a real-world public-key cryptosystem. As you read this book, you'll master the thought processes necessary for effective programming and learn how to generalize narrowly conceived algorithms to widen their usefulness without losing efficiency. You'll also gain deep insight into the value of mathematics to programming--insight that will prove invaluable no matter what programming languages and paradigms you use. You will learn aboutHow to generalize a four thousand-year-old algorithm, demonstrating indispensable lessons about clarity and efficiencyAncient paradoxes, beautiful theorems, and the productive tension between continuous and discreteA simple algorithm for finding greatest common divisor (GCD) and modern abstractions that build on itPowerful mathematical approaches to abstractionHow abstract algebra provides the idea at the heart of generic programmingAxioms, proofs, theories, and models: using mathematical techniques to organize knowledge about your algorithms and data structuresSurprising subtleties of simple programming tasks and what you can learn from themHow practical implementations can exploit theoretical knowledge

Mining the Social Web: Analyzing Data from Facebook, Twitter, LinkedIn, and Other Social Media Sites


Matthew A. Russell - 2011
    You’ll learn how to combine social web data, analysis techniques, and visualization to find what you’ve been looking for in the social haystack—as well as useful information you didn’t know existed.Each standalone chapter introduces techniques for mining data in different areas of the social Web, including blogs and email. All you need to get started is a programming background and a willingness to learn basic Python tools.Get a straightforward synopsis of the social web landscapeUse adaptable scripts on GitHub to harvest data from social network APIs such as Twitter, Facebook, LinkedIn, and Google+Learn how to employ easy-to-use Python tools to slice and dice the data you collectExplore social connections in microformats with the XHTML Friends NetworkApply advanced mining techniques such as TF-IDF, cosine similarity, collocation analysis, document summarization, and clique detectionBuild interactive visualizations with web technologies based upon HTML5 and JavaScript toolkits"A rich, compact, useful, practical introduction to a galaxy of tools, techniques, and theories for exploring structured and unstructured data." --Alex Martelli, Senior Staff Engineer, Google

Interactive Data Visualization for the Web


Scott Murray - 2013
    It’s easy and fun with this practical, hands-on introduction. Author Scott Murray teaches you the fundamental concepts and methods of D3, a JavaScript library that lets you express data visually in a web browser. Along the way, you’ll expand your web programming skills, using tools such as HTML and JavaScript.This step-by-step guide is ideal whether you’re a designer or visual artist with no programming experience, a reporter exploring the new frontier of data journalism, or anyone who wants to visualize and share data.Learn HTML, CSS, JavaScript, and SVG basicsDynamically generate web page elements from your data—and choose visual encoding rules to style themCreate bar charts, scatter plots, pie charts, stacked bar charts, and force-directed layoutsUse smooth, animated transitions to show changes in your dataIntroduce interactivity to help users explore data through different viewsCreate customized geographic maps with dataExplore hands-on with downloadable code and over 100 examples

Version Control with Git


Jon Loeliger - 2009
    Git permits virtually an infinite variety of methods for development and collaboration. Created by Linus Torvalds to manage development of the Linux kernel, it's become the principal tool for distributed version control. But Git's flexibility also means that some users don't understand how to use it to their best advantage. Version Control with Git offers tutorials on the most effective ways to use it, as well as friendly yet rigorous advice to help you navigate Git's many functions. With this book, you will:Learn how to use Git in several real-world development environments Gain insight into Git's common-use cases, initial tasks, and basic functions Understand how to use Git for both centralized and distributed version control Use Git to manage patches, diffs, merges, and conflicts Acquire advanced techniques such as rebasing, hooks, and ways to handle submodules (subprojects) Learn how to use Git with Subversion Git has earned the respect of developers around the world. Find out how you can benefit from this amazing tool with Version Control with Git.

Thinking in C++, Vol. 2: Practical Programming


Bruce Eckel - 2003
    Learn practical programming and best practices. Meet the difficult challenges of C++ development. Build reliable and robust programs. Design Patterns chapter shows sophisticated use of objects, composition and polymorphism. Provides a gentle introduction to multithreaded programming, a feature being considered for the next version of Standard C++. Defensive Programming chapter includes a simple unit-testing framework and debugging techniques. In-depth treatment of Standard C++ Library facilities including strings, iostreams, and the "STL" algorithms and containers. Modern usage of templates, including template metaprogramming. Unravels the perplexities of multiple inheritance. Shows practical uses for RTTI. Explores exception handling in depth and clearly explains exception-safe design. Compliant with the official ISO C++ Standard. Presents results of current research being considered for inclusion in the next revision of Standard C++. All code examples freely downloadable, tested on multiple platforms and compilers including the free GNU C++ compiler on Windows/Mac/Linux. On www.BruceEckel.com: Annotated Solutions Guide Seminars and consulting Free Download—Volume I of this book Annotation Thinking in C++ is ideal for anyone already familiar with C who now wants to learn C++. Eckel has synthesized more than five years of C++ teaching and programming experience into a well-structured course that moves step-by-step through each important C++ concept. He highlights poorly-understood C++ features like virtual functions, which can improve productivity. Editorial Reviews The Barnes & Noble Review Bruce Eckel, one of the world's best programming trainers, has thoroughly updated his classic THINKING IN C++—the book that won the Software Development Magazine Jolt Cola award in its first iteration. The new version is better than ever—which is to say, it's

SQL Cookbook


Anthony Molinaro - 2005
    You'd like to learn how to do more work with SQL inside the database before pushing data across the network to your applications. You'd like to take your SQL skills to the next level.Let's face it, SQL is a deceptively simple language to learn, and many database developers never go far beyond the simple statement: SELECT columns FROM table WHERE conditions. But there is so much more you can do with the language. In the SQL Cookbook, experienced SQL developer Anthony Molinaro shares his favorite SQL techniques and features. You'll learn about:Window functions, arguably the most significant enhancement to SQL in the past decade. If you're not using these, you're missing outPowerful, database-specific features such as SQL Server's PIVOT and UNPIVOT operators, Oracle's MODEL clause, and PostgreSQL's very useful GENERATE_SERIES functionPivoting rows into columns, reverse-pivoting columns into rows, using pivoting to facilitate inter-row calculations, and double-pivoting a result setBucketization, and why you should never use that term in Brooklyn.How to create histograms, summarize data into buckets, perform aggregations over a moving range of values, generate running-totals and subtotals, and other advanced, data warehousing techniquesThe technique of walking a string, which allows you to use SQL to parse through the characters, words, or delimited elements of a stringWritten in O'Reilly's popular Problem/Solution/Discussion style, the SQL Cookbook is sure to please. Anthony's credo is: When it comes down to it, we all go to work, we all have bills to pay, and we all want to go home at a reasonable time and enjoy what's still available of our days. The SQL Cookbook moves quickly from problem to solution, saving you time each step of the way.

Python Programming for Beginners: An Introduction to the Python Computer Language and Computer Programming (Python, Python 3, Python Tutorial)


Jason Cannon - 2014
    There can be so much information available that you can't even decide where to start. Or worse, you start down the path of learning and quickly discover too many concepts, commands, and nuances that aren't explained. This kind of experience is frustrating and leaves you with more questions than answers.Python Programming for Beginners doesn't make any assumptions about your background or knowledge of Python or computer programming. You need no prior knowledge to benefit from this book. You will be guided step by step using a logical and systematic approach. As new concepts, commands, or jargon are encountered they are explained in plain language, making it easy for anyone to understand. Here is what you will learn by reading Python Programming for Beginners: When to use Python 2 and when to use Python 3. How to install Python on Windows, Mac, and Linux. Screenshots included. How to prepare your computer for programming in Python. The various ways to run a Python program on Windows, Mac, and Linux. Suggested text editors and integrated development environments to use when coding in Python. How to work with various data types including strings, lists, tuples, dictionaries, booleans, and more. What variables are and when to use them. How to perform mathematical operations using Python. How to capture input from a user. Ways to control the flow of your programs. The importance of white space in Python. How to organize your Python programs -- Learn what goes where. What modules are, when you should use them, and how to create your own. How to define and use functions. Important built-in Python functions that you'll use often. How to read from and write to files. The difference between binary and text files. Various ways of getting help and find Python documentation. Much more... Every single code example in the book is available to download, providing you with all the Python code you need at your fingertips! Scroll up, click the Buy Now With 1 Click button and get started learning Python today!

Ansible for DevOps


Jeff Geerling - 2015
    This book will help those familiar the command line and basic shell scripting start using Ansible to provision and manage anywhere from one to thousands of servers.The book begins with fundamentals, like installing Ansible, setting up a basic inventory file, and basic concepts, then guides you through Ansible's many uses, including ad-hoc commands, basic and advanced playbooks, application deployments, custom modules, and special cases like running ansible in 'pull' mode when you have thousands of servers to manage (or more). Everything is explained with pertinent real-world examples, often using Vagrant-managed virtual machines.

The Best of 2600: A Hacker Odyssey


Emmanuel Goldstein - 2008
    Find the best of the magazine's writing in Best of 2600: A Hacker Odyssey, a collection of the strongest, most interesting, and often most controversial articles covering 24 years of changes in technology, all from a hacker's perspective. Included are stories about the creation of the infamous tone dialer "red box" that allowed hackers to make free phone calls from payphones, the founding of the Electronic Frontier Foundation, and the insecurity of modern locks.

MySQL Cookbook


Paul DuBois - 2002
    Designed as a handy resource when you need quick solutions or techniques, the book offers dozens of short, focused pieces of code and hundreds of worked-out examples for programmers of all levels who don't have the time (or expertise) to solve MySQL problems from scratch.The new edition covers MySQL 5.0 and its powerful new features, as well as the older but still widespread MySQL 4.1. One major emphasis of this book is how to use SQL to formulate queries for particular kinds of questions, using the mysql client program included in MySQL distributions. The other major emphasis is how to write programs that interact with the MySQL server through an API. You'll find plenty of examples using several language APIs in multiple scenarios and situations, including the use of Ruby to retrieve and format data. There are also many new examples for using Perl, PHP, Python, and Java as well.Other recipes in the book teach you to:Access data from multiple tables at the same time Use SQL to select, sort, and summarize rows Find matches or mismatches between rows in two tables Determine intervals between dates or times, including age calculations Store images into MySQL and retrieve them for display in web pages Get LOAD DATA to read your data files properly or find which values in the file are invalid Use strict mode to prevent entry of bad data into your database Copy a table or a database to another server Generate sequence numbers to use as unique row identifiers Create database events that execute according to a schedule And a lot moreMySQL Cookbook doesn't attempt to develop full-fledged, complex applications. Instead, it's intended to assist you in developing applications yourself by helping you get past problems that have you stumped.

Computer Networking: A Top-Down Approach


James F. Kurose - 2000
    Building on the successful top-down approach of previous editions, this fourth edition continues with an early emphasis on application-layer paradigms and application programming interfaces, encouraging a hands-on experience with protocols and networking concepts.

The C# Programming Yellow Book


Rob Miles - 2010
    With jokes, puns, and a rigorous problem solving based approach. You can download all the code samples used in the book from here: http://www.robmiles.com/s/Yellow-Book...

Doing Data Science


Cathy O'Neil - 2013
    But how can you get started working in a wide-ranging, interdisciplinary field that’s so clouded in hype? This insightful book, based on Columbia University’s Introduction to Data Science class, tells you what you need to know.In many of these chapter-long lectures, data scientists from companies such as Google, Microsoft, and eBay share new algorithms, methods, and models by presenting case studies and the code they use. If you’re familiar with linear algebra, probability, and statistics, and have programming experience, this book is an ideal introduction to data science.Topics include:Statistical inference, exploratory data analysis, and the data science processAlgorithmsSpam filters, Naive Bayes, and data wranglingLogistic regressionFinancial modelingRecommendation engines and causalityData visualizationSocial networks and data journalismData engineering, MapReduce, Pregel, and HadoopDoing Data Science is collaboration between course instructor Rachel Schutt, Senior VP of Data Science at News Corp, and data science consultant Cathy O’Neil, a senior data scientist at Johnson Research Labs, who attended and blogged about the course.