<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Ed at Work</title>
    <link>http://www.ejball.com/EdAtWork/</link>
    <description>Thoughts from the office by Ed Ball</description>
    <copyright>Ed Ball</copyright>
    <lastBuildDate>Fri, 28 Mar 2008 15:48:34 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.8.5223.0</generator>
    <managingEditor>ed@libronix.com</managingEditor>
    <webMaster>ed@libronix.com</webMaster>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=bb22ba9a-ba84-45c7-adf9-abb5d5715560</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,bb22ba9a-ba84-45c7-adf9-abb5d5715560.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,bb22ba9a-ba84-45c7-adf9-abb5d5715560.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=bb22ba9a-ba84-45c7-adf9-abb5d5715560</wfw:commentRss>
      <body 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" />
      </body>
      <title>Book Review: Programming .NET Components, 2nd Edition</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,bb22ba9a-ba84-45c7-adf9-abb5d5715560.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2008/03/28/BookReviewProgrammingNETComponents2ndEdition.aspx</link>
      <pubDate>Fri, 28 Mar 2008 15:48:34 GMT</pubDate>
      <description>&lt;p&gt;
   The second edition of &lt;a href="http://www.amazon.com/dp/0596102070"&gt;Programming .NET
   Components&lt;/a&gt; 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?
&lt;/p&gt;
&lt;p&gt;
   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):
&lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;
      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.&lt;/li&gt;
   &lt;li&gt;
      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.&lt;/li&gt;
   &lt;li&gt;
      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.&lt;/li&gt;
   &lt;li&gt;
      p. 96: Here’s something I didn’t know: «using (null)» is legal; it simply does nothing
      at the end of the using block.&lt;/li&gt;
   &lt;li&gt;
      p. 98: He has his own “dispose pattern,” but doesn’t seem to know that there’s a &lt;a href="http://code.logos.com/blog/2008/02/the_dispose_pattern.html"&gt;standard
      dispose pattern&lt;/a&gt; (or should explain why he doesn’t use it).&lt;/li&gt;
   &lt;li&gt;
      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.&lt;/li&gt;
   &lt;li&gt;
      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.&lt;/li&gt;
   &lt;li&gt;
      p. 149: System.ComponentModel.EventHandlerList is a handy way to support large numbers
      of events without storing an individual delegate for each of them.&lt;/li&gt;
   &lt;li&gt;
      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.&lt;/li&gt;
   &lt;li&gt;
      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.”&lt;/li&gt;
   &lt;li&gt;
      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.&lt;/li&gt;
   &lt;li&gt;
      p. 215: He unfortunately encourages the generally discouraged practice of locking
      “this” for synchronizing instance members and locking “typeof(ThisClass)” for static
      methods.&lt;/li&gt;
   &lt;li&gt;
      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&amp;nbsp;I’d definitely use
      the &lt;a href="http://code.logos.com/blog/2008/03/assigning_to_c_events.html"&gt;do-nothing
      delegate&lt;/a&gt; trick before using a MethodImpl attribute to suppress inlining.&lt;/li&gt;
   &lt;li&gt;
      p. 255: I forget that “managed threads” aren’t guaranteed to be actual individual
      physical threads.&lt;/li&gt;
   &lt;li&gt;
      p. 263: Events can use ISynchronizeInvoke to raise events on the proper thread for
      a client with thread affinity.&lt;/li&gt;
   &lt;li&gt;
      p. 268: I had forgotten about the XxxAsync/XxxCompleted/CancelAsync pattern provided
      by web service proxy classes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
   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.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=bb22ba9a-ba84-45c7-adf9-abb5d5715560" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,bb22ba9a-ba84-45c7-adf9-abb5d5715560.aspx</comments>
      <category>Books</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=59066579-de70-4078-80c0-0ec9d1e0422a</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,59066579-de70-4078-80c0-0ec9d1e0422a.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,59066579-de70-4078-80c0-0ec9d1e0422a.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=59066579-de70-4078-80c0-0ec9d1e0422a</wfw:commentRss>
      <body 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" />
      </body>
      <title>Check out the Logos Code Blog!</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,59066579-de70-4078-80c0-0ec9d1e0422a.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2008/01/11/CheckOutTheLogosCodeBlog.aspx</link>
      <pubDate>Fri, 11 Jan 2008 23:20:40 GMT</pubDate>
      <description>&lt;p&gt;
   For my latest technical blogging, check out &lt;a href="http://code.logos.com/blog/"&gt;http://code.logos.com/blog/&lt;/a&gt;.
   Specifically, check out my &lt;a href="http://code.logos.com/blog/2008/01/welcome_to_codelogoscom.html"&gt;introductory
   post&lt;/a&gt; and my &lt;a href="http://code.logos.com/blog/2008/01/data_binding_in_a_flowdocument.html"&gt;first
   technical post&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=59066579-de70-4078-80c0-0ec9d1e0422a" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,59066579-de70-4078-80c0-0ec9d1e0422a.aspx</comments>
      <category>Code</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=cb23b1c7-c320-4f57-b540-969d7f66face</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,cb23b1c7-c320-4f57-b540-969d7f66face.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,cb23b1c7-c320-4f57-b540-969d7f66face.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=cb23b1c7-c320-4f57-b540-969d7f66face</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body 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" />
      </body>
      <title>Book Review: Programming WPF</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,cb23b1c7-c320-4f57-b540-969d7f66face.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2007/09/19/BookReviewProgrammingWPF.aspx</link>
      <pubDate>Wed, 19 Sep 2007 16:32:18 GMT</pubDate>
      <description>&lt;p&gt;
   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 &lt;a href="http://www.amazon.com/dp/0596510373"&gt;Programming
   WPF&lt;/a&gt;, 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 &lt;a href="http://www.ejball.com/EdAtWork/2005/10/17/BookReviewProgrammingWindowsPresentationFoundation.aspx"&gt;first
   edition&lt;/a&gt; way back in October 17, 2005.
