Posts Tagged: google

Authenticator App Support

Two-Factor Authentication (sometimes referred to as 2FA) is a more secure method of logging into websites or online services.

Traditionally, when you “log in” to a website or online service, you enter your username (typically your email address) and password. Then you click a button, and if the details you enter are valid, you’re logged in.

Unfortunately, many people reuse the same credentials (username / password combination) again and again for multiple websites and online services. The danger of this is that if one of those services gets “hacked” or suffers a data breach where user credentials are exposed, an attacker could potentially then access all other websites and online services that that person uses.

Two-factor authentication combats this. It does so by employing a secondary means of authentication in addition to the traditional username / password combination in order to authenticate a user’s access.

This means that even if a user’s password has been compromised, an attacker couldn’t then this to gain access to someone’s account.

Two Factor Authentication in MIDAS

Since 2015, all MIDAS room booking systems have included optional two-factor authentication. If enabled, this adds an additional layer of account security to our software.

With Two-Factor Authentication enabled, each time a user logins in, a code is sent to their email inbox. The user must then enter this code into MIDAS in order to complete their log in.

But starting with MIDAS v4.38, we’re improving 2FA options and support in our software!

MIDAS v4.38 (and later) now support authenticator apps – including Google Authentication and Microsoft Authenticator – as an alternative 2FA login option to email.

Per User Two Factor Authentication Settings

Previously, the 2FA option in MIDAS was a ‘global’ setting. This meant that it could be enabled or disabled for all user accounts at once. It was not possible to have ‘per account’ 2FA settings.

We’ve made this more flexible for MIDAS v4.38!

Now, administrators can set whether 2FA is enabled for each individual user account. The 2FA option for each account can also be set.

Available 2FA options are now:

  • Authenticator App
  • Email

Enabling 2FA Authenticator App Globally in MIDAS

To globally turn on 2FA for all users, administrators can go to MIDAS Admin Options > Manage MIDAS > Security. In the “Two Factor Authentication (2FA)” section, tick the “Enable Two-Factor Authentication For All Users?” box, and then select the “Authenticator App” option:

Global Two-Factor Authentication Options - now includes authenticator apps
Global Two-Factor Authentication Options – now includes authenticator apps

Click “Save Changes” and 2FA via Authenticator Apps will be enabled for all user accounts.

Enabling 2FA Authenticator App For Individual User Accounts

2FA options are also available on a per-user account basis. Administrators can enable, disable, or change the 2FA method on a user account by going to MIDAS Admin Options > Manage Users & Permissions.

Select the user account you wish to enable 2FA for, and choose “Authenticator App” from the “2FA Login” setting:

New per-user Two-Factor Authentication Options
New per-user Two-Factor Authentication Options

Then click “Save Changes”.

How 2FA via an Authenticator App Works

When 2FA authentication via authenticator apps has been enabled on a user’s account, the next time they login, they’ll be presented with a QR Code to scan with their authenticator app:

Setting up your authenticator app upon first login
Setting up your authenticator app upon first login

If they’re unable to scan the QR Code a ‘secret key’ is also provided which can be manually entered into authenticator apps.

The user’s authenticator app will then generate a 6 digit code which they can enter into MIDAS to complete their login.

The QR Code / Secret Key needs only to be scanned/entered into the user’s authenticator app once upon first use. For subsequent logins, the user will simply need to enter the 6 digit code generated by their authenticator app:

Entering a OTP generated by your authenticator app to complete login
Entering a OTP generated by your authenticator app to complete login

Supported Authenticator Apps

Popular FREE authenticator apps supported by MIDAS include:

However, any OTP authenticator app which generates Timed One-Time Passwords (TOTP) derived from a shared secret value and the current time should be compatible. TOTP codes are typically six digits long and change every 30 seconds.

Resetting 2FA

If a user looses their authenticator app, an administrative user in a MIDAS system can change the user’s 2FA method, or reset their authenticator token. By resetting a user’s authenticator token, the next time the user logs in, they’ll be presented with a brand new QR Code/Secret Key to enter into their authenticator app.

