Building Evolutionary Architectures: Support Constant Change


Neal Ford - 2017
    Over the past few years, incremental developments in core engineering practices for software development have created the foundations for rethinking how architecture changes over time, along with ways to protect important architectural characteristics as it evolves. This practical guide ties those parts together with a new way to think about architecture and time.

Bayesian Methods for Hackers: Probabilistic Programming and Bayesian Inference


Cameron Davidson-Pilon - 2014
    However, most discussions of Bayesian inference rely on intensely complex mathematical analyses and artificial examples, making it inaccessible to anyone without a strong mathematical background. Now, though, Cameron Davidson-Pilon introduces Bayesian inference from a computational perspective, bridging theory to practice-freeing you to get results using computing power. Bayesian Methods for Hackers illuminates Bayesian inference through probabilistic programming with the powerful PyMC language and the closely related Python tools NumPy, SciPy, and Matplotlib. Using this approach, you can reach effective solutions in small increments, without extensive mathematical intervention. Davidson-Pilon begins by introducing the concepts underlying Bayesian inference, comparing it with other techniques and guiding you through building and training your first Bayesian model. Next, he introduces PyMC through a series of detailed examples and intuitive explanations that have been refined after extensive user feedback. You'll learn how to use the Markov Chain Monte Carlo algorithm, choose appropriate sample sizes and priors, work with loss functions, and apply Bayesian inference in domains ranging from finance to marketing. Once you've mastered these techniques, you'll constantly turn to this guide for the working PyMC code you need to jumpstart future projects. Coverage includes - Learning the Bayesian "state of mind" and its practical implications - Understanding how computers perform Bayesian inference - Using the PyMC Python library to program Bayesian analyses - Building and debugging models with PyMC - Testing your model's "goodness of fit" - Opening the "black box" of the Markov Chain Monte Carlo algorithm to see how and why it works - Leveraging the power of the "Law of Large Numbers" - Mastering key concepts, such as clustering, convergence, autocorrelation, and thinning - Using loss functions to measure an estimate's weaknesses based on your goals and desired outcomes - Selecting appropriate priors and understanding how their influence changes with dataset size - Overcoming the "exploration versus exploitation" dilemma: deciding when "pretty good" is good enough - Using Bayesian inference to improve A/B testing - Solving data science problems when only small amounts of data are available Cameron Davidson-Pilon has worked in many areas of applied mathematics, from the evolutionary dynamics of genes and diseases to stochastic modeling of financial prices. His contributions to the open source community include lifelines, an implementation of survival analysis in Python. Educated at the University of Waterloo and at the Independent University of Moscow, he currently works with the online commerce leader Shopify.

The Feynman Lectures on Physics Vol 1


Richard P. Feynman - 1963
    This edition, which was prepared by Kip S. Thorne (Feynman Professor of Theoretical Physics at California Institute of Technology), fully incorporates all the errata and corrections gathered (but never used in a published edition) by Feynman.

Computer Power and Human Reason: From Judgment to Calculation


Joseph Weizenbaum - 1976
    A classic text by the author who developed ELIZA, a natural-language processing system.

Data Science from Scratch: First Principles with Python


Joel Grus - 2015
    In this book, you’ll learn how many of the most fundamental data science tools and algorithms work by implementing them from scratch. If you have an aptitude for mathematics and some programming skills, author Joel Grus will help you get comfortable with the math and statistics at the core of data science, and with hacking skills you need to get started as a data scientist. Today’s messy glut of data holds answers to questions no one’s even thought to ask. This book provides you with the know-how to dig those answers out. Get a crash course in Python Learn the basics of linear algebra, statistics, and probability—and understand how and when they're used in data science Collect, explore, clean, munge, and manipulate data Dive into the fundamentals of machine learning Implement models such as k-nearest Neighbors, Naive Bayes, linear and logistic regression, decision trees, neural networks, and clustering Explore recommender systems, natural language processing, network analysis, MapReduce, and databases

The Haskell Road to Logic, Maths and Programming


Kees Doets - 2004
    Haskell emerged in the last decade as a standard for lazy functional programming, a programming style where arguments are evaluated only when the value is actually needed. Haskell is a marvellous demonstration tool for logic and maths because its functional character allows implementations to remain very close to the concepts that get implemented, while the laziness permits smooth handling of infinite data structures.This book does not assume the reader to have previous experience with either programming or construction of formal proofs, but acquaintance with mathematical notation, at the level of secondary school mathematics is presumed. Everything one needs to know about mathematical reasoning or programming is explained as we go along. After proper digestion of the material in this book the reader will be able to write interesting programs, reason about their correctness, and document them in a clear fashion. The reader will also have learned how to set up mathematical proofs in a structured way, and how to read and digest mathematical proofs written by others.