&lt;/p&gt;
&lt;p&gt;
   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:
&lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;
      p. 59: You can safely use data binding with Settings.&lt;/li&gt;
   &lt;li&gt;
      p. 136: Explains how focus scope affects command routing.&lt;/li&gt;
   &lt;li&gt;
      p. 189: Good information on validation, including custom validation.&lt;/li&gt;
   &lt;li&gt;
      p. 226: Grouping with PropertyGroupDescription.&lt;/li&gt;
   &lt;li&gt;
      p. 298: Handy table of the template parts used by each control.&lt;/li&gt;
   &lt;li&gt;
      p. 336: The ValidateBindings method.&lt;/li&gt;
   &lt;li&gt;
      p. 341: You can navigate a NavigationWindow to a string.&lt;/li&gt;
   &lt;li&gt;
      p. 379: It’s dangerous to use types as resource keys.&lt;/li&gt;
   &lt;li&gt;
      ch. 12: Great information on resources.&lt;/li&gt;
   &lt;li&gt;
      p. 432: Working with bitmaps and bitmap effects.&lt;/li&gt;
   &lt;li&gt;
      p. 484: Low-level text output.&lt;/li&gt;
   &lt;li&gt;
      ch. 15: Outstanding information on printing.&lt;/li&gt;
   &lt;li&gt;
      p. 672: Using attached properties to identify template placeholders.&lt;/li&gt;
   &lt;li&gt;
      p. 730: Screenshots demonstrating airspace issues with interop.&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=cb23b1c7-c320-4f57-b540-969d7f66face" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,cb23b1c7-c320-4f57-b540-969d7f66face.aspx</comments>
      <category>Books</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=0bc9ab65-b684-4986-aa3d-c1b840bc3980</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,0bc9ab65-b684-4986-aa3d-c1b840bc3980.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,0bc9ab65-b684-4986-aa3d-c1b840bc3980.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=0bc9ab65-b684-4986-aa3d-c1b840bc3980</wfw:commentRss>
      <body 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" />
      </body>
      <title>Book Review: Pro WPF</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,0bc9ab65-b684-4986-aa3d-c1b840bc3980.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2007/07/03/BookReviewProWPF.aspx</link>
      <pubDate>Tue, 03 Jul 2007 17:26:45 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;a href="http://www.amazon.com/dp/1590597826"&gt;Pro WPF&lt;/a&gt;, 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.
