Best of
Computer-Science

2007

Clean Code: A Handbook of Agile Software Craftsmanship


Robert C. Martin - 2007
    But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way. Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmer but only if you work at it. What kind of work will you be doing? You'll be reading code - lots of code. And you will be challenged to think about what's right about that code, and what's wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft. Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code - of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and "smells" gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code. Readers will come away from this book understanding ‣ How to tell the difference between good and bad code‣ How to write good code and how to transform bad code into good code‣ How to create good names, good functions, good objects, and good classes‣ How to format code for maximum readability ‣ How to implement complete error handling without obscuring code logic ‣ How to unit test and practice test-driven development This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.

Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)


Michael T. Nygard - 2007
    Did you design your system to survivef a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatient users?If you're a developer and don't want to be on call for 3AM for the rest of your life, this book will help.In Release It!, Michael T. Nygard shows you how to design and architect your application for the harsh realities it will face. You'll learn how to design your application for maximum uptime, performance, and return on investment.Mike explains that many problems with systems today start with the design.

The Web Application Hacker's Handbook: Discovering and Exploiting Security Flaws


Dafydd Stuttard - 2007
    The authors explain each category of vulnerability using real-world examples, screen shots and code extracts. The book is extremely practical in focus, and describes in detail the steps involved in detecting and exploiting each kind of security weakness found within a variety of applications such as online banking, e-commerce and other web applications. The topics covered include bypassing login mechanisms, injecting code, exploiting logic flaws and compromising other users. Because every web application is different, attacking them entails bringing to bear various general principles, techniques and experience in an imaginative way. The most successful hackers go beyond this, and find ways to automate their bespoke attacks. This handbook describes a proven methodology that combines the virtues of human intelligence and computerized brute force, often with devastating results.The authors are professional penetration testers who have been involved in web application security for nearly a decade. They have presented training courses at the Black Hat security conferences throughout the world. Under the alias "PortSwigger," Dafydd developed the popular Burp Suite of web application hack tools.

Design Patterns in Ruby


Russ Olsen - 2007
    Russ Olsen has done a great job of selecting classic patterns and augmenting these with newer patterns that have special relevance for Ruby. He clearly explains each idea, making a wealth of experience available to Ruby developers for their own daily work."--Steve Metsker, Managing Consultant with Dominion Digital, Inc."This book provides a great demonstration of the key 'Gang of Four' design patterns without resorting to overly technical explanations. Written in a precise, yet almost informal style, this book covers enough ground that even those without prior exposure to design patterns will soon feel confident applying them using Ruby. Olsen has done a great job to make a book about a classically 'dry' subject into such an engaging and even occasionally humorous read."--Peter Cooper"This book renewed my interest in understanding patterns after a decade of good intentions. Russ picked the most useful patterns for Ruby and introduced them in a straightforward and logical manner, going beyond the GoF's patterns. This book has improved my use of Ruby, and encouraged me to blow off the dust covering the GoF book."--Mike Stok" Design Patterns in Ruby is a great way for programmers from statically typed objectoriented languages to learn how design patterns appear in a more dynamic, flexible language like Ruby."--Rob Sanheim, Ruby Ninja, RelevanceMost design pattern books are based on C++ and Java. But Ruby is different--and the language's unique qualities make design patterns easier to implement and use. In this book, Russ Olsen demonstrates how to combine Ruby's power and elegance with patterns, and write more sophisticated, effective software with far fewer lines of code.After reviewing the history, concepts, and goals of design patterns, Olsen offers a quick tour of the Ruby language--enough to allow any experienced software developer to immediately utilize patterns with Ruby. The book especially calls attention to Ruby features that simplify the use of patterns, including dynamic typing, code closures, and "mixins" for easier code reuse.Fourteen of the classic "Gang of Four" patterns are considered from the Ruby point of view, explaining what problems each pattern solves, discussing whether traditional implementations make sense in the Ruby environment, and introducing Ruby-specific improvements. You'll discover opportunities to implement patterns in just one or two lines of code, instead of the endlessly repeated boilerplate that conventional languages often require. Design Patterns in Ruby also identifies innovative new patterns that have emerged from the Ruby community. These include ways to create custom objects with metaprogramming, as well as the ambitious Rails-based "Convention Over Configuration" pattern, designed to help integrate entire applications and frameworks.Engaging, practical, and accessible, Design Patterns in Ruby will help you build better software while making your Ruby programming experience more rewarding.

High Performance Web Sites


Steve Souders - 2007
    Author Steve Souders, in his job as Chief Performance Yahoo!, collected these best practices while optimizing some of the most-visited pages on the Web. Even sites that had already been highly optimized, such as Yahoo! Search and the Yahoo! Front Page, were able to benefit from these surprisingly simple performance guidelines.The rules in High Performance Web Sites explain how you can optimize the performance of the Ajax, CSS, JavaScript, Flash, and images that you've already built into your site -- adjustments that are critical for any rich web application. Other sources of information pay a lot of attention to tuning web servers, databases, and hardware, but the bulk of display time is taken up on the browser side and by the communication between server and browser. High Performance Web Sites covers every aspect of that process.Each performance rule is supported by specific examples, and code snippets are available on the book's companion web site. The rules include how to: Make Fewer HTTP RequestsUse a Content Delivery NetworkAdd an Expires HeaderGzip ComponentsPut Stylesheets at the TopPut Scripts at the BottomAvoid CSS ExpressionsMake JavaScript and CSS ExternalReduce DNS LookupsMinify JavaScriptAvoid RedirectsRemove Duplicates ScriptsConfigure ETagsMake Ajax CacheableIf you're building pages for high traffic destinations and want to optimize the experience of users visiting your site, this book is indispensable.If everyone would implement just 20% of Steve's guidelines, the Web would be adramatically better place. Between this book and Steve's YSlow extension, there's reallyno excuse for having a sluggish web site anymore.-Joe Hewitt, Developer of Firebug debugger and Mozilla's DOM InspectorSteve Souders has done a fantastic job of distilling a massive, semi-arcane art down to a set of concise, actionable, pragmatic engineering steps that will change the world of web performance.-Eric Lawrence, Developer of the Fiddler Web Debugger, Microsoft Corporation

