That time I wrote an email system

When I started university back in 1990 the computer systems available were a lot more primitive that today.

Desktop PCs were only made available to college students the year after I joined, so for the first year of my Computer Science studies I only had access to mainframe systems, and in particular a VAX VMS system.

This was the type of terminal I had to use, which had an 80 x 24 character screen.

There was a big darkened room in the basement of my faculty building that housed row upon row of these terminals, and it was common to see student hunched over the machines for hours upon end – although not necessarily doing college work.

We didn't have the internet to distract us, but we make a lot of use of the mainframe's internal email system (called "MAIL") to keep in contract with friends. This was before the days of mobile phones, so the email system was one of the few ways to keep in contact with classmates and friends.

The problem was that the university soon realised that the student's use of email was overwhelming the ageing mainframe system – and so they introduced a daytime email ban. Between the hours of 9.00am to 5.00pm on weekdays students were barred from accessing the email program.

Getting around the ban

Of course, resourceful Computer Science kids like me, with lots of free time on their hands, soon found way to bypass the ban.

We quickly realised that the ban was being enforced by the use of a script – in the VMS language these were called Digital Command Language (DCL) scripts. The script checked the time, checked whether the user was a staff member or not, and then decided whether to run the MAIL program or issue an error message.

And so in order to bypass the ban, all it took was the writing of a slightly modified version of the script that didn't do the staff check. Simple.

Of course, after a while the university IT staff soon realised that students were still accessing the MAIL program, so they tightened up security by implementing changes to the security using access control lists that implemented a more effective ban.

An email program written in DCL

The DCL scripting language was actually quite powerful, and you could write small applications in it. I had grown quite interested in the language during my long hours in the lab and had already written a number of small utilities, such as an application launcher, that a number of my fellow students were using.

So it occurred to me that I might be able to also write a primitive email client as well.

The mechanics of it were actually quite simple. The program would launch a text editor where you would write your message. Then, when the text editor closed, it would save the file in a common directory and prompt the user for a username and email subject. Details of the filename, sending username, recipient's username, and email subject were then written to a log file.

When the recipient then accessed my email program, it would scan through the log file for any matches of their username, and present the details of the emails to them.

The user could then choose from options to delete or reply to the message.

The program was very basic, and not always stable. Some of the time the log file would get corrupted from multiple people trying to write to it at the same time. But for the most part, it served as an effective email system for the couple of hundred students that knew about it.

Short lived success

My basic email system lived for around 6 months, completely undetected by the IT staff, and sent and received in the region of half a million messages. I had to keep clearing down the log file periodically, as it wasn't indexed and a full file scan as the log file grew was taking longer and longer. 

Then at the start of the new academic year – my second year – a revolution happened. A new lab of Windows 3.0 desktop PCs appeared, with the Eudora email client installed and proper POP3 email accounts, and students soon lost interest in using email on the mainframe.

The reduced load on the VMS system meant that the MAIL program restrictions could be lifted, and the need for my email utility disappeared overnight.

In fact, all interest in the lab of VT terminals quickly dried up, as their fixed character screens were viewed as quite primitive in comparison to the GUI available on Windows. But I'll always have a soft spot for VMS mainframe systems and the DCL scripting language.

After university I even tried to get a job with Digital Equipment Corporation (DEC) who made the VMS computers – but I suspect I came across too strong in the interview!

Maybe I should look into getting a VM running OpenVMS so that I can revisit the operating system one last time.

Working on more than one Excel spreadsheet

Microsoft Excel by default opens all spreadsheets into the same Workspace, so it can be tricky if you want to work on multiple spreadsheets at the same time.

If you’re copying information between two spreadsheets, or want to compare data from two different sources, then it can be tricky to do. You might have experienced the problem of having to flick back and forth between two spreadsheets.

One way around it is to use the View Side by Side option:

  • Open the two spreadsheets you want to work upon
  • Select the View tab
  • Click on View Side by Side
  • To switch between the spreadsheets being on top of each other or side by side, click on Arrange All and select Horizontal or Vertical

It will look something like this:

However, that’s still not much use if you have two monitors, and want to have a separate spreadsheet in each monitor, because a maximised Excel worksheet only works in one monitor.

What you need is to start up two separate instances of Excel, and then each instance can be maximised on separate monitors. The first instance of Excel loads in the normal way, and you open your first spreadsheet in that. The second instance of Excel can be started by holding down the shift key as you click on the Excel icon (either from the Start menu or Taskbar). A separate blank Excel worksheet will launch (it’s actually a second instance of the Excel program running) and you can load your second spreadsheet into that.

These separate instances run completely independently of each other, and one can be closed (or even killed in the Task Manager) without affecting the other.

Dublin Bikes

Just spotted the advertising for the new Dublin bike rental scheme – called, funnily enough, Dublin Bikes – which is due to be launched on 13th September.

With some 450 bikes available in 40 different locations in the city centre, users can take a cycle for free for up to 30 minutes, and after that it’s only 50 cents per half hour.

Simple Pleasures

Somebody showed me this morning how to turn the display of my computer upside down, and it’s been entertaining me ever since. I’m not sure if this works on all computers, but you could give it a go. Press Ctrl + Alt + Down Arrow to turn the screen upside down, and Ctrl + Alt + Up Arrow to restore it. Have fun.

MacBook Hard Disk Replacement

Last night I performed a hard disk upgrade on my Apple MacBook. The original 60GB disk that came with the machine has always been woefully inadequate from the start – particularly as I have about 64GB of music files alone. And so, up until now, I’ve always had to store my media files on an external drive.
The upgrade was inspired by various tutorials available on the net, and is made especially painless by the OS X Leopard backup tool Time Machine, which enables an easy restoration of files onto the next disk.
You can use any 2.5inch SATA disk drive as a replacement. I bought myself a 250GB drive from a local computing shop for just under €100, but you can probably get larger and cheaper drives online.
The physical swap over of the drive only takes about 5 minutes. Just follow the instructions in the online tutorals. But you might need several hours to restore the data onto the new disk afterwards. In my case, I had to partition the disk (using the Disk Utility on the Leopard install DVD), and install OS X onto the disk (taking about an hour), before restoring all my applications and files from the Time Machine backup – which took another couple of hours.