&lt;/p&gt;
&lt;p&gt;
   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.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=0bc9ab65-b684-4986-aa3d-c1b840bc3980" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,0bc9ab65-b684-4986-aa3d-c1b840bc3980.aspx</comments>
      <category>Books</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=e56b97cc-770f-4573-89a5-18613ffd9e47</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,e56b97cc-770f-4573-89a5-18613ffd9e47.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,e56b97cc-770f-4573-89a5-18613ffd9e47.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=e56b97cc-770f-4573-89a5-18613ffd9e47</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body 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" />
      </body>
      <title>Book Review: Dreaming in Code</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,e56b97cc-770f-4573-89a5-18613ffd9e47.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2007/06/25/BookReviewDreamingInCode.aspx</link>
      <pubDate>Mon, 25 Jun 2007 21:22:51 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;a href="http://www.amazon.com/dp/1400082463"&gt;Dreaming in Code&lt;/a&gt;, 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.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=e56b97cc-770f-4573-89a5-18613ffd9e47" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,e56b97cc-770f-4573-89a5-18613ffd9e47.aspx</comments>
      <category>Books</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=22b2377d-5600-47da-bf5e-8b1abf2d2783</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,22b2377d-5600-47da-bf5e-8b1abf2d2783.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,22b2377d-5600-47da-bf5e-8b1abf2d2783.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=22b2377d-5600-47da-bf5e-8b1abf2d2783</wfw:commentRss>
      <body 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" />
      </body>
      <title>Book Review: The Old New Thing</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,22b2377d-5600-47da-bf5e-8b1abf2d2783.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2007/06/25/BookReviewTheOldNewThing.aspx</link>
      <pubDate>Mon, 25 Jun 2007 21:21:02 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;a href="http://www.amazon.com/dp/0321440307"&gt;The Old New Thing&lt;/a&gt;, 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 &lt;a href="http://blogs.msdn.com/oldnewthing/"&gt;his
   blog&lt;/a&gt; of the same name.
&lt;/p&gt;
&lt;p&gt;
   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...
&lt;/p&gt;
&lt;p&gt;
   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.).
&lt;/p&gt;
&lt;p&gt;
   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.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=22b2377d-5600-47da-bf5e-8b1abf2d2783" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,22b2377d-5600-47da-bf5e-8b1abf2d2783.aspx</comments>
      <category>Books</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=1e7c2312-01d7-4341-a64f-76faecc7ef1c</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,1e7c2312-01d7-4341-a64f-76faecc7ef1c.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,1e7c2312-01d7-4341-a64f-76faecc7ef1c.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=1e7c2312-01d7-4341-a64f-76faecc7ef1c</wfw:commentRss>
      <body 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" />
      </body>
      <title>Book Review: About Face 3</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,1e7c2312-01d7-4341-a64f-76faecc7ef1c.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2007/06/25/BookReviewAboutFace3.aspx</link>
      <pubDate>Mon, 25 Jun 2007 21:18:42 GMT</pubDate>
      <description>&lt;p&gt;
   I enjoyed reading (and sometimes skimming) &lt;a href="http://www.amazon.com/dp/0470084111"&gt;About
   Face 3: The Essentials of Interaction Design&lt;/a&gt;, 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.
&lt;/p&gt;
&lt;p&gt;
   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.&amp;nbsp;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.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=1e7c2312-01d7-4341-a64f-76faecc7ef1c" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,1e7c2312-01d7-4341-a64f-76faecc7ef1c.aspx</comments>
      <category>Books</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=2577ac47-2839-4d44-a415-c2620be4ec5f</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,2577ac47-2839-4d44-a415-c2620be4ec5f.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,2577ac47-2839-4d44-a415-c2620be4ec5f.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=2577ac47-2839-4d44-a415-c2620be4ec5f</wfw:commentRss>
      <body 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" />
      </body>
      <title>Book Review: Professional WPF Programming</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,2577ac47-2839-4d44-a415-c2620be4ec5f.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2007/05/11/BookReviewProfessionalWPFProgramming.aspx</link>
      <pubDate>Fri, 11 May 2007 22:22:52 GMT</pubDate>
      <description>&lt;p&gt;
   The content of &lt;a href="http://www.amazon.com/dp/0470041803"&gt;Professional WPF Programming&lt;/a&gt; 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.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=2577ac47-2839-4d44-a415-c2620be4ec5f" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,2577ac47-2839-4d44-a415-c2620be4ec5f.aspx</comments>
      <category>Books</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=e39cda6a-820a-46db-85de-a02e790c3090</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,e39cda6a-820a-46db-85de-a02e790c3090.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,e39cda6a-820a-46db-85de-a02e790c3090.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=e39cda6a-820a-46db-85de-a02e790c3090</wfw:commentRss>
      <body 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" />
      </body>
      <title>Book Review: Essential Windows Presentation Foundation</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,e39cda6a-820a-46db-85de-a02e790c3090.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2007/05/11/BookReviewEssentialWindowsPresentationFoundation.aspx</link>
      <pubDate>Fri, 11 May 2007 22:19:25 GMT</pubDate>
      <description>&lt;p&gt;
   Yet another excellent WPF book is &lt;a href="http://www.amazon.com/dp/0321374479"&gt;Essential
   Windows Presentation Foundation&lt;/a&gt; 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.
