Features UNIX Has That Life Needs

It’s come to my attention that there are a lot of things that computers in general – and, in particular, UN*X-flavoured operating systems – offer that are sadly lacking in Real Life. I’m hoping that Life 2.0 will include a number of these features. (Life 2.0, of course, will not be like Web 2.0 – there’ll be no more rounded corners and glowing effects than usual, thank you.)

The most important features I think are missing are as follows:

I’m sure I’ve said it before, but life really lacks a grep command. grep is used to search for given text within a greater text (usually files, but stdin is equally valid). Whetever I use a ‘treeware’ book as a reference, I invariabley find myself disappointed at my inability to search it’s contents, leading me to favour the web and e-books as sources of information. How much easier would it be if I could simply write a regular expression that represented the kind of data I wanted to find? Johnny 5 could do it – why can’t I?
The other day, I was trying to remember the exact date that Claire and I moved into The Place. I couldn’t remember exactly, but I did remember that the note pinned to the kitchen noticeboard was written on that day. Had my life been more like a computer filesystem, it’s likely that I’d have been able to check the “modified date” of the piece of paper, and I’d have known exactly when we’d moved in.
How great would it be if you could make a nice backup of the world before you had to make any kind of decision without knowing the outcome… It’d be like a “saved game” of life. Plus, with enough storage space we could keep incremental backups of the entire planet at various times, and restore them onto virtual machines (well, virtual planets) as an aid in teaching history. Although I’d like to make sure that only sane, rational, trustworthy people like me had superuser access, or else it wouldn’t take long before somebody typed dd if=/dev/null to=/mnt/universe and destroyed the universe. Or, perhaps more interestingly, /dev/random.
At this point, you’re probably expecting me to imply that killing people is a good idea. But I’m not going to. After all, what a well-executed kill -9 does is merely removes the resources (processor cycles and memory) from a given process. And I’m sure we’ve all wanted to be able to steal memory from somebody, particularly when they’ve just heard us say something particularly embarrasing.
Yesterday, I was heating a pan of noodles, checking it ocassionally to see that it wasn’t at risk of boiling dry. What I’d far rather have been doing while the noodles cooked, of course, would have been to be playing Paper Mario: The Thousand-Year Door, which I’m playing through again. But to do that would have involved me leaving some smart process in charge of the pan. Something like this:

while ($panwaterlevel > 10) { wait(1000); }
sprint("Dan! Come fix these noodles!");

Shouldn’t be so hard to implement once the other features in this list have been writeen.

As soon as I can find the address of the manufacturer of Life 1.0, I’ll be writing a letter of complaint.