Jamie's Blog

Ruby developer. CTO. Swimmer. Always trying to write more

Managing windows on macOS with Amethyst

James lee vpbpwauyeos unsplash

This is how I use the Amethyst window manager on macOS. 

I like to fill a screen with windows. If you’re happy with a desktop that looks like this, then you probably won’t enjoy any of these suggestions

Lots of windows everywhere!

Last year I bought myself a 32" monitor to...


Tools of Podia (2020 edition)

Barn images t5yuohw6zro unsplash

Here’s a quick list of the main tools and technologies we use at Podia. It’s especially skewed towards tools in use by the dev team, since that’s what I’m most qualified to talk about. We use other tools in support, marketing, and accounting but I...


How I read books in 2020

Kindle reading

This year I started reading books a little differently.

Firstly, let’s talk about fiction. It puts me to sleep, literally. Total snooze-fest, in the best possible way. I read a fiction book, usually sci-fi, every night on my Kindle and I manage 10...


Technical debt smells like money

Micheile henderson zvprbbmt8qa unsplash

Ah, I just love the smell of technical debt! Do you know what it smells like? No, no, not old socks and the festering corpses of bad decisions.

Technical debt smells like money.

What?! Yes, money. At least, it smells like money if you’re doing it...


Podia's engineering culture

Podia way

Back in March I asked the Podia dev team these questions:

  1. If someone asked you to describe the Podia dev team, how would you describe us?
  2. What do we do that other teams don’t (or what don’t we do!)?
  3. What principles do we hold but rarely discuss?

Use these “unfair advantages” when applying for a job

C18ac7e0 6b44 4d64 8d14 f9d24aa9eec1

Sometimes you might be lucky enough to be in such high demand that you don’t need any unfair advantages when applying for a job—but even if you’re well qualified, it’s worth making sure you do all you can to get the job you want.

This is especially...


Should

Should

Here’s a list of all the things we “should” do at Podia

  • We should be more mobile-focused
  • We should make our web app accessible
  • We should make our course editor work on iPads
  • We should add more validations around forms
  • We should make sure all validations...

Boredom Envelopes

Boredom envelopes

— projects for kids when you’re working at home

Although I’ve been working at home for the last few years, 2019 was the first year both myself and Hilary were working full-time jobs at home while the kids were on summer holidays.

How did we cope...


Implementing Impersonation

Podia impersonation

The ability to log in as one of your users is one of the highest value features you can develop to support your customers.

The ability to log in as one of your users is one of the most dangerous features you can develop to support your customers.


Restoring my Humanscale Liberty

Humanscale liberty hedgehog armrest

Sidenote: I ❤️ my Liberty chair

I love my Humanscale Liberty chair for it’s comfort and unrivalled simplicity. I’ve used ridiculously complex chairs like the Herman Miller Aeron but the Liberty has by far the best sit-and-play experience. No faffing...


Add Deprecation Warnings to your Rails App

Deprecations header

You’ve probably seen deprecation warnings in Rails, especially if you made the jump to 5.2 recently, but did you know you can use them in your own app?

I suspected so but hadn’t done it before. Here’s a Rails model with a url attribute.

# == Schema...

Security Threats Introduced By GDPR

GDPR is supposed to protect the privacy of individuals but it also opens up new security threats which can threaten a company.

I’m not a lawyer, or any sort of GDPR expert, but like lots of people I’m becoming very interested in the GDPR rules as...


Rails Testing with Headless Chrome on Heroku CI

Heroku ci

I recently started setting up a Rails app on Heroku CI . It was mostly pretty painless but there were a few tricks to getting our Capybara specs running.

Heroku don’t fully support running browser tests yet; I mean, it works but it took a little finagling...


The one thing

Underwater

I reached the end of the pool, finishing another 200m interval, and was taking a quick breather and a drink, before setting off again.

“Hi”, said the girl in the other lane. “Do you mind if I ask you a question?”

“Sure”

“What’s the one thing someone...


Does your backpack come with an instructional video?

Iceberg

Well, does it?

I mean, that would be pretty ridiculous, right? Who needs a video to learn how to use a backpack? How bad would a backpack need to be that it needs you to sit through a 30min —thirty minute— video to figure out how to use it.

Well...


Querying CSV files in SQL

I had a need to query a CSV file this morning. It was an export of users in Intercom and I wanted to find all the users with duplicate email addresses.

Numbers

You can kinda do this in Numbers by creating a new column with the formula

=COUNTIF(...


Moving from Wordpress to Middleman

I’ve been unhappy running Wordpress for a few years, particularly the effort required to keep the server, the Wordpress instances, plugins, and themes updated. Of course, you don’t have to do this, and most of the internet doesn’t, which is why we...


I saved a man from drowning

Pool

But that’s not really the point I want to make. The important point is that I very nearly didn’t save him.

I swim a few times a week at a local hotel pool doing about 100 lengths. I recognise a lot of the other swimmers, mostly retirees getting some...


Appy New Year

I looked back over the past year to find the new apps that changed the way I work, those that lived up to their promise, and those which have earned their place on my laptop (or iPhone, or web browser).

ZoomIt (mac)

A great little app for inspecting...


Page 1 of 47