Unfortunately, during the last few weeks, I did not find a lot of time to update the blog. My backlog of interesting posts is increasingly growing, but I did not find the time to write them down. I also spend a ridiculous amount of time to browse through potential WordPress themes to find a suitable theme for a blog.
Most themes provide an insane overload of visuals – which does not come in handy when dealing with code snippets, screenshots and so on.
I also did not want to customize the theme as I did for our podcast site, where I had to write several hundred lines of CSS code to get the theme properly working with the content.
Eventually, I found a theme that provides a suitable set of features without a graphical overload with a clean layout, which is called Melos Minimal which is worth a try.
Recently, I was pointed to exa by this tweet from Mathias.
The installation is pretty easy. Unless you are using Ubuntu (as WSL) as there is no package available. But then again, compiling it by yourself is pretty straightforward as well.
1. Download and install Rust for your platform.
2. Install libgit2 and cmake.
3. To download the latest version, run: git clone https://github.com/ogham/exa.git
4. Run make install in the new directory to compile and install exa into /usr/local/bin.
As you might know, I am using Ansible to install all of my WSL instances. Eventually, things did turn out not so easy. However, two evenings later, I finished an Ansible role doing this fully automated.
Eventually, you have to set the variables for exa_dir and rust_dir to make this role working. That way, you not only get a great tool, but you also get it fully automated into your Ubuntu WSL.
If you are not happy enough just using WSL from Visual Studio Code, you can use it as an integrated shell as well.
Simply open a new Terminal Window in Visual Studio Code, add a new one and select Select Default Shell.
Now chose your WSL as default one.
As I have installed agnoster themedoh-my-zsh using Powerline fonts, the terminal was messed up at the beginning because I was using Cascadia Code as monotyped font. While Cascadia is actually not yet fully Powerline enabled, I am currently using Delugia Nerd Font as a substitute.
All together, this is a wired “hackatory”. However, it’s quite fun, and personally, I like the result:
In case you did not know: You can use WSL (Windows Subsystem for Linux) as your shell in Visual Studio Code. This comes in very handy if you did mod the hell out of your WSL, as I did.
The Visual Studio Code Remote – WSL extension lets you use the Windows Subsystem for Linux (WSL) as your full-time development environment right from VS Code. You can develop in a Linux-based environment, use Linux-specific toolchains and utilities, and run and debug your Linux-based applications all from the comfort of Windows.
After we talked a lot about it in our podcast, I finally started with my “Automation of the Home Automation” project.
What I’ve done so far: Set up a Raspi 4 with Ubuntu Server, fully provisioned using Ansible. Also, it seems, the Kernel bug causing USB devices to fail on the 4 GB version of the Raspi 4 seams to be removed with the most recent binaries available.
Deployed MQTT, InfluxDB, Telegraf and Node-Red on Docker containers using Ansible.
Wrote my very first Node-Red flow to get data into the broker and the database:
The data is read from my EZcontrol XS1, which became surprisingly easy using Node-Red.
The EZcontrol XS1 integration for Home Assistant allows you to observe and control devices configured on the XS1 Gateway. Please have a look at the official docs for using this gateway.
While I was not sure about the available resources on the Raspberry, it seems there is plenty of space (RAM, CPU) left on the device.
On the other side, using Ansible I will be able to deploy services to other (more) nodes once necessary.
Also, I realized some issues with Ansible on Ubuntu running on the Raspi and Python. Therefore, I made sure Python 2.7 is entirely uninstalled. Instead, I made sure my inventory file is set to use Python 3 on the target system.
There have been some other issues, I came along, especially because for various bits OI was looking for there are no ARM aarch64 releases available. Also, the official Docker images I used do not support Apline on ARM v8 / aarch64 as Alpine seems not to support this target architecture, yet.