Digital Design and Computer Architecture


David Money Harris - 2007
    Digital Design and Computer Architecture begins with a modern approach by rigorously covering the fundamentals of digital logic design and then introducing Hardware Description Languages (HDLs). Featuring examples of the two most widely-used HDLs, VHDL and Verilog, the first half of the text prepares the reader for what follows in the second: the design of a MIPS Processor. By the end of Digital Design and Computer Architecture, readers will be able to build their own microprocessor and will have a top-to-bottom understanding of how it works--even if they have no formal background in design or architecture beyond an introductory class. David Harris and Sarah Harris combine an engaging and humorous writing style with an updated and hands-on approach to digital design.Unique presentation of digital logic design from the perspective of computer architecture using a real instruction set, MIPS.Side-by-side examples of the two most prominent Hardware Design Languages--VHDL and Verilog--illustrate and compare the ways the each can be used in the design of digital systems.Worked examples conclude each section to enhance the reader's understanding and retention of the material.

Linux System Programming: Talking Directly to the Kernel and C Library


Robert Love - 2007
    With this comprehensive book, Linux kernel contributor Robert Love provides you with a tutorial on Linux system programming, a reference manual on Linux system calls, and an insider’s guide to writing smarter, faster code.Love clearly distinguishes between POSIX standard functions and special services offered only by Linux. With a new chapter on multithreading, this updated and expanded edition provides an in-depth look at Linux from both a theoretical and applied perspective over a wide range of programming topics, including:A Linux kernel, C library, and C compiler overviewBasic I/O operations, such as reading from and writing to filesAdvanced I/O interfaces, memory mappings, and optimization techniquesThe family of system calls for basic process managementAdvanced process management, including real-time processesThread concepts, multithreaded programming, and PthreadsFile and directory managementInterfaces for allocating memory and optimizing memory accessBasic and advanced signal interfaces, and their role on the systemClock management, including POSIX clocks and high-resolution timers

What Every Programmer Should Know About Memory


Ulrich Drepper - 2007
    Hardware designers have come up with ever more sophisticated memory handling and acceleration techniques–such as CPU caches–but these cannot work optimally without some help from the programmer. Unfortunately, neither the structure nor the cost of using the memory subsystem of a computer or the caches on CPUs is well understood by most programmers. This paper explains the structure of memory subsystems in use on modern commodity hardware, illustrating why CPU caches were developed, how they work, and what programs should do to achieve optimal performance by utilizing them.

Processing: A Programming Handbook for Visual Designers and Artists


Casey Reas - 2007
    This book is an introduction to the concepts of computer programming within the context of the visual arts. It offers a comprehensive reference and text for Processing (www.processing.org), an open-source programming language that can be used by students, artists, designers, architects, researchers, and anyone who wants to program images, animation, and interactivity. The ideas in Processing have been tested in classrooms, workshops, and arts institutions, including UCLA, Carnegie Mellon, New York University, and Harvard University. Tutorial units make up the bulk of the book and introduce the syntax and concepts of software (including variables, functions, and object-oriented programming), cover such topics as photography and drawing in relation to software, and feature many short, prototypical example programs with related images and explanations. More advanced professional projects from such domains as animation, performance, and typography are discussed in interviews with their creators. "Extensions" present concise introductions to further areas of investigation, including computer vision, sound, and electronics. Appendixes, references to additional material, and a glossary contain additional technical details. Processing can be used by reading each unit in order, or by following each category from the beginning of the book to the end. The Processing software and all of the code presented can be downloaded and run for future exploration.Includes essays by Alexander R. Galloway, Golan Levin, R. Luke DuBois, Simon Greenwold, Francis Li, and Hernando Barragan and interviews with Jared Tarbell, Martin Wattenberg, James Paterson, Erik van Blockland, Ed Burton, Josh On, Jurg Lehni, Auriea Harvey and Michael Samyn, Mathew Cullen and Grady Hall, Bob Sabiston, Jennifer Steinkamp, Ruth Jarman and Joseph Gerhardt, Sue Costabile, Chris Csikszentmihalyi, Golan Levin and Zachary Lieberman, and Mark Hansen.Casey Reas is Associate Professor in the Design Media Arts Department at the University of California, Los Angeles. Ben Fry is Nierenburg Chair of Design in the School of Design at Carnegie Mellon University, 2006-2007."

Core Memory: A Visual Survey of Vintage Computers


John Alderman - 2007
    Vivid photos capture these historically important machinesincluding the Eniac, Crays 13, Apple I and IIwhile authoritative text profiles each, telling the stories of their innovations and peculiarities. Thirty-five machines are profiled in over 100 extraordinary color photographs, making Core Memory a surprising addition to the library of photography collectors and the ultimate geek-chic gift.

Numerical Recipes: The Art of Scientific Computing


William H. Press - 2007
    Widely recognized as the most comprehensive, accessible and practical basis for scientific computing, this new edition incorporates more than 400 Numerical Recipes routines, many of them new or upgraded. The executable C++ code, now printed in color for easy reading, adopts an object-oriented style particularly suited to scientific applications. The whole book is presented in the informal, easy-to-read style that made earlier editions so popular. Please visit www.nr.com or www.cambridge.org/us/numericalrecipes for more details. More information concerning licenses is available at: www.nr.com/licenses New key features: 2 new chapters, 25 new sections, 25% longer than Second Edition Thorough upgrades throughout the text Over 100 completely new routines and upgrades of many more. New Classification and Inference chapter, including Gaussian mixture models, HMMs, hierarchical clustering, Support Vector MachinesNew Computational Geometry chapter covers KD trees, quad- and octrees, Delaunay triangulation, and algorithms for lines, polygons, triangles, and spheres New sections include interior point methods for linear programming, Monte Carlo Markov Chains, spectral and pseudospectral methods for PDEs, and many new statistical distributions An expanded treatment of ODEs with completely new routines Plus comprehensive coverage of linear algebra, interpolation, special functions, random numbers, nonlinear sets of equations, optimization, eigensystems, Fourier methods and wavelets, statistical tests, ODEs and PDEs, integral equations, and inverse theory

