Thu 27 Sep 2018

Mon 24 Sep 2018

Whenever I use sqlite in Node I always come across the issue where the database hasn't been created properly. This is the code I've been using to ensure it does.

const dbpath = 'database.db'
const dbPromise = Promise.resolve()
 .then(() => new Promise(function (resolve, reject) {
 // Make sure database exists before trying to open it
 fs.writeFile(dbpath, '', { flag: 'a+' }, function (err) {
 if (err) reject(err)
 else resolve()
 })
 }))
 .then(() => sqlite.open(dbpath, { Promise }))
 .then(db => db.migrate({ migrationsPath: 'migrations/' }))

Sat 22 Sep 2018

Designing A Textbox, Unabridged external

I wrote this article for Smashing Magazine as a way to explore how complicated the most seemingly simple of tasks can be. In it I create a textbox but go through a very exaggerated process of defining exactly how it should work.

Thu 12 Jul 2018

Fri 06 Jul 2018

The Doctor's Kitchen Podcast external

This podcast is a fascinating exploration of health, lifestyle and food from a very scientific and medical approach. Each episode has very qualified people talking about their area of expertise.

Harry Potter and the Sacred Text external

I've recently been listening to Harry Potter and the Sacred Text, it's a podcast that uses a chapter each week from Harry Potter to explore a theme (such as loyalty, grief, friendship) in quite a lot of depth from various viewpoints. They use religious and spiritual approaches, but in such a way that even as an atheist I enjoy all of the Jewish and Christian bible reading techniques that they use.

Wed 04 Jul 2018

Wallcat for Android

I felt it was time to freshen up my phone a bit, so I made some tweaks and used Wallcat's API to show a daily wallpaper on my phone to match my computer.

Tue 03 Apr 2018

Uber Case Study external

A really insightful case study from a product designer working at Uber.