﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>Kynosarges</title>
    <link>http://www.kynosarges.de/</link>
    <description>Kynosarges News</description>
    <language>en-us</language>
    <copyright>Copyright © 2005 by Christoph Nahr</copyright>
    <lastBuildDate>28 July 2010</lastBuildDate>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <managingEditor>antisthenes@kynosarges.de</managingEditor>
    <webMaster>webmaster@kynosarges.de</webMaster>
    <item>
      <title>.NET Class Diagrammer</title>
      <description>
          &lt;p&gt;
            I’m currently putting together a scriptable class diagrammer for .NET assemblies. There is an abundance of tools for drawing UML diagrams but almost none of them does automatic reverse-engineering, let alone well. Visual Studio’s own class diagrammer is a joke (in the affordable editions anyway), and while Sparx Enterprise Architect Pro does this kind of work it’s somewhat buggy and rather cumbersome. I’m envisioning a tool that lets you set up your input assemblies and output diagrams, 
    &lt;em&gt;
    once,
    &lt;/em&gt;
   and then automatically recreates those diagrams from any future assembly versions. You’d need manual adjustments for changes that affect diagram layout, of course, but the rest should just work without further user input.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-07-28</pubDate>
      <guid>http://www.kynosarges.de/index.html#item206</guid>
    </item>
    <item>
      <title>Snoop, the WPF Spy Utility</title>
      <description>
          &lt;p&gt;
            All WPF developers should head over to CodePlex right away and download 
    &lt;a href="http://snoopwpf.codeplex.com/"
    &gt;
    Snoop
    &lt;/a&gt;
  . This stand-alone utility is essentially Spy++ for WPF applications, which means that unlike a Visual Studio debugging visualizer, Snoop can attach to any running application and show WPF events and property changes as they occur – for any element in the visual tree structure. The download is still marked as “beta” but don’t let that deter you – the utility appears to work fine and is really invaluable.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-07-28</pubDate>
      <guid>http://www.kynosarges.de/index.html#item205</guid>
    </item>
    <item>
      <title>Enhanced VS2010 Productivity Power Tools</title>
      <description>
          &lt;p&gt;
            The free 
    &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef"
    &gt;
    Visual Studio 2010 Productivity Power Tools
    &lt;/a&gt;
   have just become even more awesome, with the addition of intelligent automatic brace completion and the new 
    &lt;a href="http://blogs.msdn.com/b/visualstudio/archive/2010/07/20/solution-navigator-blog-post.aspx"
    &gt;
    Solution Navigator
    &lt;/a&gt;
   – another tool so complex it needs its own manual.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-07-22</pubDate>
      <guid>http://www.kynosarges.de/index.html#item204</guid>
    </item>
    <item>
      <title>Book Review Updates</title>
      <description>
          &lt;p&gt;
            A couple of updates to the 
    &lt;a href="DevBooks.html#General"
    &gt;
    General Book Reviews
    &lt;/a&gt;
   section. First, 
    &lt;em&gt;
    HTML &amp; XHTML – The Definitive Guide
    &lt;/em&gt;
   by Chuck Musciano and Bill Kennedy has reached its 6th edition while I wasn’t looking, and it’s as highly recommended as ever.&lt;/p&gt;
        
          &lt;p&gt;
            The first edition of 
    &lt;em&gt;
    XML in a Nutshell
    &lt;/em&gt;
   by Elliotte Rusty Harold and W. Scott Means had been obsolete so quickly that I barely used it (no XSD coverage!). Now in its third edition, the book is much more useful, thanks to its extensive updated reference section. The first half is still a poorly edited rambling mess, but the sheer amount of information makes this my first recommendation for an XML reference, relegating the old 
    &lt;em&gt;
    Essential XML Quick Reference
    &lt;/em&gt;
   by Aaron Skonnard and Martin Gudgin to second place.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-07-21</pubDate>
      <guid>http://www.kynosarges.de/index.html#item203</guid>
    </item>
    <item>
      <title>Tektosyne 5.1.2 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 5.1.2
    &lt;/a&gt;
   which fixes an obscure floating-point bug in the VoronoiResults class, and creates planar subdivisions from Delaunay triangulations and Voronoi diagrams. The latter are simply grafted on top of the exiting Voronoi code as I was afraid to change anything. Integrating the subdivision generation (and region closure) with the Voronoi sweepline algorithm would probably be more efficient but would also require a complete rewrite, which I’m not eager to do right now. See the 
    &lt;a href="project/Tektosyne/WhatsNew.html"
    &gt;
    WhatsNew
    &lt;/a&gt;
   file for details.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-07-14</pubDate>
      <guid>http://www.kynosarges.de/index.html#item202</guid>
    </item>
    <item>
      <title>Comment Reflower Limitation</title>
      <description>
          &lt;p&gt;
            David W Smith informed me that 
    &lt;a href="CommentReflower.html"
    &gt;
    Comment Reflower
    &lt;/a&gt;
   cannot handle block comments that use Block Start &amp; Block End strings without Line Start prefixes for the lines in-between. This appears to be a limitation of the (rather inscrutable) comment matching algorithm. As I was unable to fix this issue, I’ve added a note to the 
    &lt;a href="project/CommentReflower/ReadMe.html"
    &gt;
    ReadMe
    &lt;/a&gt;
   file. Thanks, David!&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-07-11</pubDate>
      <guid>http://www.kynosarges.de/index.html#item201</guid>
    </item>
    <item>
      <title>Tektosyne 5.1.1 &amp; Hexkit 4.2.6 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 5.1.1
    &lt;/a&gt;
   and 
    &lt;a href="Hexkit.html"
    &gt;
    Hexkit 4.2.6
    &lt;/a&gt;
   with recompiled class references thanks to the new .NET 4.0 releases of 
    &lt;a href="http://sandcastle.codeplex.com/"
    &gt;
    Sandcastle
    &lt;/a&gt;
  , 
    &lt;a href="http://sandcastlestyles.codeplex.com/"
    &gt;
    Sandcastle Styles
    &lt;/a&gt;
  , and 
    &lt;a href="http://shfb.codeplex.com/"
    &gt;
    Sandcastle Help File Builder
    &lt;/a&gt;
  . Both class references now use the Sandcastle default style called “vs2005” rather than the alternative style known as “Prototype”. I hesitated a long time with this change because it nearly doubled the size of the class references, but the Sandcastle team repeatedly emphasized that any style other than “vs2005” is considered obsolete.&lt;/p&gt;
        
          &lt;p&gt;
            The Tektosyne update itself fixes a number of Subdivision bugs, including incorrect epsilon handling, and adds some new features to Subdivision and related classes, such as associating faces with arbitrary data. Several other geometric algorithms were added as well, including a fast heuristic nearest-point search in a lexicographically sorted collection – see the 
    &lt;a href="project/Tektosyne/WhatsNew.html"
    &gt;
    WhatsNew
    &lt;/a&gt;
   file for details. Hexkit was updated for the new Tektosyne and Sandcastle releases but contains no visible changes.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-07-08</pubDate>
      <guid>http://www.kynosarges.de/index.html#item200</guid>
    </item>
    <item>
      <title>Book Review: WPF 4 Unleashed</title>
      <description>
          &lt;p&gt;
            Added a review for 
    &lt;a href="DevBooks.html#Net4Books"
    &gt;
    WPF 4 Unleashed
    &lt;/a&gt;
   by Adam Nathan, successor to the fantastic 
    &lt;em&gt;
    Windows Presentation Foundation Unleashed
    &lt;/em&gt;
  . The book is largely identical to the previous edition, and so are my review and its conclusion: the best introduction to WPF you can get. Strangely enough, and despite 200 added pages, Nathan still ignores printing and multithreading; but he does comprehensively cover the new Windows 7 features supported in WPF 4.&lt;/p&gt;
        
          &lt;p&gt;
            You might notice that every single .NET 4.0 book I’ve reviewed so far received a strong recommendation. Sadly, this is not because publishers have started paying me massive bribes! Clearly one reason is that I’ve found my favorite .NET authors and keep buying their latest books; but that’s only possible because these authors keep writing those books. At a time when everyone laments the decline of printed programming literature due to the spread of the Internet, it’s remarkable that the best .NET authors seem completely unaffected.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-07-04</pubDate>
      <guid>http://www.kynosarges.de/index.html#item199</guid>
    </item>
    <item>
      <title>Science News &amp; Podcasts</title>
      <description>
          &lt;p&gt;
            Added a couple of great science newsfeeds and podcasts to the 
    &lt;a href="Subscriptions.html"
    &gt;
    Subscriptions
    &lt;/a&gt;
   page: The Naked Scientists, Nature.com, Science Magazine, and Scientific American – please see the new 
    &lt;a href="Subscriptions.html#Science"
    &gt;
    Science section
    &lt;/a&gt;
   for all the links.&lt;/p&gt;
        
          &lt;p&gt;
            The new Tektosyne release is ready, with many fixes and enhancements to the planar subdivision class, but I’m still waiting for the Sandcastle Help File Builder update for .NET 4.0. Sandcastle itself and the Sandcastle Styles have already been updated, but I still can’t figure out how to use this program without SFHB…&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-07-02</pubDate>
      <guid>http://www.kynosarges.de/index.html#item198</guid>
    </item>
    <item>
      <title>Book Review: Pro WPF in C# 2010</title>
      <description>
          &lt;p&gt;
            Added a review for 
    &lt;a href="DevBooks.html#Net4Books"
    &gt;
    Pro WPF in C# 2010
    &lt;/a&gt;
   by Matthew MacDonald. I’m still far from finishing this enormous book but it’s so good that I wanted to post a strong recommendation anyway. My earlier recommendation for 
    &lt;em&gt;
    Programming WPF
    &lt;/em&gt;
   by Chris Sells and Ian Griffiths was downgraded accordingly; while by no means bad, their book is ultimately an inferior subset of MacDonald’s epic tome.&lt;/p&gt;
        
          &lt;p&gt;
            In other news, Radames Cruz Moreno has posted a list of 
    &lt;a href="http://blogs.msdn.com/b/visualstudio/archive/2010/06/21/document-well-2010-plus-hidden-options.aspx"
    &gt;
    hidden options
    &lt;/a&gt;
   for the 
    &lt;a href="http://blogs.msdn.com/b/visualstudio/archive/2010/06/10/document-well-2010-plus.aspx"
    &gt;
    Document Well 2010 Plus
    &lt;/a&gt;
   in the recently released 
    &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef"
    &gt;
    Visual Studio 2010 Productivity Power Tools
    &lt;/a&gt;
  ; and Chris Morris’ blog has migrated from The Cut Scene to 
    &lt;a href="http://weblogs.variety.com/technotainment/"
    &gt;
    Technotainment
    &lt;/a&gt;
   where he also covers all sorts of entertainment technology aside from video games.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-06-25</pubDate>
      <guid>http://www.kynosarges.de/index.html#item197</guid>
    </item>
    <item>
      <title>Tektosyne 5.1.0 &amp; Hexkit 4.2.5 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 5.1.0
    &lt;/a&gt;
   and 
    &lt;a href="Hexkit.html"
    &gt;
    Hexkit 4.2.5
    &lt;/a&gt;
  , with a revised 
    &lt;em&gt;
    Hexkit User’s Guide
    &lt;/em&gt;
  . This Tektosyne releases changes the node distances and path costs used by Graph types from Int32 to Double. PolygonGrid and consequently Hexkit continue to count movement steps, so you can simply cast Double results to Int32 as needed. However, 
    &lt;em&gt;
    requiring
    &lt;/em&gt;
   distances to be measured in movement steps was an unnecessary constraint on graphs and pathfinding algorithms, which is now removed.&lt;/p&gt;
        
          &lt;p&gt;The immediate reason for this change was the introduction (at long last) of a second geometric type that implements our pathfinding graph, IGraph2D&lt;T&gt;. That type is Subdivision, a planar subdivision represented as a doubly-connected edge list according to 
    &lt;em&gt;
    Computational Geometry
    &lt;/em&gt;
   by de Berg et al. A planar subdivision is simply any old assortment of edges and faces, e.g. the vector map of a landscape. The Subdivision class is not fully implemented yet but the basic functionality is there – see the 
    &lt;a href="project/Tektosyne/WhatsNew.html"
    &gt;
    WhatsNew
    &lt;/a&gt;
   file for details.&lt;/p&gt;
        
          &lt;p&gt;Sadly, this update also triggered yet another Sandcastle bug, so you can’t actually see the documentation for members of the new SubdivisionEdge and SubdivisionFace types in the class reference – please refer to the source code instead, and hope that Sandcastle will get a proper update soon.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-06-14</pubDate>
      <guid>http://www.kynosarges.de/index.html#item196</guid>
    </item>
    <item>
      <title>Visual Studio 2010 Extensions</title>
      <description>
          &lt;p&gt;
            Microsoft has just released the ultimate set of VS2010 extensions: 
    &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef"
    &gt;
    Visual Studio 2010 Productivity Power Tools
    &lt;/a&gt;
  ! Among many other things, this package comprises the existing 
    &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/0fbf2878-e678-4577-9fdb-9030389b338c"
    &gt;
    Editor Guidelines
    &lt;/a&gt;
   feature and an enhanced document tab organizer so powerful it needs its own manual: 
    &lt;a href="http://blogs.msdn.com/b/visualstudio/archive/2010/06/10/document-well-2010-plus.aspx"
    &gt;
    Document Well 2010 Plus
    &lt;/a&gt;
  .&lt;/p&gt;
        
          &lt;p&gt;
            Moreover, if you’re a fan of 
    &lt;a href="http://code.msdn.microsoft.com/PowerCommands"
    &gt;
    PowerCommands for Visual Studio 2008
    &lt;/a&gt;
  , you can now get the updated 
    &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/e5f41ad9-4edc-4912-bca3-91147db95b99"
    &gt;
    PowerCommands for Visual Studio 2010
    &lt;/a&gt;
  .&lt;/p&gt;
        
          &lt;p&gt;
            No Visual Studio extension, just a quick registry hack for a hidden feature: 
    &lt;a href="http://blogs.msdn.com/b/visualstudio/archive/2010/06/05/15-minute-blog-post-a-hidden-feature-in-visual-studio-2010.aspx"
    &gt;
    How to enable thumbnail previews in Visual Studio 2010
    &lt;/a&gt;
  .&lt;/p&gt;
        
          &lt;p&gt;
            And Windows application developers in general may be interested in the 
    &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=E49820CB-954D-45AE-9CB3-1B9E8EA7FE8C"
    &gt;
    Windows User Experience Interaction Guidelines
    &lt;/a&gt;
   (UXGuide) for Windows Vista &amp; 7 and the 
    &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b996e1e7-a83a-4cae-936b-2a9d94b11bc5"
    &gt;
    Windows User Experience Guidelines
    &lt;/a&gt;
   for Windows 2000 &amp; XP.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-06-10</pubDate>
      <guid>http://www.kynosarges.de/index.html#item195</guid>
    </item>
    <item>
      <title>The Christian Science Monitor</title>
      <description>
          &lt;p&gt;
            Check out 
    &lt;a href="http://www.csmonitor.com/"
    &gt;
    The Christian Science Monitor
    &lt;/a&gt;
   if you aren’t already subscribed to its various RSS feeds – it’s a great digest of scientific and general news. Don’t be afraid of the name, the reporting is really quite secular and has nothing to do with “Christian science”, a.k.a. creationism.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-05-26</pubDate>
      <guid>http://www.kynosarges.de/index.html#item194</guid>
    </item>
    <item>
      <title>Book Review: C# 4.0 in a Nutshell</title>
      <description>
          &lt;p&gt;
            Added a review for 
    &lt;a href="DevBooks.html#Net4Books"
    &gt;
    C# 4.0 in a Nutshell
    &lt;/a&gt;
   by Joseph &amp; Ben Albahari. The book updates the C# 3 edition with 200 new pages, and my review is essentially unchanged except even more glowing. The more I use this book, the more useful it gets. Whatever subject I’m looking for, it’s always covered with amazing depth and perfect clarity and accuracy.&lt;/p&gt;
        
          &lt;p&gt;
            I’m still reading Matthew MacDonald’s 
    &lt;em&gt;
    Pro WPF in C# 2010
    &lt;/em&gt;
   which is going to take a while (it’s another 1,000 page monster… with very small print), but I’m very pleased so far. MacDonald starts from technical fundamentals rather than high-level usage scenarios, which is a nice counterpoint to Adam Nathan’s 
    &lt;em&gt;
    WPF Unleashed
    &lt;/em&gt;
  . Speaking of which, my copy of 
    &lt;em&gt;
    WPF 4 Unleashed
    &lt;/em&gt;
   should arrive in about two weeks; no news yet on an update to Sells &amp; Griffiths’ 
    &lt;em&gt;
    Programming WPF
    &lt;/em&gt;
  .&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-05-23</pubDate>
      <guid>http://www.kynosarges.de/index.html#item193</guid>
    </item>
    <item>
      <title>Windows SDK 7.1 &amp; Silverlight 4 Tools Released</title>
      <description>
          &lt;p&gt;
            The updated 
    &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b"
    &gt;
    Microsoft Windows SDK 7.1 for Windows 7 and .NET 4.0
    &lt;/a&gt;
   is now available. About a week ago, Microsoft also released the final 
    &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=902a7539-c4b5-4e54-b4c9-1432daabe1e8"
    &gt;
    Silverlight 4 Tools for Visual Studio 2010
    &lt;/a&gt;
  .&lt;/p&gt;
        
          &lt;p&gt;
            Two notes regarding the new Windows SDK. First, if you don’t have Visual Studio 2010, you will need to download the full 
    &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992"
    &gt;
    .NET Framework 4.0
    &lt;/a&gt;
   prior to installing the SDK, not just the Client Profile installed by Windows Update.&lt;/p&gt;
        
          &lt;p&gt;
            Second, while Visual Studio 2010 already comes with an SDK it’s the older version 7.0a. The new version 7.1 does 
    &lt;em&gt;
    not
    &lt;/em&gt;
   upgrade the existing installation but rather installs side-by-side. I recommend that you get version 7.1 anyway because it includes several tools that are neither part of VS2010 nor available elsewhere, in particular the WPF Performance Suite for .NET 4.0 and FxCop 10.0 (which is actually a minor update from 1.36).&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-05-23</pubDate>
      <guid>http://www.kynosarges.de/index.html#item192</guid>
    </item>
    <item>
      <title>More SGML Resources</title>
      <description>
          &lt;p&gt;
            Beth Santos passed me a link to an 
    &lt;a href="http://www.shorelinerecordsmanagement.com/customer-service/education-center/a-guide-to-sgml---standard-generalized-markup-language/"
    &gt;
    SGML overview page
    &lt;/a&gt;
   which is notable for its links to further SGML resources. Some of them are still alive, well worth reading, and 
    &lt;em&gt;
    not
    &lt;/em&gt;
   linked from 
    &lt;a href="http://xml.coverpages.org/general.html"
    &gt;
    XML Cover Pages
    &lt;/a&gt;
  . These include 
    &lt;a href="http://www.isgmlug.org/sgmlhelp/g-index.htm"
    &gt;
    A Gentle Introduction to SGML
    &lt;/a&gt;
   (another mirror of the HTML version), 
    &lt;a href="http://quod.lib.umich.edu/cgi/t/text/text-idx?c=jep;view=text;rgn=main;idno=3336451.0003.406"
    &gt;
    SGML and PDF – Why We Need Both
    &lt;/a&gt;
  , and 
    &lt;a href="http://www.jeenyus.net/web/reasons.html"
    &gt;
    Reasons to Learn SGML
    &lt;/a&gt;
  . Thanks, Beth!&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-05-18</pubDate>
      <guid>http://www.kynosarges.de/index.html#item191</guid>
    </item>
    <item>
      <title>On Comment Reflower Installation</title>
      <description>
          &lt;p&gt;
          C++ MVP Martin Richter advised me that Visual Studio 2010 actually supports a whole bunch of different locations for automatic add-in loading. You can see (and edit) them all under Tools &gt; Options &gt; Environment &gt; Add-in/Macros Security. The installation paths I gave for 
    &lt;a href="CommentReflower.html"
    &gt;
    Comment Reflower
    &lt;/a&gt;
   are still valid, but you should be aware that there are many more choices, including installation for all users rather than for a single user. I updated the 
    &lt;a href="project/CommentReflower/ReadMe.html"
    &gt;
    ReadMe
    &lt;/a&gt;
   file accordingly. Thanks, Martin!&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-05-12</pubDate>
      <guid>http://www.kynosarges.de/index.html#item190</guid>
    </item>
    <item>
      <title>Tektosyne 5.0.2 &amp; Hexkit 4.2.4 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 5.0.2
    &lt;/a&gt;
   and 
    &lt;a href="Hexkit.html"
    &gt;
    Hexkit 4.2.4
    &lt;/a&gt;
  , with a revised 
    &lt;em&gt;
    Hexkit User’s Guide
    &lt;/em&gt;
  . This Tektosyne releases changes the node type for all Graph classes from PointI coordinates to a generic type argument. PolygonGrid and consequently Hexkit simply specify PointI as the type argument, and thus work pretty much as before, but Tektosyne can now handle graphs that don’t map neatly to two-dimensional grids. See the 
    &lt;a href="project/Tektosyne/WhatsNew.html"
    &gt;
    WhatsNew
    &lt;/a&gt;
   file for details.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-05-09</pubDate>
      <guid>http://www.kynosarges.de/index.html#item189</guid>
    </item>
    <item>
      <title>Book Reviews: CLR via C# &amp; Real-World Functional Programming</title>
      <description>
          &lt;p&gt;
            Started reviews of 
    &lt;a href="DevBooks.html#Net4Books"
    &gt;
    .NET 4.0 Books
    &lt;/a&gt;
   with two new releases. The first is a long-awaited sequel, 
    &lt;em&gt;
    CLR via C#
    &lt;/em&gt;
   (3rd ed.) by Jeffrey Richter. Unsurprisingly, it’s still my first recommendation to get a solid understanding of the .NET Framework.&lt;/p&gt;
        
          &lt;p&gt;
            The second is 
    &lt;em&gt;
    Real-World Functional Programming
    &lt;/em&gt;
   by Tomas Petricek with Jon Skeet, an excellent introduction to Microsoft’s new F# language. Most F# code samples are also presented in idiomatic C# versions, and the bilingual code snippets both clarify the F# code and highlight its peculiar strenghts. Strongly recommended for anyone interested in F#, or functional .NET programming in general.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-05-07</pubDate>
      <guid>http://www.kynosarges.de/index.html#item188</guid>
    </item>
    <item>
      <title>Website Update</title>
      <description>
          &lt;p&gt;
            Updated the 
    &lt;a href="MiscApps.html"
    &gt;
    Miscellaneous Software
    &lt;/a&gt;
   page to remove dead entries, and add two new ones.&lt;/p&gt;
        
          &lt;p&gt;
            First, 
    &lt;a href="http://www.macrium.com/"
    &gt;
    Macrium Reflect
    &lt;/a&gt;
   is a hard disk imaging utility that does everything 
    &lt;a href="http://www.acronis.com/"
    &gt;
    Acronis True Image
    &lt;/a&gt;
   does, except faster and without the UI bloat. There’s even a perfectly usable 
    &lt;a href="http://www.macrium.com/reflectfree.asp"
    &gt;
    free edition
    &lt;/a&gt;
  .&lt;/p&gt;
        
          &lt;p&gt;
            On to web log analyzers: Since 
    &lt;a href="http://www.analog.cx"
    &gt;
    Analog
    &lt;/a&gt;
   appears to be dead, I tried the famous 
    &lt;a href="http://awstats.sourceforge.net/"
    &gt;
    AWStats
    &lt;/a&gt;
   package. After wrestling with the requisite Perl installation, I found that AWStats lacks the essential 12-month “rolling view” – apparently solely due to developer arrogance. So I went commercial and got 
    &lt;a href="http://www.weblogexpert.com/"
    &gt;
    WebLog Expert Standard
    &lt;/a&gt;
  , a program that does exactly what I want, is extremely easy to use, and well worth the money.&lt;/p&gt;
        
          &lt;p&gt;
            In other news, Microsoft has put together a 
    &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack/"
    &gt;
    Windows API Code Pack
    &lt;/a&gt;
   that provides .NET support for a variety of new features in Windows Vista &amp; 7, including task dialogs and the Windows 7 task bar. This project was posted on Microsoft’s 
    &lt;a href="http://code.msdn.microsoft.com/"
    &gt;
    Code Gallery
    &lt;/a&gt;
  , by the way, which is the closed-source equivalent of 
    &lt;a href="http://www.codeplex.com"
    &gt;
    CodePlex
    &lt;/a&gt;
  .&lt;/p&gt;
        
          &lt;p&gt;
            Finally, 
    &lt;a href="http://www.shacknews.com/tag.x/Weekend+Confirmed"
    &gt;
    Weekend Confirmed
    &lt;/a&gt;
   is Garnett Lee’s new gaming podcast after leaving 1up, now with Brian Leahy and Jeff Cannata.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-05-04</pubDate>
      <guid>http://www.kynosarges.de/index.html#item187</guid>
    </item>
    <item>
      <title>Tektosyne 5.0.1 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 5.0.1
    &lt;/a&gt;
   with more basic geometric operations for all coordinate types. This includes cross product and collinearity tests for PointD/F/I, and intersection and point location for LineD/F/I. See the 
    &lt;a href="project/Tektosyne/WhatsNew.html"
    &gt;
    WhatsNew
    &lt;/a&gt;
   file for details.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-05-02</pubDate>
      <guid>http://www.kynosarges.de/index.html#item186</guid>
    </item>
    <item>
      <title>Tektosyne 5.0.0 &amp; Hexkit 4.2.3 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 5.0.0
    &lt;/a&gt;
   and 
    &lt;a href="Hexkit.html"
    &gt;
    Hexkit 4.2.3
    &lt;/a&gt;
   for .NET 4.0 Client Profile and Visual Studio 2010. Microsoft still hasn’t released the new Windows SDK for .NET 4.0 but otherwise everything seems ready for the upgrade. The 
    &lt;em&gt;
    Hexkit User’s Guide
    &lt;/em&gt;
   was also revised for the new Tektosyne version.&lt;/p&gt;
        
          &lt;p&gt;
            The big Tektosyne version jump is due to new suite of geometric primitives – points, sizes, and rectangles in addition to lines, all implemented as immutable structures. I wanted to break the annoying dependency of abstract geometric algorithms on Microsoft’s mélange of GDI and WPF types. See the 
    &lt;a href="project/Tektosyne/WhatsNew.html"
    &gt;
    WhatsNew
    &lt;/a&gt;
   file for a full rundown.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-04-30</pubDate>
      <guid>http://www.kynosarges.de/index.html#item185</guid>
    </item>
    <item>
      <title>NUnit fixed for .NET 4.0, Sandcastle not yet</title>
      <description>
          &lt;p&gt;
            
    &lt;a href="http://nunit.com/"
    &gt;
    NUnit 2.5.5
    &lt;/a&gt;
   is out and fixes the bug that caused crashes when attempting to test .NET 4.0 assemblies on 64-bit Windows.&lt;/p&gt;
        
          &lt;p&gt;
            Still no new 
    &lt;a href="http://sandcastle.codeplex.com/"
    &gt;
    Sandcastle
    &lt;/a&gt;
   release, and possibly we won’t see one until Microsoft releases its new offline help viewer.  The current Sandcastle version works with .NET 4.0 assemblies, but you need to apply the current 
    &lt;a href="http://sandcastlestyles.codeplex.com/"
    &gt;
    Sandcastle Styles
    &lt;/a&gt;
   and then add the following line to the file 
    &lt;code&gt;
    ProductionTools\MrefBuilder.exe.config
    &lt;/code&gt;
  :&lt;/p&gt;
        
          &lt;p&gt;
            
    &lt;code&gt;
    &lt;supportedRuntime version="v4.0.30319"/&gt; &lt;!-- 4.0 RTM installed by VS2010 RTM --&gt;
    &lt;/code&gt;
  &lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-04-30</pubDate>
      <guid>http://www.kynosarges.de/index.html#item184</guid>
    </item>
    <item>
      <title>Some Housekeeping</title>
      <description>
          &lt;p&gt;
            Looking over my website access logs, I saw to my horror that truly ancient versions of my freeware are still getting downloaded. I only meant to keep them up for a transitional period but then forgot about them. Since there really isn’t any reason to stick with older .NET Framework versions over newer ones, I’m pulling the old Hexkit and Tektosyne releases for Windows Forms, and also the paleolithic Collections Templates that supported synchronized wrappers. I fear some people may have misunderstood the version history and assumed that a useful feature was removed in the final version of these templates, but in fact I removed synchronized wrappers (just like Microsoft did in .NET 2.0) because they are 
    &lt;em&gt;
    completely useless.
    &lt;/em&gt;
  &lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-04-20</pubDate>
      <guid>http://www.kynosarges.de/index.html#item183</guid>
    </item>
    <item>
      <title>NUnit 2.5.4 with .NET Framework 4.0</title>
      <description>
          &lt;p&gt;
            If you have attempted to use 
    &lt;a href="http://nunit.com/"
    &gt;
    NUnit 2.5.4
    &lt;/a&gt;
   – the current version that should support the new .NET Framework 4.0 – on a 64-bit version of Windows, you’ve likely encountered an incomprehensible crash. As it turns out, the reason is that all the NUnit maintainers are still on 32-bit Windows, as unlikely as that sounds, and therefore a small bug that only shows up on 64-bit Windows went unnoticed.&lt;/p&gt;
        
          &lt;p&gt;
            A fix has already been submitted, and a new version is scheduled for release later this week. In the meantime, users of 64-bit Windows can manually edit NUnit’s application configuration files to work around the bug. Locate the files 
    &lt;code&gt;
    nunit.exe.config
    &lt;/code&gt;
   and 
    &lt;code&gt;
    nunit-console.exe.config
    &lt;/code&gt;
   in subdirectory 
    &lt;code&gt;
    bin\net-2.0
    &lt;/code&gt;
   of your NUnit installation folder, and add the following line after the 
    &lt;code&gt;
    &lt;configuration&gt;
    &lt;/code&gt;
   tag in each file: 
    &lt;code&gt;
    &lt;startup&gt;&lt;requiredRuntime version="v4.0.30319" /&gt;&lt;/startup&gt;
    &lt;/code&gt;
  . Likewise for the x86 versions if you want to run those.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-04-20</pubDate>
      <guid>http://www.kynosarges.de/index.html#item182</guid>
    </item>
    <item>
      <title>Visual Studio 2010 Downloads</title>
      <description>
          &lt;p&gt;
            That was quick! Microsoft has posted a complete set of 
    &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=92ced922-d505-457a-8c9c-84036160639f"
    &gt;
    keybinding reference posters
    &lt;/a&gt;
   for Visual Studio 2010.&lt;/p&gt;
        
          &lt;p&gt;
            Sadly, the Help team was not so quick. VS2010 ships with a minimalistic browser interface for the included offline installation of the MSDN Library. 
    &lt;a href="http://helpware.net/"
    &gt;
    The Helpware Group
    &lt;/a&gt;
   offers the free 
    &lt;a href="http://mshcmigrate.helpmvp.com/viewer"
    &gt;
    H3 Viewer
    &lt;/a&gt;
   as a decent substitute.&lt;/p&gt;
        
          &lt;p&gt;
            Lastly, two notable entries in the 
    &lt;a href="http://visualstudiogallery.msdn.microsoft.com/"
    &gt;
    Visual Studio Gallery
    &lt;/a&gt;
   are the 
    &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/0fbf2878-e678-4577-9fdb-9030389b338c"
    &gt;
    Editor Guidelines
    &lt;/a&gt;
   extension with an associated 
    &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/7f2a6727-2993-4c1d-8f58-ae24df14ea91"
    &gt;
    Editor Guidelines GUI
    &lt;/a&gt;
   to enable visual column indicators.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-04-19</pubDate>
      <guid>http://www.kynosarges.de/index.html#item181</guid>
    </item>
    <item>
      <title>Check .NET Version with Inno Setup</title>
      <description>
          &lt;p&gt;
            
    &lt;a href="http://www.jrsoftware.org/"
    &gt;
    Inno Setup
    &lt;/a&gt;
   by Jordan Russell is my favorite installer, but it lacks a built-in function to check for a required .NET Framework version. Thanks to Pascal scripting it’s easy to write such a function yourself, though. You can find one I wrote to check for .NET versions 1.1 through 4.0 on a new page, 
    &lt;a href="DotNetVersion.html"
    &gt;
    Check .NET Version with Inno Setup
    &lt;/a&gt;
  .&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-04-18</pubDate>
      <guid>http://www.kynosarges.de/index.html#item180</guid>
    </item>
    <item>
      <title>The Grand .NET Optimization Melodrama</title>
      <description>
          &lt;p&gt;
            Naturally, just after I had revised large swaths of my 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne library
    &lt;/a&gt;
   to work around serious defects in the x64 JIT compiler’s optimizer, the new 4.0 release fixes some of them. This 
    &lt;a href="https://connect.microsoft.com/VisualStudio/feedback/details/93858/struct-methods-should-be-inlined"
    &gt;
    Microsoft Connect item
    &lt;/a&gt;
   contains the one (1) statement I could find where a CLR team member gives a few details on the situation. The x64 inliner was having big problems with generic classes which should be fixed now – though to what degree nobody knows, and structs are still problematic.&lt;/p&gt;
        
          &lt;p&gt;
            The improved x64 inlining for generic types was immediately visible in my benchmarks: the standard class SortedDictionary&lt;TKey, TValue&gt; (= binary search tree with red-black balancing) is nearly twice as fast now as in .NET 3.5 SP1, echoing the speedup of my own BraidedTree&lt;TKey, TValue&gt; class when I switched from property to field access. All my sort routines for IList&lt;T&gt; collections are dramatically faster as well.&lt;/p&gt;
        
          &lt;p&gt;
            That is welcome news, but performance remains inconsistent between the x86 and x64 JIT compilers, and Microsoft still does not guarantee any specific optimizations. On the contrary, a recent 
    &lt;a href="http://blogs.msdn.com/clrcodegeneration/archive/2009/05/11/jit-etw-tracing-in-net-framework-4.aspx"
    &gt;
    CLR Code Generation
    &lt;/a&gt;
   blog post for .NET 4.0 explicitly states: “If [a method] absolutely must be inlined then inline it manually (i.e. copy and paste the code). That recommendation should never change.” And that’s exactly what I’ll continue to do. Favoring fields over properties and manually inlining short methods is the only way to guarantee there won’t be any strange performance issues, on any target platform and CLR version.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-04-17</pubDate>
      <guid>http://www.kynosarges.de/index.html#item179</guid>
    </item>
    <item>
      <title>Comment Reflower &amp; Region Tools for Visual Studio 2010</title>
      <description>
          &lt;p&gt;
            Microsoft Visual Studio 2010 has just been released, and I’m happy to announce updated versions of 
    &lt;a href="CommentReflower.html"
    &gt;
    Comment Reflower
    &lt;/a&gt;
   and 
    &lt;a href="RegionTools.html"
    &gt;
    Region Tools
    &lt;/a&gt;
   for the new IDE.&lt;/p&gt;
        
          &lt;p&gt;
            The only notable issue was an endless loop in the 
    &lt;c&gt;
    CollapseAllRegions
    &lt;/c&gt;
   macro, apparently triggered by changed FindText semantics, but that was fixed by removing a subsequent EndOfDocument call. The precompiled Comment Reflower package for VS2008 is still available for download, and I added comments to the updated Region Tools macros to indicate the few lines that need changing for VS2008.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-04-13</pubDate>
      <guid>http://www.kynosarges.de/index.html#item178</guid>
    </item>
    <item>
      <title>Tektosyne 4.5.0 &amp; Hexkit 4.2.2 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 4.5.0
    &lt;/a&gt;
   with a hashtable specialized for Int32 keys and performance improvements for many Collections and Geometry classes, as detailed in the 
    &lt;a href="project/Tektosyne/WhatsNew.html"
    &gt;
    WhatsNew
    &lt;/a&gt;
   file. 
    &lt;a href="Hexkit.html"
    &gt;
    Hexkit 4.2.2
    &lt;/a&gt;
   was build with the new Tektosyne version and should offer somewhat faster pathfinding, but no other changes.&lt;/p&gt;
        
          &lt;p&gt;
            Now an explanation. All of the following refers to compiling for .NET 3.5 SP1 x64 in release mode, with optimizations enabled and running outside of the Visual Studio debugger.&lt;/p&gt;
        
          &lt;p&gt;
            I used to subscribe to the widespread belief that the JIT compiler would inline any and all trivial method calls (including simple property accessors), eliminating any performance difference between properties and fields. Now my benchmarking suite proved me wrong: when I changed my new collection classes to use direct field accesses instead of trivial or automatic properties, search performance almost doubled! Inlining trivial error checking code gave another significant boost.&lt;/p&gt;
        
          &lt;p&gt;
            Clearly, the JIT compiler is far worse at inlining method calls than commonly assumed. Looking at the machine code produced by a simple test program, I also discovered something else: the JIT compiler may perform 
    &lt;em&gt;
    additional
    &lt;/em&gt;
   optimizations when it has direct access to fields and does not need to inline property accessors first. Generally, more optimizations are better, but this is another strike against relying on automatic inlining.&lt;/p&gt;
        
          &lt;p&gt;
            Since the Tektosyne library and my game projects require all the speed I can get, there’s only one conclusion: Any performance-sensitive Tektosyne algorithms now directly access backing fields instead of properties, and those fields were raised to internal visibility where necessary. I no longer use automatic properties at all, and avoid factoring out short repetitive code fragments. This is quite a disappointment, especially since inlining trivial property accessors is a relatively simple optimization – we’re not talking about LINQ queries here. Will any language platform other than C++ ever deliver on the promise of higher abstractions without performance penalties?&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-04-12</pubDate>
      <guid>http://www.kynosarges.de/index.html#item177</guid>
    </item>
    <item>
      <title>Tektosyne 4.4.3 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 4.4.3
    &lt;/a&gt;
   with some aesthetic corrections related to the new QuadTree class. See the 
    &lt;a href="project/Tektosyne/WhatsNew.html"
    &gt;
    WhatsNew
    &lt;/a&gt;
   file for details.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-04-04</pubDate>
      <guid>http://www.kynosarges.de/index.html#item176</guid>
    </item>
    <item>
      <title>Tektosyne 4.4.2 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 4.4.2
    &lt;/a&gt;
   with an all-new quadrant tree (quadtree) for fast two-dimensional point location and range searches. This class is once again loosely based on Laszlo’s implementation, but with a hashtable-based “depth probe” algorithm inspired by Sariel Har-Peled’s binary depth search – see the Class Reference for details.&lt;/p&gt;
        
          &lt;p&gt;
            I also added range searches to the braided tree; a binary search for arbitrary IList&lt;T&gt; collections that indicates the next-greater index on failure; and a handy ComparerAdapter to convert a Comparison&lt;T&gt; into an IComparer&lt;T&gt;. See the 
    &lt;a href="project/Tektosyne/WhatsNew.html"
    &gt;
    WhatsNew
    &lt;/a&gt;
   file for details.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-04-02</pubDate>
      <guid>http://www.kynosarges.de/index.html#item175</guid>
    </item>
    <item>
      <title>Comment Reflower Updated</title>
      <description>
          &lt;p&gt;
            Arnt Witteveen has spotted a bug with the AlignParameters command and fixed it right away. You can find details and the new version on the 
    &lt;a href="CommentReflower.html"
    &gt;
    Comment Reflower
    &lt;/a&gt;
   page. Thanks, Arnt!&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-03-24</pubDate>
      <guid>http://www.kynosarges.de/index.html#item174</guid>
    </item>
    <item>
      <title>Website Update</title>
      <description>
          &lt;p&gt;
            Microsoft has killed its 
    &lt;a href="http://support.microsoft.com/dllhelp/"
    &gt;
    DLL Help Database
    &lt;/a&gt;
   for unknown reasons. On the upside, the entire content of its venerable 
    &lt;a href="http://msdn.microsoft.com/en-us/magazine/"
    &gt;
    MSDN Magazine
    &lt;/a&gt;
   is now available online. And 
    &lt;a href="http://www.idlethumbs.net/"
    &gt;
    Idle Thumbs
    &lt;/a&gt;
   is an excellent video games podcast that has just been revived after a brief downtime.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-03-21</pubDate>
      <guid>http://www.kynosarges.de/index.html#item173</guid>
    </item>
    <item>
      <title>Tektosyne 4.4.1 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 4.4.1
    &lt;/a&gt;
   with two variants of a multiline intersection algorithm: the brute force approach and the standard sweep line algorithm by Bentley &amp; Ottmann. Laszlo’s implementation was not immediately usable as it’s rather numerically unstable and cannot handle crossings between more than two lines. I took some building blocks from his code and otherwise followed de Berg et al. to build a stable general-purpose implementation – see the source code comments for details.&lt;/p&gt;
        
          &lt;p&gt;
            This release also includes some improvements to the braided search tree and basic Line operations, as described in the 
    &lt;a href="project/Tektosyne/WhatsNew.html"
    &gt;
    WhatsNew
    &lt;/a&gt;
   file.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-03-20</pubDate>
      <guid>http://www.kynosarges.de/index.html#item172</guid>
    </item>
    <item>
      <title>Tektosyne 4.4.0 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 4.4.0
    &lt;/a&gt;
   with a “braided” search tree, again taken from 
    &lt;em&gt;
    Computational Geometry and Computer Graphics in C++
    &lt;/em&gt;
   by Michael J. Laszlo. This is a binary search tree with randomized balancing whose nodes are connected by a doubly-linked list for very fast enumeration in key sorting order. I was pleasantly surprised that other operations are also much faster than the BCL’s red-black BST. The average speedup for adding, enumeration, searching, and removing elements is 160% for presorted keys and 60% for random keys.&lt;/p&gt;
        
          &lt;p&gt;
            I had not really planned to implement a fast search tree at this time, but Laszlo’s multiline intersection algorithm works best with his own BST. Going forward I’ll tackle this algorithm and then polygon intersection, but I also want to figure out some way to generally represent geometric primitives (line segments, polygons) with extra connectivity information so they can be used for any geometric algorithm.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-03-04</pubDate>
      <guid>http://www.kynosarges.de/index.html#item171</guid>
    </item>
    <item>
      <title>Book Reviews: Windows via C/C++ &amp; Using MSBuild</title>
      <description>
          &lt;p&gt;
            Added two belated reviews for books that were published in 2008 and 2009, respectively. First, 
    &lt;em&gt;
    Programming Applications for Windows
    &lt;/em&gt;
   is now 
    &lt;a href="DevBooks.html#Windows"
    &gt;
    Windows via C/C++
    &lt;/a&gt;
   by Jeffrey Richter &amp; Christophe Nasarre, and unsurprisingly it’s still the standard guide to Windows systems programming.&lt;/p&gt;
        
          &lt;p&gt;
            Second, 
    &lt;a href="DevBooks.html#Net3Books"
    &gt;
    Using MSBuild and Team Foundation Build
    &lt;/a&gt;
   by Sayed Ibrahim Hashimi and William Bartholomew is the comprehensive guide to MSBuild that .NET developers have been waiting for since 2005. Definitely get this book if you ever intend to manually edit MSBuild scripts.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-02-24</pubDate>
      <guid>http://www.kynosarges.de/index.html#item170</guid>
    </item>
    <item>
      <title>Tektosyne 4.3.3 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 4.3.3
    &lt;/a&gt;
   with a generalized method to locate an arbitrary point relative to a line segment, courtesy of 
    &lt;em&gt;
    Computational Geometry and Computer Graphics in C++
    &lt;/em&gt;
   by Michael J. Laszlo.&lt;/p&gt;
        
          &lt;p&gt;
            As you can see I’m stitching together algorithms from several sources since there is no comprehensive textbook of immediately usable code yet. There’s the classic 
    &lt;em&gt;
    Computational Geometry
    &lt;/em&gt;
   by de Berg et al. which gives great descriptions but only high-level pseudocode – and getting implementation details right is rather tricky in this area. My first choice would be Robert Sedgewick’s 
    &lt;em&gt;
    Algorithms in Java
    &lt;/em&gt;
   series, but the volume on computational geometry won’t be published until 28th June 2010 – and then only for plain C, with the more immediately useful C++ and Java editions scheduled for September 2010 and 2011, respectively.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-02-23</pubDate>
      <guid>http://www.kynosarges.de/index.html#item169</guid>
    </item>
    <item>
      <title>Website Update</title>
      <description>
          &lt;p&gt;
            Added some interesting links: 
    &lt;a href="http://www.piriform.com/"
    &gt;
    Piriform
    &lt;/a&gt;
   has a couple of nice free Windows utilities, 
    &lt;a href="http://www.code-magazine.com/codecast/"
    &gt;
    CodeCast
    &lt;/a&gt;
   is a good interview podcast for .NET developers, and Microsoft has put the 
    &lt;a href="http://fsharppowerpack.codeplex.com/"
    &gt;
    F# PowerPack
    &lt;/a&gt;
   on CodePlex.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-02-17</pubDate>
      <guid>http://www.kynosarges.de/index.html#item168</guid>
    </item>
    <item>
      <title>Tektosyne 4.3.2 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 4.3.2
    &lt;/a&gt;
   with an enhanced line intersection algorithm that returns more detailed information about the intersection.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-02-17</pubDate>
      <guid>http://www.kynosarges.de/index.html#item167</guid>
    </item>
    <item>
      <title>Tektosyne 4.3.1 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 4.3.1
    &lt;/a&gt;
   with yet more geometric algorithms adapted from Joseph O’Rourke’s 
    &lt;em&gt;
    Computational Geometry in C
    &lt;/em&gt;
  . This release includes line intersection, a stepping stone for polygon intersection and planar point location.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-02-12</pubDate>
      <guid>http://www.kynosarges.de/index.html#item166</guid>
    </item>
    <item>
      <title>Visual Studio 2010 Tips &amp; Tricks</title>
      <description>
          &lt;p&gt;
            Those who fondly remember 
    &lt;a href="http://blogs.msdn.com/saraford/"
    &gt;
    Sara Ford’s
    &lt;/a&gt;
   series of VS2008 tips should head over to 
    &lt;a href="http://blogs.msdn.com/zainnab/"
    &gt;
    Zain Naboulsi
    &lt;/a&gt;
   who is now providing the same service for the upcoming VS2010.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-02-04</pubDate>
      <guid>http://www.kynosarges.de/index.html#item165</guid>
    </item>
    <item>
      <title>Tektosyne 4.3.0 Released</title>
      <description>
          &lt;p&gt;
            Uploaded 
    &lt;a href="Tektosyne.html"
    &gt;
    Tektosyne 4.3.0
    &lt;/a&gt;
   with a generous helping of computational geometry, including Fortune’s sweepline algorithm for Voronoi diagrams and Delaunay triangulations, Graham’s scan for convex hulls, and a faster point-in-polygon test. The most important standard algorithm that’s still missing is point location in an arbitrary planar subdivision, which I hope to add in the next release.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2010-02-04</pubDate>
      <guid>http://www.kynosarges.de/index.html#item164</guid>
    </item>
    <item>
      <title>Hexkit on Hold, Down with Hexagons</title>
      <description>
          &lt;p&gt;
            Hexkit development has stopped as I’m refocusing on a more realistic simulation of pre-modern warfare, which will require the kind of geometric algorithms added to the last Tektosyne release. I’ve written a 
    &lt;a href="Hexkit.html#Status"
    &gt;
    Project Status
    &lt;/a&gt;
   update to explain this change of direction.&lt;/p&gt;
        </description>
      <author>Chris Nahr</author>
      <comments>mailto:antisthenes@kynosarges.de</comments>
      <pubDate>2009-12-13</pubDate>
      <guid>http://www.kynosarges.de/index.html#item163</guid>
    </item>
  </channel>
</rss>