Annotated examples of programs

June 2, 2022

A couple of weeks I got a display. I must confess I bought it on impulse. I am a sucker for EInk tech. But upon receiving it I realized I just don’t know how to code for it. So I decided to embark on a masochistic journey through the world of embedded programming, mainly by reading the source code of the few examples available. As I was going through that, I thought it would be fruitful for me and potentially others to annotate, as best as I can, the different components of the code that make up a program for this display/board. ... Read more - notes from a non-expert

May 19, 2022

I am a sucker for E Ink displays. So when I saw I joined the waiting list immediately, even though I don’t know much about hardware. I got my dev kit yesterday and so far managed to run some sample apps, and learned some things along the way. This post is a note to myself aiming at reinforcing the lessons learned, but might be useful to others new to this. ... Read more

Blender Texture

March 15, 2022

A post for myself. Something I forget to do everytime. Not anymore: Here’s a step by step of how to apply a texture to a 3d model using Blender. 0. Create model or import STL 1. Remesh Open the Object Data Properties menu, then Remesh, choose the appropriate Voxel Size, and click Voxel Remesh. To check if this worked, go to Edit mode (Tab), and zoom into the model. You should see it has thousands of faces. ... Read more

macondo: making Docker-wrapped applications easier to run

December 30, 2020

I found this article and it reminded me of a tool I wrote a couple of months ago called macondo. In this post, I will try to explain what it is, why I wrote it and some of the drawbacks I’ve found. I am not trying to justify its existence of it or even suggesting this is the right way of doing things. I haven’t decided whether I like it or not. ... Read more

Kotlin's .copy() gotcha... when Java is better

December 29, 2020

Kotlin’s data classes are cool. They are the recommended way of replacing POJOs and it is usually recommended to use them with vals so the classes are immutable. They come with a handy copy() method that “clones” the data class, which can also be parameterized with any named argument, so the new object has all the fields of the original class + the overridden fields. So far so good. How does Kotlin’s copy() work under the hood? ... Read more

Tools I use

November 30, 2020

It should be no mystery that tooling is a big part of anyone working with computers. They can make a huge impact on your workflow and productivity. I decided to maintain a list of the tools I feel define my workflow, focusing on the tools that I don’t see used as much by my peers (e.g. I don’t list my browser or anything commonplace): NixOS I used macOS heavily for at least 7 years. ... Read more

YouTube flagged me so I built a Telegram bot to proxy/watch videos

August 10, 2020

TLDR; I use ad blockers. YouTube flagged my account and devices. I can only watch around 1 in 4 videos. So I wrote a Telegram bot that receives YouTube URLs and replies back with the video. The problem I use adblockers to have a semi-decent experience on the Internet. I mainly use UBlock Origin plus some DNS ones. One nice feature of UBlock Origin is that it does block ads from YouTube videos. ... Read more

Automatic work session recordings with OBS Studio + TaskWarrior + TimeWarrior + YouTube

June 3, 2020

Hacker News discussion Not long ago I read a comment on Hacker News about tips to improve one’s performance as a developer; it recommended a system of recording oneself while working and someone suggested uploading the videos to YouTube (as private or unlisted) for future revision and as a backup. I liked the idea so I wanted to give it a try myself. Of course, like most of the stuff I do, the practicality of it was not as important as the chance to see how I would implement a system to support such workflow. ... Read more

Include versions in published POM file when using Gradle platforms (BOM)

May 20, 2020

Gradle platforms are a nice feature introduced back in Gradle 5. They allow you to align the versions of the dependencies across multiple projects by declaring them explicitly in a “platform module”. This is no more than Gradle implementing Maven’s BOM (bill of materials) pattern. This post is not intended to sell you the idea of Gradle platforms. In fact, it assumes familiarity with this feature. Instead, we will discuss one of the downsides and a potential solution: when publishing an artifact that uses a platform, the generated POM file will not, by default, include the version numbers of the transitive dependencies. ... Read more


June 3, 2019

I enjoy mentoring too. If you need need some engineering mentoring, especially around Java (and other JVM languages), data engineering (Flink, Presto, etc.), backend engineering, infra (Kubernetes, Docker, etc.), please send me an email or contact me via telegram at Sessions price can vary depending on the topic, but it goes for around 80USD/hr.

© 2017 | Powered by Hugo ♥ | Art by Clip Art ETC