Projects

Weekly Wrap Up (11.17.2024 to 11.24.2024)

I started posting these, a while back but they kind of fell by the wayside. I guess some of it just got covered in regular posting, and some of it ends up on the other blog, if I bother. Probably, I decided I didn’t really care. But maybe I should care. So here we are.

I have actually done a few of my “wishlist todo” projects this week. I have recently been hardcore digging through my too many bookmarks problem in Firefox. This has been an ongoing effort for a few months now, but I started on a phase two of this project this week. Specifically, I set up a separate bookmarking app, for some of these bookmarks. After some looking at options, I very lightly started using Raindrop.io, but I also remembered that I really want to not rely on other services that may randomly raise prices, limit features, or just plain close.

So instead, I set up LinkAce, in my docker set up. It was, surprisingly simple. Some of my attempts at docker set ups fizzle out. The biggest thing I have to watch for in the docker-compose files is for port use. Everything thinks its alone and wants to exist at port 80 or 8080. I have them numbered up now, 8080, 8081, 8082, etc.

The long term sort of idea.

  • Link Ace will be a sort of, well sorted repository of things that could be useful when I want to go look for them.
  • Anything that is a text or article gets clipped and dumped to my text archive.
  • It needs clean up, but I have been working on a series of markdown files that work as a sort of wiki for coding information.
  • Various bookmarked todos get put on a proper list. “To Read”, “To Watch” “To Play” etc.
  • Anything I may want to buy gets put in a big spreadsheet with pricing etc. I have actually already done this, since these bookmarks were already sorted together.
  • I have a zillion little projects bookmarked, these will all go in a list as well, or possibly (Probably) get sorted put into a Joplin notebook for each project. Like, sometimes I research a bit of a coding idea, them bookmark several different code snipped I may want to use.
  • Things I actually regularly use, will just stay in Firefox. The idea is to get Firefox itself down to maybe, 50 actual bookmarks. Not, 10,000. I am not sure I am exaggerating with that 10,000.

Anyway, projects this week, I got side tracked. I hung up an antenna on the side of the house today. I may put it on a proper mast later, but for now, I just stuck it on the leftover DirecTV mast that hangs off the back of the deck. I have not tested it yet. I doubt I get a ton of channels, but I should be able to get WAND and WBUI, which are both in town.

Everything else is like 40 miles away. I doubt I can get them with the antenna where it is. I literally have done this sort of thing for a living as my job for almost 20 years now. I have a “pretty good idea” of how well this placement will work. For now, it will work for what I want, which is the occasional need for local news, The Macy’s Thanksgiving Parade, and maybe The Super Bowl.

I am not even going to be here for the Macy’s Parade, so that is… Kind of a bust.

Anyway, in the past, I could get a few channels just laying the antenna out in the deck and hooking it up. If I were super cool I could use some of the spiffy work tools I have to peak the signal etc. But I am not cool like that, also, the position won’t let me actually swing the antenna all the way around to point AT 90% of the towers in the area.

Another project I made a lot of headway on, because I can do it easily while playing Throne and Liberty. Years ago I purchased a bundle of Piano courses from a teaching website. I have been, for many years, meaning to go through and capture them with OBS for offline use, and just, archival in case that teaching website ever goes offline. YT-DL did not work annoyingly. Even using browser cookies. So a manual OBS recording, then clipping them apart in Clip Champ is the way.

In other less exciting news, I got new shoes. My old ones had a big hole in one side and I threw them out. I went to three whole stores, then bought some boring Sketchers, because I almost always buy Sketchers. Then today, I went to put on my old old old shoes to go work outside and discovered my “old old old work shoes”, are the same as my new shoes. Except the work shoes are all gross and filthy.

This wasn’t intentional.

What I Listened to This Week

The Shop

