Recently in Complaints Category

Raw data

| No Comments | No TrackBacks
Most of the times you experience data it has been massaged, interpreted and analyzed. This is a side effect of having so much data to process, and also having an agenda.
We see papers regularly, with attached shiny graphs and tables. ehmmm, yeah, nice shiny graphs; pretty distracting, but not actually revealing the underlying information.
What I want is a link under every one of those damned graphs linking to the raw data.
Not much to ask for - raw unfiltered research data. I mean really??

portable UI tip #1

| 1 Comment | No TrackBacks
if there is a blinking caret in the field then show a keyboard. There is nothing more annoying than having to 'repick' the text field that is currently active, with the blinking caret

what are you thinking android? focus is something explicit, not implicit. You do not have to have an active control on a form at all times. that and the fact that the keyboard is very tough to get rid of when you want to.
So this afternoon I was at a friend's house trying to get his ubuntu netbook working with a broadband dongle. It just refused to connect, and on failure displayed a notification dialog that basically read 'did not work'. Once this dialog appears, the only way to reattempt a connection is to unplug and replug the broadband dongle, as 'networkmanager' disables the connection when it fails.
There were logs - the fine syslog.log file, which is almost completely useless for diagnosing the failure in the connection - it seems to be telling me that the connection succeeded, but then was immediately disconnected. About as useful as a slap in the face with a wet haddock.
armed with my iPhone I first attempted to ensure that the connection details were correct. The management tool added the settings, so I immediately did not trust them. Google pointed out some options, but every time the connection failed there was another 30+ second delay unplugging, replugging and reentering the PIN (it ignored the pin option in the network manager configuration).
I fired up my laptop running Windows. It installed the management tool, I looked at the settings, shouted at both the Internet and the ubuntu configuration, both of which were telling complete lies about the settings. Here's a hint for all you mobile broadband providers - make the settings easily findable using google - there is a lot of outdated and completely invalid information out there that makes this an issue.
so, ultimately, a problem that I struggled with for quite a while under ubuntu was solved in less that 30 seconds under windows, and yet another reason why I think that NetworkManager is a thing of satanic horror that makes using computers under Linux a complete pain in the arse. This 'solution' is probably the singularly worst example of dumbing down configuration to the point when something goes wrong, it is practically impossible to diagnose or fix the problem.
In this case, I will have to say... progressive disclosure is a good potential solution to complicated user interfaces. The complete excision of all forms of configuration into the magical tool of automagic only works if it works all the time, and as a friend is fond of saying "If you design a system that it cannot fail then the first thing that happens is that it will."

Shock! Horror! Bug found where Windows applications will open DLLs that are in the current working directory of a process!

Except it's not a bug. It's by design, and it's existed since NT.

Microsoft is being smacked in the head by a required feature of Windows due to the initial weakness of the LoadLibrary call. If you don't specify a path to the file to load, it uses the standard library search path.

Dear god, you would think that this was news. It is not news, nor has it been since the goddamned operating system shipped. Granted, the issue is severe, but the fact of the matter is if an application is executed using a working directory that isn't under your control, then what can you do? if there are libraries in the same directory that launched the program that happen to share the name of system libraries then you're hosed.

Hey, guess what asshole, if you link a linux binary with a search path containing '.', then you get the same problem. It's just as well that nobody links their binaries with -R. .... eh?

The documentation is blatant in this regard. I've known it was a security issue since I first learned of the LoadLibrary call, as any even half decent developer should have known when they started using the damned function.

The rule is simple. Resolve the full path to a library before you load it. Validate that it 'looks right' at that point. Then load it.

BTW .init section in .so files - so totally a security hole. You can't dlopen a file to determine if it's good without executing the .init code. Game over man, game f**king over!

My .init code does a setenv("LD_LIBRARY_PATH", "." + getenv("LD_LIBRARY_PATH")) ... now piss off and write secure code for once...

Developer Program Expired
This is kind of silly... paid and renewed ages ago. There is a huge backlog of checking this, apparently.

I have been buying sound cards for a loooooong time – my first add-on card was for a 512K Amsdrad PC512 and it produced either MIDI-based sound or replicated sample audio. It was not a cheap purchase at the time – I can't remember the price any more, but it was quite a bit of savings at the time.

It came with a literal 'wodge' of 5.25" driver diskettes. you could use it to steady a table there were so many of them.

Later on, the disks changed to 3.5". This meant that they were thicker than the older disks, and amounted to a pile that simply got progressively larger. By the purchase of my last soundblaster card, I was looking at IIRC 10 disks, only a few of which were usable for drivers for DOS, the remainder were 'assistant' programs such as Dr. Sbaitso, which were to purposes useless.

I spent a long time kind-of caring about my sound card. I bought an SB live card for my main desktop and for several years things just worked. About 2 years ago got an SoundBlaster X-Fi card for notebooks for my Dell Insipron M1710. Honestly, the internal card was better than the add-on card. I didn't really care as I paid for it in Yen, so it didn't count towards cost.

In the last 6 months I bought a new rig. Reasonable price, and harkening back to my memories, I got an SB X-Fi XtremeGamer card. Not a large outlay (<€80). It no longer comes with a wodge of disks – it downloads software and updates from the internet.

The smallest update for this software seems to be 50MB. The sum total of the latest software update (to fix problems and to increase compatibility on Vista) is 235MB. I am 44MB into the update and I'm being told that there's another 2.5 hours to go. I'm not on a slow link either. It just seems to be on their side.

Just to put this into perspective - The download for my soundcard is about 1/2 the size of a reasonable Linux distro… and it's as slow as a wet weekend in June. By the time this update has downloaded I could have watched the entirety of the latest Harry Potter movie and still had time for a pint. It's damned slow.

This is a sound card. Not the World Management Software Suite®. The update for my graphics card was 90MB and that was Driver + Support Software + PhysX Drivers. And it downloaded in less than 10 minutes.

Now that I recall, all the problems I seemed to have on the older machine could always be traced to limitations or issues with my sound card. A driver that wasn't playing by the rules. Maybe it thought it was being edgy? I've seen too many BSODs to want edgy. I just want something that works…. and doesn't need a 250MB update (that's twice the size of OpenOffice)…

Oh, and Windows Live Writer — please convert euro, trademark and em-dash symbols before posting… we're not all using UCS-16 encoding here. Some of us actually try to use the web in a platform independent manner…

Nothing more than a rant....
It's not that tough - when using most english locales, we sort case insensitively. a==A, B==B and so on. Pragmatically, the only reason for picking a locale other than UTF-8.generic is because I would really, really like these rules obeyed.
I am sick to death of having to work around stupidity.
I'm just complaining as I look at the output from ls and it's pretty much a case sensitive sort. I'm sure that accents are sorted correctly in EN_ie - after all á is the same as a, but apparently it's different to A.
Sorting it difficult... the rules are so complicated... stop complaining! you're able to perform at least 600 million operations per second, and a table lookup for a case insensitive sort is probably going to cost 20.
Bear in mind that the number above was a quick back of the envelope number of an iPhone. I'm sure a real computer will be able to do something a little better...

Update:

Looks like it's not Linux, it's only Leopard that doesn't understand EN_ie collation. Oh well, that's life I suppose…

This is one of those odd things. For several years I have paid a data plan on my mobile phone to read my email. I think at the first time I paid it, they were looking for about €10 for 10MB of data (up and down). As time has passed I have still been paying this internet tax for the phone, only in the last two years with the purchase of a Nokia N95 has it become something of a complete fraud.
I've just lost this entry due to it being (a) a web 2.0 item and (b) not capable of dealing with the downing of my internet connection. Not making me a happy camper.
I bought the phone, while I still had my €13 for 10MB data connection plan. There was nothing better available. I assumed (more fool me) that there would be an option for a better data plan as I was buying a phone which required a half decent packet connection. Apparently, my mobile company were unaware of the fact that my phone was using the packet connection until I was in excess of €300 in the hole, and that was a paltry 2 weeks after getting the phone. Something to do with them being complete pillocks.
After a while, a plan became available that allowed for 1GB data per month. I barely use 100MB on the phone (I have a broadband dongle and am paying for broadband access in two locations simulataneously). I will be using my phone to tether my laptop. This is a given.
Apparently, the new phone plans for the iPhone and tethering will ask for a supplemental €15 which is epletivingly ridiculous. You cowboys have been charging us 10cent per 160 7bit message which is 64cent a KB or €655 a MB. All the code to deal with these is built into the system. The messages themselves pass through a mostly unused D-channel. They are free. Stop taking the piss. Data access should be a right - just like food and shelter.

I bought an internet radio for the mother for Christmas - it means that she can listen to BBC Radio 4 without it sounding like complete rubbish over long wave. It worked fine for a few hours in the morning on Christmas day then it malfunctioned - the volume started to act as though the volume up button was jammed down. I can't reset it - the behaviour makes it completely unworkable. It seems to be some form of short circuit. After I powered it off overnight, it seemed to work again - for about 10 minutes, then I got the same behaviour. With sadness I shall be returning it to the store to get a replacement unit, which, I hope, will work much better.

The issue it that it's frustrating, I don't think that it's a problem endemic with the model as there seem to be a lot of people with the same model, none of whom seem to be complaining about it.

Ok, this is me too, but at least I listen to myself... most of the time.
firstly, listen to the user. If they repeat something more than once then it probably means that they want to ignore that particular thing all the time. Let's be honest, when my mail host sends me the same certificate for the umpteenth time, you're likely to guess the answer based on the last 200000000 times I clicked Yes.
Oh, no you disclaim! this is security! people need to be saved from their stupidity.
The problem is that the current 'security' and 'authenticity' system is supported by money.
I can pay someone enough money and they will probably claim that I'm the first bank of owning all your children - and because of the trust system, you won't be able to disavow that claim. After all I paid my $200 to get that claim.
The entire system of trust on the internet is based on a first-come-first-served monopoly of 'I trust you' mechanisms. This is simple, but ultimately a poor trust mechanism.
The solution probably involves a complex series of gpg keys, but ultimately it would be more satisfactory because:
  • It does not involve money
  • trust can be reduced as well as increased
This rant was brought to you by shredder aka thunderbird 3 - after all you are too stupid to manage your own email; even though you just want a secure channel between you and the email server.
Security Code 'Accepted' I really hope that it doesn't mean that they're keeping the security code on file - after all that's a violation of the PCI
apparently it could have something to do with the theme, but this morning I noticed that the GrowlHelperApp was using about 200MB of wired down memory.
Restarting it seems to have restored it to a reasonable size, but I shall set up a dtrace script to keep an eye on it.
Lets see; it's a download manager and it launches by default 'at start'. It is listening for external network connections (what, is it peer to peer over my 3g datamodem?). Apparently, this is to support 'updates or patches' to the software I've purchased.
And then, to emphasize how important it is (apparently it is vital for my life and the functioning of the world) it puts an icon on the desktop (low resolution, not befitting Vista) loudly declaring what it.
pricks. You are not that important. Really. Get over yourselves.
Aargh! google chrome comes with it's own 'updater' which runs in the background checking for updates to the browser (along with the updater for google gears, I presume).
Add in the Java updater (oh, lets check once a month for updates but run 24-7)
The apple software updater
Liveupdate (probably 3)
Each of them is probably doing the same thing.
  • Wait until some time on the clock
  • Check for a network connection
  • Check if there's new code to download
  • Display an obnoxious dialog saying 'Update available' with an Ok or possibly Maybe next time pair of buttons
  • Download the update
  • Install the update
  • Require a reboot because it's changing a file that's in use
  • repeat until you head explodes

Ok. Time fricking out here people! There has got to be a better way. If only there was a single update mechanism that all these tools could use... Unfortunately, it's the built in update mechanism from Microsoft/Apple and it's closed to outside developers
As it is, most applications on the Mac perform an automated check for updates when they're launched. It's relatively painless, and works most of the time. Mind you the notification dialogs leave a lot to be desired (version n+1 is available, download here!) as opposed to a list of version n+1 changes - especially security updates.
Hopefully, they're secure and have built in mechanisms to make sure that they're not taking in a corrupted/malicious application.
Accursed iTunes regions Because, apparently it's only available in the US. I'd love to buy the Dr. Horrible's Sing-along blog videos. Unfortunately I'm not in the US so I am denied. In fact when in Ireland there are a lot of things that stop being available to me. Like any of the TV shows. Drive me to other sources!
Thankfully Warner seem to have been sensible with most of their Blu-Ray dvds - they don't have zone locking so I can watch the ones I bought in the US in Ireland without violating anyone's TOS.

Trust me...

