Alastair’s Place

Software development, Cocoa, Objective-C, life. Stuff like that.

Abuse of Prisoners in Iraq

Like all citizens of the United States and United Kingdom, I have been appalled by the tales of our troops abusing Iraqi prisoners, and I trust that our leaders, both political and military, will take any necessary action to prevent recurrence of these problems.

However, what makes me even more angry is the fact that the media seem intent on publishing photographs of this abuse, regardless of the cost that doing so may have in the lives of British and American troops, not to mention the lives of innocent Iraqi civilians that are likely to get caught-up in the middle of any unrest that this causes. Publishing such photographs is unnecessary, grotesque, and sometimes verging on indecent, as well as being unhelpful to the fight for a free and democratic Iraq. It is also, I imagine, doubly humiliating for those Iraqis depicted, which makes it hard for anyone involved in such publication to legitimately claim the moral high ground.

Media companies that do find such material in their hands should hand it over to the appropriate authorities, rather than engaging in what could easily be described as profiteering from the abuse of Iraqi prisoners. I have no problem with the press reporting the issue—as long as such reporting isn't intentionally inflamatory—but to my mind the publication of photographs is a step too far.

Update

The photographs apparently showing British soldiers abusing Iraqi prisoners were faked. This doesn't come as a great surprise to me, as they arrived shortly after the revelations about U.S. forces in Iraq, and frankly if I wanted to disrupt relations with British troops in Iraq, publishing faked photos of them abusing Iraqis would seem a very good way to go about it.

Also, Piers Morgan, the tabloid editor responsible for the photographs supposedly showing British soldiers abusing Iraqi prisoners, has been sacked. Sadly, he was sacked because the photos were a hoax, whereas I think he should have been sacked merely for publishing them… still, we can't complain too much.

Sasser and Yet More IT Incompetence

It astonishes me that in all the coverage of the Sasser worm, nobody has pointed-out that corporate and government installations simply shouldn't be suffering from Sasser, because they should be properly firewalled. Sasser spreads via three port numbers, the usual Netbios port (139) and two other ports (9996 and 445). It should, therefore, have been stopped by corporate or governmental firewalls, as there is no good reason to allow connections from the Internet to those port numbers.

What I would really like to know is why the people responsible for this fiasco still have jobs? Goldman Sachs, the European Commission and the UK Maritime and Coastguard Agency should have called for the immediate resignation of IT staff for gross incompetence of this nature. I'm certain that they'd ask security staff to resign if they were robbed because the building was unlocked and unprotected, so why should IT staff be able to get away with the IT equivalent?

Why Write Freeware or Free Software?

Someone called Brian just posted a very interesting comment on my blog; specifically, he asked

I would never create a software and then give it away for free. What is the point? How am I going to get a reward for the work? If a dentist filled teeth for free he would die of starvation, wouldn't he?

The reason that I say this is interesting is that people have very different views on the subject. I’m currently working on some commercial software of my own (well, actually, I’m in the run-up to selling it… it’ll be on the market this month), but in the past I’ve worked on both freeware and Free/Open Source Software, so I thought I’d explain my motivations for doing so.

Freeware that I’ve released in the past includes:

  • A Yahtzee-like game for the Atari ST, implemented as a desk accessory.

  • WinPager, which was a desktop switcher for Microsoft Windows.

  • qccdasm, which disassembles compiled Quake C code so you can see how it works.

Interestingly, I managed to lose all the sources for the above. Still, I don’t use those platforms at the moment so it doesn’t bother me too much.

So why did I write those programs? Well, mostly because I wanted them. I know, it’s hard to imagine someone needing a Yahtzee game, but at the time I thought it’d be nice. And why didn’t I sell them? Three reasons, really:

  1. I didn't think they were worth anything. Or rather, I didn't feel that the amount that they were worth justified the hassle of selling them.

  2. I didn't want to have to provide the level of support that people are reasonably entitled expect from commercial software (even shareware).

  3. I didn't feel that I was likely to continue developing them in the long term. This is related to the support issue, in many ways.

So, that’s freeware.

