How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
Ralph Johnson, Erich Gamma, John Vlissides, Richard Helm
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk. 0201633612B07092001
This volume is a handbook for enterprise system developers, guiding them through the intricacies and lessons learned in enterprise application development. It provides proven solutions to the everyday problems facing information systems developers.
Features the best practices in the art and science of constructing software--topics include design, applying good techniques to construction, eliminating errors, planning, managing construction activities, and relating personal character to superior software. Original. (Intermediate)
Richard Jones, Rafael Lins
Eliminating unwanted or invalid information from a computer's memory can dramatically improve the speed and officiency of the program. this reference presents full descriptions of the most important algorithms used for this eliminatino, called garbage collection. Each algorith is explained in detail with examples illustrating different results.
Ed Burns, Chris Schalk
The Definitive Guide to JavaServer Faces 2.0 Fully revised and updated for all of the changes in JavaServer Faces (JSF) 2.0, this comprehensive volume covers every aspect of the official standard Web development architecture for JavaEE. Inside this authoritative resource, the co-spec lead for JSF at Sun Microsystems shows you how to create dynamic, cross-browser Web applications that deliver a world-class user experience while preserving a high level of code quality and maintainability. JavaServer Faces 2.0: The Complete Reference features an integrated sample application to use as a model for your own JSF applications, with code available online. The book explains all JSF features, including the request processing lifecycle, managed beans, page navigation, component development, Ajax, validation, internationalization, and security. Expert Group Insights throughout the book offer insider information on the design of JSF. Set up a development environment and build a JSF application Understand the JSF request processing lifecycle Use the Facelets View Declaration Language, managed beans, and the JSF expression language (EL) Define page flow with the JSF Navigation Model, including the new "Implicit Navigation" feature Work with the user interface component model and the JSF event model, including support for bookmarkable pages and the POST, REDIRECT, GET pattern Use the new JSR-303 Bean Validation standard for model data validation Build Ajax-enabled custom UI components Extend JSF with custom non-UI components Manage security, accessibility, internationalization, and localization Learn how to work with JSF and Portlets from the JSF Team Leader at Liferay, the leading Java Portal vendor Ed Burns is a senior staff engineer at Sun Microsystems and is the co-specification lead for JavaServer Faces. He is the co-author of JavaServer Faces: The Complete Reference and author of Secrets of the Rock Star Programmers. Chris Schalk is a developer advocate and works to promote Google's APIs and technologies. He is currently engaging the international Web development community with the new Google App Engine and OpenSocial APIs. Neil Griffin is committer and JSF Team Lead for Liferay Portal and the co-founder of The PortletFaces Project. Ready-to-use code at www.mhprofessonal.com/computingdownload
Let Over Lambda is one of the most hardcore computer programming books out there. Starting with the fundamentals, it describes the most advanced features of the most advanced language: Common Lisp. Only the top percentile of programmers use lisp and if you can understand this book you are in the top percentile of lisp programmers. If you are looking for a dry coding manual that re-hashes common-sense techniques in whatever langue du jour, this book is not for you. This book is about pushing the boundaries of what we know about programming. While this book teaches useful skills that can help solve your programming problems today and now, it has also been designed to be entertaining and inspiring. If you have ever wondered what lisp or even programming itself is really about, this is the book you have been looking for.
Luke VanderHart, Stuart Sierra
Clojure is the best all-purpose programming language that I have yet to encounter in my software development career. When I first began learning it, I found myself thrilled and satisfied in ways that I can only recall experiencing once beforeùwhen I received my first computer, and entered those first few commands and watched in delight as it responded with precision to my instructions. Over the years, of course, much of the charm of programming wore off. The excitement of imposing my will on a complex machine gradually became lost as I repeatedly slogged through the same exercises and patterns, overcoming with difficulty the inherent complexities of ever-larger systems. But with Clojure, I noticed a curious shift. I began, once more, to enjoy the act of programming. Not just the act of creation and planning, which I've always liked, but even implementing low-level, "everyday" routines. Programming in Clojure is like removing a restrictive suitùonce more, you'll feel like you are actually in control, expressing yourself to the program directly rather than through layers of vaguely necessary indirection. You will be impressed and pleased with Clojure's expressiveness, allowing scope for creativity and original abstractions. Instead of programs becoming more complex and difficult to understand as they grow, Clojure programs become simpler and more expressive. More than that, Clojure will encourage you to try things that are simply too complicated to do regularly in other languages: concurrency, immutability, and lazy data structures. Plus since it runs on the JVM, you can use the same platform, libraries, and tools that you are comfortable with. I hope that this book opens the same doors for you as it did for me, and shows Clojure to be the fun, expressive, and mature language that I have found it to be. Sincerely, Luke VanderHart
Jean-Michel Muller, Nicolas Brisebarre, Florent de Dinechin, Claude-Pierre Jeannerod, Vincent Lefèvre, Guillaume Melquiond, Nathalie Revol, Damien Stehlé, Serge Torres
Floating-point arithmetic is the most widely used way of implementing real-number arithmetic on modern computers. However, making such an arithmetic reliable and portable, yet fast, is a very difficult task. As a result, floating-point arithmetic is far from being exploited to its full potential. This handbook aims to provide a complete overview of modern floating-point arithmetic. So that the techniques presented can be put directly into practice in actual coding or design, they are illustrated, whenever possible, by a corresponding program. The handbook is designed for programmers of numerical applications, compiler designers, programmers of floating-point algorithms, designers of arithmetic operators, and more generally, students and researchers in numerical analysis who wish to better understand a tool used in their daily work and research.
David A. Taylor
"The first edition set a standard of excellence that has eluded all followers, and I have recommended it to my clients for years. The new edition is a gift to the field and should be required reading for all managers." - Adrian J. Bowles, Ph.D., Vice President Giga Information Group "One of the most readable introductions you will find. The new edition offers vital insights into the effective use of objects in business." - Chris Stone, President Object Management Group The first edition ofObject Technology: A Manager's Guideis widely viewed as the classic introduction to this powerful computing concept. Object technology offers increased agility, significant time-to-market reduction, and the opportunity to exploit the potential of the World Wide Web by deploying globally distributed business systems. At a time when many of the world's largest companies are making the transition to object technology, David Taylor has updated his book to address the important issues facing the growth of object technology and to provide a glimpse into the future of this evolving paradigm. In updating this seminal work, David Taylor has retained the signature conciseness and,clarity of discussion that made the first edition a best-seller. Object Technology: A Manager's Guide, Second Edition, covers the key terms, emerging concepts, and useful applications of objects. Managers, salespeople, engineers, software developers-anyone interested in understanding or implementing object technology-will find this a lucid introduction to the topic. Highlights of this new edition include: An explanation of how to use objects to create evolutionary software that rapidly adapts to changing business conditions, eliminating the need for most new application development. An introduction to Java, and an explanation of how its use of message interfaces enables a new generation of portable, mix-and-match, Internet-enabled business objects. An update on the state of object databases and extended relational databases, with guidelines for combining the two for optimal information storage. An introduction to the new generation of object engines and how they combine storage and execution capabilities for maximum software integration. 0201309947B09102001