Hi, thanks for visiting!

My name's Sam Kelleher, and I am aSenior Full-Stack Web Developer / Software Architectbased inLondon. This website mostly contains a sample of work from my portfolio, tips, and best practicies for building web applications, and reviews + photos of food and hotels in London.

GitHub vs BitBucket

When it comes to hosting our source-code, many platforms can cover the basic of hosting a central GIT repository for us.

GitHub charges per repository, while BitBucket charges by contributor.

Use BitBucket if:

  • You only work individually or in a small team (5 people or less).
  • You wish to have private repositories.
  • You wish to work with a large number of repositories.

Use GitHub if:

  • You project is open source.
  • You only have a small number of private repositories.
  • Many people will work on a repository (5 people or above).

As for the rest of the differentiation features, they're both pretty similar, with the one exception that GitHub is universally recognised and there are many tools, such as CI services, that can plug straight into GitHub by using your account; although BitBucket is gaining notability in this regard.

I do wonder about the long term viability of BitBucket offering private repositories, as surely the cost of doing so will increase over time - with storage costs in particular. Then again, the same applies for GitHub and its generous hosting of public repos.

At the end of the day you get what you pay for, there are a handful of good reliable paid for services that can offer the best of both worlds - such as Codebase HQ which has git and project hosting for a small monthly fee, they charge by tiers of storage space used, users and number of projects - but each project can have unlimited repositories!

An idea is only as good as its execution.

Dynamic iOS Passbook with notifications

Dynamic iOS Passbook with notifications

Using a C# API to generate Passbook passes for the Passbook app on iPhones using iOS. The system can then track each users subscription, and send updates in realtime to each device via the Apple Push Notification Service (APNS). Read more...

Who is the voice of Google UK TTS engine?

The lady speaks with such authority an demand it demands me of voice of Corbin Dallas's' mother in the Fifth Element. Where else do computers speak with regional accents in films? And not the universal one voice fits all as depicted in Star Trek.
CMS Gallery + GIF Support

CMS Gallery + GIF Support

A photo gallery within the admin console of a CMS I created called Leaf. The gallery components takes uploaded images, and creates all the required dimensions for the website. It supports creating WebP versions of all images, as well as the usual PNG, JPEG, types. PDFs are also converted to JPEGs. If a GIF is uploaded, the animation is preserved and rendered. The GIF is also undergoes some lossless compression to make the animation load faster. Read more...

Backbone + WebSocket Single Page Application for Car Dealerships

Backbone + WebSocket Single Page Application for Car Dealerships

A online and packagable application built using Backbone.js + Marionette.js, running on a WebSocket enabled C#/SQL backend. Being a Single Page Application (SPA), the application runs very natively, with fast performance between screen loads, and can handle transient network errors as users dip in and out of WiFi coverage. Read more...

Responsive, Realtime, Customisable, Interactive Dashboard

Responsive, Realtime, Customisable, Interactive Dashboard

This is a dashboard for a health and safety monitoring product I built. It has numerous unique features, and complex backends since the dashboard must effortlessly crunch potentially large datasets and summarize them in simple tabular graphs or numbers. Read more...

Mystery Shopping Yourself

So you've hired temporary workers to provide a presence for you at a trade show, you're not there yourself since you're networking with other business leaders at the event, so how do you know that the 'fort is being held down'. Read more...

Thirdparties - the biggest bottleneck to IPv6 adoption.

The Internet is changing. The problem is, some parts change faster than others. If you need a stack supporting IPv6 - you might struggle. Popular providers are still lagging in their offerings, which means picking a provider with lower expertise might be needed, or even bringing hosting in house. Here we look at the major bottlenecks with IPv6 adoption. Read more...

Calendar Based Booking System

Calendar Based Booking System

This online booking and availability system has the functionality to show to both customers and staff members the same UI but with different enabled functionality. Staff can use the same system to view availability with granular detail, and book on behalf of customers (such as over the phone), while customers can use the system to book themselves. By using this adaptive UI technique saves time and costs as no separate 'staff only' system is required to make bookings. Read more...