POSTS
(these take longer to read, but are more deep-diving)
2024 June 21:
Lock and/or downgrade packages on arch linux
Read...Sometimes we want some packages to not be upgraded, or to downgrade them to previous versions. Here is how to do that.
2024 April 4:
Use datetime.timezone.utc instead of pytz
Read...This is a short explaining an alternative on python's stdlib for pytz
2023 December 4:
Upgrade NixOS to next version
Read...Recently I had to update my NixOS lab VM from 2023-05 to 202311. Here are the steps required to do that.
2023 October 10:
Prepare a VM/LXC container template on Proxmox for NixOS
Read...When generating a template VM or LXC container, you need to swipe and re-generate some configuration so that the VM/LXC container generated becomes unique from the Proxmox's perspective. Here is a description on what is needed.
2023 October 3:
Create NFS share on Proxmox Server to make it available on the network
Read...One of the features on my new Proxmox server will be to provide NFS shares on my home network, which are compatible with lots of machines/clients/systems and will be useful to share files between the Proxmox host and its' guests also. Here are the steps required to setup the NFS server the clients.
2023 September 30:
A primer on LVM (when setting up Proxmox)
Read...I had done a new Proxmox setup on a beefier SSD, and by default proxmox uses LVM to handle disk 'partitioning', which was always a little cryptic to me. That looked like a great opportunity to learn something new that can be useful in the future, so I took some time to understand it and consolidate here for my future self when the need arises.
2023 February 25:
Molecular Notes - A second brain system to deal with concepts, insights and ideas
Read...These are some notes I took while reading 2 interesting articles from someone explaining his second brain system.
2023 February 22:
PopOS 22: random freezes when using btrfs and timeshift
Read...I noticed my system was randomly freezing for some seconds when I was using btrfs and timeshift on PopOS 22. Searching a little bit online, I discovered that is related to btrfs quotas enabled, although them not being stable yet. Here is how to fix that.
2023 February 14:
Is complexity always a bad thing?
Read...As software developers, we tend to not like complexity. Here are some of my thoughts after listening to a podcast episode.
2023 February 6:
ZRAM compressed memory on PopOS 22
Read...This is a short explaining what is ZRAM and what are its' benefits and tradeoffs.
2023 January 28:
ansible: 'Missing sudo password' error when running playbook or ping
Read...I spent some minutes trying to understand what was happening when trying to run `ansible ping` on a machine I could manually ssh into, but ansible could not connect to it. Here is what I did to fix that.
2023 January 5:
Setting up Proxmox on a notebook
Read...I have been experimenting with KVM and LXD linux containers, but that requires some bootstraping that I consider tedious. For some time I have been hearing about Proxmox, which is a linux distro based on Debian with focus on virtualization. I have installed it on a spare notebook here at home, so to experiment with linux distributions, kubernetes and creating lab environments whenever needed. Here are some tips I collected and applied to my setup.
2022 October 4:
Ten to Zen - book notes
Read...We don't give our own minds the same level of attention that we give to our body and even other people. Many of us go through life without realizing we automate behaviors and create beliefs based on our past experiences - no one teached us how to spend time with our own minds and inspect and question our thought patterns. This book written by Owen O'Kane gives awareness on that and proposes a methodology to question, inspect and learn from our own thought patterns, behaviors and beliefs - or, like we say on software development, to 'debug' and 'profile' ourselves. If that sounds interesting to you, keep reading.
2022 September 22:
latency numbers cheatsheet
Read...Here is a reminder of some latency numbers we developers must have in mind when drafting our solutions/algorithms.
2022 September 16:
sudoedit: fixing error 'editing files in a writable directory is not permitted'
Read...sudoedit is useful when you need to edit a file like if you were root, but you want to keep your editor configuration and plugins (e.g. vim, neovim). Here is how to fix this error.
2022 September 15:
Delete all videos from YouTube's Watch Later playlist (watched AND unwatched)
Read...I use YouTube a lot for learning and content creation. The Watch Later playlist has a 5k videos limit, but if you are an avid user you can fill that in less than a year. I know there is a YouTube API, but I didn't want to take time with that. So, searching a little bit online I discovered how to solve that using your browser's javascript console. Here are the instructions on how to do that.
2022 September 12:
Notes on Dependency Inversion (the 'D' on 'SOLID')
Read...Dependency Inversion can be used to decrease coupling between classes. Here are some notes on a video I recently saw on YouTube to reinforce that.
2022 September 9:
Thunderbolt for eGPUs on Linux
Read...I have been curious on using external GPUs (eGPUs on Linux) on notebooks with thunderbolt ports. That would allow to buy a notebook for the portability but also use it for video creation/processing and gaming. Here is what I learned from a recent YouTube video about it.
2022 September 5:
Data Structures - Arrays
Read...Arrays are one of the most fundamental data structures to be used on algorithms. Here are some notes regarding arrays and its' python implementation (lists)
2022 September 5:
Power management on linux (PopOS!) with upower and TLP
Read...Battery (power) management on linux is a little tricky. Here are some notes regarding popular tools used to inspect it.
2022 September 1:
Big-O Notation summary
Read...A quick reference on Big-O notation
2022 September 1:
Notes on monorepos
Read...Monorepos have some benefits, which comes with some trade-offs. Here are some thoughts about it.
2022 August 29:
Notes on code cohesion/coupling
Read...Some notes on code cohesion and coupling to write better code
2022 August 27:
Installing PopOS! with functional btrfs support and timeshift
Read...When installing PopOS and choosing btrfs as the filesystem, it does not install correctly so to support timeshift. After digging, I found a video on YouTube explaining it like I was 5, so I am posting here to my future self.
2022 August 27:
Versioning on APIs
Read...Here are my insights into why versioning is important and how to implement it.
2022 August 25:
Notes on monadic error handling - an alternative to exceptions
Read...Here are some notes on a video from Arjan on Youtube where he presents monadic error handling as a better alternative for exceptions that you could adopt on your python solutions.
2022 August 11:
A simple system metrics monitoring tool for linux
Read...In this post I present sysstat, a versatile CLI monitoring tool that you can leverage to inspect real time and historic metrics on a linux system regarding the usage of cpu, memory, swap and others.
2022 July 21:
Grokking Algorithms - greedy/approximation algorithms
Read... 2022 July 21:
Notes on '3 ideas from functional programming to improve coding'
Read... 2022 July 21:
Notes on zettelkasten
Read... 2022 July 10:
Alacritty terminal type error
Read...How to fix alacritty terminal type error
2022 July 6:
Git commits are snapshots
Read... 2022 July 6:
Merkle Trees
Read...An algorithm behind distributed systems
2022 July 5:
Async on python
Read...Notes on python async implementation
2022 July 5:
Python concurrency options
Read...Describes possible concurrency options that can be used on python programs
2022 May 30:
Grokking Algorithms - Dijkstra algorithm
Read... 2022 May 30:
Grokking Algorithms - Dijkstra algorithm
Read... 2022 May 17:
What Software Architecture Should Look Like • Dave Farley • GOTO 2022
Read... 2022 May 13:
Grokking Algorithms - Breadth-first Search
Read... 2022 May 11:
Grokking Algorithms - Breadth First Search
Read... 2022 May 9:
Grokking Algorithms - Hash Tables
Read... 2022 May 6:
Grokking Algorithms - Hash Functions
Read... 2022 May 5:
Notes on poetry
Read... 2022 May 4:
Grokking Algorithms - Hash Tables
Read... 2022 May 3:
Grokking Algorithms - Hash Tables
Read... 2022 May 2:
Grokking Algorithms - Quicksort
Read... 2022 April 27:
Grokking algorithms - QuickSort
Read... 2022 April 26:
Grokking Algorithms - Divide and Conquer
Read... 2022 April 26:
Grokking Algorithms - Divide-And-Conquer
Read... 2022 April 25:
Grokking Algorithms - Stacks
Read... 2022 April 25:
Grokking Algorithms - Stacks tradeoffs
Read... 2022 April 22:
Grokking Algorithms - Recursion
Read... 2022 April 21:
Grokking Algorithms - Recursion
Read... 2022 April 20:
Grokking Algorithms - Selection Sort
Read... 2022 April 19:
Grokking Algorithms - Selection Sort
Read... 2022 April 16:
Grokking Algorithms - Linked Lists
Read... 2022 April 13:
Grokking Algorithms - Arrays and Linked Lists
Read... 2022 April 11:
Grokking Algorithms - Big-o notation
Read... 2022 April 7:
Grokking Algorithms - Big O Notation
Read... 2022 April 5:
Grokking Algorithms - Binary Search
Read... 2022 March 30:
Grokking Algorithms - Binary Search, Logarithms
Read... 2022 March 22:
Data Structures Overview
Read... 2022 February 7:
Raspberry Pi tips
Read... 2021 December 21:
Notes on ArgoCD
Read... 2021 November 25:
Local docker containers communication even under a VPN
Read... 2021 November 19:
Instructions to setup an sftp server on Ubuntu
Read... 2021 October 15:
Mermaid for text and versionable diagrams
Read... 2021 September 27:
Using poetry for dependencies on python projects
Read... 2021 September 17:
git-secret cookbook
Read... 2021 August 30:
Podman on Arch (Manjaro) Linux
Read... 2021 July 28:
Install golang on raspberry
Read... 2021 July 23:
Fix to docker-compose credentials error
Read... 2021 July 22:
LXD - lighter alternative to KVM
Read... 2021 July 21:
LXD containers notes
Read... 2021 May 25:
How to code mappings inside lua functions on neovim
Read... 2021 May 17:
Nitrux Linux Distro
Read... 2021 May 14:
Migrating from init.vim to init.lua
Read... 2021 May 6:
Kubernetes Control Plane
Read... 2021 April 20:
Terraform on Arch Linux
Read... 2021 April 16:
Python exception best practices
Read... 2021 April 14:
Diagrams with C4 model
Read... 2021 April 10:
Open source strategy for personal initiatives
Read... 2021 March 31:
Tipos de testes
Read... 2021 March 22:
Python basics
Read... 2021 March 22:
X11 on Wayland (xwayland)
Read... 2021 January 14:
Vim setup for note taking
Read... 2021 January 6:
USB boot on raspberry
Read... 2020 December 30:
Raspberry pi OS display manager/session configuration
Read... 2020 November 30:
OpenDNS configuration
Read... 2020 November 12:
Django - Managers and QuerySets
Read... 2020 October 27:
Install rust on a Raspberry
Read... 2020 September 24:
PostgreSQL tips
Read... 2020 September 9:
Anotations on data intensive applications
Read... 2020 August 28:
Celery learnings
Read... 2020 August 5:
Interfaces in python
Read... 2020 August 4:
Using time command to track peak memory consumption
Read... 2020 August 3:
Language Server Protocol on Vim
Read... 2020 August 1:
Set f2fs on ubuntu
Read... 2020 July 14:
Developing vim scripts
Read... 2020 July 10:
Performance tips for python pandas
Read... 2020 July 8:
Changing screen resolution manually through xrandr and on kvm virt-manager
Read... 2020 July 8:
The viminfo file
Read... 2020 July 1:
StringIO in python
Read... 2020 June 25:
Event driven architecture / asynchronous microservices
Read... 2020 June 25:
Testing sed substitution with regular expressions
Read... 2020 May 4:
CURL Cheatsheet
Read... 2020 March 12:
Python - how to make requests to URLs with self-signed certificates
Read... 2020 March 11:
Docker daemon configuration and some troubleshooting
Read... 2020 February 9:
Create an encrypted file vault on Linux
Read... 2020 January 22:
kubernetes components
Read... 2020 January 12:
Gnome Tips
Read... 2019 June 4:
Package project to python's PyPI
Read... 2019 June 3:
SQLAlchemy Tips
Read... 2019 March 30:
Add systemrescuecd ISO to Arch Linux boot
Read... 2019 January 8:
dmenu as UI for shell scripts on i3
Read... 2018 December 13:
A borg for encrypted backups
Read... 2018 November 27:
NetworkManager tips
Read... 2018 October 17:
GNUPG cheatsheet
Read... 2018 October 3:
htop cheatsheet
Read... 2018 August 20:
Arch Linux Tips
Read... 2018 August 6:
Copy file system exactly as it is
Read... 2018 August 6:
Create datetimes on a pythonic way
Read... 2018 August 6:
Generate a Class Diagram from a python project
Read... 2018 August 6:
Git - remove a branch remotely
Read... 2018 August 6:
Git - Revert various commits done by mistake
Read... 2018 August 6:
How to convert a string with timezone (UTC) information in python (3.5+ probably) to a python UTC datetime
Read... 2018 August 6:
Makefile example for a flask app supporting environment variables
Read... 2018 August 6:
Mocking general rule
Read... 2018 August 6:
SQLAlchemy one-to-one relationship
Read... 2018 August 4:
stress-ng and ioping for benchmarking a machine
Read... 2018 July 11:
Creating and applying a patch
Read... 2018 April 20:
More Git Tips
Read... 2018 March 11:
Termux (Android) Tips
Read... 2018 January 21:
Using qemu to test boot from usb stick
Read... 2018 January 11:
InfluxDB CLI Cheatsheet
Read... 2018 January 8:
KVM on arch linux
Read... 2017 November 13:
Sqlite Tips
Read... 2017 October 15:
Creating self-signed TLS/SSL certificates
Read... 2017 October 1:
(Monospaced) programming fonts
Read... 2017 September 10:
Using cloud-init and cloud images to build custom distribution images
Read... 2017 August 19:
Application launchers on linux (gnome) - AKA .desktop files
Read... 2017 August 17:
PostgreSQL CLI tools, psql reference and SQL dialect statements
Read... 2017 August 13:
Time-series database to the rescue
Read... 2017 August 8:
Multiple ssh keys on github/bitbucket
Read... 2017 August 8:
Touchpad cursor randomly jumping on screen
Read... 2017 July 26:
youtube-dl cheatsheet
Read... 2017 July 14:
Auditing linux for security with auditd
Read... 2017 July 6:
Render Markdown files on Linux CLI
Read... 2017 June 22:
Replicate docker container logs to systemd journald
Read... 2017 April 16:
Enhancing git configuration
Read... 2017 March 18:
Need to recursively find files in python?
Read... 2017 March 18:
Python Concurrency with concurrent.futures 101
Read... 2017 March 18:
Python wheels howto (building and using)
Read... 2017 January 3:
Converting mysql tables to UTF-8
Read... 2017 January 3:
Kibana tips and tricks
Read... 2017 January 3:
Python, unicode, strings and zip files
Read... 2016 July 5:
Python one-liners cheatsheet
Read... 2016 June 26:
Celery and RabbitMQ Tips
Read... 2016 June 26:
More ansible Tips
Read... 2015 January 4:
How to manually add applications to 'applications' menu
Read... 2014 November 11:
How to interact with Django models outside of Django
Read... 2014 November 4:
Split a file into pieces and reorder it
Read... 2014 October 5:
How to discover if your ports are being blocked by your ISP
Read... 2014 August 24:
Run a group of commands as another user on a bash shell script
Read... 2014 July 10:
python lambdas (simply explained)
Read... 2014 February 19:
Git Tags e Branches - practical guide
Read... 2014 February 7:
How you can instantly improve your productivity and focus using agile results for extreme productivity
Read... 2013 November 29:
Creating SSH public and private keys, and using ssh-copy-id to copy it to the remote destination
Read... 2013 November 19:
CSRF protection
Read... 2013 November 13:
How to list all mx appointments from a specific domain
Read... 2013 October 15:
WGET command template
Read... 2013 September 6:
Bookmarklets - Tutorials
Read... 2012 November 13:
Python lambdas
Read... 2012 August 27:
strace - linux kernel tool to make error tracing on native binaries or python, ruby, php scripts
Read... 2012 June 5:
Git - Branches and Merge
Read...