Kinn's Update - Nov 2024

Update on the projects.
Last updated: 11/30/2024
By: Kinn
Tags: [Software, Life]

Happy Thanksgiving!

Thank you for coming to my site on Thanksgiving weekend and giving this blog post a read. I'm thankful to all of you! Community is something I've found more and more of lately, to my friends at Berkeley including at the OCF, Berke1337, and faculty, to my friends online in the various communities I'm part of online. I would like to dedicate this post to you all for supporting me and encouraging me to do the things that I do. And for the love of God, to my computer science friends, find some free time. I'm spending some time at my parent's place right now and the best way to pass time is to write, so once again thank you to those who are reading.

Project Updates

OCF's Labmap2

labmap2 demo

The Labmap2 is coming together! Last week, I got to launch the first demo running off of real data and witnessed some penguins walking to and from the desktops. Right now, I have one more major feature to write into the project before working on deployment.

For those who don't know, the Labmap2 is a full rewrite of the OCF's original Labmap project, a website made to display the activity status of the desktops in the computer lab. When the OCF's rebuild began, many features of existing projects were wiped away, such as the end points of the previous Labmap, leaving the data displayed on the existing site inaccurate.

The main complaints which I'm working to address with the Labmap2 is first and foremost endpoint reliability and the flexibility of the display.

The former was addressed by seperating the data collecting mechanism from the rest of the program, this was done by modifying an existing project I was tackling which was getting Prometheus's Node Exporter running on the NixOS desktops. I made a script which filters through the logged-in users packages that data with the rest of the metrics Node Exporter is exposing. Prometheus collects this this data so that it can be used down the road. By hitting Prometheus (a data collection server), other folks can use the data for their projects.

The latter was addressed by creating the frontend in the game engine Godot. This... is unconventional but not without good reason. Not only is Godot a software that I learning the ins and outs of through my work on Robot Ladder, but it offers a great visual medium which gets that flexibility we need. Using a combination of tilemaps, sprites, and paths, I am able to animate the desktop status updating and the Waddles (penguins) walking around the lab. Hopefully, with enough documentation, someone with no knowledge of Godot or at least minimum knowledge will be able to boot up the project and modify the things they need.

Documentation is also super important, so I've made sure to thoroughly document each script and include information at every turn.

labmap2 diagram

If you can squint your eyes (or preferably open this in full screen), you will see that this diagram documents each step in the project. The stack is: Shell for producing data, Node Exporter and Prometheus for gathering data, Python for processing data, Rust for serving data, and Godot for displaying data. Hopefully that helps you understand a little bit more of the work I've been doing for the better part of the last two months.

If you're interested in helping with this project as there is plenty of work to be done, please message me on discord or send me a message via my contacts page.

The Home Network Project

Since I've started a part time job, I've got some means to invest in my homelab. My current Xfinity router was disappointing me in the ways I could configure it so I was looking at a new solution to this process. The conclusion I came to was building my own router, and I'm not just talking about a tiny Rasberry Pi but I'm talking a full on router for small offices.

Surprisingly, there were very few solutions that were built for my purposes. The criterea were essentially small office use, something to manage a couple desktops and a server. Unfortunately, Firewalla offered the best solutions but were out of my price range (my range was about $200). Moving up, we found enterprise solutions, big firewall devices sitting on server racks that I had neither the space or funds to purchase.

ODROID Assembled

Enter ODROID-H4. This is a mini-PC board which has the power and capacity to suit my needs. I chose it for its form factor, price, and power draw (which is tiny!) It's quiet and is out of the way, and putting it together from hardware to OS took about a weekend.

ODROID Disassembled

The part break down goes like this:

Total cost without shipping: $198.30

For context, the closest existing device that meets this price range was Firewalla's personal firewall device which has a whopping two ethernet interfaces while this one has five and endless customization.

To offer some explanation to the part choice, my main concerns were space which goes hand in hand with my next concern of price. By buying a smaller storage device, the 8GB eMMC, I was able to avoid purchasing and entirely new storage drive with cables and so on. Additionally, I was able to purchase a cheaper, smaller case for the device. Furthermore, the H4 model doesn't come with SATA ports to even connect the storage devices, so eMMC is the natural progression, but it's not perfect.

eMMC's wear out easily with excessive reads and writes, so something like logging, an essential feature for network devices, needs to be offloaded to another device. Using rsyslog, I was able to achieve this and ensure no local logging was happening, preserving storage space and device health.

My routing operating system of choice is OPNsense, and OpenBSD-based distribution which to me is like the swiss-knife of DIY routers. It handles logging, firewalls, network segmentation, DNS, you name it. It really does feel far more freeing compared to the Xfinity garbage router I was using before. It helps protect my network and I will continue hardening it until I am satisfied.

Next on the list is continuing work on my server, which is due for a refresh soon and a transition to Proxmox, something I am hesistating to do because the thought of migrating my services scares me. I'll handle this when I have more time, along with a refresh of this site, over the winter break at the end of the year.

Personal Updates

I've got to meet a lot of really interesting people lately. I talked with a director of one of the CLTC's labs, talked with a few recruiters, and some more people through an interview process I am currently going through. With every new connection, I feel like I am learning more and more about the industry I am dipping my toes into, the industry of Cybersecurity. As my time at Berkeley comes down to 1 year, making the transition from student life to working life cannot come sooner. I've said this before, but I am not an academic. I love the community at Berkeley but I also love learning on my own, not through a classroom but through hands on work and picking up skills as necessary.

I said this in a previous blog post but if you're a computer science major, please find some free time. I find the most joy talking to CS majors or other STEM majors but many of them don't have the free time to talk or work on projects for fun. Let's make an effort to touch some grass.

Next blog posts should come sooner. The Labmap2 launching will have a blog post for sure, and I'll be inquiring about a new project in the near future. How about Bluesky? I'll be getting on that soon enough. I've also purchased a new domain, so fun times ahead.

Thank you all for reading, see you again soon.