| No Comments | No TrackBacks
Plaxo Assistant Cert It tells me to trust it. After all, it's a certificate that's signed by a CA that isn't in the list of known certificate authorities.
I don't trust certificates. There is a list of certificate authorities a mile long stored on my computer of groups who are to be trusted when a certificate is presented. I don't know them from adam, and the certs from the Hong Kong post office are about as trusted as the ones from the Apple Root CA - get real people this is not security, this is just posturing. I trust them about as much as I trust the digital quicksand upon which they are based.
I've stopped caring anymore. The only thing that these certificates establish is a temporary private channel between me and the web server. The rest; it's just smoke and mirrors.
Aargh, it's too bloody easy to rip off these tabs and there's no way to re-attach them from what I can tell. Something about the sensitivity pop-up menus and the tab drag thing has been tuned up. It's practically impossible to keep a pop-up menu open using a two-fingered click (touchpad).
Every time I rip-off a tab it makes me want to throw gnome out the window. the UI seems to have become more and more of a crayon interface without actually improving.
Tabs. A logical option for grouping works on different projects. Apparently, you're supposed to use multiple windows in a desktop.
Flash Update Message Apparently, it needed to install a security update. I don't believe I'm using any flash applications that would keep the player in use, so why the pathetic dialog on the left after I installed it? This is one of those cases where pushing through the update makes more sense. As it is this only tells me that I need to reboot my computer to be safe from 'flash viruses'.
Is it that the flash component is so embedded in the operating system that updating it requires a reboot? If that's the case then why? it's only a little thing for displaying animations; not the end of the fricking world.
StupidBlameyErrorMessage.jpg These bloody security measures drive me up the wall. I may, or may not have already stated where this special error message comes from, but probably didn't. In this case it's caused by the sysinternals process explorer running. It would also probably be triggered by the registry monitor as well, I'm just not certain. The issue is a two parter. Yes, I understand that you're trying to protect your damned stupid copy protection mechanism, but would you please put a decent damned error message up so that the common user can have a chance of getting past the problem. But no, this is at the same level as 'General Protection Fault' under windows 3.11. There's no actual protection from this. A practiced hacker has already changed the pattern of the virtual drivers of procexp and regmon to be undetectable (generally using permissions on the registry).
I use No-cd patches for this reason. There's no obvious no-cd patch for mass effect, simply because it needs a single activation before playing. Unfortunately the entire securom scheme is still in place, causing play degredation and generally making life difficult for people.
I created a file with a series of slashes in the name under Mac OSX; Or at least they look like slashes. When I look at it under the cli they're colons. Ok mac, which one is it [:/] ???
Plaxo doesn't like my openid server. It seems to be timing out.
Investigations later, when I don't have hardware to fix
I thought my camera was charging over USB. Boy was I wrong. It complained with a 'battery low' message yesterday. The previous camera had a different power supply (out to the recycling for it, then). It's a really squat charger, without a cable which makes it a pain for recessed plugs (not many of which were found in the good old US-of-A).
Ah well...
Oh my god. That is completely and utterly insane. Apparently you can only install/activate Mass Effect three times on a machine before you need to contact EA to get more of them. Typically, I'm not a big installer/reinstaller, but this is in-f***ing sane.
Oooooooh, and don't point at the EULA and say 'Haha!'. Nobody reads them, and there's a very good chance that it's not enforcable due to the fact that it's not been signed and witnessed. Computers do not witnesses make. You can fake everything.
Two nights ago I got past the Laughing Octopus boss battle in MGS4. Last night I fired up the game and guess what? It had me right at the start of the battle again.
Aargh! That's just infuriating. I gave up on the game for the night at that. Just not in the mood. Maybe on Sunday when I return from the Kingdom.
Kojima seems to have a big on for the Octopus :)
I like my cartoons. I especially like my Japanese cartoons (anime). The problem I have is the bloody price that's charged for the individual discs. Last time I was in HMV they were charging in excess of €35 for a single disk containing two episodes of a series (can't remember the name; all I remember is nearly gagging at the price).
When I was in the States I picked up a few Anime series for about $40 each. Reasonable price considering that they were oldish (big fan of the cheaper when older thing).
Tower are better for pricing individual series, but they are still a tax on a person's wallet. Most 26 episode seasons are > €100 for the entire collection. And that's for the Australian imports (which they claim are region 2 but it's all a lie).
which brings me to シゴフミ(shigofumi). It was picked up really early on in the airing in Japan, which means that to be fair, I should be picking them up. The problem is that it's $30 per disc. They are, of course, not available in Region 2. Picking up the original Japanese is a bit of bother (my language skills are not that good; and they generally don't have any subtitles). Decisions, decisions.
Don't go to the release for Battlefield:Bad Company. The only thing you end up with is a hangover. Courtesy of the cinnamon flavored spirit of evil.
You only get to download the game for up to 6 months after you buy it. This is completely lame as it means that you have to back it up somewhere just in case you lose it. For an additional $6 you get to download it for an entire 2 years. <sarcasm>>How brilliant is that!</sarcasm>>. Compared to a service like Steam where you can download it an arbitrary number of times to any pc that is connected to the steam service. Anywhere in the world. At any time. Until they go broke (but that will be telegraphed well in advance I hope).
Six months. Silly billies!

bad, bad twhirl

| No Comments | No TrackBacks
 4076 twhirl       4.2%  0:27.47   9   182    568   40M  7664K    52M   402M
This is while it's hidden. I presume it's not actually twhirl, but is instead is the Adobe Air platform.
When I start top and I'm not doing anything I expect to see something akin to:
 4102 top          6.5%  0:01.00   1    18     29 1124K   188K  1716K    18M
at the head of the list. Not something that's supposed to be running in the background doing nothing
Jeez, these little blighters either work correctly straight out of the box or they want to break your soul.
Step 1: Install the software that tries to be installed when you plug in the device. If you're lucky once the software is installed you may be just able to work. If not then proceed to step 2
Step 2: Check that the device has been assigned correctly. Open up the device manager. From the start menu in vista in the search box you can type 'devmgmt.msc' (no quotes). This should give you one option, on the search list that you can click on. Accept the windows UAC prompt and you should now be faced with the scary device manager.
From the view menu choose View->Devices by Connection. Tunnel Down the line of + signs that probably start at 'ACPI x86-based PC'->'Microsoft ACPI Compliant System'->'PCI Bus' looking for a 'USB Host Controller'. It may be called something like 'Intel(R) .... USB Universal Host Controller', or something like that. The one you're interested in has a 'USB Root Hub' below it that has a 'Mass Storage Device' which, when expanded shows the pretend CDrom that you installed the software from.
Right click on the Mass Storage Device that's immediately below the 'USB root hub' and choose 'Update Driver Software...'. Pick 'Browse my computer for driver software'. Pick 'Let me pick rom a list of device drivers on my computer'.
Uncheck the 'Show compatible hardware. In the manufacturer box pick the (Standard USB Host Controller) manufacturer. In the model list pick 'USB Composite Device'. Click Next. Expect a complaint from windows saying that it's probably incompatible so click the 'yes' button there.
Once that's complete unplug the data modem thingy wait a few seconds and then plug it back in. It will take a few seconds (up to 30, be a bit patient). If the datamodem software starts up without an issue at this point then you may be able to simply use it. If not then there's the painful stage 3 Stage 3: You probably have some program that is interrogating the cdrom drive of the modem. The quick fix is to de-assign the drive. From the start menu type 'diskmgmt.msc'. Accept the UAC prompt.
There should be a list of Disk 0 (and possibly more Disk entries) at the bottom, below a smaller table of 'Volume, Layout, Type, File System ....'. There should be one CD-ROM entry matching the physical cd/dvd drive in your computer and another matching the pretend one from the modem software. Right click on the CD-ROM entry for that and pick 'Change Drive Letter and Paths...'. Click Remove and choose the Yes option from the complaining dialog.
The disadvantage here is that when you plug in the USB modem from now on the datamodem support application will not automatically start up. The advantage is that you don't need to uninstall nero or whatever application is causing the problem. I keep the convenience of nero for the cost of starting the program by hand.
If by this stage the datamodem application does not show you the modem, I would recommend boxing it back up and bringing it back to where you bought it as they need to be thwacked over the head with this POS.
This entry is prompted by having to guide someone over the telephone on how to do this themselves. It is not fun.
Software is hard. I kinda get that. Something to having worked in the business for a few years. When a bug is filed in software I wrote if feels like a little arrow in my chest. Now start selling it mainstream. Every issue you've not addressed in the current version is poked at you 10,000 times.
That's why you file issues to a generic mail address in large corporations. The only problem is that because you don't know "the language" to use when filing, it will probably be lost. Filling in series of forms might make this easier for the company, but not for the consumer.
Oh well, looks like we're screwed?
Lazy lazy leopard. All the collate definitions seem to point to ascii based sorting in english locales.
himitsu:/usr/share/locale% ls -l en_*/LC_COLLATE
lrwxr-xr-x  1 root  wheel  29 21 Feb 16:19 en_AU.ISO8859-1/LC_COLLATE@ -> ../la_LN.ISO8859-1/LC_COLLATE
lrwxr-xr-x  1 root  wheel  30 21 Feb 16:19 en_AU.ISO8859-15/LC_COLLATE@ -> ../la_LN.ISO8859-15/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_AU.US-ASCII/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_AU.UTF-8/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_AU/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  29 21 Feb 16:19 en_CA.ISO8859-1/LC_COLLATE@ -> ../la_LN.ISO8859-1/LC_COLLATE
lrwxr-xr-x  1 root  wheel  30 21 Feb 16:19 en_CA.ISO8859-15/LC_COLLATE@ -> ../la_LN.ISO8859-15/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_CA.US-ASCII/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_CA.UTF-8/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_CA/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  29 21 Feb 16:19 en_GB.ISO8859-1/LC_COLLATE@ -> ../la_LN.ISO8859-1/LC_COLLATE
lrwxr-xr-x  1 root  wheel  30 21 Feb 16:19 en_GB.ISO8859-15/LC_COLLATE@ -> ../la_LN.ISO8859-15/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_GB.US-ASCII/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_GB.UTF-8/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_GB/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_IE.UTF-8/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_IE/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  29 21 Feb 16:19 en_NZ.ISO8859-1/LC_COLLATE@ -> ../la_LN.ISO8859-1/LC_COLLATE
lrwxr-xr-x  1 root  wheel  30 21 Feb 16:19 en_NZ.ISO8859-15/LC_COLLATE@ -> ../la_LN.ISO8859-15/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_NZ.US-ASCII/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_NZ.UTF-8/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_NZ/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  29 21 Feb 16:19 en_US.ISO8859-1/LC_COLLATE@ -> ../la_LN.ISO8859-1/LC_COLLATE
lrwxr-xr-x  1 root  wheel  30 21 Feb 16:19 en_US.ISO8859-15/LC_COLLATE@ -> ../la_LN.ISO8859-15/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_US.US-ASCII/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_US.UTF-8/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x  1 root  wheel  28 21 Feb 16:19 en_US/LC_COLLATE@ -> ../la_LN.US-ASCII/LC_COLLATE
The 'sorting rule' for irish is:
--
-- Irish Gaelic alphabet:
--
-- Aa (Áá), Bb, Cc, Dd, Ee (Éé), Ff, 
-- Gg, Hh, Ii (Íí), Jj, [Kk], Ll, Mm, 
-- Nn, Oo (Óó), Pp, Qq, Rr, Ss, Tt, 
-- Uu (Úú), Vv, Ww, Xx, Yy, Zz 
--
i.e. Case insensitive, and accented characters after non-accented characters (case insensitive). Surname sorting is even more fun, but I would not expect ls to do that. Finder sorts correctly in this case, but that seems to be due to the fact that it uses the Unicode Collation Algorithm. Shame, I would have preferred both to use the same mechanism.
Well linux and solaris get it correct, but it looks like the little old mac can't sort things lexicographically (even when it claims in the manpage that it does).
On Linux/Solaris:
~/x% locale
LANG=en_IE.UTF-8
LC_CTYPE="en_IE.UTF-8"
LC_NUMERIC="en_IE.UTF-8"
LC_TIME="en_IE.UTF-8"
LC_COLLATE="en_IE.UTF-8"
LC_MONETARY="en_IE.UTF-8"
LC_MESSAGES="en_IE.UTF-8"
LC_PAPER="en_IE.UTF-8"
LC_NAME="en_IE.UTF-8"
LC_ADDRESS="en_IE.UTF-8"
LC_TELEPHONE="en_IE.UTF-8"
LC_MEASUREMENT="en_IE.UTF-8"
LC_IDENTIFICATION="en_IE.UTF-8"
LC_ALL=
~/x% ls
a  B  c
On the Mac:
himitsu:~/x% locale
LANG="en_IE.UTF-8"
LC_COLLATE="C"
LC_CTYPE="en_IE.UTF-8"
LC_MESSAGES="en_IE.UTF-8"
LC_MONETARY="en_IE.UTF-8"
LC_NUMERIC="en_IE.UTF-8"
LC_TIME="en_IE.UTF-8"
LC_ALL=
himitsu:~/x% ls
B  a  c
According to the spec:
The following environment variables shall affect the execution of ls ...
LC_COLLATE
Determine the locale for character collation information in determining the pathname collation sequence.
Sad little mac does not sort by the locale's character collation specification (case insensitive, in case you missed it).

Rail strikes

