Archive for October, 2006

Today’s good deed

Monday, October 30th, 2006

I haven’t done a good deed today, so perhaps yesterday’s was a one off after all. Then again, I’ve barely left the house - too much work, not enough time, today.

The closest I came was being polite and respectful to a call-centre droid, when what was really called for was an unrestrained tirade of abuse. I don’t really buy the “just doing their job” excuse though - there comes a point where you have to take responsibility for your own actions, and if you work for an immoral organisation, you’re immoral too. Otherwise, where do you draw the line? If I’m the guy who comes round and says “nice shop you’ve got here, it would be a shame if anything happened to it”, can I shrug that off if I’m just a salaried employee of the real gangster. No. And of course, the Gestapo were just doing their jobs. There, I’ve come up against Godwin’s Law in a conversation with myself.

So why the uncalled for manners? I suppose deep down I realise that the call centre droid doesn’t know any better - a successful product of the school system if ever there was one. Also, if I’m honest, then in a twice-removed (via a couple of contracts) sort of way, I’m guilty of exactly the same thing. Isn’t hypocrisy great.

I’ll leave it as an excercise for the reader to work out what particular kind of call-centre droid I called. Wait a minute - I am “the reader”, and I know already. That was easy.

Flying Carpets

Monday, October 30th, 2006

I don’t care what the European Patent Office think - as far as I’m concerned, Professor Zagyansky must be a genius on a hitherto unknown scale. Read here.

Anyway, a bit of research reveals that the good Professor (of what and where I’m not sure) has quite a history of this kind of thing, but trying to find out more about this hero of warped science reveals one of my favourite tricks that Google likes to play. If you search for “Yuly Zagyansky” (quotes included) it suggests that perhaps you meant to search for “Yuly Zagdansky”. Well, perhaps I did, you say, and click the helpful link. Haha, says Google, no results for “Yuly Zagdanksy”.

Good deed for the day

Sunday, October 29th, 2006

I seem to remember that it’s a good idea to do a good deed every day, and I reckon it counts even if the recipient is only a sheep. If that’s the case, I’ve hit my quota for once. Trekking through the fields with my barrow of shit, a regular Sunday pastime, I spotted one of Blossom’s expensive cousins (see previous ovine post) stuck on its back.

These posh sheep are not nicely rounded like your everyday common and garden sheep - no - they are almost square. As such, once they get on their backs, they stay there until they die, which it appeared from a distance to have already done. Luckily, as I got closer, I saw a hoof waggle forlornly, and with the farmer being out at church, it was left to me to heave (they’re as large as they are square) the stricken brute to its feet. It stood there stunned for a few minutes, but eventually meandered off to join the rest of the flock.

With this in mind, I’ll sleep well tonight, and only hope tomorrow serves me up another good deed on a plate. This time I’ll be ready with the mint sauce.

(Blossom, incidentally, being round does not get stuck on her back, though she regularly gets her head stuck through the fence. I don’t regard freeing her as a good deed though - more of a pain in the arse. When will she learn?)

Tickling the Alphabet Pal

Monday, October 23rd, 2006

I was intending to write about the Alphabet Pal, but a quick Googling reveals that so many people have beaten me to it that I might as well just link to them instead:

Other than this amusing trait, it’s a highly irritating beast which I’m sure we’ll come to deeply regret purchasing. If Mia didn’t like it so much, I’d have accidentally stepped on it already.

Opening up the Open University

Monday, October 23rd, 2006

This Wednesday sees the offical launch of OpenLearn, a project to make content from The Open University’s courses freely available on the web. Most interestingly, the content is available in XML format, and can be downloaded, used and modified under a Creative Commons license.

The site is available now at http://openlearn.open.ac.uk/, though I hope the content there currently is a work in progress, as it is rather thin on the ground. The site doesn’t give much information on what they intend to make available, but perhaps I’m jumping the gun* a bit.

They’re using the open-source “course management system” Moodle as a platform. It’s the first time I’ve come across it, and first impressions are good. I am left wondering though, having slapped this on a server and populated it with some data, what on earth they are doing with £5.65 million over two years. Either there’s a lot more to come (fingers crossed) or the price of green suits with leather patches on the elbows has skyrocketed over the last few decades. Flippancy aside, this is a very interesting development and I hope it goes well.

*I’ve found three contradictory but seemingly sound explanations of the origins of this phrase so far.

What I learned in school

Sunday, October 22nd, 2006

I can’t honestly say I learned anything useful in school. I did sit through a lot of tedious lessons, where teachers attempted to explain the contents of the textbooks to those who found it difficult, while simultaneously attempting to control the unruly element that weren’t interested, and the unruly element who already knew it. I was in the latter group, for the most part. If I didn’t know it already, I read the textbook during the aforementioned fiascos they called lessons. Where the textbooks left questions to be answered, the teachers dutifully responded with the time-honoured “you don’t need to know that”.