Availability

2FA login authentication has been available since MIDAS v4.10 (2015). However, this implementation is limited to authentication codes sent to users via email. 2FA could also only be enabled globally (for all user accounts)

2FA login authentication via either email or authenticator apps is available in MIDAS v4.38 or later. These options can be enabled globally, or an a per user account basis.


Optimizing Source Code with AI

Optimizing Software Code using AI

Often in the release notes for our MIDAS room scheduling software, you may see the entry “Code Optimization”.

What is “Code Optimization”?

Code optimization is the process of refining our software’s source code to make it execute more efficiently, consume fewer resources, or improve its overall performance. It involves strategically modifying source code whilst at the same time ensuring the new code still produces the correct results.

Key goals of source code optimization:

  • Enhanced speed: Executing tasks more quickly
  • Reduced resource consumption: Using less memory, CPU cycles, or power
  • Improved scalability: Handling larger workloads effectively
  • Maintainability: Making code easier to understand and modify

Some common source code optimization techniques involve:

  • Algorithm optimization: Choosing more efficient algorithms
  • Loop optimization: Reducing loop iterations or overhead
  • Memory optimization: Minimizing memory usage and allocations
  • Input/output optimization: Streamlining data reading and writing
  • Caching: Storing frequently used data for faster access
  • Compiler optimization: Leveraging compiler features for automatic optimization
  • Profiling: Identifying performance bottlenecks to focus optimization efforts

Code Optimization in MIDAS

Over the years we’ve been developing MIDAS, all our code optimization work has been done manually.

This work has involved attempting to simplify and rewrite parts of the source code to be more efficient.

Code Optimizing with AI

In our latest release, MIDAS v4.35, for the very first time, a small section of source code has been optimized with the assistance of AI (or Artificial Intelligence).

We performed this AI code optimization as an experiment to see whether AI could potentially be used to aid our development processes in the future.

We chose a small “subroutine” from our software and asked an AI if it could optimize it for us.

A “subroutine” is essentially a small block of code which can be re-used and “called” repeatedly during a program’s execution.

The subroutine within the MIDAS software code that we asked an AI if it could optimize for us was basically a function which converts dates to “epoch” time.

Epoch time is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT).

How did the AI do?

Our original subroutine was 15 lines of code long. Using AI to optimize code, reduced this subroutine down to just 9 lines of code.

However, the initial source code that the AI generated for us did not just work “out of the box”. In fact, it didn’t work at all!

But using this AI generated code as a “template”, our team was able to modify the generated code so that it worked and produced the correct results.

Our team then extensively tested the new subroutine to ensure that it consistently produced the same expected output as the original subroutine.

Once we had a working subroutine that we were confident in, the next step was to “benchmark” the new routine against the old one. After all, there would be no point in using the new routine if there were no performance gains to be had, or indeed if the new code performed worse than the original.

To test this, we ran each subroutine 10,000,000 (10 million times), and analyzed the results:

Our Original Subroutine:
30 wallclock secs (30.28 usr + 0.00 sys = 30.28 CPU) @ 330229.18/s (n=10000000)

AI Optimized Subroutine:
27 wallclock secs (27.09 usr + 0.00 sys = 27.09 CPU) @ 369085.41/s (n=10000000)

To explain the above results, over 10 million iterations of each subroutine, the new AI optimized subroutine was more efficient. It ran (executed) quicker, and consumed less processing (CPU) power to achieve the same results as the original subroutine.

On our test server, the optimized subroutine was able to run 369,085 times in the space of one second, compared with 330,229 times in the space of a second for the original subroutine.

Ok, so the original subroutine was pretty quick and efficient to begin with – but with the assistance of AI, we were able to improve its efficiency by almost 12%.

Where do we go from here?

Firstly, don’t worry, Artificial Intelligence is not about to take over the development of our MIDAS software!

MIDAS has been – and will remain – coded, developed, and maintained by human programmers.

But our experiment – on a very small part of our code – has demonstrated that AI tools may be able to assist our human developers to write ever more efficient source code.

