Cargowire Ramblings http://cargowire.net Ramblings From Craig Tue, 18 Jul 2017 23:00:00 GMT http://cargowire.net en Workshop: Hack Yourself First http://cargowire.net/blog/hackyourselffirst http://cargowire.net/blog/hackyourselffirst Craig Tue, 18 Jul 2017 23:00:00 GMT Mess with the best, die like the rest.<p></p> ]]> re:develop 2016 http://cargowire.net/blog/redevelop2016 http://cargowire.net/blog/redevelop2016 Craig Fri, 14 Oct 2016 22:00:00 GMT Conference at the beach!<p>Having not made the trip down to Bournemouth for re:develop 1 or 2 it was great to be in attendance for it's third incarnation.</p><p>A single track, relatively economical conference re:develop is ideal for digital pro's or students to self fund or wrangle a bit of budget out of their line managers. (also... by God were we well fed; high quality breakfast, lunch and dinner all provided as part of the entrance). Anyways on with the talks...</p><p>A great way to start the day. Roo was articulate and knowledgeable as he relayed his lessons learned while working as part of GDS. A transformative organisation within the UK Government that pushed hard for both agile development, user focus and the employment of small scale suppliers in place of gargantuan contracts with blue chip consultancies (you may remember a consolidation and redesign under gov.uk that felt like it employed half the community active web dev's in the country a few years back).</p><p>The big takeaways here were the value in getting to meet and work directly with users ('Starting with User needs'), presenting them with early prototypes as soon as possible ('Show the thing') and using physical wallboards for team communication ('Walls are important').</p><p>The use of 'analog' wall boards was one of the more contentious points. Questions were raised with regard to their effectiveness when working with remote teams. Though Luke (the MC) referenced the 3M Post-it app as a potential solution there did seem to be a certain degree of skepticism in the room regarding their universal benefit for managing projects. Tangible, physical representations of information can be a benefit though the Dootrix contingent felt that it may be best suited to workshops / specific discursive tasks rather than a continual project management tool in this era of home working etc.</p><p>Roo ended with some great advice. 'Act like you have permission', don't wait for leadership from above, make changes, make a difference - no matter how small (there were a couple of fun anecdotes here regarding Milk protectinism in shared fridges and the 'grass roots' creation of the excellent Tampon Club).</p><p>An interesting talk, that had Kev chuckling long with a knowing smile or two.</p><p>Elizabeth did a great job of highlighting the tension points between 'the business' and 'developers' in relation to satisfying a business/customer need quickly vs engineering good quality code. Anyone working within software will be more than acquainted with scenarios whereby a 'prototype' ends up going live, where there is no time made to go back and 'refactor' or where refactoring is seen as 'writing the code twice'. From the business side of course there is the frustration with developers wanting to 'craft' when what the business needs is a demo, or a quick feedback cycle on an idea.</p><p>Coincidently this tied in quite well with some internal discussions Dootrix have been having with regard to how best to communicate the non-functional aims of a project and/or a client/agency relationship. Elizabeth spoke often of the entire team being aware of the 'business context' and this is undoubtedly important in keeping everyone on the same page so as to lessen or adjust processes and approach appropriately.</p><p>Book recommendation: Lean UX</p><p>I'll be honest this is one of the talks that I took less away from but that may be due to the fact that Dootrix have a longstanding admiration for the benefits of code reviews. I've written reasonably extensively on this in the past... and so I'll refer you there instead of going too far into it. However it was clear through the discussions in the room and twitter that some organisations are still not great at peer review.</p><p>The key tips are: Don't make it personal, be thorough, be consistent, be positive.</p><p>Probably one of my favourite talks of the day Melinda spoke eloquently on her experiences with developer evangelism. Her reframing of the role as 'Employee Evangelism' had the subtle but important effect of widening the scope of responsibility - from focusing on engaging with external developers to promoting your employees. Knowing this will have not just the same but increased benefits both to your potential customers/employees but also your current team.</p><p>Some excellent tips for encouraging colleagues to put themselves out there (as writers, speakers, trainers) included introducing lightning talks, lunch hour learning, an internal blog (as a means to building up to public blogging), pair and group written public blogs, but also simply helping colleagues to work through their concerns/fears with writing or speaking publicly. The great thing about all of these approaches are they can be implemented immediately at your own organisation, with little to no cost or disruption.</p><p>Melinda strongly recommended reading 'Mindset: How You Can Fulfil Your Potential' to learn how to break out of a fixed mindset. In a growth mindset we strive to develop our basic abilities rather than assuming they are static and limiting.</p><p>Ruth's whistle stop tour of the MIDI, Audio and many other web api's was choc full of demo's and exciting hardware (who doesn't want one of these).</p><p>To me this was yet another reminder that the web is now a platform that can do virtually anything. With just JS and a modern web browser we can manipulate video, audio, read data from a mic or webcam, draw 2d, draw 3d, integrate with GPS and a variety of other sensors and IO devices. To do this in C++, JAVA, C# or other traditional development platforms would require numerous libraries, dependencies and all kinds of wrangling.</p><p>This makes the web brilliant as a developer playground or learning tool and shows us just how much we can do on mobile without needing to go native.</p><p>A lesson in managing large scale web design via a living design system (style guides, design language). Thinking of it as making your own client or project specific Bootstrap can be a good shorthand.</p><p>Stu also pointed us towards Fractal a useful looking tool for presenting and exploring a design system.</p><p>What I took away from this talk, is that Service Workers are great but that I can't use them yet (due to iOS Safari 'considering' the spec rather than implementing it).</p><p>That may be unfair. However Service workers (a technology that assists in 'installing' a web app, allowing it to work offline and treat the network as an optional enhancement) do look like a great step forward, alongside the sorts of api's discussed by Ruth, in reducing the requirement/need for native app development.</p><p>One of the more technical heavy talks on the agenda Paul did a thorough job of breaking down the issues surrounding moving to a cloud based approach to development and deployment. Many of us are still living in a world where we deploy a single application to a single box (or VM).</p><p>A shift to cloud services may not only force code to be 'horizontal scaling friendly' but also raises questions around access/identity management, encryption (particularly if the original monolith was on a private server and is now going on to the public cloud such as amazon or azure), logging, disk io...</p><p>These kinds of problems highlight how developers now are expected to know such a wide range of technologies and techniques from the languages and frameworks they use to IaaS, PaaS, REST, deployment automation.</p><p>As is often the case on conference agendas the final talk aims to liven and lighten the mood leaving us on a high. Matt struck a good balance between humour and insight as he likened and highlighted the similarities between parenthood and being a developer.</p><p>This included reference to asking questions, not accepting that something can't be done, not getting attached to ideas, accepting failure.</p><p>...Oh and he also blew our minds by pointing out that 'listen' shares the same letters as 'silent' I know... that definitely means something.</p> Having not made the trip down to Bournemouth for re:develop 1 or 2 it was great to be in attendance for it's third incarnation.

