JDBC, MySQL and the GPL
I discovered something really quite annoying today. The JDBC drivers for MySQL have been re-licensed from LGPL to GPL (happened quite a while back actually). Now while it’s their code and they can do with it as they please, that’s really, really annoying. I’ll be moving all my development away from MySQL in the future. Here’s the problem. I came up with a really cool new feature for a product I’m working on which involves interacting with a variety of databases and inevitably someone will want to use it with MySQL. This feature would be a small add-on to a much larger commercial product. In order to use the official MySQL drivers though I’d either have to pay MySQL or GPL my application. Neither of which is a realistic option considering how insignificant this one feature is in the overall product. So now I’m developing the prototype with Microsoft SQL Server and it’s going great. MySQL, there appears to be a bullet shaped hole in your foot.
Masako, Forks and Stuff
Crazy Apple Rumors updated the look of their site today in what would have to be one of the most disastrous site overhauls I’ve seen. The all new forums were instantly filled with a whole bunch of people complaining about the new look of the site. Fortunately, Crazy Apple Rumors being as it is, the conversation rapidly turned to the joys of having Masako (the CARS web designer and rumored to be most attractive and feminine) poke you with a fork – apparently she does that kind of thing a lot. It does occur to me however that judging by the general accuracy of rumors at CARS, Masako could in fact be a fat middle aged balding man with no fork. I’m not sure if the thought of a large number of people lining up to be forked by a beautiful woman is more disturbing that them being turned away because the beautiful woman was neither beautiful or womanish. Actually, most disturbing is probably the fact that most of them would still line up for the forking by the fat middle aged balding man with no fork. Anyway, go read the comments, they’re quite funny with the CARS staff all getting involved.
E-Petitions
I was going to comment on how good it was to see the Queensland Government trialling E-Petitions, until I noticed the 12 month trial started in 2002 and they just haven’t bothered to update the website since. Sigh. On the plus side, the E-Petitions are still up and there’s one that’s still current, so I guess the trial was considered a success. Good stuff. You can view the currently open petitions here.
Shock Horror!
The Brisbane City Council in conjunction with the Queensland State Government are building a rather expensive Youth Recreation Centre across the road from the recording studio I record in. There’s very little information available about what they actually intend to do with it but since I’ve been organising quite a few youth activities lately I thought I’d see what the plans were and try to take advantage of the new facilities to make staging youth events easier. I called the manager of the centre who, it turns out, is actually the manager of the sporting complex next door and really doesn’t know too much about what’s going to happen with the youth centre. When he knows more he’ll get back in touch with me, but apparently there’s negotiations with the Policy Youth Club to run the place and provide activities to make use of the new building. No real surprises so far. I thought I’d see what information I could gather from the local council so I call the councillor for my ward Kerry Rea and asked her. Much to my surprise I got straight through to Ms Rea herself, no waiting on hold, no secretaries, no messing around. Then not only was she polite and friendly she offered to track down information on who I should speak to about the youth centre and get back to me by the end of the week. So, cudos to Ms Rea, that’s the way government is supposed to work. I wonder what things will be like after the council elections next Saturday….
Fighting Kernel 2.6
I’ve been playing with Linux on my powerbook, mostly just for something to tinker with. Generally it runs pretty well, but I don’t have a lot of space on my internal drive and wanted to use my firewire hard drive for /usr. This is a major mission apparently. After many hours of compiling kernels with massive struggles in finding a set of options that will actually compile, I managed to build a 2.6 kernel. Sadly it freezes the machine during boot. It seems to not like running discover to automatically probe devices. I’ve removed discover and will be installing my modules by hand from now on – most things are compiled into the kernel anyway. So I’m finally up and running on 2.6. HFS plus support went AWOL so I’ve now applied those patches and am recompiling again – hopefully without drama this time. On the really cool side, the sleep light on my powerbook flashes when the hard drive is accessed.
Follow Up Arggggg!
There’s been a few comments to my rant on choosing the right language for the task that I wanted to comment on.
Firstly the simple one from hammet:
Dude, you can say you hate C#, not .Net. .Net is not a language.
No, I definitely hate .Net. I still can’t tell you what went wrong with it or where to point the blame but my short spell of .Net programming rates as my most hated moments in computing. I have no particular problem with C#, it’s a language that’s very close to Java has some nice ideas, leaves out some nice ideas and makes some good and some bad design decisions – so be it. My beef was definitely with .Net because it didn’t matter if I used ASP.Net, VB.Net or C# nothing went right. A good deal of the blame definitely lies in my not knowing the language or the environment but I definitely shouldn’t have been able to waste a full two weeks getting obscure error messages that even intensive Googling and asking experts couldn’t sort out. I suspect something went bad in my Visual Studio.Net install which then broke something in my .Net framework install or in Windows itself. .Net has never worked for me since, nor has my IIS installation been all that rock solid. Oh well, maybe next time I have a need to use .Net it will go better.
Long Live The Dogcow
It appears that Apple have killed the dogcow. A highly endangered animal that was taken under Apple’s wing and blossomed in the days before OS X, the last known wild Dogcow now appears to have died. The soul remaining vestage of Doggycowiness (sic) is TechNote 31 which now can only be found in captivity at Google (or is that cacheivity?). Sadly because Google doesn’t cache images, the actual Dogcow that was in captivity in TechNote 31 at Apple now appears to be dead. The body of that last Dogcow cannot be found below: Let us all solemnly recite the great Dogcow muse:
Arggggg!
I’d seen a link to this a few days ago and it was presented in such a way that it seemed like an intelligent discussion of the relative merits of C++ and Java – certainly the reply I read was. I didn’t have time to read it until now and I’m extremely disappointed. If I could remember who linked to that rant I’d probably give up reading their blog. I’m not going to bother rebutting most of the article, there are plenty of incorrect statements in it just as there are plenty of incorrect statements in every article like it comparing any two languages. How hard is it to make people understand that they should choose the right language for the right job? XSLT is a good language for manipulating XML, Java is a good language for cross platform work, high level apps, applets and a bunch of other stuff, C is good for writing low level stuff, speed critical apps (or speed critical sections of apps), as is assembly, C++ is good for a bunch of stuff, perl is great for a bunch of stuff particularly quick little scripts to manipulate text files, shell scripts are great if you need to perform a bunch of file operations or combine a bunch of small pre-existing tools. Prolog is good if you need a solid logic processing/reasoning engine, HyperCard is fantastic if you want an easy to comprehend language with extremely rapid development, MetaCard is great if you need a cross-platform HyperCard or just hit up against HyperCard’s limits. Javascript is a great language if you need to add dynamism to web pages, Visual Basic is great if you want a rapid prototyping language or a simple GUI tool, .Net is probably even useful if you can make the #*(#@ thing work… I’ve programmed in all of those languages and probably many more, they all have strong points and weak points but if you want to succeed at using any of them, you have to stop trying to use them like they were your “favourite” language. You will always think Java is crap if you try to write C or C++ code in it – it has a different paradigm and a different way of doing things. By the same token you will always hate .Net if you try to write Java code in it (trust me I hate .Net because of that). The idea that if you can program in one language you can program in any language by just learning the syntax is completely wrong. You have to learn the syntax, then you have to learn the paradigm, then you have to learn the best practices, then you have to gain experience and finally you have to accept the philosophy of the language and stop trying to beat it into submission. In short, learning a new language is just that – a learning process. You can’t expect to know everything and you must go into it assuming nothing and learn from scratch – everything you have come to expect and assume about your programming language may have changed and you need to find out if it has or not. If you find yourself criticising the programming language constantly you’re doing it wrong. Thousands of people are most likely happily using that exact same programming language without cursing and swearing – do you really think you know better than all of them?
Strange Bug Reports
Sun released Java 1.4.2_04 – a bugfix release today. Reading through the list of fixed bugs I noticed this one (log in required). Here’s the bit that caught my eye:
Expected results: Java would work for these tests.
Note:
- Mature teen/TCP, Adult/TCP and Adult/modem are working for the same pages.
- Mature teen/modem is working when IE option Java: Use Java 2 v.1.4.1_02 is unchecked.
- Mature teen/modem is working when other JRE version (e.g. 1.4.0_03) The bug is complaining about Java not detecting the proxies that are set by a dial-in porn service. I imagine that was a very well tested bug fix….
Musical Update
I haven’t had a lot of time to continue writing my musical but none the less it is progressing. I’m pretty happy with the first act now and have a plan set out for the second. I’m a little concerned that it might be a bit depressing though. It can be tough to confront issues like adoption, abuse, homelessness and alcoholism without becoming very depressing. At the same time it’s important not to gloss over the issues or the whole musical just becomes too surreal or worse, becomes a Disney movie…. It’s interesting to see a distinct style developing in my writing as well with a number of recurring techniques being used, mostly subconsciously, through the musical. I’m particularly pleased to see that these techniques aren’t just a copy of things I’ve seen elsewhere – they’re actually fairly unique concepts, if not in themselves, in the way they are used. Still, the greatest challenge for me will be weeding out all the really cheesy lines that seemed like a good idea at the time but just don’t work when actually spoken by the character. That task is yet to come. Anyway, back to the MarchFest website, the program went up this evening.
MarchFest Update
Things are rocking along with MarchFest 2004 though it, combined with product releases at work, have been keeping me extremely busy. On the plus side the performer list is now up at the MarchFest website. Information on the fashion parade and art gallery to come soon hopefully. Don’t forget to mark your diaries to attend on the 20th!
A Slight Oversight
Some guys noticed that there’s RFID tags in US currency. All very scary and such, but there’s one quote that shows a bit of a lack of research:
What we resent is the fact that the government or a corporation can track our ‘cash’. Credit purchases and check purchases have been tracked for years, but cash was not traceble until now… Maybe US currency doesn’t have this, but on every Australian bank note, there’s a unique serial number – has been for many, many years. This is used to track cash. It’s simple and effective, banks will often scan the serial number to ensure the notes aren’t on the stolen list and the numbers are capable of being read automatically. RFID tags just mean you can do it at a distance, but have the down side of not actually being able to tell you who has the note or what they’re doing with it because of the large number of notes that are likely to be around at the time (think supermarket checkouts). In other words, your cash transactions are still effectively untraceable.