Finished my first GameMaker Game

Getting started with GameMaker, making Asteroids! I mean OK, it’s just a clone of a classic, but isn’t that how fledgling artists practice? Initially created following a tutorial, I then went through and added a lot of extra features, including music, splash screens, a pause function and much cleaner code.

Embedding by i-frame is pretty ugly, so please follow the link below to try the game.

Asteroids Game

A/D or Left/Right to turn
W or Up to move
Space or Right Control to shoot
Escape to pause

You can download the gmz file, and import into your copy of Game Maker if you’d like, using this link:

R, Security

HIBPwned updated on CRAN is a fantastic service that helps people find out if they’ve been involved in a data breach. HIBPwned is an R wrapper for that service.

Recently, due to abuse of the system, Troy Hunt had to add a limit of one request per 1.5s.

The new version published on CRAN last night adds a delay into each call so that we can continue to use it in R.

Check out the package on CRAN for vignettes and more information on the package.


Being an Organised Sponsor (SCE p3)

Being an Organised Sponsor is the third instalment of the Sponsoring Community Events series aimed at helping companies get to grips with sponsoring community events, and getting the most out of them. This post covers how to organise yourself and the common activities needed to get the most out of your sponsorship of a community event.

Project management

Rarely is sponsorship a simple transaction, there’s often deliverables from both parties at different times over a period of anything up to a year.

Having been on the other side of the fence A LOT, I think it’s important you have a dedicated person who manages things, with a deputy who can step up in the event of illness, job moves etc.

An important part of the project management is understanding when you need to deliver your end of things, and when the event will deliver theirs. Compile a timeline of activities to help stay on track and identify when you need you need to start working.

I recommend regular calls or review emails to make sure that everything is on track, particularly as this allows for things to be tweaked and improved. Exactly how frequent these calls occur depends on the complexity and volume of sponsorship benefits.

Digital presence

Once you’ve agreed to sponsor an event this is your first priority — being known and visible as a sponsor of the event.

Being promoted by the event

You need to make sure you provide your liaison with:

  • Copies of your logo in the formats they require them. This is likely to be PNG and in a variety of resolutions
  • A destination URL for visitors to the event website to navigate to. Ideally, this should be a page tailored to the typical audience of the event and should include a tracking component to make assessment easier on your end. Making the page relevant improves your ability to convert traffic from the event.
  • You may need to provide content about the company in a variety of lengths for inclusion on the website and physical collateral. Make this tailored to give it the highest relevance and chance to make an impact.

Social media

Social media has increasing importance for companies and for events, so it’s important to plan this area. The sorts of things that will need to be discussed and agreed between yourself and your liaison:

  • The key social media accounts and important hashtags for both parties
  • Your social media about sponsoring the event
  • The event’s social media about you sponsoring the event
  • The re-tweeting/re-syndication of your content — guidelines and preferences from both parties
  • Reporting performance of social media

There are a number of useful tools that you can use to help automate social media, like Tweetdeck (free) and Hootsuite (low cost). If you’re not already doing social media scheduling, now is the time to invest in that activity.

Physical collateral

Complementing the digital presence for all online interactions with potential and actual event attendees is branding present at the events.

Popup displays

If you are present on event specific displays then you will need to provide a vector copy of your logo to ensure it prints effectively. A very high-resolution PNG will do in a pinch.

You may also be entitled to have a number of banners or stands provided by yourself at the events. Make sure you receive any guidelines and the delivery address details in plenty of time to get these produced and sent to the relevant party in time for the event. Missing the deadline could see an important piece of branding not be present at the event.

The lead time on popup banners is fairly low (a few days to a week) but you need to allow for screwed up deliveries, defects, etc.

Booth materials

We’ll go into more depth on building an effective presence in the next post, but a booth typically requires popups or more extravagant stands, table cloths, and signage at minimum. Getting all this together requires some planning up front to design the look and feel that matches budget and the company goals. Exhibition stands also typically take longer to produce than popup banners so you don’t want to leave these til the last minute. You should also think about how you get the booth materials to the venue – if the way it’s getting to the venue is a stereotypical sales guy with a BMW that barely fits a suitcase then you need to rethink that giant booth!