A single track, relatively economical conference re:develop is ideal for digital pro's or students to self fund or wrangle a bit of budget out of their line managers. (also... by God were we well fed; high quality breakfast, lunch and dinner all provided as part of the entrance). Anyways on with the talks...

Agile in the public Sector - Roo Reynolds

A great way to start the day. Roo was articulate and knowledgeable as he relayed his lessons learned while working as part of GDS. A transformative organisation within the UK Government that pushed hard for both agile development, user focus and the employment of small scale suppliers in place of gargantuan contracts with blue chip consultancies (you may remember a consolidation and redesign under gov.uk that felt like it employed half the community active web dev's in the country a few years back).

The big takeaways here were the value in getting to meet and work directly with users ('Starting with User needs'), presenting them with early prototypes as soon as possible ('Show the thing') and using physical wallboards for team communication ('Walls are important').

The use of 'analog' wall boards was one of the more contentious points. Questions were raised with regard to their effectiveness when working with remote teams. Though Luke (the MC) referenced the 3M Post-it app as a potential solution there did seem to be a certain degree of skepticism in the room regarding their universal benefit for managing projects. Tangible, physical representations of information can be a benefit though the Dootrix contingent felt that it may be best suited to workshops / specific discursive tasks rather than a continual project management tool in this era of home working etc.

Roo ended with some great advice. 'Act like you have permission', don't wait for leadership from above, make changes, make a difference - no matter how small (there were a couple of fun anecdotes here regarding Milk protectinism in shared fridges and the 'grass roots' creation of the excellent Tampon Club).

Software Craftsmanship vs Lean Product - Elizabeth Ayer

An interesting talk, that had Kev chuckling long with a knowing smile or two.

Elizabeth did a great job of highlighting the tension points between 'the business' and 'developers' in relation to satisfying a business/customer need quickly vs engineering good quality code. Anyone working within software will be more than acquainted with scenarios whereby a 'prototype' ends up going live, where there is no time made to go back and 'refactor' or where refactoring is seen as 'writing the code twice'. From the business side of course there is the frustration with developers wanting to 'craft' when what the business needs is a demo, or a quick feedback cycle on an idea.

Coincidently this tied in quite well with some internal discussions Dootrix have been having with regard to how best to communicate the non-functional aims of a project and/or a client/agency relationship. Elizabeth spoke often of the entire team being aware of the 'business context' and this is undoubtedly important in keeping everyone on the same page so as to lessen or adjust processes and approach appropriately.

Book recommendation: Lean UX

There's More to Code Reviews than You Might Think - Clair Shaw

I'll be honest this is one of the talks that I took less away from but that may be due to the fact that Dootrix have a longstanding admiration for the benefits of code reviews. I've written reasonably extensively on this in the past... and so I'll refer you there instead of going too far into it. However it was clear through the discussions in the room and twitter that some organisations are still not great at peer review.

The key tips are: Don't make it personal, be thorough, be consistent, be positive.

Employee Evangelism: Make Your Team Badass - Melinda Seckington

Probably one of my favourite talks of the day Melinda spoke eloquently on her experiences with developer evangelism. Her reframing of the role as 'Employee Evangelism' had the subtle but important effect of widening the scope of responsibility - from focusing on engaging with external developers to promoting your employees. Knowing this will have not just the same but increased benefits both to your potential customers/employees but also your current team.

Some excellent tips for encouraging colleagues to put themselves out there (as writers, speakers, trainers) included introducing lightning talks, lunch hour learning, an internal blog (as a means to building up to public blogging), pair and group written public blogs, but also simply helping colleagues to work through their concerns/fears with writing or speaking publicly. The great thing about all of these approaches are they can be implemented immediately at your own organisation, with little to no cost or disruption.

Melinda strongly recommended reading 'Mindset: How You Can Fulfil Your Potential' to learn how to break out of a fixed mindset. In a growth mindset we strive to develop our basic abilities rather than assuming they are static and limiting.

Let's talk about MIDI (and other fun Web APIs) - Ruth John

Ruth's whistle stop tour of the MIDI, Audio and many other web api's was choc full of demo's and exciting hardware (who doesn't want one of these).