&lt;/p&gt;
&lt;p&gt;
   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 &lt;a href="http://www.ejball.com/EdAtWork/2006/11/06/BookReviewApplicationsCodeMarkup.aspx"&gt;Petzold&lt;/a&gt; and &lt;a href="http://www.ejball.com/EdAtWork/2007/01/26/BookReviewWindowsPresentationFoundationUnleashed.aspx"&gt;Nathan&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=e39cda6a-820a-46db-85de-a02e790c3090" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,e39cda6a-820a-46db-85de-a02e790c3090.aspx</comments>
      <category>Books</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=9e731966-0472-4771-b478-6a4815f0fbfd</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,9e731966-0472-4771-b478-6a4815f0fbfd.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,9e731966-0472-4771-b478-6a4815f0fbfd.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=9e731966-0472-4771-b478-6a4815f0fbfd</wfw:commentRss>
      <body 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" />
      </body>
      <title>Book Review: Windows Presentation Foundation Unleashed</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,9e731966-0472-4771-b478-6a4815f0fbfd.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2007/01/26/BookReviewWindowsPresentationFoundationUnleashed.aspx</link>
      <pubDate>Fri, 26 Jan 2007 17:10:46 GMT</pubDate>
      <description>&lt;p&gt;
   Considering how little information there is out there on WPF, it is no surprise that
   I eagerly read &lt;a href="http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917"&gt;Windows
   Presentation Foundation Unleashed&lt;/a&gt; by Adam Nathan, especially considering how much
   I appreciated his previous book on &lt;a href="http://www.ejball.com/EdAtWork/2004/01/29/BookReviewNETAndCOMTheCompleteInteroperabilityGuide.aspx"&gt;.NET/COM
   interop&lt;/a&gt;. 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 &lt;a href="http://www.ejball.com/EdAtWork/2006/11/06/BookReviewApplicationsCodeMarkup.aspx"&gt;Petzold's
   book&lt;/a&gt;, since it teaches different things and takes a different approach. I certainly
   recommend it to all WPF programmers.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=9e731966-0472-4771-b478-6a4815f0fbfd" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,9e731966-0472-4771-b478-6a4815f0fbfd.aspx</comments>
      <category>Books</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=c8b0c677-8b0f-4037-b410-cff1d8cbee01</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,c8b0c677-8b0f-4037-b410-cff1d8cbee01.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,c8b0c677-8b0f-4037-b410-cff1d8cbee01.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=c8b0c677-8b0f-4037-b410-cff1d8cbee01</wfw:commentRss>
      <body 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" />
      </body>
      <title>Book Review: Why Software Sucks...</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,c8b0c677-8b0f-4037-b410-cff1d8cbee01.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2007/01/26/BookReviewWhySoftwareSucks.aspx</link>
      <pubDate>Fri, 26 Jan 2007 17:06:01 GMT</pubDate>
      <description>&lt;p&gt;
   It probably isn't really fair for me to review &lt;a href="http://www.amazon.com/Why-Software-Sucks-What-About/dp/0321466756"&gt;Why
   Software Sucks... and What You Can Do About It&lt;/a&gt;, 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.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=c8b0c677-8b0f-4037-b410-cff1d8cbee01" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,c8b0c677-8b0f-4037-b410-cff1d8cbee01.aspx</comments>
      <category>Books</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=d5323424-11f7-4efc-9877-f63166c4a274</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,d5323424-11f7-4efc-9877-f63166c4a274.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,d5323424-11f7-4efc-9877-f63166c4a274.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=d5323424-11f7-4efc-9877-f63166c4a274</wfw:commentRss>
      <body 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" />
      </body>
      <title>Book Review: Foundations of WPF</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,d5323424-11f7-4efc-9877-f63166c4a274.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2006/12/05/BookReviewFoundationsOfWPF.aspx</link>
      <pubDate>Tue, 05 Dec 2006 15:55:18 GMT</pubDate>
      <description>&lt;p&gt;
   I am eagerly&amp;nbsp;reading everything I can about WPF, the new application framework
   from Microsoft, so I looked forward to receiving my copy of &lt;a href="http://www.amazon.com/Foundations-WPF-Introduction-Presentation-Foundation/dp/1590597605"&gt;Foundations
   of WPF&lt;/a&gt;, 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 &lt;a href="http://www.ejball.com/EdAtWork/2006/11/06/BookReviewApplicationsCodeMarkup.aspx"&gt;other&lt;/a&gt; &lt;a href="http://www.ejball.com/EdAtWork/2005/10/17/BookReviewProgrammingWindowsPresentationFoundation.aspx"&gt;two&lt;/a&gt; WPF
   books again.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=d5323424-11f7-4efc-9877-f63166c4a274" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,d5323424-11f7-4efc-9877-f63166c4a274.aspx</comments>
      <category>Books</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=767ae36c-d1db-4f52-bff0-c5fc735361ae</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,767ae36c-d1db-4f52-bff0-c5fc735361ae.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,767ae36c-d1db-4f52-bff0-c5fc735361ae.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=767ae36c-d1db-4f52-bff0-c5fc735361ae</wfw:commentRss>
      <body 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" />
      </body>
      <title>Book Review: In Search of Stupidity, Second Edition</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,767ae36c-d1db-4f52-bff0-c5fc735361ae.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2006/11/14/BookReviewInSearchOfStupiditySecondEdition.aspx</link>
      <pubDate>Tue, 14 Nov 2006 16:27:48 GMT</pubDate>
      <description>&lt;p&gt;
   Just over three years ago, I &lt;a href="http://www.ejball.com/EdAtWork/2003/09/15/BookReviewInSearchOfStupidity.aspx"&gt;wrote
   a review&lt;/a&gt; on the first edition of&amp;nbsp;&lt;a href="http://www.amazon.com/Search-Stupidity-Twenty-Marketing-Disasters/dp/1590597214"&gt;In
   Search of Stupidity&lt;/a&gt;, 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.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=767ae36c-d1db-4f52-bff0-c5fc735361ae" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,767ae36c-d1db-4f52-bff0-c5fc735361ae.aspx</comments>
      <category>Books</category>
    </item>
    <item>
      <trackback:ping>http://www.ejball.com/EdAtWork/Trackback.aspx?guid=d170c113-aa62-4a0d-b46c-af095a68b5a6</trackback:ping>
      <pingback:server>http://www.ejball.com/EdAtWork/pingback.aspx</pingback:server>
      <pingback:target>http://www.ejball.com/EdAtWork/PermaLink,guid,d170c113-aa62-4a0d-b46c-af095a68b5a6.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.ejball.com/EdAtWork/CommentView,guid,d170c113-aa62-4a0d-b46c-af095a68b5a6.aspx</wfw:comment>
      <wfw:commentRss>http://www.ejball.com/EdAtWork/SyndicationService.asmx/GetEntryCommentsRss?guid=d170c113-aa62-4a0d-b46c-af095a68b5a6</wfw:commentRss>
      <body 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" />
      </body>
      <title>Book Review: Applications = Code + Markup</title>
      <guid>http://www.ejball.com/EdAtWork/PermaLink,guid,d170c113-aa62-4a0d-b46c-af095a68b5a6.aspx</guid>
      <link>http://www.ejball.com/EdAtWork/2006/11/06/BookReviewApplicationsCodeMarkup.aspx</link>
      <pubDate>Mon, 06 Nov 2006 21:08:08 GMT</pubDate>
      <description>&lt;p&gt;
   &lt;a href="http://www.charlespetzold.com/wpf/"&gt;Applications = Code + Markup&lt;/a&gt; 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.
