Category Archives: Fun

Under the hood of my Hack24 entry

I competed by myself at hack24. I don’t see competing alone as a massive issue personally, as it cuts down communication overhead by a massive amount. 😉

For those that haven’t heard of hackathons before, the concept is fairly simple:

  • Teams of 1-4 people.
  • Multiple challenges (at least in this event)
  • 24 hours to build a solution.
  • Only code you have written during the event (or Open Source libraries/apps) can be used.

It is quite gruelling to compete in these types of events; you have limited time and you need to prioritise your time across features and components carefully so you don’t end up with a complete backend but no frontend or similar.

Generally you omit anything that is not-essential such as login systems, logging or some error checks etc.

I used the event to test some of the ideas and applications (Microservices, RabbitMQ, Riak, Nginx, php-fpm etc) I have been using on larger projects in a smaller time constrained project – and I think the outcome proves that it works.

I am a big fan of microservices; breaking your app into small testable components with fixed interfaces is awesome for quick building and easy debugging – want to test if something is working, inject a message into the input and see what the outputs are. Once working you can mostly treat it as a single component and move onto the next piece. It keeps your mind focused and, at least for me, reduces stress.

I am a long-time PHP coder and so it made sense, when it came to quick prototyping, to use this and the lightweight Slim framework as my language of choice – both for the frontend and all the workers on the backend all running on top of a single Vultr VPS [disclosure: url contains affiliate link].

Screenshot

SMS proxy – my hack24 entry

I broke the project into 4 main parts:

  • Frontend (website, sms callback hook for receiving messages from Esendex (the challenge sponsor))
  • Receiving worker (take messages from callback and lookup entries in Riak and route to next processing step either filter or directly to sending worker)
  • Filter (responsible for transforming the message before routing the message to the sending worker)
  • Sending worker (responsible for sending the message out via Esendex)

I am open-sourcing the code as a learning tool for other people (and perhaps so I can abuse it in later events…)

You are welcome to ask any questions and I will do my best to answer them.

If you want to contact me, please use twitter or email mike @ technomonk . com

10 Things any newbie web developer should know

I’m not saying that a newbie should know all these off the bat. It takes years to be proficient in the majority of these, but just knowing what they are and why they are important will put you a couple of notches higher than most other newbies. Continue reading

In a galaxy far far away…

Homeopathic A&E

Sorting Algorithms

Rise of the machines…

Next step, to get it listed on the electoral roll:

A form was reportedly posted to a car park ticketing machine at Dorset’s Moors Valley Country Park. Addressed to ‘The Occupier: Pay on Foot Shelter’, the machine now faces prosecution – with a fine of up to £1000 and a criminal record if it fails to fill in the form. To the amusement of staff at the park, they are now figuring out what to put as its job, language and religious beliefs.

http://uk.news.yahoo.com/38/20110311/tuk-why-you-may-be-confused-by-the-2011-107bc4a.html