Oracle changed the distribution terms of TZUpdater from free (as in beer) to available only to paying customers at least half a year ago.
It should be noted, though, that this largely affects only users that for some reason can't update their JRE and are lagging behind the latest version. Oracle still provides up-to-date versions of the TZ data with the latest JRE.
It's not a big issue since one could use IBM's TZ updater tool or compile the TZ data from the raw Olson TZ database using javazic.jar available from OpenJDK.
It strikes me that the organizations that can't update to the latest JRE are the really large enterprises still running IE6 and so on. I think one client we worked with was still stuck on Java 1.4. I imagine that's the target of this latest change.
>It strikes me that the organizations that can't update to the latest JRE are the really large enterprises still running IE6 and so on.
Not necessarily. I know quite a few companies that have stabilized their code against a particular version and lack the manpower and/or the money to constantly upgrade and deal with the newly introduced bugs in newer versions. They usually do the upgrades on a schedule (eg. once a year or every 18 months).
For most major deployments changing to a new version of the JVM is a non-trivial task.
I never understood why the system-wide timezone database, at least on UNIX-like systems, wasn't used by Java. Why does Java need its own timezone database/database format? Why do I need to install new timezone databases on my Linux system that runs Java? Why can't the Olsen tzinfo files be installed on systems where the OS provider doesn't provide them?
It seems to me that a strength of the Java should be it's ability to only reinvent-the-wheel where necessary, and simply provide a thin compatibility layer over existing wheels on systems that already had them.
I mean, they already have different low-end implementations of "draw this shit onto the screen" for X and Windows..
Yes, that is right. So use the tzinfo on systems where it exists, and restrict the more complex implementations of the same interface to systems where it does not (Windows).
But how can you rely on tzinfo and your custom implementation behaving the same? How do you know what version of tzinfo you're running against? What if it changes?
The expensive, costly answer is to rigorously test each version and keep up to date with every change on an external dependency managed by a organisation you have no control over.
The other answer is to just use your package everywhere.
If you have to support common functionality on operating systems ranging from Window XP to Windows 8 (so a 12 year range), and deal with all the bugs within, along with most unix systems, you would start implementing a lot of things yourself.
There was no wheel to reinvent here, the tzinfo data files could have been installed on Windows. They didn't reinvent a wheel, they built a jalopy when there was a perfectly usable high speed rail going to their destination already available.
Really, the tzinfo files could have been distributed with Java, and then linux packages could have removed them and symlinked the paths where java expects them to where they are actually installed.
Indeed. The time zone database is managed by IANA [1] and is the de facto standard of time-zone management, and used by almost every platform (including GNU, iOS/OS X, Android and *BSD) [2] except Windows. The database itself is in the public domain. For Java, it looks like Joda Time implements tz compatibility.
That's one of the reasons Java ships its own; if some systems have different or absent system databases, Java's should still act the same as it does anywhere.
Lawyer-resistance; remember the situation a year or so ago when the tzinfo files were the subject of a patent claim? Oracle's weren't at risk because they have lawyers on retainer.
Oracle's files are based on the tzinfo files, and are just as vulnerable. If anything, more so because Oracle has a lot more money than the tzinfo maintainers.
No, this is about write-once-run-anywhere compatibility as the other responses say.
(Incidentally, it was a copyright claim, not a patent claim, but in this regard they work the same way.)
> Oracle's files are based on the tzinfo files, and are just as vulnerable. If anything, more so because Oracle has a lot more money than the tzinfo maintainers.
Oracle's got enough cheddar to take it to court or settle out-of-court like their business depends on it.
Not to take away from the greater import of this, or the issues of legacy code, but as noted in the Slashdot discussion, Joda Time (http://joda-time.sourceforge.net/) is a good replacement for the official time stuff.
They really really want you to get off the dangerous, broken JRE 6 version.
They're maintaining the most dangerous client software in the world, and they can't break the language with quarterly releases of exciting new features. They have to love people forward into new releases, or maintain the old releases forever. TZUPDATER is maybe the only thing they can kill to incent people to upgrade. And they're not killing it, they're letting you pay to keep running old, vulnerable versions of software.
Slashdot OP misses the point. You're supposed to upgrade your runtime periodically. They're years behind.
"Slashdot OP misses the point. You're supposed to upgrade your runtime periodically. They're years behind."
Never supported mission/life critical apps in an enterprise that require an older runtime? It's not the users fault that a dev built an application that's only compatible with a specific runtime version.
We should get rid of time zones entirely. They cause problems to no end while providing no real benefit. People would get used to the fact that the sun usually rises at 11PM in New Delhi, for example.
The earth's axis is tilted so in addition to needing to know the timezone and the date in a solar sense, you also need to know the latitude and need to be able to combine those three things in your head... in practice you just look it up instead.
Oh, that's easy: the sun never sets on the British empire.
Seriously, though, time zones do not help with that. The sun sets at nine in the evening in Leicester in July. Can't be helped, the length of the day is different.
Time zone info doesn't just pop into your head. You have to look that up too, or at least receive it somehow. Sunrise data could be obtained the same way. The difference being, of course, that you wouldn't need to look up anything that didn't care about the sun, while time zone info needs to be known to make sense of any time.
Getting rid of leap seconds and summer time, that would do it for me. BTW China has only one time zone, so they are kind of practicing what you suggest.
Right now we all know when people when the sun rises and when people wake up in every country, because of local time. We'd have to remember that the Indian office doesn't open till 11pm- how is that any different from just remembering a time zone?
Most people in the world don't ever leave their time zone, so why should we get to inflict these changes on them because we're bored with programming them?
How difficult would it be for someone to create an open-source version of this tool? From the readme for the now-paywalled utility, it seems that the utility only modifies a single directory in a predictable way... http://www.oracle.com/technetwork/java/javase/tzupdater-read...
You may not care about this, owning your own personal Hawaiian island, but there's a reason people give a shit about Bill Gates and even that notorious asshole Steve Jobs, but you, you're just an object of derision!
Maybe next time you should wait before shooting from the hip with some pointless rant.
Other people have already provided some real insight into the issue. It doesn't sound like it's a major issue. Larry just wants people to pay or do the work themselves, if they're going to lag behind on older versions. It costs him extra money and development wasted time. He should make it even more painful so companies must upgrade. When I hear people tell me they're still using Java 1.4, I find it very hard to think they're not being extremely lazy.
Outside the SaaS world, software often runs for much longer than the developer supported period - it's not rare for the software company to go bust way sooner than the software itself.
If the requirements include "keeping time with up-to-date knowledge of time zones without costing us money", guess what, the requirements now mandate a code change.
Requirements may not change, but environments do, and continuing to meet requirements in the face of changing environments is something that will often mandate changing code or requirements.
When the world shifts, something often has to shift along with it, lest the whole thing break.
Time zones are not code, they are data in a defined format that the code is already equipped to handle. Updated time zone data is not a reason to change code.
If you knew me IRL, you'd know that's not my MO (not shooting from the hip with a rant, though there was a point to it, sir)
Besides, like you said, there were other people to provide real insight into the issue. My post was just what it was, and you can downvote it accordingly...
So Steve Jobs' reality distortion field should be able to have everlasting effect then? He was an asshole by all accounts in the workplace (I won't extend this comment to his personal life because on accounts, he seemed nice in his personal life). He was demanding, hard-driving, effective, and generally right. But he was an asshole. I don't think he gave a damn what people thought about his personality, because he could often say he was right. That doesn't change the fact that he was an asshole by all accounts in the workplace.
While most of your examples do suggest assholery of one kind or another, I am not so sure about the liver (note, not kidney) transplant. If you were a billionaire and you needed a liver to survive, wouldn't you pay whatever it cost to get that liver ?
Maybe the world is a bad place and money shouldn't enter the equation at all, but resisting the temptation to take advantage of your wealth in this situation is not an asshole/not asshole test. It's more like a saint/not saint test.
Unfortunately you're asking the wrong guy, because I wouldn't.
I'd instead turn my formidable wealth towards "grow me a new liver tech" while waiting it out on dialysis. Shitty for me maybe, but I'm a big believer in egalite, as the French put it. I could then probably turn around and roll-out the new liver tech at an affordable cost for everyone and recoup my R&D, if I had survived long enough.
Well good for you, but this doesn't address my point. My point is that your decision would make you a saint. Making the other decision would make you a non-saint rather than an asshole.
Incidentally, you really need to let go of the kidney/dialysis thing. There is no equivalent of dialysis for liver disease. If your liver stops working they cannot hook you up to a machine, you either get a liver transplant in a day or two or you die.
you're right, I just woke up and my first thought was "why the heck did I talk about dialysis" when we were discussing livers. Also weird that it was my first thought upon waking!
my only excuse last night was that it was late, I was exhausted from a long day, and I kept conflating the two for some reason
Don't shoot the messenger. I'm just stating the wisdom of the ages (Western Civ.) I would say it means the dead can't defend themselves. The dead are retired from the game and resting in peace. I would also guess that it means you should take your fight to the living acolytes where your words might have more effect. Also, I don't see Jobs' reality distortion field having much influence anymore: Apple seems adrift.
To be clear, I wasn't shooting the messenger, only the messenger's message. You'll note I didn't do any shooting at you directly. :) And I think there is a lot to be gained from learning from dead people, both their positives and negatives. Whether or not they can defend themselves is of little consequence to me, as I think they can contribute many lessons to society from beyond the grave if society is allowed to examine their past lives.
I didn't feel shot at, and I agree with you that we can learn from the dead. Calling Steve an asshole at this point doesn't seem right to me. Another phrase comes to mind is "Let us now praise famous men," which Wikipedia tells me is from a passage in the Wisdom of Sirach (2nd century B.C.) that begins, "Let us now praise famous men, and our fathers that begat us." I better get off this kick because I have work to do! The wisdom of the ages is a fascinating subject though.
It's really brave of you to speak so freely about a dead person. Maybe you and all of the other revisionist armchair historians can grab coffee after picking up your unemployment checks!
How is this brave or revisionist when most of the material I would cite was written when the guy was still alive? And I didn't exactly see any defamation suits? He didn't care because he was in a place where he didn't need to care. I'm not taking away from any of his genius, success, or vision at all. Stop with the patronizing tone.
Given all the nasty stuff we've seen Linus Torvalds write on public forums, should we say that Linus was absolutely a nice guy after he dies? That would absolutely be revisionist history. Speaking the truth would not take anything away from the amazing contributions Linus Torvalds has bestowed on this world, nor his self-evident genius.
This is not a correction, as the provided translation is fine. But because I have a personal interest in the subject, here's one that tracks the Latin a little more closely:
De mortuis [On the dead, ] nil [nothing] nisi bonum [unless it is good] dicendum est [should be said].
I've heard this phrase floating around my whole life, so I was prompted to look it up on Wikipedia. I used the freer translation. According to Wikipedia, it's a Greek aphorism τὸν τεθνηκóτα μὴ κακολογεῖν (“Don’t badmouth a dead man”) attributed to Chilon of Sparta (ca. 600 BC), one of the Seven Sages of Greece.
As for Ellison, I think the Christian warning about mammon applies:
"Lay not up for yourselves treasures upon earth, where moth and rust doth corrupt, and where thieves break through and steal: But lay up for yourselves treasures in heaven, where neither moth nor rust doth corrupt, and where thieves do not break through nor steal: For where your treasure is, there will your heart be also. No man can serve two masters: for either he will hate the one, and love the other; or else he will hold to the one, and despise the other. Ye cannot serve God and mammon." - Matthew 6:19-21,24 (KJV)
I find it unlikely (though I have no Latin training beyond high school). That "dicendum" isn't appearing by itself; it's part of a syntactic construction, the horribly named 'passive periphrastic' with "est".
> It is used to indicate that someone or something (the referent of the noun it modifies) needs or deserves to be the object of an action.
Also some of this spills into common names of people today:
> The name Amanda is the feminine gerundive of amare ("to love"), and thus means roughly ... "worthy of being loved", ... Similarly with the name Miranda; ... "worthy of admiration" ...
And the truth is usually much more complex than a quick message like that allows.
It's easy to forget, but even very powerful people are just people and are prone to each and every failing less powerful humans, such as you and I, are.
It should be noted, though, that this largely affects only users that for some reason can't update their JRE and are lagging behind the latest version. Oracle still provides up-to-date versions of the TZ data with the latest JRE.
It's not a big issue since one could use IBM's TZ updater tool or compile the TZ data from the raw Olson TZ database using javazic.jar available from OpenJDK.