Category: Development

We feel the need… the need for speed!

We’re committed to regularly bringing exciting new and improved features to our easy-to-use room booking system, MIDAS. We also work hard behind the scenes to constantly improve the overall speed and performance of both our software and infrastructure.

In this article, we’ll take a closer look at some of the performance improvements we’ve introduced over the past year. We’ll also look at some of the performance improvements you can look forward to in the very near future!

Caching and CDN

CDN stands for “Content Delivery Network“. It is a means whereby web content – such as an image – is stored on multiple servers around the world. When the image is requested by a visitor’s web browser, rather than the image being served from a single origin server (which may reside in another country), it is instead served by the nearest/fastest server in the CDN network. The result is significantly improved loading times for content served via a CDN.

Back in May last year (2018) we introduced CDN support for static content for all our cloud-hosted MIDAS customers.

As a result, we quickly saw performance improvements and reduction in load times of customer’s hosted MIDAS systems by up to 67%! You can read more about this in this blog post.

Improved DNS

DNS stands for “Domain Name System”, and can be considered as a “phone book” for the internet. When you enter a website in your browser’s address bar, a DNS system is used to look up the corresponding server on the internet that the URL you’ve entered resolves to, allowing you to then access the site.

This week, we’ve migrated our DNS to a distributed/cloud-based system. Previously, our DNS was provided by our own web servers. So for example, if you wanted to access our blog (blog.mid.as) the DNS system would first have to make contact with mid.as to find out the location of blog.mid.as.

With our new distributed/cloud-based DNS system, DNS is now handled in a similar way to the CDN system outlined above. That is to say that when you enter a URL/sub-domain for any part of our site, the DNS is resolved on a server geographically close to you.

As a result, we’re seeing DNS lookup times for our site up to 5 times faster than previously!

The above images (from dnsperf.com) show how quickly the mid.as domain used to resolve from various locations around the world (left image) and again now (right image).

XML vs JSON

What and what?! XML stands for eXtensible Markup Language. JSON stands for JavaScript Object Notation. Both are methods for storing and transporting data, with JSON being the newer of these two methods.

As we’ve been developing MIDAS for well over a decade now, XML has been the format we’ve used for the main settings file within our software for the majority of that time. This is because JSON wasn’t really around a decade ago!. The downside of using XML – particularly when used in conjunction with Perl (the language which MIDAS is written in) – is that it tends to be a little slow and clunky.

That’s why starting with our next software update, v4.22, we’ll be dropping the main XML settings file in favor of a JSON settings file instead. In our own benchmark testing, this simple change has resulted in improved load times of ~10ms per request. This may not sound a lot, but is actually quite noticeable.

As a result of this upcoming improvement, self-hosted customers will need to ensure that the JSON Perl module is installed and available on their MIDAS system in order to be able to update to v4.22.

Instructions of how to do this may be found in our How to install Perl modules KB article. Cloud-hosted customers don’t need to worry about this, as we’ve taken care of it!


Improved Bulk Venue Modification

In the very early days of MIDAS, each “venue” (room/bookable space) you added to the system could have a name and a maximum occupancy level (capacity) setting.

Over the years as MIDAS has developed and improved, the number of venue options has greatly increased. Today, you can set hours of operation, simple and complex hire rates, venue managers, blocking rules, alternatives, and rich HTML descriptions.

These additional options have given our software even more flexibility for a wider range of applications. However, increasing the number of individual venue settings/options available, can increase the time it takes to set up or make changes to a venue.

That’s why last March, in response to customer feedback, we introduced a way to allow you to “bulk modify” venues. Users now no longer have to modify settings for each venue one at a time.

Manage Venues Screen
Manage Venues Screen

Doing Things In Bulk

The “bulk modify” venue feature allowed more than one venue to be selected at a time from the Manage Venues screen. When the “Save Changes” button was clicked, the current venue settings/options would be applied to all selected venues.

However, some users didn’t appreciate that settings including capacity, rates, hours, and managers would be blanket applied to all selected venues.

Therefore, in order to provide even grater flexibility for users, for v4.21, we’re making it even simpler!

Now, when you have multiple venues selected on the Manage Venues screen and you click ‘Save Changes”, MIDAS will prompt you to select which settings to save to the selected venues:

Bulk Modify venues in MIDAS
Bulk Modify Venues Options

This new additional dialog gives users full control by making it easier to make specific bulk changes to venues. We’re sure you’re going to love the enhanced flexibility!

Check out some of the other new and improved features coming in v4.21 here.


New Invoicing Features

