The Red Door

I wrote this a couple of years ago, now. It was exam revision time and I had nothing else to do. Although short, it’s still one of the better pieces of descriptive writing I have done (or at least, I think so. My old English teacher would no doubt disagree). Critisism welcome.

I see the door. It’s just up ahead. Walking towards it, I can feel the heat slowly building on my forehead. The moment is near. As I reach for the door handle, my common sense finally kicks in and my hand pulls back, unsure of what to expect on the other side.

The door is red, of course. All doors with something scary behind them are red. It’s one of the few constants in this universe of ours. The paint is scratched around the edges, especially at floor level. Bare wood can be seen behind the paint, scratched away by dog claws, most likely. It’s a very dark wood, but that could just be age.

I knew I didn’t have to go through the door. I could just turn around and go back the way I came. But that wouldn’t be any use. I had to find out what was on the other side of this strange red door.

Dressed in my black satin PJs, I feel a bit like a Ninja, in the dead of night, creeping around the old house. It’s the fourth night I’ve been here, and the fourth night I’ve come down here to the red door. It could be the fourth night I turn around and go back to bed. But I’m not going to allow it to be so. I have to find out what is behind the red door.

I inherited the house from my now-dead father, who, along with my mother, lived here for the twenty-three years of their marriage. My mother died three years ago now, and my father just couldn’t handle life on his own. He didn’t go slowly insane or anything like that. He just got sad (a vast understatement) when he was here alone during most of the week. I came up and helped him whenever I could, but it simply wasn’t enough.

I moved in here four days ago. I was previously just renting a two-bedroom apartment in the city, using one as a studio for my painting work. I live alone. Now that I’ve moved here, I could have about five or six rooms just for painting, if I wanted. The walk-in wardrobe is larger than the bathroom in my old apartment. I’ve got the place fairly well set up now. I haven’t touched the brushes since I’ve moved in (which is rare for me, I usually can’t be kept away from them), instead I have been cleaning and repairing nearly every horizontal surface in the house, and quite a few of the vertical ones.

But there is still one room I haven’t ventured into. That would be the room behind the red door. I’m not sure what to expect behind there. It could be just another room. It could be the stairs to the basement, for all I know. But I have a feeling it is something much more insidious. Something far more interesting. The colour of the door tells me so.

I’ve pretty much decided now that I’m not going back to bed tonight until I have investigated what’s behind the red door. Like all the other nights, I’m not going to be able to get to sleep. I never asked either of my parents what was behind the door. There wouldn’t have been much point either. By the spider’s webs, it looks like the door hasn’t been opened for quite some time.

After standing staring at the door for several minutes, I slowly start forward again, my brow becoming sweaty again, reaching out for the door handle. Turning it, I hear a loud screech, obviously because the door hasn’t been opened for decades. After turning it open all the way, enduring the screeching and whining of the handle, I turn my shoulder to the door, expecting to have to give it a large shove to get open. Pushing gently with my right hand on the handle, I realise this isn’t going to be the case. It glides open freely.

Review: ASUS F3Sg Laptop

Around the end of the last financial year, I decided it would be a good idea to buy myself a laptop. So I did. I originally wanted a cheap Compaq one, simply because of it’s cheapness. But my local computer shop didn’t have any in stock. So I got an ASUS F3Sg instead. It costs about AUD $1300, and it’s pretty decent. Here’s why.

ASUS F3Sg Laptop

I’m not exactly a fan of the styling of recent ASUS laptops, and this one is no different. It’s very grey… and has holes and shapes that are perfectly designed for nothing, except getting biscuit crumbs in them. Out of the box it also comes covered in useless Intel, Nvidia and Microsoft stickers (some of which I still haven’t been able to remove). As far as bad points go though, that’s pretty much it.

To start off the list of good points, I’ll start with the screen. It’s a 15.4″ widescreen, with a resolution of 1440×900. That’s as good as the 19″ monitor sitting on my desk, and with the decreased viewing distance, it’s just as usable. I certainly wouldn’t like it any larger, as it would then be quite difficult to get into my laptop bag (and to carry around generally).

The internals also match up to my (still pretty new) desktop. 2 GiB of DDR2 memory, a Core 2 Duo processor running at 2.4GHz, and a 250GB hard drive are all very respectable. The NVidia 9300M graphics chip plays Counter Strike: Source well enough to be comparable to the 8800GT in my desktop. That said, CSS isn’t one of the latest games anymore. I fear that Call of Duty 4 would stress it a bit too much.

