Archive for the ‘Uncategorized’ Category

August 22, 2007

Microsoft has a way about them. It’s quite unmistakable. They’re all for “ease of use“, which sounds fine, except you don’t quite know what is meant by that.

I’m all for giving someone a fighting chance, so instead of merely repeating other people’s criticisms, I decided to try some of Microsoft’s products.

I borrowed a book, “C# Weekend Crash Course” by Stephen Randy Davis, from the local public library, intending to get myself up to speed in C#, since I now had legally, courtesy of the local major tertiary institution, a student’s ID, and Microsoft’s own student’s release of Microsoft Windows XP, and Microsoft Visual Studio 2007.

So I start entering the example code in the book.

It works. Fine, I’m on the right track.

Even better, I like the language, C#. It does make sense to me.

Except I notice an interesting, and somewhat puzzling thing – every time I come to a particular type of entry, and paused for a few seconds, Visual Studio went ahead and entered the code it wanted, in the vacant spot. I would be typing away, looking at the keyboard, and look up after a short while, to discover that not only had Visual Studio completed the code I had been typing, it had leapt ahead a few lines – a “{” and another ending in “();” and a “}” – and had entered something nothing like what I was about to enter.

In other words, Visual Studio has innovated Artificial Stupidity.

Given how closely Mono has been tracking C#, I begin to worry that Monodevelop will copy this Artificial Stupidity as well. Perhaps it’s just as well that I can’t install Monodevelop on my Linux box.


Shakespeare and the Art of Coding

March 18, 2007

That, for a start, is “coding”, not “codeine”.

What is the relationship between Shakespeare and the Art of Coding? Is there a relationship between prancing around on a stage reciting sonorous lines of poetry and salacious prose, and the noble art of sitting down to a session of hacking out a solution to a problem?

If so, what?

I took a course in writing plays last year. I even was the sound of the mournful wind in the hills in a one-horse town in the West Coast of New Zealand’s South Island during the Gold Rush days, during a play on that very subject.

One thing that struck me, watching the course teacher, who by then was a friend, changing her play on account of the actors’ concerns about how it could be made better. It was so much like how I was taught to program. Find out what is required, then find out some more, and even then you won’t have the full story. Then when you think it’s finished, it won’t be, and you’ll need to start over again, at least for some sections where it just doesn’t work …

And then there’s the performance aspects of it.

A book is perfectly satisfactory just sitting on a shelf. Fiction, non-fiction, religious, reference, whatever. It doesn’t need to do anything.

A play is next to pointless just sitting on a shelf:
“Tomorrow and tomorrow and tomorrow,
“Creeps in this petty pace from day to day,
“To the last syllable of recorded time;
“And all our yesterdays have lighted fools
“The way to dusty death. Out, out, brief candle!”

That requires expression. You need someone on a stage, hands out, voice breaking, then hardening, as the small glimpse we are shown of Macbeth’s heart is blown out by the shock of his wife’s death and the impending attack by the son of the man he killed to gain his throne, in alliance with the English.

In much the same way, software is written to be performed. Unlike prose, it doesn’t fully exist without a computer to “perform” it. Minix or Linux, for example, without compilation is as uninspiring as Macbeth without performance.

But the other thing is that, much like a play may well be altered dramatically from its printed version, in order for it to actually work on stage, so software may also need to be radically altered to enable it to work in new situations.

Shakespeare knew most of this, insofar as it relates to plays – that is why people still go to see his plays performed, that is why people still wish to perform them. That’s why people still work their guts out editing the text, confused as the original Quartos and Folios often are.

And that’s the link between the Bard and Software. I could have said that in fewer words, but I wouldn’t have known as much about what I was saying, if I had.

Microsoft chickening out of a challenge?

October 24, 2006

For as long as I can remember, Microsoft has been the paragon of the super-competitive software company. For as long as I can remember, Microsoft was the epitome of the company that would pull out all stops to meet a challenger on said challenger’s own territory and face it down. For as long as I can remember, Microsoft has never chickened out of a challenge.

