FireStar are suing RedHat over patent violations in Hibernate. Since Hibernate forms the basis of parts of the EJB 3.0 spec, it would seem that this patent also covers all EJB 3 implementations. Scary.
I just finished the four-part Django tutorial, and I’m impressed. Here are my initial thoughts:
Some neat Django features I’ve yet to explore:
It’s impossible not to compare Django with what I know of Rails. So far, it would appear that Rails has two features Django does not:
The WinFS team’s latest weblog entry reads like a PR intern’s first assignment. You know, the first assignment where the intern and his mentor sit down with the intern’s personal best effort, and the mentor patiently explains what and why, while covering most of the page in red pen, and pretending not to notice the the tear in intern’s eye.
Their first paragraph says:
Today I have an update about how we are delivering some of the WinFS technologies. It represents a change to our original delivery strategy, but it’s a change that we think that you’ll like based on the feedback that we’ve received.
Skipping past five paragraphs about how bits and pieces of WinFS will be rolled into other products, we finally come to the second sentence of the second last paragraph, where we find out what will happen to WinFS:
Since WinFS is no longer being delivered as a standalone software component,...
I suppose non-delivery counts as a “change to our original delivery strategy.” Keeping in mind that this is the same product that Microsoft were touting as recently as two Tuesdays ago, I don’t see how they can think their customers will “like” the change.
This announcement comes across as typical, mealy-mouthed, weasel-word corporate dishonesty. Really, Microsoft, your customers just aren’t that stupid.
The WinFS guys would have been better off with a pithy three paragraphs announcing the axing of the product, quickly followed with another about where the technology was going. See Tim Bray for inspiration.
Update: Well, it turns out that Charles beat me to it, and did a better job of it. As usual.
The Eclipse code formatter discourages developers from writing statements that are longer than one line, through the simple mechanism of doing a really bad job. Take, for example this long statement:
g2.drawImage(
map,
(int) bounds.getMinX(),
(int) bounds.getMinY() + inset,
(int) bounds.getMaxX(),
(int) bounds.getMaxY() - inset,
crop,
0,
map.getWidth() - crop,
map.getHeight(),
null);
Here is what the Eclipse 3.0 code formatter would do with that code, if I let it:
g2.drawImage(map, (int) bounds.getMinX() + inset, (int) bounds
.getMinY(), (int) bounds.getMaxX() - inset, (int) bounds
.getMaxY(), 0, crop, map.getWidth(),
map.getHeight() - crop, null);
The Eclipse 3.2 code formatter is slightly better:
g2.drawImage(map, (int) bounds.getMinX(), (int) bounds.getMinY()
+ inset, (int) bounds.getMaxX(),
(int) bounds.getMaxY() - inset, crop, 0, map.getWidth() - crop,
map.getHeight(), null);
But then it completely chokes on this declaration, refusing to split the line at all:
private Map<IPropertyChangeListener, Preferences.IPropertyChangeListener> listeners = new IdentityHashMap<IPropertyChangeListener, Preferences.IPropertyChangeListener>();
Funny thing is, I’m sure the Eclipse 2.0 formatter was a lot better at splitting lines in sensible places. Anybody else notice that?
More seriously, every time it happens, I’m remined of one the Angels’ best anthems. (Hear a crappy, low-bandwidth sample at Amazon.)
Sarah shares her knowledge of the US and UK cat-food industries. Of course the Australian industry would be completely different.
The Open Source Developer’s Conference is on again this later year, in Melbourne, 5th – 8th December, and the call for papers is out. If you develop or use open source software, this is a conference for you.
Regular visitors will note that this website has changed its name from cardboard.nu to bright-green.com. I’ve been meaning to make the switch for some time now, partly so that people no longer look at me funny when I spell out my email address, and partly because the .nu registrar is a monopoly, with fees to match. The cardboard.nu name doesn’t expire until August, giving everyone time to update their bookmarks.
There is also a new look to match the new name. It makes use of Yahoo’s Grids CSS, which gives reasonable results on both Firefox and IE. If you are a bored geek, you might try twiddling your browser font size up and down. I’m interested in feedback on how the layout works on Safari and Opera.
The title picture is cut and paste from a painting by Jean-Baptiste Camille Corot, that I found on the Wikimedia Commons. It turns out that using unsharp mask to touch up multi-million dollar paintings is fun.
My new email is alang-at-bright-green-dot-com.
Gosh. When I read the latest on Tim Bray’s weblog, I thought he must’ve finally added a comment facility, and wanted to stress test it. Sadly, though, no – you still can’t leave comments on Tim’s blog.
I’ve been developing with mostly open-source software for the last two years, and it’s made me soft. I realised this today, when I encountered a problem with the ESRI Map Objects libraries I am evaluating. An event listener that should – at least according to the documentation – be firing, isn’t firing.
Having worked with open-source software for so long, my first reaction is to have a look at the library code. With Spring, for example, there have been several cases where a quick examination of the source showed me that I was misinterpreting the reference manual. A quick tweak to my code, and I was off.
As it is, I’ve now got to go to the ESRI “self-help” forums. If there’s no answer there, we have to decide whether to ditch MapObjects, spend a day investigating clunky workarounds, or buy something that’s not working, with support, in the hope that support might might fix it. Wish me luck.
Update: I did find the answer via ESRI‘s self-help forums. Unlike normal Swing listeners, listeners on ESRI-provided Swing objects are only weakly referenced. If you want a listener to keep working, your code must maintain an additional strong reference to it. Words. Fail. Me.