King Ludwig’s Walhalla

King Ludwig I of Bavaria (1786–1868) was the grandfather of Ludwig II (1845–1886) who eclipsed him in popular memory as the “Märchenkönig:” patron of Richard Wagner, Neuschwanstein castle, mysterious early death. Ludwig I was rather more mundane but left a much greater cultural legacy, simultaneously industrializing Bavaria – site of the first German railway in […]

Focusing a Woodlouse

I’ve recently moved to a house near a river whose banks are home to legions of woodlice. I know this because they apparently mistake the house for a tree and love walking up its walls, sometimes straying into the house through open windows. Most are ordinary small black pillbugs but today I spotted a magnificent […]

∞ Game Algorithms, Typography & Medical Science

Here’s a boatload of notable links from the last three months. I have another few on Java and photography piled up but they are parts of series which have not yet concluded, so I’ll post them later. Game Algorithms — Brad Wardell has blogged on diplomacy AI in Stardock’s upcoming Galactic Civilizations III, highlighting the […]

Programming Languages in 2014

With some delay, here’s my annual roundup of programming language rankings. One sad change from previous years (2012 edition, 2013 edition) is the absence of Andrew Binstock’s usual column, “Rise and Fall of Languages.” That had been published by Dr. Dobb’s Journal which has shut down last year. (Binstock is now EIC of Oracle’s Java […]

Yamaha RX-A1040: Virtual Surround Receiver

When I wrote about the audiophile Blu-ray player Oppo BDP-105D back in January 2014, I was using an otherwise fairly simple A/V setup with an analog amplifier for my stereo loudspeakers, and a separate headphone amplifier with virtual surround sound. In closing I mentioned Yamaha’s Silent & Virtual Cinema DSP technologies which might allow me […]

MIME Browser & Star Chess Updated

Following the recent release of Java SE 8 Update 40, I’ve updated my two open-source projects that currently use JavaFX to its latest version: MIME Browser 1.3.2 and Star Chess 2.0.1. In both cases, I replaced my homespun exception dialogs and message boxes with calls to the new dialog API. There were also a few […]

Logitech Multi-Device Keyboard K480

I recently stumbled over the Logitech K480 at the local electronics store. Apparently the keyboard had been released last September but I only noticed it now. The full name is “Logitech Bluetooth Multi-Device Keyboard K480” which highlights the most important feature: support for Apple Mac OS-X & iOS, Google Android & ChromeOS, and all modern […]

Java SE 8 Update 40 Released

Java Standard Edition 8 Update 40 is now upon us, and despite the “Update” designation this was a fairly massive feature release. You can find overviews at Java Source and Java Tutorials, and of course the detailed release notes. The changes I’m most interested in concern JavaFX, including accessibility support, new controls – more on […]

Core Java 8 for the Impatient

Cay S. Horstmann’s latest book on Java SE 8, Core Java for the Impatient (Addison-Wesley 2015, 480 pages), is a compromise between Horstmann’s brief introduction Java SE 8 for the Really Impatient (215 pages) and the traditional monumental Core Java tomes (2092 pages for Java SE 7). Rather than covering virtually the entire standard library […]

Loop Closures in Java & C#

The lambda expressions introduced in Java 8 can capture, or “close over”, any local variable that’s within scope and effectively final (Java 8 Language Specification §15.27.2, §4.12.4). Interestingly, this includes the loop variables of enhanced for loops, or for-each loops as I prefer to call them. Cay Horstmann mentions this very useful but non-obvious fact […]