The Road to Functional Programming

Two years ago, I attended DunDDD (Dundee – Developer Developer Developer), the conference named after a chant Steve Ballmer started during one of his many eccentric moments. At the conference there were 4 tracks (Big Data, Web Development and I’m unsure what the other two were looking at the agenda) – but you were free to hop between them as you pleased. At the time I had just started working in an international team, was realising the power of source control (or catastrophic risk of a lack of source control…) and was curious about big data (like most people in 2012).

Agenda DunDDD 2012

Agenda DunDDD 2012

One thing to note about DunDDD is that it is a bit of a Microsoft centric conference – despite the generic developers title. Still there are plenty of non Microsoft based talks and even the ones that aren’t can be pretty good (if a little sales like at times). By late afternoon I was a little tired (part hangover, part early morning train to Dundee) and didn’t feel like I could sit through another sales like pitch, so I took a gamble and switched to Gary Short‘s talk on “Not Everything is an Object”. I had overheard him talk about the bad UI decisions on hiding the power off options in Windows 8 and he sounded like he would be fun to listed to. Some other delegates at the conference had heard Gary talk before and had nothing to good things to say about his talks – so why not.

Not Everything is an Object

Not Everything is an Object

The talk focused around how as an industry we had become obsessed with OO style programming and languages and crucially wanted to prove to us that this was a bad thing – that the world couldn’t always be described well by using objects. Instead functional programming could do things a lot better (in some/most places). His preferential functional language was Clojure. This wasn’t my first encounter with functional languages – for a very brief time at university we made use of Haskell (badly) –  but it was my first good/interesting encounter. Clojure has a couple of advantages over some of it’s alternatives – mainly running on the JVM, meaning you didn’t have to give up the warm embrace of familiar old dog Java. This post isn’t about Clojure – but I will get around to that post very shortly. He had an example about a doctors surgery (or hospital) which he described in OO with the help of the audience – causing some debate at the time. When it came time for the Doctor object to become sick and mutate into a patient he demonstrated the pitfalls of OO – although I think it might be possible to build a better model as someone else suggested. While I can’t quite remember what he did with Clojure to solve the problem – by the end of the talk it did sound like a viable alternative if only a little better. Gary’s talk can be found on slideshare here.

Adrian @ TM

Adrian @ TM

That would be the last time I encountered Clojure or functional programming for some time – or at least I thought it was at the time of my first draft post. It turns out the talk I was about to mention by Adrian Mowat at Techmeetup Glasgow, was a lot older than I thought. Adrian gave what would become my first in depth (from a hands of and watch approach) look at Clojure. Again I was curious and a little more sold that it could be a good route to go down for coding.

 

Seven Languages in 7 Weeks

Seven Languages in Seven Weeks

Earlier this year would be the first time I would get my hands dirty learning a bit of the language. The monthly(ish) Code Craftmenship meetup in Glasgow – Code Craft had decided to do a group reading and work through the text book “Seven Languages in Seven Weeks” which I mentioned in this blog post. While I didn’t get as far into the book as I would liked to have (real life and work get in the way of keeping a good pace), I did finally at least write a few lines of Clojure. The focus of the book however was on the strengths and weaknesses of the languages rather than actually learning them however.

Fast forward from then through summer and we end up here. The seed may have taken almost 2 years to grow, but I have finally made the decision to learn more Clojure. While I haven’t gotten too far yet, I hope to make regular posts on my journey to a more functional world.

 

Techmeetup Glasgow: March 2014

Techmeetup Glasgow returns this month (tomorrow!) with another 2 talks. Back to the usual Wednesday slot and at Glasgow University as always.
Chris McDermott on “Lean Coffee”
How often have you gone to a meeting, sat there for an hour and left without making a contribution. You had something to say but you were either never asked, there wasn’t a slot in the agenda to discuss what you wanted to discuss or the whole meeting was dominated by one person. By the time you get to AOB your energy has been sapped and you’re desperate to leave. Lean Coffee is a simple, structured agenda less format that applies Lean and Agile principles to help create a democratic meeting that gives everyone a voice and the opportunity to contribute.
Andy Barry on “Componentising Webapps with BladeRunnerJS
It’s generally accepted that dividing things up and encouraging encapsulation is a good idea. I’ll give a quick demo of how BladeRunnerJS can provide tooling and conventions that can help us componentise our webapps in an easy and scalable way.
As usual most of us will be off to Brel afterwards to keep the discussions going over a pint.

