The Python language has a feature called Generator Expressions which were introduced with PEP 289. You can think of them as a better way of doing certain operations involving lists. This post is more interested in the memory benefits the feature provides. We will first introduce the memory_profiler tool which can be used to measure the memory usage of a python program. We will then compare two different pieces of code (one with and the other without generator expressions) which perform the same operation, explaining why one is more superior than the other. Finally, we will run a few experiments to demonstrate and prove our assertion.

When designing websites using Bootstrap 4, I found it challenging to figure out which widths corresponded to which breakpoint. This post describes the HTML layout I came up with to display a small banner (during development) to help me visualize the different breakpoints.

The time displayed by my OS is different between Ubuntu and Windows 10. Opening the settings screen on Windows on each bootup, turning the time sync off/on was getting tiring. Here is how I solved the problem in a more permanent manner.

For a year, I subscribed to IRCCloud. It’s a good service that let’s me stay connected to different chatrooms. In the year that I’ve been a customer, it has served me well. So, why change? It costs USD $50/year. Recently, it has come to my attention that you can rent servers on vultr for just USD$2.5/month.

Granted, it’s a really low-end server, but for the needs of a single user it might just fit my needs. To my pleasant surprise, it works!

This post details the steps I took to configure a Network Accessable Storage (NAS) using the Samba protocol on a Raspberry Pi 3 running the Raspbian Jessie Lite distribution. This was done using the openmediavault (OMV) project.

For redundancy purposes, a USB memory stick was configured as a backup location for the shared folder.