Designing Data-Intensive Applications


Martin Kleppmann - 2015
    Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures

The Go Programming Language


Alan A.A. Donovan - 2015
    It has been winning converts from dynamic language enthusiasts as well as users of traditional compiled languages. The former appreciate the robustness and efficiency that Go's lightweight type system brings to their code; the latter find Go's simplicity and fast tools a refreshing change. Thanks to its well-designed standard libraries and its excellent support for concurrent programming, Go is fast becoming the language of choice for distributed systems. The Go Programming Language is the definitive book on Go for the working programmer. It assumes no prior knowledge of Go, nor any other specific programming language, so you'll find it an accessible guide whether you come from JavaScript, Ruby, Python, Java, or C++. The book will quickly get you started using Go effectively from the beginning, and by the end, you will know how to use it well to write clear, idiomatic and efficient programs to solve real-world problems. You'll understand not just how to use its standard libraries, but how they work, and how to apply the same design techniques to your own projects. The earlier chapters will introduce you to the basic concepts of Go programming---numbers, strings, functions---while at the same time presenting important computer science concepts like recursion, and useful examples of graphics, UTF-8, and error handling. The chapters on methods and interfaces will show you a new way to think about object-oriented programming; the chapter on concurrency explains why concurrency is so important in modern programming, and how Go helps you handle it well. You'll also learn about Go's pragmatic but effective approach to testing; how to build, test, and manage projects using the go tool, and the art of metaprogramming using reflection. The book contains hundreds of interesting and practical examples that cover the whole language and a wide range of applications. The code samples from the book are available for download from gopl.io.

Design Patterns: Elements of Reusable Object-Oriented Software


Erich Gamma - 1994
    Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.

Life in Strangeways - From Riots to Redemption, My 32 Years Behind Bars


Alan Lord - 2015
    He was drawn to trouble like water to a sponge.After experiencing a troubled childhood during which Alan was in and out of children's homes - after being put into care at the tender age of eighteen months old - Alan was a teenager in 1981 when he was sentenced to life in prison for murder during a robbery that had gone badly wrong. He served thirty-two years in various prisons throughout the United Kingdom. This book tells the truth of what goes on behind prison walls and exposes the level of inhumane treatment and brutality that Alan had to endure throughout his thirty-two year journey, during which he never stopped standing up for human rights.Fighting against the degrading prison system of the late twentieth century, Alan helped change the historical humiliating slop out and weekly shower that hundreds of thousands of prisoners had to adhere to throughout the centuries. The battle came at a cost though as it meant more time behind bars, time spent mainly in the segregation unit.Powerfully detailing the way prisoners are treated on a daily basis, Life in Strangeways is a gripping tale that will change the perception of Alan Lord: convicted murderer and riot leader.

The Rust Programming Language


Steve Klabnik
    This is the undisputed go-to guide to Rust, written by two members of the Rust core team, with feedback and contributions from 42 members of the community. The book assumes that you’ve written code in another programming language but makes no assumptions about which one, meaning the material is accessible and useful to developers from a wide variety of programming backgrounds.Known by the Rust community as "The Book," The Rust Programming Language includes concept chapters, where you’ll learn about a particular aspect of Rust, and project chapters, where you’ll apply what you’ve learned so far to build small programs.The Book opens with a quick hands-on project to introduce the basics then explores key concepts in depth, such as ownership, the type system, error handling, and fearless concurrency. Next come detailed explanations of Rust-oriented perspectives on topics like pattern matching, iterators, and smart pointers, with concrete examples and exercises--taking you from theory to practice.The Rust Programming Language will show you how to: Grasp important concepts unique to Rust like ownership, borrowing, and lifetimes Use Cargo, Rust’s built-in package manager, to build and maintain your code, including downloading and building dependencies Effectively use Rust’s zero-cost abstractions and employ your ownYou’ll learn to develop reliable code that’s speed and memory efficient, while avoiding the infamous and arcane programming pitfalls common at the systems level. When you need to dive down into lower-level control, this guide will show you how without taking on the customary risk of crashes or security holes and without requiring you to learn the fine points of a fickle toolchain.You’ll also learn how to create command line programs, build single- and multithreaded web servers, and much more.The Rust Programming Language fully embraces Rust’s potential to empower its users. This friendly and approachable guide will help you build not only your knowledge of Rust but also your ability to program with confidence in a wider variety of domains.

Structure and Interpretation of Computer Programs


Harold Abelson - 1984
    This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published. A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises. In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.

