Greatest Hits in 2016

Total Kynosarges page hits as determined by Google Analytics shrank considerably year-over-year, going from 174,787 in 2015 (weblog 83,766, website 91,021) to 125,757 in 2016 (weblog 56,993, website 68,764). I’ll discuss likely reasons below. But first, here are the annual Top Ten pages, starting with weblog posts. I’m listing the original publishing date and total […]

Java Client VM Remeasured

After upgrading my computer system some months ago and finishing the port of Tektosyne for Java just recently, I decided it’s time to update the measurements on my comparison page for Oracle’s Java Client and Server VMs on Microsoft Windows. As a reminder, the core problem is that any modern Windows system should automatically run […]

Tektosyne Library for Java

Tektosyne 6.0 is now available for download, its first release in Java. You can download the code package itself, with complete source code and prebuilt JAR files, as well as an extensive PDF User’s Guide. This is a partial port of the previous version which was written in C# for the Windows .NET Framework. The […]

Class Diagrammer 2.1.0 Released

Wrapping up the Java port of my Tektosyne library (for computational geometry and graph algorithms), I recreated a number of UML diagrams for documentation, using my recently ported Class Diagrammer. That was its biggest project to date, and sure enough a large number of fixes and enhancements resulted. Class Diagrammer 2.1.0 is now available for […]

JavaFX Pane Clipping

Most JavaFX layout containers (base class Region) automatically position and size their children, so clipping any child contents that might protrude beyond the container’s layout bounds is never an issue. The big exception is Pane, a direct subclass of Region and the base class for all layout containers with publicly accessible children. Unlike its subclasses […]

JavaFX Spinner for Numbers

The JavaFX version of the popular up-down control is called Spinner. Like its Swing progenitor JSpinner, this control is much more flexible than a typical numerical up-down control. Spinner is designed for arbitrary sequences of objects, with number ranges constituting merely a special case. This has some unfortunate consequences when you do wish to make […]

Civilization VI Released

I got Sid Meier’s Civilization VI a few days ago, shortly after its release. So far I’ve played the tutorial as well as two games on Prince, one with six civs where I won a science victory and another with four civs that I aborted halfway through. First a technical note on the one serious […]

Java Method Reference Evaluation

Along with lambda expressions, Java SE 8 introduced method references as a shorthand notation. These are mostly used to reference static methods (e.g. Double::toString) or constructors (e.g. String[]::new), and these uses are straightforward. However, method references to instance methods can yield results that differ from lambda expressions in surprising ways. This is because the invocation […]

Gehlen’s Moral & Hypermoral

Moral und Hypermoral (1969) is the final work of German philosopher Arnold Gehlen (1904–1976), today somewhat forgotten except among German philosophy students and niche conservatives. I confess that I started reading him myself only recently, obviously far too late. He’s well worth a recommendation, and in this spirit I append a translation of the beginning […]

Duhem’s Aim and Structure of Physical Theory

Aside from his work as an eminent physicist, Pierre Duhem (1861–1916) produced “massive groundbreaking” publications on medieval science (which I have yet to read) and a classic book on the theory of science, La théorie physique, son objet et sa structure. The original (1906) is available on, and so is the excellent German translation […]