The result of such carefully applied optimizations is that our software can potentially run faster, use resources more efficiently, and provide a better overall user experience.


What AI thinks about MIDAS?

What rivals ChatGPT and Google Bard think about MIDAS

It’s an exciting time in the world of Artificial Intelligence (AI), especially when it comes to AI powered interactive chat “bots”.

You may well have heard about “ChatGPT“, which is funded by Microsoft, and who are now starting to integrate its capabilities into the Bing search engine.

You may have also heard about Google’s rival, “Bard” (now know as “Gemini”), who are also integrating their AI chat bot into their search engine.

So for a bit of fun, we decided to put both of these leading AI chat bots to the test. We asked them both a very simple question to see if they knew…

“What is MIDAS room booking software?”

Here’s what ChatGPT has to say…

MIDAS (which stands for Meeting Room Scheduling) is a web-based software application designed to help organizations manage their room booking and scheduling needs. The software allows users to book meeting rooms, conference rooms, and other facilities quickly and easily, and provides a range of tools to help manage the booking process efficiently.

MIDAS allows users to set up and manage multiple rooms, view real-time availability, and make bookings directly through the software. It also includes features such as email notifications, automated invoicing, and reporting tools to help track usage and optimize room allocation.

MIDAS is a popular choice for businesses, schools, and other organizations that need to manage their room scheduling needs efficiently. It is easy to use, flexible, and customizable, making it suitable for a wide range of applications.

– ChatGPT

Here’s what Google’s Bard has to say…

MIDAS is a cloud-based room booking software that helps businesses and organizations of all sizes manage their meeting and event spaces. With MIDAS, users can easily book rooms, track room availability, and manage room reservations. MIDAS also offers a variety of features that can help businesses save time and money, such as:

  • Real-time availability: MIDAS provides real-time availability of rooms, so users can always see which rooms are available and book them quickly and easily.
  • Group booking: MIDAS makes it easy for users to book rooms for groups, so they can easily coordinate their schedules and ensure that everyone has a space to meet.
  • Reporting: MIDAS provides detailed reports on room usage, so businesses can track their spending and make informed decisions about how to allocate their resources.
  • Integrations: MIDAS integrates with a variety of other business systems, so users can easily manage their room bookings from within their existing workflows.

MIDAS is a powerful and flexible room booking software that can help businesses and organizations of all sizes save time and money. With MIDAS, users can easily book rooms, track room availability, and manage room reservations. MIDAS also offers a variety of features that can help businesses save time and money, such as real-time availability, group booking, reporting, and integrations.

Here are some of the benefits of using MIDAS room booking software:

  • Save time and money: MIDAS can help businesses save time and money by automating the room booking process. With MIDAS, users can easily book rooms, track room availability, and manage room reservations. This can free up staff time to focus on other tasks, and it can also help businesses avoid overbooking and underutilizing their meeting and event spaces.
  • Improve efficiency: MIDAS can help businesses improve efficiency by providing a centralized platform for managing room bookings. With MIDAS, users can easily see which rooms are available, book rooms, and track room reservations. This can help businesses avoid the hassle of manually tracking room availability and booking rooms.
  • Increase collaboration: MIDAS can help businesses increase collaboration by providing a platform for users to share information about room bookings. With MIDAS, users can easily see which rooms are available, book rooms, and track room reservations. This can help businesses ensure that everyone is on the same page when it comes to meeting and event planning.

Overall, MIDAS is a powerful and flexible room booking software that can help businesses and organizations of all sizes save time and money. With MIDAS, users can easily book rooms, track room availability, and manage room reservations. MIDAS also offers a variety of features that can help businesses improve efficiency and increase collaboration.

– Bard

Our thoughts…

We have to admit that on this occasion, we preferred Google Bard’s response. It was certainly a more in depth summary of our MIDAS software.

ChatGPT’s response – whilst concise – was a little misleading. It claimed that “MIDAS” stands for “Meeting Room Scheduling”.

Whilst MIDAS is indeed a meeting room scheduling system, the acronym “MIDAS” itself doesn’t stand for “Meeting Room Scheduling”. For a clue as to what MIDAS does stand for, see this blog post.

