Shine featured on Google Cloud Platform Blog

gcp

Shine’s Graham Polley has been featured on the Google Cloud Platform Blog talking about his experiences with Google BigQuery.

In the post Graham discusses how he was able to stream massive amounts of data into BigQuery for a customer, and then query it with a SQL-like interface.

Check it out if you want to learn more!

Tagged | Leave a comment

Java 8 – on the path to improving developer sanity

Rewire your brain. Do it now. That’s what Oracle wants you to do with the introduction of the Java 8 SE. Unnecessarily dramatic statements aside, the “JCP” have approved a number of new language features that bring functional programming to Java – and which Oracle are promoting so heavily, they may as well be walking around with “declarative programming is great” inked on their collective foreheads.

Continue reading →

Tagged , , , | Leave a comment

Git Flow and Immutable Build Artifacts

1_5_3_1_Chicken_Egg

We love Git Flow. It’s awesome to have a standard release process where everybody is using the same terminology and tooling. It’s also great to have out-of-the-box answers to the same questions that get asked at the start of every project. For example:

  • “How are we going to develop features in isolation?”
  • “How are we going to separate release candidates from ongoing development?”
  • “How are we going to deal with hotfixes?”

Now it’s enough to just say ‘We use Git Flow’, and everybody’s on the same page.

Well, mostly. Whilst Git Flow is terrific for managing features and separating release candidates from ongoing development, things get a little hazier when it comes time to actually release to production. This is because of a mismatch between the way that Git Flow works and another practice that is common in large development projects: immutable build artifacts.
Continue reading →

Posted in Continuous Delivery | Tagged , | 11 Comments

License to Queue

licenceToKill

A few months ago I joined an exciting project with fellow Shiner Graham Polley, who you might know from such hits as Put on your streaming shoes. This is a follow-up article, discussing the elegant way in which we solved a hideous asynchronous limitation in PHP.

My role on the project was DevOps-based, and I was there to build some infrastructure using Amazon Web Services. As the cool kids would put it, I was there to put our client’s enterprise application INTO the cloud, or, more succinctly, to build a solution coupling services from two rival cloud service providers and provide a new league of scalability and flexibility.
The solution was pretty simple, but, like any simple solution, the little complexities come out along the way, and when you’re least expecting them.

Continue reading →

Posted in DevOps | Tagged , , , | 7 Comments

New screencast on Koa and Javascript Generators

Senior Consultant Ben Teese recently spoke at MelbJS about a new Javascript language feature that makes asynchronous programming much more straightforward: ES6 generators. The talk focussed on Koa, a next-generation web framework for Node.js that leverages generators to avoid the callback chaos that we normally associate with Node applications.

If you’re interested in how generators will help simplify your Javascript development, check out the video or slides.

Posted in Javascript | Tagged , , , , , | Leave a comment

Confessions of a Documenter

confessional

I’m going to confess something. I’ve been harbouring a terrible secret for the last few years. It’s something that I’ve tried to keep hidden away from my peers for a very long time so as not to be labeled as “that guy“. Something I’ve kept buried deep in the depths of my darkest closet. Ok, maybe I’m being somewhat melodramatic. Pray tell, I hear you say, what is it?!

Well, it’s that I enjoy writing documentation. From the lowliest code comments through to high level architectural documentation. I enjoy it all.

Continue reading →

Posted in Opinion | Tagged , , , , | 1 Comment

UX Australia 2014 – Melbourne Redux

uxaustralia

UX Australia 2014 Redux was a one day Melbourne based recap of UX Australia’s 2014 Sydney conference. It was a chance for those who had missed out to see the most popular presentations. The following is a brief overview of the presentations.

Continue reading →

Posted in UX Design, Web | Tagged , | Leave a comment

Getting New Relic and RDS to play nice

Mismatched plug and socket

Anyone who’s ever had to support server infrastructure of any kind knows the value of having a comprehensive, automated monitoring solution in place. With this in mind, we have begun to roll out the New Relic platform to monitor all our AWS based servers. New Relic comes with many great monitoring metrics straight out of the box, but still has the flexibility for software developers to create their own plugins for customized metrics on just about anything your users will care about.
Continue reading →

Posted in DevOps, Tools | Tagged , , , , , | 1 Comment

Getting Started with Angular and Accessibility

blindfold

I recently did some preliminary work adding accessibility support to an existing Angular application. At the start of this work I knew very little about website accessibility, and I suspect the evolution of my thinking during the process would be common amongst other developers who have been in the same situation. Specifically:

  1. Initial annoyance at having to do it
  2. Slow progress reworking sections of markup
  3. Growing satisfaction that the app was becoming accessible to a broader audience
  4. The realisation that the codebase itself was actually better off for the process

In this post I’ll talk about the 3 things that I’ve done so far during this journey to an accessible Angular app: accessible icons, keyboard navigation and finally, ARIA support.

Continue reading →

Posted in Javascript, Web | Tagged , , , , | 5 Comments

Working With D3.js

d3js

D3.js is a JavaScript library that is used to generate visualisations, usually based on sets of data. I have been using it on a dashboard project for the past month, and wanted to share some of my thoughts and impressions as a new user.

Continue reading →

Posted in Javascript, Tools, Web | Tagged | Leave a comment