History of Art


H.W. Janson - 1962
    In the 1st edition, published in 1962, he spoke to that perennial reader he gently called "the troubled layman." His opening paragraph revealed his sympathy: "Why is this supposed to be art?" he quoted rhetorically. "How often have we heard this question asked--or asked it ourselves, perhaps--in front of one of the strange, disquieting works that we are likely to find nowadays in the museum or art exhibition?" Keeping that curious, questioning perspective in mind, he wrote a history of art from cave painting to Picasso that was singularly welcoming, illuminating & exciting. Sojourning thru this book, a reader is offered every amenity for a comfortable trip. Because he never assumes knowledge on the part of the reader, a recent immigrant from Mars could comprehend Western art from this text. The only assumption the Jansons have made is that with a little guidance everyone can come to understand the artifacts that centuries of architecture, sculpture, design & painting have deposited in our paths. Countless readers have proven the Jansons right & found their lives enriched in the process.

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.