English Deutsch Français 简体中文 繁體中文
Book123, Download eBooks for Free - Anytime! Submit your article

Categories

Share With Friends



Like Book123?! Give us +1

Archive by Date

Search Tag

Newest

Useful Links


Technical Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))

Posted on 2010-03-15




Name:Technical Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))
ASIN/ISBN:0596510047
Language:English
File size:10.68 Mb
   Technical Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))

Free Download Now     Free register and download UseNet downloader, then you can FREE Download from UseNet.

    Download without Limit " Technical Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) " from UseNet for FREE!
Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) By Andy Oram, Greg Wilson, Publisher: O'Reilly Media, Inc.

Number Of Pages: 600

Publication Date: 2007-06-26

Sales Rank: 235

ISBN / ASIN: 0596510047

EAN: 9780596510046

Binding: Paperback

Manufacturer: O'Reilly Media, Inc.

Studio: O'Reilly Media, Inc.

Average Rating: 5

How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes. This is not simply another design patterns book, or another software engineering treatise on the left and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules. Beautiful Code is an opportunity for master coders to tell their story. All author royalties will be donated to Amnesty International. The book includes: Chapter 1, A Regular Expression Matcher, by Brian Kernighan, shows how deep insight into a language and a problem can lead to a concise and elegant solution. Chapter 2, Subversion's Delta Editor: Interface as Ontology, by Karl Fogel, starts with a well-chosen abstraction and demonstrates its unifying effects on the system's further development. Chapter 3, The Most Beautiful Code I Never Wrote, by Jon Bentley, suggests how to measure a procedure without actually executing it. Chapter 4, Finding Things, by Tim Bray, draws together many strands in Computer Science in an exploration of a problem that is fundamental to many computing tasks. Chapter 5, Correct, Beautiful, Fast (In That Order): Lessons From Designing XML Verifiers, by Elliotte Rusty Harold, reconciles the often conflicting goals of thoroughness and good performance. Chapter 6, Framework for Integrated Test: Beauty through Fragility, by Michael Feathers, presents an example that breaks the rules and achieves its own elegant solution. Chapter 7, Beautiful Tests, by Alberto Savoia, shows how a broad, creative approach to testing can not only eliminate bugs but turn you into a better programmer. Chapter 8, On-the-Fly Code Generation for Image Processing, by Charles Petzold, drops down a level to improve performance while maintaining portability. Chapter 9, Top-Down Operator Precedence, by Douglas Crockford, revives an almost forgotten parsing technique and shows its new relevance to the popular JavaScript language. Chapter 10, The Quest for an Accelerated Population Count, by Henry S. Warren, Jr., reveals the impact that some clever algorithms can have on even a seemingly simple problem. Chapter 11, Secure Communication: The Technology of Freedom, by Ashish Gulhati, discusses the directed evolution of a secure messaging application that was designed to make sophisticated but often confusing cryptographic technology intuitively accessible to users. Chapter 12, Growing Beautiful Code in BioPerl, by Lincoln Stein, shows how the combination of a flexible language and a custom-designed module can make it easy for people with modest programming skills to create powerful visualizations for their data. Chapter 13, The Design of the Gene Sorter, by Jim Kent, combines simple building blocks to produce a robust and valuable tool for gene researchers. Chapter 14, How Elegant Code Evolves With Hardware: The Case Of Gaussian Elimination, by Jack Dongarra and Piotr Luszczek, surveys the history of LINPACK and related major software packages, to show how assumptions must constantly be re-evaluated in the face of new computing architectures. Chapter 15, The Long-Term Benefits of Beautiful Design, by Adam Kolawa, explains how attention to good design principles many decades ago helped CERN's widely used mathematical library (the predecessor of LINPACK) stand the test of time. Chapter 16, The Linux Kernel Driver Model: The Benefits of Working Together, by Greg Kroah-Hartman, explains how many efforts by different collaborators to solve different problems led to the successful evolution of a complex, multithreaded system. Chapter 17, Another Level of Indirection, by Diomidis Spinellis, shows how the flexibility and maintainability of the FreeBSD kernel is promoted by abstracting operations done in common by many drivers and filesystem modules. Chapter 18, Python's Dictionary Implementation: Being All Things to All People, by Andrew Kuchling, explains how a careful design combined with accommodations for a few special cases allows a language feature to support many different uses. Chapter 19, Multi-Dimensional Iterators in NumPy, by Travis E. Oliphant, takes you through the design steps that succeed in hiding complexity under a simple interface. Chapter 20, A Highly Reliable Enterprise System for NASA's Mars Rover Mission, by Ronald Mak, uses industry standards, best practices, and Java technologies to meet the requirements of a NASA expedition where reliability cannot be in doubt. Chapter 21, ERP5: Designing for Maximum Adaptability, by Rogerio Atem de Carvalho and Rafael Monnerat, shows how a powerful ERP system can be developed with free software tools and a flexible architecture. Chapter 22, A Spoonful of Sewage, by Bryan Cantrill, lets the reader accompany the author through a hair-raising bug scare and a clever solution that violated expectations. Chapter 23, Distributed Programming with MapReduce, by Jeff Dean and Sanjay Ghemawat, describes a system that provides an easy-to-use programming abstraction for large-scale distributed data processing at Google that automatically handles many difficult aspects of distributed computation, including automatic parallelization, load balancing, and failure handling. Chapter 24, Beautiful Concurrency, by Simon Peyton Jones, removes much of the difficulty of parallel program through Software Transactional Memory, demonstrated here using Haskell. Chapter 25, Syntactic Abstraction: The syntax-case Expander, by Kent Dybvig, shows how macros-a key feature of many languages and systems-can be protected in Scheme from producing erroneous output. Chapter 26, Labor-Saving Architecture: An Object-Oriented Framework for Networked Software, by William Otte and Douglas C. Schmidt, applies a range of standard object-oriented design techniques, such as patterns and frameworks, to distributed logging to keep the system flexible and modular. Chapter 27, Integrating Business Partners the RESTful Way, by Andrew Patzer, demonstrates a designer's respect for his programmers by matching the design of a B2B web service to its requirements. Chapter 28, Beautiful Debugging, by Andreas Zeller, shows how a disciplined approach to validating code can reduce the time it takes to track down errors. Chapter 29, Treating Code as an Essay, by Yukihiro Matsumoto, lays out some challenging principles that drove his design of the Ruby programming language, and that, by extension, will help produce better software in general. Chapter 30, When a Button Is All That Connects You to the World, by Arun Mehta, takes you on a tour through the astounding interface design choices involved in a text editing system that allow people with severe motor disabilities, like Professor Stephen Hawking, to communicate via a computer. Chapter 31, Emacspeak: The Complete Audio Desktop, by TV Raman, shows how Lisp's advice facility can be used with Emacs to address a general need-generating rich spoken output-that cuts across all aspects of the Emacs environment, without modifying the underlying source code of a large software system. Chapter 32, Code in Motion, by Laura Wingerd and Christopher Seiwald, lists some simple rules that have unexpectedly strong impacts on programming accuracy. Chapter 33, Writing Programs for "The Book," by Brian Hayes, explores the frustrations of solving a seemingly simple problem in computational geometry, and its surprising resolution.

