General development – round #6

It is time for another development blog post. The last post was from 2(!) years ago. A lot has changed since then, not only with NEO Endurance but also in my personal life. Early 2016 I graduated, found a job, switched jobs, and now I work as a Frond-end developer at a great company called StudyPortals. This company is great and they are serious about fun. “Work hard, play hard”. We have occasional Nerf gun fights and fly mini drones around the office.

Enough personal talks. This blog is meant for development updates and share the things I have learned in the process. I always have many plans for the NEO website, but there was always one major problem: lack of time. Trying to balance work, running NEO, racing/managing Racing Lions, basketball, a girlfriend, and social activities was a great challenge. Especially last year this struck me. I had a hard time managing everything. That’s why this season I won’t be racing in the NEO Endurance Series. This way I can focus on running NEO as an organiser and have more time left for other things in life. I am wondering off again. Back to the development updates.

New hosting server

In fall 2016 we already upgraded our hosting package. To prepare ourselves for more traffic to the website during the races. Our live timing page has a lot of visitors during the races. For the regular 6 hour races we never came close to our monthly traffic limit. The Monday after the 24 hour race we reached our monthly limit. This caused the website to be shut down until the start of the new month. I was glad the race was at the end of March instead of earlier in the month.

Still the downtime was frustrating for us. That is why we started looking for better hosting provider. One requirement was no monthly traffic limit.TransIP seemed to be the best choice for us. The monthly costs are a bit higher, but this worth it when we do not get shut down anymore because of a monthly traffic limit.

The migration went relatively smooth, without any loss of data. While moving the website to TransIP, it was also a good moment to enable HTTPS for the website. This ensures your connection with the NEO website is secure.

Facebook Instant Articles

One cool thing I have implemented lately on our Facebook page. It is called Facebook Instant Articles (IA) and with this tool users can read our articles instantly from their Facebook feed. Before users could click the link and the browser starts to load the website. This could take up to eight seconds. Now only the content is loaded within the Facebook app. This gives the reader a faster and better experience, all within the app. No more switching back and forth. I am running Facbeook IA now as an experiment. In a couple of months I will check the results and decide if this is actually useful.

The best thing for me: I don’t have to do anything. Facebook has a plugin that converts an article automatically to an Instant Article. If you would like to enable Instant Articles for your league or other website, go to instantarticles.fb.com and follow the steps.

Changing the website

With my new job I am rapidly improving my programming skills. I can use this to improve the NEO website, which is pretty exciting. For a long time I wanted to improve various aspects of the website and now I have the possibility to do so.

In order to maintain the website well, you need a good foundation in order easily understand the code when you come back to it after months. In WordPress you can add custom code to an existing theme. This way your code remains after an update. I’ve used the Child theme configurator plugin to set up the child theme. Then you can add your custom code.

There are many plans for the website. These will be implemented in the next coming weeks or months. It all depends on the available time.
Among others of those plans:

Improving the entry list code wise and make it responsive

Creating a custom latest news widget.

Create my own countdown widget for the home page.

Improvements to the live timing page.

Discord Bot

This season we replace TeamSpeak with Discord. This platform is relative young, but already very popular in the gaming scene. Discord is a free program combining both text and voice chat. The best way to describe Discord is as a combination of Slack and TeamSpeak. It is available for Windows, MacOS, iOS, Android, and even Linux.

Thanks to Discord we are able to make the process to submit a protest more efficient. At the moment I am experimenting with a bot. For the development of the bot I am using Discord.js, This is a NodeJS module that communicates with the Discord API.

I wanted to make sure teams can submit protests without seeing who send in other protests. The initial idea was to use Dicord’s channel permission to hide the chat history, but that didn’t really work as we would like. That’s why I started working on a custom bot. With this bot you can type a command and a message in your team channel. This message will be send to race control automatically. This project does not only help me developing my Javascript skills, but I also learn about deploying applications with NodeJS.

Together with all preparations for season 4, there is enough to do in the coming weeks.