Getting started with the ESP-IDF running under WSL2

ESP32 Development board ESP32 Development board

I’m really excited about this post, because it’s the first post slightly related to Embedded Systems, and that’s the topic I was expecting to write about when I started this blog. The second reason is because I love the ESP32, specially using the ESP IoT Development Framework. It’s been a while since I worked with an ESP32 using the IDF (2019 actually), and the framework changed a lot since, so after all this time, I decided to get myself a dev board and explore the IDF again.

When I started working with the ESP32, I followed the excellent Neil Kolban’s Book on ESP32, but I’ve heard it’s slightly outdated now, so your best bet is definitely the also excelent IDF Documentation from Espressif.

As I wrote before, I’ve been using mostly Windows 10 with WSL2 for my development work, so setting up the IDF under WSL2 might be a little different to the average process you follow if running under an actual Linux distribution. This guide is a quick guide on how to start working with an ESP32 using WSL2.

Read More

PowerShell for the (Unix) masses

Screenshot of how my PowerShell setup looks like Screenshot of how my PowerShell setup looks like

Last time I wrote about my development setup on Windows 10, I suggested using the Windows Subsystem for Linux (WSL), and I still think this is the best (or most confortable) approach for most Unix people. However, you might find yourself in a situation where you can’t really use WSL, such as needing to compile Windows native binaries or your company-issued laptop just won’t allow it.

I actually am in one of those situations, so at first I tried a Cygwin setup, and it did work, but not painlessly (it took me some work to get to a place where I was confortable) and it was slow and buggy at times.

After much pain and unwillingness to dedicate more time to Cygwin, I said “screw it” and went the Windows-way (not without some initial resistance of course) and found out that you can get a pretty “Riced Unix” feel with PowerShell easily, and that PowerShell is actually good. So here’s a writeup on how I got it working the way I like.

Read More

In defense of the analog

A paper planner and a brass pen

Photo by NORTHFOLK on Unsplash.

I’ve never been known as the most productive person in the world, quite the opposite. I’m a compulsive procrastinator, always have been, and it’s something I remember struggling with since high school. There was a point in my life when procrastination became a huge problem, and saw myself sacrificing time doing what I like (hell, even sacrificing basic human needs, like sleeping) and said to myself: “Enough, I’m an adult now, I need to take control of my productive life”.

As the stereotypical techie I am, I resorted to the obvious (and worst) place to start my personal productivity journey: Reddit (I know, I know) and this is where I went deep into the personal productivity rabbit hole. I tried to organize my college work using all the methodologies recommended by other Internet nerds: GTD, Pomodoro, Eat that frog, you name it.

And, again, as the computer geek I am, I found myself wasting hours trying every digital organizational tool I could find, with no success (Of course! That was time I was supposed to be doing actual work!). I tried Wunderlist, Microsoft ToDo, Evernote, Todoist; if there was a productivity app out there that was free, I have probably tried it (And no, I’m not taking recommendations).

Trying new apps became my new procrastination method of choice, and it didn’t help one bit. After a lot of trial and error, I settled for the tools I overlooked the most: The good ol’ pen and paper.

Read More

Quick, easy and modern CLI tools with Ruby

2020 was a different year for obvious reasons, and for the first time ever, I saw myself writing a lot of Ruby (because of work) and choosing Ruby over Python for quick scripts. This is something I never thought was going to happen (I really love Python).

So what’s the reason for the change? It’s simple: You can make really cool and modern CLI applications with Ruby really easy, and even better, without needing additional libraries.

Here’s a quick tutorial on how to easily create CLI tools and scripts using only Ruby.

Read More

Development Setup on Windows 10

Screenshot of how my Windows 10 setup looks like Screenshot of how my Windows 10 setup looks like

Before I start, let me get something straight: No, I haven’t lost my mind.

With that cleared out, let me give a little background: I’ve been working for years on Unix systems, first on Ubuntu (and a bunch of different distros) and recently on a Mac. I never really liked the development ecosystem for Windows. That haven’t changed much, my work laptop still is a MacBook Pro, however, I’ve been gaming quite more often now during quarantine, so having to change between my “work” OS (Ubuntu) and my gaming OS was starting to get a little bit tiring, so I was wondering if I could get Windows 10 set the way I like to work on my personal projects.

I found this great blog post after Googling “Developer setup for Windows 10”, and it really helped me get where I can work comfortably. Here’s a writeup on what I did, so maybe it might be useful for someone trying to move from a Mac (or Linux) to Windows.

Read More