Stuff We All Get (SWAG)

The swag bag is a bag of goodies that attendees get on the day and is usually filled with promotional items provided by sponsors. Swag is a great way to get your brand out there and seen on a regular basis.

If this is a one-off or trial sponsorship then we recommend sticking to items like good quality pens, pads of paper, and decent USBs. If you’re considering a lot of sponsorship then doing something iconic can really work in your favour, for instance, Idera do rubber ducks and have various limited edition ones which generates a collectors attitude amongst attendees.

Idera ducks
Idera ducks

These items can have significant lead times so making sure you have secured or ordered with plenty of time to spare. I recommend ordering an extra 5-10% to allow for problems like quality issues or delivery damages — any excess the event organiser has left over typically gets recycled into other community events.


Data sheets, company leaflets etc. also go in the swag bags, and it’s really tough getting ones that don’t go from bag to bin. To make sure these have any impact, you want something that is worth hanging onto or delivers a link that they can immediately access on their phone.

Like with the swag, order extra to allow for issues. These have a turnaround time similar to popup banners.


A great giveaway does wonders for reputations and data capture so getting this right is important. Firstly, make it relevant to the attendees of the event you’re sponsoring, secondly, keep within any rules the event organisers have, and thirdly, try to make it special. I often recommend that if you provide products or services then you should consider giving them away as prizes — a happy prize winner who became a super happy customer is an excellent success story that can provide powerful marketing content as it integrates your community engagement with a positive case study.

Data capture

Whether through the giving of prizes, scanning at booths, or through a general benefit, you can often end up in receipt of attendee’s personal data. You need to make sure the data capture method and stated permissions is compliant with any company policies. Additionally, you need to be prepared for the receipt of the data and processing it once you receive it.

Most event organisers will place limitations on how the data can be utilised or stored so if you sign an agreement, you should make sure these details are noted and you act in accordance with them.

You should plan time to incorporate this data into your company’s CRM system or equivalent. You should also do something with the data instead of just acquiring it. Have something like an email planned for after the event.

What next?

The next post in the series will take you how to build an effective onsite presence.


Assessing Sponsorship Opportunities (SCE p2)

Assessing Sponsorship Opportunities is the second instalment of the Sponsoring Community Events series aimed at helping companies get to grips with sponsoring community events, and getting the most out of them. This post covers some of the things that you should be thinking about when you are considering sponsoring and event.

What’s the point?

Before entering into a sponsorship agreement you need to have a firm idea of what you’re hoping to achieve. Understanding your driving reason for marketing via sponsorship helps you determine whether a sponsorship opportunity is right for you.

The three most common reasons are:

  • Reach Getting in front of people with the aim of converting them to customers
  • Brand recognition Building strong brand recall
  • Keeping up Competitors are sponsoring events

I do not recommend that the third reason should be your primary reason. “Me too” propositions are not winning propositions. Take the time to think about what you can actually get out of sponsoring events. Your competitor may be saturating the community events but is probably leaving other channels open in order to do so.

Is the audience your audience?

An event with little or no overlap between the audience you’re interested in talking to and who actually attends is an event has little benefit for you. Make sure you understand the mix of attendees before entering into an agreement. Factor it into your cost assessments and the marketing strategies you employ.

Is the cost appropriate?

The general rule of thumb is more money –> more engagement –> more money

So the more you spend, the more face time you get, the more you earn. Like any marketing activity, it’s never a guarantee but in this area, you have to spend money to make money. although you can be savvy about it!

You probably have a good idea about how much it costs you to acquire a new customer and what your average conversion rate is across your marketing channels. Use these figures, in combination with your core reason for sponsorship, to ascertain your best, likely, and worst case outcomes for ROI and assess the costs on that basis.

  • If your goal is direct conversion to customers, then make sure the lead cost is similar to what you achieve elsewhere and focus on higher tiers of sponsorship
  • If brand awareness is the primary goal then the relationship is less linear as the quality of your materials can gain you substantial recognition, with less spend