| No Comments | No TrackBacks
Well, they certainly announce these things, don't they. No trains to the Kingdom this weekend unless I was planning on getting an earlier, jammers one and then no guarantee that I was be able to get back to Dublin on Monday.
I'm just not in the mood to rearrange things at this stage.
Well as I got a replacement box, I suppose I should actually document how I got it working.
pop up a terminal window.
$ sudo -s
# cpan
.... answer the prompts ....
from the cpan> prompt issue an install Crypt::SSLeay (it will probably break).
If it breaks, then do an:
cpan> look Crypt::SSLeay
... output elided ...
# perl Makefile.PL
... answer questions ...
# make
# make install
# lwp-request -x https://mail.google.com/mail/
... output elided, but it does contain the content of the secure google home page ...
Now this is quite telling. I have calendar appointments stored on plaxo with start dates outside of the 32bit unix representation of a date (i.e. before 1970. Gosh, what a surprise that I would have a recurring appointment that started before 1970, now who's birthday could that be?).
It's probably a limitation of the javascript underlying what they're using. It seems to screw up birthday entries as well (off by one, for some reason?)
Deceitful little barstewards. Turns out that the 500mb mobile internet add on does not support anything other than web pages. So no mail over it.
A**holes
What's the point of having an advanced 'data capable' phone when all it does is access web pages.
What a waste of money.
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
It doesn't charge over the mini USB connection. I mean WTF? I consider an omission like that simply criminal.
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.
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.
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.

| No Comments | No TrackBacks
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.
Leopard's wireless access is a bit of a problem. This morning it decided to connect to the one base station in the office that is transmitting it's ssid (down stairs, in the lab). There are two other base stations in the office, each of which does not transmit their ssid (one about 5 feet from me) but does it pick up the base station that's the closest? nooo, it picks the one that transmits it's ssid.
There's no way to force Leopard to bind to a particular base station is there? I think I can do this with windows, and I know I can do it with the N95. The options for the Mac are quite limited. I feel like I'm trapped in a particularly well implemented Gnome environment :)

conflict: denied

| No Comments | No TrackBacks
Do not, under penalty of me beating you three ways from sunday even think of wasting and I mean wasting your money on this crap.
it doesn't understand resolution, apparently I decided that I could only display the screen at the lowest definition of the attached screens, even though it managed to identify the fact that I was plugged into multiple monitors (hint to developers - when multiple monitors are present, assume that they each are capable of independent resolution choices).
Then there's the audio... or lack thereof. Once the pre-rendered scenes complete, I hear nothing. Best guess is that it redirects audio to /dev/null, although it's most likely that it's going to one of the ~25 audio sinks of vista.
whine, pants, realistically, I have played a sum total of 5 seconds of this game, and I feel cheated.
aerfungus_privacy.png I was booking the flight to visit my sister in the UK in the next few weeks when I encountered some of the fun changes to the way this airline works. Every check-in bag must be paid for, which I vaguely remember some stuff on a consumer affairs program on the radio over the last few weeks. I need to fly into Heathrow as it's the easiest airport to deal with for visiting the sister, so I'm pretty much stuck with the fungus. I did check out bmi, but they're a euro more expensive when tax is included. I should have booked earlier :)
Well, the long and the short of it is that they have a check-box at the bottom of the booking page that tells you that you need to check the box to 'opt-out' of having your inbox spammed. I thought that the EU had rules stating that you needed to opt-in to have marketing sent to you. It's two bloody sentences long and I had to read it twice to make sure that I was not going to get spammed by checking on the box.

On leaks

| No Comments | No TrackBacks
Ok, who's bright idea was it to create the delete[] operator. I know that deep down, you may possibly, perhaps, in a million damned years, want a separate destructor for array as opposed to individual items, but bear in mind this isn't the damned slab allocator you're dealing with once that happens.
Oh, you say, but it knows that because this is an array of objects it will invoke the destructor for each object. So what, I have 4 bytes here that says you should not make me be concerned for that.
Once we've passed from the bounds of single-threaded, linear applications, it becomes difficult to maintain such fineries as reference counts and guarantees that we actually are damned certain that we're the last owner of an object.
Hey, C++, I'm looking at you passing references around like chocolate. Yes; I'm damned aware of all the ways that allow you to keep the reference alive - smart references and all that.
COM - i(f*king)unknown. Oh yeah, that works all right. And if you believe that, here's a memory manager I've got to sell you.
Messages. That's pretty much it. Everything goes through the message (including the object). That keeps things simple. If you need to pass something back it has the object as well.
Incidentally, this rant was brought to you by the letters A, K and Z and the number 14. After all, it's not prime.

Several GSODs later...

| No Comments | No TrackBacks
Well, the mac doesn't get BSODs it gets a slightly differently colored grey screen of death. Thankfully I had saved before yanking out the plug for the external monitor. It greyscreened on me with the multi-lingual press the power button for a few seconds message on-screen.
I mean really guys, this is grade-A simple stuff, people should be expected to plug these things in and out on a regular basis so it shouldn't be a kernel panic level issue when something goes wrong in that case.
At least you get a 'graceful' video driver restart when things go horribly messy on that platform (unlike XP where you just have a brick).
Ok, I ponied up a wodge of cash for a ps3 and a few games (and paid the tax for a few movies too). I got Uncharted:Drake's Fortune and Assassins Creed (grammar note: this is a creed that covers all Assassins, so I think the apostrophe should come after the s).
Well, Uncharted is just fun. I'm still a newbie to controller based gaming, but over all, I am impressed. The puzzles and combat just seem to work well; mind you I'd be hard pressed to find that many mercs on any one island. You would need to pay them a hell of a lot of money to stay once they start getting killed with any degree of regularity. Reality aside, it just works as a game. The visuals are great and the game play is well paced and just combines to give us a good experience
Not so Assassins Creed. Booooring is probably the best expression for it. Boring in the same way that performing the same, repetitive missions time and time again gets really damned boring. You get to the city, save the person in distress and then sneak in in the company of a bunch of monks. That's the only way in. Then once you get in you have to perform a minimal set of a handful of styles of missions in order to get to the real mission.
You can go everywhere.... so bloody what, it doesn't help in the complete absence of variety in the missions.
The visuals are great... No, they're good, put a few more pixels on Outcast and it would probably beat Assassins Creed hands down.
For a company like Ubisoft who have produced an excellent run of 3D games in the Prince of Persia series (which got boring, but made up for it in the puzzles) I am stunned that they could produce such a band title. I'm left wondering if they were just scared to produce something that had a bit of excitement in it due to the fact that they set it in a contentious time period (which even then is a huge cop-out, god how I have another rant stored about that).
Oh for another Beyond Good And Evil, Damn, that game is a milestone that needs to be shown to people as an example of how to make a game that reaches out to the player.

Where's the SDK, huh?

| No Comments | No TrackBacks
I'm just wondering when Apple will be shipping the SDK for the ipod touch/iphone. Just being nosey really. I've veered away from jailbreaking it simply because I don't want to end up with an expensive brick next firmware update.
They say February, but of course remembering that the Leopard launch being the end of the month it could be anywhere up to the 29th.
Another thing I'd like to see is the UI guidelines. I'm a bit of a nerd when it comes to reading design guidelines, simply because there are a lot of good points in them. Mind yo, you should not be slavishly obeying them, as, after all, they are only guidelines, and not commandments.
On guidelines, I'm get miffed with applications that require the use of the mouse to accomplish things. Vista's keyboard usable everywhere is a charm to use, even while it's gobbling up all those cpu and disk resources with the indexer.
I've heard of large asset caches, but two fricking DVDs worth of game? that's just ridiculous. I had to do some serious housekeeping on the machine to get that amount of space back. I really need to do something about my serious lack of space on the box at the moment.
Internets help me!

Damnable laptop audio

| No Comments | No TrackBacks
Back in the land of the perpetual beep again. Forgot to blacklist the pcspkr driver again. It beeps something horribly when ever there's an error condition. I should make someone else suffer from this.
Setting up network-manager (0.6.5-0ubuntu16.7.10.0) ...
Installing new version of config file /etc/dbus-1/system.d/NetworkManager.conf ...
Auto interfaces found: lo eth1 eth2 ath0 wlan0
iface to disable = eth1
iface to disable = eth2
iface to disable = ath0
iface to disable = wlan0
Disabling interface: eth1 ... done.
Disabling interface: eth2 ... done.
Disabling interface: ath0 ... done.
Disabling interface: wlan0 ... done.
 * Reloading system message bus config...
   ...done.
 * Restarting network connection manager NetworkManager
And that's all it wrote. I do not like NetworkManager - it is a piece of crap
My old hosting provider downgraded me to an older operating system and facility so I've just made the leap to another provider.
I will not be recommending the old hosting provider any more.
hosting has been changed to fix the willing
I tend to not answer the phone when it turns out to be a blocked number, however more and more I need to answer the phone because it's a confirmation of a support meeting.
Leave a bloody message

Natural sorting order

| No Comments | No TrackBacks
Over at Coding horror, we have an interesting article about 'Alphabetical Sorting', which is one of those problems that us computer programmers can't seem to get around. I have one that's even more evil than that. It's language-based sorting for names. For example in Irish, we have a lot of bits that get added to the start of names (for example Mac, Mc, O', D', h). It's even more fun than simple numeric sorting. The phone book doesn't even try on this. I think it has people inured to the fact that they won't have their name in the right place in the phone book.

del.icio.us where are you

| No Comments | No TrackBacks
I can't access del.icio.us from the house. Works from the office, and most of the time from the USB widget.
Hasn't worked for weeks.
NTL ireland?

Golden Compass... bleugh

| 2 Comments | No TrackBacks
Just don't waste your time on this one. I literally fell asleep in the cinema it was that bad.

Whaddya mean no https

| 1 Comment | No TrackBacks
Leopard is not spiffy:
$ lwp-request -x https://mail.google.com/mail/
LWP::UserAgent::new: ()
LWP::UserAgent::request: ()
LWP::UserAgent::send_request: GET https://mail.google.com/mail/
LWP::UserAgent::_need_proxy: Not proxied
LWP::Protocol::http::request: ()
LWP::UserAgent::request: Simple response: Internal Server Error
500 Can't connect to mail.google.com:443 (Invalid argument)
Update 2008-05-06: How I got it working for me. It's not the cleanest, but it works!
I could have sworn I paid for the damned thing a few hours ago, and I still have yet to receive the damned serial number so I can print my work. I got a serial number for textmate within minutes of paying for it. What's so difficult about Apple that it takes them so long to get their asses in gear over this?
Why oh why does the DHL man turn up at the office before 9am? Is he nuts?

Parrotry error....

| No Comments | No TrackBacks
parity error
***Hardware Malfunction

Call your hardware vendor for support

NMi: Parity Check / Memory Parity Error

*** The system has halted ***
This is another issue - alert sounds should be truncated at 5 seconds, not left unplayed.
Criminal choice I had to laugh when I read this - After all, it's supposed to be a web application. I need to change my password in order to use this desktop application. You have got to be s****ing me.
Apple have obviously made some significant backwards compatibility errors. Firstly, there's the firewall - altering the on-disk content of applications to make them signed when you accept them. Its an interesting approach, but it's complete pants. You don't go around altering binaries on disk. You create a detached signature! It's not really bloody difficult.
On Vista, you can see *every* rule that exists for the firewall. On Leopard, you only get to see the exceptions you created yourself.
I've been having random application crashes. They seem to be related to drag and drop operations that went wrong.
the calendar application does not want to talk to my instance of davical properly (all the calendars disappear after restarting, and I get an error every time I create a calendar). Then there's the 'the application terminated unexpectedly' - no, it didn't, I used the <Apple>Q menu item to quit the application.
Context sensitivity on the mail application is kinda limited - It doesn't detect URL links properly - I have a site that's called http://foo4/..., and all the link comes up with is http://foo. As I said, a bit limited.
Overall, though, the experience is positive. I would have preferred if apple had simply spent some more time testing the damned thing against anything other than their own applications and services.
And, as soon as they allow a replacement for .mac that can be replaced with an external, non-proprietary service I'll be a happier person
I've had this coughy, wheezy thing for the last week. It started during the move with all the obvious feelings of a cold, which later migrated to a regular cough which sounds rotten and does not make me want to go out into the cold - even though it's bright and all.
On the other hand the new mac is cute.

gnome on low bandwidth

| No Comments | No TrackBacks
I would have to say 'serves you right', but even with a reasonably fast cable modem connection X blows goats on remote displays. vnc is an improvement, but the windows remote terminal system kicks ass on a 56k ordinary modem connection. Hmmm....
Got the replacement battery in the post yesterday. I send a message asking what to do with the other one.... Response: 'You do not need to return the faulty battery. Please dispose it.' Talking about being completely annoying on this. Previously it was a replacement power supply. This time it's a battery. They really aren't taking this WEEEEEEE thing seriously.

I organize my trip...

| 1 Comment | No TrackBacks
And they change the office move date by a week. It's bleeding typical to have something like that happen, as after all as my mother says, you can't get away with anything.

Plucking dell battery!

| 1 Comment | No TrackBacks
Aargh, I just saved my laptop from exploding/catching fire. Literally minutes/seconds away from a potential disaster (losing my hard drive - time to do a backup today).
A dell laptop, with a battery model of C5447 - one larger than the number listed in the dell battery recall program. The battery was really really hot - I mean pretty much frying-pan hot heat on the battery. I've contacted dell support. I wonder what's going to happen with this

Double spaced

| No Comments | No TrackBacks
Aargh, how many times do I see double spaced text where the author understood that this meant put two spaces after the period, not that there should be a whole line of space between the lines (for all those comments and notes silly!). Plus, putting two spaces after a period collapses into one under HTML. The CSS style for double spacing is 'line-height:200%;', which is nice.

Truth in advertising

| 1 Comment | No TrackBacks
spot the numbers It's really a big lie when they promise you the data rates. This is a snapshot of the data rates I'm getting from my 3 data modem. The numbers listed for the transfer rates are in kilobits per second, not kilobytes per second. There is a factor of 8 difference in the rates, and I've never seen the damned thing go much above 1000. I've tried, using the blacknight Irish ISP speed test, and have not seen it rate my line as much better than ISDN download and 56k modem upload.
Then there's access to various web sites. I will regularly get cut off downloading - a lot of times I can never download the damned stuff I'm trying to get at. This is particularly annoying with google and youtube videos - they stall about a minute in and I can't see anything else from them.
Every time in the last three weeks I've tried to access del.icio.us, it's been a bust - it simply does not make the connection, I'm left with a stupid error message.
Every time I try to download my email from my pop provider (indigo.ie - i.e. pre-eircom), the connection times out. I can connect using any other provider. Waulgh! This is just not worth it for only having it for the weekends. I should get eircom into the house in Kerry, that way at least someone else can get some use from it.

