I wrote a post on Medium detailing how CSS Grid can be used to create a compact layout of uneven sized items in a grid.
CSS Grid makes laying out content in a grid much easier and does a good job of Masonry style layouts as long as you are able to specify the size of each grid item in advance.
To play the Game of Thrones you will need allies. But when those allies are Petyr Baelish, Roose Bolton or Alliser Thorne you will also need stab proof armour.
This map shows all the major houses and institutions of the Game of Thrones world with the many, many allegiances and connections to the hundreds of characters in the show.
The dilligent and learned maesters at the excellent Game of Thrones wiki have documented everything you could ever need to know about Game of Thrones. This includes every character who has appeared in the show. From Daenerys Tagaryen to Othell Yarwyck to "Dwarf Hunter 2". If they speak a line or even if they are just an interesting corpse they will be on the site.
I used this data as the basis for an experiment using CSS Grid to create a grid whose elements expand to show more content when clicked.
The grid was built using D3.js to load in the data and populate the grid with content.
This data visualisation attemts to show the distribution of the entire collection by date and to show the difference in age depending on the type of artifact. For example, the majority of vases in the collection are from around the year 300 A.D or before.
The visualisation was made using D3.js after the raw data had been consolidated into JSON using PHP.
The animation shows details of all 926 matches played so far as the map updates to show which teams have held or challenged for the title.
The visualisation was built using D3.js and JQuery and all the game data was sourced from the UFWC website.
A data visualisation to show the distance travelled by each Premier League footballer to get to their current club. It shows the distance from the player's birthplace and the clubs they have been at along the way both individually and totalled for each club.
See which clubs cast their nets the furthest and which rely on the largest number of journeymen.
The visualisation was built using D3.js and JQuery and all the data was scraped from Wikipedia.
The amount of content here will continue to grow.
The Unofficial Football World Championships is a project by Paul Brown that tracks the World Champions of football as if the title were decided in the same way as boxing, i.e a team remains champions until they lose a game.
My data visualisation shows all of the 918 "title decider" games that have been played so far showing how thetitle has jumped from nation to nation and continent to continent.
The visualisation was built using D3.js and JQuery and all the data was sourced from the UFWC website.
A selection of data visualisations from the 2016 Summer Olympics.
Data was either manually collected from wikipedia or scraped in real time from the BBC medal table and then stored in MySQL and formatted to CSV or JSON files.
The visualisations were built using D3.js and JQuery using some of Mike Bostock's excellent examples as a starting point.
An exercise in using D3.js and SVG to create data visualisations of cocktails and their ingredients.
Inspired by this original visualisation by Tatjana Dubovina & David McCandless I wanted to make an entirely dynamically generated version.
The data was taken from Wikipedia and is served in JSON from a MySQL database.
Each visualisation is generated programmatically from the data, including the drawing of the glass outline to create a menu of over 70 cocktails.
Fans of Game of Thrones know that Valar Morghulis (all men must die) but when over 200 named characters have already gone to meet The Seven (or The Old Gods, or The Drowned God, or The Lord of Light, or The Many-Faced God of Death, or the Great Stallion, etc...) then it gets hard to keep track of the tragedy.
Fortunately Maester Barefoot has created a comprehensive record of all these deaths, whether violent, very violent or extremely violent.
Valar Morghulis shows every death and who was responsibly for the slaying. A kind of "butchery tree" if you like.
The site the Public Whip aggregates the data on how MPs in the UK parliament vote. They then group this by similar votes to provide an insight into how much each MP supports a particular policy.
However at the moment the site does not provide a tool to enable users to easily compare MPs and see their relative support for each issue.
I made a small site that scrapes the data from the Public Whip and allows the user to compare support for related policies across groups of MPs. The tool also allows the user to select any policy or MP and add them to the comparison.
The site was built using PHP to scrape the data and serve via API, and AngularJS to provide the interactive front-end functionality.
I updated the implementation of the social feed on this site to use AngularJS.
Due to limitations with the Instagram API I scraped my content directly from the Instagram site and wrote an API in PHP to allow the content to be pulled into the site.
I detailed the approach in a post on Medium.
Ski VR is a quick VR demo built for Google Cardboard but also playable without a headset.
Slide gracefully down the mountain between trees and alpine chalets in a Virtual Reality winter wonderland.
Ski VR was built in Unity with the Google Cardboard SDK and uses 3rd party graphical assets.
Color Hex is a mobile puzzle game for Android and iOS built and published uing the Unity platform.
The player must try and match patterns by mixing colours together on a hexagonal grid. As the patterns get more complicated the puzzle becomes more difficult.
There are 2 play modes with a combined total of 222 levels.
Color Hex was built in Unity which supports exporting to both iOS and Android platforms.
In-progress search engine of sneakers collating and comparing sneakers from a number of eCommerce sites.
Regularly spiders a number of sites and compares prices where identical sneakers appear on multiple sites.
The spiders and APIs are built in PHP, the database in MySql and the front-end uses SASS for the CSS.
More and more people are posting photos on their social web blogs. But most of them are not very good photographers. Or have poorly made cameras. The colours come out funny, the edges are all crackly and often some of the image is out of focus.
I have developed an app to restore these poor quality photographs: Winstagram!
Good old David Cameron. He's so suave yet so caring. he just wants the best for the country. He says so in his lovely new poster campaign (NSFDuring lunch).
Deface David's poster with your own words with "Make your own David Cameron poster".
Go on, have a go. You know you want to. Make it look like he is saying rude words. Hurr hurr hurr!
A random choice of blue bon-mot is substituted every time you click the "Tuckerise" button so click away. However, be warned. He is a very very rude man and if you don't like naughty words you probably won't like this.
Condé Nast wanted to provide a showcase for the large amount of high quality video content made across the many different titles and countries.
The Scene brings all that content together using the Brightcove platform to serve the videos.
I was Product Owner for the digital launch of WIRED magazine in Germany.
WIRED Germany is the first Condé Nast title to have a digital membership model with some content only visible to subscribers.
We launched a responsive website with the emphasis on giving the long form in-depth articles the presentation they deserve.
I took part in the first Condé Nast International Hackathon joining with the "F’Nito" team to help them develop their cross-platform content concept.
F’Nito enables the user to read or listen to an article on any of their devices seamlessly switching from text to audio and back and maintaining their place as they switch devices.
F’Nito won the first prize at the hackathon.
As Director Digital Brand Platforms I led the implementation of the adidas.com global redesign for the Global Marketing department.
The site integrates a global CMS that supports each of the local markets as well as the global team.
The adidas Go All In platform highlighted the breadth of the adidas brand across all sports as well as the Street and Style side of the business.
I was the adidas person responsible for the technical implementation of the platform and CMS.
The site was launched globally across over 40 markets.
The adidas Store finder was the first responsive functionality on the adidas.com platform, designed to display well on both web and mobile devices.
As well as the front end implementation with Google Maps we also used the Google API to tidy up and validate the thousands of store records which until that point had been maintained manually on disparate documents throughout the organisation.
We developed a central database with an easy to use buusiness interface and provided an API allowing store data to be integrated into marketing campaigns wherever they were integrated.
The adidas.com redesigned home page won the "Web: Best Home/Welcome Page" at the Webby Awards 2009.
I worked on the project from the adidas side with the agencies Molecular and de-construct.