&lt;/p&gt;
&lt;p&gt;
   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:
&lt;/p&gt;
&lt;p&gt;
   &lt;a href="http://blogs.msdn.com/karstenj/archive/2006/08/31/733708.aspx"&gt;http://blogs.msdn.com/karstenj/archive/2006/08/31/733708.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
   What can I add to that? Be sure to check out &lt;a href="http://www.charlespetzold.com/blog/2006/09/120140.html"&gt;chapter
   32&lt;/a&gt;, an online chapter about 3-D in WPF. &lt;a href="http://www.charlespetzold.com/blog/blog.xml"&gt;Petzold’s
   blog&lt;/a&gt;&amp;nbsp;has other nuggests of WPF knowledge as well. Most importantly, check
   out the &lt;a href="http://www.charlespetzold.com/wpf/"&gt;book’s Web site&lt;/a&gt;, which links
   to sample code, sample applications, and expertly maintained errata, to which I was
   happy to contribute.
&lt;/p&gt;
&lt;p&gt;
   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.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ejball.com/EdAtWork/aggbug.ashx?id=d170c113-aa62-4a0d-b46c-af095a68b5a6" /&gt;</description>
      <comments>http://www.ejball.com/EdAtWork/CommentView,guid,d170c113-aa62-4a0d-b46c-af095a68b5a6.aspx</comments>
      <category>Books</category>
    </item>
  </channel>
</rss>