Review: Beautiful Code I am always looking to for new ways to look at programming problems. I love studying new programming languages in order to bend my mind in new, uncomfortable ways. Both of these are reasons I enjoyed Beautiful Code. Beautiful Code is a collection of essays from some well known software engineers. That said, I didn't immediately recognize many of their names (this is probably an indication of my lack of exposure in their fields of expertise). If you are like me, there is an alphabetical list of short biographical entries in the back of the book you can use to acquaint yourself with who wrote each chapter. There are chapters from people in the Perl, Python, Ruby, Google, Scheme, and Haskell communities (among others). I especially enjoyed reading about Google's MapReduce algorithm, Haskell's Software Transactional Memory, and Scheme's syntax-case macro system. These are subjects I have previously tried to tackle, but the explanations written in this book have helped me approach understanding far better than the academic papers on these subjects I have tried to read. You'll have to put forth effort to follow the explanations in the chapters as the authors walk you through how they tackle a given problem. This leads eventually to the solution, but may involve many twists and turns along the way. These twists and turns show how the authors think and grants us as the readers insight into how they approach the problems at hand. It's the journey to the desination that sometimes matters more than the destination. For example, I've long wondered abut the difference between hygenic and non-hygenic macros. Various descriptions on the web have given me some clue, but chapter 25 shows examples and explains the problem very clearly. It then goes about discussing various solutions that have been devised over the years before going into the details of the current solution that is in use today. I've seen the end result before, but knowing what motivated the solution gives me a much greater appreciation for and understanding of it. The effort required for some chapters may be over your head as they are for me, but those are the chapters where I find the rewards to be the greatest as they force me to look at things in new ways. Once I do achieve understanding I'm able to apply the new found ways of thinking about problems to the situations I face at work and elsewhere which has led to unique and compelling solutions that I would not have thought of before. I've long been on the search for beauty in the code I write. I have found that as I read and take the time to understand what others see as beautiful, even when I do not see beauty in it at first, I gain greater insights into my craft. I am glad that O'Reilly has taken the time to solicit responses from the authors in this book as it has given us a wealth of experience and expertise that we all can benefit from as we seek to gain greater insights into the various facets of beauty and elegance in code. Review: A timeless book that should be useful to all programmers This book surveys the range of human invention and ingenuity in the development of computer systems. The elegance in each contributor's offering comes from the discovery of unique solutions, a discovery that comes from the authors' power to look beyond established boundaries, to see needs that have been overlooked by others, and to find innovative solutions to difficult problems. Many of the authors have confronted limitations in the physical environment, in resources, or in requirements that made it hard to believe that there were workable solutions that confronted and solved all problems, and then came up with those solutions. Still others already had a solution that worked, but came up with something new and innovative that worked even better. All the authors in this book have drawn lessons from their projects, but you can learn some even broader lessons after reading the entire book. 1. There are times when rules really do work and you don't have to abandon good technique in order to meet your design requirements. Often you just need to get away from the problem and then approach it again anew in order to see the solution.