God Created the Integers: The Mathematical Breakthroughs That Changed History


Stephen Hawking - 2005
    In this collection of landmark mathematical works, editor Stephen Hawking has assembled the greatest feats humans have ever accomplished using just numbers and their brains.

Types and Programming Languages


Benjamin C. Pierce - 2002
    The study of type systems--and of programming languages from a type-theoretic perspective--has important applications in software engineering, language design, high-performance compilers, and security.This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages. The approach is pragmatic and operational; each new concept is motivated by programming examples and the more theoretical sections are driven by the needs of implementations. Each chapter is accompanied by numerous exercises and solutions, as well as a running implementation, available via the Web. Dependencies between chapters are explicitly identified, allowing readers to choose a variety of paths through the material.The core topics include the untyped lambda-calculus, simple type systems, type reconstruction, universal and existential polymorphism, subtyping, bounded quantification, recursive types, kinds, and type operators. Extended case studies develop a variety of approaches to modeling the features of object-oriented languages.

Python Crash Course: A Hands-On, Project-Based Introduction to Programming


Eric Matthes - 2015
    You'll also learn how to make your programs interactive and how to test your code safely before adding it to a project. In the second half of the book, you'll put your new knowledge into practice with three substantial projects: a Space Invaders-inspired arcade game, data visualizations with Python's super-handy libraries, and a simple web app you can deploy online.As you work through Python Crash Course, you'll learn how to: Use powerful Python libraries and tools, including matplotlib, NumPy, and PygalMake 2D games that respond to keypresses and mouse clicks, and that grow more difficult as the game progressesWork with data to generate interactive visualizationsCreate and customize simple web apps and deploy them safely onlineDeal with mistakes and errors so you can solve your own programming problemsIf you've been thinking seriously about digging into programming, Python Crash Course will get you up to speed and have you writing real programs fast. Why wait any longer? Start your engines and code!

The Systems Bible: The Beginner's Guide to Systems Large and Small: Being the Third Edition of Systemantics


John Gall - 1977
    Hardcover published by Quadragle/The New York Times Book Co., third printing, August 1977, copyright 1975.

Genes vs Cultures vs Consciousness: A Brief Story of Our Computational Minds


Andres Campero - 2019
    It touches on its evolutionary development, its algorithmic nature and its scientific history by bridging ideas across Neuroscience, Computer Science, Biotechnology, Evolutionary History, Cognitive Science, Political Philosophy, and Artificial Intelligence.Never before had there been nearly as many scientists, resources or productive research focused on these topics, and humanity has achieved some understanding and some clarification. With the speed of progress it is timely to communicate an overreaching perspective, this book puts an emphasis on conveying the essential questions and what we know about their answers in a simple, clear and exciting way.Humans, along with the first RNA molecules, the first life forms, the first brains, the first conscious animals, the first societies and the first artificial agents constitute an amazing and crucial development in a path of increasingly complex computational intelligence. And yet, we occupy a minuscule time period in the history of Earth, a history that has been written by Genes, by Cultures and by Consciousnesses. If we abandon our anthropomorphic bias it becomes obvious that Humans are not so special after all. We are an important but short and transitory step among many others in a bigger story. The story of our computational minds, which is ours but not only ours. What is the relationship between computation, cognition and everything else? What is life and how did it originate? What is the role of culture in human minds? What do we know about the algorithmic nature of the mind, can we engineer it? What is the computational explanation of consciousness? What are some possible future steps in the evolution of minds? The underlying thread is the computational nature of the Mind which results from the mixture of Genes, Cultures and Consciousness. While these three interact in complex ways, they are ultimately computational systems on their own which appeared at different stages of history and which follow their own selective processes operating at different time scales. As technology progresses, the distinction between the three components materializes and will be a key determinant of the future.Among the many topics covered are the origin of life, the concept of computation and its relation to Turing Machines, cultural evolution and the notion of a Selfish Meme, free will and determinism, moral relativity, the hard problem of consciousness, the different theories of concepts from the perspective of cognitive science, the current status of AI and Machine Learning including the symbolic vs sub-symbolic dichotomy, the contrast between logical reasoning and neural networks, and the recent history of Deep Learning, Geoffrey Hinton, DeepMind and its algorithm AlphaGo. It also develops on the history of science and looks into the possible future building on the work of authors like Daniel Dennett, Yuval Harari, Richard Dawkins, Francis Crick, George Church, David Chalmers, Susan Carey, Stanislas Dehaene, Robert Boyd, Joseph Henrich, Daniel Kahneman, Moran Cerf, Josh Tenenbaum, David Deutsch, Steven Pinker, Ray Kurzweil, John von Neumann, Herbert Simon and many more. Andres Campero is a researcher and PhD student at the Brain and Cognitive Sciences Department and at the Computer Science and Artificial Intelligence Laboratory at the Massachusetts Institute of Technology (MIT).