Computational Complexity


Sanjeev Arora - 2007
    Requiring essentially no background apart from mathematical maturity, the book can be used as a reference for self-study for anyone interested in complexity, including physicists, mathematicians, and other scientists, as well as a textbook for a variety of courses and seminars. More than 300 exercises are included with a selected hint set.

Introduction to Modern Cryptography: Principles and Protocols


Jonathan Katz - 2007
    Introduction to Modern Cryptography provides a rigorous yet accessible treatment of modern cryptography, with a focus on formal definitions, precise assumptions, and rigorous proofs.The authors introduce the core principles of modern cryptography, including the modern, computational approach to security that overcomes the limitations of perfect secrecy. An extensive treatment of private-key encryption and message authentication follows. The authors also illustrate design principles for block ciphers, such as the Data Encryption Standard (DES) and the Advanced Encryption Standard (AES), and present provably secure constructions of block ciphers from lower-level primitives. The second half of the book focuses on public-key cryptography, beginning with a self-contained introduction to the number theory needed to understand the RSA, Diffie-Hellman, El Gamal, and other cryptosystems. After exploring public-key encryption and digital signatures, the book concludes with a discussion of the random oracle model and its applications.Serving as a textbook, a reference, or for self-study, Introduction to Modern Cryptography presents the necessary tools to fully understand this fascinating subject.

Algorithmic Game Theory


Noam Nisan - 2007
    More than 40 of the top researchers in this field have written chapters that go from the foundations to the state of the art. Basic chapters on algorithmic methods for equilibria, mechanism design and combinatorial auctions are followed by chapters on incentives and pricing, cost sharing, information markets and cryptography and security. Students, researchers and practitioners alike need to learn more about these fascinating theoretical developments and their widespread practical application.

Google Hacking: An Ethical Hacking Guide To Google


Ankit Fadia - 2007
    Google Hacking teaches people how to get the most out of this revolutionary search engine. Not only will this book teach readers how Google works, but it will also empower them with the necessary skills to make their everyday searches easier, more efficient, and more productive. Google Hacking also demonstrates how Google can be used for negative means. It's immense searching power, means that everyone, including cyber criminals, can feasibly access confidential data, such as company presentations, budgets, blueprints, even credit card numbers, with just the click of a mouse. Using numerous examples, case studies, and screenshots, this book explains the art of ethical Google Hacking -- it not only teaches readers how Google works, but it provides them with the knowledge they need to protect their data and systems from getting Google Hacked. This is the only book you need to maximize (and protect yourself) from Google searches!

Advanced Windows Debugging


Mario Hewardt - 2007
    This book stands out from all other Win32 debugging literature, thanks to its in-depth examples-including resolving intricate problems like stack and heap corruptions." -- Kinshuman, Development Lead, Windows Core OS Division, Microsoft The First In-Depth, Real-World, Insider's Guide to Powerful Windows Debugging For Windows developers, few tasks are more challenging than debugging--or more crucial. Reliable and realistic information about Windows debugging has always been scarce. Now, with over 15 years of experience two of Microsoft's system-level developers present a thorough and practical guide to Windows debugging ever written. Mario Hewardt and Daniel Pravat cover debugging throughout the entire application lifecycle and show how to make the most of the tools currently available--including Microsoft's powerful native debuggers and third-party solutions. To help you find real solutions fast, this book is organized around real-world debugging scenarios. Hewardt and Pravat use detailed code examples to illuminate the complex debugging challenges professional developers actually face. From core Windows operating system concepts to security, Windows(R) Vista(TM) and 64-bit debugging, they address emerging topics head-on-and nothing is ever oversimplified or glossed over! This book enables you to Master today's most powerful Windows debugging tools, including NTSD, CDB, WinDbg, KD, and ADPlus Debug code that wasn't designed or written for easy debugging Understand debuggers "under the hood," and manage symbols and sources efficiently Debug complex memory corruptions related to stacks and heaps Resolve complex security problems Debug across processes: identity tracking, RPC debugger extensions, and tracking IPCs with Ethereal Find and fix resource leaks, such as memory and handle leaks. Debug common thread synchronization problems Learn when and how to write custom debugger extensions Perform "postmortem debugging" using crash dumps and Windows Error Reporting Automate debugging with DebugDiag and the Analyze Debugger command Whether you're a system-level or application developer, Advanced Windows Debugging delivers the deep understanding of debugging that could save you weeks on your very next project. Part I Overview Chapter 1 Introduction to the Tools Chapter 2 Introduction to the Debuggers Chapter 3 Debugger Uncovered Chapter 4 Managing Symbol and Source Files Part II Applied Debugging Chapter 5 Memory Corruptions Part I - Stacks Chapter 6 Memory Corruptions Part I - Heaps Chapter 7 Security Chapter 8 Inter-process Communication Chapter 9 Resource Leaks Chapter 10 Synchronization Part III Advanced Topics Chapter 11 Writing Custom Debugger Extensions Chapter 12 64-bit Debugging Chapter 13 Postmortem Debugging Chapter 14 Power Tools Chapter 15 Windows Vista Fundamentals Appendix A Application Verifier Test Settings If you like Advanced Windows Debugging, keep an eye out for ADVANCED .NET DEBUGGING COMING IN NOV. 2009.

Game Physics Engine Development [With CDROM]


