Site Contents

Intro & News

E-mail Contact

RSS 2.0 Feed

Development

Developer Books

Developer Links

Developer Tools

Microsoft Links

Check .NET Version

Comment Reflower

Region Tools

NDoc 2.0 Alpha

Miscellaneous

Other Links

Other Software

Subscriptions

Projects

Tektosyne

Hexkit

Star Chess

Civilization


Kynosarges

Welcome to the gymnasion! Click on the table of contents to the left, or on the overview links below, to access content pages. Contact the webmaster with any comments and suggestions.

Latest News

Subscribe to the RSS 2.0 RSS 2.0 feed to keep up with the latest news.

Tektosyne 5.1.4 Released (2010-09-02)
Uploaded Tektosyne 5.1.4 with a quick bugfix – see the WhatsNew file for details. I also just noticed that the Class Reference is mangled for the new class EqualityComparerAdapter<T>. Sadly, that’s yet another Sandcastle error concerning generic type arguments, and so won’t get fixed until (hopefully) the next Sandcastle release.
Tektosyne 5.1.3 Released (2010-08-26)
Uploaded Tektosyne 5.1.3 which adds a gaggle of mutable tuples (intended for WPF data binding) and various minor updates. See the WhatsNew file for details.
The .NET Class Diagrammer is coming along nicely. I’ve already implemented the configurable display of arbitrary .NET types as UML element boxes, and now I’m moving on to UML relationships and the various diagram output formats.
.NET Class Diagrammer (2010-07-28)
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, once, 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.
Snoop, the WPF Spy Utility (2010-07-28)
All WPF developers should head over to CodePlex right away and download Snoop. 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.
Enhanced VS2010 Productivity Power Tools (2010-07-22)
The free Visual Studio 2010 Productivity Power Tools have just become even more awesome, with the addition of intelligent automatic brace completion and the new Solution Navigator – another tool so complex it needs its own manual.
Book Review Updates (2010-07-21)
A couple of updates to the General Book Reviews section. First, HTML & XHTML – The Definitive Guide by Chuck Musciano and Bill Kennedy has reached its 6th edition while I wasn’t looking, and it’s as highly recommended as ever.
The first edition of XML in a Nutshell 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 Essential XML Quick Reference by Aaron Skonnard and Martin Gudgin to second place.
Tektosyne 5.1.2 Released (2010-07-14)
Uploaded Tektosyne 5.1.2 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 WhatsNew file for details.
Comment Reflower Limitation (2010-07-11)
David W Smith informed me that Comment Reflower cannot handle block comments that use Block Start & 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 ReadMe file. Thanks, David!
Tektosyne 5.1.1 & Hexkit 4.2.6 Released (2010-07-08)
Uploaded Tektosyne 5.1.1 and Hexkit 4.2.6 with recompiled class references thanks to the new .NET 4.0 releases of Sandcastle, Sandcastle Styles, and Sandcastle Help File Builder. 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.
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 WhatsNew file for details. Hexkit was updated for the new Tektosyne and Sandcastle releases but contains no visible changes.
Book Review: WPF 4 Unleashed (2010-07-04)
Added a review for WPF 4 Unleashed by Adam Nathan, successor to the fantastic Windows Presentation Foundation Unleashed. 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.
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.
Science News & Podcasts (2010-07-02)
Added a couple of great science newsfeeds and podcasts to the Subscriptions page: The Naked Scientists, Nature.com, Science Magazine, and Scientific American – please see the new Science section for all the links.
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…
Book Review: Pro WPF in C# 2010 (2010-06-25)
Added a review for Pro WPF in C# 2010 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 Programming WPF 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.
In other news, Radames Cruz Moreno has posted a list of hidden options for the Document Well 2010 Plus in the recently released Visual Studio 2010 Productivity Power Tools; and Chris Morris’ blog has migrated from The Cut Scene to Technotainment where he also covers all sorts of entertainment technology aside from video games.
Tektosyne 5.1.0 & Hexkit 4.2.5 Released (2010-06-14)
Uploaded Tektosyne 5.1.0 and Hexkit 4.2.5, with a revised Hexkit User’s Guide. 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, requiring distances to be measured in movement steps was an unnecessary constraint on graphs and pathfinding algorithms, which is now removed.
The immediate reason for this change was the introduction (at long last) of a second geometric type that implements our pathfinding graph, IGraph2D<T>. That type is Subdivision, a planar subdivision represented as a doubly-connected edge list according to Computational Geometry 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 WhatsNew file for details.
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.
Visual Studio 2010 Extensions (2010-06-10)
Microsoft has just released the ultimate set of VS2010 extensions: Visual Studio 2010 Productivity Power Tools! Among many other things, this package comprises the existing Editor Guidelines feature and an enhanced document tab organizer so powerful it needs its own manual: Document Well 2010 Plus.
Moreover, if you’re a fan of PowerCommands for Visual Studio 2008, you can now get the updated PowerCommands for Visual Studio 2010.
No Visual Studio extension, just a quick registry hack for a hidden feature: How to enable thumbnail previews in Visual Studio 2010.
And Windows application developers in general may be interested in the Windows User Experience Interaction Guidelines (UXGuide) for Windows Vista & 7 and the Windows User Experience Guidelines for Windows 2000 & XP.
The Christian Science Monitor (2010-05-26)
Check out The Christian Science Monitor 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.
Book Review: C# 4.0 in a Nutshell (2010-05-23)
Added a review for C# 4.0 in a Nutshell by Joseph & 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.
I’m still reading Matthew MacDonald’s Pro WPF in C# 2010 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 WPF Unleashed. Speaking of which, my copy of WPF 4 Unleashed should arrive in about two weeks; no news yet on an update to Sells & Griffiths’ Programming WPF.
Windows SDK 7.1 & Silverlight 4 Tools Released (2010-05-23)
The updated Microsoft Windows SDK 7.1 for Windows 7 and .NET 4.0 is now available. About a week ago, Microsoft also released the final Silverlight 4 Tools for Visual Studio 2010.
Two notes regarding the new Windows SDK. First, if you don’t have Visual Studio 2010, you will need to download the full .NET Framework 4.0 prior to installing the SDK, not just the Client Profile installed by Windows Update.
Second, while Visual Studio 2010 already comes with an SDK it’s the older version 7.0a. The new version 7.1 does not 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).
More SGML Resources (2010-05-18)
Beth Santos passed me a link to an SGML overview page which is notable for its links to further SGML resources. Some of them are still alive, well worth reading, and not linked from XML Cover Pages. These include A Gentle Introduction to SGML (another mirror of the HTML version), SGML and PDF – Why We Need Both, and Reasons to Learn SGML. Thanks, Beth!
On Comment Reflower Installation (2010-05-12)
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 > Options > Environment > Add-in/Macros Security. The installation paths I gave for Comment Reflower 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 ReadMe file accordingly. Thanks, Martin!
Tektosyne 5.0.2 & Hexkit 4.2.4 Released (2010-05-09)
Uploaded Tektosyne 5.0.2 and Hexkit 4.2.4, with a revised Hexkit User’s Guide. 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 WhatsNew file for details.
Book Reviews: CLR via C# & Real-World Functional Programming (2010-05-07)
Started reviews of .NET 4.0 Books with two new releases. The first is a long-awaited sequel, CLR via C# (3rd ed.) by Jeffrey Richter. Unsurprisingly, it’s still my first recommendation to get a solid understanding of the .NET Framework.
The second is Real-World Functional Programming 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.
Website Update (2010-05-04)
Updated the Miscellaneous Software page to remove dead entries, and add two new ones.
First, Macrium Reflect is a hard disk imaging utility that does everything Acronis True Image does, except faster and without the UI bloat. There’s even a perfectly usable free edition.
On to web log analyzers: Since Analog appears to be dead, I tried the famous AWStats 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 WebLog Expert Standard, a program that does exactly what I want, is extremely easy to use, and well worth the money.
In other news, Microsoft has put together a Windows API Code Pack that provides .NET support for a variety of new features in Windows Vista & 7, including task dialogs and the Windows 7 task bar. This project was posted on Microsoft’s Code Gallery, by the way, which is the closed-source equivalent of CodePlex.
Finally, Weekend Confirmed is Garnett Lee’s new gaming podcast after leaving 1up, now with Brian Leahy and Jeff Cannata.
Tektosyne 5.0.1 Released (2010-05-02)
Uploaded Tektosyne 5.0.1 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 WhatsNew file for details.
Tektosyne 5.0.0 & Hexkit 4.2.3 Released (2010-04-30)
Uploaded Tektosyne 5.0.0 and Hexkit 4.2.3 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 Hexkit User’s Guide was also revised for the new Tektosyne version.
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 WhatsNew file for a full rundown.
NUnit fixed for .NET 4.0, Sandcastle not yet (2010-04-30)
NUnit 2.5.5 is out and fixes the bug that caused crashes when attempting to test .NET 4.0 assemblies on 64-bit Windows.
Still no new Sandcastle 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 Sandcastle Styles and then add the following line to the file ProductionTools\MrefBuilder.exe.config:
<supportedRuntime version="v4.0.30319"/> <!-- 4.0 RTM installed by VS2010 RTM -->
Some Housekeeping (2010-04-20)
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 completely useless.
NUnit 2.5.4 with .NET Framework 4.0 (2010-04-20)
If you have attempted to use NUnit 2.5.4 – 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.
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 nunit.exe.config and nunit-console.exe.config in subdirectory bin\net-2.0 of your NUnit installation folder, and add the following line after the <configuration> tag in each file: <startup><requiredRuntime version="v4.0.30319" /></startup>. Likewise for the x86 versions if you want to run those.
Visual Studio 2010 Downloads (2010-04-19)
That was quick! Microsoft has posted a complete set of keybinding reference posters for Visual Studio 2010.
Sadly, the Help team was not so quick. VS2010 ships with a minimalistic browser interface for the included offline installation of the MSDN Library. The Helpware Group offers the free H3 Viewer as a decent substitute.
Lastly, two notable entries in the Visual Studio Gallery are the Editor Guidelines extension with an associated Editor Guidelines GUI to enable visual column indicators.
Check .NET Version with Inno Setup (2010-04-18)
Inno Setup 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, Check .NET Version with Inno Setup.
The Grand .NET Optimization Melodrama (2010-04-17)
Naturally, just after I had revised large swaths of my Tektosyne library to work around serious defects in the x64 JIT compiler’s optimizer, the new 4.0 release fixes some of them. This Microsoft Connect item 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.
The improved x64 inlining for generic types was immediately visible in my benchmarks: the standard class SortedDictionary<TKey, TValue> (= 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<TKey, TValue> class when I switched from property to field access. All my sort routines for IList<T> collections are dramatically faster as well.
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 CLR Code Generation 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.
Comment Reflower & Region Tools for Visual Studio 2010 (2010-04-13)
Microsoft Visual Studio 2010 has just been released, and I’m happy to announce updated versions of Comment Reflower and Region Tools for the new IDE.
The only notable issue was an endless loop in the CollapseAllRegions 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.
Tektosyne 4.5.0 & Hexkit 4.2.2 Released (2010-04-12)
Uploaded Tektosyne 4.5.0 with a hashtable specialized for Int32 keys and performance improvements for many Collections and Geometry classes, as detailed in the WhatsNew file. Hexkit 4.2.2 was build with the new Tektosyne version and should offer somewhat faster pathfinding, but no other changes.
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.
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.
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 additional 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.
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?
Tektosyne 4.4.3 Released (2010-04-04)
Uploaded Tektosyne 4.4.3 with some aesthetic corrections related to the new QuadTree class. See the WhatsNew file for details.
Tektosyne 4.4.2 Released (2010-04-02)
Uploaded Tektosyne 4.4.2 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.
I also added range searches to the braided tree; a binary search for arbitrary IList<T> collections that indicates the next-greater index on failure; and a handy ComparerAdapter to convert a Comparison<T> into an IComparer<T>. See the WhatsNew file for details.
Comment Reflower Updated (2010-03-24)
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 Comment Reflower page. Thanks, Arnt!
Website Update (2010-03-21)
Microsoft has killed its DLL Help Database for unknown reasons. On the upside, the entire content of its venerable MSDN Magazine is now available online. And Idle Thumbs is an excellent video games podcast that has just been revived after a brief downtime.
Tektosyne 4.4.1 Released (2010-03-20)
Uploaded Tektosyne 4.4.1 with two variants of a multiline intersection algorithm: the brute force approach and the standard sweep line algorithm by Bentley & 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.
This release also includes some improvements to the braided search tree and basic Line operations, as described in the WhatsNew file.
Tektosyne 4.4.0 Released (2010-03-04)
Uploaded Tektosyne 4.4.0 with a “braided” search tree, again taken from Computational Geometry and Computer Graphics in C++ 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.
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.
Book Reviews: Windows via C/C++ & Using MSBuild (2010-02-24)
Added two belated reviews for books that were published in 2008 and 2009, respectively. First, Programming Applications for Windows is now Windows via C/C++ by Jeffrey Richter & Christophe Nasarre, and unsurprisingly it’s still the standard guide to Windows systems programming.
Second, Using MSBuild and Team Foundation Build 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.
Tektosyne 4.3.3 Released (2010-02-23)
Uploaded Tektosyne 4.3.3 with a generalized method to locate an arbitrary point relative to a line segment, courtesy of Computational Geometry and Computer Graphics in C++ by Michael J. Laszlo.
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 Computational Geometry 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 Algorithms in Java 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.
Website Update (2010-02-17)
Added some interesting links: Piriform has a couple of nice free Windows utilities, CodeCast is a good interview podcast for .NET developers, and Microsoft has put the F# PowerPack on CodePlex.
Tektosyne 4.3.2 Released (2010-02-17)
Uploaded Tektosyne 4.3.2 with an enhanced line intersection algorithm that returns more detailed information about the intersection.
Tektosyne 4.3.1 Released (2010-02-12)
Uploaded Tektosyne 4.3.1 with yet more geometric algorithms adapted from Joseph O’Rourke’s Computational Geometry in C. This release includes line intersection, a stepping stone for polygon intersection and planar point location.
Visual Studio 2010 Tips & Tricks (2010-02-04)
Those who fondly remember Sara Ford’s series of VS2008 tips should head over to Zain Naboulsi who is now providing the same service for the upcoming VS2010.
Tektosyne 4.3.0 Released (2010-02-04)
Uploaded Tektosyne 4.3.0 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.
Hexkit on Hold, Down with Hexagons (2009-12-13)
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 Project Status update to explain this change of direction.

Historical Note

The Κυνοσαργες (Kynosarges) was an ancient Greek gymnasion dedicated to Hercules, situated in the demos Diomeia outside the walls of Athens. It was the place of education for those Athenian boys who did not enjoy full citizenship. Antisthenes (445–360 BC), student of Socrates and founder of the cynic school of philosophy, taught at the Kynosarges. The most famous cynic was Diogenes of Sinope (412–323 BC), allegedly residing in an empty barrel and subject of countless anecdotes.

Addendum 1 June 2004: I am pleased to discover that Kynosarges was also the title of a short-lived literary magazine whose only issue was published in Berlin anno 1802. Otherwise the name appears to have seen little use since ancient times, at least with the “K” spelling.


This page was last updated on 02 September 2010.
Current version available at http://www.kynosarges.de