We’re introducing a number of invoicing features in out next update. These are in addition to the new deposit invoice features we outlined previously. Here’s a brief outline of new invoicing features in MIDAS v4.21…


Mark invoices as complete even if not paid in full

After invoices are produced in MIDAS, administrative users may freely edit their content up until the point when the invoice is either printed or emailed to the client. At this point, MIDAS assumes that the invoice has been “finalized” and therefore locks it from further editing.

This ensures that the invoice printed/emailed to the client exactly matches the invoice stored within MIDAS.

Finalized invoices indicate the invoice total, the amount already paid (which initially will be zero), and total still due. The total still due is the invoice total minus the amount already paid against it.

Until the “total due” reaches zero (i.e. the invoice has been paid in full), the invoice will continue to be flagged as “outstanding”. It then subsequently becomes “overdue” if the length of the specified payment term is exceeded.

However, we’ve heard from customers that there are instances when they would like to mark an invoice as complete, even if there is still an amount outstanding on it. An example case might be where a client has been invoiced for the use of 4 venues, but when it came to it, they actually only used 3.

Of course, one solution to this would be to invoice the client after their booking(s) have taken place. That way you can ensure that they’re only invoiced for their actual usage of your facilities. However, we appreciate that this isn’t always possible. There are some customers who prefer to invoice their clients in advance of their bookings taking place.

That’s why for v4.21 we’re introducing a way to mark an unpaid/partially paid invoice as complete.

When updating an invoice’s status, there’ll now be an optional “Mark outstanding amount as credit?” tick box. If selected when updating an invoice’s status, the outstanding balance on the invoice will be marked as a “credit” on the invoice. This will reduce the “total due” to zero and mark the invoice as complete.


Quickly “copy” the contents of an invoice to a new invoice

Wouldn’t it be great if you could “clone” (copy) the contents of an existing invoice to a new blank invoice?

Well starting with MIDAS v4.21 you’ll be able to do just that!

Simply view the invoice you’d like to copy and click/tap the new “Clone Invoice” icon. After confirming that you’d like to copy to the contents of the current invoice to a new invoice, MIDAS will create a brand-new invoice. This new invoice will be identical to the current invoice, but without an invoice date and without any payment marked against it.

As the new invoice doesn’t have an invoice date (because it hasn’t been finalized), its contents may be freely edited.

We’re sure this feature will save time for our customers who regularly produce similar or recurring invoices for their clients.


The “Pay invoice online” features can now be configured to allow partial payments

Until now, the “Pay Invoice Online” features of MIDAS, which allow your clients to pay their invoices online, would only allow clients to pay invoice in full.

If a customer wished to make a partial payment, an administrator would need to manually process their payment. Then, the administrator can manually update the status of the invoice within MIDAS to reflect the partial amount paid.

The good news is that for v4.21 we’re introducing a new “Allow Partial Invoice Payments” setting.

If enabled, this setting allows your clients to enter an amount they wish to pay against their invoice, rather than the only option being to pay it in full.

Of course if the new “Allow Partial Invoice Payments” setting isn’t enabled, then the online payments feature of MIDAS will behave as in previous versions. It will then only allow invoices to be paid in full.

We want to provide our customers the most flexible and versatile invoicing features in a booking system we can. So we’re sure that the exciting improvements to invoicing coming in our next update will be great additions!


Deposit Invoices

It may be a new year, but we’ve been hard at work on the next update (v4.21) to our room booking and resource scheduling system. We’re giving you a “first look” here on the blog at some of the upcoming features you can expect.

Invoicing has been a staple feature of our software for many years. Following customer feedback, for v4.08 we expanded the invoice generation capabilities of MIDAS to also allow generating “Cancellation Invoices“.

This feature automatically charges a cancellation fee to your clients and generates an invoice accordingly if their bookings are cancelled (removed from the system) at very short notice.

This has been well-received by customers, many of whom have also asked for the ability for their MIDAS system to generate “deposit” invoices too.

Well, we’ve listened, and are excited to announce that “Deposit Invoices” are finally coming in MIDAS v4.21!

When generating invoices for bookings and deposit invoicing is enabled, MIDAS will instead generate two invoices; the usual “regular” invoice and a separate “deposit” invoice.

Deposit Invoice Settings in MIDAS v4.21
Deposit Invoice Settings in MIDAS v4.21

The amount charged on a deposit invoice can be customized. It can either be set to a fixed amount, or as a percentage of the overall total booking cost.

Furthermore, there’s also the option to deduct the value of the “deposit” invoice from the “regular” invoice. In not selected, the deposit charge will be in addition to the main booking/hire charge.