Ian Millington - 2007
    Physics engines are the software programs that run these simulations. Building an engine is difficult, however. There are a large number of new developers (and hobbyists) coming into this market who need help through this complex process. Current introductory books are inadequate; they don't bring enough real-world programming experience to the task. There is a need for an introductory book on game physics with solid coding guidance but which limits the math content. Ian Millington brings his extensive professional programming experience to this problem. He has developed games since 1987, has studied AI and mathematics at the PhD level, and founded Mindlathe Ltd., a company that designed and built commercial physics engines. Physics Engine Development carefully describes each step in the creation of a robust, usable physics engine. It introduces the mathematical concepts in a clear and simple manner, keeping to high school level topics and building a physics code library as it goes. Each new concept is explained in diagrams and code to make sure that even the most novice of game programmers understands. The companion CD-ROM includes the source code for a complete physics engine of commercial quality. This book will serve as a introduction to more mathematically advanced books on game physics, such as Dave Eberly's Game Physics. * Uses only high school algebra* Shows how to build a complete system based on professional principles* CD-ROM with C++ source code for a full commercial-quality physics engine

Geometric Folding Algorithms


Erik D. Demaine - 2007
    Folding and unfolding problems have been implicit since Albrecht Durer in the early 1500s, but have only recently been studied in the mathematical literature. Over the past decade, there has been a surge of interest in these problems, with applications ranging from robotics to protein folding. A proof shows that it is possible to design a series of jointed bars moving only in a flat plane that can sign a name or trace any other algebraic curve. One remarkable algorithm shows you can fold any straight-line drawing on paper so that the complete drawing can be cut out with one straight scissors cut. Aimed primarily at advanced undergraduate and graduate students in mathematics or computer science, this lavishly illustrated book will fascinate a broad audience, from high school students to researchers.

Linux Fundamentals


Paul Cobbaut - 2007
    For self-study, the intent is to read this book next to a working Linux computer so you can immediately do every subject, practicing each command.This book is aimed at novice Linux system administrators (and might be interesting and useful for home users that want to know a bit more about their Linux system). However, this book is not meant as an introduction to Linux desktop applications like text editors, browsers, mail clients, multimedia or office applications.- See more at: http://ebookjunkie.com/free-ebook/lin...

The Definitive Guide to the Xen Hypervisor


David Chisnall - 2007
    Get under the hood of Xen, the high performance virtualization software, with this text.

Fedora Linux Toolbox: 1000+ Commands for Fedora, CentOS and Red Hat Power Users


Christopher Negus - 2007
    Try out more than 1,000 commands to find and get software, monitor system health and security, and access network resources. Then, apply the skills you learn from this book to use and administer desktops and servers running Fedora, CentOS, Red Hat Enterprise Linux, or any other Linux distribution.

Analyzing Ecological Data


Alain F. Zuur - 2007
    The answer is always the same and along the lines of 'What are your underlying questions?', 'What do you want to show?'. The answers to these questions provide the starting point for a detailed discussion on the ecological background and purpose of the study. This then gives the basis for deciding on the most appropriate analytical approach. Therefore, a better start- ing point for an ecologist is to avoid the phrase 'test' and think in terms of 'analy- sis'. A test refers to something simple and unified that gives a clear answer in the form of a p-value: something rarely appropriate for ecological data. In practice, one has to apply a data exploration, check assumptions, validate the models, per- haps apply a series of methods, and most importantly, interpret the results in terms of the underlying ecology and the ecological questions being investigated. Ecology is a quantitative science trying to answer difficult questions about the complex world we live in. Most ecologists are aware of these complexities, but few are fully equipped with the statistical sophistication and understanding to deal with them.

Memory Systems: Cache, Dram, Disk


Bruce Jacob - 2007
    You learn how to to tackle the challenging optimization problems that result from the side-effects that can appear at any point in the entire hierarchy.As a result you will be able to design and emulate the entire memory hierarchy.

Digital Watermarking and Steganography


Ingemar J. Cox - 2007
    Unfortunately, along the way, individuals may choose to intervene and take this content for themselves. Digital watermarking and steganography technology greatly reduces the instances of this by limiting or eliminating the ability of third parties to decipher the content that he has taken. The many techiniques of digital watermarking (embedding a code) and steganography (hiding information) continue to evolve as applications that necessitate them do the same. The authors of this second edition provide an update on the framework for applying these techniques that they provided researchers and professionals in the first well-received edition. Steganography and steganalysis (the art of detecting hidden information) have been added to a robust treatment of digital watermarking, as many in each field research and deal with the other. New material includes watermarking with side information, QIM, and dirty-paper codes. The revision and inclusion of new material by these influential authors has created a must-own book for anyone in this profession.This new edition now contains essential information on steganalysis and steganographyNew concepts and new applications including QIM introducedDigital watermark embedding is given a complete update with new processes and applications

Routing Protocols and Concepts, CCNA Exploration Companion Guide (Cisco Systems Networking Academy Program)


Rick Graziani - 2007
    Book by Graziani, Rick, Johnson, Allan

Pro JavaScript Design Patterns


Ross Harmes - 2007
    But there is more power waiting to be unlockedJavaScript is capable of full objectoriented capabilities, and by applyingobject-oriented principles, best practices, and design patterns to your code, you can make it more powerful, more efficient, and easier to work with alone or as part of a team.With Pro JavaScript Design Patterns, you'll start with the basics of objectoriented programming in JavaScript applicable to design patterns, including making JavaScript more expressive, inheritance, encapsulation, information hiding, and more. With that covered, you can kickstart your JavaScript development in the second part of the book, where you'll find detail on how to implement and take advantage of several design patterns in JavaScript, including composites, decorators, facades, adapters, and many more.Each chapter is packed with realworld examples of how the design patterns are best used and expert advice on writing better code, as well as what to watch out for. Along the way you'll discover how to create your own libraries and APIs for even more efficient coding.Master the basics of objectoriented programming in JavaScript, as they apply to design patterns Apply design patterns to your kickstart your JavaScript development Work through several realworld examples What you'll learn How to apply objectoriented programming techniques in JavaScript How to take advantage of inheritance, interfaces, and encapsulation and information hiding to kickstart your JavaScript development How to implement several design patterns in your JavaScript projects, including factory, facade, bridge, composite, adapter, decorator, flyweight, proxy, command, observer, and chain of responsibility How to make your code easier to manage in a team environment, as well as on your own How to create your own libraries and APIs Who this book is forThis book will be an invaluable learning tool for any experienced JavaScript developer. Table of Contents Expressive JavaScript Interfaces Encapsulation and Information Hiding Inheritance The Singleton Pattern Chaining The Factory Pattern The Bridge Pattern The Composite Pattern The Facade Pattern The Adapter Pattern The Decorator Pattern The Flyweight Pattern The Proxy Pattern The Observer Pattern The Command Pattern The Chain of Responsibility Pattern

