Fundamentals of Software Architecture: An Engineering Approach
Mark Richards - 2020
Until now. This practical guide provides the first comprehensive overview of software architecture's many aspects. You'll examine architectural characteristics, architectural patterns, component determination, diagramming and presenting architecture, evolutionary architecture, and many other topics.Authors Neal Ford and Mark Richards help you learn through examples in a variety of popular programming languages, such as Java, C#, JavaScript, and others. You'll focus on architecture principles with examples that apply across all technology stacks.
Artificial Intelligence: A Modern Approach
Stuart Russell - 1994
The long-anticipated revision of this best-selling text offers the most comprehensive, up-to-date introduction to the theory and practice of artificial intelligence. *NEW-Nontechnical learning material-Accompanies each part of the book. *NEW-The Internet as a sample application for intelligent systems-Added in several places including logical agents, planning, and natural language. *NEW-Increased coverage of material - Includes expanded coverage of: default reasoning and truth maintenance systems, including multi-agent/distributed AI and game theory; probabilistic approaches to learning including EM; more detailed descriptions of probabilistic inference algorithms. *NEW-Updated and expanded exercises-75% of the exercises are revised, with 100 new exercises. *NEW-On-line Java software. *Makes it easy for students to do projects on the web using intelligent agents. *A unified, agent-based approach to AI-Organizes the material around the task of building intelligent agents. *Comprehensive, up-to-date coverage-Includes a unified view of the field organized around the rational decision making pa
The Linux Command Line
William E. Shotts Jr. - 2012
Available here:readmeaway.com/download?i=1593279523The Linux Command Line, 2nd Edition: A Complete Introduction PDF by William ShottsRead The Linux Command Line, 2nd Edition: A Complete Introduction PDF from No Starch Press,William ShottsDownload William Shotts’s PDF E-book The Linux Command Line, 2nd Edition: A Complete Introduction
Well-Designed: How to Use Empathy to Create Products People Love
Jon Kolko - 2014
But in a world obsessed with the new, where cool added features often trump actual customer needs, it’s the consumer who suffers. In our quest to be more agile, we end up creating products that underwhelm.So how does a company like Nest, creator of the mundane thermostat, earn accolades like “beautiful” and “revolutionary” and a $3.2 billion Google buyout? What did Nest do differently to create a household product that people speak of with love?Nest, and companies like it, understand that emotional connection is critical to product development. And they use a clear, repeatable design process that focuses squarely on consumer engagement rather than piling on features for features’ sake.In this refreshingly jargon-free and practical book, product design expert Jon Kolko maps out this process, demonstrating how it will help you and your team conceive and build successful, emotionally resonant products again and again.The key, says Kolko, is empathy. You need to deeply understand customer needs and feelings, and this understanding must be reflected in the product. In successive chapters of the book, we see how leading companies use a design process of storytelling and iteration that evokes positive emotions, changes behavior, and creates deep engagement. Here are the four key steps:1. Determine a product-market fit by seeking signals from communities of users.2. Identify behavioral insights by conducting ethnographic research.3. Sketch a product strategy by synthesizing complex research data into simple insights.4. Polish the product details using visual representations to simplify complex ideas.Kolko walks the reader through each step, sharing eye-opening insights from his fifteen-year career in product design along the way.Whether you’re a designer, a product developer, or a marketer thinking about your company’s next offering, this book will forever change the way you think about—and create—successful products.
Hands-On Machine Learning with Scikit-Learn and TensorFlow
Aurélien Géron - 2017
Now that machine learning is thriving, even programmers who know close to nothing about this technology can use simple, efficient tools to implement programs capable of learning from data. This practical book shows you how.By using concrete examples, minimal theory, and two production-ready Python frameworks—Scikit-Learn and TensorFlow—author Aurélien Géron helps you gain an intuitive understanding of the concepts and tools for building intelligent systems. You’ll learn how to use a range of techniques, starting with simple Linear Regression and progressing to Deep Neural Networks. If you have some programming experience and you’re ready to code a machine learning project, this guide is for you.This hands-on book shows you how to use:Scikit-Learn, an accessible framework that implements many algorithms efficiently and serves as a great machine learning entry pointTensorFlow, a more complex library for distributed numerical computation, ideal for training and running very large neural networksPractical code examples that you can apply without learning excessive machine learning theory or algorithm details
The Back of the Napkin: Solving Problems and Selling Ideas with Pictures
Dan Roam - 2008
Three dots to represent Dallas, Houston, and San Antonio. Three arrows to show direct flights. Problem solved, and the picture made it easy to sell Southwest Airlines to investors and customers. Used properly, a simple drawing on a humble napkin is more powerful than Excel or PowerPoint. It can help crystallize ideas, think outside the box, and communicate in a way that people simply “get”. In this book Dan Roam argues that everyone is born with a talent for visual thinking, even those who swear they can’t draw. Drawing on twenty years of visual problem solving combined with the recent discoveries of vision science, this book shows anyone how to clarify a problem or sell an idea by visually breaking it down using a simple set of visual thinking tools – tools that take advantage of everyone’s innate ability to look, see, imagine, and show. THE BACK OF THE NAPKIN proves that thinking with pictures can help anyone discover and develop new ideas, solve problems in unexpected ways, and dramatically improve their ability to share their insights. This book will help readers literally see the world in a new way.
Mastering Regular Expressions
Jeffrey E.F. Friedl - 1997
They are now standard features in a wide range of languages and popular tools, including Perl, Python, Ruby, Java, VB.NET and C# (and any language using the .NET Framework), PHP, and MySQL.If you don't use regular expressions yet, you will discover in this book a whole new world of mastery over your data. If you already use them, you'll appreciate this book's unprecedented detail and breadth of coverage. If you think you know all you need to know about regularexpressions, this book is a stunning eye-opener.As this book shows, a command of regular expressions is an invaluable skill. Regular expressions allow you to code complex and subtle text processing that you never imagined could be automated. Regular expressions can save you time and aggravation. They can be used to craft elegant solutions to a wide range of problems. Once you've mastered regular expressions, they'll become an invaluable part of your toolkit. You will wonder how you ever got by without them.Yet despite their wide availability, flexibility, and unparalleled power, regular expressions are frequently underutilized. Yet what is power in the hands of an expert can be fraught with peril for the unwary. Mastering Regular Expressions will help you navigate the minefield to becoming an expert and help you optimize your use of regular expressions.Mastering Regular Expressions, Third Edition, now includes a full chapter devoted to PHP and its powerful and expressive suite of regular expression functions, in addition to enhanced PHP coverage in the central "core" chapters. Furthermore, this edition has been updated throughout to reflect advances in other languages, including expanded in-depth coverage of Sun's java.util.regex package, which has emerged as the standard Java regex implementation.Topics include:A comparison of features among different versions of many languages and toolsHow the regular expression engine worksOptimization (major savings available here!)Matching just what you want, but not what you don't wantSections and chapters on individual languagesWritten in the lucid, entertaining tone that makes a complex, dry topic become crystal-clear to programmers, and sprinkled with solutions to complex real-world problems, Mastering Regular Expressions, Third Edition offers a wealth information that you can put to immediateuse.Reviews of this new edition and the second edition: "There isn't a better (or more useful) book available on regular expressions."--Zak Greant, Managing Director, eZ Systems"A real tour-de-force of a book which not only covers the mechanics of regexes in extraordinary detail but also talks about efficiency and the use of regexes in Perl, Java, and .NET...If you use regular expressions as part of your professional work (even if you already have a good book on whatever language you're programming in) I would strongly recommend this book to you."--Dr. Chris Brown, Linux Format"The author does an outstanding job leading the reader from regexnovice to master. The book is extremely easy to read and chock full ofuseful and relevant examples...Regular expressions are valuable toolsthat every developer should have in their toolbox. Mastering RegularExpressions is the definitive guide to the subject, and an outstandingresource that belongs on every programmer's bookshelf. Ten out of TenHorseshoes."--Jason Menard, Java Ranch
Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement
Eric Redmond - 2012
As a modern application developer you need to understand the emerging field of data management, both RDBMS and NoSQL. Seven Databases in Seven Weeks takes you on a tour of some of the hottest open source databases today. In the tradition of Bruce A. Tate's Seven Languages in Seven Weeks, this book goes beyond your basic tutorial to explore the essential concepts at the core each technology. Redis, Neo4J, CouchDB, MongoDB, HBase, Riak and Postgres. With each database, you'll tackle a real-world data problem that highlights the concepts and features that make it shine. You'll explore the five data models employed by these databases-relational, key/value, columnar, document and graph-and which kinds of problems are best suited to each. You'll learn how MongoDB and CouchDB are strikingly different, and discover the Dynamo heritage at the heart of Riak. Make your applications faster with Redis and more connected with Neo4J. Use MapReduce to solve Big Data problems. Build clusters of servers using scalable services like Amazon's Elastic Compute Cloud (EC2). Discover the CAP theorem and its implications for your distributed data. Understand the tradeoffs between consistency and availability, and when you can use them to your advantage. Use multiple databases in concert to create a platform that's more than the sum of its parts, or find one that meets all your needs at once.Seven Databases in Seven Weeks will take you on a deep dive into each of the databases, their strengths and weaknesses, and how to choose the ones that fit your needs.What You Need: To get the most of of this book you'll have to follow along, and that means you'll need a *nix shell (Mac OSX or Linux preferred, Windows users will need Cygwin), and Java 6 (or greater) and Ruby 1.8.7 (or greater). Each chapter will list the downloads required for that database.
Designing with Web Standards
Jeffrey Zeldman - 2003
And code. And code. You build only to rebuild. You focus on making your site compatible with almost every browser or wireless device ever put out there. Then along comes a new device or a new browser, and you start all over again.You can get off the merry-go-round.It's time to stop living in the past and get away from the days of spaghetti code, insanely nested table layouts, tags, and other redundancies that double and triple the bandwidth of even the simplest sites. Instead, it's time for forward compatibility.Isn't it high time you started designing with web standards?Standards aren't about leaving users behind or adhering to inflexible rules. Standards are about building sophisticated, beautiful sites that will work as well tomorrow as they do today. You can't afford to design tomorrow's sites with yesterday's piecemeal methods.Jeffrey teaches you to:- Slash design, development, and quality assurance costs (or do great work in spite of constrained budgets)- Deliver superb design and sophisticated functionality without worrying about browser incompatibilities- Set up your site to work as well five years from now as it does today- Redesign in hours instead of days or weeks- Welcome new visitors and make your content more visible to search engines- Stay on the right side of accessibility laws and guidelines- Support wireless and PDA users without the hassle and expense of multiple versions- Improve user experience with faster load times and fewer compatibility headaches- Separate presentation from structure and behavior, facilitating advanced publishing workflows
Actionable Gamification: Beyond Points, Badges, and Leaderboards
Yu-kai Chou - 2015
Within the industry, studies on game mechanics and behavioral psychology have become proliferate. However, few people understand how to merge the two fields into experience designs that reliably increases business metrics and generates a return on investment. Gamification Pioneer Yu-kai Chou takes reader on a journey to learn his twelve years of obsessive research in creating the Octalysis Framework, and how to apply the framework to create engaging and successful experiences in their product, workplace, marketing, and personal lives. Effective gamification is a combination of game design, game dynamics, behavioral economics, motivational psychology, UX/UI (User Experience and User Interface), neurobiology, technology platforms, as well as ROI-driving business implementations. This book explores the interplay between these disciplines to capture the core principles that contribute to good gamification design. The goal for this book is to become a strategy guide to help readers master the games that truly make a difference in their lives. Readers who absorb the contents of this book will have literally obtained what many companies pay tens of thousands of dollars to acquire. The ultimate aim is to enable the widespread adoption of good gamification and human-focused design in all types of industries.
Learning Agile: Understanding Scrum, XP, Lean, and Kanban
Andrew Stellman - 2013
This book demystifies agile methodologies: why they’re designed the way they are, what problems they address, and the values, principles, and ideas they embody.Learning Agile helps you recognize the principles that apply to development problems specific to your team, company, and projects. You’ll discover how to use that information to guide your choice of methodologies and practices.With this book you’ll learn:Values that effective software teams possessThe methodologies that embody those valuesThe practices that make up those methodologiesAnd principles that help you bring those values, methodologies, and practices to your team and your company
How to Measure Anything: Finding the Value of "Intangibles" in Business
Douglas W. Hubbard - 1985
Douglas Hubbard helps us create a path to know the answer to almost any question in business, in science, or in life . . . Hubbard helps us by showing us that when we seek metrics to solve problems, we are really trying to know something better than we know it now. How to Measure Anything provides just the tools most of us need to measure anything better, to gain that insight, to make progress, and to succeed." -Peter Tippett, PhD, M.D. Chief Technology Officer at CyberTrust and inventor of the first antivirus software "Doug Hubbard has provided an easy-to-read, demystifying explanation of how managers can inform themselves to make less risky, more profitable business decisions. We encourage our clients to try his powerful, practical techniques." -Peter Schay EVP and COO of The Advisory Council "As a reader you soon realize that actually everything can be measured while learning how to measure only what matters. This book cuts through conventional cliches and business rhetoric and offers practical steps to using measurements as a tool for better decision making. Hubbard bridges the gaps to make college statistics relevant and valuable for business decisions." -Ray Gilbert EVP Lucent "This book is remarkable in its range of measurement applications and its clarity of style. A must-read for every professional who has ever exclaimed, 'Sure, that concept is important, but can we measure it?'" -Dr. Jack Stenner Cofounder and CEO of MetraMetrics, Inc.
Thinking in Java
Bruce Eckel - 1998
The author's take on the essence of Java as a new programming language and the thorough introduction to Java's features make this a worthwhile tutorial. Thinking in Java begins a little esoterically, with the author's reflections on why Java is new and better. (This book's choice of font for chapter headings is remarkably hard on the eyes.) The author outlines his thoughts on why Java will make you a better programmer, without all the complexity. The book is better when he presents actual language features. There's a tutorial to basic Java types, keywords, and operators. The guide includes extensive source code that is sometimes daunting (as with the author's sample code for all the Java operators in one listing.) As such, this text will be most useful for the experienced developer. The text then moves on to class design issues, when to use inheritance and composition, and related topics of information hiding and polymorphism. (The treatment of inner classes and scoping will likely seem a bit overdone for most readers.) The chapter on Java collection classes for both Java Developer's Kit (JDK) 1.1 and the new classes, such as sets, lists, and maps, are much better. There's material in this chapter that you are unlikely to find anywhere else. Chapters on exception handling and programming with type information are also worthwhile, as are the chapters on the new Swing interface classes and network programming. Although it adopts somewhat of a mixed-bag approach, Thinking in Java contains some excellent material for the object-oriented developer who wants to see what all the fuss is about with Java.
Think Like a Programmer: An Introduction to Creative Problem Solving
V. Anton Spraul - 2012
In this one-of-a-kind text, author V. Anton Spraul breaks down the ways that programmers solve problems and teaches you what other introductory books often ignore: how to Think Like a Programmer. Each chapter tackles a single programming concept, like classes, pointers, and recursion, and open-ended exercises throughout challenge you to apply your knowledge. You'll also learn how to:Split problems into discrete components to make them easier to solve Make the most of code reuse with functions, classes, and libraries Pick the perfect data structure for a particular job Master more advanced programming tools like recursion and dynamic memory Organize your thoughts and develop strategies to tackle particular types of problems Although the book's examples are written in C++, the creative problem-solving concepts they illustrate go beyond any particular language; in fact, they often reach outside the realm of computer science. As the most skillful programmers know, writing great code is a creative art—and the first step in creating your masterpiece is learning to Think Like a Programmer.
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.