AI chatbots are certainly having a bumpy ride of late.

Back in February this year, $100bn was wiped off Google’s parent company, Alphabet’s shares, after Bard made a mistake and investors became nervous.

More recently, a man widely considered to be the “godfather” of Artificial Intelligence, who quit his job at Google, has warned about the growing dangers from developments in the field.

When two big rivals – Google and Microsoft – both launch competing AI ChatBots, the race is on. Yet many are warning that we need to slow down AI development and ensure that ethics are taken into account.

In the fifteen plus years that we’ve been developing MIDAS, we’ve seen (and implemented) numerous technological advances. It’s exciting – if not also a little scary – to think where the advancements in AI might take us in just a few year’s time.

UPDATE: January 2024: We’ve used AI for the first time to help optimize some of our MIDAS code! Read more about this in our optimizing code with AI blog post.

UPDATE: February 2024: “Bard” has now been rebranded as “Gemini”.


The sad demise of Google Checkout

Google Checkout LogoOur MIDAS room scheduling software allows your customers to pay invoices online for the hire of your rooms, facilities, and resources.

This feature was first introduced back in 2010 with MIDAS v3.10. Since then, we’ve natively supported payment of invoices using either PayPal or Google Checkout.

Unfortunately, as of MIDAS v4.07 we have now removed – the now defunct – Google Checkout support from our software.

Google Checkout first came into being in 2006 with the aim of simplifying the process of paying for online purchases. Users would store their credit or debit card and shipping information in their Google Account. This allowed them to make purchases without having to re-enter their information each time, and secure in the knowledge that their card details wouldn’t be made available to the seller.

Transaction fees for using Google Checkout were initially free. However, as one of PayPal‘s main competitors, over time the transaction fees for using Google Checkout became identical to PayPal’s fees. Many of the each platform’s features also aligned, such as providing fraud protection and the ability for customers to track purchases.

Whilst PayPal and Google Checkout were in direct competition offering quite similar services, there were a number of differences.

On the plus side, once a merchant received a payment via Google Checkout it would be automatically withdrawn to the merchants bank account. PayPal, on the other hand, required merchants to manually withdraw funds to their bank account. On the downside, whilst PayPal supported transactions in multiple currencies; Google Checkout only accepted payments in the currency that the merchant’s bank account was in. It was not possible for Google Checkout merchants to accept multiple currencies.

Google Checkout Becomes Google Wallet

Google Wallet Logo In 2011, Google then announced a “rebrand” of Google Checkout to “Google Wallet”, but the services offered remained the same.

However, in late November 2013, Google Checkout was discontinued and the nature of “Google Wallet” shifted.

Google Wallet has now become a method for making and accepting payments exclusively for apps and in-app purchases via the Google Play Store. It can no longer be used as an online payment processor for anything else.

Due to this new direction in which Google have taken their Google Wallet service, the previous functionality we were able to offer in MIDAS – the ability for clients to pay their invoices online using Google Checkout/Wallet – now no longer works. We have therefore removed all Google Checkout/Wallet integration as of MIDAS v4.07.

We hope Google reconsider their stance to provide online payment processing solely for their own Google App Store. The more choice there is for both consumers and merchants alike the better. That said, there are numerous other online payment processors that have sprung up in recent times. These include notable solutions such as Amazon Payments and Stripe. Incidentally, Stripe is now our preferred card payment processor for purchases made through our website.

Going forward, we continue to support PayPal as a method to allow your clients to directly pay their invoices online for use of your rooms/facilities. In fact, we’ve also improved this support for v4.07 too! If you allow clients to pay invoices online via PayPal, PayPal can now automatically update the status of their MIDAS invoices once payment has been made. This means that you’ll no longer have to manually update invoices yourself! For more information, please see: Configuring PayPal Integration

We’re also keen to hear from you! Are any other online payment processors you’d like us to consider supporting in future updates to MIDAS? We can’t promise we’ll natively support them, but we’d love to hear from you!