You shouldn’t just account for the direct cost of sponsorship in your calculations either. There can be a lot of costs involved in getting the most out of your sponsorship, like investing in a booth and staffing it for the duration of the event.

Can you negotiate on the cost?

Yes, generally you can. Here are some ways you can usually get movement on sponsorship costs:

  • If you don’t like some of the benefits or can’t utilise them, then you can negotiate package contents
  • Offer something better than money – take on or provide something that costs you a lot less to do than it takes the organisers
  • Trim benefits
  • Go for the long term, sign up for a number of years
  • Come in last minute (a risky strategy!)

How much business can you handle?

Depending on your capacity for new business it may not actually be in your best interests to go for top tier packages all the time. When people want to give you their money and you can’t take it fast enough, they usually get annoyed with you! If you’re a small consultancy business or your onboarding processes still need some work, then going for smaller packages for the first few events can stop you burning bridges.

Can you utilise all the benefits?

Sponsorship is not a simple transaction – there’s often requirements for design work, content creation, physical collateral, on-site staff, and qualified speakers at the different levels. If there are benefits you can’t utilise because you don’t have the resources, then try to either get them substituted for benefits you can utilise, or select a cheaper level.

Is the timing right for you?

Sponsorship might be something you are considering doing all year round to build brand awareness or it could be tied to a specific time-sensitive message. If it’s a time-sensitive message then make sure the event coincides. Line up sponsorship for events that coincide as early as possible. Last minute sign-up will give you less prime spots, less time for your brand to be seen, and less time for you to pull together the resources needed to maximise your benefits.

How will it be measured?

Tracking the impact of sponsorship is critical to the beginning of the endeavour as well as the end. Your measurements should align with your goal. For instance, if you’re aiming for increased reach metrics like new visitors from the event’s website, new leads added to the database, or new customers are important. Getting the framework in place for this data capture will likely require work on yours and event’s part so you need to think these through early. Once you have this information it allows you to make assessments throughout and after the sponsorship process.

Will the organiser deliver?

Community events are run by people who have day jobs, and those day jobs aren’t marketing and events management. Most community events run smoothly with well-organised and experienced people at the helm but make sure you understand the answers to questions about their experience, backup plans, and liability. This is, of course, the standard stuff you do anyway but it’s worth getting a feel for things before you enter into a legally binding agreement.

What is the event organiser looking for?

Each event has its own brand, its own way of communicating to attendees, and it’s own preferences so you’ll get the most value out of sponsoring an event2 where your marketing is compatible with that of the event. If the event is known for “big and slick” and that’s how you like to do things then you’ll have a much easier relationship and you’ll fit in better to the event, whereas if the event runs differently and your large exhibition stand won’t be allowed to be put up you might find yourself getting frustrated.

What next?

The next post in the series will take you through managing your project for the event from start to finish. And it is a project


Sponsorship Basics (SCE p1)

Sponsorship Basics is the first installment of the Sponsoring Community Events series aimed at helping companies get to grips with sponsoring community events, and getting the most out of them.

What is a community event?

A community event is one organised by members of the community, as opposed to one run by one or more companies with a financial interest in the community. These events are fundamentally different because they are not being run for profit, instead, they’re run to assist other members of the community to increase their skills. Community events are not-for-profit with volunteers donating their own time to run them. They commonly use sponsorship as a means to keep costs for attendees as low as possible.

What is sponsorship?

At a high level, sponsorship is forking over some cash to an event so that the event can happen. Sponsoring an event lowers the cost for attendees, increasing access to the event by a broader spectrum of attendees. Sponsorship of an event typically yields opportunities for sponsors to interact with the event’s attendees.

Why sponsor an event?

Accessible community events simply can’t happen without sponsors, so by sponsoring an event you are directly contributing to the community and helping it grow. From a business perspective, this means the market for whatever you do grows and the community identifies you as a business that supports them. It’s tough to put a value on goodwill and eventual market growth, though. This is why most community events offer sponsors the opportunity to engage with attendees. Engagement opportunities allow you to directly promote your stuff and gather leads. These opportunities are usually where you see value sooner.