2. Some chapters confirm that you must know the rules before you can break them. Some of the authors in this book had years of experience being masters of the various rules of software design before deciding to take an unconventional route toward solving a difficult problem, and this experience gave them the confidence they needed to break the rules in a constructive way.

3. Cross-disciplinary studies are championed by the lessons in this book. Many authors came into new domains and had to find their way in relative darkness. A particularly pure form of creativity and intelligence triumphed in a situation that required pioneers and free thinkers.

4.Finally, this book reveals that beautiful solutions don't last for all time. New circumstances will always require a new look. So, if you read this book and think that the authors' ideas and contributions are not relevant to your current problems, the situation could change in a few months or a few years. This is one of those books that should be useful to you for a long time to come since the lessons taught here don't go out of style as programming languages and technologies are born and eventually abandoned. Highly recommended.Password: gigapedia.org Buy Book at Lowest Price on Amazon

Rating:

2.5 out of 5 by

 
Download Links
  ServerStatus
  Direct Download Link 1Alive
  Direct Download Link 2Alive
  Download Link (Download Link 1)Alive
  Download Link (Download Link 1)Alive
  Download Link (Download Link 2)Alive
  Download Link (Download Link 1)Alive


Buy This Book at Best Price >>

Like this article?! Give us +1:

Related Articles


Programming Beautiful Code: Leading Programmers Explain How They Think

Programming Beautiful Code: Leading Programmers Explain How They Think

Andy Oram / Greg Wilson, «Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice)»O'Reilly Media, Inc. | ISBN: 0596510047 | 2007-06-26 | 600 pages | CHM | 5 Mb How do the experts solve difficult problems in softwar ...

EBook Torrents O\'Reilly - Beautiful Code

EBook Torrents O\'Reilly - Beautiful Code

Science/Engineering A Beautiful Math: John Nash, Game Theory, And the Modern Quest for a Code of Nature

Science/Engineering A Beautiful Math: John Nash, Game Theory, And the Modern Quest for a Code of Nature

Tom Siegfried, A Beautiful Math: John Nash, Game Theory, And the Modern Quest for a Code of NatureJoseph Henry Press | ISBN 0309101921 | 2006 | PDF | 1 MB | 273 pagesJohn Nash won the 1994 Nobel Prize in economics for pioneering researc ...

Economics/Finances Leading Strategic Change: Bridging Theory and Practice

Economics/Finances Leading Strategic Change: Bridging Theory and Practice

Leading Strategic ChangeCambridge University Press | 2008-07-21 | ISBN: 0521849470 | 288 pages | PDF | 1,3 MBWhy do some companies continue to be successful while others experience difficulties and even failure? In Leading Strategic Change, ...

Security/Hacking Beautiful Security: Leading Security Experts Explain How They Think

Security/Hacking Beautiful Security: Leading Security Experts Explain How They Think

Andy Oram, John Viega, "Beautiful Security: Leading Security Experts Explain How They Think" O'Reilly Media | 2009 | ISBN: 0596527489 | 300 pages | PDF | 1,9 MB In this thought-provoking anthology, today's security experts describe bold a ...

Why I Am a Christian: Leading Thinkers Explain Why They Believe

Why I Am a Christian: Leading Thinkers Explain Why They Believe

Why I Am a Christian: Leading Thinkers Explain Why They Believe Publisher: Baker Books | ISBN: 080106712X | edition 2006 | PDF | 304 pages | 2,45 mbDespite contributions from high-profile writers such as Ravi Zacharias, Josh McDowell and P ...

Share this page with your friends now!
Text link
Forum (BBCode)
Website (HTML)' readonly />
Tags:
Theory   Practice   Beautiful   Explain  
 

DISCLAIMER:

This site does not store Technical Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) on its server. We only index and link to Technical Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) provided by other sites. Please contact the content providers to delete Technical Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) if any and email us, we'll remove relevant links or contents immediately.

Comments (0) All

Verify: Verify

    Sign In   Not yet a member?

Sign In | Not yet a member?