Techmeetup Glasgow: January 2014

With the start to the new year, Techmeetup Glasgow is back after its 2 month hiatus. Due to a double booking this month it will take place on Thursday rather than the usual Wednesday but will still take place in Glasgow University.

The talks this month:

Nima Montazeri from ThoughtWorks on Transport Network Route Finding Using A Time Dependant Graph
Nima will share his experiences of building a route finding application for Manchester’s Metrolink system (www.tramchester.co.uk) using open data (GTFS) and graph database technology (Neo4j). He will touch on the data he had to work with, the modelling process (successes and failures), and the importance of time in the model.Thanks to our sponsors Neo, SkyScanner and Glasgow University for making the event possible.

Andrew Fowler from Skyscanner on Test Automation: Evaluating a convergent approach for web and native apps
Within Skyscanner we have been investigating how we could move from a dual automation approach (two different technology stacks, two different engineering technology skill sets, one which is focussed on native apps, one which is focussed on web) towards a convergent tooling stack and approach.
This presentation would include a demonstration of a prototype framework running across real devices and genymotion emulation for mobile and a direct comparison of code constructs across Mobile and Web implementations.

 

As usual, I will be around for further discussion and drinks afterwards.

Seven Languages in Seven Weeks

Its the start of the year; so time to set some learning challenges! A few of the guys from Glasgow Techmeetup started a Code Craft meetup based on the Manifesto for Software Craftmenship and a love for craft beer (just don’t ask about Joe’s chant…). They picked out a book in The Pragmatic Programmers series – Seven Languages in Seven Weeks: A pragmatic guide to learning programming languages.

Seven Languages in Seven Weeks

I’ve looked at some of the languages before but not with a lot of progress. Looking forward to getting a good start to learning this year – not to mention drinking some good beer with others on the same journey.

Kickstarter Project Delivery:Part 1

I’ve been a keen backer of projects on Kickstarter for over a year now, and have backed over 100 projects, with most of them reaching their goal (sometimes only just). The attraction of new gadgets/books/games/AR/posters that hit a specific niche seems to be easily filled by someone’s eye for opportunity or desire to bring something they love to life.  However, with over 100 projects back, it is not surprising that many projects miss their originally target dates for completion. Anyone who has ever worked on any kind of project knows this – it happens, people are bad at estimating how long large projects take.

That isn’t to say poor estimates are to blame, some of the projects backed changed designs (part no longer in production/more money better parts/fit a new requirement), some were hit by sudden death of key members of their team, huge impact of demand for the project, manufacturing issues, customs being terrible, shipping companies sending things to the wrong destination – the list goes on. Someone at work posted some interesting stats about how many projects had arrived to schedule and I thought it be interesting to take a look at similar stats for my backed projects.

Late Kickstarter Projects By Month(s) late

Late Kickstarter Projects By Month(s) late

Above is one of the charts I came up with. I thought starting with projects that have not been delivered and are currently overdue. I’ve taken the date for the pledge level to be the date of completion not the beginning (things might look a bit better on months 1-4 in these cases). Just over half of the late projects are over 4 months late with 3 being over a year late! This has me a little worried given the number of projects I have backed and I am starting to understand why some publishers/organisations wouldn’t have given the project the light of day. That said – of the late projects, the vast majority I am happy enough with why they are late – apart from 1. PhoneSoap – they changed their design to fit the iPhone 5, by the time the change was made a part wasn’t being made anymore, the new part they choose to replace it wasn’t manufactured in anywhere near the volume they needed, so it got downgraded to a much lesser component, then there were manufacturing issues, electrical certification issues and finally even the US Government Shutdown/Democracy failure.

Still – many have delivered, and some beyond my original expectations. Part 2 will continue with more stats and charts.

Techmeetup Glasgow: September 2013

This Wednesday sees the continuation of Techmeetup in Glasgow. Some cracking talks this month :

Luke Dicken: Introducing The International Game Developers Association

With a history spanning over twenty years, and thousands of members around the world, the International Game Developers Association has been a uniting force, bringing together people from all disciplines interested in, or actively pursuing game development. In this talk, Luke Dicken, the first director of the organisation to ever be elected from outside of North America, will explain the mission of the IGDA, why it matters and why it is of relevance to the broader tech sector as well.

