Latency of DigitalOcean Spaces vs AWS S3

WakaTime’s infra is split across DigitalOcean and AWS. We use DigitalOcean Droplets for compute resources, AWS S3 to store code stats, and DigitalOcean Spaces for backups. You can find more info on th…

Read more

Using a disk-based Redis clone to reduce AWS S3 bill

Redis is an in-memory database with very high write and read speed, and a limitation that data sets can’t be larger than available RAM. It’s like memcached but supports data structures instead of just…

Read more

WakaTime 2020 Programming Stats

Happy New Year… 2020 is finally over! In 2020, more than 250k developers spent a combined 36 million hours programming, tracked with WakaTime text editor plugins. The average person spent 51 minutes p…

Read more

WakaTime 2019 Programming Stats

Happy New Year! In 2019, over 200k developers spent a combined 25 million hours programming, tracked with WakaTime text editor plugins! Programming stats for 2019. The top languages were JavaScript (5…

Read more

WakaTime 2018 Programming Stats

Let’s take a look back at 2018 from a WakaTime perspective: First, some WakaTime milestones and then a yearly overview of all WakaTime users’ programming metrics! 🎉 Growth & milestones. In 2018, WakaT…

Read more

How to Automate Responding to GDPR Data Removal Request Emails

Do you receive emails from your website users with the subject “Data Removal Request” that look like this? I hereby withdraw my consent for you to collect, process or store any personal data related t…

Read more

Flask Part 3: API Decorators and Helpers

This is the third of three posts about building a JSON API with Flask. Make sure you start with part 1 and part 2. In the first post, we used a custom base SQLAlchemy class to serialize and deserializ…

Read more

Flask Part 2: Building a RESTful API

This is the second of three posts about building a JSON API with Flask. Part 1 arrived yesterday and part 3 is arriving tomorrow. In the previous post we learned how to serialize SQLAlchemy models to/…

Read more

Flask Part 1: SQLAlchemy Models to JSON

This is the first of three posts about building JSON APIs with Flask. Part 2 and part 3 arrive tomorrow and the day after. I've seen a lot of questions on StackOverflow about how to turn SQLAlchemy mo…

Read more

Xcode 8 Will Disable All Your Plugins

TLDR: Apple will disable all your Alcatraz plugins in Xcode 8. Read this GitHub issue for more info and give Apple feedback to let them know we need a fully functioning replacement before disabling th…

Read more