Best of
Programming

2005

Java Concurrency in Practice


Brian Goetz - 2005
    Now this same team provides the best explanation yet of these new features, and of concurrency in general. Concurrency is no longer a subject for advanced users only. Every Java developer should read this book."--Martin BuchholzJDK Concurrency Czar, Sun Microsystems"For the past 30 years, computer performance has been driven by Moore's Law; from now on, it will be driven by Amdahl's Law. Writing code that effectively exploits multiple processors can be very challenging. Java Concurrency in Practice provides you with the concepts and techniques needed to write safe and scalable Java programs for today's--and tomorrow's--systems."--Doron RajwanResearch Scientist, Intel Corp"This is the book you need if you're writing--or designing, or debugging, or maintaining, or contemplating--multithreaded Java programs. If you've ever had to synchronize a method and you weren't sure why, you owe it to yourself and your users to read this book, cover to cover."--Ted NewardAuthor of Effective Enterprise Java"Brian addresses the fundamental issues and complexities of concurrency with uncommon clarity. This book is a must-read for anyone who uses threads and cares about performance."--Kirk PepperdineCTO, JavaPerformanceTuning.com"This book covers a very deep and subtle topic in a very clear and concise way, making it the perfect Java Concurrency reference manual. Each page is filled with the problems (and solutions!) that programmers struggle with every day. Effectively exploiting concurrency is becoming more and more important now that Moore's Law is delivering more cores but not faster cores, and this book will show you how to do it."--Dr. Cliff ClickSenior Software Engineer, Azul Systems"I have a strong interest in concurrency, and have probably written more thread deadlocks and made more synchronization mistakes than most programmers. Brian's book is the most readable on the topic of threading and concurrency in Java, and deals with this difficult subject with a wonderful hands-on approach. This is a book I am recommending to all my readers of The Java Specialists' Newsletter, because it is interesting, useful, and relevant to the problems facing Java developers today."--Dr. Heinz KabutzThe Java Specialists' Newsletter"I've focused a career on simplifying simple problems, but this book ambitiously and effectively works to simplify a complex but critical subject: concurrency. Java Concurrency in Practice is revolutionary in its approach, smooth and easy in style, and timely in its delivery--it's destined to be a very important book."--Bruce TateAuthor of Beyond Java" Java Concurrency in Practice is an invaluable compilation of threading know-how for Java developers. I found reading this book intellectually exciting, in part because it is an excellent introduction to Java's concurrency API, but mostly because it captures in a thorough and accessible way expert knowledge on threading not easily found elsewhere."--Bill VennersAuthor of Inside the Java Virtual MachineThreads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice , the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them.However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant.This book covers:Basic concepts of concurrency and thread safety Techniques for building and composing thread-safe classes Using the concurrency building blocks in java.util.concurrent Performance optimization dos and don'ts Testing concurrent programs Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model

The Elements of Computing Systems: Building a Modern Computer from First Principles


Noam Nisan - 2005
    The books also provides a companion web site that provides the toold and materials necessary to build the hardware and software.

Head First Java


Kathy Sierra - 2005
    You might think the problem is your brain. It seems to have a mind of its own, a mind that doesn't always want to take in the dry, technical stuff you're forced to study. The fact is your brain craves novelty. It's constantly searching, scanning, waiting for something unusual to happen. After all, that's the way it was built to help you stay alive. It takes all the routine, ordinary, dull stuff and filters it to the background so it won't interfere with your brain's real work--recording things that matter. How does your brain know what matters? It's like the creators of the Head First approach say, suppose you're out for a hike and a tiger jumps in front of you, what happens in your brain? Neurons fire. Emotions crank up. Chemicals surge. That's how your brain knows.And that's how your brain will learn Java. Head First Java combines puzzles, strong visuals, mysteries, and soul-searching interviews with famous Java objects to engage you in many different ways. It's fast, it's fun, and it's effective. And, despite its playful appearance, Head First Java is serious stuff: a complete introduction to object-oriented programming and Java. You'll learn everything from the fundamentals to advanced topics, including threads, network sockets, and distributed programming with RMI. And the new. second edition focuses on Java 5.0, the latest version of the Java language and development platform. Because Java 5.0 is a major update to the platform, with deep, code-level changes, even more careful study and implementation is required. So learning the Head First way is more important than ever. If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. If you haven't, you're in for a treat. You'll see why people say it's unlike any other Java book you've ever read.By exploiting how your brain works, Head First Java compresses the time it takes to learn and retain--complex information. Its unique approach not only shows you what you need to know about Java syntax, it teaches you to think like a Java programmer. If you want to be bored, buy some other book. But if you want to understand Java, this book's for you.

Java Puzzlers: Traps, Pitfalls, and Corner Cases


Joshua Bloch - 2005
    This lively book reveals oddities of the Java programming language through entertaining and thought-provoking programming puzzles.--Guy Steele, Sun Fellow and coauthor of The Java(TM) Language SpecificationI laughed, I cried, I threw up (my hands in admiration).--Tim Peierls, president, Prior Artisans LLC, and member of the JSR 166 Expert GroupHow well do you really know Java? Are you a code sleuth? Have you ever spent days chasing a bug caused by a trap or pitfall in Java or its libraries? Do you like brainteasers? Then this is the book for you!In the tradition of Effective Java(TM), Bloch and Gafter dive deep into the subtleties of the Java programming language and its core libraries. Illustrated with visually stunning optical illusions, Java(TM) Puzzlers features 95 diabolical puzzles that educate and entertain. Anyone with a working knowledge of Java will understand the puzzles, but even the most seasoned veteran will find them challenging.Most of the puzzles take the form of a short program whose behavior isn't what it seems. Can you figure out what it does? Puzzles are grouped loosely according to the features they use, and detailed solutions follow each puzzle. The solutions go well beyond a simple explanation of the program's behavior--they show you how to avoid the underlying traps and pitfalls for good. A handy catalog of traps and pitfalls at the back of the book provides a concise taxonomy for future reference.Solve these puzzles and you'll never again fall prey to the counterintuitive or obscure behaviors that can fool even the most experienced programmers.

Head First HTML with CSS & XHTML


