Best of
Coding

2004

Head First Design Patterns


Eric Freeman - 2004
     At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.

Real-Time Collision Detection (The Morgan Kaufmann Series in Interactive 3d Technology)


Christer Ericson - 2004
    It provides the tools and know-how needed to implement industrial-strength collision detection for the detailed dynamic environments of applications such as 3D games, virtual reality applications, and physical simulators. Full description

Working Effectively with Legacy Code


Michael C. Feathers - 2004
    This book draws on material Michael created for his renowned Object Mentor seminars, techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include: Understanding the mechanics of software change, adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform, with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structureThis book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

Practical Linear Algebra: A Geometry Toolbox


Gerald Farin - 2004
    Practical aspects, such as computer graphics topics and numerical strategies, are covered throughout, and thus students can build a "Geometry Toolbox," based on a geometric understanding of the key concepts. This book covers all the standard linear algebra material for a first-year course; the authors teach by motivation, illustration, and example rather than by using a theorem/proof style. Special Features: - Clear visual representations (more than 200 figures) for improved material comprehension. - Hand-drawn sketches encourage students to create their own sketches when solving problems-developing another layer of learning. - Numerous examples show applications to real-world problems. - Problems at the end of each chapter allow students to test their understanding of the material presented. Solutions to selected problems are provided. - Concise chapter summaries highlight the most important points, giving students focus for their approach to learning. An instructor's manual will be available soon.

Joel on Software


Joel Spolsky - 2004
    For years, Joel Spolsky has done exactly this at www.joelonsoftware.com. Now, for the first time, you can own a collection of the most important essays from his site in one book, with exclusive commentary and new insights from joel.

Flash Math Creativity


David Hirmes - 2004
    It's a book for designers who code, and coders who design, and it's a book for people who do neither. And with ActionScript 2.0, Macromedia has yet again upped the standard for creating immersive digital experiences. With Flash, the possibilities for artistic expression are limited only by your imagination." Inside you'll find everything from the simplest rotating square to a full multifunction graph plotter, all programmed in ActionScript 2.0. Ever noticed how the shape of a fern repeats itself again and again in each tiny frond? Almost as though someone took a basic piece of code and made a few iterations. And the results is something unexpectedly simple, but, inexplicably beautiful. In Flash Math Creativity, you'll explore the harmony of nature and math to produce some truly unique design experiments.

Computational Biology: Unix/Linux, Data Processing and Programming


Röbbe Wünschiers - 2004
    -Teaches the reader how to use Unix, which is the key to basic computing and allows the most flexibility for bioinformatics applications -Written specifically with the needs of molecular biologists in mind -Easy to follow, written for beginners with no computational knowledge -Includes examples from biological data analysis -Can be use either for self-teaching or in courses

Advanced Lighting and Materials with Shaders [With CDROM]


Kelly Dempski - 2004
    Advanced Lighting And Materials With Shaders Explains The Principles Of Lighting Theory And Discusses How To Create Realistic Lighting That Takes Full Advantage Of The Capabilities Of Modern Hardware. Topics Include The Physics Of Light, Raytracing And Related Techniques, Objects And Materials, Lighting And Reflectance Models, Implementing Lights In Shaders, Spherical Harmonic Lighting, Spherical Harmonics In Directx, And Real-Time Radiosity. Upon Reading This Text, You Will Understand The Underlying Physics Of Light And Energy; Learn About The Visual Features Of Different Materials And How They Can Be Modeled For Real-Time Graphics; Find Out About The Different Lighting Models; Discover How Real-Time Techniques Compare To Ray Tracing; Learn To Use The Provided Shader Implementations To Implement Lights And Realistic Materials In Real Time. Accompanying CD-ROM Includes All The Code In The Book With Resources (Models, Textures, Probes, Etc.) Needed To Run The Programs, Along With The Sdks And Libraries Needed To Build The Programs And Luminance Radiosity Studio, An Advanced Radiosity Program.

Universal Artificial Intelligence: Sequential Decisions Based on Algorithmic Probability


Marcus Hutter - 2004
    The dream of creating artificial devices that reach or outperform human inteUigence is an old one. It is also one of the dreams of my youth, which have never left me. What makes this challenge so interesting? A solution would have enormous implications on our society, and there are reasons to believe that the AI problem can be solved in my expected lifetime. So, it's worth sticking to it for a lifetime, even if it takes 30 years or so to reap the benefits. The AI problem. The science of artificial intelligence (AI) may be defined as the construction of intelligent systems and their analysis. A natural definition of a system is anything that has an input and an output stream. Intelligence is more complicated. It can have many faces like creativity, solving prob lems, pattern recognition, classification, learning, induction, deduction, build ing analogies, optimization, surviving in an environment, language processing, and knowledge. A formal definition incorporating every aspect of intelligence, however, seems difficult. Most, if not all known facets of intelligence can be formulated as goal driven or, more precisely, as maximizing some utility func tion. It is, therefore, sufficient to study goal-driven AI; e. g. the (biological) goal of animals and humans is to survive and spread. The goal of AI systems should be to be useful to humans."