<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>Ed at Work</title>
  <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/" />
  <link rel="self" href="http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2008-03-28T08:48:34.8147571-07:00</updated>
  <author>
    <name>Ed Ball</name>
  </author>
  <subtitle>Thoughts from the office by Ed Ball</subtitle>
  <id>http://www.ejball.com/EdAtWork/</id>
  <generator uri="http://www.dasblog.net" version="1.8.5223.0">DasBlog</generator>
  <entry>
    <title>Book Review: Programming .NET Components, 2nd Edition</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2008/03/28/BookReviewProgrammingNETComponents2ndEdition.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,bb22ba9a-ba84-45c7-adf9-abb5d5715560.aspx</id>
    <published>2008-03-28T08:48:34.8147571-07:00</published>
    <updated>2008-03-28T08:48:34.8147571-07:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      The second edition of <a href="http://www.amazon.com/dp/0596102070">Programming .NET
      Components</a> by Juval Löwy was a decent book on .NET techniques, though I found
      myself unconvinced by much of his advice. In particular, Juval is a big fan of interface-based
      programming, but doesn’t spend much time explaining the “benefits of interface-based
      programming” (p. 50). I find myself happy to have left it behind with COM. But perhaps
      some of this advice works better in “enterprise” situations than it does in client
      applications?
   </p>
        <p>
      In any case, most of the value for me with books like this comes from learning things
      I didn’t know before, so here’s my list of the highlights (and criticisms):
   </p>
        <ul>
          <li>
         p. 30: He seems to claim that the “global namespace” is really just a top-level namespace
         named “global”, but I don’t find that to be the case.</li>
          <li>
         p. 55: He talks about “programming defensively” by checking to see if an interface
         is supported by an object. “Never assume an object supports an interface.” This advice
         may hold well with interface-based programming, but when you’re programming with concrete
         types, it’s better to throw an exception if you expect an interface that isn’t there.</li>
          <li>
         p. 56: He doesn’t articulate the “advantages” of using interfaces on structs very
         well. In particular, he doesn’t mention that casting a struct to an interface causes
         it to be boxed, in which case you may as well be using a class instead of a struct.</li>
          <li>
         p. 96: Here’s something I didn’t know: «using (null)» is legal; it simply does nothing
         at the end of the using block.</li>
          <li>
         p. 98: He has his own “dispose pattern,” but doesn’t seem to know that there’s a <a href="http://code.logos.com/blog/2008/02/the_dispose_pattern.html">standard
         dispose pattern</a> (or should explain why he doesn’t use it).</li>
          <li>
         p. 111: A SolutionInfo.cs file that is shared among all projects of a solution is
         a great idea that we’re using in our solutions at the office.</li>
          <li>
         p. 143: “You should always publish [events] inside a try/catch block” that eats the
         exceptions. I tend to put that responsibility on the client; ignoring exceptions is
         never healthy in the long run.</li>
          <li>
         p. 149: System.ComponentModel.EventHandlerList is a handy way to support large numbers
         of events without storing an individual delegate for each of them.</li>
          <li>
         p. 181: I didn’t realize that the AsyncWaitHandle of an IAsyncResult may not be released
         until the handle is garbage collected. I don’t agree with his advice to explicitly
         close the AsyncWaitHandle, though, because AsyncWaitHandle is often lazy-loaded; if
         the handle hasn’t been created, you’ll create it just to close it. Better to just
         leave it alone; some IAsyncResult implementations are smart enough to close the handle
         automatically when you call EndXxx.</li>
          <li>
         p. 198: He advises against setting IsBackground to true on a Thread; I agree. “You
         shouldn’t count on .NET to kill your background threads for you.”</li>
          <li>
         p. 204: I learned about “synchronization domains” (which are nothing like “synchronization
         contexts”) and “context-bound objects” – it reminds me a lot of COM apartments. Maybe
         someday I’ll find a use for them.</li>
          <li>
         p. 215: He unfortunately encourages the generally discouraged practice of locking
         “this” for synchronizing instance members and locking “typeof(ThisClass)” for static
         methods.</li>
          <li>
         p. 250: He jumps through a lot of hoops to make sure that raising an event can’t throw
         a null reference exception; I had never considered the problem of possible inlining.
         A good reason to avoid thread-safe events altogether, but I’d definitely use
         the <a href="http://code.logos.com/blog/2008/03/assigning_to_c_events.html">do-nothing
         delegate</a> trick before using a MethodImpl attribute to suppress inlining.</li>
          <li>
         p. 255: I forget that “managed threads” aren’t guaranteed to be actual individual
         physical threads.</li>
          <li>
         p. 263: Events can use ISynchronizeInvoke to raise events on the proper thread for
         a client with thread affinity.</li>
          <li>
         p. 268: I had forgotten about the XxxAsync/XxxCompleted/CancelAsync pattern provided
         by web service proxy classes.</li>
        </ul>
        <p>
      I stopped reading carefully at this point – the rest of the material escaped my interest.
      To conclude this review, I’ll not discourage you from reading the book, but there
      are lots of other .NET books that you should read first.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=bb22ba9a-ba84-45c7-adf9-abb5d5715560" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Check out the Logos Code Blog!</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2008/01/11/CheckOutTheLogosCodeBlog.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,59066579-de70-4078-80c0-0ec9d1e0422a.aspx</id>
    <published>2008-01-11T15:20:40.0184549-08:00</published>
    <updated>2008-01-11T15:20:40.0184549-08:00</updated>
    <category term="Code" label="Code" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      For my latest technical blogging, check out <a href="http://code.logos.com/blog/">http://code.logos.com/blog/</a>.
      Specifically, check out my <a href="http://code.logos.com/blog/2008/01/welcome_to_codelogoscom.html">introductory
      post</a> and my <a href="http://code.logos.com/blog/2008/01/data_binding_in_a_flowdocument.html">first
      technical post</a>.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=59066579-de70-4078-80c0-0ec9d1e0422a" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Book Review: Programming WPF</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2007/09/19/BookReviewProgrammingWPF.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,cb23b1c7-c320-4f57-b540-969d7f66face.aspx</id>
    <published>2007-09-19T09:32:18.5037088-07:00</published>
    <updated>2007-09-19T09:32:18.5037088-07:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      I’ve read many “how to program with WPF” books, and already have a year of programming
      experience in WPF, so I’m really not able to fairly review books like <a href="http://www.amazon.com/dp/0596510373">Programming
      WPF</a>, by Chris Sells and Ian Griffiths, at least from a beginner’s point of view.
      This book is actually the second edition; I reviewed the <a href="http://www.ejball.com/EdAtWork/2005/10/17/BookReviewProgrammingWindowsPresentationFoundation.aspx">first
      edition</a> way back in October 17, 2005.
   </p>
        <p>
      I’ll start with my conclusion – there is enough important material unique to this
      book that it is a must-have for the shelf of a WPF programmer. Despite its girth (835
      pages), it isn’t able to explain every facet of WPF in detail – in particular, I noticed
      that the Border class was given very little reference. I was worried that I wouldn’t
      find much of anything I didn’t already know, but I was fortunately wrong on that account,
      and will close the review by summarizing the most interesting bits:
   </p>
        <ul>
          <li>
         p. 59: You can safely use data binding with Settings.</li>
          <li>
         p. 136: Explains how focus scope affects command routing.</li>
          <li>
         p. 189: Good information on validation, including custom validation.</li>
          <li>
         p. 226: Grouping with PropertyGroupDescription.</li>
          <li>
         p. 298: Handy table of the template parts used by each control.</li>
          <li>
         p. 336: The ValidateBindings method.</li>
          <li>
         p. 341: You can navigate a NavigationWindow to a string.</li>
          <li>
         p. 379: It’s dangerous to use types as resource keys.</li>
          <li>
         ch. 12: Great information on resources.</li>
          <li>
         p. 432: Working with bitmaps and bitmap effects.</li>
          <li>
         p. 484: Low-level text output.</li>
          <li>
         ch. 15: Outstanding information on printing.</li>
          <li>
         p. 672: Using attached properties to identify template placeholders.</li>
          <li>
         p. 730: Screenshots demonstrating airspace issues with interop.</li>
        </ul>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=cb23b1c7-c320-4f57-b540-969d7f66face" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Book Review: Pro WPF</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2007/07/03/BookReviewProWPF.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,0bc9ab65-b684-4986-aa3d-c1b840bc3980.aspx</id>
    <published>2007-07-03T10:26:45.6900572-07:00</published>
    <updated>2007-07-03T10:26:45.6900572-07:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.amazon.com/dp/1590597826">Pro WPF</a>, by Matthew MacDonald, is
      quite impressive both in its breadth and in its depth. This tome of nearly 1,000 pages
      describes seemingly every feature of WPF with enough detail to actually get something
      done. No book of this size is perfect, but the typos were rare enough to not be distracting,
      and the writing was easy to read and comprehend. Even the succession of chapters is
      logical enough to allow sequential reading through the book, despite the varied topics.
   </p>
        <p>
      Even if you’re not of a mind to read the entire book cover to cover as I did, you’ll
      still want this book as a reference for topics that you won’t find discussed in the
      other WPF books, including how to build a custom view for a ListView, the many options
      for implementing printing in your application, how to create and use classes derived
      directly from Visual, etc. Highly recommended.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=0bc9ab65-b684-4986-aa3d-c1b840bc3980" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Book Review: Dreaming in Code</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2007/06/25/BookReviewDreamingInCode.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,e56b97cc-770f-4573-89a5-18613ffd9e47.aspx</id>
    <published>2007-06-25T14:22:51.9200278-07:00</published>
    <updated>2007-06-25T14:22:51.9200278-07:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.amazon.com/dp/1400082463">Dreaming in Code</a>, by Scott Rosenberg,
      is an outstanding look at the software development process from the perspective of
      a well-funded medium-size open source project that has been in development since 2003.
      This book is compelling from beginning to end, trying to help even the non-technical
      reader understand why software development is so hard. The many difficulties faced
      by this development team were surprisingly (and sometimes disturbingly) familiar.
      Highly recommended for everyone in software, and anyone else who wants to understand
      our world a little bit better.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=e56b97cc-770f-4573-89a5-18613ffd9e47" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Book Review: The Old New Thing</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2007/06/25/BookReviewTheOldNewThing.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,22b2377d-5600-47da-bf5e-8b1abf2d2783.aspx</id>
    <published>2007-06-25T14:21:02.2651814-07:00</published>
    <updated>2007-06-25T14:21:02.2651814-07:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.amazon.com/dp/0321440307">The Old New Thing</a>, by Raymond Chen,
      is an entertaining and enlightening collection of articles about Windows technology.
      It is a must-read, particularly if you're not already an avid reader of <a href="http://blogs.msdn.com/oldnewthing/">his
      blog</a> of the same name.
   </p>
        <p>
      I must confess to skipping the 88 pages that comprise chapter 10, "The Inner Workings
      of the Dialog Manager." It has been nearly a decade since I assembled a classic Windows
      dialog box, so the subject simply doesn't hold my interest like it once would have.
      In fact, a lot of the information in this book would have been invaluable 10 years
      ago...
   </p>
        <p>
      The most important chapter in this book is "Taxes," which is a great reminder of the
      little things that a software application should handle properly (fast user switching,
      high DPI displays, etc.).
   </p>
        <p>
      The whole book (aside from chapter 10) is a great read. Even in the brave new world
      of the .NET Framework, WPF, etc., much of this information is still quite relevant.
      Highly recommended.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=22b2377d-5600-47da-bf5e-8b1abf2d2783" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Book Review: About Face 3</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2007/06/25/BookReviewAboutFace3.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,1e7c2312-01d7-4341-a64f-76faecc7ef1c.aspx</id>
    <published>2007-06-25T14:18:42.7513422-07:00</published>
    <updated>2007-06-25T14:18:42.7513422-07:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      I enjoyed reading (and sometimes skimming) <a href="http://www.amazon.com/dp/0470084111">About
      Face 3: The Essentials of Interaction Design</a>, by Alan Cooper, et al. It is full
      of “design principles,” all of which are neatly listed in the appendix, and most of
      which seem right on target. They serve as an excellent reminder of the things to be
      aiming at when designing a software product.
   </p>
        <p>
      I must take some issue with the very first guideline, though – “Interaction design
      is not guesswork.” It is not purely guesswork, of course, but neither is it an exact
      science. Even with unlimited time, resources, and intelligence, I doubt that we could
      ever get everything “right,” if there is such a thing. Some of his examples of good
      interaction design are questionable, in my mind. But it is good to treat design
      as something that can be done right, if only to keep us from giving up altogether;
      we should do the best we can.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=1e7c2312-01d7-4341-a64f-76faecc7ef1c" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Book Review: Professional WPF Programming</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2007/05/11/BookReviewProfessionalWPFProgramming.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,2577ac47-2839-4d44-a415-c2620be4ec5f.aspx</id>
    <published>2007-05-11T15:22:52.1597267-07:00</published>
    <updated>2007-05-11T15:22:52.1597267-07:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      The content of <a href="http://www.amazon.com/dp/0470041803">Professional WPF Programming</a> is
      too broad and too shallow, giving only a glimpse of various aspects of WPF and related
      technologies (Expression Blend, WCF, and .NET Security). If you are completely unfamiliar
      with these technologies, this book might give you a nice overview, but I don’t expect
      I’ll be picking this book up again.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=2577ac47-2839-4d44-a415-c2620be4ec5f" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Book Review: Essential Windows Presentation Foundation</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2007/05/11/BookReviewEssentialWindowsPresentationFoundation.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,e39cda6a-820a-46db-85de-a02e790c3090.aspx</id>
    <published>2007-05-11T15:19:25.6141736-07:00</published>
    <updated>2007-05-11T15:19:25.6141736-07:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Yet another excellent WPF book is <a href="http://www.amazon.com/dp/0321374479">Essential
      Windows Presentation Foundation</a> by Chris Anderson. Having read a number of WPF
      books, and already having considerable experience on the platform, it is hard for
      me to judge how well the book would fare for beginners, but my instinct is that some
      concepts are introduced without much explanation, which might make things difficult
      for a newbie.
   </p>
        <p>
      Being one of the architects of WPF gives Mr. Anderson’s words more authority than
      other WPF books; even better, he uses his inside knowledge to help us understand some
      of the deep concepts of WPF. Of course, I found myself wanting more – more depth on
      the subjects that he did cover, and more breadth to help with the subjects he didn’t
      cover. I highly recommend this book, though you might wait to read it until you’ve
      made it through those of <a href="http://www.ejball.com/EdAtWork/2006/11/06/BookReviewApplicationsCodeMarkup.aspx">Petzold</a> and <a href="http://www.ejball.com/EdAtWork/2007/01/26/BookReviewWindowsPresentationFoundationUnleashed.aspx">Nathan</a>.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=e39cda6a-820a-46db-85de-a02e790c3090" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Book Review: Windows Presentation Foundation Unleashed</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2007/01/26/BookReviewWindowsPresentationFoundationUnleashed.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,9e731966-0472-4771-b478-6a4815f0fbfd.aspx</id>
    <published>2007-01-26T09:10:46.2150000-08:00</published>
    <updated>2007-01-26T09:11:43.0276397-08:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Considering how little information there is out there on WPF, it is no surprise that
      I eagerly read <a href="http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917">Windows
      Presentation Foundation Unleashed</a> by Adam Nathan, especially considering how much
      I appreciated his previous book on <a href="http://www.ejball.com/EdAtWork/2004/01/29/BookReviewNETAndCOMTheCompleteInteroperabilityGuide.aspx">.NET/COM
      interop</a>. I was hoping for more depth and less breadth, but I think I'll have to
      wait for someone to write "WPF Internals" for that. Otherwise, this book was quite
      good; I especially enjoyed the full color code samples and screenshots. This book
      makes a good companion to <a href="http://www.ejball.com/EdAtWork/2006/11/06/BookReviewApplicationsCodeMarkup.aspx">Petzold's
      book</a>, since it teaches different things and takes a different approach. I certainly
      recommend it to all WPF programmers.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=9e731966-0472-4771-b478-6a4815f0fbfd" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Book Review: Why Software Sucks...</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2007/01/26/BookReviewWhySoftwareSucks.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,c8b0c677-8b0f-4037-b410-cff1d8cbee01.aspx</id>
    <published>2007-01-26T09:06:01.9360727-08:00</published>
    <updated>2007-01-26T09:06:01.9360727-08:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      It probably isn't really fair for me to review <a href="http://www.amazon.com/Why-Software-Sucks-What-About/dp/0321466756">Why
      Software Sucks... and What You Can Do About It</a>, by David Platt, since he's not
      writing this book for programmers, but rather for the users of our software. I didn't
      enjoy the book as much as I had hoped, partially because it's rather more crass than
      I would like. Still, the book gives good information -- consumers do need to be convinced
      that bad user interface isn't their fault, and they need to be encouraged to punish
      the bad and reward the good with their dollars and feedback.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=c8b0c677-8b0f-4037-b410-cff1d8cbee01" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Book Review: Foundations of WPF</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2006/12/05/BookReviewFoundationsOfWPF.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,d5323424-11f7-4efc-9877-f63166c4a274.aspx</id>
    <published>2006-12-05T07:55:18.7641870-08:00</published>
    <updated>2006-12-05T07:55:18.7641870-08:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      I am eagerly reading everything I can about WPF, the new application framework
      from Microsoft, so I looked forward to receiving my copy of <a href="http://www.amazon.com/Foundations-WPF-Introduction-Presentation-Foundation/dp/1590597605">Foundations
      of WPF</a>, by Laurence Moroney. Unfortunately, I was very disappointed in this short
      book of barely 300 pages. It is merely a brief introduction to WPF, especially considering
      that more than half of the content consists of trivial source code examples and huge
      grayscale screenshots. Top it off with the fact that the text was written well before
      WPF shipped and you'll find yourself much better off reading the <a href="http://www.ejball.com/EdAtWork/2006/11/06/BookReviewApplicationsCodeMarkup.aspx">other</a><a href="http://www.ejball.com/EdAtWork/2005/10/17/BookReviewProgrammingWindowsPresentationFoundation.aspx">two</a> WPF
      books again.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=d5323424-11f7-4efc-9877-f63166c4a274" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Book Review: In Search of Stupidity, Second Edition</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2006/11/14/BookReviewInSearchOfStupiditySecondEdition.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,767ae36c-d1db-4f52-bff0-c5fc735361ae.aspx</id>
    <published>2006-11-14T08:27:48.7762077-08:00</published>
    <updated>2006-11-14T08:27:48.7762077-08:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Just over three years ago, I <a href="http://www.ejball.com/EdAtWork/2003/09/15/BookReviewInSearchOfStupidity.aspx">wrote
      a review</a> on the first edition of <a href="http://www.amazon.com/Search-Stupidity-Twenty-Marketing-Disasters/dp/1590597214">In
      Search of Stupidity</a>, by Merrill R. Chapman. Fortunately, I remember few specifics
      from books that I’ve read in the past, so I was able to enjoy reading the second edition
      without much déjà vu. Like the first edition, this book is an entertaining (and brutal)
      look at the history of the high-tech industry. I enjoyed the newer material – it isn’t
      often that you read a printed book with events that occurred only a few months ago.
      The second edition also includes some explicit analysis near the end of the book.
      If his analyses don’t help you improve your high-tech business, fear of being featured
      in the third edition probably will.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=767ae36c-d1db-4f52-bff0-c5fc735361ae" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Book Review: Applications = Code + Markup</title>
    <link rel="alternate" type="text/html" href="http://www.ejball.com/EdAtWork/2006/11/06/BookReviewApplicationsCodeMarkup.aspx" />
    <id>http://www.ejball.com/EdAtWork/PermaLink,guid,d170c113-aa62-4a0d-b46c-af095a68b5a6.aspx</id>
    <published>2006-11-06T13:08:08.2289716-08:00</published>
    <updated>2006-11-06T13:08:08.2289716-08:00</updated>
    <category term="Books" label="Books" scheme="dasBlog" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.charlespetzold.com/wpf/">Applications = Code + Markup</a> is another
      outstanding programming book by Charles Petzold. This book is all about WPF (the Microsoft
      Windows Presentation Foundation), which is Microsoft’s next-generation API for building
      client applications on Windows.
   </p>
        <p>
      I was all set to give this book a glowing review, but I was distracted by another
      project and wasn’t able to finish the book until recently. Fortunately, another reviewer
      beat me to it and said everything I was going to try to say:
   </p>
        <p>
          <a href="http://blogs.msdn.com/karstenj/archive/2006/08/31/733708.aspx">http://blogs.msdn.com/karstenj/archive/2006/08/31/733708.aspx</a>
        </p>
        <p>
      What can I add to that? Be sure to check out <a href="http://www.charlespetzold.com/blog/2006/09/120140.html">chapter
      32</a>, an online chapter about 3-D in WPF. <a href="http://www.charlespetzold.com/blog/blog.xml">Petzold’s
      blog</a> has other nuggests of WPF knowledge as well. Most importantly, check
      out the <a href="http://www.charlespetzold.com/wpf/">book’s Web site</a>, which links
      to sample code, sample applications, and expertly maintained errata, to which I was
      happy to contribute.
   </p>
        <p>
      My only complaint about the book would be the lack of section headings, though it
      certainly forces you to pay attention while you’re reading. Well, I could also complain
      that WPF could use another thirty chapters – we have a lot more to learn about this
      cool new technology.
   </p>
        <img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=d170c113-aa62-4a0d-b46c-af095a68b5a6" />
      </div>
    </content>
  </entry>
</feed>