In the Plex: How Google Thinks, Works, and Shapes Our Lives


Steven Levy - 2011
    How has Google done it? Veteran technology reporter Steven Levy was granted unprecedented access to the company, and in this revelatory book he takes readers inside Google headquarters—the Googleplex—to show how Google works.While they were still students at Stanford, Google cofounders Larry Page and Sergey Brin revolutionized Internet search. They followed this brilliant innovation with another, as two of Google’s earliest employees found a way to do what no one else had: make billions of dollars from Internet advertising. With this cash cow, Google was able to expand dramatically and take on other transformative projects: more efficient data centers, open-source cell phones, free Internet video (YouTube), cloud computing, digitizing books, and much more.The key to Google’s success in all these businesses, Levy reveals, is its engineering mind-set and adoption of such Internet values as speed, openness, experimentation, and risk taking. After its unapologetically elitist approach to hiring, Google pampers its engineers—free food and dry cleaning, on-site doctors and masseuses—and gives them all the resources they need to succeed. Even today, with a workforce of more than 23,000, Larry Page signs off on every hire.But has Google lost its innovative edge? With its newest initiative, social networking, Google is chasing a successful competitor for the first time. Some employees are leaving the company for smaller, nimbler start-ups. Can the company that famously decided not to be evil still compete?No other book has ever turned Google inside out as Levy does with In the Plex.

Practical Cryptography


Niels Ferguson - 2003
    The gold standard for attaining security is cryptography because it provides the most reliable tools for storing or transmitting digital information. Written by Niels Ferguson, lead cryptographer for Counterpane, Bruce Schneier's security company, and Bruce Schneier himself, this is the much anticipated follow-up book to Schneier's seminal encyclopedic reference, Applied Cryptography, Second Edition (0-471-11709-9), which has sold more than 150,000 copies. Niels Ferguson (Amsterdam, Netherlands) is a cryptographic engineer and consultant at Counterpane Internet Security. He has extensive experience in the creation and design of security algorithms, protocols, and multinational security infrastructures. Previously, Ferguson was a cryptographer for DigiCash and CWI. At CWI he developed the first generation of off-line payment protocols. He has published numerous scientific papers. Bruce Schneier (Minneapolis, MN) is Founder and Chief Technical Officer at Counterpane Internet Security, a managed-security monitoring company. He is also the author of Secrets and Lies: Digital Security in a Networked World (0-471-25311-1).

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.

Connectome: How the Brain's Wiring Makes Us Who We Are


Sebastian Seung - 2012
    Is it in our genes? The structure of our brains? Our genome may determine our eye color and even aspects of our personality. But our friendships, failures, and passions also shape who we are. The question is: how?Sebastian Seung, a dynamic professor at MIT, is on a quest to discover the biological basis of identity. He believes it lies in the pattern of connections between the brain’s neurons, which change slowly over time as we learn and grow. The connectome, as it’s called, is where our genetic inheritance intersects with our life experience. It’s where nature meets nurture.Seung introduces us to the dedicated researchers who are mapping the brain’s connections, neuron by neuron, synapse by synapse. It is a monumental undertaking—the scientific equivalent of climbing Mount Everest—but if they succeed, it could reveal the basis of personality, intelligence, memory, and perhaps even mental disorders. Many scientists speculate that people with anorexia, autism, and schizophrenia are "wired differently," but nobody knows for sure. The brain’s wiring has never been clearly seen.In sparklingly clear prose, Seung reveals the amazing technological advances that will soon help us map connectomes. He also examines the evidence that these maps will someday allow humans to "upload" their minds into computers, achieving a kind of immortality.Connectome is a mind-bending adventure story, told with great passion and authority. It presents a daring scientific and technological vision for at last understanding what makes us who we are. Welcome to the future of neuroscience.