So lately I have been a bit busy in the background helping my wife and daughter with a big project. They are opening up a vintage clothing store. They already sell online, but they are now working on opening a physical store as well. Technically, my daughter is opening up a store, and my wife is going to be running her online stuff out of the back. They have talked off and on about renting or buying a space and found a location a few months ago that fits their needs and budget.

They have done a lot more of the work than I have, mostly because they have more available time, but also because they seem to want to do a lot of it so they know its done the way they want. I have been doing a lot of little side projects though related to it and helping out with moving the totes of stuff they have to sell in store or online to the shop from storage.

One of the first big projects was stripping and refinishing the old wood flooring. The previous tenant was an HVAC shop and the floors were kind of gross and a bit rough. We rented an upright sander from Menards and I got to have the fun of running that for a few hours one afternoon. It was surprisingly easy to work actually. The hardest part was lifting it in and out of the van because its heavy as heck.

“Pro tip”, the handle, at least on the one we got, comes right off of you remove the locking bolt. Its much easier to transport in two pieces.

They spent the next few days doing additional detail sanding and then putting several coats of polyurethane down on the sanded floor. Its not perfect but it looks a heck of a lot better than it did.

The next major step was painting the walls, another project I didn’t participate in, mostly due to my day job.

I have constructed a few things though and still have more to do.

One thing we looked into was hanger organizers. Amazon had a few options, but we decided that we could just build a few. I bought up a bunch of PVC piping and constructed these stand up racks for spare hangers.

I filled the bottom half of each one with sand to give it some ballast so they don’t fall over.

Another simpler project was adding wheels to a lot of the furniture used in the backroom space so its all easier to move about as needed.

One thing my daughter really wanted were these dressing rooms, which were constructed out of some black iron pipe. They make “fancy” decorative pipes, but it was cheaper, and probably sturdier, to just buy some actual pipes. The main issue there was the coating on actual pipes is very gross and dirty and comes off easily, something you don’t want in a clothing store, so we sealed the popes before installing them.

Just for comparison, the first dressing room photo here, is the same corner where I am sanding in the above image.

Probably the most complex project was the store’s sign. We will probably upgrade eventually to something mounted on the building, but for now I have built this nice stand up sign. They originally were looking at A frame signs but the wind is a big problem with those falling over. Then we looked at some swinging signs and decided those would work much better because the sign itself will swing instead of folding up and falling over.

We also decided the pre built models online were kind of cheap, and I have the tools and ability to build things, so we just bought the wood to build a sign. Its also much heavier this was to make it more resistant to the wind as well.


I am not sure I have ever really talked about their businesses yet. It is “two businesses”. My daughter runs the Vintage clothing stuff on Lady Lettie Bug which means items of a particular style and type. My wife has R&T Thrift, which is a bit more general resale.

Most of the items come from estate sales. They will often go early to find things they want for sure, this is more often where the nicer higher value items come from. They also have made friends with several of the people who run these sales and will do a buy out of the leftover clothing after the sales. This helps them find more “hidden gem” sort of items for cheap, and helps the estate sellers clean out the homes.

Not everything from the buyouts is useful though, and a lot of the work is sorting through it all. The amounts can range anywhere from a single closet to an entire minivan full of clothes.

It gets sorted and separated into several categories.

  • Some of it is just gross or ruined and goes into the garbage.
  • Some of it is just damaged but could be cut up into rags
  • Some of it is just slightly damaged or discolored but otherwise usable, most of these items are either donated or put out at the curb for free.
  • Some of it is decent but doesn’t meet a value threshold for online, these often go into totes for a later garage sale. Pretty much everything above this line also gets laundered and cleaned unless it still has tags and is clean.
  • Some items are nice and have been found to have sold online, so they get put aside to be listed.
  • If it is a certain style or type, anything from the last category goes to my daughter as vintage instead of thrift.

One big benefit of the shop space is that it has hookups for a washer and dryer, though we don’t have a set there yet. We do a LOT of laundry and have gone through several washers over the last few years. This isn’t helped though by the washer space at the house being small so we basically can only really use smaller, cheaper, washers.