How about F/OSS? I’ve worked on two F/OSS packages and submitted patches for a third, specifically:

  • I did a lot of work on GCC to make it work as a native Win32 compiler, including better __attribute__ support in C++, anonymous structs (and anonymous unions in C), and MSVC-compatible #pragma pack() support. I even had some scripts at one point that could patch the Platform SDK so that it worked with GCC (well, to some extent, anyway). Of course, others have taken the work that I did and improved upon it, fixing mistakes that I'd made or modifying the code to be acceptable to the maintainers.

  • I've also submitted patches for GCC for a few other features, like being able to specify the instruction sequence to use for a function call (this is useful on PalmOS and Atari platforms, where system calls use trap instructions rather than plain branches).

  • I rewrote large chunks of the XEmacs clipboard code so that it could support multi-format clipboards (like on Windows and the Mac).

  • I also wrote an RTF package for XEmacs, that allows you to export RTF from a formatted buffer, preserving all of the fonts, colours etcetera. This plugs-in to the enhanced clipboard support and means that, on Windows, you can copy syntax-highlit code to the clipboard… which is a boon for people who write design documents as it makes them a lot easier to read for very little extra effort.

  • I wrote code to implement rlog and list commands for CVS (where rlog means remote log, rather than a synonym for log). I don't think the code that implements the rlog command in newer versions of CVS is actually mine, although I don't know.

Looking at the above, you'll probably see that I tended to contribute to F/OSS whenever I needed it to do something that it didn't already do. Perhaps that makes me mercenary? Or maybe just pragmatic?

I've worked on commercial software too, for my previous employer, Telsis Limited, who make telecoms switchgear, SMS handling kit and those kinds of things. And I'm currently working on my own commercial software. Actually I've pretty much finished working on it and I'm onto the more commercial side of things now.

Doubtless RMS and ERS would argue that there's no future in commercial software; I don't really agree. I, like many others, think that there's probably no future in fully commercial operating systems, at least not unless Microsoft successfully manages to obtain legal protection for its monopoly, through whatever means (software patents appear to be the current favorite). I'm a little dubious that F/OSS will eventually subsume all other software development methods however. For one thing, people like me have to earn a living, which isn't realistically going to happen if we can only sell support.

For another, there's no clear motivation, particularly for those fortunate enough to possess some level of talent at graphic design or UI design as well as (or instead of) coding. Put another way, graphic designers and UI designers can't sell support. There's no incentive for them to work on F/OSS; UI design is hard, takes a lot longer than many people think (well, it does if you do it properly), and only takes a moment to destroy.

I actually think this is the key area were F/OSS falls down. It's very good in areas that academics, computer scientists and programmers are interested in. Where it isn't so great is on the desktop; most of the GUIs that I've seen from the Linux community in recent times have been poor copies of Microsoft's user interfaces, partly, it seems, by design. Microsoft themselves were never tremendously good at UIs, although they are a damned sight better than a lot of the professional programmers working on their platform.

I'm actually intrigued as to the reason that the Linux community, which is usually very anti-Microsoft, has decided in both of the major desktop projects (Gnome and KDE) to produce what is essentially a clone of the Windows UI. I wonder whether it's because the only UI experience that has been shared by many of the developers is that of Windows (or Motif/CDE, which, somewhat horrifically, was based on Windows 3.1). However it came about, I think it shows a lack of vision as regards UI design, and I don't think it helps the chances of Linux as a desktop operating system.

Anyway, John Gruber's excellent Daring Fireball articles say it all… take a look at Ronco Spray-on Usability and the corrections and clarifications.

More Plumbing…

Today we got a new water softener, which you would have thought would have been a fairly simple piece of plumbing, especially given that we already had a very similar water softener in place (albeit a broken one).

Predictably though, it became more complicated than it should have… the controller on the water softener doesn’t have have the thread for the appliance connectors—instead, you are supposed to screw-in a 3/4” joiner, which is all well and good, apart from the fact that it seemed to be impossible to get it to seal properly, even with PTFE tape. Eventually, after several extremely frustrating hours of repeatedly attempting to get a decent seal with just PTFE tape, I got fed-up and added a couple of rubber O-rings, which have sealed the system nicely.