Class act Creative...

| No Comments | No TrackBacks
toy os Evidently Creative believe that we're running some form of toy operating system that can be limited to running only one application at a time. Come on guys, get a grip here. There are facilities for installing in-use files under Windows. In fact, if you used the installation system properly you could tell us who is using the files you're planning on replacing, but no, we get this crummy dialog that says, essentially 'leave me alone while I screw with your system'. It's a little bit silly, really.
For some reason even though I explicitly un-check the 'apple software update' option when installing either itunes or the bonjour service I am unsurprised to find that it has been installed.
Along with the quicktime icon in the notification area. Please respect my wishes to keep my notification area clear. It's already cluttered with the detritus of outlook, pidgin, vmware, creative X-fi, hotsync, sync manager, bluetooth, quickset, virtual daemon manager, the power status, network status, volume and the sidebar. At least I can switch off clock, volume, network and power if I so choose, and they respect my authoritay.
Waulgh. Trying to debug a VPN configuration using my 3 data modem was proving fruitless. It turns out that they are knobbling the GRE packets somewhere along the way which is killing the ability to establish a PPTP connection to the remote service.
Alternative solutions are to use OpenVPN, but let's be honest about this, it was simply to connect to an already configured Windows vpn environment.
Having talked to the support bloke on the phone he told me that 'three currently does not support VPN connectivity, but it is in the pipeline', when asked about the schedule/timescale on that he could not comment - dadblastit!
I'm replaying network traffic at 1000 packets per second into a vmware client that's hosted on a vista machine. It's losing quite a few packets. the Vista OS does not appear to be losing the packets, they are simple missing on the guest operating system. This is a lot like crap, really.
Not always a problem. Except when I've got international characters in my filenames. Which seems to be quite common with the import albums I'm downloading.
Dang. There is a patcharound, but it's unsupported. Honestly, this backwards compatibility is a pain in the ass.
The next issue is cygwin/X. It's hanging on Vista. Seems to be related to dwm and the pretty aero effects and the occasional toggle to non-aero mode caused by some applications (not java 1.6, though).
Ah, well, it was a great holiday.

still tired

| No Comments | No TrackBacks
my i nternet access has improved massively - I purchased a year long subscription to three. €20 per month. It's cheaper than actually purchasing broadband.
Sorry kids, I know what was being attempted. Unfortunately it just killed. The pacing was all over the place. There were too many bad guys. The character development was surreal.
Here I am trying to maintain a system that was originally 'designed' by an idiot. Dates are stored using unix timestamps. When there is even the slightest kerfuffle involving the timezone everything gets horked as all the code referencing the dates uses the local time to determine when things happen. Blargh!
Forrest Gump is a good movie. I hate movies that make me cringe, this one doesn't. It is a carefully crafted collection of ups and downs designed at the end to make me feel more happy than sad. I do wish there could be more movies that end on the proper inflection. Sad is more likely than happy, and reality is a drug best served on it's own.
Grumpy? not really, just watching another of those convincing movies...
I'm sorry, in the last week I've heard 'terrorist leaving out his recycling' and 'bag of sand is a bomb'. People could you try to get some effing focus here. The chances of it being a terrorist attack are slim at best. Look at the track record - you've been walking around for the past ~20 years and you've never seen a terrorist attack in person; what makes you think that it's going to suddenly jump up and bite you on the ass. London had for many years lived under the spectre of IRA attacks, yet they still managed to do their business most of the time (barring the occasionally delayed train due to a suspect device). Honestly, tiny, piddly city in the US that thinks they're so important - eh, no, you're not. Get over yourself.
Jesus H christ on a stick! would you people please turn on your lights when you are driving in the rain. You are about as visible as a snowball in a snowstorm when it's raining. Take a grey car, add grey clouds and a greyed road coutesy of the grey rain. You think you could possibly be more invisible?
This rant was brought to you by the rain on the N7 coming back into the city. I never realized there were so many grey/silver cars.
Let's see. I have copernic desktop search, which injects itself into pretty much every process that's running on my desktop.
then we have the nvidia nview desktop manager, which is pretty useful in a multi-monitor setting. It also insinuates itself into every process that runs on the desktop.
The end result ... they keep hitting each other over the back of the head.
The remake of 'The Producers' is practically the entire original movie - word for word, with some extra musical numbers. I mean they didn't even try with this one. You would hope that they could at least try, but Matthew Broderick's acting in this was cardboard to the point of annoyance, not a touch on the original Gene Wilder one (simply without compare). Nathan Lane was a bit better, but didn't have the right level of desparation that Zero Mostel brought to the original one. Let's just leave Uma Thurman's role out all together, and Will Ferrell deserves to be clobbered for this one. Seriously, stick to the properly low-brow comedy like 'the ballad of ricky bobby'.

This is the end....

| 1 Comment | No TrackBacks
Sorry, that's about as good a title as I could put on this post. Seriously, what do you expect after a bank holiday weekend. It's Monday, and if you didn't have to work on Saturday then you don't have to work today either - I love the official statement on this, it makes my hungover head spin.
Well, I could not make it to Kerry this weekend. I have my reasons. Rolling exhaustion is the most reasonable item on the list - I could not make it out of the office before 6.30, which makes traveling on the Friday a little difficult. Then I got drunk. Repeatedly. For the entire weekend. Some of you know why.
I am feeling seriously self destructive at the moment. I put on the smiles, and I tell the folks that everything is all right, but the reality is that I am not a happy camper. It's been coming for a long time, I'm just a tad slow on the uptake.
Steam is a great idea. You get to download your games and you can play anywhere that you can log in to steam. The problem is that the prices of the games are a bit on the high side. For example today Eidos have announced a load of their games are now on steam. Hitman: blood money is $35.95. It's cheaper to walk into your local game store and get it there.
For some reason the re-release on steam pumps the price up over what you can get in the stores. And then it stays there. You get the occasional reduction in price, but overall the price of each game remains reasonably static for it's life on the system. Which is frustrating.
It was in my last full-time job. I brought the CD collection into the office. It occupied an entire large box in the office. I was ripping the disc on my desktop and parallelizing the mp3 encoding to a bunch of machines in the lab. It was easy. Honestly. God what a nerd. I even had the automated rip then eject so I would put the next CD from a stack of them into the drive. It still took over a month... and then there was the great hard disk crash of '05 - I had to re-rip them all and some of them got frelled from jitter.
Foo!
Until they occupy more than a 3-row strip of DVDs in the local shop I'm going to skip on them (more of acceptable quantity of titles!)

AMT is handy....

| No Comments | No TrackBacks
It's just a shame that you can't use it easily on Linux due to the lack of a driver to communicate directly with the hardware. It's the replacement for IPMI. Complete remote management of your servers (and desktops and laptops) through an always-on network connection (that is as long as you have power going to the box). All it needs is to be configured (not for the faint hearted) and then you need a machine to talk to it. Unless you're using a half decent windows server box (something that can at least pretend to be a provisioning server), you're screwed as you'll only be able to use it in small bunnies mode (business :). You can make a local ISO image on your computer act like it's in the CD drivce of the remote machine, you can PXE boot it from the command line (easy installs; easy cleanup!). It cooks, it cleans and it even sends out SNMP traps when something goes wrong (except of course for when the power goes out). It supports a watchdog (but it's not as easy to program for as the linux watchdog). Unfortunately you have to talk to the damned thing over SOAP. I mean really, wot are you like? It's like using a butcher's knife to perform and appendectomy.

Bugs in the process

| 2 Comments | No TrackBacks
many faces of alexIt's funny - the game seems to occasionally have a double image problem. I got a pair of alex characters in the game. One that follows me around, the other that acts like a spoiled child, being grumpy and causing problems. Last time, she got killed by a closing door and the game ended without me noticing anything. I loaded up the autosave today and it turns out I went a hell of a lot further in the game than I remember - I was really tired so that could explain things. I was trying to find information on the super io controller for the s3000ah motherboard (an smsc SCH5027), but can I find a technical manual for it? can I Frell! I reckon one day with the book and I would have most of the work covered. Love the world of can't tell won't tell.
colored piechart
It's a pie chart, and while some people find that using distinct colors is a distraction in this case the colors are so similar that you are hard pressed to determine which ones apply to what.
shame really, but this is one of the primary reasons for coloring the graph versus shading it - you would at least have the chance to read the bloody thing when the colors are correct

boinc keeps the house warm

| No Comments | No TrackBacks
I think it's a great and noble task that the BOINC project is performing. I just don't feel like using it at home; and here's the reason - I only have speed switching processors. When the CPU is kicking away at this work all the fans run full tilt and things get very noisy. I like the quiet; in fact most of the time I use a nifty tool called SpeedSwitch XP, which allows me to customize the frequency scaling policy of my laptop. When not doing anything CPU intensive I leave it locked on Max Battery, which restricts the speed to the minimum, and thus keeps the fans off most of the time.
Playing with the latest 2.6.20 kernel, I tried to enable paravirtualization on the kernel and it broke vmware. It looks like the XEN changes that went in should be disabled for the time being until there is a more recent release of vmware - prefereably one that can play well with others.
drug test dail eireann - sign the petition
Drug test our children! Please, drug test the members of the Dail to see what kind of drugs they must be on to suggest such a really frelling 1984-esque item.

Whiney applications...

| No Comments
If there's one thing I can't really stand, it's applications that whinge about everything that goes wrong with an array of practically useless dialogs. One of my biggest gripes at the moment is of all things Thunderbird. It has to be one of the most whiney applications. When things go wrong it pops up a dialog which generally has only one option 'ok'.
The most regular complaint dialog I get is because it's incapable of connecting to the mail server. Outlook has solved this years ago with the connection status bar at the bottom of the screen. When things go well, the notification goes away once the communication has completed. When things go wrong you get a 'send/receive errors' item in the status bar. It expands to a dialog which gives you the status of each of the activities it was performing at the time.
Thunderbird.... every failed connection is a modal dialog box with 'connection to foo failed'. I gather my email from many disparate sources and this is no end of an annoyance to me as normally when one fails they all fail.
Is is that there isn't a graceful way of bringing up failure notifications to users?

VAT me baby (play)

| No Comments
Apparently play.com are being naughty with the VAT situation. Pick a price in pounds. If it exceeds a certain value (£18) it is subject to vat in the UK. Make sure this is the case.
Translate the price to euro using something like XE's universal currency converter. Then click on the 'price in euros' button on play. They're pretty similar.
Read the fine print in the terms and conditions... item 26 states you will be charged tax where appropriate ... item 32 states only if you're in jersey. Apparently play are paying tax to addresses delivered in the UK, but not to addresses in other european countries (like Ireland).
So the long and short of it is that they're pocketing the tax difference and then when customs screw you on delivery of your item and add a €5 handling fee you have every right to be angry with them. Suddenly those DVDs aren't cheap anymore. Mind you there's a getout clause. If the value of the item does not exceed €22 then you should not be charged VAT on it. This information is outlined in the Customs Duty and VAT at Importation leaflet.
being at work again raises a few interesting issues. One of them involves the period over Christmas. It seems like there's nobody in the office (I am one of three/four). I have 0.6 days holiday left and I am troubled. Damn my work related guilt.

My Frelling Documents