Multimedia is okay. The onboard speakers are utter rubbish, but then those that come with laptops generally are. The audio chip is decent, as sound quality improves immensely when a pair of Sennheiser headphones are plugged in. The laptop has an onboard microphone, but I haven’t used it. Any attempt to use it for Skype would likely result in the glorious sound of feedback.

The F3Sg also has a webcam built into the screen. Quality is fine, though when I used the driver that Windows Update found for me after a fresh install, the picture was upside down. The other nice feature this laptop has is a built-in digital TV Tuner. Apart from the fact that Sesame Street has gone downhill, I don’t have much to report on that… it’s fairly ordinary, and suffers from the same problems (bad reception, worse content) that all other TV tuners suffer from.

Battery life is around 2.5 hours on the most conservative setting. Compared to the 5 hours an old G4 iBook of mine used to do, this is pitiful. But the iBook had nowhere near as many goodies. The F3Sg also burns a hole in your pants if you actually use it as a laptop, so it’s best to use it on a table. At 2.95kg, it’s just in the region of being carryable without breaking your shoulder. The large screen (and large battery to compensate) would be the cause of this.

As with all out-of-the-box computers, the included software on all ASUS laptops is sub optimal. Offerings include Nero, Norton Internet Security, and other such horrors. One thing I can say is, though, the drivers are rock solid. In two months I’ve never had any bluescreens or crashes, which is a miracle for a Windows-based machine.

To sum up: As far as Windows-based laptops go, this one is really good. I certainly wouldn’t have it over a MacBook Pro, but then, no sane person would. It has enough power to do all the things I want, and still remains light and small enough to carry to and from work. The only real downside as far as usability is concerned is the battery life. 4 Stars.

My Operating System Design.

I’ve been getting back into developing my operating system lately, spurred on by the tutorials I’ve been failing to write (if anybody does want them, email or leave a comment, and I’ll try and get around to them faster). I’ve got to the stage (or at least, I think I have) where I need to make a few of the important design decisions. So in this post, I’m going to discuss them.

The operating system release I made back in January doesn’t really represent the current state of what I’ve done. Firstly, I’ve set up Bochs on my PC (and Qemu on my iBook at school), so that I can test my system without having to have extra hardware on hand. I’m currently in the middle of writing drivers for video and keyboard, so that you’ll be able to use the system without a serial cable and an extra PC. But that isn’t really the design of my operating system, more just what I’ve previously done.

Over the time I’ve been writing this OS, I’ve been led in two different major directions to take my operating system in. The first, and more standard, direction is to create a modular microkernel, stick a whole heap of drivers on top of it, add a GUI, and call it Windows (or not). The second direction, and the one I think I am finally leaning towards, is to create a distributed operating system. There have been a few of these in the past, the most famous being Plan9 (and yet 99.9% of computer nerds have still never heard of it).

A distributed operating system is basically one in which each computer acts as part of a larger system and shares resources with the other computers. Resources could be processing time (one computer’s threads might run on another computer), hard disk space, network time servers, or anything, really.

What’s great about this is, assuming the user’s home computer is connected to the network, a user can sit down at any computer on the network, log in, and have exactly the same interface and files as if they were at home. They could even start a process running, log off, let the other computers on the network process it, and log back in again to get the results. Of course, there becomes an issue if nobody leaves their computer idling to run other people’s tasks.

Not all computers are created equal. Some might be 32bit, some might be 64bit. Some might be a Celeron 366 running in my bedroom, some might be multiprocessor servers in a data centre. And assuming they can all run the same software is probably not a great idea. For that reason, I’m going to implement a scripting language, and all the processes are going to be interpreted by all the peers in the system. No native code, except for the kernel, will be running.

This scripting language is going to be something along the lines of Lisp. This is one of the reasons I’ve been trying (and failing) to write a Lisp interpreter. I’m choosing Lisp because if I can implement both code and data using the same object model, it will make it simpler to transfer code and data between peers, I’ll only have to code one transfer mechanism. I also happen to like the idea of Lisp a lot, despite not having created anything major in it.

I’m not going to be implementing support for a lot of old hardware. I’m not going to bother writing floppy drivers, serial port drivers, or other things like this. The console, the hard drive, and the network are the most important peripheral devices, and the ones I will be concentrating on most.

