Why Build? June 3rd, 2022
"The Centre of the Universe is of course that marvellous land known as Fraggle Rock. It is thus called because it is A Rock and Fraggles Live There.
Fraggles are a noble race. Fearless, dignified, intellectual, they represent the very pinnacle of civilisation and culture. A Fraggle *is*, most assuredly, the best of all possible creatures."
A long time ago, there used to be a TV show called Fraggle Rock. It was about these strange scraggly creatures, Fraggles, that lived in caves below a lighthouse. The fantastic Fulton Mackay, better known from Porridge, played an old retired sea captain who looked after the lighthouse along with his faithful dog, Sprocket. Interestingly the show was localised with different segments filmed for different countries, so for example in the US version the setting was a quiet inventor's tinkering shed.
And there used to be these other funny little creatures too, Doozers, who were big into construction.
I dunno exactly what it was they built. It was some kind of scaffolding. Looked kinda like crystallized sugar. I seem to recall it was made of radishes. I don't recall the purpose of any of it all anyway, but it certainly seemed important to them if not to anyone else.
And they seemed happy, pushing the their little wheelbarrows around their building sites, while wearing adorable tiny hardhats and other beautifully puppeteered safety equipment. Everything the Fraggles did was chaotic and messy. But not the Doozers. They were the complete opposite: ordered and industrious. Stuff got planned, it got built, and the Doozers were content.
But, I suppose like any great engineering project, there were hazards. If you were a Doozer, working hard day and night, trying to erect some great piece of scaffolding or complete some worthy project, you just had to accept that every now and again, a Fraggle was going to come through and eat some of it.
Strangely they never seemed to be that bothered about it. I mean sure, there'd be a few grumbles here and there. But it never stopped them from getting on with things. It just seemed any large-scale construction effort required a certain Fraggle tax to be accounted for as part of its budget.
In one episode, the Fraggles stopped eating the Doozers creations. It was insensitive, they said, and they were made to utter a solemn vow not to destroy any more constructions. And so the Doozers could keep creating, until eventually their projects filled up the entire world. Once there was no space remaining for the Doozers to build in, they started packing up to go elsewhere. It seemed the Fraggles and the Doozers needed each other to co-exist.
The Doozers never really seemed to consider it much of a problem. Even though they'd spent ages working on something so clearly important to them, building something so beautiful, just to watch it get torn down. "Architecture is meant to be enjoyed," they'd say with a smile. I'm not sure what they meant by that either. To be honest, I feel the Fraggle analogy is possibly starting to fall apart at this point and I'm not sure if I'm the Fraggle or the Doozer in this essay. I suspect I may in fact be the 7ft tall grumpy giant that lives in the garden next to them. I'm starting to regret mentioning the Fraggles now.
The point is, people build. I don't know why. It seems important to them though. Presumably they have a process internally that at least they understand, even if we don't. And it makes them happy.
Which is nice. It's nice to be happy.
Bitcoin October 3rd, 2021
I don't know anything about Bitcoin and everything I say is usually wrong.
Imagine Alice grows turnips in a village. Everyone buys her turnips because hers are the best around. She trades them locally with money.
Then one day, she hears that there's a guy Bob in a village far away that wants to buy her turnips. She can't sell them there herself because it's too far, but hey old Eve there has a horse and cart, so you say "hey Eve, fill that cart up with turnips. Take them to the other village, sell them, you take 10% and I get the rest."
So off Eve goes to the other market. Eve sells your turnips on and takes a cut. Then after a while, because of all the new business other people start buying carts, and reselling your turnips elsewhere too.
After a while most of your business is exporting turnips. Then one day, you find out that Eve, and all the other resellers, have been forming a cartel to try and lie about how many turnips they actually sold, and you didn't get nearly the money you should have. And they got away with it because they all outnumber you, and no one saw it happen and no one seems to care.
This happens because the reselling happened far away, where you couldn't see it. The trade you do in person is all fine because you can check it, but once that horse and cart disappears over the horizon then the money kinda disappears with it you see.
What happened was Alice and Bob were trying to have a private transaction, but Eve somehow was able to eavesdrop on it, and siphon money out of the system for herself.
This always happens, because as long as there's a sink/source that can take money far enough so that no one person can see the whole system, scams can always be run. There'll always be an Eve, as long as you don't have direct contact with your customer. Local economies create middle men.
Bitcoin fixes this. With Bitcoin, Alice sells the turnips direct to Bob and Eve is simply hired as a delivery driver. Eve never handles the money. The reason Bitcoin is able to do this is because the blockchain creates, for the first time in history, a historical record of events that we can actually PROVE happened. History books can be inaccurate. If you show me a note saying you have $1000 you could pay me, I can go check with the bank to see if that's correct or not. But the bank could be in a cartel with Eve, you see. They could lie too. Or someone else down the chain could be. Because there's always an Eve, unless you remove all secrets from the world. Which Bitcoin does, because now we can make facts mathematically provable.
Bitcoin removes not just Eve but all middle men. From society. Forever. That's why it's cool.
What The Hell Was The Microsoft Network? August 29th, 2018
No, not that one. Or that other one. The letters "MSN" have meant so many things to so many people, a term that's been overloaded with a thousand different meanings. In the same way they throw the words "National Lampoon" onto any random movie to indicate that it claims to be a comedy, they slap the "MSN" label onto just about anything so that your poor brain goes "oh, a brand I've heard of" and you get fooled into thinking it must have a certain minimum level of goodness to it.
But I'm talking about the original MSN. Not the simple three-letter acronym we know today, but it's full title: The Microsoft Network.
The Microsoft Network was a long forgotten experiment that started back during the Windows 95 Preview Program somewhere around 1994. It was an exciting time for me as a young lad. Having a copy of Windows 95 a year before it came out made me feel Special, Hip, and Cool, three properties which were much sought after by teenage computer nerds. For perhaps the only time in its life, Windows was cool, and so was I.
Microsoft had already released all this fancy new tech with NT 3.1 a few years earlier, but no one noticed so after getting good n' drunk they had another crack at it. Windows 95 replaced the tired old segmented memory model with a glorious flat one where the pointers actually worked how C claimed they did. It dumped the bug-prone co-operative task switcher in favor of a slightly less bug-prone version of pre-emptive multitasking, meaning your machine wouldn't lock up due to busy loops and would have to find exciting new 32-bit ways to lock up instead. It had a
plagiarizedvisionary new shell that presented the file system as a truly window-based navigation model. It was a pretty exciting time for PC owners back then. After all, these new directions brought the PC almost up to the same spec that other computers had been enjoying ten years ago.
But it wasn't just the technological advancements. The Chicago betas made you feel like you were part of a secret club. A group of people who could all hang out together in the super-secret clubhouse. But what was this clubhouse, you ask? Well sit down little Timmy, and I'll explain to you what The Microsoft Network actually was.
You see, back in 1994 Facebook hadn't yet invented the Internet, so if you wanted to go online and let your computer transfer viruses to and from other computers, you had to use one of the many private networks. There were lots of them. CompuServe was the biggie. AOL was another, and in the UK they had Cix. Each of them had their own users, their own content and forums, and formed a delightful set of walled gardens that couldn't communicate with each other.
You dialled their phone number on your modem and talked directly to them. Each had their own shitty little piece of software you ran which presented their service, usually in some god-awful MDI-based thing which was barely more than a GDI rewrite of their old BBS interface. CompuServe felt like a dinosaur at the time. They didn't even give you the decency of a username on CompuServe, they gave you a number like you were Patrick McGoohan. It'd be like
71477,134or some rubbish. They always started with a 7, had a bunch of octal digits, and had a comma in the middle. Why? Because that's how the login on PDP-10s worked, which is what CompuServe was powered on. Unbelievably, it seems some poor suckers may still have been paying for CompuServe as recently as last year.
Microsoft looked upon this gluttony of power and figured they wanted a piece of that sweet action. They had big plans for their own Microsoft Network. It was going to be the CompuServe killer. It would have all its own content, and features like being able to make online purchases safely, just like today's App Store allows you to throw money at your phone until Apple's pockets rip open under the weight of that sweet 30% cut.
Of course it was doomed from the start. The raw, unfiltered mess of the Internet was quickly becoming the New Cool Thing, and no-one wanted to sign up for yet another Stupid Proprietary Thing, of which there were an endless supply of. But Microsoft did one thing which got people using it (including myself), at least for a while. They gave it away free to people in the Super Secret Club. That's right, if you had the Windows 95 beta disc because you'd
pirated it from somewherepaid the measly $20 bucks to sign up, you could get free access to The Microsoft Network.
I've got kinda sidetracked here waffling on about the history of dial-up BBS systems. What I really want to be concerned with is what made The Microsoft Network unique and interesting: the interface.
The big thing in Windows 95 was their new shell. They wanted everything to go through this. They had this vision of every object in the computer being represented as a shell object, so there would be a seamless intermix between files, documents, system components, you name it. They had this project called Cairo that was supposed to throw out that scruffy old file-based filesystem and bring in a shiny new Object Based File System instead. It never happened, so we'll never know exactly how it might have turned out. But the brave lads at MS didn't give up that easily and so the idea stayed on, admittedly without the tech to back it up, and the principles wormed their way into such glorious developments as The Microsoft Network.
And so The Microsoft Network wasn't a program you loaded like CompuServe. It was part of the OS, with folder icons that looked just like real folders. It was a kind of version of the Web where you could browse online data the same way you browsed your file system. This is what made it cool.
Everything was an object, and everything appeared in its own Explorer window. You could click on the icon for -- oh I don't know, what do humans talk about? Let's say Goat Tickling. You could click on the Goat Tickling BBS, and it'd open up a new window where people talked about Goat Tickling and each message was listed exactly like the "Details" view of a file system directory. From the user's perspective, there was no difference between this and a regular file window. The magic of the extensible shell blended the online world and your own desktop seamlessly, with no need for web browsers or forum software. It all just fell together under the same shared interface.
It's impossible to access this service today though, in case you wanted to take a nostalgic little look, as the servers than ran it have long since been euthanized. But if you're interested, you can watch this delightful and certainly not-at-all dated Microsoft promotional video, where Chandler and Rachel from Friends learn how to look at cat pictures on The Microsoft Network.
I loved The Microsoft Network back then, even though I knew it was terrible. It felt like there was the germ of a new idea here, something that hadn't been tried before on our poor little consumer computers. It was as if the data was suddenly free of the shackles of being displayed in a program. Data wasn't just a web page, or a program showing its own internal databases. The Microsoft Network made it look like the data was right there, and you could click it and drag it around! For a brief time, back in 1995, it felt like we were on the verge of the true object-oriented web, a world filled with open data and free from the tyranny of the walled gardens.
Of course, like all such things, it turned out to just be a big fat lie.
Microsoft's shell extensions are such a walled garden that even the rest of the OS can't bluff its way in. Open up your Control Panel right now, and right-click on one of the things (e.g. Keyboard). You can select "Create Shortcut", and it'll magically plop a shortcut to that item onto your Desktop.
So we've got a shortcut now our our desktop. It looks just like a real shortcut, right? Just like any other file. Now right-click on that shortcut you've made, and see where it points to. What's that, I hear you cry? It points to
Control Panel\All Control Panel Items\Keyboard! Where the hell is that? Pop open a command prompt and try and run "dir" on that location. You sure as hell won't get a directory listing of it. And why, you say, is the text displayed as a fixed label? Why can't I change the shortcut's target to a different file, like I can with a regular shortcut?
Unfortunately, like most things involving the Windows shell, these objects aren't real objects. Well no, I mean presumably some part of the system thinks they are. But they're not to us. They're not things you can just link to like a regular file. They're not like web pages where you can share the link with someone else. They live in their own weird little inaccessible namespace. Explorer knows how to peer over the fence into these little gardens, but no one else does. It's a facade, one designed to make you think you actually know how your computer works.
It was the kind of thing other OSs like Plan 9 were trying to do, except the Plan 9 guys didn't bollocks it up. See what happened was a senior director at Microsoft came in one night around 3am, loaded on blow and Jack Daniels, and shouted to the room "I've got it lads," in a big booming voice that woke up the people struggling to ship Cairo for the third time, "we'll implement it all in COM!" A great sigh rippled around but they knew in their hearts that was how things would be from now on, there was no point fighting it, and thus the great triumph known as the Windows Shell Namespace was born.
Microsoft's shell system made all the same mistakes CompuServe did, just in different ways. They thought numbers were a good way to name things, so you ended up with every shell object being given a 32-digit GUID. And they made it so their content was only linkable (if at all) via these same GUIDs, thus only those knights brave enough to fight the GUID monster may be allowed to enter. So while there might be a way for someone to copy a link to something they saw on The Microsoft Network, good luck actually being able to paste that link into another program, access it via the command line, or send it to a friend.
This is what makes the whole COM system really really stupid. It's like they don't want you to be able to work with it. They want to make it hard for you to access and share data, because code that were to do something reckless like call
fopenis code that could run on anyone's operating system, not just theirs. They want to keep you on the phone selecting numbered options, because if you stop doing that you might actually achieve something. And if you go around recklessly inventing new things on your own, you might not need Microsoft any more.
It used to be if you wanted the user to select a file, you'd call
GetOpenFileName. That was it, one swift function call and you were done. Now they've deprecated that and are telling you you gotta call
CoCreateInstance, have a
CLSID_FileOpenDialog, you'll need an
CLSCTX_INPROC_SERVERtoo and probably some
IID_PPV_ARGS. Then you'll need a
CDialogEventHandler_CreateInstance, and maybe end up with a
IShellItem. You'll need about a dozen or so calls to
SUCCEEDED(hr)too, in case one of the many internal details you never asked to know about happens to go wrong. Think I'm exaggerating? Check Microsoft's own documentation on it.
It seems insane, but it's the same trap Microsoft just keep falling into. Hell, just go look at any DirectX 12 code to see how they've not learned their lesson.
Phew, I'm exhausted after that long, unnecessary and possibly incoherent COM ramble. Got a little carried away there. Where were we? Ah yes, MSN. The Microsoft Network failed because it was just one more walled garden. One that was walled-off in two ways. One was from a business standpoint, of trying to keep users locked into it and locked off from the rest of the world. But the other was the technical standpoint. It wanted to make it look like the Network was something you had control over, something you could interact with just like you could with your own data. And it was a lovely idea, but that's all it ever was. The thing itself was never more than a facade. Meanwhile those Internet nerds were off pasting hyperlinks around, doing reckless things like setting up their own email addresses and adding new things to the network without having to ask anyone first. And despite The Microsoft Network making every object look so real on the outside that you could just squeeze it and watch the AddRefs ooze out, the Web's simple idea of giving every thing a unique readable location won by a mile. It wasn't the Object Oriented dream we might have hoped for, but Open Always Wins.
The trouble with a walled garden is that if the thing outside the garden is bigger and better than the thing inside the garden, then the wall only serves to keep new customers out rather than lock them in.
So what happened to The Microsoft Network? It barely lasted a year after Win95 shipped before being thrown out and replaced with MSN 2.0, which was a much more web-based experience and opened the doors for the cuddly familiar MSN.com we know and love(?) today, and all still have bookmarked in that IE installation we only switch to when we need to test something.
AOL and Compuserve didn't like it much either. After all, it was eating away at their already rocky marketshare. So they put on their big hat marked "antitrust" and manage to force Microsoft to wedge a big AOL icon on your desktop too. That way the consumer had a choice of which shitty-little service they wished to lock themselves into.
But at least the lessons of The Microsoft Network have been learnt. We don't have that kind of locked-off data any more, it's all fully integrated under a unified banner. At least now I can happily use
fopento read data from a website, right? And backup my email just by dragging folders from Gmail to a local disk. Right guys?
Written by Richard Mitton,
software engineer and travelling wizard.
Follow me on twitter: http://twitter.com/grumpygiant