| No Comments
The old new thing has a short article about the use of the My Documents, which links to a short entry about the use of the Documents folder on the Mac.
Let's see how many folders I have on my little box that are not of my creation
05/05/2006  13:39    <DIR>          ACT Projects
05/05/2006  13:40    <DIR>          AdobeStockPhotos
24/11/2006  19:30    <DIR>          Bluetooth Exchange Folder
04/12/2006  22:29    <DIR>          Borland Studio Projects
23/08/2006  17:15    <DIR>          History
04/05/2006  14:02    <DIR>          InterVideo
06/12/2006  22:01    <DIR>          Java Development
12/10/2006  13:07    <DIR>          My Albums
05/05/2006  13:49    <DIR>          My Data Sources
01/11/2006  15:29    <DIR>          My Digital Editions
29/12/2006  03:06    <DIR>          My Downloads
05/08/2006  16:19    <DIR>          My DVDs
08/08/2006  18:26    <DIR>          My Games
05/05/2006  13:53    <DIR>          My MMS
25/12/2006  21:04    <DIR>          My Music
28/12/2006  11:42    <DIR>          My Pictures
11/05/2006  10:19    <DIR>          My Received Files
05/05/2006  13:53    <DIR>          My Shapes
05/05/2006  13:53    <DIR>          My Skype Content
11/05/2006  10:19    <DIR>          My Skype Pictures
27/12/2006  22:10    <DIR>          My Videos
07/12/2006  14:43    <DIR>          My Virtual Machines
21/12/2006  09:34    <DIR>          My Widgets
12/12/2006  10:11    <DIR>          Nero Recode
05/05/2006  13:53    <DIR>          NeroVision
27/11/2006  14:40    <DIR>          PSP Games
27/11/2006  14:56    <DIR>          PSP Sync
06/10/2006  17:18    <DIR>          Rogue Trooper
05/05/2006  18:23    <DIR>          SimCity 4
15/10/2006  23:57    <DIR>          Source Insight
05/10/2006  20:16    <DIR>          Tomb Raider - Legend
05/05/2006  13:59    <DIR>          TT Installer Logs
14/11/2006  12:14    <DIR>          Updater
05/05/2006  13:37    <DIR>          Visual FoxPro Projects
17/11/2006  22:39    <DIR>          Visual Studio 2005
25/09/2006  18:02    <DIR>          Visual Studio Projects
I mean, what the frel is TT Installer logs? For the most part, all code goes into a version controlled sub directory, which is not under my documents (that would be silly). Bleugh... the save game location being under My Games is fine, but not in my documents; maybe under Application Data/Local Settings/Games would make more sense. You can't load them except from the game so why have them there.
My sister bought my Aunt a mobile phone. Dear god but it is such an unusable piece of crap. It reminds me of the worst things about the phone I first bought, but thought were really cool at the time. For example finding someone in the phonebook. Using a Nokia, Sony Ericsson all you do is tap the down arrow and you're browsing the phone book. No, apparently that is initially bound to 'voice memo'. Oops, you think, I'd better get out of that... it forces you to navigate back from where you are to the main menu. Time to look up a number using the non-intuitive 'phonebook'. Click. I'm looking at a menu asking me if I want to Search, Add an entry.... For crying out loud, the most common use of the phonebook is to look for numbers, so make that the default phonebook action.
Well, I may as well change the down shortcut to browse the phonebook. No such luck, there's no option to allow you to do that. The menus are a mess, there's no other way to get to the phone book except through the front end. The center button is bound to make an internet connection (which given fat fingers will become really expensive).
Non intuitive, poorly designed piece of dreck. I won't even mention the model number. It makes my heart hurt that this was a gift for a 70+ year old who has a hard enough time using her phone in the first place.

Isn't youtube great. It's a Dell XPS laptop, the display does this wierd tearing thing like it can't determine the refresh rate of the display. It happens occasionally on Windows, normally in a game when switching display modes. It happens with annoying regularity on Linux under XGL/Compiz, which leads me to the belief that it's a driver problem.

There is no notepad conspiracy

| No Comments
Apparently there is a Notepad conspiracy where it hides certain text from the user. The problem is that it isn't hiding it, it's just guessing the character set incorrectly. Raymond explains things a lot more eloquently than I. It seems to be a similar problem in the gnome notepad (gedit) utility - when it can't guess the character set it puts up a D'oh, I can't interpret this file message.
The msnbc website's entertainment drop down is utterly insane... It can be disabled but on my screen those little teeny tiny targets are difficult. Fitts' law anyone?

gerrymanderers are us...

| No Comments
It turns out that I'm registered to vote. Apparently the road I live on is split in two. Just a little on the scary side.
Another stupid email. Just some text and a 'click here' link that simply directs you through doubleclick/edgesuite. Put some effing useful information in the email instead of trying to data mine at every possible occasion. And no, the message says you have received an html email, but the content... it's all plain text.
Bleugh, for a message that claimed to be a piece of customer service information, the fact that it directs to a data mining site angries up the blood.

And another thing...

| 1 Comment
It's the world's most advanced operating system? I mean really, that's an overstatement. Hello! that's nothing more than a brag as there's nothing to back up the statement. Advanced for what? File systems? zfs! observability? dtrace! pretties on the screen? XGL! The ability to perform more than one name service lookup at a time? [ok, that's a cheap shot, I'm sure they fixed this]
Pants, complete pants I tell you!
It reeks of some form of elitism, and lets be honest using X for so long made a three button mouse mandatory, what with the middle button paste thing, which I love and try to recreate on the PC when using cygwin/X applications. Every time I look at a mac, I get this chill just thinking about the higher price tag along with the crippled bar of a mouse button. It's effing stupid. We still have double click for the primary select, and if you want a context menu you need to use one of the extended keys (honestly, I can't remember which) to get it to pop up. It's a really fricking broken model when you have only one button.
Send in the pie menus, my friends, send in the pie menus.

bulls don't have udders