Anyway, its been a fun new adventure. There are social accounts and weblinks for everything over on the landing page for the business if you are interested in vintage clothing items.

Project – Record Shelf

Since I’ve actually taken an interest in vinyl records, One thing I really wanted to do was build a simple little record shelf. This would serve two purposes basically. One, it looks cool. Two, it gives me another way to decorate the basement a bit. The concrete block walls are a pain to work with, especially the outside wall where all my music stuff is. The temperature changes mean nothing sticks to it long term. In other areas I’ve hung frames from the rafters using small chains. For this space, I’ve got a nice shelf I can use and swap out what’s on display as I get more records.

It wasn’t an overly complicated project, but it took longer than planned since my wife had the garage full of garage sale stuff and I couldn’t really reach any tools. Also it’s been blazing hot out, and I don’t care to work outside in that much heat. On the problem of the heat, probably sometime int he fall, I’ll drag the shelf and the lower shelving out and stain and seal it. Neither plays very well with the heat either.

The shelf itself is a handful of 1×4 pine boards. It’s a bit more complicated than it might seem at first. For starters, I like the look of inset joints over just using metal L braces, so I went and inset and glued the shelves inside the sides. This was a bit tricky because I don’t actually own any bar clamps. I also added the little back catch pieces under each shelf, so the albums wouldn’t be resting on the wall itself. This was slightly complicated because there is a power conduit running down this wall i had to work around. The shelves themselves are notched around the power conduit as well. I also only have so many clamps large enough to glue these, so it took like a week of “clue one piece then come back.”

Each shelf also has an angled groove cut along the length so the albums sit slightly down in the shelf and are more secure. The whole thing is screwed to the rafter above for support. In fact the whole thing is much sturdier than I thought it would be. My main worry is that the albums would tumble off, damaging the records, but now that it’s up, I actually am not worried about that at all. Everything is very stable.

Also, my original plan was to stick the CD holder I had been using back on the lower shelf, in front of the new shelf. I immediately hated this look. But I also realized that there was a small gap near the bottom, so I added one more smaller shelf to put (most of) the CDs on. I really liked this end result. Plus the board I used here was a different type of wood that was just around, and it’s a much sturdier type of wood than the pine, so I didn’t end up needing to add a center leg like I had worried I might need to do.

I suppose it’s also worth noting the equipment itself. The entire set up is pretty minimal. Everything is centered around this small mixer and amp combination.

I originally bought the mixer for use at my PC, I wanted to be able to play games on one machine, and watch a video on another machine, and merge the audio out one headset. That didn’t really work out to be as useful as I had hoped, but instead I get to use the mixer for my music instead. The amp I bought to go with some nice JBL speakers I had, that needed 2 wire connections to work, also connected to the PC originally. Except I never ever use anything but a headset on my PC, so it was a waste.

Connected to the Mixer are the input options. They can be played all at once, since it’s a mixer not a switch, but I’m not sure why you would want to. There is a Raspberry Pi hidden under the little shelf that connect to my music library and can be controlled remotely via a webpage. I have this kind of mediocre CD player that I’ll probably replace one day with something better, but still compact. Even a portable CD player would probably work better. There is also an Amazon Echo connected, but since Amazon jacked up their music service, I don’t use it as much. I also have an aux cord hanging off for connecting to a phone.

Lastly is my record player, which I bought at a garage sale. It works pretty well for my needs though. It’s an Audiotechnica AT-LP60, nothing fancy.

Lastly I have this recently acquired audio switcher. Right now I just have the one set of speakers, but at the very least, it will be easy to add a second set outside so I can listen to music while out on the deck or porch under the deck out back. The output selector will make this much easier to accomplish and it’s something I’d thought about getting at some point before, then I came across one at an estate sale.

Re-mulching and other Activities Outside the House

