GitArborist.com has now been live for three months. For previous info you can jump to the two month update, or the one month update. May 2020 Stats First, the stats: Total Installations: 7 Scheduled PRs Merged: 12 PRs Merged: 23 (inc. scheduled) Repositories Watched: 1160 What's Changed There were some tweaks done under-the-hood both for performance and to tidy up the way statuses are handled. The system is now much better at re-using statuses for scheduled merges (wording has changed slightly to help accommodate this).
In an earlier post, I wrote about how the code I'm most proud of is terrible code. This is because although the code is terrible when I come back to it to change something after 6 or 12 months I can quickly find where the change needs to be made. When describing this to someone they asked me why it is easy for me to navigate the codebase. Obviously, this code came out of my head so I have an unfair advantage here, I can't pretend this is not a factor.
A common question in developer job interviews is to ask about code that the interviewee is proud of. The assumption here, of course, is that the code you're most proud of is good code, but is it? The code I'm most proud of was a full re-write of a PHP (i.e. LAMP stack) application for attendance marking. The original app was a collection of standalone PHP files with PHP, HTML, and SQL all mixed with minimal structure.
ActiveJob is Rails’ way of handling background jobs, providing a common interface around various queuing backends that do the actual processing (Sidekiq, Resque, etc). ActiveJob's interface is pretty simple, you call #perform_later on the job, that job gets added to the queue, and at some point, a worker process will pick it up and execute it. You can also set various options via the set method, for example: ThingJob.set(wait: 1.day).perform_later will cause the job to be executed one day from now.
GitArborist.com has now been live for two months, here's a brief recap of what happened in month 2. See here for the one month update. April 2020 Stats First, the stats: Total Installations: 3 Scheduled PRs Merged: 8 PRs Merged: 9 (inc. scheduled) What's Changed This month involved another round of refactoring to simplify the code and make it more re-usable. A lot of the flows now center around Github's Pull Request statuses which makes a lot of code re-usable across the different features.
Performance Woes I've been running GitArborist for a couple of months now, gradually adding features. Like any good production app, I have some logging and metrics set up to monitor and troubleshoot issues. Over these last few months, I've seen recurring performance issues, with response times in double-digit seconds in some cases. I made various fixes like you'd expect: adding database indexes, returning early where possible, etc. These were improvements to be sure, but I never fully removed these occasional long response times, though I could not reproduce it myself.