That Blog

Random January Updates

Hello people on the internet. I'm here to update my blog with some random, unorganized updates, mostly about what interesting projects I'm doing right now and what else is going on in my life. Things I've been meaning to do and things I am doing.

Life Updates

Well, it's a new year, it's 2024 now. I've not made any concrete resolutions, just because I can't lie to myself... I know I'll just give up on them eventually. Besides, I've never been one for waiting until a new year begins to start something anyway. If you really wanted to achieve something bad enough, you'd start working at it right now. That's always been what I've thought. So I'm not saying I don't make resolutions or goals, I just normally don't make new years resolutions or goals.
So, what are some of my goals and plans then?
Well, I'll tell you one thing I'd like to start doing more of is getting out of my apartment. I spent a good portion of last year alone, in my living room, in my recliner, doing nothing, not talking to anybody, and that sucks. It gets old fast... and I believe wholeheartedly in the old saying that idol hands are the devil's plaything. I've lived that. Too much free time only leads to temptation... well in my case.
So, yes. I'd like to try and get out and do things more this year. I've been praying for those types of opportunities, because I have no clue what to go and do. It makes it easier when you have people to go do stuff with, so I've been praying about that too.
What else? Well I'd like to buy a house this year. I'd like to buy a house tomorrow, to be honest. But there are none available that are either in my price range or that meet the minimum criteria that I'd like in a house. I have a realtor out there watching for me, though.

Tech Projects

Well right now, I'm actively working on a couple of projects with many more ideas kicking around.

Expand Storage Capacity

I just picked up a couple of 14TB helium drives, which I wanted to use to expand the storage capacity of my NAS. I have this 4-bay NAS I bought used on eBay a while ago, and it came filled with four 6TB drives. Well I about filled that up, so I got these two.
I'm replacing drives 3 and 4. I have the drives in my NAS in SHR1 configuration, which can survive one drive failing. If you are using SHR you have to replace two drives to expand the storage capacity. I'm working on that now and my NAS is repairing my storage pool as I write this to factor in the drive that I added. I have to add these one at a time, because, as I mentioned previously, one drive failure. I couldn't replace two at once or I'd lose data.

Archiving Radio

Well once I get my storage all sorted out, I'll be continuing with my archiving of radio. Right now I'm actively archiving three things. Radio Comercials, the Rush Limbaugh Show, and the Reds radio broadcasts from 700WLW. Eventually I'd like to archive all the Bengals broadcasts too, but I'm not there yet.
I really want to set up a workstation that does nothing but record and archive radio shows going forward. I need to get this set up before the next baseball season starts so I can archive the season as it happens, instead of going back through as I'm doing now.
That leads us nicely into projects I want to start doing.

Project Ideas I Have

Radio Archiver

Like I was saying, I want to build a way that radio shows I want are archived. Most all radio is cast over the internet these days, but most of it is done through iHeart. They don't make it easy to automate recording their stream, or even just listening to it outside of the app/website. Or at least I don't think they do.
So I thought instead I would pick up the station with an actual radio, and have it plugged into a PC via the line-in jack. Then I could write a program to get each day's baseball gametime from the MLB api, and set the script to start capturing from the line-in jack then. I'd set a max time limit of like four hours or something, surely there won't be any games running longer than that especially with the ridiculous new pitch clock we have now.

Site Updates

I'd like to make some changes to my website. One change I want to make is the dynamic homepage sections. Right now I have a music player, which lets people listen to all my favorite songs. I have a "What's Going On" section, where I used to write updates about my life kind of like a blog except not really. Then I have a "What am I working on" section where my most recent music projects are automatically listed. I want to change that what's up section to pull the latest post from an RSS feed and display the first part of it, instead of what I'm doing now. Perhaps that'll even be done by the time you read this.
But I also want to update my music player. I want to move it to its own separate page, with only limited functionality of the player being used on the homepage. It's really becoming too big to put there. I want to also figure out a way to display lyrics on that page when I move it over, too.
I'm thinking about retiring the "code" page, since I hardly ever update it anymore. Meh. IDK what else I'll do on there.

Network Watchdog

I actually half implemented this, and got it kind of working. It's a script that leverages the PfSense API to pull data about what devices are on my network and then processes that information. If new mac addresses are detected, it sends me a push notification. That works fine, but it gets the mac addresses from the router's ARP cache. If a device hasn't talked on the network for a while, it's not in the arp cache anymore because it's removed after it expires. Then when it does start sending traffic again, and my script detects it, I get notified about a new device that isn't new. I need to update it so it can import and match a list of common mac addresses before notifying me. Not too hard, just need to do it.

Home Monitor

I first happened upon this idea when I was away from my apartment during the 2022 holiday season visiting family. That year we had a real bad ice/snowstorm and it was pretty destructive. I got a text from the Uptime Robot monitor which I had set up to monitor my network. It said it was down.
But I got to thinking, because that didn't really tell me what I wanted to know. Was the network down, or was the power out? I couldn't tell. If the power went out and the internet was still up, I would receive a down notification because the router at home would have lost power. If the internet service went out and the power was still on, I would receive the same notification.
So, I decided I would build my own monitoring software, in python. First I would need to get a spare laptop to run it on, which I have. The reason for this is so that if the power goes out, I could still get the laptop to send a notification because it'd be running on battery power.
But how will it send it if my router shuts off? Well, I'd also need to procure a cell backup of sorts. Then the laptop could send me a notification via the cell towers probably over 3g or something inexpensive.
I also wanted to build in other monitoring things too. Not sure what, but once I did I'd build a web dashboard of sorts which I could run on a cloud server. I imagined that the laptop would, in addition to sending me push notifications, upload it's findings in json format to the cloud server. Whenever I went to access it, the dashboard would parse all the json for me and show it in a nice format.

Network Radio Player

Man. This is one I've had and been thinking about a long time. I want to write a network radio player in python. That is so complicated though. My first problem is how to stream to an IceCast server in python. Once I figure that out, I'll start working on the music logic. But my goodness. Complicated as anything. How can I write a program to pick songs in a somewhat categorized format? I really need to make a database of all my music, which would make things so much easier. Then I could just query for songs matching a specific genre. But the database schema... man. What would that look like? I've been serious about this project for a long while but every time I think about it I just give up. But maybe one of these days I'll get real into it.
I also want to have the stream interrupted every time there's a baseball game or NFL game being broadcast. Then I'd like the actual audio from 700WLW to come through the network station. I could hook up the radio to whatever computer broadcasts to my Icecast server and runs the station on, but there again, how do I stream audio from the mic to an IceCast server?
I'd also like a web GUI to be built for this... which will have to be done in flask... man. This is such a huge project.
Oh, and I should explain something. I know perfectly well that software to do exactly what I need already exists. I've used it. But I like the challenge and the satisfaction of having designed and built something myself rather than using a quick means to an end. Because that's not what this is. Half the fun, or really most of it, is building the thing.

The end

Well, I have a lot of things and ideas in my head I need to tackle. Promises to be a very interesting time, once I get around to making them happen. Thanks for reading!