Anyway, all in all, a very frustrating day spent plumbing rather than doing what I wanted to be doing, and just to cap it all, the people who were going to buy our house have pulled-out at the last minute, leaving us £500 out of pocket because we’d just put a deposit down on a new house.

Unexpected Plumbing

Well that disrupted my day. This morning, we turned-on the taps in our house to discover that the water was full of small, spherical, amber-coloured particles. Well, some of the taps, anyway… after a bit of experimentation, I managed to isolate the problem to those taps that draw water directly through our water softener, which gave me a big clue. The fact that the particles were so uniform, both in colour and in approximate size and shape, was another clue that they were man-made rather than natural in origin, and I finally realised that they were, in fact, the resin from the ion exchange column in the water softener. Which means our water softener is kaput.

Anyway, thankfully the water softener is easy to isolate, so the problem is fixed, for now—although we are, of course, now stuck with hard water, which means we use more soap and also that we need salt for the dishwasher (which we didn’t have, so I had to go and get some). Plus we’ll have to descale the kettle more often.

Not the most auspicious start to a Sunday, I think you’ll agree. Still, as unexpected adventures in plumbing go, it could have been a lot worse.

Finally, the Logo Is Right on IE/Windows!

Anyone viewing this site from Internet Explorer on Windows will have noticed that the logo in the top left seemed to have a grey background rather than being the same colour as the rest of the page. This didn’t happen on other browsers, because Internet Explorer is the only modern, graphical, browser that doesn’t support transparency in PNGs.

Those of you that develop your own web pages may say, at this point, well, that’s not hard to fix, however the solutions that are out there at the moment deal with <img> tags, whereas the logo on this site is done using a background-image: setting on the CSS body style.

If only Microsoft would fix its broken browser. Their Mac team did it, because transparent PNGs work fine on the Mac version of Internet Explorer, but, sadly, the PC version still isn’t fixed.

By Popular Request

…I’ve added an e-mail link to the sidebar on the right hand side.

If you use a browser that doesn’t support Javascript, or the Javascript support is disabled, you’ll find that the e-mail link is replaced by a request for you to post a comment. The Javascript is there to make it harder for spammers to harvest my address; but don’t despair, comments posted on my weblog reach me just as quickly as e-mails.

Also, comments don’t put your e-mail address on the Internet, so posting a comment on this site shouldn’t cause you to receive any additional spam that you weren’t already getting.

Possible Outages

I’m currently fiddling with my site a bit (actually, I’m rearranging the directory structure), so there’s a possibility that my site could go down at some point. If it does, then please accept my apologies for the outage.

Update: I’m done fiddling now.

Company Formation

This is one of those things that seemed a bit daunting at first, although the more I found out about it, the less awkward it seemed to be.

Anyway, I have incorporated a company (in fact, it was incorporated yesterday) through which I can sell my products. The next few things to do are:

  • Transfer the 1 share that was subscribed to by the company formation agent into my name.
  • Decide on the accounting reference date (currently this is 31st March, which means, coincidentally, that the company's accounting year runs in step with the tax year… I am undecided as to whether or not this is a benefit).
  • Decide how to invest money in the company (e.g., whether all of my investment should be in the form of share capital, or whether I take another route).
  • Open a bank account for the company.

I should also be getting a form from the Inland Revenue, which I will need to complete and return to them, although if I don't receive it within a sensible amount of time I'll need to contact them.

And on top of all that, I'll want to register for VAT.

Once all of that's done, I'll be pretty much up and running!

My Project (Again)

It’s now so close to being finished. I spent almost all of today and yesterday trying to get one of the UI elements just right, before realising that the reason that I couldn’t make it work how I wanted was that I was going about it completely the wrong way ;-> That’s now fixed, so there are just a couple of bugs left to fix in the user interface, then I can get down to some serious testing, manual writing and starting-up a company to sell the thing.

I’m pretty excited, frankly, and I’ll probably find it hard to sleep tonight (although that is in part due to the large amount of strong coffee I drank earlier today…). It’s nice to see the work I’ve been doing coming together.