Elisabeth Robson - 2005
    You want to learn HTML so you can finally create those web pages you've always wanted, so you can communicate more effectively with friends, family, fans, and fanatic customers. You also want to do it right so you can actually maintain and expand your Web pages over time, and so your web pages work in all the browsers and mobile devices out there. Oh, and if you've never heard of CSS, that's okay - we won't tell anyone you're still partying like it's 1999 - but if you're going to create Web pages in the 21st century then you'll want to know and understand CSS.Learn the real secrets of creating Web pages, and why everything your boss told you about HTML tables is probably wrong (and what to do instead). Most importantly, hold your own with your co-worker (and impress cocktail party guests) when he casually mentions how his HTML is now strict, and his CSS is in an external style sheet.With Head First HTML with CSS & XHTML, you'll avoid the embarrassment of thinking web-safe colors still matter, and the foolishness of slipping a font tag into your pages. Best of all, you'll learn HTML and CSS in a way that won't put you to sleep. 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, this book will load HTML, CSS, and XHTML into your brain in a way that sticks.So what are you waiting for? Leave those other dusty books behind and come join us in Webville. Your tour is about to begin."Elegant design is at the core of every chapter here, each concept conveyed with equal doses of pragmatism and wit." --Ken Goldstein, Executive Vice President, Disney Online"This book is a thoroughly modern introduction to forward-looking practices in web page markup and presentation." --Danny Goodman, author of Dynamic HTML: The Definitive Guide"What used to be a long trial and error learning process has now been reduced neatly into an engaging paperback." --Mike Davidson, CEO, Newsvine, Inc."I love Head First HTML with CSS & XHTML--it teaches you everything you need to learn in a 'fun coated' format!" --Sally Applin, UI Designer and Artist"I haven't had as much fun reading a book (other than Harry Potter) in years. And your book finally helped me break out of my hapless so-last-century way of creating web pages." --Professor David M. Arnow, Department of Computer and Information Science, Brooklyn College"If you've ever had a family member who wanted you to design a website for them, buy them Head First HTML with CSS and XHTML. If you've ever asked a family member to design you a web site, buy this book. If you've ever bought an HTML book and ended up using it to level your desk, or for kindling on a cold winter day, buy this book. This is the book you've been waiting for. This is the learning system you've been waiting for." --Warren Kelly, Blogcritics.org

Professional JavaScript for Web Developers


Nicholas C. Zakas - 2005
    This 4-book set includes:Professional JavaScript for Web Developers (ISBN: 0764579088) Professional Ajax 2nd edition (ISBN: 0470109491) Professional Web 2.0 Programming (ISBN: 0470087889) Professional Rich Internet Applications: Ajax and Beyond (ISBN: 0470082801)

Perl Best Practices: Standards and Styles for Developing Maintainable Code


Damian Conway - 2005
    They aren't conscious of all the choices they make, like how they format their source, the names they use for variables, or the kinds of loops they use. They're focused entirely on problems they're solving, solutions they're creating, and algorithms they're implementing. So they write code in the way that seems natural, that happens intuitively, and that feels good.But if you're serious about your profession, intuition isn't enough. Perl Best Practices author Damian Conway explains that rules, conventions, standards, and practices not only help programmers communicate and coordinate with one another, they also provide a reliable framework for thinking about problems, and a common language for expressing solutions. This is especially critical in Perl, because the language is designed to offer many ways to accomplish the same task, and consequently it supports many incompatible dialects.With a good dose of Aussie humor, Dr. Conway (familiar to many in the Perl community) offers 256 guidelines on the art of coding to help you write better Perl code--in fact, the best Perl code you possibly can. The guidelines cover code layout, naming conventions, choice of data and control structures, program decomposition, interface design and implementation, modularity, object orientation, error handling, testing, and debugging.They're designed to work together to produce code that is clear, robust, efficient, maintainable, and concise, but Dr. Conway doesn't pretend that this is the one true universal and unequivocal set of best practices. Instead, Perl Best Practices offers coherent and widely applicable suggestions based on real-world experience of how code is actually written, rather than on someone's ivory-tower theories on how software ought to be created.Most of all, Perl Best Practices offers guidelines that actually work, and that many developers around the world are already using. Much like Perl itself, these guidelines are about helping you to get your job done, without getting in the way.Praise for Perl Best Practices from Perl community members:"As a manager of a large Perl project, I'd ensure that every member of my team has a copy of Perl Best Practices on their desk, and use it as the basis for an in-house style guide." -- Randal Schwartz"There are no more excuses for writing bad Perl programs. All levels of Perl programmer will be more productive after reading this book." -- Peter Scott"Perl Best Practices will be the next big important book in the evolution of Perl. The ideas and practices Damian lays down will help bring Perl out from under the embarrassing heading of "scripting languages". Many of us have known Perl is a real programming language, worthy of all the tasks normally delegated to Java and C++. With Perl Best Practices, Damian shows specifically how and why, so everyone else can see, too." -- Andy Lester"Damian's done what many thought impossible: show how to build large, maintainable Perl applications, while still letting Perl be the powerful, expressive language that programmers have loved for years." -- Bill Odom"Finally, a means to bring lasting order to the process and product of real Perl development teams." -- Andrew Sundstrom"Perl Best Practices provides a valuable education in how to write robust, maintainable P

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries


Krzysztof Cwalina - 2005
    Expanded and updated for .NET 3.5, this new edition focuses on the design issues that directly affect the programmability of a class library, specifically its publicly accessible APIs. This book can improve the work of any .NET developer producing code that other developers will use. It includes copious annotations to the guidelines by thirty-five prominent architects and practitioners of the .NET Framework, providing a lively discussion of the reasons for the guidelines as well as examples of when to break those guidelines. Microsoft architects Krzysztof Cwalina and Brad Abrams teach framework design from the top down. From their significant combined experience and deep insight, you will learnThe general philosophy and fundamental principles of framework design Naming guidelines for the various parts of a framework Guidelines for the design and extending of types and members of types Issues affecting-and guidelines for ensuring-extensibility How (and how "not") to design exceptions Guidelines for-and examples of-common framework design patternsGuidelines in this book are presented in four major forms: Do, Consider, Avoid, and Do not. These directives help focus attention on practices that should "always" be used, those that should "generally" be used, those that should "rarely" be used, and those that should "never" be used. Every guideline includes a discussion of its applicability, and most include a code example to help illuminate the dialogue. "Framework Design Guidelines, Second Edition, " is the only definitive source of best practices for managed code API development, direct from the architects themselves. A companion DVD includes the Designing .NET Class Libraries video series, instructional presentations by the authors on design guidelines for developing classes and components that extend the .NET Framework. A sample API specification and other useful resources and tools are also included.

