Archive for July, 2017

As part of our ongoing commitment to the services we provide to our “cloud hosted” customers, we’ll shortly be upgrading our client servers to support HTTP/2.

HTTP/2 is the first major new version of the HyperText Transfer Protocol (HTTP) for two decades. It will eventually replace the previous HTTP/1.1 protocol which was standardized way back in 1997.

The primary goal of HTTP/2 is to overcome many of the shortcomings of the twenty-year old HTTP/1.1 protocol, particularly in relation to how content is delivered over the internet.

HTTP/2 focuses on optimizing the communication and flow of content between web servers and web browsers. When a user connects to a web site, their browser negotiates an HTTP session with the server. The type of session created will vary depending on the features supported by the browser and the server. If both ends support the latest HTTP/2 protocol, the server uses the HTTP/2 protocol to shape and optimize traffic before it passes through the network back to the browser.

Once the browser and server agree to use HTTP/2, they can utilize additional features such as compression and multiplexing to optimize the connection. If either the web server or the user’s web browser doesn’t support HTTP/2, the connection will fall back to the HTTP/1.1 protocol.

Benefits of HTTP/2

One of the main improvements over HTTP/1.1 is that HTTP/2 uses simultaneous connections (or multiplexing). Previously only one resource can be fetched from the server at a time. However with HTTP/2 multiple resources can be fetched over a single connection concurrently.

Another benefit is header optimization. Every request over HTTP contains header information. With HTTP/1.1, many of these headers are repeated over a single session. HTTP/2 removes redundant headers while compressing the remaining headers, leading to performance improvements.

Benefits to cloud-hosted MIDAS users

In terms of MIDAS, the benefit of our client servers supporting HTTP/2 is that users will see notable improvements in page load speed and responsiveness when using MIDAS.

In our pre-testing, we saw page load times via HTTP/2 improve by some 20% over the same pages loaded via HTTP/1.1

When will the upgrade happen?

We’ll be upgrading our client servers to support HTTP/2 over the coming weekend (15/16th July 2017). Other than a quick server restart, no additional downtime is expected. For more information, check our dedicated Service Status site (which already supports HTTP/2!), and follow us on Twitter for updates.

Will I need to do anything?

No action is required on your part!

If you’re running a modern operating system and web browser, you won’t need to do anything. Your browser will already support HTTP/2, and you’ll still access MIDAS in exactly the same way. Once our servers are HTTP/2 enabled over the weekend, your browser will adjust accordingly.

If you’re not running an HTTP/2 compliant browser/operating system don’t worry, you’ll still be able to connect to your hosted MIDAS system over HTTP/1.1 as before. For an improved MIDAS experience though, you may like to consider upgrading your operating system & browser to one that supports HTTP/2.

  • Edge Chrome Firefox Current versions of Edge, Chrome, and Firefox browsers fully support HTTP/2.
  • Safari Current versions of Safari support HTTP/2 on OSX 10.11+
  • Internet Explorer Internet Explorer 11+ supports HTTP/2 on Windows 10 only

UPDATE: Our network is now fully HTTP/2 enabled, and we’re seeing some great performance improvements too!


Privacy Improvements

We care about privacy, which is why we’re introducing “Do-Not-Track” support in our forthcoming update, MIDAS v4.16.

“Do-Not-Track” – or DNT – is a setting present in most modern web browsers. If enabled, it instructs the web servers not to track you. This can mean not to track your visit, or not to tailor advertising based on your browsing habits, etc.

More and more websites are increasingly respecting this user privacy preference – but it’s fair to say that the vast majority still don’t.

As DNT is a voluntary standard, not all websites or online services have agreed to honor it. Even among those that have, not all have implemented the standard in the same way. Therefore, the effectiveness of DNT can vary depending on the website or service you are visiting.

Now, Ordinarily, the “Recent Activity” log in MIDAS – which records all user activity taking place in your scheduling system – also logs each user’s IP address.

Do Not Track (dnt) Support in MIDAS
Do Not Track (dnt) Support in MIDAS

For v4.16 we’re introducing a new “Honor user’s Do Not Track preference?” setting.

If enabled by an administrator, MIDAS won’t log user’s IP addresses in its Recent Activity log if the user has also enabled the “Do-Not-Track” setting in their browser.


Reducing International Price Fluctuations

 
 
 
 
 

As you may be aware, we are a UK based business. Consequently, our “base” pricing is in Pound Sterling (GBP).

However our customer base is global, with around 70% of our customers residing outside the UK.

Because of our global reach, we also accept payment in a variety of other currencies too. This includes Australian Dollar (AUD), Canadian Dollar (CAD), Euro (EUR), and US Dollar (USD).

As our core pricing is referenced back to Pound Sterling (GBP), our systems routinely retrieve daily the current exchange rates between GBP and each of the other currencies we support. We obtain our exchange rates from the ECB (European Central Bank). We then use this data to automatically adjust the prices you see on our website. This occurs each day and for transparency, we display the date & time when the exchange rates were last updated.