Where are events with sponsorship opportunities?

There are tons of community events out there, and it’ll be specific to your technology niche. I’m going to be blunt here and say that if you don’t yet know, you aren’t ready to sponsor any! You need to follow the community more, get on twitter, attend community events, talk to people. You won’t have any impact if you find any old event, shove some cash at them and expect gazillions of customers back whilst committing faux pas. Know your market before you market to it.

What is the process for becoming a sponsor?

There will usually be instructions on an events website on how to become a sponsor. Most often this involves arranging things with the event’s sponsor liaison. In smaller events like user groups, this is usually the sole organiser. For bigger community events like conferences, there’s often a dedicated point of contact. This liaison will work with you to identify the level of sponsorship that fits for both you and the event and takes you through their process. Depending on the size of the event this could involve contracts and invoices. Having a liaison is useful as they can help you get the most out of your sponsorship.

Who should be responsible for sponsorship?

You get the DBA answer of “it depends” here! Small companies could see the CEO arranging sponsorship, in larger companies it could be marketing, events teams, or even sales teams. It typically doesn’t matter so long as two simple principles are followed:

  • Make sure they understand the company and the community
  • Don’t pass it around, dedication to the task prevents mistakes

How much does sponsorship cost?

There’s no hard and fast answer to that as each event has different costs. There will usually be a number of sponsorship levels that increase in cost as they increase in engagement opportunities with attendees.

What next?

The next post in the series will take you through some of the questions you should be thinking about when it comes to assessing a sponsorship opportunity.


Sponsoring community events (SCE)

Sponsoring community events – is it right for you? This series of posts will take you through the things you need to know to help you decide.

Over the coming weeks, this new series will go through the in’s and out’s of sponsoring community events. Community events are fantastic from an attendee perspective, but when you’re handing over cash you need to know what you’re letting yourself in for and how you get return on investment (ROI). This series will address how you find opportunities, what’s involved, how you can assess an opportunity, what ROI metrics you can track, and so on.

The motivation for these posts is my work on sponsorship for SQL Relay. It’s something I really enjoy as it gives me insight into so many businesses, and it gives me a lot of empathy for marketing departments, sales teams, and those founders still doing everything! I’ve seen phenomenal returns and dismal failures. I wanted to write something that helps both technical and non-technical people alike get a better grasp on community events from a sponsorship perspective.

The series of posts will cover:

Community, DataOps, Microsoft Data Platform, Misc Technology, R

Giving back with code

From code in answers on Stack Overflow to R packages or full programs, there’s a lot of code being written and given away. This post examines some of the reasons why the people writing all that code do it, why you should consider giving back with code, and how you can get started. Finally, I cap it all off with perspectives from some of my favourite coders!

Because reasons

There are many reasons why you should consider writing code and making it available for public consumption.


  • If you’re writing something to achieve a task, odds are someone else would have to write the same code – why not help them out?
  • You’re using a lot of open source software, whether you realise it or not. By open sourcing your code, you get to pay it forward
  • To give others something to contribute to


  • Unknown quantities are risky hires, put your code out there for the world to see and employers get to see what you can do
  • Develop your skills for the next job, the one that requires you to be more skilled in something than you are now
  • You get to interact with a lot of different people who you build credibility with, and hopefully friendships!

For oneself

  • Generally speaking, the more code you write, the better your coding skills so if you want to improve your skills this is an ideal way to do it
  • For the sheer fun of doing cool stuff, especially if you don’t get to do cool stuff in the day job
  • To do it “the way it should be done”

Continue reading


Ideas for (lightning) talks

