Code your own Fridays – Part two
Following on from part one, we continue looking at our brand new personal development training from the past couple of months. Continuing on from last week, we had a lovely chat with the owners of Shambala Festival, after Jim Mawdsley of Generator/Digital Union picked up on our article. Who would’ve thought this LinkedIn marketing jig would work? Watch this space for developments in that area – we’ll have our face paints and sun cream ready for the festival scene.
Here’s a taster of the next bunch of talented deliverables from our training personal development, Code your own Fridays (CYOF).
Tom Harwin – Junior Developer
“My project involved creating a software synthesiser that could be used on the go through the user’s web browser. By implementing the most basic synthesiser features, such as a waveform selector, envelope control, filter control and basic FX, it appeals to novice users learning audio synthesis. The project utilises the Tone.js framework to provide an audio context, as well as CSS animations to provide visual feedback when parameters are changed.”
What we liked about it
Audio – on the internet? Who’da funked it? This interactive masterpiece is something truly special, and is a great example of how you can move away from ‘just websites’ on the internet. There’s so many elements to this that screams a rare blend of creativity and programmatic knowledge from one person. Also, Tom’s a junior, and is clearly a rising star. It’s probably even more impressive if you have an ounce of musical talent, unlike myself.
Tim Wiffin – Back-end Developer
“I researched message queues using the RabbitMQ message broker. Setting up queues within web apps and software allows processes to run independently from each other. Examples include generating sales reports and sending emails. Essentially, processes that can take a long time and may use a lot of computational power.
The benefits to the user and the client can be huge. The user experience can be greatly improved if they are not waiting for processes to finish, but instead are notified when they are completed. In large web applications, setting up queues has the potential to reduce server load and therefore costs to the client. Looking further, there is a potential to set up queueing systems with auto-scaling servers in the cloud.
In my example, I created some dummy location data and used it to send requests for a ‘taxi’. The software sends 17 requests in quick succession, decides on the ‘importance’ of the request, and adds them to a ‘high’, ‘medium’ or ‘low’ queue accordingly. The ‘high’ importance queue ‘worker’ is set to check if there are any available ‘drivers’ to pick them up.
The short video shows three ‘workers’ working on high-importance requests, two on medium, and one on low. You could potentially add any number of workers to queues, depending on computational power and memory. There are a number of different configuration options available to utilise message queues to improve web applications and software.”
What we liked about it
This again is something new that we don’t really get to touch on very often. But, message queueing is a great way to manage server load, particularly on heavy traffic applications. Rather than leaving it up to the fate of the server, queueing can give full control and monitoring capabilities. As Tim says – it makes a massive difference to reporting on our critical business systems and will feature in our mobile apps currently in development.
Adam Hutchinson – Back-end Developer
“I created an app using Xamarin.Forms. The main purpose of this project was to learn the fundamentals of Xamarin.Forms, so I can use it in future projects in or out of work. I only got a chance to build it for Android devices, but Xamarin.Forms allows you to build apps simultaneously for Native Android, Windows Phones and iOS devices. My app uses SQLite to instantiate a database locally on the phone-to-store user information.
My app is a simple game that will test the user’s reaction times. The user ‘plays’ as a car and has to avoid oncoming traffic. It is still a way off, but a playable prototype none the less. There are still a lot of areas to investigate with Xamarin, but this has enabled me to grasp the fundamentals to take forward.”
What we liked about it
Another instance of a developer treading their toes in a new field of work. We encourage our developers to try out various technologies – not just in web. The great thing about Xamarin is that it allows our developers to code in a familiar language, c#, to create apps across multiple devices. This in turn saves on development costs and reduces maintenance required in the long run. The alternative is having developers who know Android and iOS development in their respective underlying languages. It’s a great step towards Adam’s Xamarin knowledge – an area that’s not just a traditional form-based app.