| No Comments
I saw a trailer for some stupid animated farm movie. A male cow is a bull. Bulls do not have udders. All the cattle on the trailer - both male and female alike had udders. Could this be the first transexual animal movie for kids?
Probably one of the handiest features of C++ is the ability to create an object on the stack, and have it destroyed once the class has gone out of scope. This is because of the design of the language.
When you create an object using the syntax 'ObjectT foo' the object is instantly initialized, and you refer to each of the items in the object as foo.<whatever>. When the function returns the ObjectT's destructor is called to clean up the object. This happens for every class.
Borland have seen it fit to make their compiler barf when you use one of the Visual Class Library(VCL) classes to create an object. Personally, I find the fact that you have to then wrap the code in a __try__ __finally__ block to be a waste of my time. After all there is no rational reason for preventing me from using the variable on the stack, as stack memory is just as good as heap memory (I'm old skool me!).
All you're going to have on the stack is a pointer to a VTBL and the data concerned with the object; nothing more. If you have to cast it to a lesser object, then cast it to a lesser object. If you are using this object in another object (for example adding it to a collection), then use the proper syntax (in this case the ObjectT *foo = new ObjectT()). As a programmer you should know these things.
I would argue that the compiler should not protect us from such annoyances, but the reality is that to make better code we need more assertive nannies. All my C code is compiled with -Wall -Werror, which catches a lot of stupid mistakes, but doesn't catch a lot of normal problems. Sometimes I think I would be better in a garbage collected, reference managed, array overrun protected world... but where would be the fun in that? I like my assembly language, I'm more careful as I know every instruction counts. That and the fact that a review of assembly code takes significantly longer than the same review of C code makes me pray that the developers are paying more attention.
I'm getting annoyed with the number of programs that I have to exclude from DEP. Practically all of the palm simulators fall into this category along with all the securom games I've used.
Grrrr.
God, this one really annoys me. I've installed an application and it puts the shortcuts into the root of all programs. I move it where I want it to be (There was no choice on install). Then I run said program. Up pops the windows installer and recreates the shortcuts in the root of the start menu.
You ignorant stupid rat b*****d wh***son of a b****h. What; do you think you own my computer? Away with you and your crappy force fix of my choices as a customer. This complaint brought to you by shite software and a harkening back to why is there no programmatic access to the Start menu pin list. Thank you for small mercies.

This is really a WTF

| No Comments
I discovered this one in a state management routine - save the address of the database corresponding to the module that's loaded. It works until the program is restarted or the operating system is rebooted. I'm going to have to change it to use the name of the module instead of it's address. The only problem I can forsee is the presence of multiple copies of the same named module in the application path; That's just another thing to work out.
Firstly, it's cool that they are there. Rather than having to do something surreal involving runas, explorer and a couple of other things to allow you to run an application at a privileged level you now encounter the ubiquitous shield icon, which tells you that to perform this operation you need to acquire the appropriate privileges. It's a lot like the linux sudo, except by default you just have to click the 'continue' prompt instead of a password.
Pretty cool, even if you're an administrative user, you don't start with all the privileges that your group memberships provide.
Here comes the rub - I've stopped reading the prompts, I just find the one that tells me how to get to the next step and click on it. I'm not positive, but I think this is probably par for the course for other users as well.
Shame that, nice idea, but hamstrung by having too many things need administrative privileges.

Dead power brick on the laptop

| No Comments
The power brick on the laptop died. I have about 4 hours of juice left. It's the weekend, and support is closed. Thank crap for the warranty and NBD support. Grrrrr.
When I converted the id3 tags to v2.3 all the album art went to the correct format. Interesting issue that. By noting it here I hope that it will help someone else. iTunes has been great for this as it can convert between various tag types (from v1.1 through). I've shoved my collection to version 2.3 tags, and it seems to have solved the problem with the screwed up album art.
Let's see, a bulk change of many thousands of tracks should take all night.
Interesting thing that Windows Media Player 11 does to the artwork on albums you possess is to place them in a cache directory under %USERPROFILE%\Local Settings\Application Data\Microsoft\Media Player\Art Cache\LocalMLS. Each one is names after a guid, which is probably generated for each track in the collection.
I'm just wondering how difficult it would have been to use a hash of the image data as it's file name, and storing the hash in the media library instead of the pointer to the guid. This way when you have duplicate images (typically 10 per album), they are not replicated into the cache of images.
The other complaint is that I've got a bunch of black album art images. It's completely odd, as they seem to be completely ok inside in the file - other tools have no difficulty in examining them, and show correct icons. Maybe I should feed this back to them - after all it's a beta of media player 11.

google earth needs a reboot?

| 2 Comments
What? you're just some sloppy application.

Leaky email addresses

| No Comments
When I sign up to commercial services I create a specific account for receiving email for that account. When email arrives for that address from a third party I know that the account has been compromised in some way. Today's offender is audible. I'm not linking them as they don't deserve it.
For some reason the ^G character is not performing a 'default system sound' when it happens. No idea why, probably a misconfiguration on my behalf. It makes using a console very annoying - for example every exception on vmware produces an annoying beep when anything wrong happens.
The solution is in, of all places, the MSDN reference for Beep(), which states in small print to type: net stop beep followed by sc config beep start= disabled
Reenabling it involves typing: sc config beep start= system followed by net start beep
I hope you found this as useful as I did.

World Cup arrives...

| 1 Comment
While the rest of the planet goes crazy I'm painting :)

Ubiquitous Networking?

| 3 Comments
I was at Shannon Airport to collect the sister this morning. Sign up says 'free internet access'. You just need to register. Two problems with this - registration was be email and I could not connect to my mail server securely until I had registered. Secure web browsing seemed to be unusable - possibly because I was using self-signed certs from my home server (at $200 p/a for a cert when it's just for me is plain silly).
The other complaint was of course the everyone must use web 2.0. I cough politely, and remind people that not everyone has broadband access from everywhere. Considering that I use the laptop for most of my work, when I need to connect it's over GPRS, and that's just expensive from the get-go. You may complain about a 10cent text message (plus VAT) for 160 usable characters (which works out at 0.0625cent a byte), but the phone companies are charging 2cent for 1k of data. Not that I could ever get this working correctly. All those round-robin trips to the server could end up costing a fortune to the on-the-go user.
Well, rant, rant. It's such a lovely day I think I'll be outside.

What is wrong with me?

| 1 Comment
I recognised Ian Wright on the TV. I don't care one jot about football. It's official, I should be down t'pub to watch footie games.
Things are often left unsaid. I regularly don't say what's on my mind where my emotions are concerned. This has been a disaster as far as relations are concerned. I had one more chance to say what was on my mind, but no, I chickened out. Now I'm depressed. How much longer will it take to say things?

Waiting for Vista

| No Comments
It's my own limited homage to Samuel Beckett. :-)
Direct3D 10 (AKA DirectX 10) is a Vista only item. Considering the driver model changes for Vista I can see how you would have a problem shoehorning the API back into XP. The problem is that they keep delaying the release for various reasons meaning that the games keep being delayed. The longer you delay the OS the later it will be adopted. I'm not planning on an upgrade until I've heard a reasonable amount of feedback as I can't afford to waste time troubleshooting problems. Considering that everything native I'm developing has to be backwards compatible with Windows 2000, my upgrade path has been restricted somewhat.
The new toy has the dreaded 'Windows Vista Capable', which is a tad suspicious.
Christ, but it was annoying - I close the laptop case and shove it in the bag. I pull it out a while later and there's a dialog saying: 'Insufficient system resources exist to complete the API. And my hibernate tab is missing. A bit of googling led me to and entry in Bryce Yehl's weblog. I followed the guide, contacted Microsoft, got the hotfix and now hibernate seems to be working just fine. I'm running Delphi, SQL server Visual Studio have a few mounted CD images and things seem to be just fine - everything hibernates just dandily. All this because I have more than a gig of RAM? That's annoying to say the least.
This is one of my biggest bugbears when it comes to getting information from someone about the security facilities that are in a system. They comment that the system is secure wave, wave, there's no chance of somebody defeating the security wave, wave, no-one would try to break in wave wave. It's silly to assume that because you're dealing with money that nobody would be interested in your system.
I suspect that paypal have had to deal with substantial issues in their tenure as the de-facto e-money system on the internet; Mind you I think that Second Life, with their exchangable Lindens are some form of competition to this (not serious yet).
A statement such as 'this is secure' needs to be backed up with proof.
When you perform secure internet transactions the communications take place over an encrypted channel. These security measures are built into the web browser. When a website tries to communicate with you it hands over a digital certificate that says 'this site is www.foo.com' and 'this authority' assert that I am who I claim to be. Several checks are made. 1. is the site www.foo.com? 2. is the authority 'this authority' an authority that is trusted by the browser? 3. Is the certificate 'in date'? If all is found to be in order then the assertion that the site is 'www.foo.com' is to some degree established. That's it, the only thing you know at that point is that the website is called 'www.foo.com'.
If you're trying to go to 'www.f00.com' then you're in a bit of trouble here, though!
More thoughts later, I need to get some lunch.

Depends, really

| No Comments
Some people think that make is a terrible piece of software. Honestly, it is just awful for modern projects with large numbers of dependencies. Header file dependencies become a problem. There are options to auto-insert the dependencies on header files into the makefile. Subdirectories are a problem - isolating certain code in directories is tricky. You can use the VPATH feature to provide a certain level of automatic path traversal without over-complicating the makefiles, and for trickier features you have the :sh= [svr] or $(shell ...) [gnu] options to pass the work off to the shell or a script. Still the best thing about make is that it completely evaluates the dependency graph for targets; explicitly forbidding loops (or self reference).
Then we come to software releases, and their dependencies. You can't install X without Y. you can't remove X without remving Y. Removing X will break Y therefore you can only remove X and Y together. Good idea. Difficult on customers, though. They want an 'add/remove programs' option which installs and uninstalls all the needed components. I recently bought Sin Episodes from steam. It auto-installed Sin 1/Sin Multiplayer. I wanted to uninstall Sin 1/Sin Multiplayer. You can't Sin 1 depends on Sin Multiplayer. Sin Multiplayer depends on Sin 1. Perfect cyclic dependency preventing you from uninstalling. Uninstalling means going in and deleting the .gcf file. Ah well, that's life, I suppose.

Does 'x' mean close?

| No Comments
Depends on the application. Most applications on windows will take the clicking of the red x to mean close the application. Others take it as a hint to minimize to the notification area. However most applications will give you the choice once and remember it from then on. KDE applications tend to take the minimize to notification area, gnome applications go away (but fear the one process gnome-terminal). Close should mean close.
Close to hidden is even worse - I've seen a few applications close to a still running, just hidden from you, mode. They run as a service while they're in that mode, even if they're not designed as such; it is a cheat for quick start.
gedit being helpful gedit has this nice feature where it asks you what character set encoding a document is in if it can't decide this for itself. I'm not familiar with the mechanism that is being used for this, but it probably has something to do with ninja badgers, character counting and a telepathic link to the borg collective. The problem is that if it has to give up on guessing what the file is, there's no way to force the file to be opened as any file type at all. I encountered this when trying to access some old data that had trailing NULL characters at the end of the file. The problem is that there's no 'mangle it to this file type and show it to me' option.
Disable the Composite extension in /etc/X11/xorg.conf
For me, this solved the problem.

Where's my ROT13?

| No Comments
There i am reading rec.humor.funny and I encounter a ROT13 joke. I can't find the ROT13 button/choice in the menu structure of Thunderbird. Has this arcane skill been lost to us? <sarcasm>I must compose a letter of complaint to the Times. I think they should know about such an egregious omission</sarcasm>.
Finished Splinter Cell. Way too much fun to be legal. I decided to return to F.E.A.R. and the 1.03 update. I reinstalled the game, applied the correct patch, and still could not run the game. It took about an hour to find my solution to the problem. From the VU Games Community Forums we have, down at the bottom a link to securom that contains a replacement binary for F.E.A.R. so it now works correctly again. For those of you who care, this is just to get the game to work, you still need to be legal.
I download the european version of the patch. Bleugh, another 200MB download. I apply the patch and now the game no longer works as it claims the game DVD is incorrect. Piece of s**t. There's no way to unpatch the program so I uninstall it to reinstall it. I forgot to have the game manual handy. Hunt the install key.
Could it be that having Splinter Cell and F.E.A.R. installed on the computer at the same time could be causing problems? Or was it an incorrect patch, as it worked before I applied the patch.
Annoying, I'll just have to stick to playing Splinter Cell until I'm finished it.
I bought FEAR last week. It informed me that there was an update to the game to bring it up to snuff. Took about 25 minutes to download it and started to install. It then displays the following:
This Update is only compatible with the English (United States) version of F.E.A.R. Please use the correct Update for the installed version of the game.
This was the auto-update tool that came with the application. What a waste of my bandwidth!
Aaaaaaargh!

I had a nightmare last night

| No Comments
It started out quite simply. I was with a few friends in an internet café just shooting the breeze when I noticed this perceptual shiver run through all the people there. When I asked what was going on nobody was talking. Finaly I convinced one of my friends to tell me and he informed me that one of the folks from the data retention section of the Gardaí was here to install the recording software for the shop.
This was in foot of the new legislation that had been introduced for the storage of all internet communications for an arbitrary time. Every bit was being recorded just in case it needed to be checked at a later time for terrorist activities.
This nightmare took a strange turn when I examined the data gathering software. It was performing a simple data dump of everything that was passing through. Because of the vast quantity of data, nothing was being done to ensure that it could not be tampered with by anyone should they have access to the data. At a later point one of my friends found himself in court facing a criminal charge of conspiracy to commit murder based on the content of one of the logs that had been recorded.
It's scary, but it is possible for it to happen. The question beomes how do we ensure the integrity of the data that is in the recording? If you wanted to prevent accidental tampering with the data, then using some form of checksum on individual blocks of data would provide for that, however a malicious tamperer could simply alter the checksum for the given blocks to prevent their detection. Based on the quantity of information being gathered, you could chain the checksums. Initialize the first block to some random piece of information. checksum it. For the next checksum initialize it from the content of the previous checksum. The principle is used in various encryption systems (Cipher Block Chaining). If you wish to tamper with the data in-stream you need to alter the checksum from the point of alteration to the end of the recording.
As simulteneously you have a program continually writing new blocks of information to the storage device, you would need to either (a) insinuate a program that would alter the checksums as they are written to the device, or (b) interfere with the recording program to possess the new checksum just prior to the next write to the device, thereby having it perform the updating for you.
Both techniques are not impossible to perform, in fact the first is downright trivial. The only way of bypassing this sort of tampering is to ensure that the recording device is isolated in some way from the data that it is recording.
For this purpose, it would need to be a specially assembled recording device which possesses two fail-hot network interfaces as it's only method of communication to the outside world. A fail-hot network interface pair is one that when the power is removed simply keeps the network traffic passing through without interruption.
Secondly it would just record the data, it would have no interpretation capabilities. The reason for this is to remove any chance that it could be subverted through maliciously formed network packets.
The box should be tamper-evident. by having this facility, any efforts to extract the data through physical manipulation of the recording device would be easily noticed, thus rendering the data recorded inadmissable in a court. Tampering with the device would be a criminal offence.
The device would need to be regularly inspected, hot-swapping new devices for old ones so the data recording could carry on uninterrupted.
I encountered a real dunderhead of a program. It claims to be completely NT, 2K and XP happy, yet it doesn't tell us it needs administrator access because it creates it's temp files in C:\, yes, the root of the C drive. There is a perfectly good API available for making good, clean temp files - it's called GetTempFileName. for a bonus there's GetTempPath, which gets you a directory for creating temp files, and this directory stands a really good chance of being user isolated (being that it's %USERPROFILE%\Local Settings\Temp on most NT based OSes). But no, you go and ruin my perfectly working ordinary user program by insisting that you run as administrator. Bloody not written by me sub-programs. You deserve great pain for what you have done.

Hitting a nerve with Web 2.0

In an article by Andrew Keen, he rants somewhat about Web 2.0 being a bit too reflective on ourselves. I find myself agreeing somewhat with the problem of reflection. Being that this is my blog, of course the whole thing is reflexive from the get-go, but bear with me. The web is a dangerously filtering medium. Web 2.0 makes it even more so. Communities of likeminded individuals keeping to their own interests. I'm tempted to make a roulette style take me somewhere new website that is as random as possible. Of course any mechanism I would consider using (search engine based) would of course not be completely random.
I'm getting annoyed with the virtual community building. we need to build real communities.
I had a minor complaint some time back about the lack of consistency amongst the various windows APIs, they seemed to be written by people who chose one mechanism one day, and another the other day. The reality is that in such a large company as Microsoft, the different groups were consistent amongst themselves, the problem was that they were not consistent amongst each other.
This brings me to the rant du jour. When one finds oneself reading/writing assembly language, the code is platform consistent. For example on x86 the format is: operator parameters,destination. So, mov 0xffffffff, %eax means put the value 0xffffffff into the register eax. On Sparc the parameter and destinations are reversed so mov %l0,0x110011 means put the value 0x110011 into the register l0. It's quite easy to see one from the other because you are aware of what platform you are on. Sun, for reasons best known to themselves reversed the order of the parameters - probably to make them more like the Solaris 'native' format and easier for their developers to follow.
All very fine and well, Sun are entitled to confuse native x86 developers all they want, and besides which, because of the consistency, it is a really easy switch.
My mini bugbear is of course, the bcopy function. It performs a block copy from a source to a destination. It's part of libc, it's simple, it's easy to use, the only problem is that it is in the reverse order from all the string routines (dest, source), memmove (dest, src). If you look up the definition of bcopy it generally asserts that it is implemented in terms of memmove, and if you look at most implementations you find that bcopy just swaps the in and out parameters and then invokes memmove (I believe the exception is sparc, where this is the opposite). This is why bcopy is officially off my list of functions to use. It's simply the one lone voice of dissent amongst all the consistency that libc affords.
Who made bcopy then?
Dermot has a mini-rant about this on his blog. It turns out that in order to do most anything useful on journalspace you need to pay for it. For example exporting RSS2.0 feeds is a premium service, which makes allowing rss readers access to your site (last updated pings, for example) costs you money. Being able to post from external applications (via XML-RPC) is another premium service, making cross blog synchronization difficult.
I suppose that is the price of using a free service.
Uninstalling Visual Studio .NET. It's taking an age. All this so I can install visual studio 2005 and hockey things up again :)
I thought I had it, but I didn't. I still can't find out the reason. Currently, after each post I re-read the table by closing and opening it. The table is a small, local, temporary table for recording information before posting it to the real database so I don't really care that the exception is triggered.
Now, I'm getting DbgBreakPoint exceptions. This was in a simple showmodal call, so I have no idea why it's there. Apparently it might have something to do with opening the table concerned.
this site is not designed for minors. With that in mind we have created this really crappy test for you. If you can input a date of birth that means you are over a certain age then we will permit you entrance to our web site, otherwise please leave.
Problem number 1, anyone over the age of 18 (or, shock horror for drinks sites 21) gets sick of these things coming up so often. I mean come on people, just a button saying 'i agree, I'm over the required age' is a much better mechanism, because invariably the implementors of the web site in question have used some gorram flash animation that doesn't take key input, and can't deal with nerds typing dates.
The only time I got a kick out of something that insisted I was over a certain age asked me questions that were unlikely to be known by an under 18. The game was Leisure Suit Larry and it had a good collection of questions. I'm not certain, but I think they were age related, so if you claimed you were of a certain age then a different set of questions were sourced. you had to get three questions correct, and could fail two, after which it kicked you out.

Integrated updates

| No Comments
I saw a recent complaint from someone that Apple should open up their system update interface to other developers. I agree, this should be done. It would be a boon for consumers.
However, it should also be done for Windows as well. Currently only Microsoft products (and a few drivers) are integrated into Windows Update, which is a real shame.
What hurts on your typical PC is the sheer number of update mechanisms that are installed on a machine in order to ensure that software is kept 'up to date'. Typically each of them installs their own scheduler that performs all the update checking tasks. Liveupdate, jusched, realsched. There's probably a scheduler for you anti-virus software as well. The complaint is that on Windows 2000 and newer there is a perfectly good task scheduler on the machine (there was one earlier as well, but that's not the issue, really). It can do everything that you need for scheduling - one offs, once a week, once a day, once an hour, every third Thursday of the month. Why can't developers use it?
It's 11pm and you still tell us that the show has graphic scenes (CSI:Miami), come on, this is well beyond the watershed.

Apparent laydeez in the area

| No Comments
My filter keeps missing them - bloody bayseian filtering; maybe I should go back to keywords.
Annoying, and generally incorrect. If you're trying to sell me worthless, internet pseudo-intercourse then you could at least target it better.
Well it seems to be a problem for me - I'd love to get more work done on Pocketcity, but these bloody episodes of CSI on UK Living (I used to work there) are distracting me horribly until really late at night.

Energy Drain

| No Comments
I have a problem with emotional situations - they tend to drain my energy completely. On Tuesday morning, my sister-in-law's father passed away. I was directing traffic around the house last night, and got home sometime after 11pm. I was, to say the least, shattered, even though I was doing nothing more than waving a torch and walking people from their parking place to the house (to protect them from oncoming traffic).
Every funeral occasion in the last year has left me drained; even if they were only slightly connected to me.

Aww, Pat Morita has died

| No Comments
Quite a few people died this week, not the least of which was Arthur (Artie) MacGrath, George Best and Pat Morita.

Bad Motorola, no cookie for you

| No Comments

My old, unreliable mobile phone died a couple of days ago, and I needed to buy a replacement. I'm not able to upgrade my phone for another 2 months so I decided to buy a pay-as-you-go phone and just slip my SIM into it (same network, no issues with locking). People who know me, will understand that I have a liking for flip-phones, so I went for the Motorola V3 (Razr). Aargh! christ, but the phonebook is the biggest piece of shit I've ever come across. I understand this misbegotten need to have the phone book maintain some compatibility with the SIM, but for christ's sake, they need to get their act together on this. Practically every contact in my phone book has two entries, in fact most have 3. On the motorola phone book every contact is a separate entry on the person list. This means I have to wade through 2+ entries per person to scroll from one person to the next. Factor in that I store people's full names on the phone, in surname order, wading through the 9 Shanahan's in the book takes a long time. It always integrates the SIM contacts onto the phone book. There is no visible option to disable this 'feature' (my SIM contacts always were a backup of my phone entries), so I end up with loads of duplicates (or purge my SIM). I can't send my entire contact details to someone, I have to send it piece by piece. It shows the email addresses interspersed with the phone numbers which is pointless most of the time.

The next complaint is really a bit of a click-fascist thing. You know what I mean by this - it just seems to take an extra click or two to perform some tasks. Just enough to annoy perceptibly.

Then there's the syncing software. Following the really annoying splash screen - slow, irritating and serving no purpose, we are presented with a rendering of my phone on the bottom right corner of the screen, a bunch of icons and no idea what does what without mousing over one of the icons and seeing what it does, based on the tooltip! Come on people, tooltips cannot replace text! Apparently I can dial numbers from the number pad (never would have guessed at that). The only way to pop up the menu is to hit a box that's about 20 pixels square, replicating the menu button on the phone itself. Too small to hit easily, and there is no keyboard navigation, unless you can guess at the magic hotkeys. Most of the hard work is farmed off to other applications, none of which share details of the current state of the phone (contacts, calendar), each sub-application launch causes the data to be re-read, which takes ~30 seconds each. None of these sub-applications are keyboard navigable (bugbear of mine). Quitting the application requires either clicking on the really small off switch, or doing the acme Alt+F4 close the window trick. Practically everything visual about this application could do with a rewrite.
On the plus side, it does synchronize, which is it's primary role, but I just wish it wasn't so annoying about it.

Badly implemented phonebook aside, practically everything else about the phone is good. It's small, neat and call quality is great. I've not tested the bluetooth functionality very much so I can't say either way on it. Over all, I'd consider it a good replacement phone, but unless something good happens with the phone book, I'm not planning on buying another Motorola phone in the forseeable future after this one.

Now if only I could make my own phone book. I wonder if it's even possible on these kinds of phone. Maybe I should check this out.

Ooh! this one really annoys me. I'm using iTunes for syncing with my iPod. But when I'm playing music on the desktop if I right-click on anything in the explorer and don't select something really fast iTunes stops playing the music. What a piece of junk.
This one is beautiful. If you get an unhandled run-time exception in the public void main(String args[]) method then your application simply won't launch. You should make sure to intercept all exceptions in the main class and then throw up a simple error dialog.
Of course this doesn't work if you are missing a class in the distribution, the exception happens before you get to the main method.
Quick tip: enable and show the java console (JavaCPL on linux, java control panel under windows) it's under Java console in the Advanced tab.
[Listening to: Funny Break - Orbital - Orbital (4:56)]

More phishing

| No Comments
I got an email purporting to be from paypal, asking me to download a security tool that will help protect my computer. Well guess what, it doesn't (well duh!). It turns out to be changing the NameServer entries for all the interfaces in in the registry keys under SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces to something else. Firing up a disassembler, we find out that the value it's trying to set is:
aRstpuucpuucpur	db 90h			; DATA XREF: start+Ao start+101o ...
		db  98h	; 
		db  92h	; 
		db  8Fh	; 
		db  93h	; 
		db  93h	; 
		db  96h	; 
		db  8Fh	; 
		db  93h	; 
		db  93h	; 
		db  96h	; 
		db  8Fh	; 
		db  93h	; 
		db  90h	; 
		db  99h	; 
		db    0	;  
Not surprisingly, this is not a kosher string, it's been encoded. One of the first things the code does is decode this, using the following bit of code
sub_0_40107E	proc near		; CODE XREF: start+Fp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, eax
		mov	dl, [eax]

loc_0_401086:				; CODE XREF: sub_0_40107E+15j
		test	dl, dl
		jz	short locret_0_401095
		xor	dl, 0A1h
		mov	[ecx], dl
		mov	dl, [ecx+1]
		inc	ecx
		jmp	short loc_0_401086
<sarcasm>Terribly complicated</sarcasm>. The code xor's each value in the string with 0A1h. We can step by step this, or you can trust me that it's 193.227.227.218. A traceroute reveals that it's probably somewhere in romania (.ro top level domain)
Tracing route to 193.227.227.218 over a maximum of 30 hops

  1     1 ms    <1 ms    <1 ms  10.0.0.71 
  2    57 ms    21 ms    23 ms  b-ras1.lmk.limerick.eircom.net [159.134.155.24] 
  3    21 ms    22 ms    20 ms  ge15-2.corea.lmk.limerick.eircom.net [83.71.114.97] 
  4    36 ms    36 ms    35 ms  83.71.112.94 
  5    36 ms    40 ms    39 ms  london1-br2-fe0-0.rdsnet.ro [195.66.226.46] 
  6    54 ms    53 ms    52 ms  fra2-cr1-ge5-0.539.rdsnet.ro [62.231.127.89] 
  7     *        *        *     Request timed out.
  8    89 ms    90 ms    87 ms  constanta1-cr1-vlan25.rdsct.ro [212.93.137.51] 
  9    94 ms    88 ms    96 ms  constanta1-fo-vlan10.rdsct.ro [212.93.137.10] 
 10    89 ms   101 ms    90 ms  81.196.163.89 
 11    95 ms    95 ms   101 ms  cr1.micos.ro [193.227.226.254] 
 12    91 ms    96 ms    97 ms  193.227.227.218 

The short answer is never run code that you're uncertain of the origin of, and 2. never run code that you're uncertain of the origin of.

Quick XOR tutorial. Exclusive OR. Either A is true or B is true but not both. so 0 xor 0 = 0, 0 xor 1 = 1, 1 xor 0 = 1, 1 xor 1 = 0. Each hex digit is a run of 4 binary numbers. 0 = 0000, 9 = 1001, A = 1010, F = 1111.
90h xor 0A1h == 1001 0000 xor 1010 0001 = 0011 0001 = 31
Conveniently, 30h = '0', 39h = '9' and 2eh = '.', so it's easy to translate them.

Broken hard drive again!

| No Comments
Again with the broken hard drive. Oi! I should invest in a RAID solution at this rate. Lost a few desktop configuration items, but other than that everything seems to be hunky dory. Adobe products needed reactivation again! Activation of software bites the big one.
[Listening to: Year 2000 Non-Compliant Cardia - Mogwai - Come On Die Young (3:25)]
There's an article on Computerworld that Microsoft is telling us that multicore chips are changing PC software design, but that not enough people are programming multi-threaded applications to take advantage of this feature.
Let me tell you, writing multi-threaded code is really easy. Writing correct multi-threaded code is the tricky part. Most development frameworks are not Multi-Thread safe. This means that you can't use it willy-nilly from multiple threads at the same time (it's primarily a resource assignment issue). So you have one thread that performs all the GUI work. Then you have to coordinate to have either the data or something close to rendered detail for the GUI thread. Then you have a barrage of threads performing various other bits of work. Of course, don't forget that making an application too multi-threaded has negative effects.
There is a subtle difference between multi-processor and multi-threaded processors which means that an mt-processor isn't the same functionally as separate cores/processors (shared resources, this being the whole -threading implication behind the name), so just throwing arbitrarily extra work at the mt-processor won't gain you much. The OS needs to know this information to schedule more intelligently, so adorning the threads with informatiion about the related data-affinity can gain you significant performance boosts (the OS schedules different threads more intelligently). The problem is that you need to export this concept to an application programmer. Guess what, it's generally too complicated for anything less than the most processor intensive tasks.
Generally, having the extra threads/cores/processors means that you get an overall system performance boost, it's just that the OS stops the isolation granularity at the process level. Operating systems have been designed around the 'complicated process, simple thread' principle. You don't want to change the balance of complexity moving back into the threads, we'll just end up with a sub-thread concept, and my head just hurts from that (atoms, quantum elements).
So what does the average joe programmer do? How do you find places that are suitable for parallelizing? How do you then 'fix' them up? Well, unless your program needs parallelism in the first place, it's actually difficult to retrofit it into a pre-existing design.
Well, there's a ton more stuff on this that I would like to get down, but it's 2am, and I need to get some sleep. More in the morrow.

Skeptic

| No Comments
I've been bemused by the TV programs such as 'Most Haunted' and 'Most Haunted Live', where they are claiming to be encountering spirits in places. I think they're nothing more than cheap entertainment à la 'The Blair Witch Project'. I can't see how people can be convinced that these things are true. The mediums they have on the show have knowledge of the locations, they're playing on the fears of the people there, and they're good at reading people. It's a scam, and harmless entertainment. The only problem is that it's convincing people that this stuff is real.
[Listening to: Interview: Fraser Cain interviews Tony Youens - Skepticality - Skepticality - Science and Skeptic Thought (46:09)]

Debugging LoadPackage

| No Comments
Well this one is a complete pain in the ass. I've been trying to debug plugins in Delphi. It looks like the use of LoadPackage isn't allowing us to debug the plugin. This is really annoying; it makes work difficult.

Annoying installations

| No Comments
This one is a real pain in the ass.
For some reason the installation of the Visual Fox Pro 8 SP1 OLEDB provider left all the registry keys installed were not readable by ordinary users, so when I tried to execute my application as an ordinary user didn't work as the 'provider wasn't installed', whereas it's just permissions.
Registry Keys that needed permission changes:
HKCR\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}
HKCR\CLSID\{50BAEEDA-ED25-11D2-B97B-000000000000}
HKCR\CLSID\{50BAEEDB-ED25-11D2-B97B-000000000000}
HKCR\VFPOLEDB
HKCR\VFPOLEDB.1
HKCR\Vfpoledb.ConnectionPage
HKCR\Vfpoledb.ConnectionPage.1
HKCR\VFPOLEDB.ConnectionPage
HKCR\VFPOLEDB.ConnectionPage.1
and the SOB still won't work. Permissions on the files in OLDEB directory seem OK. Then I had to copy registry information into the user's environment:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes]