I’m trying to encourage more lightning talks at my user groups, and I started by writing a plea to folks at my local R user group, caRdiff. In it I included some ideas for lightning talks, and of course, these can be used as the basis for long talks too. We had some fun batting this list around and expanding it in the Cardiff dev group. I thought it was worth sharing, and getting some more ideas from you!

  • A software recommendation
  • A software warning
  • A gotcha – something that tripped you up and, ideally, how you solved it
  • A horror story
  • A show and tell of something you’re proud of
  • A productivity tip
  • A discussion/debate
  • A tip on working with others
  • A brief overview of a topic
  • An “I’m hiring” not for all occasions this one!
  • An “I wish I knew X when I was learning Y”
  • A showcase of some useful resources e.g. blogs
  • A code smell
  • A topical news story
DataOps, Microsoft Data Platform

Stumbling into … Azure Automation

I’ve recently been trying to solve the challenge of working extracting files from AWS and getting them into Azure in my desired format. I wanted a solution that kept everything on the cloud and completely avoid local tin. I wanted it to have built-in auditing and error handling. I wanted something whizzy and new, to be honest! One way in which I attempted to tackle the task was with Azure Automation. In this post, I’ll overview Automation and explore how it stacked up for what I was attempting to use it for.

Overall Task: Get compressed (.tar.gz) files from AWS S3 to Azure, decompress the files, concatenate the contents and put in a different container for analytics magic

Like with most things I dropped myself into the deep-end on it so had fairly minimal knowledge of PowerShell and the Azure modules, therefore I fully expect more knowledgeable folks to wince at my stuff. General advice, “you should do it like this, then this…”‘s, and resource recommendations are all very welcome – leave a comment with them in!

Azure Automation

Azure Automation is essentially a hosted PowerShell script execution service. It seems to be aimed primarily at managing Azure resources, particularly via Desired State Configurations.

It is, however, a general PowerShell powerhouse, with scheduling capabilities and a bunch of useful features for the safe storage of credentials etc. This makes it an excellent tool if you’re looking to do something with PowerShell on a regular basis and need to interact with Azure.
Continue reading

Community, Microsoft Data Platform, R

Bad ways to run a user group

I love user groups and I always want there to be more. I’m not a perfect organiser but I run reasonable groups. When I see organisers doing it badly, it makes me sad. There’s lots of great ways to run a user group, but I thought I’d cover some of the bad ways to run a user group. The anti-patterns if you will 😀

Don’t advertise

Your group isn’t on Twitter. Event notifications don’t get posted on local mailing lists / Slack groups. Your group basically runs on Fight Club rules*, and you wonder why you don’t get new people attending.

Turn it around: Getting started with social media

Advertise badly

You post notifications via arcane methods with low readership or high barriers to entry. You only post in the tiny LinkedIn group you set up. You don’t include vital information like the location of the event. In short, you waste your time and nobody sees your efforts.

Turn it around: Infographic on improving social media use

Make your own site

You bodge together a ’90s site. You never update it. You don’t include event pages. Your SEO is poor. You spend lots of time making and maintaining this thing or worse you spend no time making and maintaining it. Nobody finds your lone site.

Turn it around: Use Meetup

Promote uncertainty

You don’t keep an archive of past events. You don’t post an agenda. You don’t include important info like the language the talk is in. You don’t let people know what to expect when they show up.

Turn it around: Event description writing tips

Be awkward

You organise the group to make it convenient for you attend. You throw it at your out of city center venue. You throw it during the day, or on weekends. Oddly nobody else shows up at that out of down campus during the working day.

Turn it around: Picking the date

Write negatively

The event description is mainly acronyms. There are references to getting drunk. You’re making jokes at someone’s expense. No tolerance of newbs is shown. You say you expect few people to bother turning up. You do your damnedest to discourage people who aren’t like you.

Turn it around: Event Organisers Considerations

Operate in a vacuum

You don’t talk to other local user groups. You don’t consider other events when you set a date and clash. You don’t network and gain contacts for potential speakers. You’re the only one who talks. You don’t ask for feedback from the people who show up.

Turn it around: Find new speakers

What other bad ways of running a user group have you seen? Can you recommend extra resources for people looking to do better? Comment below!

* You don’t talk about Fight Club