This may mean that if you view international (non-Sterling) pricing on our website on any given day, and then check back another day the prices may have changed from those listed upon your initial visit.

Now, this doesn’t necessarily mean that the prices you’ll see on your return visit will be higher. In fact, in many cases they may be lower! Indeed, since the UK voted to leave the EU back in June last year, our non-Sterling prices have been on average 10% lower than they were before 23rd June 2016.

We’re committed to fair and transparent pricing. Our core Sterling pricing for MIDAS has remained fixed for a number of years now and has not been raised as a result of the UK’s decision to leave the EU.

However, due the wider instability and uncertainty in global markets that have become more prevalent in recent times, as a result of – for example, Brexit and the Trump presidency – this had tended to mean that our international prices have fluctuated a little more day to day than they have done previously.

Therefore, for the benefit of all our customers, we’ve now introduced a small improvement in the way that our systems automatically adjust our international (non Sterling) pricing each day.

Increasing Exchange Rate Stability

Instead of using the current exchange rates on each specific day itself in isolation, our systems now take an average of the daily exchange rates over the previous 7 day period. Effectively, we’re now using a “rolling 7 day average” to adjust our international prices.

This helps smooths out and reduce small price fluctuations you may see on our website from day to day!

We also know that many organizations require a formal fixed-price quotation. We’re very happy to provide quotations upon request. The prices given on these quotations would be fixed for a period of 30 days. Please contact us for a quote today if interested!


Upcoming New Features in the MIDAS API

To coincide with our next release of MIDAS, v4.16, we’ll also be releasing an update to the optional MIDAS API.

Our optional API access addon offers a programmatic and bi-directional interface to a MIDAS scheduling system.

The API can be used to extract data from a MIDAS system. This data can then be processed and used within your website and applications.

The API can also be used to make changes to settings and data within a MIDAS system. For instance, the API could be used to automate the adding of new bookings.

Or, the API can be used to interface MIDAS with other 3rd party software apps…. the possibilities are near endless!

To further increase the power and usefulness of the MIDAS API, we’re adding a couple of significant features in the forthcoming API update:

NEW: Command Line Support

Until now, all calls to the API had to be made via HTTP transactions. With the next update, you’ll also be able to make API calls directly from the command line! (self hosted editions only). API calls made in this way have the added benefit of being significantly more efficient and faster (assuming the call is made from the command line on the same server as the MIDAS system), as they do not require an HTTP transaction to be conducted.

To make API calls from the command line, simply call “api.pl” (located within your server’s MIDAS directory) and pass API parameters and values via command line switches.

For example, to retrieve the currently installed version of MIDAS from the Windows command line (cmd):

A MIDAS API call made from the Windows Command line (cmd)

…or from Windows PowerShell:

A MIDAS API call made from Windows PowerShell

NEW: Optional JSONP Support

By default, the MIDAS API outputs in JSON format. However following feedback from API users, we’re also introducing optional JSONP support with the next update to the API.

If you don’t know what JSONP is, then you probably don’t need it!

JSONP is a method commonly used to bypass the cross-domain policies in web browsers. Typically, modern browsers won’t allow you to make AJAX (Asynchronous Javascript) requests from one domain to another domain perceived to be on a different server.

For instance, if your MIDAS system is running on server A, and you wish to make client-side API calls through Javascript, you would typically only be able to make such AJAX requests from pages residing on server A itself. Attempting to initiate an AJAX request for server A from server B would be blocked by the user’s browser.

JSON and JSONP behave differently on the client and the server. JSONP requests are not dispatched using the XMLHTTPRequest and the associated browser methods. Instead, a <script> tag is created, the source of which is set to the target URL. This script tag is then added to the DOM (normally inside the element).

JSONP support in the MIDAS API (which is disabled by default) can be enabled via the API settings screen.

WARNING: Before enabling JSONP support, you should instead look to use CORS (Cross Origin Resource Sharing) wherever possible, as JSONP has inherent security risks as it injects Jasacript code directly into your web pages

With JSONP support enabled, you’d then be able to pass the name of a Javascript function in a “callback” parameter along with your API calls.

Consider a simple API call to retrieve the version number of MIDAS (passing the “action” parameter with a value of “get_setting“, and a “setting” parameter with a value of “version“). The typical JSON response would be:

{"version":"4.16"}

Now consider the same API call, with JSONP support enabled, and an additional “callback” parameter passed with a value of “myfunction“. The JSONP response would then be:

myfunction({"version":"4.16"})

The “callback” parameter must contain the name of an existing Javascript function on the calling page.

Upon receiving the JSONP response, the user’s browser will execute the “myfunction” Javascript function, passing the JSON data {"version":"4.16"} to it accordingly.