It now appears that Microsoft is doing precisely that. The software developers are finding the non-Microsoft offerings, in particular, the Free/Libre and Open Source offerings such as Linux, attractive.

I had thought that Microsoft would do something, and lo and behold, they did something – as little as they could get away with. They released the Visual [Programming Language] Express series, to draw the attention of the hobbyist developer; they even released the set under a relatively free and open license. This is truly a wonderful thing – previously, the only way you could get a Microsoft software development product free of charge, without incurring obligation, was to do something morally indefensible and download warez.

The major problem with that is, Linux is, and has been for quite some time now, the premier software hobbyist development platform. And none of the Visual [PL] Express series runs on Linux.

I realized this after downloading and installing OpenWatcom, the open-sourced Watcom C/C++ and Fortran compiler suite. For what it’s worth, I now had software that could compile something written for everything from [MS|PC|DR|Free|Rx|etc]-DOS through the OS/2 16 and 32 bit and the Netware NLM to the Win16 and Win32 APIs. With gcc, I can compile for a vast set of 32 bit and 64 bit computers and APIs. About the only thing missing is something to compile stuff written for 8 bit environments – but there are compilers for that as well, that I haven’t got on to yet.

Microsoft’s Visual [PL] Express series are splendidly optimized for the latter stage of the Win32 API. But if that is not where the action is, they are missing the boat – just as they almost missed the Internet.

So here’s the challenge, and I’m wondering if Microsoft is capable even if willing, of taking it up – to release the Visual [PL] Express series source code under the Microsoft Community License, with some hints as to how it can be ported to Linux and FreeBSD. And use it as a loss-leader.

Failing that, I expect software developers’ focus to continue to move to tools like Eclipse … and Microsoft to continue failing – subtly, but still failing.

Patently absurd – conjugating Microsoft

October 1, 2006

Well, I suppose it had to happen – Microsoft Corp., wrote a program, and decided its chief feature – indexing verbs by infinitives – was worthy of a patent.

To quote from the application, the abstract to be precise:

Method and system for selecting and conjugating a verb

A verb conjugating system allows a user to input a form of a verb and display the verb forms. The verb conjugating system allows the user to input the infinitive form or non-infinitive forms of a verb. When a user inputs a non-infinitive form of a verb, the verb conjugating system identifies a corresponding base form of the verb. The verb conjugating system then uses the base form to retrieve and display the verb forms for the verb. The verb conjugating system may highlight the non-infinitive form of the verb within the displayed verb forms to assist the user in locating the verb form of interest.

There are books on the open market that do as much. I could mention a few, if the general public is really that interested:
The Penguin Russian Course, compiled by J.L.I. Fennell, Penguin Books, 1961

NOTE: Henceforth verbs will be given in the vocabularies in the infinitive. pg 16

But what is worse, is that the technique used for this purpose, happens to be commonly known and understood amongst heavy users of spreadsheets, Excel users not excluded. Can anyone say @VLOOKUP or @HLOOKUP?

Let’s see, in my copy of Joe Spreadsheet, by Goldstein Software, Inc, Dryden Press, 1988, ISBN 0-03-020837-8, I find this definition of HLOOKUP, pg 188:

@HLOOKUP() works by first comparing the values in the first row of range with x. This first row is the pointer row. Once @HLOOKUP() finds a value in the pointer row which is greater than x, it backs left ine column, the goes vertically down the table to row in that column. @HLOOKUP() then returns the value in that cell.

If that’s not enough, I could quote much the same thing from my copy of The Twin: Educational Version, Prentice-Hall, 1987, ISBN 0-13-935388-7.

Ditto for Cascading Style Sheets. Or …

Do I really need to go on?

Microsoft has had the chutzpah – translated ‘stupidity’ in this case – to attempt to patent something that is so widely used and understood in both language learning and ordinary business computer usage, that one is left agasp. Microsoft appears to be volunteering for the Gratuitous Stupidity award.

Let’s not withhold something so well-deserved!