To me this was yet another reminder that the web is now a platform that can do virtually anything. With just JS and a modern web browser we can manipulate video, audio, read data from a mic or webcam, draw 2d, draw 3d, integrate with GPS and a variety of other sensors and IO devices. To do this in C++, JAVA, C# or other traditional development platforms would require numerous libraries, dependencies and all kinds of wrangling.

This makes the web brilliant as a developer playground or learning tool and shows us just how much we can do on mobile without needing to go native.

L-I-V-I-N - Stuart Robson

A lesson in managing large scale web design via a living design system (style guides, design language). Thinking of it as making your own client or project specific Bootstrap can be a good shorthand.

Stu also pointed us towards Fractal a useful looking tool for presenting and exploring a design system.

An introduction to Service Workers - Phil Nash

What I took away from this talk, is that Service Workers are great but that I can't use them yet (due to iOS Safari 'considering' the spec rather than implementing it).

That may be unfair. However Service workers (a technology that assists in 'installing' a web app, allowing it to work offline and treat the network as an optional enhancement) do look like a great step forward, alongside the sorts of api's discussed by Ruth, in reducing the requirement/need for native app development.

The Cloud – Hype to Reality - Paul Kuzan

One of the more technical heavy talks on the agenda Paul did a thorough job of breaking down the issues surrounding moving to a cloud based approach to development and deployment. Many of us are still living in a world where we deploy a single application to a single box (or VM).

A shift to cloud services may not only force code to be 'horizontal scaling friendly' but also raises questions around access/identity management, encryption (particularly if the original monolith was on a private server and is now going on to the public cloud such as amazon or azure), logging, disk io...

These kinds of problems highlight how developers now are expected to know such a wide range of technologies and techniques from the languages and frameworks they use to IaaS, PaaS, REST, deployment automation.

Little Scraps of Wisdom - Matt Northam

As is often the case on conference agendas the final talk aims to liven and lighten the mood leaving us on a high. Matt struck a good balance between humour and insight as he likened and highlighted the similarities between parenthood and being a developer.

This included reference to asking questions, not accepting that something can't be done, not getting attached to ideas, accepting failure.