Nonlinear Dimensionality Reduction (Information Science And Statistics)


John A. Lee - 2007
    Each description starts from intuitive ideas, develops the necessary mathematical details, and ends by outlining the algorithmic implementation. The text provides a lucid summary of facts and concepts relating to well-known methods as well as recent developments in nonlinear dimensionality reduction. Methods are all described from a unifying point of view, which helps to highlight their respective strengths and shortcomings. The presentation will appeal to statisticians, computer scientists and data analysts, and other practitioners having a basic background in statistics or computational learning.

Forth Programmer's Handbook


Edward K. Conklin - 2007
    Written for readers with programming backgrounds but not necessarily with prior exposure to Forth, it offers comprehensive coverage of all major aspects of the language, from basic principles to advanced concepts such as multitasking and cross-compiling for embedded systems. It covers nearly 400 commands, including ANS Forth words and many common extensions. The book describes how programmers use Forth to solve problems, serves as a reference for experienced programmers and presents the language's history and rationale. Forth was developed at the National Radio Astronomy Laboratory in the early 1970s; the authors were among its original developers and founders of FORTH, Inc., a premier supplier of Forth products and services. Elizabeth D. Rather chaired the Technical Committee that produced the ANSI Standard for Forth in 1994.

The Unofficial LEGO MINDSTORMS NXT Inventor's Guide


David J. Perdue - 2007
    With these parts you can create thousands of unique, intelligent robots. The Unofficial LEGO MINDSTORMS NXT Inventor's Guide helps you to harness the capabilities of the NXT set and effectively plan, build, and program your own NXT robots.The first part of the book contains a brief introduction to the NXT set. You'll then examine the pieces in the NXT set and the roles they play in construction. Next, you'll learn practical building techniques, like how to build sturdy structures and work with gears. Then it's time to learn how to program with the official NXT-G programming language (and learn a bit about several unofficial programming languages). You'll also learn what author David J. Perdue calls the MINDSTORMS method: a strategy for creating your own robots. Finally, you'll follow step-by-step instructions for building, programming, and testing six sample robots (all of which can be built using only the parts found in one NXT set). These six robots include:Zippy-Bot, a two-wheeled vehicle with a ball caster Bumper-Bot, a version of Zippy-Bot that explores your room and avoids objects Claw-Bot, a version of Zippy-Bot that searches for objects and pushes them away with its claw Tag-Bot, a four-wheeled steering vehicle that dashes around while you try to "tag" it with a flashlight Guard-Bot, a six-legged walking robot that launches a ball at intruders Golf-Bot, a stationary robot that finds a target and then hits a ball into the target You'll also find an NXT-G Quick Reference, which provides information on the 30 types of standard programming blocks, and the LEGO MINDSTORMS NXT Piece Library, which features detailed information and images of the more than 80 types of LEGO pieces in the NXT set.So go ahead. Grab your NXT set, fire up your creative mind, and see what you can invent with The Unofficial LEGO MINDSTORMS NXT Inventor's Guide. Covers the NXT 1.0 Kit.

Riding the Whirlwind: Connecting People and Organisations in a Culture of Innovation


Fons Trompenaars - 2007
    What is lacking is a practical book that brings these ideas together. 'Riding The Whirlwind' aims to do just that by reconnecting people, teams and organization to create constant renewal of talent & motivation.

Soft Computing


D.K. Pratihar - 2007
    In this book, the working cycle of a GA is explained in detail. It discusses the mechanisms of some specialized Gas with examples.

Mastering Perl


Brian D. Foy - 2007
    Mastering Perl pulls everything together to show you how to bend Perl to your will. It convey's Perl's special models and programming idioms. This book isn't a collection of clever tricks, but a way of thinking about Perl programming so you can integrate the real-life problems of debugging, maintenance, configuration, and other tasks you encounter as a working programmer. The book explains how to:Use advanced regular expressions, including global matches, lookarounds, readable regexes, and regex debugging Avoid common programing problems with secure programming techniques Profile and benchmark Perl to find out where to focus your improvements Wrangle Perl code to make it more presentable and readable See how Perl keeps track of package variables and how you can use that for some powerful tricks Define subroutines on the fly and turn the tables on normal procedural programming. Modify and jury rig modules to fix code without editing the original source Let your users configure your programs without touching the code Learn how you can detect errors Perl doesn't report, and how to tell users about them Let your Perl program talk back to you by using Log4perl Store data for later use in another program, a later run of the same program, or to send them over a network Write programs as modules to get the benefit of Perl's distribution and testing tools Appendices include "brian's Guide to Solving Any Perl Problem" to improve your troubleshooting skills, as well as suggested reading to continue your Perl education. Mastering Perl starts you on your path to becoming the person with the answers, and, failing that, the person who knows how to find the answers or discover the problem.

Computational Intelligence: Concepts to Implementations


