Can computers think? Updated edition, ideal for lay readers and students of computer science, offers well-illustrated, easy-to-read discussions of problem-solving methods and representations, game playing, neural networks, more.
In this how-to companion to ´´Don´t Make Me Think: A Common Sense Approach to Web Usability,´´ Krug spells out an approach to usability testing that anyone can easily apply to their own Web site, application, or other product. This work makes it realistic for teams to test early and often, catching problems while it´s still easy to fix them.
Multidimensional data is data that exists and changes in more than one dimension, by time, or spatially, or both, sometimes dynamically. Think here of tracking hurricane data in order to project the storm´s path, for just one example. As spatial and other multidimensional data structures become increasingly important for the applications in game programming, data mining, bioinformatics, and many other areas--including astronomy, geographic information systems, physics, etc., the need for a comprehensive book on the subject is paramount. This book is truly a life´s work by the author who is clearly the best person for the job.
Jack the Ripper and legacy codebases have more in common than you´d think. Inspired by forensic psychology methods, you´ll learn strategies to predict the future of your codebase, assess refactoring direction, and understand how your team influences the design. With its unique blend of forensic psychology and code analysis, this book arms you with the strategies you need, no matter what programming language you use.
Think, ´´Kanban in a box.? Imagine you ordered Kanban for your team, and got the box delivered to your door. You open the box and right on top is a quick-start guide. Being a novice, you follow the guide, and quickly get up and running. As you become more experienced, the other box contents address common advanced issues you´d face, like right-sizing teams, estimation, hitting deadlines, transitioning from Scrum or Waterfall, deploying components and services, and using Kanban within larger organizations.
Learn how to automate your build, integration, release and deployment process with Jenkins, the popular Java-based open source tool that has revolutionized the way teams think about continuous integration (CI). This concise guide shows you how to seamlessly include Jenkins in the development process?and demonstrates how CI can save you time, money, and many headaches. Streamline software development with Jenkins, the popular Java-based open source tool that has revolutionized the way teams think about Continuous Integration (CI). This complete guide shows you how to automate your build, integration, release, and deployment processes with Jenkins?and demonstrates how CI can save you time, money, and many headaches. Ideal for developers, software architects, and project managers, Jenkins: The Definitive Guide is both a CI tutorial and a comprehensive Jenkins reference. Through its wealth of best practices and real-world tips, you´ll discover how easy it is to set up a CI service with Jenkins. * Learn how to install, configure, and secure your Jenkins server * Organize and monitor general-purpose build jobs * Integrate automated tests to verify builds, and set up code quality reporting * Establish effective team notification strategies and techniques * Configure build pipelines, parameterized jobs, matrix builds, and other advanced jobs * Manage a farm of Jenkins servers to run distributed builds * Implement automated deployment and continuous delivery
Agile revolutionized the way people think about developing software, but there are literally dozens of ways that you can ´´go agile.´´ While one team may find a particular agile practice easy to use, another team may find the same practice devilishly difficult. 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 possess The methodologies that embody those values The practices that make up those methodologies And principles that help you bring those values, methodologies, and practices to your team and your company
Step into the world of Ray Kurzweil, the ´´restless genius´´ (Wall Street Journal) and ´´ultimate thinking machine´´ (Forbes), whose predictions for an age in which man and machine are interchangeable are startling, provocative -- and closer to realization than you think. Imagine a world where the difference between man and machine blurs, where the line between humanity and technology fades, and where the soul and the silicon chip unite. This is not science fiction. This is the twenty-first century according to Ray Kurzweil, the inventor of the most innovative and compelling technology of our era. In his inspired hands, life in the new millennium no longer seems daunting. Instead, it promises to be an age in which the marriage of human sensitivity and artificial intelligence fundamentally alters and improves the way we live. More than just a list of predictions, Kurzweil´s prophetic blueprint for the future guides us through the inexorable advances that will result in: computers exceeding the memory capacity and computational ability of the human brain by the year 2020 (with human-level capabilities not far behind); relationships with automated personalities who will be our teachers, companions, and lovers; and information fed straight into our brains along direct neural pathways. Eventually, the distinction between humans and computers will have become sufficiently blurred that when the machines claim to be conscious, we will believe them.
´´Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. ´´His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. ´´The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers-it is a future classic.´´ - Ralph Johnson , author of Design Patterns ´´If you don´t think you are getting value from your investment in object-oriented programming, this book will tell you what you´ve forgotten to do. ´´Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion.´´ - Dave Collins , author of Designing Object-Oriented User Interfaces ´´Eric weaves real-world experience modeling-and building-business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric´s descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field.´´ - Luke Hohmann , author of Beyond Software Architecture This book belongs on the shelf of every thoughtful software developer. --Kent Beck What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We´ve given away bits and pieces of this knowledge...but we´ve never organized and systematized the principles of building domain logic. This book is important. --Kyle Brown, author of Enterprise Java(TM) Programming with IBM® WebSphere® The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process. Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Dr