Remote: Office Not Required


David Heinemeier Hansson - 2013
    Moms in particular will welcome this trend.  A full 60% wish they had a flexible work option. But companies see advantages too in the way remote work increases their talent pool, reduces turnover, lessens their real estate footprint, and improves the ability to conduct business across multiple time zones, to name just a few advantages.  In Remote, inconoclastic authors Fried and Hansson will convince readers that letting all or part of work teams function remotely is a great idea--and they're going to show precisely how a remote work setup can be accomplished.

Programming Collective Intelligence: Building Smart Web 2.0 Applications


Toby Segaran - 2002
    With the sophisticated algorithms in this book, you can write smart programs to access interesting datasets from other web sites, collect data from users of your own applications, and analyze and understand the data once you've found it.Programming Collective Intelligence takes you into the world of machine learning and statistics, and explains how to draw conclusions about user experience, marketing, personal tastes, and human behavior in general -- all from information that you and others collect every day. Each algorithm is described clearly and concisely with code that can immediately be used on your web site, blog, Wiki, or specialized application. This book explains:Collaborative filtering techniques that enable online retailers to recommend products or media Methods of clustering to detect groups of similar items in a large dataset Search engine features -- crawlers, indexers, query engines, and the PageRank algorithm Optimization algorithms that search millions of possible solutions to a problem and choose the best one Bayesian filtering, used in spam filters for classifying documents based on word types and other features Using decision trees not only to make predictions, but to model the way decisions are made Predicting numerical values rather than classifications to build price models Support vector machines to match people in online dating sites Non-negative matrix factorization to find the independent features in a dataset Evolving intelligence for problem solving -- how a computer develops its skill by improving its own code the more it plays a game Each chapter includes exercises for extending the algorithms to make them more powerful. Go beyond simple database-backed applications and put the wealth of Internet data to work for you. "Bravo! I cannot think of a better way for a developer to first learn these algorithms and methods, nor can I think of a better way for me (an old AI dog) to reinvigorate my knowledge of the details."-- Dan Russell, Google "Toby's book does a great job of breaking down the complex subject matter of machine-learning algorithms into practical, easy-to-understand examples that can be directly applied to analysis of social interaction across the Web today. If I had this book two years ago, it would have saved precious time going down some fruitless paths."-- Tim Wolters, CTO, Collective Intellect

Windows 10: The Missing Manual


David Pogue - 2015
    Windows 10 (a free update to users of Windows 8 or Windows 7) fixes a number of the problems introduced by the revolution in Windows 8 and offers plenty of new features, such as the new Spartan web browser, Cortana voice-activated "personal assistant," new universal apps (that run on tablet, phone, and computer), and more. But to really get the most out of the new operating system, you're going to need a guide.Thankfully, Windows 10: The Missing Manual will be there to help. Like its predecessors, this book from the founder of Yahoo Tech, previous New York Times columnist, bestselling author, and Missing Manuals creator David Pogue illuminates its subject with technical insight, plenty of wit, and hardnosed objectivity for beginners, veteran standalone PC users, new tablet owners, and those who know their way around a network.

Automate the Boring Stuff with Python: Practical Programming for Total Beginners


Al Sweigart - 2014
    But what if you could have your computer do them for you?In "Automate the Boring Stuff with Python," you'll learn how to use Python to write programs that do in minutes what would take you hours to do by hand no prior programming experience required. Once you've mastered the basics of programming, you'll create Python programs that effortlessly perform useful and impressive feats of automation to: Search for text in a file or across multiple filesCreate, update, move, and rename files and foldersSearch the Web and download online contentUpdate and format data in Excel spreadsheets of any sizeSplit, merge, watermark, and encrypt PDFsSend reminder emails and text notificationsFill out online formsStep-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks.Don't spend your time doing work a well-trained monkey could do. Even if you've never written a line of code, you can make your computer do the grunt work. Learn how in "Automate the Boring Stuff with Python.""

Introduction to Algorithms


Thomas H. Cormen - 1989
    Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.

Dead Wake: The Last Crossing of the Lusitania by Erik Larson | Chapter Compilation


Ethan Thomas - 2016
     The ship was called “magnificent”, consuming as much as one hundred forty tons of coal every day even if it just stands still on the dock, and standing seven stories tall from dock to bridge. She was considered by engineers and shipbuilders as one of the finest examples of man’s ingenuity and creativity. In addition, out of all the ships that were converted for use in the war, the Lusitania was the only one that was exempted and continued on as a cruise ship. However, its job of carrying passengers across the Atlantic Ocean was not the thing that made her famous today. Read more.... Download your copy today! for a limited time discount of only $2.99! Available on PC, Mac, smart phone, tablet or Kindle device. © 2015 All Rights Reserved by Unlimited Press Works, LLC

