Status update, December 2020
Published on January 05, 2021
Table of contents
2020 is over! It was a different year in many aspects. I started doing these monthly updates when I stopped working full time, inspired by Drew DeVault’s status updates. It’s been a useful way of tracking the passing of time, it keeps me aware that I should at least try to accomplish something each month, even if it’s working on a useless personal project. Some months were more productive than others, and that needs to be OK.
Advent of Code
I spent most of the month obsessing over Advent of Code. Initially my goal was only to solve each problem using rust on the day of release, but I ended up trying to optimize them down to sub-millisecond. That wasn’t possible for every problem, but I did manage to get there for most of them. My solutions are available on github, and I wrote down some thoughts over the weeks:
Cyberscore
I’m working on rewriting some of the pages. Instead of rewriting everything
from scratch, I’m going from page to page extracting helpers similar to the
ones available in rails, like link_to
, url_for
, checkbox_field
, etc.
I’ve also redesigned some pages while doing it; for now these redesigned pages are only available for logged in users that opt-in, but here’s a sample of the redesigned home page:
The main difference is that the new version is a bit more responsive.
I’m currently working on rewriting the user settings page, which implies rendering forms, handling POST parameters and updating database records. I’m also redesigning it, because this is how the current page looks like right now:
Random consulting gig
I spent one day consulting, helping a company optimize their infrastructure and
making sure that each component can scale if necessary. We spent some time
optimizing the number of workers and
threads of gunicorn
. They were using the values suggested
by gunicorn’s documentation, 2-4 $(NUM_CORES)
for both, which is a bit weird.
I don’t think you ever want a quadratic number of threads. We tested a few
different configurations and benchmarked it with Locust
to see what would be the optimal values for that particular project.
What’s next
I have two podcast episodes to edit. I also need to finish some AlumniEI mentorados project tasks.