I have been slacking on my posts, though technically still doing better than I had been. It’s a combination of being busy and just being generally meh overall. One think keeping me busy was re-mulching the flower beds around the house. Not just throwing down new mulch though, I mean raking up the old and putting down new weed barrier. This meant going around the existing plants and the little metal stakes to hold the weed barrier down were a pain because there is a ton of super packed rock in the area that makes them hard to insert into the ground.

In the case of the tree out back, it also meant digging up the ground around the tree to add a new flower bed space completely. We added a lot of new plants to the area as well, though most in pots for ease of use.

Then my wife put all her decor out again.

We also started working on the basic garden set up for the year. In the past we’ve had issues with trying to garden at this house because there is a lot of wildlife that comes around that eat or dig up everything. Right now it’s in buckets, though I plan to put legs on these wooden boxes we have to put the buckets into. Which is part of what the pile of wood behind the garden plants at the bottom is for. We also may use the stairs as a tiered herb garden. It’s all wood that was salvaged from my parent’s deck which they recently had replaced.

Anyway, here are some photos of the completed set up.

Here is a random bonus of the backyard from when I was mowing recently.

Dead Memory Cards and Using Docker

More often that it feels like it should, something in technology breaks or fails. I find that this can be frustrating, but often ultimately good, especially for learning something new, and forcing myself to clean up something I’ve been meaning to clean up. I have a Raspberry Pi I’ve been using for a while for several things as a little web server. It’s been running probably for years, but something gave out on it. I’m not entirely sure it’s the SD card or the Pi itself honestly, because I’ve been having a bit of trouble trying to recover through both. It’s sort of pushed me to try a different approach a bit.

But first I needed a new SD card. I have quite a few, most are “in use”. I say “in use” because many are less in use and more, underused. This has resulted in doing a bit of rebuild on some other projects to make better use of my Micro SD cards. The starting point was a 8 GB card with just a basic Raspbian set up on it.

So, for starters, I found that the one I have in my recently set up music station Raspberry Pi is a whopping 128gb. Contrary to what one might thing, I don’t need a 128gb card in my music station, the music is stored on the NAS over the network. It also has some old residual projects on it that should really be cleaned out.

So stuck the 8GB card in that device and did the minor set up needed for the music station. Specifically, configure VLC for Remote Control over the network, then add the network share. Once I plugged it back into my little mixer and verified I could remote play music, I moved on.

This ended up being an unrelated side project though, because I had been planning on getting a large, speedy, Micro SD card to stick in my Retroid Pocket. So I stuck that 128GB card in, the Retroid and formatted it. This freed up a smaller, 32GB card.

I also have a 64GB that is basically not being used in my PiGrrl Project I decided to recover back for use. The project was fun, but the Retroid does the same thing 1000x better. So now it’s mostly just a display piece on a shelf. Literally an overpriced paperweight. I don’t want to lose the PiGrrl configuration though, because it’s been programmed up to work with the small display and IO Control Inputs. So I imaged that card off.

In the end though, I didn’t end up needing those Micro SD cards though, I opted for an alternative option to replace the Pi, with Docker on my secondary PC. I’ve been meaning to better learn Docker, though I still find it to be a weird and obtuse bit of software. There are a handful of things I care about restoring that I used the Pi for.

  • Youtube DL – There seem to be quite a few nice Web Interfaces for this that will work much better than my old custom system.
  • WordPress Blog Archives – I have exported data files from this but I would like to have it as a WordPress Instance again
  • FreshRSS – My RSS Reader. I already miss my daily news feeds.

YoutubeDL was simple, they provided a nice basic command sequence to get things working.

The others were a bit trickier. Because the old set up died unexpectedly, The data isn’t easily exported for import, which means digging out and recovering off of the raw database files. This isn’t the first time this has happened, but its a lot bigger pain, which isn’t helped by not being entirely confident in how to manipulate Docker.

