Java was once the hottest thing since sliced bread. From the very beginning it was said to be platform independent (meaning, you could run it on Intel, Motorola, ARM, or whatever else you wanted) and architecture neutral (it was designed to ignore what it was running on top of). The dream was that you could take whatever software you'd written and compiled into Java bytecode, put it onto whatever system you had as long as it had a Java runtime environment, and it should work. "Write once, run anywhere" was the motto.
A couple of weeks back I decided to upgrade the YaCy installs running on Leandra to the latest supported versions, because they'd been lagging behind for a while. Due to the fact that they're enterprisey Java web applications and I can't readily get hold of any live chickens to sacrifice, I'd been putting it off as much as possible.
As it turned out, the lack of sacrificial barnyard fowl wound up being a crucial factor in how things transpired.
The first install that I upgraded was an install from source code and was indexing my personal library. It got re-indexed …
The only thing that Java coders spend more time on than the user interface is the code in the installer that detects which variant of the JRE you're running and errors out because there are three extra characters in the canonical name of the JRE binary? Wasn't the whole point of Java to have a language that could be implemented everywhere and execute in any runtime environment that adhered to the spec?
Coding with a teddy bear in your lap helps immensely.
IPtables for the v2.4 Linux kernel series doesn't understand virtual interfaces (a.k.a. IP Aliasing). If you've never seen this before you can take one interface, say eth0, and bind an IP address to it, for example 192.168.1.1. Under the v2.4 kernel series you can bind more than one IP address to an interface, which creates a virtual network interface. If I bound a second address (10.0.0.1) to our network interface above you'd see in the output of /sbin/ifconfig eth0 …