Tips

How to Upload Photos to Instagram With The Highest…

It never fails. I spend hours building a nice graphic, post it to instagram, and their compression adds a ton of JPG artifacts destroying...
Josh
2 min read

Maybe It’s Time to Retire Mathematical Notation

I was helping my nephew with some math homework and he was stuck on a nasty looking formula. I explained it for several minutes,...
Josh
4 min read

Direct S3 File Uploads for NodeJS

I’m on a mission to document the most challenging parts of software development. Client side uploads to S3 is absolutely top 5. Navigating AWS...
Josh
2 min read

Should I use Mongo or SQL?

5 years ago I co-founded iScout.com – a SAAS which now collects millions of safety reports and training completions. For weeks I struggled to...
Josh
5 min read

Facebook Authentication for NodeJS

For some reason, OAuth always seems overly complicated. Documentation stinks and errors are vague. Abstractions like Passport.js add a mountain of complication while barely...
Josh
1 min read

Google Authentication for NodeJS

Nothing makes me sweat like OAuth. Documentation is sparse and errors are cryptic. Libraries like Passport.js just add a poorly designed abstraction to an...
Josh
2 min read

Setting up a Lets Encrypt Certificate on Heroku

Update (April 2017) Heroku now has first-class support for Let’s Encrypt so installing it is as easy as clicking “Configure SSL” and following their...
Josh
2 min read

iOS Auto Renewing Subscriptions

Auto-renewing subscriptions in iOS are confusing. These are my notes on how the process works and other tips. NOTE: This doc is only for...
Josh
3 min read

How To Setup NodeJS With Dokku on Digital Ocean

This is a walkthrough of setting up a NodeJS website on digital ocean droplet by Dokku 0.4.2. If you know the tricks, its an...
Josh
1 min read

On – The New jQuery Event Handler

jQuery has a new method of wiring up events. It’s called ‘on’. It’s actually been around since jQuery 1.7 which was released November 3,...
Josh
2 min read