Creative Visualization: 33 Guided Visualization Scripts to Create the Life of Your Dreams (Law of Attraction in Action)


Louise Stapely - 2014
    You are aware of how powerful this technique can be. You know with 100% certainty that you can have and achieve ANYTHING your heart desires. You have mastered the art of mind power, and truly live the life of your dreams. You desire, you visualize, and you manifest, each and every time. If, on the other hand, you answered No to any of the above questions, then I urge you to learn everything you possibly can about visualization. Learn how it can completely transform your life. In this book, 33 Guided Visualization Scripts to Create the Life of Your Dreams, you will learn what steps to take in order to visualize correctly. There are 33 scripts provided, divided into financial abundance, career, family, relationships, love, health, peace of mind, and addictions. Each script will show you how to engage your senses to boost results and manifest successfully. It doesn’t matter how much you currently have in the bank, it doesn’t matter if you are in debt up to your eyeballs, it doesn’t matter if you feel you will never meet the love of your life, it doesn’t matter if you hate your job and feel there is no way out. I promise you here and now, there is a way out. You deserve to have everything your heart desires. Happiness, success, perfect health, loving relationships, financial abundance, and peace of mind are your birthright. And they are there for the taking. Through positive, consistent visualization, your life will change. It will become the life you have always longed for; always dreamed about. There are no limitations with what you can have, achieve or be. Any limitations you feel there are, are only in your mind, and can be eradicated, SHOULD be eradicated. The sky is the limit. Make a promise to yourself that today, from this very moment, is the first day on your journey to total transformation. No more procrastination, no more ‘starting on Monday’, no more ‘I’m too busy.’ The time is now. Allow magic and miracles into your life.

Street Photography: 50 Ways to Capture Better Shots of Ordinary Life


Eric Kim - 2013
    There is no need for the latest gadgets or trips to “exotic” places. Amazing images can be captured everywhere, all the time, and with the simplest equipment. All you need is a camera, an interest in ordinary people doing everyday things, and—of course—this book. In Street Photography, acclaimed photographer Eric Kim shares everything you need to develop your own street photography skills: how to conquer your fear of shooting in public, tips on choosing your gear, and inspiring techniques to discover the beauty in the mundane. You’ll learn how to chase the all-important “decisive moment,” and even how to find your own style. As a bonus, you’ll get insights from renowned street photographers Ludmilla Morais, Blake Andrews, Thomas Leuthard, and Kramer O’Neill. Street photography is all about discovering the wonderful things most of us are too busy to notice. Let this book inspire you to hit the streets—and turn everyday moments into extraordinary photos! About the author Eric Kim is a street photographer whose blog and sold-out workshops have become today’s most popular resources for aspiring “streettogs.” Eric has exhibited at Gulf Photo Plus, the ThinkTank Gallery in Los Angeles, and Leica stores internationally, and has been featured in Popular Photographer, Black+White, VICE, pixelperfect.com, Salon.com, and on the BBC. He can be found at erickimphotography.com, as well as on Facebook, Twitter, Instagram, and YouTube. Eric lives in Berkeley, CA.

You Look Like a Thing and I Love You: How Artificial Intelligence Works and Why It's Making the World a Weirder Place


Janelle Shane - 2019
    according to an artificial intelligence trained by scientist Janelle Shane, creator of the popular blog "AI Weirdness." She creates silly AIs that learn how to name paint colors, create the best recipes, and even flirt (badly) with humans--all to understand the technology that governs so much of our daily lives.We rely on AI every day for recommendations, for translations, and to put cat ears on our selfie videos. We also trust AI with matters of life and death, on the road and in our hospitals. But how smart is AI really, and how does it solve problems, understand humans, and even drive self-driving cars?Shane delivers the answers to every AI question you've ever asked, and some you definitely haven't--like, how can a computer design the perfect sandwich? What does robot-generated Harry Potter fan-fiction look like? And is the world's best Halloween costume really "Vampire Hog Bride"?In this smart, often hilarious introduction to the most interesting science of our time, Shane shows how these programs learn, fail, and adapt--and how they reflect the best and worst of humanity. You Look Like a Thing and I Love You is the perfect book for anyone curious about what the robots in our lives are thinking.