Clean Architecture


Robert C. Martin - 2017
    "Uncle Bob" Martin shows how to bring greater professionalism and discipline to application architecture and design.As with his other books, Martin's Clean Architecture doesn't merely present multiple choices and options, and say "use your best judgment": it tells you what choices to make, and why those choices are critical to your success. Martin offers direct, no-nonsense answers to key architecture and design questions like:What are the best high level structures for different kinds of applications, including web, database, thick-client, console, and embedded apps?What are the core principles of software architecture?What is the role of the architect, and what is he/she really trying to achieve?What are the core principles of software design?How do designs and architectures go wrong, and what can you do about it?What are the disciplines and practices of professional architects and designers?Clean Architecture is essential reading for every software architect, systems analyst, system designer, and software manager — and for any programmer who aspires to these roles or is impacted by their work.

Elements of Clojure


Zachary Tellman - 2019
    This is necessary because, in the words of Michael Polanyi, "we can know more than we can tell." Our design choices are not the result of an ineluctable chain of logic; they come from a deeper place, one which is visceral and inarticulate.Polanyi calls this "tacit knowledge", a thing which we only understand as part of something else. When we speak, we do not focus on making sounds, we focus on our words. We understand the muscular act of speech, but would struggle to explain it.To write software, we must learn where to draw boundaries. Good software is built through effective indirection. We seem to have decided that this skill can only be learned through practice; it cannot be taught, except by example. Our decisions may improve with time, but not our ability to explain them. It's true that the study of these questions cannot yield a closed-form solution for judging software design. We can make our software simple, but we cannot do the same to its problem domain, its users, or the physical world. Our tacit knowledge of this environment will always inform our designs.This doesn't mean that we can simply ignore our design process. Polanyi tells us that tacit knowledge only suffices until we fail, and the software industry is awash with failure. Our designs may never be provably correct, but we can give voice to the intuition that shaped them. Our process may always be visceral, but it doesn't have to be inarticulate.And so this book does not offer knowledge, it offers clarity. It is aimed at readers who know Clojure, but struggle to articulate the rationale of their designs to themselves and others. Readers who use other languages, but have a passing familiarity with Clojure, may also find this book useful.

How to Do Ecology: A Concise Handbook


Richard Karban - 2006
    While these are essential, many young ecologists need to figure out how to actually do research themselves. How to Do Ecology provides nuts-and-bolts advice on how to develop a successful thesis and research program. This book presents different approaches to posing testable ecological questions. In particular, it covers the uses, strengths, and limitations of manipulative experiments in ecology. It will help young ecologists consider meaningful treatments, controls, replication, independence, and randomization in experiments, as well as where to do experiments and how to organize a season of work. This book also presents strategies for analyzing natural patterns, the value of alternative hypotheses, and what to do with negative results.Science is only part of being a successful ecologist. This engagingly written book offers students advice on working with other people and navigating their way through the land mines of research. Findings that don't get communicated are of little value. How to Do Ecology suggests effective ways to communicate information in the form of journal articles, oral presentations, and posters. Finally, it outlines strategies for developing successful grant and research proposals. Numerous checklists, figures, and boxes throughout the book summarize and reinforce the main points. In short, this book makes explicit many of the unspoken assumptions behind doing good research in ecology, and provides an invaluable resource for meaningful conversations among ecologists.

The Human Factor: Revolutionizing the Way People Live with Technology


Kim J. Vicente - 2003
    He investigates every level of human activity - from simple matters such as our hand-eye coordination to complex human systems such as government regulatory agencies, and why businesses would benefit from making consumer goods easier to use. He shows us why we all have a vital stake in reforming the aviation industry, the health industry, and the way we live day-to-day with technology.

The Cartoon Guide to Statistics


Larry Gonick - 1993
    Never again will you order the Poisson Distribution in a French restaurant!This updated version features all new material.

The Expectant Dad's Handbook: All you need to know about pregnancy, birth and beyond


Dean Beaumont - 2013
    This exciting new book, from a leading expert in working with expectant dads, doesn’t sideline or speak down to men. Instead it provides an array of targeted information to fully prepare men for their new roles – as both birth partners and fathers.The Expectant Dad’s Handbook is a one-stop guide for men on their path to fatherhood. It provides practical answers to all the questions on the mind of a dad-to-be – from what to expect at each stage of pregnancy to how to cope with any worries and fears about becoming a dad. It also reveals unique insights into a dad’s role during labour, showing key strategies for improving the birth.Both practical and accessible, this guide will provide all the information and advice fathers need for the journey ahead.

The Nature of Code