Russell C. Eberhart - 2007
    This book integrates various natural and engineering disciplines to establish Computational Intelligence. This is the first comprehensive textbook on the subject, supported with lots of practical examples. It asserts that computational intelligence rests on a foundation of evolutionary computation. This refreshing view has set the book apart from other books on computational intelligence.This book lays emphasis on practical applications and computational tools, which are very useful and important for further development of the computational intelligence field. Focusing on evolutionary computation, neural networks, and fuzzy logic, the authors have constructed an approach to thinking about and working with computational intelligence that has, in their extensive experience, proved highly effective. The book moves clearly and efficiently from concepts and paradigms to algorithms and implementation techniques by focusing, in the early chapters, on the specific con. It explores a number of key themes, including self-organization, complex adaptive systems, and emergent computation. It details the metrics and analytical tools needed to assess the performance of computational intelligence tools. The book concludes with a series of case studies that illustrate a wide range of successful applications.This book will appeal to professional and academic researchers in computational intelligence applications, tool development, and systems.

Wi-Fi(tm), Bluetooth(tm), Zigbee(tm) and Wimax(tm)


Houda Labiod - 2007
    These technologies are considered to be important topics in the telecommunication industry in the next decade. Some critical subjects are particularly developed such as security, quality of service, roaming and power conservation. The book also includes some chapters on practical aspects.

Theory of Applied Robotics: Kinematics, Dynamics, and Control


Reza N. Jazar - 2007
    Many of the new topics introduced here are a direct result of student feedback that helped me refine and clarify the material. My intention when writing this book was to develop material that I would have liked to had available as a student. Hopefully, I have succeeded in developing a reference that covers all aspects of robotics with sufficient detail and explanation. The first edition of this book was published in 2007 and soon after its publication it became a very popular reference in the field of robotics. I wish to thank the many students and instructors who have used the book or referenced it. Your questions, comments and suggestions have helped me create the second edition. Preface This book is designed to serve as a text for engineering students. It introduces the fundamental knowledge used in robotics. This knowledge can be utilized to develop computer programs for analyzing the kinematics, dynamics, and control of robotic systems.

Ray Tracing from the Ground Up


Kevin Suffern - 2007
    This book takes readers through the whole process of building a modern ray tracer from scratch in C++. All concepts and processes are explained in detail with the aid of hundreds of diagrams, ray-traced images, and sample code. It is suitable for undergraduate and graduate computer graphics courses and for individual programmers who would like to learn ray tracing.

Digital Image Processing: An Algorithmic Introduction Using Java


Wilhelm Burger - 2007
    Formal and mathematical aspects are discussed at a fundamental level and various practical examples and exercises supplement the text. The book uses the image processing environment ImageJ, freely distributed by the National Institute of Health. A comprehensive website supports the book, and contains full source code for all examples in the book, a question and answer forum, slides for instructors, etc. Digital Image Processing in Java is the definitive textbook for computer science students studying image processing and digital processing.

Fractals, Visualization and J


Clifford A. Reiter - 2007
    Designed for classroom use or individual learning. J is freely available and no prior experience with J is required. Experiments are hands on explorations that readers can duplicate. Topics include fractals, time series, iterated function systems, chaos and symmetry, cellular automata, complex dynamics, image processing, ray tracing and Open GL.

Digital Interactive Installations: Programming Interactive Installations Using the Software Package Max/Msp/Jitter


Frank Blum - 2007
    In the beginning, a brief overview of the present scientific discourse on the key issues interactivity and interface design are given. Furthermore, it portrays exceptional examples of digital art within the past five years, focusing on the main themes of digital installations and software art. This is followed by a description of Max's main features and programming methods, its extensibility with control devices and micro controllers, as well as differences to important alternative graphical programming environments such as Pure data and vvvv. The second part documents the whole process of creating an interactive installation using Max/MSP and its graphics extension Jitter. This includes a description of the creative concept, the different parts of the soft- and hardware as well as some of their important key techniques. Finally, a summary of user feedback and a personal reflection on the project is given. The book is dedicated to both technicians and artists seeking an introduction to the present digital interactive art and practical information about the new emerging graphical programming techniques like Max or Pure Data for creating meaningful interactive systems.

Neural-Symbolic Cognitive Reasoning


Artur S. D'Avila Garcez - 2007
    There are cases where the human computer, slow as it is, is faster than any artificial intelligence system. Are we faster because of the way we perceive knowledge as opposed to the way we represent it? The authors address this question by presenting neural network models that integrate the two most fundamental phenomena of cognition: our ability to learn from experience, and our ability to reason from what has been learned. This book is the first to offer a self-contained presentation of neural network models for a number of computer science logics, including modal, temporal, and epistemic logics. By using a graphical presentation, it explains neural networks through a sound neural-symbolic integration methodology, and it focuses on the benefits of integrating effective robust learning with expressive reasoning capabilities. The book will be invaluable reading for academic researchers, graduate students, and senior undergraduates in computer science, artificial intelligence, machine learning, cognitive science and engineering. It will also be of interest to computational logicians, and professional specialists on applications of cognitive, hybrid and artificial intelligence systems.

Fault-Tolerant Systems


Israel Koren - 2007
    No other text on the market takes this approach, nor offers the comprehensive and up-to-date treatment that Koren and Krishna provide.This book incorporates case studies that highlight six different computer systems with fault-tolerance techniques implemented in their design. A complete ancillary package is available to lecturers, including online solutions manual for instructors and PowerPoint slides.Students, designers, and architects of high performance processors will value this comprehensive overview of the field.

Object-Oriented Programming in Python


Michael H. Goldwasser - 2007
    This text presents a balanced & flexible approach to the incorporation of object-orientated principles in courses using Python, providing a solid framework for the development of computer software.

The Minimum Description Length Principle


Peter D. Grünwald - 2007
    It holds that the best explanation, given a limited set of observed data, is the one that permits the greatest compression of the data. MDL methods are particularly well-suited for dealing with model selection, prediction, and estimation problems in situations where the models under consideration can be arbitrarily complex, and overfitting the data is a serious concern. This extensive, step-by-step introduction to the MDL Principle provides a comprehensive reference (with an emphasis on conceptual issues) that is accessible to graduate students and researchers in statistics, pattern classification, machine learning, and data mining, to philosophers interested in the foundations of statistics, and to researchers in other applied sciences that involve model selection, including biology, econometrics, and experimental psychology.Part I provides a basic introduction to MDL and an overview of the concepts in statistics and information theory needed to understand MDL. Part II treats universal coding, the information-theoretic notion on which MDL is built, and part III gives a formal treatment of MDL theory as a theory of inductive inference based on universal coding. Part IV provides a comprehensive overview of the statistical theory of exponential families with an emphasis on their information-theoretic properties. The text includes a number of summaries, paragraphs offering the reader a "fast track" through the material, and boxes highlighting the most important concepts.