[HKEY_CURRENT_USER\Software\Classes\CLSID]

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}]
"OLEDB_SERVICES"=dword:ffffffff
@="VFPOLEDB"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\ExtendedErrors]
@="Extended Error Service"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\ExtendedErrors\{50BAEEDA-ED25-11D2-B97B-000000000000}]
@="VFPOLEDB Error Lookup"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\Implemented Categories]

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\Implemented Categories\{D267E19A-0B97-11D2-BB1C-00C04FC9B532}]
@=""

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\InprocServer32]
"ThreadingModel"="Both"
@="C:\\Program Files\\Common Files\\System\\ole db\\vfpoledb.dll"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\OLE DB Provider]
@="Microsoft OLE DB Provider for Visual FoxPro"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\ProgID]
@="VFPOLEDB.1"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\TypeLib]
@="{50BAEECA-ED25-11D2-B97B-000000000000}"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEED9-ED25-11D2-B97B-000000000000}\VersionIndependentProgID]
@="VFPOLEDB"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDA-ED25-11D2-B97B-000000000000}]
@="VFPOLEDB Error Lookup"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDA-ED25-11D2-B97B-000000000000}\InprocServer32]
"ThreadingModel"="both"
@="C:\\Program Files\\Common Files\\System\\ole db\\vfpoledb.dll"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDA-ED25-11D2-B97B-000000000000}\ProgID]
@="VFPOLEDB.ErrorLookup.1"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDA-ED25-11D2-B97B-000000000000}\VersionIndependentProgID]
@="VFPOLEDB.ErrorLookup"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDB-ED25-11D2-B97B-000000000000}]
@="VfpOLEDBConnectionPage Class"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDB-ED25-11D2-B97B-000000000000}\InprocServer32]
"ThreadingModel"="Both"
@="C:\\Program Files\\Common Files\\System\\ole db\\vfpoledb.dll"

[HKEY_CURRENT_USER\Software\Classes\CLSID\{50BAEEDB-ED25-11D2-B97B-000000000000}\Programmable]
@=""

[HKEY_CURRENT_USER\Software\Classes\TypeLib]

[HKEY_CURRENT_USER\Software\Classes\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}]

[HKEY_CURRENT_USER\Software\Classes\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0]
@="Microsoft OLE DB Provider for Visual FoxPro 7.0 Type Library"

[HKEY_CURRENT_USER\Software\Classes\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\0]

[HKEY_CURRENT_USER\Software\Classes\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\0\win32]
@="C:\\Program Files\\Common Files\\System\\ole db\\vfpoledb.dll"

[HKEY_CURRENT_USER\Software\Classes\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\FLAGS]
@="0"

[HKEY_CURRENT_USER\Software\Classes\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\HELPDIR]
@="C:\\Program Files\\Common Files\\System\\ole db\\"

[HKEY_CURRENT_USER\Software\Classes\VFPOLEDB]
@="Microsoft OLE DB Provider for Visual FoxPro"

[HKEY_CURRENT_USER\Software\Classes\VFPOLEDB\CLSID]
@="{50BAEED9-ED25-11D2-B97B-000000000000}"

[HKEY_CURRENT_USER\Software\Classes\VFPOLEDB\CurVer]
@="VFPOLEDB.1"

[HKEY_CURRENT_USER\Software\Classes\VFPOLEDB.1]
@="Microsoft OLE DB Provider for Visual FoxPro"

[HKEY_CURRENT_USER\Software\Classes\VFPOLEDB.1\CLSID]
@="{50BAEED9-ED25-11D2-B97B-000000000000}"

[HKEY_CURRENT_USER\Software\Classes\Vfpoledb.ConnectionPage]
@="VfpOLEDBConnectionPage Class"

[HKEY_CURRENT_USER\Software\Classes\Vfpoledb.ConnectionPage\CLSID]
@="{50BAEEDB-ED25-11D2-B97B-000000000000}"

[HKEY_CURRENT_USER\Software\Classes\Vfpoledb.ConnectionPage\CurVer]
@="vfpOLEDBDLink.ConnectionPage.1"