Practical Common LISP


Peter Seibel - 2005
    This is the first book that introduces Lisp as a language for the real world.Practical Common Lisp presents a thorough introduction to Common Lisp, providing you with an overall understanding of the language features and how they work. Over a third of the book is devoted to practical examples, such as the core of a spam filter and a web application for browsing MP3s and streaming them via the Shoutcast protocol to any standard MP3 client software (e.g., iTunes, XMMS, or WinAmp). In other "practical" chapters, author Peter Seibel demonstrates how to build a simple but flexible in-memory database, how to parse binary files, and how to build a unit test framework in 26 lines of code.

Algorithm Design


Jon Kleinberg - 2005
    The book teaches a range of design and analysis techniques for problems that arise in computing applications. The text encourages an understanding of the algorithm design process and an appreciation of the role of algorithms in the broader field of computer science.

Bulletproof Web Design: Improving Flexibility and Protecting Against Worst-Case Scenarios with XHTML and CSS


Dan Cederholm - 2005
    This work deconstructs a series of real-world Web sites. It provides 10 strategies for creating standards-based designs that provide user control - a component of every Web site.

Higher-Order Perl: Transforming Programs with Programs


Mark Jason Dominus - 2005
    However, Perl incorporates many features that have their roots in other languages such as Lisp. These advanced features are not well understood and are rarely used by most Perl programmers, but they are very powerful. They can automate tasks in everyday programming that are difficult to solve in any other way. One of the most powerful of these techniques is writing functions that manufacture or modify other functions. For example, instead of writing ten similar functions, a programmer can write a general pattern or framework that can then create the functions as needed according to the pattern. For several years Mark Jason Dominus has worked to apply functional programming techniques to Perl. Now Mark brings these flexible programming methods that he has successfully taught in numerous tutorials and training sessions to a wider audience.• Introduces powerful programming methods—new to most Perl programmers—that were previously the domain of computer scientists• Gradually builds up confidence by describing techniques of progressive sophistication• Shows how to improve everyday programs and includes numerous engaging code examples to illustrate the methods

The Art of Computer Programming, Volume 4, Fascicle 3: Generating All Combinations and Partitions


Donald Ervin Knuth - 2005
    At last, an answer to one of the most asked questions in computer science: When is Volume 4 of The Art of Computer Programming going to be published? A sneak peek at the eagerly anticipated Volume 4 of The Art of Computer Programming The definitive treatment of the widely misunderstood topic of combinations and partitions Future classic material from one of the most famous names in computer science!

Programmable Logic Controllers: An Emphasis on Design and Application


Kelvin T. Erickson - 2005
    This book presents a comprehensive treatment of programmable logic controllers (PLCs) with an emphasis on program design. This text stresses an organized approach to developing PLC programs – “Given a set of operational specifications, how does one develop the PLC program?” This book develops the design process: the tasks involved, breaking the program into manageable pieces, standard code for the various parts, and handling the sequential parts of the problem. Throughout, the book contains example problems demonstrating good design practice and culminates in two full-length case studies. Due to its popularity, ladder logic is employed in the majority of the text. However, the text also comprehensively covers the other four IEC 61131-3 languages: function block diagram, structured text, instruction list, and sequential function chart. These languages are covered for five PLCs: Allen-Bradley ControlLogix, Allen-Bradley PLC-5/SLC-500, Modicon Quantum/Momentum, Siemens S7, and GE Fanuc. The main topics of this text are: 1. PLC programming languages (with emphasis on IEC 61131-3) 2. Structured approach to sequential problems 3. Good program design practice 4. Troubleshooting techniques 5. PID control 6. Sensors and actuators 7. Factory communication networks 8. Human-machine interface (HMI) Most chapters include student problems.

TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference


Charles M. Kozierok - 2005
    It details the core protocols that make TCP/IP internetworks function, and the most important classical TCP/IP applications. Its personal, easy-going writing style lets anyone understand the dozens of protocols and technologies that run the Internet, with full coverage of PPP, ARP, IP, IPv6, IP NAT, IPSec, Mobile IP, ICMP, RIP, BGP, TCP, UDP, DNS, DHCP, SNMP, FTP, SMTP, NNTP, HTTP, Telnet and much more. The author offers not only a detailed view of the TCP/IP protocol suite, but also describes networking fundamentals and the important OSI Reference Model.

Reversing: Secrets of Reverse Engineering


Eldad Eilam - 2005
    The book is broken into two parts, the first deals with security-related reverse engineering and the second explores the more practical aspects of reverse engineering. In addition, the author explains how to reverse engineer a third-party software library to improve interfacing and how to reverse engineer a competitor's software to build a better product. * The first popular book to show how software reverse engineering can help defend against security threats, speed up development, and unlock the secrets of competitive products * Helps developers plug security holes by demonstrating how hackers exploit reverse engineering techniques to crack copy-protection schemes and identify software targets for viruses and other malware * Offers a primer on advanced reverse-engineering, delving into disassembly-code-level reverse engineering-and explaining how to decipher assembly language

Linux Device Drivers


