mcdonaldland » 2008 » January

Backwards compatible languages are a myth

25 01 2008

In the theoretical sense, the notion of backwards compatibility in programming languages is sound. However, when we try and apply this theory on a universal scale we begin to see a number of tiny breakdowns that point towards the reality that the concept of backwards compatible software languages, at least from a universal perspective, is a myth.

One of the most notorious of languages to embrace the concept of preserving backwards compatibility is Java. However, Java does not absolutely preserve backwards compatibility, despite their claims. The most prominent example of this is in the upgrade from J2SE 1.4 to 1.5. Anyone use ‘enum’ as a variable name in their code? If so you broke. Perhaps I am misinterpreting the true meaning of backwards compatible, but this does not seem to fit.

However, just because your application falls into the realm of a backwards compatible one doesn’t mean that you are set. Any application that uses a third party library that proves to not be backwards compatible is doomed as well. Unless there is a new version of your library that integrates with the upgraded language, you have the ability to fix the library, or have a substitute library you can use, your upgrade is doomed.

The concept of backwards compatibility is a good one, however everything should be in moderation. When the adherence to this rule comes at the cost of the proper implementation of language features, as Bruce Eckel discusses, it can be argued that the notion of backwards compatibility is more of a long term bane than blessing. If the features of the language upgrades are good enough people will upgrade, regardless of whether they have to do a little more work. One look to the recent Ruby or Python additions are proof of this.



Site was down

24 01 2008

Sorry to anyone who tried to access my site earlier. My host seems to have had a moment of incompetence.

You can read the transcripts of this drama by clicking the “Ticket #” links as you read along.

I have been in contact with them lately (Ticket 1) trying to get everything working so that I can host a Ruby on Rails application and have been having quite a bit of trouble. I finally figured out how to get the apps up to the server, configured everything, then it wouldn’t start. So I filed a ticket last night (Ticket 2) to fix this. Everything was working fine this morning with my ruby files sitting on the server, useless.

Around noon today (queue the tension building music) I went to my site to find a generic site is having difficulties page. What!?!? My bandwidth is fine, I didn’t violate any terms of service, the server is up - what is going on? So I file another ticket (Ticket 3) and the struggle really begins. I ended up waiting half an hour before picking up the phone and calling, where I spent another 40 minutes on the phone waiting for an answer. The answer I got on the phone was that it was a mistake and they were fixing asap, which differs greatly from Ticket 3.

I am speculating here but am relatively certain that I am right about what transpired. The support crew changed some things so that my RoR applications would work then launched my ruby apps on my behalf. This caused a CPU spike, which I knew nothing about b/c I had changed nothing, that caused them to suspend my account.

Four hours later and my site is back up. I have removed the links to my host from my blogroll and plan on cancelling my reseller account through them. I sent an email to the management email address detailing the problems I have had but I am still really pissed about this.

Can anyone recommend a GOOD host that will support at least PHP and Ruby on Rails? Java too would be nice but I know that is pushing it…

=========================

2/13/2008 Update

I never heard back from the “Manager’s queue” and found my site to be down again today. They did manage to fix the problems listed in this post and got me up and running, however to this day I am apprehensive about putting any ruby apps on my system. I would not recommend ANHosting or MidPhase. The price is great but the service sucks.



Images

21 01 2008

After reading one of Mark Turansky’s latest posts I remembered an application I wrote a while back that fit into the same image category. His post describes a script he wrote that will download pictures from a camera and sort them. Unfortunately I didn’t have this script (until now) and through multiple transfers of the image library from one computer to another I found myself with many duplicate images.

So some time last year I threw together a simple C# application (sorry non-MS users) that will give you a list of all the duplicate images on your system as well as a quick way to view them to verify they are the same and a way to delete them. The application uses the time stamp that the image was taken to determine likeness. If you have your camera take burst pictures then you will likely see a lot and this is probably not the application for you. However, if you take normal pictures then this can help ensure that you don’t have a bunch of duplicates floating around.

Image Organizer

This code/application is free to use and distribute with two conditions:

1. If it is going to be used in any way to make money you must get my prior written consent

2. Leave the copyright and distribution rule info in place in all places it is found.


Download source: Image Organizer - C# Source

Download Windows installation files: Image Organizer - Windows installation files

Enjoy!