[HKEY_CURRENT_USER\Software\Classes\Vfpoledb.ConnectionPage.1]
@="VfpOLEDBConnectionPage Class"

[HKEY_CURRENT_USER\Software\Classes\Vfpoledb.ConnectionPage.1\CLSID]
@="{50BAEEDB-ED25-11D2-B97B-000000000000}"

[HKEY_CURRENT_USER\Software\Classes\VFPOLEDB.ErrorLookup]
@="VFPOLEDB Error Lookup"

[HKEY_CURRENT_USER\Software\Classes\VFPOLEDB.ErrorLookup\CLSID]
@="{50BAEEDA-ED25-11D2-B97B-000000000000}"

[HKEY_CURRENT_USER\Software\Classes\VFPOLEDB.ErrorLookup.1]
@="VFPOLEDB Error Lookup"

[HKEY_CURRENT_USER\Software\Classes\VFPOLEDB.ErrorLookup.1\CLSID]
@="{50BAEEDA-ED25-11D2-B97B-000000000000}"

Of course, if you've installed it somewhere else then you should not use the C: prefix, but whatever the installation drive is (e.g. j:).

It's really not C++, is it?

| No Comments
If I want to find out about anything in Windows, you have to go through one of the bazillion Enum functions. These creatures take a callback function which they invoke with information on what is being enumerated, along with a variable (typically a void *) that contains data where you can put the results of the information (for example putting it on a list).
Interestingly, there are a few exceptions to the rule. File I/O tends to be of a different character - FindFirstFile(Ex), FindNextFile, FindClose. Of course the person writing the API could have added the word 'File' to the end of 'FindClose'. That way they would all have a matching function style. But there's no accounting for taste.
We wander over to the C++ (or practically all OO languages) and the design immediately changes to an enumerator. For C++ it's the iterator, You get an enumerator in Java (and C#). The Enumerator doesn't look like the old create another stub function to implement this handler trick, the handling code is inside a set of braces ({}).
I presume it's the vagaries of the different teams working on the solutions to the problem and the fact that at the time people were designing the solutions they didn't think there was a better way. With the enumerator, the caller keeps the state of the enumeration to themselves, they pass the current item and a pointer to the handling function. When the enumeration is finished you are guaranteed that there is no remaining state left over and that all the handles are cleaned up before you return to the caller.
It seems to be more of a caller vs. callee cleanup exercise. Nowadays we have scoped destruction of objects and garbage collection to deal with the state destruction. What's more it means that you still aren't depending on the potential binary instability of the oo function call definition. The typical OO implementation uses an implied this parameter passed to methods to carry the object information. It allows clever developers to create functions that mimic OO methods without actually being functions of the objects themselves.
If you're clever, you can replace VMT entries with functions of your own creation that can be written in C. Convenient that.
An annoyance of programming Windows is that WinMain must be a static function. If you want to have a WinMain method, you need to perform trickery. One of the most regular methods of doing this is to use SetWindowLongPtr and store the address of the object in the private window information. This has the potential of being quite expensive. Every time you invoke the method you have to issue a GetWindowLongPtr call to extract the pointer, and then indirectly invoke the object's implementation of WinMain.
There is a more evil mechanism that uses self rewriting code. But that's for another time.

Cable Guy

| No Comments
This one is annoying - I have to download the meter readings from the diabetic meter for my father. The connection is serial. It's using some fricking wierd ass connection (looks like a headphone jack) to connect it to the meter. The problem was it was missing. My brother, being a pharmacist has several meter connectors. Every one of them are different. Granted there is an age variation between the hardware, but it's now cheaper to make a USB connection rather than a plain serial connection and as an added bonus you can use the same connector for all of them! Think of those of us who have to keep one of each effing connection around the shop. What's worse is that some of them look similar, but don't work with the meter.
Then let's not start talking about the reporting software. It's some ancient thing. It can't print to a network printer, so I have to print to a pdf and then print the PDF. Granted, there is the if it's not broke don't fix it, but I had to rearrange the serial port configuration on the machine - the USB adaptor assigned COM18 for the serial connection, and the software goes to 4. Yes, you read correctly; 4.
Probably something written with visual basic too (cheap shot).
Let's not talk about power connectors. Most nokia chargers are compatible - but beware of chargers from other countries. Sony-Ericcson have this wierd connection which regulary does not work because of grit in the connector. Motorola change their connectors regularly. I've not seen a panasonic phone in a while, but I would not be surprised. That's just the phones. Then there's the camera, the PDA, the external hard drive, the iPod, the other PDA.

Mandatory trailers

| No Comments | No TrackBacks
I know, it's an old complaint. On DVD's there's a bunch of logic on the disc to prohibit you from skipping certain things - like the copyright notices in two billion languages. Disney and Warner are bad, putting trailers for movies before you get to the main menu. You can skip them by hitting the menu button, but the most painful thing I find with the trailers is that they have dates on them, like 'coming to a cinema near you in June 2004'. Software DVD players can be convinced to skip the trailers - see software like DVDidle for that.
Then there's the computer games. Big, loud, 40 second trailers, and 10 of them all in a line. One for the developer, one for the distributor, one telling you that this graphics card kicks your graphics card's ass, one for the physics engine, one for the banana maker who supplied the developers (ok, the last one was a joke, but I mean really). After launching the game 20 times or more, the only things I have to say are - effing annoying crap, cut to the game.
[Listening to: The Video Games Show #70 - 09/12/05 - Hoss, Nickel & Rich - The Video Games Show - 64 kbps (59:50)]

iTunes text artifacting

There's a small visual hiccup with the latest iTunes (version 5). I don't know if it's my use of ClearType for the display, or what, but when I retab into itunes it seems to suffer from the artifacting until a repaint is forced.
These images have been doubled in size from what's on the screen. The first one has the ghosting/artifacting.
has ghosting
The second doesn't have the ghosting.
No ghosting
It's not me, I'm certain I can see the artifacting, I'm almost completely convinced that it's cleartype, as I had a similar problem with gvim and, of all things Delphi when I used TrueType and OpenType fonts. The fix for that software was to use a fixed-face font.
Ok, that's definite then. I installed the Microsoft ClearType tuning wizard, and poked the configuration until I was happy with it and I can't see the artifacting any more. What I'd like to know is why Microsoft don't ship this in the control panel, because damn, but it makes me much happier with cleartype.
[Listening to: Cracked Actor - David Bowie - Aladdin Sane (3:01)]

New 'features' with iTunes 5

In the beginning there was the iPodService and the GearService. Along with the iPodService, there was the iTunesHelper, which in theory speeded up the launch of iTunes (yeah right), but is really to allow the 'auto start iTunes when this iPod is plugged in' option to work, along with supressing the auto-start handler for the iPod when it's plugged in. Later releases of iTunes stopped shipping with the GearService, which meant one less thing running under the hood, but now iTunes 5 ships with a new feature: 'Bonjour Service'. This is zero configuration networking in action. My problem is that it's another Network service running on my machine. I'm of the impression that every open port is another potential way in for crackers and other not-nice people. The feature of talking from one iTunes library to another was embedded into the application, but now a large piece of this feature has been handed off to this new service.
[Listening to: 09/07/05 Majority Report - Air America Podcasts - Majority Report - Air America Radio (1:53:15)]

Microsoft versus Adobe activation

I upgraded my laptop - more memory, and a larger hard drive. Not a difficult task, the longest piece of the job was resizing the partitions after dd'ing the smaller disk onto the larger one. Windows worked without a blink. It didn't consider the upgrade reactivation-worthy (which is good). Acrobat was a different kettle of fish - I needed to activate it again. I'm pretty much convinced that the activation data is based on the hard drive - probable the model and capacity. The tell-tale sign for this is that it refuses to work when you are running partition magic. As partition magic's documentation is in PDF, this makes things quite silly. This is 'slightly' covered on the activation FAQ, which mentions that if you low-level format your hard drive you'll lose the activation information.

Update to the update

Turns out that the thieves were stealing only good gold items (there was an article in the newspaper). Mind you, they would have had a more lucrative haul if they'd stolen other stuff as well like PDAs, laptop computers, but I'm not one to complain about this.

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?

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 :)

Star Dust (factual errors)

stardust segment Ok, teacher tells their class that the moon is not out during the day! How whacked is that. Then also proceeds to tell them that all rivers flow south. Downhill maybe, but south! this smacks of something out of 1984.
Reminds me of the occasion that I got screwed in a general knowledge quiz over the question... how much light does the dark side of the moon receive as a percentage of the overall light the moon receives. The reason why the dark side of the moon is called the dark side of the moon is that it is not generally visible from our perspective. The moon takes about 29 days to rotate on it's axis; almost exactly the same amount of time it takes to orbit around the earth. If we see the same side of the moon all the time doesn't that mean that when the side we see is a new moon (dark) the other side is bathed in light! Dammit, that was a fricking tiebreaker question as well.

facts vs. factoids

This would be attributed as a whine from me; more or less. I'm regularly seeing people saying 'factoid' and then attributing it to a fact. The problem with factoids is that they are not true, they are not a miniature fact. Facts are facts; no matter how small or large the are.
The problem is that the reason whay factoids are called factoids is that they have the appearance of facts, but they are not. For the most part the reason why they are so is that they have been repeated so many times that they are attributed as fact.
Consider the oft touted 'fact' that Sweden has the highest suicide rate in the world. This is a true factoid. It originates in a speech of a US president, and has absolutely no basis in fact. It was used to argue that the social system in the country does not help the people in the country; for after all; they're fucked regardless of how much money they put into it.

Knobbled

I came home to find my laptop had rebooted into linux (a much more sane operating system), without any information, I looked at the event log and found that I was being hit by the limit to te number of TCP/IP connections that can be made per second. I hit this when I open a group of bookmarks in firefox! There is more detail here, but the long and short of things is if you attempt to make more than 10 connections in a second you are rate limited, and a message is logged in the event log. It's not tunable in the registry, you need to hack the tcpip.sys file directly. I presume the reason for not allowing the registry hack is to prevent virus writers/trojan horse writers from making alterations to the registry value, thus removing it's capability. Annoying, but work-aroundable. SpeedGuide.net :: Windows XP SP2

The perils of undo

Aaargh! I just lost 10 pictures from my holiday because windows deleted the files permanently when I selected an undo operation from explorer! Windows must die the partially helping piece of shite that it is, at least with UNIX you know you're operating without a safety net, and while you may mess up at least you know it's not because the OS was being too helpful with it's undo operations.

Pulling a wookie

| 3 Comments
Ok, first time ever I've missed a flight because I was too pissed to wake up in the morning. Let's recap, I went drinking with fintan and lester in sydney, and left them at about 12.30 in the morning to get back to home. Of course, I got mega mega sidetracked getting back to the accommodation - I was giving ego advice to a bunch of goths - being drunk, I'm sure they appreciated it for what it was - drunken advice. I was woken in the morning by a thumping on the door - didn't I have a flight to get and I was supposed to be checking out - they never talk to you except to throw you out.
What did I forget? my shampoo and conditioner. I now have to go find the bloody stuff again before my hair turns into a tangled mess. Maybe it's time to get it cut - Liz's input at this stage would be a resounding yes!
Of course, I'm sitting in the airport thinking... should I check my work email or not. This is of course rhetorical - the next time I expect to look at it is between the 25th and the 31st of December.

schnozz bleed

Why do I keep getting these ninja stealth nosebleeds? I was coming home on the train and my nose started leaking red liquid (that's blood for you freaks). This seems to be an occasional thing for me. Maybe I should talk to a doctor about this?

ATM Machines! ATM Machines!

Dear God,

Who the hell makes up the news reports. I was listening to the news today and they help talking about ATM Machines! It really gets on my goat that they keep using this dire redundancy. It's an effing Automatic Teller Machine, stop using the extra machine at the end, otherwise It's an Automatic Teller Machine Machine, which sounds completely annoying.

Grr,
Pete.

Vanished

It's like trying to find the grail. Except that the end result of this is more likely to be ulcers than enlightenment.
Arglebargle. It's all about the housemate.

Coffee

What is it with the coffee shop in the Business park, you'd swear they think they are the only folks in town. Their coffee is burned and bad. I've drank better instant and that's not saying much.
I only deigned to have the coffee because I ran out of my own stuff and I will have to say that they are just as bad now as they were several months ago. Maybe they need someone to tell them how to make it so that it isn't burned?
As it is it's cheaper to get the coffee on the bean from Gloria Jeans in town and grind and make it myself rather than drink the muck that they consider to be coffee. I must go in there today and get myself another couple of punds of the good stuff. that will keep me going for a couple of weeks at least and keep me from wanting to throw boiling water over the folks in the shop.

Light clothes syndrome

Of course it would have to happen. Light clothes attract the most stain causing materia on the planet. Today it's tan pants and a mocha. Laundry time again.

What is it with the rain?

Every morning for the last week it's been really nice. I've been able to wear my sunglasses, which is quite an occasion. However as soon as I've got to the office the weather starts to deteriorate. Clouds roll in and the wind starts howling. By the time it gets to the end of the evening and I'm off home it's still like that.
Stranger and stranger.

How difficult?

How difficult is it for a music playing application to remember where the
hell I was during the last run? I have a pile of long running files (lectures,
audiobooks) and I can't bookmark a piece within them.

Still not used to the 'bring it back the way I had it before' concept then
are we?

About this Archive

This page is a archive of recent entries in the Complaints category.

Apple iPhone is the previous category.

Computers is the next category.

Find recent content on the main index or look in the archives to find all content.