Jonathan Corbet - 2005
    And writing device drivers is one of the few areas of programming for the Linux operating system that calls for unique, Linux-specific knowledge. For years now, programmers have relied on the classic "Linux Device Drivers" from O'Reilly to master this critical subject. Now in its third edition, this bestselling guide provides all the information you'll need to write drivers for a wide range of devices.Over the years the book has helped countless programmers learn: how to support computer peripherals under the Linux operating system how to develop and write software for new hardware under Linux the basics of Linux operation even if they are not expecting to write a driver The new edition of "Linux Device Drivers" is better than ever. The book covers all the significant changes to Version 2.6 of the Linux kernel, which simplifies many activities, and contains subtle new features that can make a driver both more efficient and more flexible. Readers will find new chapters on important types of drivers not covered previously, such as consoles, USB drivers, and more.Best of all, you don't have to be a kernel hacker to understand and enjoy this book. All you need is an understanding of the C programming language and some background in Unix system calls. And for maximum ease-of-use, the book uses full-featured examples that you can compile and run without special hardware.Today Linux holds fast as the most rapidly growing segment of the computer market and continues to win over enthusiastic adherents in many application areas. With this increasing support, Linux is now absolutely mainstream, and viewed as a solid platform for embedded systems. If you're writing device drivers, you'll want this book. In fact, you'll wonder how drivers are ever written without it.

Head First Design Patterns Poster


Elisabeth Robson - 2005
    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. Head First Design Patterns Poster is a companion to Head First Design Patterns. It summarizes visually, 16 of the most common design patterns including Adapter, Command, Composite Decorator, Observer, Proxy, State, Singleton, Strategy, and more. Each pattern includes a handy page reference to both Head First Design Patterns and the "Gang of Four" text, the canonical description of the pattern, and a visual guide designed (and inspired by the examples in Head First Design Patterns) to jog your memory of the objects, classes, and their relationships. In addition, the poster includes the "best of" the Head First "Guide to Better Living with Patterns," including how to read a patterns catalog, the power of a shared vocabulary and annihilating evil with anti-patterns. Visually appealing and truly useful, Head First Design Patterns Poster contains what you need to know at a glance. Head First Design Patterns and this companion poster are a great combination that will load patterns into your brain in a way that sticks.

The Mathematica GuideBook for Symbolics (w/ DVD)


Michael Trott - 2005
    Provides reader with working knowledge of Mathematica and key aspects of Mathematica symbolic capabilities, the real heart of Mathematica and the ingredient of the Mathematica software system that makes it so unique and powerful Clear organization, complete topic coverage, and an accessible writing style for both novices and experts Website for book with additional materials: http://www/MathematicaGuideBooks.org Accompanying DVD containing all materials as an electronic book with complete, executable Mathematica 5.1 compatible code and programs, rendered color graphics, and animations

Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives


Nick Rozanski - 2005
    This practical, practitioner-oriented guide explains how to design successful architectures for information systems and to see these through to their successful implementation.

The Mathematica Guidebook for Numerics [With Dvdrom]


Michael Trott - 2005
    Provides the reader with working knowledge of Mathematica and key aspects of Mathematica's numerical capabilities needed to deal with virtually any "real life" problem Clear organization, complete topic coverage, and an accessible writing style for both novices and experts Website for book with additional materials: http: //www.MathematicaGuideBooks.org Accompanying DVD containing all materials as an electronic book with complete, executable Mathematica 5.1 compatible code and programs, rendered color graphics, and animations

Unix for the Beginning Mage


Joe Topjian - 2005
    Everything from typing your first command to learning about Symbolic Links is covered.

C in a Nutshell: The Definitive Reference


Peter Prinz - 2005
    If you want to understand the effects of an unfamiliar function, and how the standard library requires it to behave, you'll find it here, along with a typical example.Ideal for experienced C and C++ programmers, this book also includes popular tools in the GNU software collection. You'll learn how to build C programs with GNU Make, compile executable programs from C source code, and test and debug your programs with the GNU debugger.In three sections, this authoritative book covers:C language concepts and language elements, with separate chapters on types, statements, pointers, memory management, I/O, and moreThe C standard library, including an overview of standard headers and a detailed function referenceBasic C programming tools in the GNU software collection, with instructions on how use them with the Eclipse IDE

Java All-In-One for Dummies


Doug Lowe - 2005
    Like its bestselling previous editions, Java All-in-One For Dummies, 3rd Edition has what you need to get up and running quickly with the new version. Covering the enhanced mobile development and syntax features as well as programming improvements, this guide makes it easy to find what you want and put it to use.Focuses on the vital information that enables you to get up and running quickly on the new version Covers the enhanced multimedia features as well as programming enhancements, Java and XML, Swing, server-side Java, Eclipse, and more Minibooks cover Java basics; programming basics; strings, arrays, and collections; programming techniques; Swing; Web programming; files and databases; and a "fun and games" category Rather than trying to cover every aspect of this massive topic, Java All-in-One For Dummies, 3rd Edition focuses on the practical information you need to become productive with Java 7 right away.

C# for Programmers (Deitel Developer Series)


Harvey Deitel - 2005
    The book is updated for Visual Studio® 2005 and C# 2.0, and presents C# concepts in the context of fully tested programs, complete with syntax shading, detailed line-by-line code descriptions, and program outputs. The book features 200+ C# applications with 16,000+ lines of proven C# code, as well as 300+ programming tips that will help you build robust applications.Start with a concise introduction to C# fundamentals using an early classes and objects approach, then rapidly move on to more advanced topics, including multithreading,Dr. Harvey M. Deitel and Paul J. Deitel are the founders of Deitel & Associates, Inc., the internationally recognized programming languages content-creation and corporate-training organization. Together with their colleagues at Deitel & Associates, Inc., they have written many international best-selling programming languages textbooks that millions of people worldwide have used to master C, C++, Java™, C#,The DEITEL® Developer Series is designed for practicing programmers. The series presents focused treatments of emerging technologies, including .NET, J2EE, Web services, and more.Pre-publication Reviewer Testimonials"Excellent coverage of developing ASP.NET 2.0 applications, with plenty of sample code. The chapter on exception handling is one of, if not the best such chapters I have seen in the 50+ .NET related books I've read and reviewed. The chapter on Networking is one of the best I have seen."—Peter Bromberg, Merrill Lynch, C# MVP"A comprehensive introduction to—Gavin Osborne, Saskatchewan Institute of Applied Science and Technology"A superb job of clearly integrating the theory of relational databases and SQL with ADO.NET!"—Harlan Brewer, University of Cincinnati"Excellent introduction to .NET collections."—José Antonio González Seco, Andalucia's Parlamient"A beautiful presentation of threads."—Pavel Tsekov, Caesar BSC"The ATM OOD/UML case study is excellent! The implementation of the design developed in the early chapters gives the reader a fantastic model of a real world problem. You hit a home run with this one!"—Catherine Wyman, Devry-PhoenixPractical, Example-Rich Coverage Of: C# 2.0, .NET 2.0, FCL ASP.NET 2.0, Web Forms and Controls Database, SQL, and ADO.NET 2.0 Networking and .NET Remoting Generics, Collections GUI/Windows® Forms OOP: Classes, Inheritance, and Polymorphism OOD/UML™ ATM Case Study Graphics and Multimedia Multithreading Exception Handling And more... VISIT WWW.DEITEL.COM Download code examples To receive updates on this book, subscribe to the free DEITEL® BUZZ ONLINE e-mail newsletter at www.deitel.com/newsletter/subscribe.html Read archived Issues of the DEITEL® BUZZ ONLINE Get corporate training information

