Welcome to Donald MacLean's Home Page

      [ Photo of Donald Maclean in armchair ]
Donald MacLean

Contents

 

Short Biography

In common with Queen Elizabeth and Albert Einstein, I was born. In my case, it happened in 1941, in St John, New Brunswick, Canada. After a largely uneventful childhood, I graduated from Mount Royal High School in 1959. Feeling that a few more events would perk things up a bit, I set off in search of adventure. During the following years, I tried my hand at journalism, digging ditches, selling ice cream ("Mr Whippy"), driving transport, fishing, diving, entertaining, working in factories, navigating crocodile hunters through the Great Barrier Reef, and a number of other things in various parts of the world.

Since this was before the advent of cheap charter flights, I worked on ships in order to get from country to country, which was pretty well the only way of doing it in those days. Eventually I had accumulated quite a lot of experience at sea and decided to get my officer's qualifications. I attended nautical college in Plymouth, England and obtained my Second Mate's ticket in London. After a few years working as a ship's officer, I entered nautical college in Stockholm, Sweden and obtained my Master's ticket ("Sjökapten") there in 1977.

By this time the sense of adventure had worn off. The first trip around the world can be exciting, but after that it becomes routine, like any other job. I would watch cargo coming over the rail marked for "Port Klang", and wonder distractedly if I had been there before or not. When you can't remember where you have been—and don't really care—it's time to move on.

To a large extent inspired by Douglas Hofstadter's book, "Gödel, Escher, Bach: An Eternal Golden Braid", I decided to study Artificial Intelligence at Stockholm University, paying for it with trips to sea during the holidays. In those heady days we were sure that we would soon have robots in our homes doing the cooking, cleaning, and other house-hold chores, releasing us all to fulfil our potential as creative, spiritual beings.

As many of you will have noticed, our homes are still singularly devoid of robots, and house-hold chores have become even more onerous, since they usually have to be done after a full day's work, by two stressed-out parents trying to look after their children at the same time.

What went wrong? Well, that is a subject on which I could wax lyrical. But you can relax. I'm not going to. Not here, at any rate. Suffice it to say that we got the time scale a bit wrong.

After a short period as a research student—short because I ran out of money—I started working in the software industry, eventually becoming a software developer, UNIX specialist and educator.

Along the way, having travelled the world, I met and fell in love with the girl across the street, and today we have two wonderful, almost grown-up, children, whose home pages you will find on this web site. I have left a few things out of this account, such as chasing pirates in Indonesia and pill inflation in Mao's China. But I want to keep a few stories for evenings around the fireside.

A few recollections of my school days in Mount Royal are recounted in my bio on the MRHS59 Web Site.

A Global Family Tree

Some interesting Arithmetic

