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.

Trying out the Gutenberg editor

There seems to have been a few stories appearing recently about the upcoming release of the Gutenberg editor for WordPress. Many reviews have been mixed, and some are downright negative. But rather than relying on someone else's opinion, I thought I'd give it a go myself.

So what is Gutenberg?

Gutenberg is a new post editor for WordPress. It has been designed to replace the existing post editor – also known as the TinyMCE editor – with something a bit more powerful and useful.

Existing TinyMCE Editor

The existing editor will be very familiar to everyone that's used WordPress, and the change over to something new takes some getting used to.

Gutenberg Editor

The biggest change, apart from the cleaner lines and improved layout, is that each title, each paragraph, each quote, and each image on the page are in their own 'block'.

Each block is created by clicking on a little plus symbol (+), and then you select the type of block you want to add. There are a whole load of different types of block:

  • Headings
  • Paragraphs
  • Images
  • Quotes
  • Lists
  • Tables
  • Code blocks
  • Videos

There's also the option to embed things from Facebook, Twitter, YouTube, and many more sources.

So the idea seems to be to replace a whole lot of extended functionality that was previously achieved using plugins and short codes in the middle of text.

So is it any good?

Well this is the first post I've ever written using Gutenberg, and I like it already. For just writing a normal post full of text, I suppose it's a bit more complicated. But the real power of the editor comes when you want to start adding to the text.

Adding images suddenly becomes easier and more intuitive. And I have a lot more confidence that moving stuff around the page isn't going to mess up all the formatting.

And if I want to do anything fancy like embed a tweet, such as the one below, then Gutenberg really comes into its own. 


So how do you try it out?

It seems that WordPress is gearing up to roll out Gutenberg as its editor in the next major release of the software. Until then, it's available to add to your WordPress install as a plugin, so that you can try it out.

I believe the plugin is still in beta testing at the moment, so maybe don't use it for any critical production sites. But as this blog only gets about 40 visitors a day, I feel pretty safe in using beta code!

Why not give it a go, and let me know what you think in the comments below.

VAT rates on Amazon

I live in Ireland but often buy things from Amazon in the UK.

I sometimes use services like Parcel Motel or AddressPal to buy items that won't deliver to Ireland. But it's also worth considering using these services to make a saving on VAT as well.

Amazon applies the VAT rate at checkout on goods according to the delivery address you select:

  • If you use a UK delivery address, the price displayed in the checkout is the advertised price on the site, based on a VAT rate of 20%
  • If you use an Irish delivery address, the price displayed in the checkout will be recalculated based on a VAT rate of 23%

This is because Amazon are required by the EU to collect VAT based on the country the customer lives in.

So, for instance, if you want to buy a set of headphones for £299.99, and get them delivered to the UK, then you will pay £299.99. But if you get them delivered to an Irish address, then you will pay £306.48. That's nothing to do with shipping costs – both addresses can get free shipping – that's because of the extra 3% VAT charged to Irish consumers.

When you think that Parcel Motel charges €3.95 at the moment to redirect a parcel from the UK to Ireland, you can still save a couple of quid.

And if you're buying something really expensive, such as a top of the line Microsoft Surface Pro 4 for £1,799.99 it could cost you an additional £45 if it gets delivered to Ireland. But it's worth noting that if you do consider taking delivery through Parcel Motel, their standard insurance only covers parcels up to a value of €100. To increase the insurance cover you need to pay an additional €10.50 to get extended liability cover for €1,500.

Removing Meetings

On a busy project it’s common to have a full calendar of meeting; so much so, that it’s often hard to find time to get actual work done!

When something new crops up, people are quick to add another meeting to the calendar, but how often do people go out of their way to remove meetings?

Once a recurring meeting gets established it can be really hard to get rid of it, even if it’s not achieving its purpose. Some meetings often end up as a general talking-shop where everyone feels the need to voice their opinion. And meeting attendance just seems to grow week on week, with more and more people added to the invite list.

I know of so many people that complain about the number of meetings they have – and, ironically, they are often the ones that talk the most during those meetings! But how many people ever question the need for a meeting?

In my project we’ve been looking at the number and length of all our recurring meetings, and have tried to re-focus ones that have got off-track. Some meetings have been shortened, some made less frequent, and some have reduced the number of attendees. We also created a matrix to describe what job roles have mandatory or optional attendance at meeting, which helps people determine if they can legitimately skip something.

The up-shot is that one meeting, which used to last occur twice a week for an hour with around 20 attendees, is now just 30 minutes once a week with 8 attendees – freeing up a total of 36 hours of people’s time. Just think of the productivity! It’s like hiring an extra person, and that’s just from one of our meetings.

Foreign currency transfers

Changing money between different currencies can be expensive.

Traditional banks buy and sell foreign currencies from/to their customers at rates vastly different from the exchange rates you might see on the news. And while they may claim they don’t change fees, they do earn quite a bit of money by adding a mark-up to the exchange rate being offered.

There are, however, a number of disruptive financial companies emerging that can save you money. Companies like TransferWise, Revolut, and others.

For example:

  • a Bank of Ireland transfer of €1,000 to a UK bank will get you £887.80.
  • Using TransferWise to move the same €1,000 will get you £909.45. That’s a difference of £21.65 – or 2.5%!
  • Using Revolut to transfer the €1,000 will get you £914.00. That’s a difference of £26.20 – or 3%

And as the numbers get bigger, the difference will start to matter a lot more. Move €5,000 and the difference between Bank of Ireland and Revolut is £131, so it’s definitely worth shopping around.

And if you want some cash in a foreign currency, the one thing to remember is to never ever change money at the airport. That’s where you’ll get the very worst rates. The same €1,000 converted to pounds at ICE in Dublin airport would get you just £861.

The best thing is to wait until you arrive at your destination, and then use the Revolut card to withdraw cash from an ATM. The first €200 ATM withdrawal per month doesn’t incur any fees – after that there is a 2% fee – but it’s still better value.