Jan 29th, 2021 Update
I have the day off today and I decided to write a blog post. Hopefully these get written more frequently. I haven’t written a post in 9 months.
So what’s new with Andrew? Since my last post I haven’t done much. I’ve been working, watching TV shows, and playing video games.
Thor and I have moved our sever from Digital Ocean to Vultr. We moved it for a couple of reasons. The main reason was Vultr has servers in Chicago which is much closer to Fargo so the latency is much lower. A ping of 15ms at Vultr verses a ping of 45ms at DODigital Ocean . The pricing is the same at Vultr as Digital Ocean. In the months prior to the migration we slowly moved our services into docker containers to help with the migration and keep them more host agnostic. We debated what host OS to use for the new VPS, we tossed around Arch Linux, Debian, and Ubuntu. We finally settled on Arch Linux because we can make it minimal, has up to date packages, and we feel very familiar with Arch Linuxbtw, I use Arch .
The only downside of our migration to Vultr was the team account features. It’s not as feature complete and convenient as DO’s but we made it work, it just requires some trust between us.
A new project I’m looking at starting is to create a drip irrigation for my plants so I don’t have to remember to water my plants as often.
Career
At Deere John Deere , right after starting full time, Deere decided to do a massive reorganization. This didn’t really affect me, other than my supervisor changing. I’m still in the same keyboard slapping Software Design Engineer 1, If we want to be technical position as I was before. The opportunity did present itself for me to become a scrum master for the team. Since November, I’ve been learning the ways of the scrum master mostly by learning what not to do.
Something I learned
I want to talk about the interesting things I learn along the way. Each item could probably be it’s own blog post but let’s start with something simple by adding a section to my updates.
Systemd Networkd
Systemd networkd is another network manager. The benefit of networkd is that it it’s part of systemd so you don’t need another tool to configure your network interfaces and it’s relatively simple files for configuration. Also it supports CAN interfaces.
This was known to me for a while, however the cool thing I learned is that networkd has a built in DHCP server. I assumed that it would just start your classic dhcpd
server, but no it has one built it.
I learned this when debugging why the dhcp server wasn’t starting when I configured a product at work to be a DHCP server.
networkctl was showing that the interfaces was configured correctly, but I wasn’t receiving an IP address from the unit. So I was seriously stumped. After practicing my search-engine-fu, I arrived at this ubuntu post. Specifically the part on how to run networkd service in debug mode.
sudo systemctl stop systemd-resolved
SYSTEMD_LOG_LEVEL=debug /lib/systemd/systemd-resolved
This allowed me to find 2 lines in the log when the service starts that said something to this affectmy memory is very similar to a goldfish .
Error: could not find timezone data
eth0: failed to be configured
After seeing this helpful message. I added timezone data to the unit and the server started serving addresses. But we don’t have a requirement to have timezone data at the moment, so I just disabled the need for the timezone data with EmitTimezone=no
in the .network file. At the end of it all the dhcpd
service did not start.
Spell Checking Plain Text Files
I’m an engineer and I can’t spell to save my life. This site is written in plain text markdown files. That means there is no spell check like you get in the web browsers or office programs. I found 2 solutions to this.
I use VScode as my editor and there is spell check extension called Code Spell Checker and it works great.
The other option is to use the tool it uses in the backend aspell
. You can call aspell check file
and it will check file
for spelling errors. If you are using markdown files like I do then you can specify that the mode which helps with parsing of the file. aspell check --mode=markdown file.md
Maybe I’ll use aspell
to check my spelling in a my automation pipeline.