I suppose I did learn how to look after myself in an uncontrolled, vicious and often violent institution, but I’m not aware of any equivalent in adult life other than prison, so I won’t count that since I very much hope I won’t ever find it useful. It certainly wasn’t a bad school, by the standards of the day, and certainly not by today’s standards, but nonetheless I believe I came through it physically unscathed only by some good fortune, and use of my wits. Others weren’t so lucky of course, and while I merely found it mindnumbingly boring, frustrating and irritating, I can remember many poor souls whose school lives must have been an absolute misery.

Since I left (albeit at the earliest possible opportunity) with almost a full set of grade A’s, I had always assumed the education system would have considered this a success story, despite the fact I’ve never needed the qualifications. However, over time, I’ve come to the conclusion that it actually failed very badly in my case - I’d just misunderstood the real intention. I came out of ‘the system’ with my thirst for knowledge and ability to learn and think for myself intact - hardly the ideal worker bee or consumer sheep that the ‘corporate state’ intended.

Anyway, rather than continue my verbose and pompous version of “school is rubbish”, I think I’ll post a few links to things I’ve been reading lately on the subject:

  • John Taylor Gatto’s “The Underground History of American Education” - the whole book…
    here
  • A shorter article by Gatto…
    here
  • Roger C Shank’s “dangerous idea”…
    here
  • What is education anyway?…
    here

Yes, I really am using LJ to store links I might want to come back to later, rather than using Firefox’s perfectly functional bookmarks. Actually, while I think about it, sooner or later someone who has been subjected to one of my lengthy rants on why I hate blogs and bloggers is going to stumble across this and laugh loudly at the hypocrisy of it all. I still maintain nobody is interested in the random thoughts and nonsense found in most blogs, particularly this one, but I’ve come to realise that writing something that might be read is a good way of focussing your own mind. I suppose I should apologise to those bloggers that cottoned on to that idea before I did, but who the hell is going to read this far anyway? Nonetheless, I can read this myself in a couple of years (or maybe tomorrow) and have a good laugh at myself. That’ll do for me.

A work of art!?

Sunday, October 22nd, 2006

Though usually immune, I have caught a disease of the mind…

For the first five (more if I feel inspired) people to respond to this post I promise to produce a small work of art. This might be a painting, a musical composition, a card or even a poem. It will be written/made with you in mind. If you want it to arrive by post in real life you will have to email me your address and I swear not to divulge or misuse it. (Though you might get a Christmas card as well). Otherwise I will be limited by what I can post online.

The only other stipulation is that you repost this message or your own version of it on your lj.

Google Code Search

Thursday, October 12th, 2006

There’s been much talk of Google’s new Code Search lately, which has struck me as rather odd because there’s nothing new to see or talk about at all, but at least it inspired Eric Sink to recount an interesting story: Eric Sink on Code Catalog

The Rise and Fall of Microsoft Development Tools, Part 1

Thursday, October 5th, 2006

I would say that though not the oldest hand in town by any means, I definitely qualify as an experienced user of Microsoft development tools. Nonetheless, what follows simply documents my history of using them (or not) rather than anything more general, and contains much personal opinion, vagueness and inaccuracy, for which I don’t apologise since I’m not writing for anyone’s benefit but my own.

For the period from 1987 to approximately 1990, where their MSDOS served as the operating system for my development platform, but the actual tools were from elsewhere - mainly cross-assemblers with proprietary hardware links to various 8 and 16-bit CPU based machines. The most notable amongst these were Andy Glaister’s PDS (for Z80 and 6502) and Cross Product’s SNASM (for 68000). Both came with proprietary hardware that turned the target machine into a willing zombie, able to accept complete memory dumps at a moments notice, and be debugged at the hardware level with full control of the CPU. This was the ultimate development environment, the pleasure of which I’ve never had again since.

From 1990 onwards, MSDOS became both the target and the host for development, sadly both on the same machine. An 8086 version of PDS was always promised, but never arrived - this became a running joke to the point that deep within the extended hidden “boss screen” on the PC version of Star Wars we included a cheeky ‘tribute’ by way of a mock-up (the emphasis on the mock) of the source code of said vapourware. Initially, we used a lightweight but good 8086 assembler which I think was called asm86, developed by a one-man band whose name I forget. In the end, this gave way to MASM, the first Microsoft development tool in the story. MASM was a good quality assembler, and very stable, but it quickly lost out in our eyes to Borland’s TASM (Turbo Assembler) which was ahead of the game feature-wise and had a less clunky syntax. So much so, that we were still using TASM until the end of the decade.

Until 1994, our main projects remained 100% assembler using these tools, but from this point onwards they began to incorporate an element of C/C++ which grew over the next 5 years to probably 95% of the total source in a finished project. For the early part, while the target remained MSDOS, Microsoft tools still failed to feature, with our compiler of choice being Watcom C++. Eventually though, the advent of Windows 98 and Direct X warranted an immediate mid-project switch to targetting Windows. At this point, it didn’t take long for us to decide to switch to Microsoft’s C++ compiler. It must have been solid and stable in that role, because I don’t have much to say about it. Then again, since it was invoked from our own build tools and we didn’t use the IDE, all it had to do was compile properly, which it did.

