Dec 15 2020
Lately I’ve been getting more into the self-hosted game. This DIY approach has given me a much greater appreciation for good software. It doesn’t come without its drawbacks though. Self-hosting requires more time, responsibility, planning, and various chores: data back-ups, log monitoring, ensuring good up-times, etc. It’s not a hobby to choose lightly!
Nov 07 2020
The Best Way to Avoid Merge Conflicts
We all dislike merge conflicts. Even worse, convoluted merge conflicts that when improperly resolved, lead to regressions. What is the best action towards transforming a codebase into easy-to-resolve (or zero) conflicts? I argue for Separation of concerns.
Oct 28 2020
Law of Demeter: Always Encapsulate
Exposing internal data structures are bound to lead to a messy situation.
When a method caller knows too much about an underlying system, there is a nasty kind of coupling.
This dependency issue is relates to the Law of Demeter.
Some people call it “too many dots syndrome” because it leads to
The whole point is that the caller should not have knowledge of the deep attribute.
Oct 20 2020
JS Performance: Classes vs Function Composition
Today during lunch I wrote up a really quick benchmark comparing the performance of class instantiation vs function composition.
Sep 17 2020
Light as a Feather: Adding pagination
This will likely be the last article in the series of “Light as a Feather”. I hope you’ve enjoyed it so far! Let’s talk a little about pagination.
Sep 06 2020
Light as a Feather: Removing Google Analytics
Gathering analytics data is becoming increasingly difficult for publishers. uBlock is commonly used by the average internet user and Pi-hole is quickly growing in the technologist space. I applaud these privacy-concerned folks for taking personal agency in a time where internet privacy is more difficult than ever. From a publishers point of view, users ghosting analytics is simply a case of “rolling with the punches”.
Aug 31 2020
Light as a Feather: Improving CSS Page Weight
Performance is a software cornerstones that tends to be left behind. It’s easy to get distracted while pushing through countless features. Let me be clear about something though: Performance is a feature too! Not only is it a feature, but it also leads to great user experience. The UX of this blog will hands-down beat the UX of any ad-bloated recipe site.