By Steve McConnell, 1993
Widely considered one of the best practical guides to programming, Steve McConnell's original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices--and hundreds of new code samples--illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking--and help you build the highest quality code.
Discover the timeless techniques and strategies that help you:
Design for minimum complexity and maximum creativity
Reap the benefits of collaborative development
Apply defensive programming techniques to reduce and flush out errors
Exploit opportunities to refactor--or evolve--code, and do it safely
Use construction practices that are right-weight for your project
Debug problems quickly and effectively
Resolve critical construction issues early and correctly
Build quality into the beginning, middle, and end of your project
By Gene Kim, 2013
Bill is an IT manager at Parts Unlimited. It's Tuesday morning and on his drive into the office, Bill gets a call from the CEO.
The company's new IT initiative, code named Phoenix Project, is critical to the future of Parts Unlimited, but the project is massively over budget and very late. The CEO wants Bill to report directly to him and fix the mess in ninety days or else Bill's entire department will be outsourced.
With the help of a prospective board member and his mysterious philosophy of The Three Ways, Bill starts to see that IT work has more in common with manufacturing plant work than he ever imagined. With the clock ticking, Bill must organize work flow streamline interdepartmental communications, and effectively serve the other business functions at Parts Unlimited.
In a fast-paced and entertaining style, three luminaries of the DevOps movement deliver a story that anyone who works in IT will recognize. Readers will not only learn how to improve their own IT organizations, they'll never view IT the same way again.
By Paolo Prandoni, 2007
Taking a novel, less classical approach to the subject, the authors have written this book with the conviction that signal processing should be fun. Their treatment is less focused on the mathematics and more on the conceptual aspects, allowing students to think about the subject at a higher conceptual level, thus building the foundations for more advanced topics and helping students solve real-world problems. The last chapter pulls together the individual topics into an in-depth look at the development of an end-to-end communication system. Richly illustrated with examples and exercises in each chapter, the book offers a fresh approach to the teaching of signal processing to upper-level undergraduates.
By Francesca Rossi, 2006
Constraint programming is a powerful paradigm for solving combinatorial search problems that draws on a wide range of techniques from artificial intelligence, computer science, databases, programming languages, and operations research. Constraint programming is currently applied with success to many domains, such as scheduling, planning, vehicle routing, configuration, networks, and bioinformatics.
The aim of this handbook is to capture the full breadth and depth of the constraint programming field and to be encyclopedic in its scope and coverage. While there are several excellent books on constraint programming, such books necessarily focus on the main notions and techniques and cannot cover also extensions, applications, and languages. The handbook gives a reasonably complete coverage of all these lines of work, based on constraint programming, so that a reader can have a rather precise idea of the whole field and its potential. Of course each line of work is dealt with in a survey-like style, where some details may be neglected in favor of coverage. However, the extensive bibliography of each chapter will help the interested readers to find suitable sources for the missing details. Each chapter of the handbook is intended to be a self-contained survey of a topic, and is written by one or more authors who are leading researchers in the area.
The intended audience of the handbook is researchers, graduate students, higher-year undergraduates and practitioners who wish to learn about the state-of-the-art in constraint programming. No prior knowledge about the field is necessary to be able to read the chapters and gather useful knowledge. Researchers from other fields should find in this handbook an effective way to learn about constraint programming and to possibly use some of the constraint programming concepts and techniques in their work, thus providing a means for a fruitful cross-fertilization among different research areas.
The handbook is organized in two parts. The first part covers the basic foundations of constraint programming, including the history, the notion of constraint propagation, basic search methods, global constraints, tractability and computational complexity, and important issues in modeling a problem as a constraint problem. The second part covers constraint languages and solver, several useful extensions to the basic framework (such as interval constraints, structured domains, and distributed CSPs), and successful application areas for constraint programming.
- Covers the whole field of constraint programming
- Survey-style chapters
- Five chapters on applications
By Barbara Ehrenreich, 2001
The bestselling, landmark work of undercover reportage, now updated
Acclaimed as an instant classic upon publication, Nickel and Dimed has sold more than 1.5 million copies and become a staple of classroom reading. Chosen for “one book” initiatives across the country, it has fueled nationwide campaigns for a living wage. Funny, poignant, and passionate, this revelatory firsthand account of life in low-wage America—the story of Barbara Ehrenreich’s attempts to eke out a living while working as a waitress, hotel maid, house cleaner, nursing-home aide, and Wal-Mart associate—has become an essential part of the nation’s political discourse.
Now, in a new afterword, Ehrenreich shows that the plight of the underpaid has in no way eased: with fewer jobs available, deteriorating work conditions, and no pay increase in sight, Nickel and Dimed is more relevant than ever.
By The Princeton Review, 2015
THE PRINCETON REVIEW GETS RESULTS! Ace the GRE verbal sections with 800+ words you need to know to excel.
This eBook edition has been optimized for onscreen viewing with cross-linked quiz questions, answers, and explanations.
Improving your vocabulary is one of the most important steps you can take to enhance your GRE verbal score. The Princeton Review's GRE Power Vocab is filled with useful definitions and study tips for over 800 words, along with skills for decoding unfamiliar ones. You'll also find strategies that help to liven up flashcards and boost memorization techniques.
Everything You Need to Help Achieve a High Score.
• 800+ of the most frequently used vocab words to ensure that you work smarter, not harder
• Effective exercises and games designed to develop mnemonics and root awareness
• Secondary definitions to help you avoid the test's tricks and traps
Practice Your Way to Perfection.
• Over 60 quick quizzes to help you remember what you've learned
• Varied drills using antonyms, analogies, and sentence completions to assess your knowledge
• A diagnostic final exam to check that you've mastered the vocabulary necessary for getting a great GRE score
By Donald W. Loveland, 2013
Demonstrating the different roles that logic plays in the disciplines of computer science, mathematics, and philosophy, this concise undergraduate textbook covers select topics from three different areas of logic: proof theory, computability theory, and nonclassical logic. The book balances accessibility, breadth, and rigor, and is designed so that its materials will fit into a single semester. Its distinctive presentation of traditional logic material will enhance readers' capabilities and mathematical maturity.
The proof theory portion presents classical propositional logic and first-order logic using a computer-oriented (resolution) formal system. Linear resolution and its connection to the programming language Prolog are also treated. The computability component offers a machine model and mathematical model for computation, proves the equivalence of the two approaches, and includes famous decision problems unsolvable by an algorithm. The section on nonclassical logic discusses the shortcomings of classical logic in its treatment of implication and an alternate approach that improves upon it: Anderson and Belnap's relevance logic. Applications are included in each section. The material on a four-valued semantics for relevance logic is presented in textbook form for the first time.
Aimed at upper-level undergraduates of moderate analytical background, Three Views of Logic will be useful in a variety of classroom settings.
Gives an exceptionally broad view of logic
Treats traditional logic in a modern format
Presents relevance logic with applications
Provides an ideal text for a variety of one-semester upper-level undergraduate courses
By Paul Butcher, 2014
Your software needs to leverage multiple cores, handle thousands of users and terabytes of data, and continue working in the face of both hardware and software failure. Concurrency and parallelism are the keys, and Seven Concurrency Models in Seven Weeks equips you for this new world. See how emerging technologies such as actors and functional programming address issues with traditional threads and locks development. Learn how to exploit the parallelism in your computer's GPU and leverage clusters of machines with MapReduce and Stream Processing. And do it all with the confidence that comes from using tools that help you write crystal clear, high-quality code.
This book will show you how to exploit different parallel architectures to improve your code's performance, scalability, and resilience.
Learn about the perils of traditional threads and locks programming and how to overcome them through careful design and by working with the standard library. See how actors enable software running on geographically distributed computers to collaborate, handle failure, and create systems that stay up 24/7/365. Understand why shared mutable state is the enemy of robust concurrent code, and see how functional programming together with technologies such as Software Transactional Memory (STM) and automatic parallelism help you tame it.
You'll learn about the untapped potential within every GPU and how GPGPU software can unleash it. You'll see how to use MapReduce to harness massive clusters to solve previously intractible problems, and how, in concert with Stream Processing, big data can be tamed.
With an understanding of the strengths and weaknesses of each of the different models and hardware architectures, you'll be empowered to tackle any problem with confidence.
What You Need:
The example code can be compiled and executed on *nix, OS X, or Windows. Instructions on how to download the supporting build systems are given in each chapter.
By Claudio Tesoriero, 2013
In modern software applications, often there is the necessity to manage very big amounts of unstructured data with varying schema. In this scenario, instead of relational databases, we can use OrientDB, an open source NoSQL DBMS written in Java. Inspite ofDespite being a document-based database, the relationships are managed with direct connections between records. It supports schema-less, schema-full, and schema-mixed modes.
Getting Started with OrientDB 1.3.0 will be your handy, quick reference guide, for all document-graph DBMS functionality. Administrative tasks, deployment, designing a database, different ways of querying and consuming data - all that you need to know about OrientDB is presented keeping with practical usage in mind. You will be able to install, setup, deploy, and configure databases with OrientDB for applications.
Getting Started with OrientDB 1.3.0 will allow you to use its OreintDB’s main functionality immediately. The book will guide you through the discovery of one of the most powerful NoSQL databases available today. It will then take you through downloading and installing OrientDB, cluster deployment, programming, discovering OrientDB’s potential, and its features.
The book covers useful administrative topics such as import/export, automatic backups, and configuration tips. Furthermore, design concepts like user management, document databases, graph databases, and dictionaries are covered. Finally, concepts and programming examples are shown in Java.Approach
A standard tutorial aimed at making you an OrientDB expert, through the use of practical examples, explained in a step-by-step format.Who this book is for
Getting Started with OrientDB 1.3.0 is great for database designers, developers, and systems engineers. It is assumed that you are familiar with NoSQL concepts, Java, and networking principles.
By Eric Redmond, 2012
Data is getting bigger and more complex by the day, and so are the choices in handling that data. 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.
By Adrian Mouat, 2015
Docker containers hold the promise of breaking down barriers between development and operations, avoiding platform lock-in and easing installation and configuration of common components.
This practical book will take you through the fundamentals of Docker, explaining common idioms and pointing out potential pitfalls. It guides you through the creation and deployment of a simple webapp, showing how Docker can be used at all stages, including development, testing and deployment.
Other topics in this book include using Docker to provide a microservices architecture, how to best do service discovery, and how to bundle applications using Docker. You'll also get an overview of the large ecosystem that has sprung up around Docker, including the various PaaS offerings and configuration tools.
By Peter Wayner, 1996
The Barnes & Noble Review
Are Osama bin Laden and his buddies exchanging information hidden in the digital noise of photos or audio clips? That s what the rumors say. So far the rumors are just rumors, but steganography -- the art of hiding information -- is rapidly gaining recognition as a key information security weapon. If bin Laden isn t using it, the RIAA and MPAA likely will, to digitally watermark their music and movies.
If you want to understand how it works, start with Disappearing Cryptography, Second Edition. Peter Wayner explains each key concept and technique, including several new ones: locking hidden images so they can only be read by an authorized recipient; hiding messages simply by reordering lists (what s really in tonight s Letterman Top Ten?); and new spread spectrum techniques that draw on advanced concepts from wireless communications. He also introduces steganalysis, the science of identifying and compromising files that contain hidden messages. (Fortunately or unfortunately, many current stego algorithms are quite vulnerable.)
The book s code samples -- previously written in Pascal -- have been recast in Java, making them far more accessible (one s even online at Wayner s site, www.wayner.org/texts/mimic/, so you can try it for yourself right now). (Bill Camarda)
Bill Camarda is a consultant, writer, and web/multimedia content developer. His 15 books include Special Edition Using Word 2000 and Upgrading & Fixing Networks For Dummies®, Second Edition.
By Philip K. Dick, 1968
It was January 2021, and Rick Deckard had a license to kill.
Somewhere among the hordes of humans out there, lurked several rogue androids. Deckard's assignment--find them and then..."retire" them. Trouble was, the androids all looked exactly like humans, and they didn't want to be found!
By Martin Gebser, 2012
Answer Set Programming (ASP) is a declarative problem solving approach, initially tailored to modeling problems in the area of Knowledge Representation and Reasoning (KRR). More recently, its attractive combination of a rich yet simple modeling language with high-performance solving capacities has sparked interest in many other areas even beyond KRR. This book presents a practical introduction to ASP, aiming at using ASP languages and systems for solving application problems. Starting from the essential formal foundations, it introduces ASP's solving technology, modeling language and methodology, while illustrating the overall solving process by practical examples
Content from GoodReads