What’s the story with the save file button in firefox

It seems to be disabled when downloading files for a random lenght of time. Generally I have to click outside of and then back into the download window to get it to save the file.
Why? cough security? Get real if that’s the case.
I think my stint on the mac has made me nasty to bad UIs

Toolbox essentials

Well, I was reading ‘5 more essentials for your programming toolbox‘ and the first entry has my favourite – unfolded linked lists. It’s just that it’s broken in at least one way. You should embed the list of ‘void *’ pointers at the end of the entry using the magic of the zero length array at the end.

struct unrolled_listitem {
int num_elements;
struct unrolled_listitem *next;
void *pointers[0];
}

You get the size of a struct item from (sizeof(struct unrolled_listitem) + num_elements * sizeof(void *)). You need to min/max it to the size of a cache line.
The issue is that if you want to embed this structure in another one, you need to add padding after it to the max of the size of the structure that you are planning on allocating.

It’s just been one of those weeks I suppose

bad%20week_post.jpg The hard drive in the big laptop gave up the ghost two days ago. I’m running spinrite on it to recover as much data as I can before kicking the drive onto the kerb. It seems to have been a perfect storm of badness happening to me this last week. On the plus side, at the pool party last night I found a tenner in the corner pocket of the table I was playing on, so it wasn’t a complete wash.

Aaaah f**k yez Apple with your iPhone SDK

This is about the worst of all worlds. You need a certificate to get the applications to the damned device even when you’re a developer – I would have thought that the 2gb download of the SDK would have taken care of that for casual end users.
The ‘right to develop’ is $99. It’s open to a limited number of companies and individuals in the US only. This is probably due to needing to verify the developers to issue them a cert.
Apparently Steve loves the code signing requirements of the Nokia S series phones. What he misses is that this can be switched off from the UI of the phone.
So at the moment, we can develop test applications that can be used in the simulator. Just like the palm… oh, no hang on, they allow applications to be installed without any code signing requirements and they allow you to develop for the platform without any cost to the end user. Granted this took several years while the only development tools were on the Mac (CodeWarrior), but the end result has been a zero cost of entry development environment which was geared to the small developer.
Sir Steve – get your head out of your ass on this one.

Sitting in Dublin airport, waiting for my flight

It beats walking, but when you’re get to the airport only to discover that your flight is delayed by an hour kind of annoys you. I spent a short amount of time futzing around with tunnelblick and it finally works. Of course I have no intentions of doing any work today … It’s my day off.

Yayyy. My sister had her baby

My sister Anne-Marie just gave birth to a baby boy with a weight of 5lb 6oz (~2.5kg for the metric minded). Mother and baby are doing well. Hope that’s the last of them for the near future.

Oh my god. I am complaining again

This time it’s about mobile phones.
I have had recent occasion to use a Nokia N95. On paper it has all the bells and whistles. In reality it is a cumbersome lumbering beast (please refer to my earlier entry about the Motorola Razr).
Physically, there is nothing terribly wrong with the form factor of the phone. It has a vast arrray of features, all of which seem good… on paper.
The front end has been customized by vodafone, but that’s all candy. The usability is terrible.
It doesn’t know what country I live in, so therefore it does not match non-country coded numbers with the entry in the address book. A problem so simple that my helper monkey could accomplish it. As a result when friends ring and I’ve explicitly stated ‘only my friends group can call me’, I get nothing because the phone can’t match the number to the entry in the address book. kind of like. Dear f**king christ, it’s not that hard to drop the leading zero and match with any numbers that match the country code you’re in. This is not f**king rocket science.
On the front panel we have a 4-way bar surrounding a button, and 8 other items surrounding it. There is the ubiquitous ‘green’ button, which only works when you’re expecting a call; otherwise it it about as useful at a tit on a bull. there’s the red ‘get me the f**k out of here’ button, which is about as useful as a granny with epilepsy (as you hit it more often than the buttons surrounding it due to the poor response. There’s a ‘clear‘ button, which is supposed to delete characters. It’s so small that my stubby fingers press the red button more often than this one. There’s a ‘pen’ button. I have no clue what it does. Apparently it did something at some time. What it did and what it’s function are are lost on me as it seems to be completely useless. There are two blue ‘multi-function‘ buttons. This means that they do what the two items at the bottom of the screen say. Then there is the ‘shortcuts’ button, which pops up some form of paged navigation thing (poorly implemented), and the menu button which pops up the ‘menu of doom‘ when pressed lightly, but when held displays a popup of all the running applications.
The menu of doom is this crazy rube goldberg style navigation system where you only know where things are based on your previous knowledge. And what knowledge will you need to have. There is a vast disordered mess of settings and applications the location of which needs to be discerned by experimentation and memorization. Even then, there is little chance you will be able to remember what it is that you’re looking for so you will need to pop it up to the standby screen. Where in other phones the reason for placing something on the quick access menu was due to it being slow to access, in this case it’s because you will never be able to find it again.
On to using the phone. Receiving calls is simple. Press green and you’re in. Whoopee f**king doo, Nokia have remembered that it’s a phone after all. Unfortunately, they’ve obviously left the usability engineers locked in a cave for the last 10 years. Nothing has improved. It’s like they’re stuck in the ice age with regards to functionality.
We wander through the entries in the address book. I get a list of names. You have to open the contact, choose the number, click the left button to get the options for this item and then choose to make a voice call (it may do a voice call on the center button, but as there’s no way to know based on the complete lack of UI on what happens when you press the center button, you’re kind of shooting in the dark on that one).
Text entry is a crap-shoot. Some of the fields take predictive text, some do not. Most of the times you expect it to be predictive text it isn’t and vice versa.
Call logs only tell you that you called a number. All the entries are mobile phone icons, so you don’t know if you called the house, the mobile or some other number. There is no uncomplicated way of calling one of the alternate numbers for a contact from a call entry in the log. There’s no way of knowing if the dialled call was received or not (dear god this it first year usability here). There’s no record of how long the call was.
While this is a fully featured phone, it provides them in such a manner as to be practically unusable. Informing the user that they need to learn how to use a phone like this is counter-productive. a phone like this should provide all the needed features in an easy and intuitive manner. The poorly oriented, badly designed button arrangement on the frond end is anything but that.
I would not recommend this phone to anyone except the most hardened masochist. I will return to a more sensible phone as soon as possible.
What a piece of crap. Really, and they expect people to use this shite?

Calendar problems.

People please stop writing your own damned programs to deal with dates and times, or at least make them use standard mechanisms to determine if you’ve got a valid date of the month.
There are 29 days in the month of February in a leap year. Leap years happen every 4 years, but specifically don’t happen on years that are divisible by 100, but not by 400. So 1900 wasn’t a leap year. 2000 was, 2004 was and 2008 is.
If you need to check if a date is valid you need the day of the month, the month and the full year (i.e. 1900, 1999, 2000, 2004). Using a 2 digit year is tantamount to the Y2k problem.