Daniel Shiffman - 2012
    Readers will progress from building a basic physics engine to creating intelligent moving objects and complex systems, setting the foundation for further experiments in generative design. Subjects covered include forces, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms. The book's examples are written in Processing, an open-source language and development environment built on top of the Java programming language. On the book's website (http://www.natureofcode.com), the examples run in the browser via Processing's JavaScript mode.

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.

The Complete Idiot's Guide to RVing


April Maher - 2001
    An updated and revised guide for the more than 30 million Americans who are living the RV lifestyle and the millions of others who have considered it but have not yet taken the plunge, The Complete Idiot's Guide® to RVing, Second Edition, includes the following: Basic facts about the different types of RVs-camper, van, motor home, bus, or tow rig-and the advantages of each; Advice on buying your RV, from dealer negotiations to acquiring the proper insurance; Driving tips for piloting your RV; Information on how to choose a campground with an eye for water, electricity, propane, wastewater dump, hookups, phone, cable, and campground rules.

The Art of Doing Science and Engineering: Learning to Learn


Richard Hamming - 1996
    By presenting actual experiences and analyzing them as they are described, the author conveys the developmental thought processes employed and shows a style of thinking that leads to successful results is something that can be learned. Along with spectacular successes, the author also conveys how failures contributed to shaping the thought processes. Provides the reader with a style of thinking that will enhance a person's ability to function as a problem-solver of complex technical issues. Consists of a collection of stories about the author's participation in significant discoveries, relating how those discoveries came about and, most importantly, provides analysis about the thought processes and reasoning that took place as the author and his associates progressed through engineering problems.

Pure Mathematics 1: Advanced Level Mathematics


Hugh Neill - 2002
    Pure Mathematics 1 corresponds to unit P1. It covers quadratics, functions, coordinate geometry, circular measure, trigonometry, vectors, series, differentiation and integration.

MATLAB: A Practical Introduction to Programming and Problem Solving


Stormy Attaway - 2009
    It is the only book that gives a full introduction to programming in MATLAB combined with an explanation of MATLAB's powerful functions. The book differs from other texts in that it teaches programming concepts and the use of the built-in functions in MATLAB simultaneously. It presents programming concepts and MATLAB built-in functions side-by-side, giving students the ability to program efficiently and exploit the power of MATLAB to solve problems. The systematic, step-by-step approach, building on concepts throughout the book, facilitates easier learning.Starting with basic programming concepts, such as variables, assignments, input/output, selection, and loop statements, problems are introduced and solved throughout the book. The book is organized into two parts. Part I covers the programming constructs and demonstrates programming versus efficient use of built-in functions to solve problems. Part II describes the applications, including plotting, image processing, and mathematics, needed in basic problem solving. The chapters feature sections called Quick Question! as well as practice problems designed to test knowledge about the material covered. Problems are solved using both The Programming Concept and The Efficient Method, which facilitates understanding the efficient ways of using MATLAB, and also the programming concepts used in these efficient functions and operators. There are also sections on 'common pitfalls' and 'programming guidelines' that direct students towards best practice.This book is ideal for engineers learning to program and model in MATLAB, as well as undergraduates in engineering and science taking a course on MATLAB.

Transport Processes and Separation Process Principles (Includes Unit Operations)


Christie J. Geankoplis - 2003
    Enhancements to this edition include a more thorough coverage of transport processes, plus new or expanded coverage of separation process applications, fluidized beds, non-Newtonian fluids, membrane separation processes and gas-membrane theory, and much more. The book contains 240+ example problems and 550+ homework problems.

Calculus


Dale E. Varberg - 1999
    Covering various the materials needed by students in engineering, science, and mathematics, this calculus text makes effective use of computing technology, graphics, and applications. It presents at least two technology projects in each chapter.

Mind Mapping Secrets - FreeMind Basics: Using Free Software to Create your Mind Maps (Strategies for Success - Mind Maps)


Katie Darden - 2014
     FreeMind is a premier mind mapping software written in Java. It is a high-productivity tool that can make all your online mind mapping simple. Organize, prioritize, know where you are, where you've been and where you're heading with FreeMind. Mind mapping can be used for brainstorming, goal planning, product design, event planning, and so much more - the only limit is your own creativity. Use this guide's step-by-step instructions and screenshots to learn how to create your own digital mind maps. THIS BOOK DOES NOT TEACH YOU MIND MAPPING CONCEPTS OR BASICS. It ONLY shows you how to use the FreeMind software that creates digital mind maps. If you are new to mind maps, you may want to pick up Mind Mapping Secrets - Achieving Your Goals for a quick primer on how to create mind maps using pen and paper. Then take your maps to a new level with this easy to master How To guide today.