There are quite a few problems that will need to be ironed out. What happens to secure data? Where does the data go when a node goes offline? How can we check the security of a node? I think by implementing a few checks into the client software, it’s possible to solve most of these problems.

While I realise my dream is a long way off, I hope I can make a move towards such a system being a reality. While I’m away at Kakadu I hope to have a bit of time to think more closely about some of the protocols involved. Now, back to work for me!

The federal budget.

In the last few days in Australia, the federal government and the opposition have been waring over the budget. Seeing as I’m almost 18 (voting age) now, I thought I’d better take some kind of interest in the whole thing.

I’m sort of glad that there is a lot of spending on tertiary education, both by the real government budget and the mock opposition budget. Peter Costello has promised to create an investment fund, the interest gained from which will help fund education. While a hell of a lot of things could go wrong with this, I’m grateful for it, since I’ll probably be heading into said tertiary institutions next year (or at least the year after).

Unfortunately, the budget wasn’t so good on any of the other big priorities. Health didn’t get much additional spending. It needs heaps. Here in my state (Tasmania), the health system is basically in crisis due to lack of staff, which relies on having good funding.

Also, the environment got hardly any spending. If we install solar panels on our roof, they’ll now give us $8000 instead of $4000. Big deal. Really, it’s a nice token gesture, but it’s not going to do anything, because comparatively few people will take them up on the offer. And I bet they know this. None of the big things like Carbon trading schemes, money to build new renewable energy power plants, or anything like that. I only hope they will get introduced in the election campaign. But if they do that, we have no real guarantee that they will actually do it. *sigh*

Other things to get lots of money were the roads (which I’d like to point out are actually perfectly safe if you drive at the right speed), and childcare. Worthy causes to be sure. But that money spent on roads could be spent on health or the environment, and make a lot more difference. Not trying to be hurtful here, but people are always going to find ways to kill themselves on roads, no matter how much you spend on making sure they can’t.

But there we go. More pork barrelling. w00!

My thoughts on Internet forums.

Recently, while I was on IRC talking to a few people, TheSkorm mentioned that he doesn’t join Internet forums. I, on the other hand, spend a lot of time reading different forums, and replying to them. Why do I do this? Let’s find out.

A long time ago, in a galaxy far, far away, I started lurking at the old blitzcoder.com forums . They were dedicated to the BlitzBasic language. While the forums aren’t around any more, a lot of people still get a warm fuzzy feeling when they talk about the place. This must have been when I was about 12 years old.

After a few months, I joined. Since that time, I’ve followed the community as it progressed through a series of two or three different forums, all run by respected members of the last community. Blitzcoder closed, and Codersworkshop opened. Codersworkshop closed, and Devcrunch opened. etc, etc.

In addition to the Blitz community, I’ve also joined a few other communities. I’m a member of several private forums, as well as the osdev.org forums and indiegamer.com forums. So that’s the history of my forum usage. But the question still remains. Why do I visit these forums?

In my opinion, probably the most obvious reason for visiting and joining a forum is the sense of community it brings to you (me). The internet is a scarily large and largely scary place, and any human contact we can find helps us to understand and feel more at home in the place. Which brings me to my counter-argument. It is not only forums that give us this sense of belonging and understanding. I, for instance (as mentioned at the top of this post), spend a lot of time on IRC, and IM networks in general. And most people I know who are members on forums also use instant messaging. So this can’t be the only reason.

The other really good reason I can think of is that helping other people out feels good. When you’re on a forum (a technical one at least) a lot of the topics are various newbies asking for help with something. Assuming the post doesn’t ask for help with deciding between Emacs and Vi, they generally get a helpful response. So the good feeling in the heart is what it is all about?

Perhaps not. I visit a fair few technical forums. Most of them (with the exception of osdev.org), don’t really give that much help to newbies. I’m sure there are very helpful technical fora out there somewhere… In any case, you can usually ask for and get help on IRC as well. Freenode‘s technical channels are second to none in terms of help. The only benefit with getting help on a forum is that generally the posts are kept there forever, whereas IRC is fairly impermanent.

So why I do visit forums? I don’t know. What I do know is, if I spent as much time on all my forums as I used to on the old blitzcoder.com forums (when I had all the time in the world, almost literally), I wouldn’t have very much time left anymore. I’ve had to abandon reading a few forums in order to have enough time to read the others.

And the strangest thing? I don’t even use BlitzBasic any more. But that’s where I spend most of my forum-reading time.