When DirectX was initially announced, I must admit I never believed Microsoft were capable of pulling it off. While we considered ourselves graphics and performance gurus, Microsoft had consistently demonstrated little or no understanding of any of the issues involved. We were streets ahead, and I dreaded what was coming, since good or not it was invevitable that it would come to dominate desktop 3D graphics sooner or later, and for a long time. The profusion of diverse graphics hardware would inevitably reach such proportions that only Microsoft would have the resources to support them all,  and the DIY talk-to-the-hardware option, though invariably superior, would become uneconmical. In the end though, I was proved wrong, and by DirectX 5 or 6, it had become a very respectable platform. The sub-optimality always grated in the background, but you just couldn’t argue with the practicalities. In short, I consider DirectX to be one of Microsoft’s finest triumphs, past and present.

Visual C++ 5 and 6 were my first day-to-day-use experience of working within a Microsoft IDE. These were used for GUI-based applications, both front-ends and launchers for lower-level applications, and as stand-alone business applciations. The majority of these used Microsoft’s MFC class library, which was their C++ class library which provided a thin wrapper over the Windows API - thin enough to punch your way through with little effort, which is good because MFC lacked so much functionality that it was never long before you had to do just that. MFC is widely despised, but once you come to accept the countless idiosyncracies and see it for what it is, I actually think it’s always been a better alternative to direct API access, although there are those who strongly disagree - e.g. Reliable Software. Whatever the right and wrongs, I still have a number of live (i.e. actively used and maintained) projects hosted under Visual C++ 6 and MFC.

Part of the Visual Studio 6 platform was Visual J++, Microsoft’s short-lived attempt to achieve some Java lock-in, and though I did various bits of serious Java development during that period, their moribund effort thankfully never featured, and their JVM went the same way. Java is undoubtedly Sun territory, and it’s probably no coincidence that during this period their Solaris became the first non-Microsoft OS to make an appearance, ignoring occasional hobby tinkering with Linux. Pre-Windows 98, if there was an OS at all (and more often than not, there wasn’t, our code started from the beginning of the boot sector) it existed only as something from which control should be wrenched on startup. MSDOS was the in between stage, we kept it alive in a limited sense to provide a filing system only.

In parallel to this, I’ve had considerable experience in the trenches with Visual Basic 6. From a technical standpoint, VB6 is a terrible abomination of a development tool, which was never in any way suited to professional software development. Used well, it was a shaky foundation for any non-trivial project. On a project where it was abused, you could see enough material to supply The Daily WTF with material for a month without even touching the scrollbar. Technical matters aside, what VB6 had in its favour was accessibility to a wider audience, one which included a higher proportion of people you would actually dare to put in front of  a customer, and rely upon to get out of bed in the morning - those for whom coding is a necessary evil, not a sacred art form or precision engineering. One thing’s for sure - there’s an awful lot of VB6 code hard at work out there right now performing business-critical functions and providing idiosyncratic home-brewed user interfaces to the desk-bound workers of the world. So in the end, it has to be said that VB6 got the job done, albeit frequently in a Heath Robinson style.

Thankfully, when VB6 gave way to VB.NET, and Visual Studio .NET in generally, it did so rapidly. Despite the name, VB.NET is a far cry from VB, although by way of some bizarre compatibility features (which can and should be ignored) and semi-successful automatic project upgrades, it’s not too difficult to port a project across. In fact, I’ve now come to appreciate it as a valid language for professional development, semantically equivalent to C# (more or less) but with a more verbose and noddy-style syntax. Visual Studio 2002 and 2003 were basically good development platforms with 2003 representing, for me, the peak of the curve that gives this post its title.

In addition to VB.NET and C#, Visual Studio introduces a new flavour of C++, Managed C++, as opposed to the original, which we now refer to as Unmanaged. In a nutshell, we are talking about C++ integrated with the garbage-collected .NET runtime environment. I passionately dislike garbage collection, though always with a resigned realism in mind. The whys and wherefores could easily fill another post, so I’ll cut a long story slightly shorter by not recounting them here.

Version 1 of the .NET framework, I have always thought, is a superbly designed and implemented piece of software, well documented and with a highly functional development environment in VS.NET 2002/2003. It’s not without it’s horrors of course, one highlight being the rotten and ill-considered DateTime implementation, which we are now stuck with - for one aspect of this, see the first question in the BCL Team’s FAQ on the subject. It’s nice, and sometimes necessary, to have this level of access to the inner workings of the development team though, so I hope they don’t read this and take a less open stance in future. Anyway, without going into too much detail, the horrors are the exception, not the rule. I had, and still have, a lot of respect for the .NET framework at that point in time. That last sentence does make sense, if you think about it. Within the IDE though, we start to see the first signs of unpleasantness to come, and various other spectres loom. This is a good place to end part one of this tale. Part two will be downhill all the way…..