Problem Solving with Algorithms and Data Structures Using Python


Bradley N. Miller - 2005
    It is also about Python. However, there is much more. The study of algorithms and data structures is central to understanding what computer science is all about. Learning computer science is not unlike learning any other type of difficult subject matter. The only way to be successful is through deliberate and incremental exposure to the fundamental ideas. A beginning computer scientist needs practice so that there is a thorough understanding before continuing on to the more complex parts of the curriculum. In addition, a beginner needs to be given the opportunity to be successful and gain confidence. This textbook is designed to serve as a text for a first course on data structures and algorithms, typically taught as the second course in the computer science curriculum. Even though the second course is considered more advanced than the first course, this book assumes you are beginners at this level. You may still be struggling with some of the basic ideas and skills from a first computer science course and yet be ready to further explore the discipline and continue to practice problem solving. We cover abstract data types and data structures, writing algorithms, and solving problems. We look at a number of data structures and solve classic problems that arise. The tools and techniques that you learn here will be applied over and over as you continue your study of computer science.

The GIANT Encyclopedia of Learning Center Activities: For Children 3 to 6


Kathy Charner - 2005
    The GIANT Encyclopedia of Learning Center Activities is the eighth book in Gryphon House's GIANT Encyclopedia series. The learning centers in this book can either be permanent year-long centers or set up and removed according to the season or children's interests and needs. Through play, young children learn to communicate, interact, and expand their cognitive thinking horizons. The GIANT Encyclopedia of Learning Center Activities provides the resources to make play meaningful and educational for young children.This book offers:Over 600 activities and 47 learning centers, including familiar, permanent centers, such as Art or Blocks, and new and exciting centers, such as Farm, Space, Safari, Shoe Store, and Ice Cream Shop.Opportunities in each center for children to work at their own developmental level.Materials lists for each activity, step-by-step instructions, and related books, songs, and poems.Fresh new ideas from teachers who have used these activities in their own classrooms!

Pro C# 2005 and the .NET 2.0 Platform


Andrew Troelsen - 2005
    But he s also extended his coverage of crucial topics like object serialization, garbage collection, and the Common Intermediate Language. Troelsen ranges from .NET s philosophy to C# s gory details : its core constructs, object implementation, memory management, exceptions, interfaces, collections, delegates, advanced type construction, and plenty more. He dives especially deeply into assemblies; then turns to exploring .NET 2.0 s base class library, from the remoting layer to ADO.NET. The book wraps up with a full section on building robust web applications and XML web services. Experienced C# programmers will be hard-pressed to find a more useful, comprehensive resource. Bill Camarda, from the November 2005 href="http://www.barnesandnoble.com/newslet... Only

The Minimum You Need to Know about Java on OpenVMS