Keith Harrison: Why Humans use F#

The talk will show how users with a math background can use F# to build sophisticated solutions. I will cover closures, higher order functions and explain how F# takes advantage of the .NET Framework. 

Thanks to our sponsors Neo, SkyScanner and Glasgow University for making the event possible.

Luke has given some great talks before and always delivers a lively presentation. He can be found on Twitter as @luked or at his site http://lukedicken.com.

Not too familiar with F#, so will be interesting to hear what it has to offer.

As per usual things kick off from half 6 at

5th Floor
School of Computing
18 Lilybank Gardens
G12 8QQ
by Hillhead Underground
Glasgow Westend

Afterwards the usual post event drinks at the newly refurbished Brel.

TechMeetup Glasgow: Lightning Talks

TechMeetup Glasgow returns this Wednesday. As always I will be in attendance. This month features another round of lightning talks, featuring:

Gary Fleming, Graeme West, Craig Nicol, Sam England, Steven Grant, Rohan Gunatillake

For those not familiar with lightning talks, each presenter gets 20 slides and has 20 seconds to present each slide before they advance automatically.

TechMeetup is made possible by the amazing financial support from the University of Glasgow, Neo, and SkyScanner.

See you on the 28th of August, 2013 at 6.30pm.
5th Floor
School of Computing
18 Lilybank Gardens
G12 8QQ
by Hillhead Underground
Glasgow Westend

For queries email Ijonas Kisselbach (ijonas.kisselbach@gmail.com)

About TechMeetup Glasgow:
TechMeetup Glasgow is the “west coast chapter” of TechMeetup, Scotland’s finest  monthly tech gathering. We talk about technology, design, code, mobile apps, web apps, social networking and the ecosystem they form.

TechMeetup has been run in Glasgow since April 2009 and draws a good crowd of nice folk and great speakers – held together by the magic of pizza and beer.

TechMeetup is held in Aberdeen, Edinburgh, and Glasgow.

As always we will be in Brel afterwards for a few beers. For more information visit http://techmeetup.co.uk/ or follow @techmeetup on Twitter.

TechMeetup Glasgow: Gaming & Startups

TechMeetup Glasgow returns this Wednesday. As always I will be in attendance. Details can be found below:

TechMeetup Glasgow is back on the 5th Floor of the School of Computing this Wednesday – 24th of July 2013 – at 6.30pm

Our two talks this month form the focus of a great gaming/startup-oriented evening.

Alan Shaw on WallaBee: 83 Countries, 50 US States, 2 Years.
Alan is on the creative side of game mechanics, artwork at WallaBee. This talk is about how WallaBee launched, built up users and how they retain them. Alan will also focus on third party developers, their products and how they can make money off WallaBee.

Roger Dubar on Zapcoder
Zapcoder lets you create & share games & apps on smartphones, tablets and desktops. Roger will tell us about his journey creating Zapcoder and his journey finding funding to support his project.

TechMeetup is made possible by the amazing financial support from the University of Glasgow, Neo, and SkyScanner.

See you on the 24th of July, 2013 at 6.30pm.
5th Floor
School of Computing
18 Lilybank Gardens
G12 8QQ
by Hillhead Underground
Glasgow Westend

For queries email Ijonas Kisselbach (ijonas.kisselbach@gmail.com)

About TechMeetup Glasgow:
TechMeetup Glasgow is the “west coast chapter” of TechMeetup, Scotland’s finest  monthly tech gathering. We talk about technology, design, code, mobile apps, web apps, social networking and the ecosystem they form.

TechMeetup has been run in Glasgow since April 2009 and draws a good crowd of nice folk and great speakers – held together by the magic of pizza and beer.

TechMeetup is held in Aberdeen, Edinburgh, and Glasgow.

 

A few of us will be heading to Brel on Ashton lane afterwards to continue the discussions over a nice cold beer.

Approved: STEM Ambassador

My criminal background check (Disclosure Scotland) confirmed that I’ve never been charged or convicted of a crime and I am now a fully approved STEM Ambassador. Next steps are to update my Science Connects profile, contact a few local schools in Stirling and Glasgow about setting up Code Clubs.

At a push I should manage to run 2 clubs at once but I will probably start with 1 and gauge things from there. My hope is to inspire the next generation of software engineers and promote the vast number of career opportunities within IT.