Introduction to Boolean Algebras


Steven R. Givant - 2007
    He conceived it as a calculus (or arithmetic) suitable for a mathematical analysis of logic. The form of his calculus was rather di?erent from the modern version, which came into being during the - riod 1864-1895 through the contributions of William Stanley Jevons, Aug- tus De Morgan, Charles Sanders Peirce, and Ernst Schr] oder. A foundation of the calculus as an abstract algebraic discipline, axiomatized by a set of equations, and admitting many di?erent interpretations, was carried out by Edward Huntington in 1904. Only with the work of Marshall Stone and Alfred Tarski in the 1930s, however, did Boolean algebra free itself completely from the bonds of logic and become a modern mathematical discipline, with deep theorems and - portantconnections toseveral otherbranchesofmathematics, includingal- bra, analysis, logic, measuretheory, probability andstatistics, settheory, and topology. For instance, in logic, beyond its close connection to propositional logic, Boolean algebra has found applications in such diverse areas as the proof of the completeness theorem for ?rst-order logic, the proof of the Lo � s conjecture for countable ?rst-order theories categorical in power, and proofs of the independence of the axiom of choice and the continuum hypothesis ? in set theory. In analysis, Stone's discoveries of the Stone-Cech compac- ?cation and the Stone-Weierstrass approximation theorem were intimately connected to his study of Boolean algebras.

Computing for Numerical Methods Using Visual C++


Shaharuddin Salleh - 2007
    In an age of boundless research, there is a need for a programming language that can successfully bridge the communication gap between a problem and its computing elements through the use of visual-ization for engineers and members of varying disciplines, such as biologists, medical doctors, mathematicians, economists, and politicians. This book takes an interdisciplinary approach to the subject and demonstrates how solving problems in numerical methods using C++ is dominant and practical for implementation due to its flexible language format, object-oriented methodology, and support for high numerical precisions.In an accessible, easy-to-follow style, the authors cover:Numerical modeling using C++Fundamental mathematical toolsMFC interfacesCurve visualizationSystems of linear equationsNonlinear equationsInterpolation and approximationDifferentiation and integrationEigenvalues and EigenvectorsOrdinary differential equationsPartial differential equationsThis reader-friendly book includes a companion Web site, giving readers free access to all of the codes discussed in the book as well as an equation parser called MyParser that can be used to develop various numerical applications on Windows. Computing for Numerical Methods Using Visual C++ serves as an excellent reference for students in upper undergraduate- and graduate-level courses in engineering, science, and mathematics. It is also an ideal resource for practitioners using Microsoft Visual C++.

Learning Theory: An Approximation Theory Viewpoint


Felipe Cucker - 2007
    To attain this goal learning theory draws on a variety of diverse subjects, specifically statistics, approximation theory, and algorithmics. Ideas from all these areas blended to form a subject whose many successful applications have triggered a rapid growth during the last two decades. This is the first book to give a general overview of the theoretical foundations of the subject emphasizing the approximation theory, while still giving a balanced overview. It is based on courses taught by the authors, and is reasonably self-contained so will appeal to a broad spectrum of researchers in learning theory and adjacent fields. It will also serve as an introduction for graduate students and others entering the field, who wish to see how the problems raised in learning theory relate to other disciplines.

Handbook of the History of Logic, Volume 8: The Many Valued and Nonmonotonic Turn in Logic


Dov M. Gabbay - 2007
    These are many-valuedness and non-monotonicity. On the one approach, in deference to vagueness, temporal or quantum indeterminacy or reference-failure, sentences that are classically non-bivalent are allowed as inputs and outputs to consequence relations. Many-valued, dialetheic, fuzzy and quantum logics are, among other things, principled attempts to regulate the flow-through of sentences that are neither true nor false. On the second, or non-monotonic, approach, constraints are placed on inputs (and sometimes on outputs) of a classical consequence relation, with a view to producing a notion of consequence that serves in a more realistic way the requirements of real-life inference. Many-valued logics produce an interesting problem. Non-bivalent inputs produce classically valid consequence statements, for any choice of outputs. A major task of many-valued logics of all stripes is to fashion an appropriately non-classical relation of consequence. The chief preoccupation of non-monotonic (and default) logicians is how to constrain inputs and outputs of the consequence relation. In what is called left non-monotonicity, it is forbidden to add new sentences to the inputs of true consequence-statements. The restriction takes notice of the fact that new information will sometimes override an antecedently (and reasonably) derived consequence. In what is called right non-monotonicity, limitations are imposed on outputs of the consequence relation. Most notably, perhaps, is the requirement that the rule of or-introduction not be given free sway on outputs. Also prominent is the effort of paraconsistent logicians, both preservationist and dialetheic, to limit the outputs of inconsistent inputs, which in classical contexts are wholly unconstrained. In some instances, our two themes coincide. Dialetheic logics are a case in point. Dialetheic logics allow certain selected sentences to have, as a third truth value, the classical values of truth and falsity together. So such logics also admit classically inconsistent inputs. A central task is to construct a right non-monotonic consequence relation that allows for these many-valued, and inconsistent, inputs. The Many Valued and Non-Monotonic Turn in Logic is an indispensable research tool for anyone interested in the development of logic, including researchers, graduate and senior undergraduate students in logic, history of logic, mathematics, history of mathematics, computer science, AI, linguistics, cognitive science, argumentation theory, and the history of ideas. - Detailed and comprehensive chapters covering the entire range of modal logic- Contains the latest scholarly discoveries and interprative insights that answers many questions in the field of logic"