Several of my relatives have done a great job of researching our family tree, in one case tracing it back more than 60 generations, to King Fergus of Dalriada, Scotland. Whilst speculating as to how deeply the rest of you should be bowing to us of royal descent, I came to the realization that it depends very much on how many of us alive today are direct descendants of King Fergus. Calculating from Fergus to the present necessarily involves a lot of speculation. Some people along the way probably had 20 children, others only one. (The ones with no children are not my ancestors—or anybody else's.)

But we can work in the other direction with complete confidence. It is an indisputable fact that I had two parents, they each had two parents, and so on for 60 generations. This gives me a total of 260, or about 1,000,000,000,000,000,000 (18 zeros) ancestors 60 generations ago, all busily engaged in the making of me. One of these was Fergus.

But hang on a minute! The entire population of the world in 500 AD is estimated to have been about 300,000,000 (only 8 zeros). Where have we gone wrong?

We have assumed that each of my ancestors was unique. But if two of my great, great, great, great grandmothers, of which I had 128, were in reality the same person, then we can immediately eliminate about 253 (16 zeros) of my ancestors. If we make the reasonable assumption that every one of my ancestors similarly shared a number of his or her ancestors, then the total number of my ancestors is drastically reduced.

This is the only way in which the theoretical number of my ancestors can be reconciled with the actual number of people alive 60 generations ago. A bit of reflection will convince you that not only were a lot of my (theoretical) ancestors in fact the same person, but there is a very good chance that a lot of your ancestors 60 generations ago—and and more recently too—were the same people as a lot of my ancestors. It is simply not possible for 6 billion people to each have even one unique ancestor amongst the 300,000,000 people alive in 500 AD! In other words, we are all related many times over. It's just a case of how many generations we have to go back to find our first common ancestor. (Note, however, that in many cases we may have to go back a lot farther than 60 generations to find that common ancestor. It is unlikely, for example, that the native peoples of, say, Papua New Guinea, count Fergus amongst their ancestors.)

Current Efforts to Connect Us

There are people out there now helping us to find and record our ancestors. The World Connect Project, at RootsWeb.com has more than 300 million names on file.
 [ image of family tree ]
 [ RootsWeb.com Logo ]
However, it relies on enthusiasts creating and submitting databases containing their family trees in a prescribed format (GEDCOM), you have to search on their site, where each ancestor has been assigned a unique identifier, and no attempt is made to interconnect the separate databases. Nor is there any interesting information about the people in the databases. No gossip. Just dry names and dates.

But real people don't go around with unique ID's stamped on their foreheads, and we would soon lose interest in someone who refused to tell us anything about himself other than his name and date of birth. (When I forget to be Politcally Correct, please mentally insert any missing "or she", "-person", etc, yourself. Thank you.)

A Challenge for Software Developers

Supose, however, that we had a language, similar to HTML, with which we could all, on our own, without submitting anything to anybody, describe as many of our ancestors as we cared to, starting out with one or two, and adding others when we felt the urge. Suppose in addition, that there were a search engine, similar to Google, which prowled the Web by night, collecting the information it finds in this new language. Then in the same way that we today can use Google to find information about, say, "unicorns" (398,000 matches), narrowing our search by adding more specific criteria (adding "african" narrows it to 45,000 matches, "three-legged", to 33, "funny hat" to 9), we could search for ancestors by starting out with a name, then adding a father's name, a grandmother's name, a place of birth, etc.

But with a bit of clever programming, we could do a lot better than that. There are undoubtedly thousands of Mary Wilsons out there. But probably only a few dozen have fathers called Roland. Of those perhaps only two have grandmothers called Elizabeth Smith. Of these probably only one was born in New Zealand. Our geneological search engine could be chewing away at matches like this all night, every night, so that when we wake up in the morning, all we would have to do would be to say "Show me my family tree, please." We would then be able to click on a distant relative (perhaps one we are going to meet for the first time later in the day) and be taken to a home page with lots of juicy gossip about him or her. I strongly suspect that we would all treat each other with lot more respect and compassion—and have a lot more fun—if we knew that the people we were dealing with were our own relatives!

So there you go, all you aspiring young software developers: create GHTML (Genealogical HTML, of course) and become the new Tim Berners-Lee— paving the way for others to develop the GG (Geneological Google, or perhaps Gaggle, to avoid copyright infringement) and become the new Larry Pages and Sergey Brins.

A Genetic Family Tree

It is my speculation, that DNA analysis will at some time in the future enable us to built a "Genetic Family Tree" of the whole human species. When that happens, it will undoubtedly turn out to contain some embarassing inconsistencies with the corresponding bits of the Genealogical Family Tree! However, such a genetic tree will never be able to attach names, faces and interesting gossip to the impersonal DNA nodes. That can only be done through the combined efforts of people such as you and I, who try to piece together our little bits of the global family tree, and give life to it by augmenting the names and dates with biographical information. When all of this has been done, we will have by far the most fascinating collection of information ever assembled in the history of mankind! (OK, OK, 'peoplekind'.)

Incidently, it is interesting to speculate that if only 1,000,000 of the 300,000,000 people alive 60 generations ago were my direct ancestors, they would each have contributed, on average, about 1/25th of a gene to my genome (40,000 genes/1,000,000 ancestors). However, since we don't inherit fractional genes, I could still have inherited the blue-blood gene from Fergus.    :-)

Open Source

My Own Experience

During my career as a software developer, I was able to see at first hand the incredibly destructive effect on creativity and job satisfaction that proprietary software exerts—and the correspondingly beneficial effects of Open Source software (programs whose source code is freely available). If something doesn't work the way you expect it to in an Open Source program you can examine the source code and find out why. You can discuss the problem on-line with thousands of highly competent developers, all of whom contribute their ideas with the sole aim of producing the best possible software, not for financial gain.

The Spread of HTML

As a trivial example, you can press the "View" button right now and look at the "Source" code to see how this page is built up.  [ image of Wikipedia – The Free Encyclopedia ] That is because the HTML that it is written in is Open Source. If you want to make your own Home Page, you can copy this page and use it as your starting point, changing and adding things as you get better at it. How would you get better? By looking at the source code of other pages, which do things that you would like to be able to do.

Because of this openness, the technology for creating Web pages has spread throughout the world faster than any other technology in human history. The first generally available graphic browser, Netscape, was not released until 1994, yet today millions of 12-year old schoolboys (and girls) around the world routinely teach themselves how to make their own home pages, thereby contributing to our exciting common heritage—which is what the WWW has become. It would be difficult to think of a subject today, on which copious information has not been provided free for everyone's benefit, by some enthusiast, somewhere in the world.

The Proprietary Model

Now, suppose that you are a budding programmer and that, instead of writing a home page, you want to learn how to write a word processor. Can you press a "View" button in Word and study the "Source" to see how it is done? No, you can't. The source code to all of Microsoft's programs is a carefully guarded secret. If a proprietary program doesn't work the way you expect it to, there is nothing you can do about it. Nothing at all. Except lump it. No one outside the compay that produces it knows what is going on inside the black box. Not only does this hold back progress in software development, but it forces all of us to use inferior products.

It also forces us to use products which can literally be doing anything at all on our computers—especially when the products come from the same company that manufactures our black-box operating system. Microsoft has already been caught out once using its products to scan our hard disks, looking for suposedly "illegal" copies of its software. It had to withdraw that product. But for all we know, it simply rewrote the code to deliver the information in a more perfidious, as yet undetected, way.

In order for proprietary software to be successful, its developers must be able to predict everything that you, and I, and everyone else in the world will ever want to do with their software, because there is no way that we can adapt it to our needs. Big Brother knows best. This is central planning, pure and simple. And it doesn't work any better for software than it does for societies.

Security Considerations

It is a truth, not often told, that the main reason the world's computers are constantly being plagued by viruses and worms, is the fatally flawed design of Microsoft's software. The very idea that a program which anyone, anywhere, has written should be allowed to do whatever it wants to on your computer without your even knowing about it (which is exactly what happens when a so-called "macro" in a Word document or other Microsoft program is started automatically as soon as you open the document) is such a flagrant violation of the most elementary principles of security, that if anyone other than Microsoft proposed doing this, they would be laughed off the planet. But no one in the software industry—who wants a job to go to tomorrow—laughs at Microsoft.

This is a link to a seminal paper, "CyberInsecurity: The Cost of Monopoly", written by seven of the world's top computer security experts, with the subtitle "How the Dominance of Microsoft's Products Poses a Risk to Security". Even though the authors tread very carefully, almost tying themselves in knots in their efforts not to offend Big Brother, one of the authors was immediately sacked from his company, which depends on Microsoft for some of its business. The paper is written for computer-savvy readers, but it contains an excellent non-technical "executive summary".

Microsoft's security policy, to the extent that there is one, relies on keeping its code secret, and patching security holes after they have been discovered and exploited. The result is like a house on a rainy day, with tubs and buckets under the leaks, and the owners crawling around on the roof trying to plug the holes with chewing gum.

How do we know that some terrorist organization has not infiltrated Microsoft and managed to insert a back door into Windows code—or discovered one already there—so that at some future date of their choosing, they will be able literally to hold the whole world to ransom? The answer is, we don't. All we can do is hope that "Microsoft would never allow anything like that to happen". We have no way of checking for ourselves. Put your faith in Bill. You have no choice!

Contrast this with the way Open Source works. Instead of trying to keep the code secret, it publishes the code on the Internet, in order to get as many eyeballs as possible examinng the code, looking for possible security threats—and suggesting fixes for any found. Every semi-colon of important Open Source programs has been scrutinized by some of the best programmers in the world. Thousands of them. There are no surprises. Most of the potential security holes have already been found and fixed. If new ones turn turn up, short-term fixes get written, tested, examined, commented-on and published within hours. And the work starts immediately to see that the problem simply does not arise in the next version of the program. The programmers enjoy what they are doing, knowing that their work is contributing to making the world a better place. And we all benefit—by living in that better world.

GNU/Linux

The development of Linux is a wonderful example of the merits of Open Source. When Linus Torvalds was a student at Helsinki University, there already existed an Open Source operating system called GNU (a recursive acronym: "GNU's Not Unix"),  [ Image of Linux Penguin ] which was complete except for one critical program: the kernel. It so happened, that one of the world's leading experts on operating systems, Andrew S Tanenbaum, had written a UNIX-compatible operating system for instructional purposes, called MINIX. MINX was Open Source, and what Linus Torvalds did was to add missing functionality to the MINX kernel so that it could be used as a kernel for GNU. Linus published his kernel on the web, and soon thousands of programmers around the world were contributing to make the combination of GNU and Linus's new kernel into the best operating system around.

Linux should properly be called GNU/Linux, since most of the souce code actually comes from the GNU project. Today Linux is going from strength to strength, and is often chosen for mission critical-applications because of its reliability.

The Prophets

The founding father of the Open Source movement— although he prefers to call it the Free Software movement, is Richard Stallman,  [ image of a Philosophical Gnu ] founder of the Free Software Foundation, which has given us GNU. As well as being one of the world's most brilliant programmers, Stallman, who is known to cognoscenti by his login name 'rms', is the originator and foremost protagonist of the concept of free software ('free' as in freedom, not as in free beer).

 [ image of The New Hacker's Dictionary ] Another important figure in the Open Source movement is Eric Raymond, whose tireless efforts in defence of Open Source have been a major factor in warding off the onslaughts of Proprietary Warlords. Eric is the author of "The New Hacker's Dictionary", which probably provides the best insight ever published into the programmer mindset. (Actually, what Eric has done is to edit and expand upon a previously existing 'jargon file', which has long existed on the Internet, and contains the contributions of many people.)

The Software Cold War

For young people entering the world of software development, there will probably be nothing more exciting for a long time to come than the on-going struggle between the proponents of Open Source software and the advocates of proprietary systems. It is every bit as exciting— and the consequences will be as far-reaching— as the struggle between Capitalism and Communism (respectively). And for the same reason: the former is based on decentralized free enterprise, the latter on central planning.

Some Thoughts on Web Design

Something that I personally find irritating in the extreme, is having to read coloured text on top of a coloured background. The irritation is in direct proportion to the amount of effort that the page designer has put into creating a striking effect. This applies in equal measure to pages in books, in magazines or on the Web. When I come to a page with, say, bright blue text on a black background, the content has to be very interesting if it is to overcome my powerful urge to immediately skip to another page, or article, or web site, or book.

This site is designed to convey information, not to be an exercise in graphic design. Since I prefer to imbibe information that has been printed in black text on a white background, I have designed the pages on this site that way. Graphics have only been used where they enhance the content. Never to create an effect. By relieving the reader of the burden of trying to extract content from overbearing form, this design policy sets his or her mind free to concentrate on the content. Either to enjoy it, or to quickly see that it is not worth wasting time on.

A emphasis on content over form, simple elegance over spectacular effects, is one thing. A different, but no less important, issue in Web design is compatibility. Microsoft is doing everything in its power to lock computer users into using only its proprietary software, by bundling everything together, and making it difficult for other products to function properly in a Windows environment. Nowhere is this more evident than in its Internet Exploiter (IE), which is built into its Windows operating system. Microsoft has introduced a number of "enhancements" to HTML (the language that all the world's web pages are written in) which will work in IE, but not in other browsers.

"Anyone who slaps a 'this page is best viewed with Browser X' label on a Web page appears to be yearning for the bad old days, before the Web, when you had very little chance of reading a document written on another computer, another word processor, or another network."

         — Tim Berners-Lee in Technology Review, July 1996
                  (Tim Berners-Lee is the man who invented the WWW.)

This has resulted in the notices which we have all encountered on web sites: "This page is best viewed with Internet Exploiter, version X.X or higher".

Well this Web site is designed to be viewable in any browser. If you have any problems with your bowser, please !

The Any Browser Campaign has published some excellent Web Site design guidelines.