Roland Hughes - 2005
    Java on OpenVMS covers the ugly side of Java, the Java Native Interface, so readers can more easily develop back end applications. aa[ Requested by the industry as a follow-up to The Minimum You Need to Know to Be an OpenVMS Application Developer aa[ Learn how to store Java source in CMS and use MMS for builds aa[ Use Java to replace existing OpenVMS applications which use FMS, RMS, and/or RDB

Fundamental Data Compression


Ida Mengyi Pu - 2005
    A huge, active research field, and a part of many people's everyday lives, compression technology is an essential part of today's Computer Science and Electronic Engineering courses. With the help of this book, students can gain a thorough understanding of the underlying theory and algorithms, as well as specific techniques used in a range of scenarios, including the application of compression techniques to text, still images, video and audio. Practical exercises, projects and exam questions reinforce learning, along with suggestions for further reading. * Dedicated data compression textbook for use on undergraduate courses* Provides essential knowledge for today's web/multimedia applications* Accessible, well structured text backed up by extensive exercises and sample exam questions

.Net Framework Standard Library Annotated Reference, Volume 2: Networking Library, Reflection Library, and XML Library


Brad Abrams - 2005
    Written by the .NET Framework team at Microsoft and aimed at professional .NET developers, this manual is the first volume in a series that will provide a complete reference, annotated specification and descriptions, methods and diagrams to all of the .NET class libraries.

Words made flesh - Code, Culture, Imagination


Florian Cramer - 2005
    These practices are often neglected as a historical pretext of contemporary software culture and electronic arts. Above all, they link computations to a vast speculative imagination that encompasses art, language, technology, philosophy and religion. These speculations in turn inscribe themselves into the technology. Since even the most simple formalism requires symbols with which it can be expressed, and symbols have cultural connotations, any code is loaded with meaning. This booklet writes a small cultural history of imaginative computation, reconstructing both the obsessive persistence and contradictory mutations of the phantasm that symbols turn physical, and words are made flesh.

Bayesian Logical Data Analysis for the Physical Sciences: A Comparative Approach with Mathematica Support


P.C. Gregory - 2005
    By incorporating relevant prior information, it can sometimes improve model parameter estimates by many orders of magnitude. This book provides a clear exposition of the underlying concepts with many worked examples and problem sets. It also discusses implementation, including an introduction to Markov chain Monte-Carlo integration and linear and nonlinear model fitting. Particularly extensive coverage of spectral analysis (detecting and measuring periodic signals) includes a self-contained introduction to Fourier and discrete Fourier methods. There is a chapter devoted to Bayesian inference with Poisson sampling, and three chapters on frequentist methods help to bridge the gap between the frequentist and Bayesian approaches. Supporting Mathematica(r) notebooks with solutions to selected problems, additional worked examples, and a Mathematica tutorial are available at www.cambridge.org/9780521150125.

Managing Agile Projects


Kevin Aguanno - 2005
    From learning how agile projects are different from traditional projects, to detailed guidance on a number of agile management techniques and how to introduce them onto your own projects, this book contains the insider secrets from some of the industry experts - the visionaries who developed the agile methodologies in the first place. Chapters focus on topics critical to the success of projects facing changing requirements and seemingly impossible deadlines. Chapters cover topics such as engineering unstable requirements, active stakeholder participation, conducting agile meetings, extreme testing, agile documentation, and how to use agile methods under fixed price contracts. The book also provides information to help you plan your agile projects better to avoid some common pitfalls introduced by the fast pace and concurrent activities common to agile development methods. This book will show you the tricks to keeping agile projects under control.

Beginning Visual C# 2005


Karli Watson - 2005
    This accessible book guides you through all aspects of C# programming and the capabilities of Visual Studio 2005 so that you can begin developing customized applications. You'll first learn all aspects of the C# language, from the fundamentals to object-oriented techniques. You'll then quickly progress through Windows(r) and Web programming to making use of data sources, and finally to some advanced techniques such as XML documentation and graphics programming with GDI+. Throughout the book, you'll also find helpful hints, tips, exercises, and full-fledged example code that will enhance your programming skills.This book covers everything you need to know about Visual C# 2005 and the .NET Framework to create powerful, secure applications for mobile devices, Web applications, Windows applications, and Web services.What you will learn from this bookWays to add functionality to your Visual C# applications How to publish applications to the Web with the click of a button Techniques for assembling advanced Windows applications with a minimum of effort and time Tips for using Web services to add complex data and functionality to Web applications How to improve your C# applications using object-oriented programming Steps for using ADO.NET to interact with databases and deal with XML Who this book is forThis book is for anyone who wants to learn how to program in C# using the .NET Framework. It is also for programmers who know .NET 1.0 and want to find out about the latest features of .NET 2.0 and Visual Studio 2005.Wrox Beginning guides are crafted to make learning programming languages and technologies easier than you think, providing a structured, tutorial format that will guide you through all the techniques involved.

Self-Service Linux: Mastering the Art of Problem Determination


Mark Wilding - 2005
    It is also a book that advanced Linux professionals running their own Linux systems will be able to use to troubleshoot.

Professional Assembly Language


Richard Blum - 2005
    Unlike high-level languages such as Java and C++, assembly language is much closer to the machine code that actually runs computers; it's used to create programs or modules that are very fast and efficient, as well as in hacking exploits and reverse engineering Covering assembly language in the Pentium microprocessor environment, this code-intensive guide shows programmers how to create stand-alone assembly language programs as well as how to incorporate assembly language libraries or routines into existing high-level applications Demonstrates how to manipulate data, incorporate advanced functions and libraries, and maximize application performance Examples use C as a high-level language, Linux as the development environment, and GNU tools for assembling, compiling, linking, and debugging

Numerical Methods in Engineering with Matlab(r)


Jaan Kiusalaas - 2005
    Examples and applications were chosen for their relevance to real world problems, and where numerical solutions are most efficient. Numerical methods are discussed thoroughly and illustrated with problems involving both hand computation and programming. MATLAB(R) mfiles accompany each method and are available on the book web site. This code is made simple and easy to understand by avoiding complex bookkeeping schemes, while maintaining the essential features of the method. MATLAB(R) was chosen as the example language because of its ubiquitous use in engineering studies and practice. Moreover, it is widely available to students on school networks and through inexpensive educational versions. Explore numerical methods with MATLAB(R), a great tool for teaching scientific computation.

Knoppix Pocket Reference: Troubleshoot, Repair, and Disinfect Both Linux and Windows


Kyle Rankin - 2005
    It includes Linux software and desktop environments, automatic hardware detection and hundreds of other quality open source programs.Whether you're a system administrator or power user, you can use Knoppix for many different purposes. Knoppix boots and runs completely from a single CD so you don't need to install anything to your hard drive. Due to on-the-fly decompression, the CD can have up to 2 GB of executable software installed on it.What you do need, however, is a comprehensive reference guide so you can benefit from all that Knoppix has to offer. The Knoppix Pocket Reference from O'Reilly fits the bill. This handy book shows you how to use Knoppix to troubleshoot and repair your computer, how to customize the Knoppix CD, running RAM memory checks, recovering data from a damaged hard drive, cloning hard drives, using Knoppix as a Terminal Server, using Knoppix as a kiosk OS, scanning for viruses on a Windows system, editing the Registry of a Windows system, and much more.If you want more information than the average Knoppix user, Knoppix Pocket Reference is an absolutely essential addition to your personal library.

Computer Viruses: From Theory to Applications


Iric Filiol - 2005
    The theoretical formalization by means of Turing machines, self-reproducing automata and recursive functions enable a precise and exhaustive description of the different types of malware. It follows that the main stakes of computer defense and antiviral fighting are easily highlighted. Detailed analysis of the source code for representative members of each virus/worm family allows the reader to grasp the basic algorithmic aspects involved in self-reproducing codes. The C programming language has been systematically used for a better understanding of the considered codes.

JDBC Recipes: A Problem-Solution Approach


Mahmoud Parsian - 2005
    You will be able to integrate these solutions into your web-based applications, such as Java servlets, JavaServer Pages, and Java server-side frameworks. This handy book allows you to cut and paste the solutions without any code changes.This book focuses on topics that have been ignored in most other JDBC books, such as database and result set metadata. It will help you develop database solutions, like adapters, connectors, and frameworks using Java/JDBC. The insightful solutions will enable you to handle all data types, including large binary objects. A unique feature of the book is that it presents JDBC solutions (result sets) in XML.

SRP: The Single Responsibility Principle


Robert C. Martin - 2005
    THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE.

Access 2003 Programming by Example with VBA, XML, and ASP


Julitta Korol - 2005
    This book helps users build the toolset required for developing their own database solutions.

Beginning Java Objects: From Concepts to Code


Jacquie Barker - 2005
    Plenty of titles dig into the Java language in massive detail, but this one takes the unique approach of stepping back and looking at fundamental object concepts first. Mastery of Java--from understanding the basic language features to building complete industrial-strength Java applications--emerges only after a thorough tour of thinking in objects.The first edition of Beginning Java Objects has been a bestseller; this second edition includes material on the key features of J2SE 5, conceptual introductions to JDBC and J2EE, and an in-depth treatment of the critical design principles of model-data layer separation and model-view separation.Despite the plethora of beginning Java titles on the market, this book is truly unique in its coverage of three critical topic--sobject concepts, UML modeling, and Java programming--within a single cover. It's ideal for both individual self-study and as a university-level textbook. Let Beginning Java Objects, Second Edition be your guide!

Beginning ASP.Net 2.0


Chris Hart - 2005
    This updated bestseller gets readers involved immediately with task-oriented examples that can help them build their own sites Each chapter is designed to complete a part of the sample Web site, introducing technology topics as required Makes extensive use of Microsoft's new visual ASP.NET development tool, showing readers how to save time and write less code to achieve more results faster The book provides examples in Visual Basic - the easiest language for beginning ASP.NET developers to learn

Programming Languages: Principles and Paradigms


Maurizio Gabbrielli - 2005
    I accepted for at least two reasons. The ?rst is that the request came to me from two colleagues for whom I have always had the greatest regard, starting from the time when I ?rst knew and appreciated them as students and as young researchers. The second reason is that the text by Gabbrielli and Martini is very near to the book that I would have liked to have written but, for various reasons, never have. In particular, theapproachadoptedinthisbookistheonewhichImyselfhavefollowed when organising the various courses on programming languages I have taught for almost thirty years at different levels under various titles. The approach, summarised in 2 words, is that of introducing the general concepts (either using linguistic mechanisms or the implementation structures corresponding to them) in a manner that is independent of any speci?c language; once this is done, "real languages" are introduced. This is the only approach that allows one to - veal similarities between apparently quite different languages (and also between paradigms). At the same time, it makes the task of learning different languages e- ier. In my experience as a lecturer, ex-students recall the principles learned in the course even after many years; they still appreciate the approach which allowed them to adapt to technological developments without too much dif?culty.

Finite Model Theory and Its Applications


Erich Grädel - 2005
    One of the fundamental insights of mathematical logic is that our understanding of mathematical phenomena is enriched by elevating the languages we use to describe mathematical structures to objects of explicit study. If mathematics is the science of patterns, then the media through which we discern patterns, as well as the structures in which we discern them, command our attention. It isthis aspect oflogicwhichis mostprominentin model theory,"thebranchof mathematical logic which deals with the relation between a formal language and its interpretations." No wonder, then, that mathematical logic, and ?nite model theory in particular, should ?nd manifold applications in computer science: from specifying programs to querying databases, computer science is rife with phenomena whose understanding requires close attention to the interaction between language and structure. This volume gives a broadoverviewof some central themes of ?nite model theory: expressive power, descriptive complexity, and zero-one laws, together with selected applications to database theory and arti?cial intelligence, es- cially constraint databases and constraint satisfaction problems. The ?nal chapter provides a concise modern introduction to modal logic, which emp- sizes the continuity in spirit and technique with ?nite model theory.

Component-Oriented Programming


Andy Ju An Wang - 2005
    Following an overview of basic theories and methodologies, the authors provide a unified component infrastructure for building component software using JavaBeans, EJB, OSGi, CORBA, CCM, .NET, and Web services. You'll learn how to develop reusable software components; build a software system of pre-built software components; design and implement a component-based software system using various component-based approaches. Clear organization and self-testing features make Component Oriented Programming an ideal textbook for graduate and undergraduate courses in computer science, software engineering, or information technology as well as a valuable reference for industry professionals.

Microsoft® Windows® Administrator's Automation Toolkit


Don Jones - 2005
    You'll learn how to reconfigure multiple services on a computer, shut down multiple remote computers, add users to Active Directory(R) directory service, automate security configurations, work with Internet Information Services 6.0, and perform other key computer and network management tasks. You'll also explore advanced scripting tools. The CD features all 120 timesaving scripts, plus a bonus eBook to further your scripting expertise.For customers who purchase an ebook version of this title, instructions for downloading the CD files can be found in the ebook.

An Introduction to IBM Rational Application Developer: A Guided Tour


Jane FungPeter Walker - 2005
    An Introduction to IBM Rational Application Developer, A Guided Tour is designed to jumpstart the learning process with its focus on interactive hands-on learning through a wide variety of useful, practical, end-to-end tutorials. Hands-on exercises and in-depth explanations form chapter "modules" within the book, thereby providing a complete step-by-step guide to each specific topic while allowing readers to pick and choose which tutorials they want (or need) to study without necessarily going in chapter order. And, because of its modular structure, each tutorial's sample code is independent of any earlier tutorials, freeing readers to skip from tutorial to tutorial, based on their specific knowledge requirements. Because of this design, this book continues to be a useful reference as a reader's "need to know" increases.Using this book's method, readers quickly learn IBM Rational Application Developer—regardless of their previous level of experience or inexperience. For beginners, there are tutorials that teach how to create Web, EJB, JMS, and Web Services applications using Rational Application Developer. For the more advanced readers, there are tutorials on security, publishing, testing, team development, profiling, and logging. Written to appeal to as broad an audience as possible, the tutorials run on common databases, including IBM Cloudscape, IBM DB2® Universal Database, Microsoft® SQL Server, Sybase® Enterprise Systems, and Oracle® Database.

Debian GNU/Linux 3.1 Bible


David B. Harris - 2005
    Comprehensive, beginning-to-advanced coverage of Debian GNU/Linux, which boasts an estimated installed base of 1.75 million servers and a year-to-year growth rate of 25 percent Debian GNU/Linux is free, supported by HP, and is often cited as the most stable and reliable Linux distribution-which makes it a great alternative for users put off by Red Hat's pricey Enterprise Linux and unsupported Fedora Written by an active and widely recognized member of the Debian community and featuring a foreword by the Debian Project Leader Features the basic distribution on one CD-ROM as well as a mini disk that allows users to explore Debian GNU/Linux without actually installing it

Analysis of Integrated and Co-Integrated Time Series with R: Use R!


Bernhard Pfaff - 2005
    This text shows how to conduct the various unit root tests and co-integration methods using the free statistical programming environment R. It includes numerous programming examples involving artificial and real data.

Rss and Atom: Understanding and Implementing Content Feeds and Syndication


Heinz Wittenbrink - 2005
    The feed formats and vocabularies are covered in depth, and the book does require some familiarity with XML, but no scripting or development expertise is necessary. The book starts by analyzing the need to distribute content that RSS emerged to meet. It outlines in development of the various formats as way of understanding how the technology map of today came about. The current status of the leading formats is summarized succinctly. Then RSS is examined in detail. The XML vocabulary and document structure is examined and explained clearly. Each element is illustrated with carefully chosen examples. The changes through RSS 0.9x to 2.0 are covered in depth as are extensions and modules such as BitTorrent, EasyNews and others. The book then goes on to examine the richness and complexity of RSS 1.0 and 1.1, again covering both how design decisions were made, then covering the XML structure in depth. The same in depth treatment is then given to Atom, comparing and contrasting the formats where appropriate.

Hacker Debugging Uncovered


Kris Kaspersky - 2005
    How debuggers operate and how to overcome obstacles and repair debuggers is demonstrated. Programmers will learn how to look at what is inside a computer system, how to reconstruct the operating algorithm of a program distributed without source code, how to modify the program, and how to debug drivers. The use of debugging applications and drivers in Windows and Unix operating systems on Intel Pentium/DEC Alpha-based processors is also detailed.

The Minimum You Need to Know to Be an OpenVMS Application Developer


Roland Hughes - 2005
    This book was a year long effort to answer both of those questions. It also should help those to work on a good platform. Once the rudimentaries of logging in, symbols, logicals and the various editors are handled this book takes the reader on a journey of development using the most common tools encountered on the OpenVMS platform and one new tool making headway. A single sample application (a lottery tracking system) is developed using FMS and RMS indexed files in each of the covered languages. (BASIC, FORTRAN, COBOL and C/C++). The reader is exposed on how to use CDD, CMS and MMS with these languages as well. A CD-ROM is included which contains the source, MMS and command files developed through the course of the book. Once RMS has been covered with all of the languages the same application using MySQL with C and FMS is covered. This breaks readers into the use of relational databases if they are not currently familiar with the concept. Rounding out the technical portion of the book is the same application using RDB with FMS. While source code is provided for all of the language implementations only FORTRAN and COBOL are actually covered in the text. It is the hope of the author that this book will prove a useful reference on the desk of every OpenVMS developer. The inclusion of MySQL should benefit both those unfamiliar with relational technology and those platformveterans interested in playing with MySQL for the first time.

Programming with Quartz: 2D and PDF Graphics in Mac OS X


David Gelphman - 2005
    By using the methods described in this book, developers will be able to fully exploit the state-of-the-art graphics capabilities of Mac OS X in their applications, whether for Cocoa or Carbon development. This book also serves as an introduction to 2D graphics concepts, including how images are drawn and how color is rendered. It includes guidance for working with PDF documents, drawing bitmap graphics, using Quartz built-in color management, and drawing text. Programming with Quartz is a rich resource for new and experienced Mac OS X developers, Cocoa and Carbon programmers, UNIX developers who are migrating to Mac OS X, and anyone interested in powerful 2D graphics systems.

Professional ADO.NET 2: Programming with SQL Server 2005, Oracle, and MySQL


Wallace B. McClure - 2005
    With Microsoft's release of ADO.NET 2, ADO and the .NET Framework are integrated with SQL Server for the first time-enabling you to program .NET applications directly within the SQL Server database. Packed with sample code and recommended best practices for using ADO.NET 2, this code-intensive book explores the new data types that are available in the 2.0 Framework and discusses the appropriate time and way to use them. You'll learn how to make repetitive, mundane tasks much simpler and you'll walk away with a solid foundation for developing database-driven applications.What you will learn from this bookThe basics of creating a connection, executing a query, and returning a result Best uses for Oracle in the ADO.NET Framework The many new features that are available for XML How to use the full text search capabilities of Microsoft(r) SQL Server 2005 Methods for retrieving data and presenting it in various ways Why MySQL is a viable option for data storage Who this book is forThis book is for experienced database developers who want to learn the latest release of ADO.NET 2.0. Knowledge of ADO.NET 1.0, general .NET development, and Microsoft SQL Server is necessary.Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.

Apple Pro Training Series: Soundtrack Pro (Apple Pro Training)


Mary Plummer - 2005
    In this Apple-certified book/DVD combo, readers will find a complete, self-paced course in all aspects of Soundtrack Pro. Author Mary Plummer guides you through the secrets of editing, repairing, mixing, and arranging multi-track audio files, as well as how to create original soundtracks, score to video, add effects, and more. Step-by-step exercises and lesson files will have readers taking advantage of Soundtrack' s thousands of audio loops to create perfectly synched scores in no time. Also included are dozens of advanced sound editing tips for professional users who want to take their video, DVD, and Web projects to the next level.

Microsoft® Visual C#® 2005 Express Edition: Build a Program Now!


Patrice Pelland - 2005
    For those customers purchasing one of the digital formats in which this book is available, we are pleased to offer the CD/DVD content as a free download via O'Reilly Media's Digital Distribution services. To download this content, please visit O'Reilly's web site, search for the title of this book to find its catalog page, and click on the link below the cover image (Examples, Companion Content, or Practice Files). Note that while we provide as much of the media content as we are able via free download, we are sometimes limited by licensing restrictions. Please direct any questions or concerns to booktech@oreilly.com.