An Introduction to Bayesian Scientific Computing: Ten Lectures on Subjective Computing


Daniela Calvetti - 2007
    The nature of mathematics is being exact, and its exactness is und- lined by the formalism used by mathematicians to write it. This formalism, characterized by theorems and proofs, and syncopated with occasional l- mas, remarks and corollaries, is so deeply ingrained that mathematicians feel uncomfortable when the pattern is broken, to the point of giving the - pression that the attitude of mathematicians towards the way mathematics should be written is almost moralistic. There is a de?nition often quoted, "A mathematician is a person who proves theorems", and a similar, more alchemistic one, credited to Paul Erd? os, but more likely going back to Alfr� ed R� enyi, statingthat"Amathematicianisamachinethattransformsco?eeinto 1 theorems ". Therefore it seems to be the form, not the content, that char- terizes mathematics, similarly to what happens in any formal moralistic code wherein form takes precedence over content. This book is deliberately written in a very di?erent manner, without a single theorem or proof. Since morality has its subjective component, to pa- phrase Manuel Vasquez Montalban, we could call it Ten Immoral Mathemat- 2 ical Recipes . Does the lack of theorems and proofs mean that the book is more inaccurate than traditional books of mathematics? Or is it possibly just a sign of lack of co?ee? This is our ?rst open question. Exactness is an interesting concept.

Neural Networks Theory


Alexander I. Galushkin - 2007
    It details more than 40 years of Soviet and Russian neural network research and presents a systematized methodology of neural networks synthesis. The theory is expansive: covering not just traditional topics such as network architecture but also neural continua in function spaces as well.

Microsoft® SharePoint® Products and Technologies Administrator's Pocket Consultant


B. Curry - 2007
    Zero in on core support and maintenance tasks using quick-reference tables, instructions, and lists. You’ll get the precise information you need to get the job done—whether you’re at your desk or in the field!Get fast facts to:Install and configure SharePoint Products and Technologies Create and administer SharePoint site collections Configure security and privacy settings Set up workflows and define information management policies Implement enterprise content management Configure an intranet portal with integrated search and indexing capabilities Monitor performance and troubleshoot system issues Back up and restore at the content level or system level

Simulating the Physical World: Hierarchical Modeling from Quantum Mechanics to Fluid Dynamics


Herman J.C. Berendsen - 2007
    From quantum mechanics to fluid dynamics, this book systematically treats the broad scope of computer modeling and simulations, describing the fundamental theory behind each level of approximation. Berendsen evaluates each stage in relation to its applications giving the reader insight into the possibilities and limitations of the models. Practical guidance for applications and sample programs in Python are provided. With a strong emphasis on molecular models in chemistry and biochemistry, this 2007 book will be suitable for advanced undergraduate and graduate courses on molecular modeling and simulation within physics, biophysics, physical chemistry and materials science. It will also be a useful reference to all those working in the field. Additional resources for this title including solutions for instructors and programs are available online at www.cambridge.org/9780521835275.

Signal Processing for Communications


Paolo Prandoni - 2007
    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.

Reconfigurable Computing: The Theory and Practice of Fpga-Based Computationvolume 1


Scott Hauck - 2007
    Reconfigurable computers serve as affordable, fast, and accurate tools for developing designs ranging from single chip architectures to multi-chip and embedded systems.Scott Hauck and Andre DeHon have assembled a group of the key experts in the fields of both hardware and software computing to provide an introduction to the entire range of issues relating to reconfigurable computing. FPGAs (field programmable gate arrays) act as the "computing vehicles" to implement this powerful technology. Readers will be guided into adopting a completely new way of handling existing design concerns and be able to make use of the vast opportunities possible with reconfigurable logic in this rapidly evolving field.

Beginning ASP.NET 3.5 in VB 2008: From Novice to Professional


Matthew MacDonald - 2007
    Using ASP.NET, you can create e-commerce shops, data-driven portal sites, and just about anything else you can find on the Internet. Best of all, you don't need to paste together a jumble of HTML and script code in order to program the Web. Instead, you can create full-scale web applications using nothing but code and a design tool such as Visual Studio 2008. The cost of all this innovation is the learning curve. To master ASP.NET, you need to learn how to use an advanced design tool (Visual Studio), a toolkit of objects (the .NET Framework), and an object-oriented programming language (such as Visual Basic 2008). Taken together, these topics provide more than enough to overwhelm any first-time web developer. Beginning ASP.NET 3.5 in VB 2008 assumes you want to master ASP.NET, starting from the basics. Using this book, you'll build your knowledge until you understand the concepts, te- niques, and best practices for writing sophisticated web applications. The journey is long, but it's also satisfying. At the end of the day, you'll find that ASP.NET allows you to tackle challenges that are simply out of reach on many other platforms.

Fundamentals of Digital Image Processing: A Practical Approach with Examples in Matlab


Chris Solomon - 2007
    The approach taken is essentially practical and the book offers a framework within which the concepts can be understood by a series of well chosen examples, exercises and computer experiments, drawing on specific examples from within science, medicine and engineering. Clearly divided into eleven distinct chapters, the book begins with a fast-start introduction to image processing to enhance the accessibility of later topics. Subsequent chapters offer increasingly advanced discussion of topics involving more challenging concepts, with the final chapter looking at the application of automated image classification (with Matlab examples) .Matlab is frequently used in the book as a tool for demonstrations, conducting experiments and for solving problems, as it is both ideally suited to this role and is widely available. Prior experience of Matlab is not required and those without access to Matlab can still benefit from the independent presentation of topics and numerous examples.Features a companion website www.wiley.com/go/solomon/fundamentals containing a Matlab fast-start primer, further exercises, examples, instructor resources and accessibility to all files corresponding to the examples and exercises within the book itself. Includes numerous examples, graded exercises and computer experiments to support both students and instructors alike.