I still have not gotten the WordPress archive working actually. I was getting “Connection Reset” errors and now I am getting “Cannot establish Database connection” issues. It may be for nothing after the troubles I have had dealing with recovering FreshRSS.

I have gotten FreshRSS fixed though. Getting it running in Docker was easy peasy. Getting my data back, was… considerably less so. It’s been plaguing me now when I try to fix it for a few weeks now, but I have a solution. It’s not the BEST solution, but it’s… a solution. So, the core thing I needed were the feeds themselves. Lesson learned I suppose, but I’m going to find a way to automate a regular dump of the feeds once everything is reloaded. I don’t need or care about favorited articles or the articles contents. These were stored in a MySQL database. MySQL, specifically seems to be what was corrupted and crashed out on the old Pi/Instance because I get a failed message on boot and i can’t get it to reinstall or load anymore.

Well, more, I am pretty sure the root cause is the SD card died, but it affected the DB files.

My struggle now, is recovering data from these raw files. I’ve actually done this before on a surver crash years ago, but this round has lead to many many hurdles. One, 90% of the results looking up how to do it are littered with unhelpful replies about using a proper SQL dump instead. If I could open MySQL, I sure as hell would so that. Another issue seems to be that the SQL server running on the Pi was woefully out of date, so there have been file compatibility problems.

There is also the issue that the data may just flat out BE CORRUPTED.

So I’ve spun up and tried to manually move the data to probably a dozen instances of MySQL and MariaDB of various versions, on Pis, in Docker, on WSL, in a Linux install. Nothing, and I mean NOTHING has worked.

I did get the raw data pulled out though.

So I’ve been brute forcing a fix. Opening the .ibd file in a text editor gives a really ugly chuck of funny characters. But, strewn throughout this, is a bunch of URLs for feeds and websites and well, mostly that. i did an open “Replace” in Notepad++ that stripped out a lot of the characters. Then I opened up Pycharm, I did a find and replace with blanks on a ton of other ugly characters. Then I write up this wuick and dirty Python Script:

# Control F in Notepad++, replace, extended mode "\x00"
# Replace "   " with " "
# replace "https:" with " https:"
# rename to fresh.txt

## Debug and skip asking each time
file = "fresh.txt"
## Open and read the Log File supploed
with open(file, encoding="UTF-8") as logfile:
    log = logfile.read()

datasplit = log.split(" ")
links = []

for each in datasplit:
    if "http" in each:
        links.append(each)

with open("output.txt", mode="w", encoding="UTF-8") as writefile:
    for i in links:
        writefile.write(i+"\n")

Which splits everything up into an array, and skims through the array for anything with “http” in it, to pull out anything that is a URL. This has left me with a text file that is full of duplicates and has regular URLs next to Feed URLS, though not in EVERY case because that would be too damn easy. I could probably add a bunch of conditionals to the script to sort out anything with the word “feed” “rss”, “atom” or “xml” and get a lot of the cruft removed, but Fresh RSS does not seem to have a way to bulk import a text list, so I still get to manually cut and paste each URL in and resort everything into categories.

It’s tedious, but it’s mindless, and it will get done.

Afterwards I will need to reset up my WordPress Autoposter script for those little news digests I’ve been sharing that no one cares about.

Slight update, I added some filtering ans sorting to the code:

# Control F in Notepad++, replace, extended mode "\x00"
# Replace "   " with " "
# replace "https:" with " https:"
# rename to fresh.txt


## Debug and skip asking each time
file = "fresh.txt"
## Open and read the Log File supploed
with open(file, encoding="UTF-8") as logfile:
    log = logfile.read()

datasplit = log.split(" ")
links = []

for each in datasplit:
    if "http" in each:
        if "feed" in each or "rss" in each or "default" in each or "atom" in each or "xml" in each:
            if each not in links:
                links.append(each[each.find("http"):])

links.sort()

with open("output.txt", mode="w", encoding="UTF-8") as writefile:
    for i in links:
        writefile.write(i+"\n")