...Oh and he also blew our minds by pointing out that 'listen' shares the same letters as 'silent' I know... that definitely means something.

]]>
DevSouthCoast GameJam 2013 http://cargowire.net/blog/devsouthcoastgamejam13 http://cargowire.net/blog/devsouthcoastgamejam13 Craig Sun, 15 Sep 2013 19:00:00 GMT Making a game in a weekend<p>Making games over a weekend... competitively... and we chose a dead technology... why the hell not!</p><p>Although I'd heard of Game Jam's before I'd never had the opportunity to go along until John kindly organised one just up the road. - Essentially a hack day or days specifically concentrated on making a game in a small team, all rounded off with a demo session at the end and prizes for the winners.</p><p>The weekend started with about 15 of us huddled around two tables at the Cowherds nervously waiting to be split into teams before being assigned two random words that would be our theme for the weekend. Having shown up with a ready made team (Myself, Adam, Dave and Thomas) we only gained one member in the draft (the delightful Steven) leaving just the words to come. And then they did...</p><p>...mouse trap... (come on technically that's two words surely!)</p><p>...and...</p><p>...bubble...</p><p>To be honest these were actually pretty good and soon we were well away with brainstorming ideas - before starting code on the saturday morning.</p><p>The game we made ended up being simple in gameplay but ideally quick to pick up, fun to play and open to extension if we decided to carry it on. The final result can be seen below:</p><p>Controls were xbox gamerpad only and we supported 1 to 4 simultaneous players. The artwork from Thomas really set us up well with all graphics being custom made over the weekend using Inkscape and ase sprite.</p><p>The relatively simple concept allowed us to add some nice subtleties (for the time available!). In the above screenshot you can see articulated mice tails. There was also an array of custom sound effects including a bubble effect provided by Stevens daughter Lucy and a number of sprite animations for mice, bubbles, pins etc.</p><p>To play the game players use the left thumbstick to control a bubble wand that places bubbles when the left shoulder button is pressed down. Until it is released the bubble grows unless you let it get out of control and pop! when you release the bubble mice that have been captured are removed and gain you points (displayed inside your cursor). At the same time you can use the right thumbstick and right shoulder button to control a pin that can pop your opponents bubbles - especially useful when you notice them trying to build up a large combo catching bubble.</p><p>With four players this can get pretty fun and hectic!</p><p>Again, the strict set of capabilities we aimed for allowed for polish with full game menus and some end game stats on aspects of the players play - That's meant to be me second down on the right btw...</p><p>I quickly recorded myself playing (1 player only in this I'm afraid). This was mainly so you can hear the soundtrack:</p><p>Overall it was a great fun weekend and I'm really pleased with the result. I'd definitely do something similar again - hopefully it'll become an annual thing.</p><p>...Oh... and we were voted winners... SWEET</p> Making games over a weekend... competitively... and we chose a dead technology... why the hell not!

Although I'd heard of Game Jam's before I'd never had the opportunity to go along until John kindly organised one just up the road. - Essentially a hack day or days specifically concentrated on making a game in a small team, all rounded off with a demo session at the end and prizes for the winners.

The Event

The weekend started with about 15 of us huddled around two tables at the Cowherds nervously waiting to be split into teams before being assigned two random words that would be our theme for the weekend. Having shown up with a ready made team (Myself, Adam, Dave and Thomas) we only gained one member in the draft (the delightful Steven) leaving just the words to come. And then they did...

...mouse trap... (come on technically that's two words surely!)

...and...

...bubble...

To be honest these were actually pretty good and soon we were well away with brainstorming ideas - before starting code on the saturday morning.

The Game!

The game we made ended up being simple in gameplay but ideally quick to pick up, fun to play and open to extension if we decided to carry it on. The final result can be seen below:

Menu

Controls were xbox gamerpad only and we supported 1 to 4 simultaneous players. The artwork from Thomas really set us up well with all graphics being custom made over the weekend using Inkscape and ase sprite.

Level

The relatively simple concept allowed us to add some nice subtleties (for the time available!). In the above screenshot you can see articulated mice tails. There was also an array of custom sound effects including a bubble effect provided by Stevens daughter Lucy and a number of sprite animations for mice, bubbles, pins etc.

To play the game players use the left thumbstick to control a bubble wand that places bubbles when the left shoulder button is pressed down. Until it is released the bubble grows unless you let it get out of control and pop! when you release the bubble mice that have been captured are removed and gain you points (displayed inside your cursor). At the same time you can use the right thumbstick and right shoulder button to control a pin that can pop your opponents bubbles - especially useful when you notice them trying to build up a large combo catching bubble.

With four players this can get pretty fun and hectic!

End

Again, the strict set of capabilities we aimed for allowed for polish with full game menus and some end game stats on aspects of the players play - That's meant to be me second down on the right btw...

Gameplay

I quickly recorded myself playing (1 player only in this I'm afraid). This was mainly so you can hear the soundtrack: