Why Open Source Java is Good News

I prepared some notes on a few topics and they weren’t used that much so I thought that I’d use them here as it’s been a while since I said anything useful on anything other than the miniutae of any particular issue.

So, Sun finally released the Java source code under the GPL. Great News. Why? Well, here follows a slightly rambled list of opinions on the topic.

I don’t use Java particularly. Not on the desktop or the server and most people don’t really care about Java applets that much any more, but Java is pretty popular on embedded devices such as your mobile phone to play games and TV set-top boxes. Which I would guess is Sun’s main source of revenue from Java and I believe will be unaffected.

The good news for the open source community is that we get a solid bunch of code that we’ve had to largely avoid in the past due to licensing and redistribution issues. We have a platform we can use at last which will be easy to install and redistribute. We can now run Java apps easily – the Azureus bit torrent client, Freemind, the Java components of Open Office.org, the Apache Tomcat server, Open Exchange which builds on Tomcat and so on. Not exactly a raft of Java applications, but then we’ve never had a Free and complete Java implementation before. Java has always been something which has been viewed with suspicion under Linux.

Not only is the Open Source and Free software community now free to install Java and Java applications, but we now have the possibility to use Java as a language and a platform properly for the first time. The Java community can now contribute optimisations and features that they’ve been waiting for, which will only make Java better and prevent it becoming obsolete on the desktop and in the server room in the face of .NET, Mono, PHP and Python. It also gives us a powerful application server engine.

One of the big cliffhangers for whether Sun would Open Source Java was whether it would be forked, leading to 2 or more incompatible, competing Java implementations. I don’t believe this to be likely in anything other than specific uses.

There are already several non-Sun Java implementations such as:

  • Blackdown
  • Kaffe
  • Classpath
  • IBM JDK
  • Others

Most people aren’t using them. The Sun implementation is the standard and reference implementation and who wants to use a non-standard version. Certainly, Blackdown and Kaffe have been around for a few years and latterly, Classpath and none have ever been complete or widely used.

The only likely scenario of a competing Java implementation being a threat to the Sun implementation is if the Sun implementation doesn’t give users what they want and who would be stupid enough to do that? Besides, this is the Open Source community, where you can submit your own features and extensions.
As I said, aside from embedded usage, server and desktop usage are Java’s other 2 main areas. Installation and redistribution have always been troublesome on Linux, as nobody can package it for you, you have to get it from Sun, run the installer script, wave goodbye to your ethics and then set up your path. Awkward and compromising. Or use an incomplete implementation or live without. Thats for your desktop, for the server, you probably can install it yourself and have your ethics wiped away by business needs or management decisions, but still these issues all made Java a more difficult choice on Linux and one which people weren’t keen to utilise or program with.

On Windows servers, you probably do everything in ASP.NET, on Linux you probably did everything in PHP, or more recently Ruby, Python or even Mono. Now we have Java too and we can use Tomcat and Jakarta. Java is at last now a viable option on the Linux desktop or for the glue in server applications.

Today I Have Been Mostly Irritated By…

…Stupid mail servers.

You see, while being a reasonably well balanced person, I tend to see through things quickly, particularly advertising, marketing, PR, promotions, special offers and those guys with the throwing games at the fair ground and shit songs, irritating adverts and crap, mindless TV programmes piss me off really badly so much so that I have to turn over the TV or radio to make it all just go away.

As you may have read here and here, I like tinkering with mail servers, there seem to be endless permutations to solving any number of problems. So, I implemented greylisting a few weeks back and it has worked well, I received compliments on how much the spam rate had dropped, in fact to pretty much zero. I estimate that at least 90% of email connections my main mail server receives are spam and we drop about 40% of that with spam blacklists, Spamassassin was pretty ineffective and caused problems under heavy load so I dropped it and replaced it with greylisting. Greylisting refuses every email connection the first time round and tells you to come back in a short while.

A core feature of mail servers is the ability to spool message to retry later. When the retry comes , if it is after a certain period of time, the mail server looks up in the greylisting table whether it has seen mail from you recently and if it has, lets the mail through. Simple huh? And a pretty common tactic. Most spam comes from virus infected Windows machines and the spam software on them (which you won’t notice apart from your Internet connection being slow) isn’t normally intelligent enough to handle retries, they are normally optimised for sending as much spam as possible, regardless of whether it reaches it’s destination.

So, what has pissed me off today is a client complained that they aren’t getting some mail. I look into it and find that in each case the sending mail server can’t handle retries. WHY NOT??? Because, probably, their administrators don’t know what they’re doing. In one case, I guess it’s a policy decision. That’s YOU Blueyonder, spam capital of the UK. But in the other case, it looks like a home hosted mail server run by people that don’t know what they’re doing.

In this case, I had to whitelist (that means automatically allow, for the non-techies) the servers in question to allow my customers to receive the mail.

So, aside from my other rants on the topic of mail administration above, if you run a mail server, make sure you can handle reties within a reasonable period, unless you have a specific technical reason not to. As a hint, make the first retry within 10 to 15 minutes and then another one after an hour.

Oh yes, in completely unrelated news, I have given up smoking again. Completely unrelated, as I say.

On the good front, it amazes me how useful David Watson seems to be. I’m almost certain I’ve never met him, but he seems to keep popping up with solutions to my quandaries. Such as here and here. And he’s a fellow bass player. Keep on being one of the most useful people in world dude :).