Andrew Channels Dexter Pinion

Wherein I write some stuff that you may like to read. Or not, its up to you really.

February 27, 2004

Proper Numerical Data Types

Simon points to the 2nd edition of Code Complete which I had a quick look at and ended up downloading Chapter 12 on "Fundamental Data Types"

Which reminded me of a little pet hate I have been meaning to mention for a while now - the endless varieties of numerical data types I'm forced to deal with.

I'm an application developer, why should I care if it's a long int, a short integer, a float, a double or a 99 with a Cadbury's flake? I just want to input, store and display a number. I want to be sure that what I put in I get out, and that is it. Inappropriately sized number variables (and database columns) are the bane of my life and cause more boundary errors than problems they solve. I'm not even sure that specifying a variable as a short integer rather than plain integer solves any problems anyway.

Likewise in my database I want to be able to say that my column contains numbers. If there is a limit, such as a specific range or set of values, I can enforce it with a constraint. I don't care how the actual values are stored on disk, that is what the database engine is for. In a program I can enforce the rules with my accessor methods. But in the vast majority of cases I just don't care.

The different types of numerical data types that are present in modern programming languages like Java and databases like DB2 UDB are a throwback to times when resources were scarce and we, the application programmers, had to worry about every spare byte.

Well, these days my laptop has a gigabyte of memory and a sixty gigabyte hard drive so I really just don't care. Saving a few pennies now on storage can cost a lot more in the future. For instance a company of my acquaintance is now spending two person years of effort to enable their order management system to support eight digit product identifiers rather the six digit ones they currently use. The hardware cost to support this project is roughly the equivalent of one desktop PC. Had they had the ability to specify them as numbers they would have saved the development effort, but still had to fork out for the extra disk space.

All of which is just my Friday afternoon whinge, as well as a thank you to higher level languages like Python which get it right - most of the time.

Posted by Andy Todd at 04:10 PM | Comments (1)

Subversion 1.0 via Fink

Encouraged by Christian Schaffner's comments on my last post I cleaned up my iBook and re-installed Fink. I then enabled the unstable tree and typed;

# fink install svn-client

Voila, I now have a working subversion client on my Mac.

I'm also a bit sleep deprived because I kicked this off at about 9:30 last night and watched it install. Which took nearly three hours. That's a trifle long I'd say.

The reason it took so long, as far as I can tell, is that it involved downloading the source for 43 packages and then building and installing each one. The sooner a binary package is available the better.

Posted by Andy Todd at 03:04 PM | Comments (1)

February 20, 2004

Subversion 1.0

According to the status page Subversion is releasing version 1.0 on Monday. Which is nice. So I went looking for a decent Mac OS X client. Luckily for me there is one available via fink, I just hope it gets updated to the 1.0 release as soon as possible. Of course, a nice pointy clicky interface would be good too.

Why do I care? Well, I'm looking to set up a repository on my home network and was trying to decide which tool to use. I've used CVS, so I know its strengths and weaknesses. I looked at tla/arch but shared AMK's misgivings. I will keep an eye on its progress though. Discovering the milestone 1.0 release of Subversion was the deciding factor.

Right. I'm off to read the manual.

<Update>I spoke too soon. The fink code is in unstable, and I don't want to go there. I run unstable on my Debian system and I specifically bought the Mac to be my stable, sensible machine. Oh, and my fink setup is broken anyway because it tried to install X11 over my Apple X11 package. I think. I may have to burn the whole machine to recover, or possibly just de and re install.</Update>

Posted by Andy Todd at 02:20 PM | Comments (10)

February 16, 2004

Gerald the half a schema 0.1

Gerald is a schema comparison tool for relational databases. Currently it supports MySQL and Oracle.

Release 0.1 allows schemas to be read from the database data dictionary, stored in an internal model and then compared with another schema. In addition the internal model can be written to XML.

The same operations are also possible on schema components such as tables, views and sequences.

This is an alpha release and whilst it has been tested there may still be bugs.

Gerald is released under the BSD License. The project home page is here and the code can be downloaded from here.

Posted by Andy Todd at 12:35 PM | Comments (3)

February 11, 2004

Synchronisation

On my desktop computer(s) I have lists of people and diaries managed by various pieces of software. Yet in none of them can I specify someone's birthday in my contact list and have it appear in my diary.

That I know of. I'd also like to stress that I use quite a few;

  1. Windows - Outlook
  2. Macintosh - iCal and Address Book
  3. Palm
  4. Gnome - although I don't have Entourage, just good old Mozilla

How hard can it be?

Posted by Andy Todd at 09:59 AM | Comments (4)

February 10, 2004

Documenting Python Source Code

I've got this code, which is nearly ready to make its way into the big, wide world, much like someone else. As part of the final tidy up I'm adding docstrings to all of my methods, classes and modules. Then I want to use a tool to generate html documentation from them. I'd like the output to be valid HTML 4.01 or xhtml so that I can control the fonts, colours and text size of the output with my own stylesheet.

I've tried out epydoc, and it looks quite good. But it doesn't appear to be under very active development and there isn't a mailing list to ask. The alternatives look to be HappyDoc, Docutils and Synopsis.

Epydoc works for me, but should I continue to use it or switch to an alternative? Have I missed a Python documentation tool in case Google comes indexing?

Posted by Andy Todd at 08:44 PM | Comments (14)

February 02, 2004

UK Python Conference 2004

This was announced on comp.lang.python.announce last year. Since then, nothing. I was beginning to think that it wasn't going to happen.

I had a couple of ideas knocking about that I would have liked to present, but idly wandering around the web today I find that the schedule is all set. So my musings will have to wait for another opportunity. This was a bit of a puzzler, I check the newsgroups every now and then, I'm subscribed to the Python-UK mailing list and I even have the odd beer with Simon who seems to know everything that goes on,

Was there a call for participation? If so where was it posted because google can't find it. Or did I miss something obvious?

Posted by Andy Todd at 04:46 PM | Comments (4)