Strangest burglary ever

It’s not really a complaint, as nothing was stolen. The Parents’ house was broken into and every room in the house was gone through, but from as close as we can tell nothing was stolen. My laptop was left in the room, there was a €50 note in my mother’s purse, none of the jewelry was stolen and, luckily of all, my father’s shotgun was still where he had left it. I’m convinced that the gun needs to be locked up, but as for the rest of the problems, it is really surreal. They had time to look through practically everything, but seemed to not take anything.
On the other hand they may have been looking for something specific, the question is what?

Timely information

Here I am, at about 2 in the morning thinking about timely information. Take for example accessing a file’s Version Information (Windows applications). The API is piss easy, it’s jut a bit noxious. I wrote myself up a small class to extract this for my applications. The problem is that this code is to all intents obsolete – there is a class in .NET that covers it.
This is the two forked problem with the internet. When you have a problem, by the time you’ve either (a) solved it or (b) found the solution, the world has gone and passed you by. Almost depressing, I might add.

The Pedants’ Revolt

Nice little program on the BBC tonight. It’s been on in BBC 4 before, and I really like it. I am a pedant, and just a little proud of the fact.

Mark Kingston is gone

There was a phone call late tonight from someone that nobody recognized.
A very good friend of mine was killed in a car crash in Roscrea.
This brings to two the number of close friends I have who were killed in road traffic accidents.

Undocumented methods

It’s not unusual to encounter undocumented methods in a programming language, it’s just the nature of the beast. Take for example Delphi 2005. It has a new Queue method, for allowing a programmer to queue a call to the main user thread, rather than serially invoke it (it’s not quite serial, there’s a WaitForSingleObject in there).
This interestingly brings up another item. There are two models generally associated with timed events. The first model is the Invoke, leaving at least an interval gap between the invocations, the second model is the invoke, and even if it’s not finished invoke it again when the interval elapses. The first model can be emulated using the standard Synchronize call, the second can be emulated using the Queue call. Because they both are operating from the one task queue, either method would be safe to use on mt-unsafe code. The advantage of the Queue method is that you can interlock the thread and the GUI in a looser manner, as the thread does not wait for the GUI to do it’s stuff before continuing. This means that, for example you could be informing a gui component to repaint itself when the underlying dataset changes.

UI Guidelines (apps)

As I’ve been through most of these at one point or another, and finding them is a pain in the ass:

I’m of course still stuck with a PalmOS 4 handheld, so the pre PalmOS6 docs are what I refer to the most. I have no real motivation to buy another handheld when they’re looking like the entire market is going to be eaten by micro PCs like the OQO.
[links edited, text slightly changed 2005-10-14]

Grade A stupid firewall rules

Here’s one from the symantec firewall ruleset:
Trying to access an SQL server with a blank password.
Obviously this is one in a long line of stupid f*ing user problems, but let’s be honest, this was while I was constructing the ODBC connection, I don’t have a blank password.
Another rule is FTP_IIS_Status_DoS, this one is particularly nefarious as I hit it regularly when using NCFTP. For some reason I don’t think ncftp is trying to DOS a remote server 🙂

Revenge of the Sith

I just went to see the last of the Star Wars movies with my 3 nephews. I will have to say it all comes full circle – every i is dotted, every t crossed. Movie wise, it’s a really hectic ride, mostly action from start to finish with a few angst ridden moments suffering from Hayden Christian’s woefully wooden acting.
I’ll say yayy to the light-saber duels, especially the quad saber wielding cyborg.
Based on the speed of Padme’s pregnncy, I’m expecting that the movie took place over a 7 month period, assuming a 9 month pregnancy; but we don’t know that for a fact; do we Mr Lucas? I’ll have to say the kid brings balance to the force by the end of movie VI, the prophesy was correct, people just can’t deal with a ~40 year span between his discovery and fulfillment.
The final fulfillment of Vader is most excellent! The only half believable emotional cry of the entire movie from that character; even if it was distorted by the mask.

Corrupt oracle tables

The brother has a problem today, his dispensing system kept keeling over when he dispensed to some people, but not to others.
Firing up the utility which is what all normal pharmacy people would have had access to would only show that the system failed to validate a table, and that the connection to the database was broken. The only clue I had was the table name that I last saw in the utility. I’ll just say from the get-go that this is Not good diagnostic programming practice.
Firing up the SQLPlus worksheet, I ran the ANALYZE TABLE <foo> VALIDATE command over the table, and saw no error. I ran it with the CASCADE, option and the same thing happened as the utility – the database fell over.
It turns out that one of the indexes was corrupt on the table. Iterating over all the indexes using ALTER INDEX <foo> rebuild, which narrowed down the indexes. Then I extracted the DDL for the index, dropped and recreated them, re-validated the table and everything was hunky dory.
Full documentation on the ANALYZE command is in the oracle documentation. For the purposes of this exercise we used ANALYZE TABLE BLOB VALIDATE CASCADE to see the error.
Solving the problem took about an hour, most of which was spent chewing on a sandwich and booking tickets to see Star Wars, and of course cardboard programming by another friend. A backup of the database would not have helped in this case as the corruption occurred silently some time ago, and was only uncovered when certain customer’s records were accessed, so the loss of all the data input from the point of corruption to then would have been unacceptable.

Talk to people weekend

This weekend seems to have been the talk to people weekend. I got a two phone calls from across the world, and an email from another person. I feel so loved! Plus that and I think I’ve drank more in the past 4 days than I have in the past 6 months, means that the conversations must have been surreal (I lie, I was not drunk when I talked to them); but I was drunk when I replied to the email. I’ll just warn people right here and now – never, ever drink and dial.