Top_of_the_Stack

Tots Posts

Banjo_Jam

2023-03-02 - Banjo - Playing

Okay! I just uploaded the first couple videos of me playing my banjo [I hope I don’t sound that bad]. I also was able to drag my sister into playing with me. Surprisingly she's the one who’s only been playing the mandolin for a couple months while I've been playing banjo for two years [unfair].

We learned three old time songs Cripple Creek, Kitchen Girl, and Sugar Hill. All things considered, I don’t think we sound half bad.

I think the main improvements I can make to my playing is maybe some work with a metronome because I seem to tend to rush or lag behind. I also am always working on trying to get a clearer ring from each note [always seems to be an issue for me]. But, again, I am not to unhappy with how I sound and am really impressed with how quickly my sister was able to pick up the mandolin.

Hope you enjoyed. Updates on the Banjo Build coming soon!

Gitea_Install

2023-02-27 - Web Development - Git Server

If you haven’t heard of Git it’s a pretty [at this point] universal versioning control system [basically it makes sure it keeps backups of everything when you accidentally break everything and want to reset it]. The short version of it is that you can use git locally, but a more common method is to push the repository [fancy way to say folder] to a remote server. Then, you can work on multiple systems [or save yourself when you accidentally delete the local copy] by using the remote server as a place to push and pull changes.

The most common website [at least I think it is] to host repositories is Github. Github is a great service that is probably a perfect solution for most people. But we aren’t most people. Aside from the benefit of learning a system like git from a server-side perspective, hosting our own instance allows for complete control of content, look, visibility of repos, and… well everything.

It’s actually fairly simple to set up a git server if you aren’t looking for a fancy GUI and are willing to work from the terminal. I have no fear of the terminal but I do think it would be easier to share my code with others by having a frontend that is easy to browse through. However, my frontend development skills need a bit of work [maybe you can tell from this website]. Luckily, there is a pretty OOTB [Out of the box] solution with Gitea .

Gitea is pretty simple to install, although it looks like it isn’t in the Debian repos so some extra steps had to be taken. The Gitea gitlab has some good documentation on getting it going. Run [if you are also using a debian system as your server] these commands to get Gitea running locally on your server.

sudo curl -sL -o /etc/apt/trusted.gpg.d/morph027-gitea.asc https://packaging.gitlab.io/gitea/gpg.key`

echo "deb https://packaging.gitlab.io/gitea gitea main" | sudo tee /etc/apt/sources.list.d/morph027-gitea.list`

sudo apt-get update && sudo apt-get install gitea morph027-keyring`

systemctl enable --now gitea

You can check that its working by going to http://localhost:3000. And that’s pretty much it [hey! that was easy] to get it running locally [we aren’t done. liar.]. Now we have to mess with our nginx server to set up a reverse proxy [that sounds complicated]. Luckily that’s also not to bad to do [oh]. All that needs to be done is to add a couple lines to the nginx.conf of your website. In my case I would like my Gitea instance to be hosted at https://xavishobbies.org/git/. So I would add a new location at /git/ and define proxy pass to where Gitea is hosted locally. The enitre change would look somthing like this.

    location /git/ {
        proxy_pass http://localhost:3000/;
    }

Then restart the nginx server and you should be able to reach Gitea and get started hosting your own repositories. Poke around my instance. I changed my css to match the theme of this website a bit more but all the other options are pretty much left at default.

Wood_Scouting

2023-02-23 - Banjo - Build

The truth is I’m not very good at playing banjo. And the first thing a bad musician does is blame their instrument for how bad they sound. Well believe me when I say I need a really good excuse for sounding this bad [there’s a reason I haven’t posted myself playing yet]. So I decided the only way to give myself that big of an excuse is to build the instrument myself [although then my dad got involved so now I might have to find a new excuse].

The style of banjo I play [or attempt to play] is called clawhammer or frailing banjo. It’s heard a lot in old-time music with, what I find to be, a much warmer, more rustic tone than the twangier and brighter bluegrass and Scruggs style banjo.

I found a fella’ by the name of Clifton Hicks that seems to have some videos that go into building a banjo that, I believe, emphasizes exactly that tone. I really like the sound and look of his Fretless Kentucky style banjo and I think for a beginner woodworker like myself, it doesn’t seem all to difficult to try and replicate [we’ll see once we get into the thick of it].

It looks like wood selection has a pretty major impact on sound and Mr. Hicks has a couple recommendations. It seems like, basically, you want hardwood for every part of the banjo. He even mentions that some older banjos were made entirely of maple. He notes that maple, cherry, or walnut are preferable for the neck, tuning pegs, bridge, and tail piece while red oak is good for the pot. This is because he finds that the porousness of the oak contributes to a great sound from the pot.

Woodcraft Wood
Woodcraft Wood

So here’s the quick rundown of the plan.

For the pot

  1. Grab some oak
  2. Cut out three equal hexagons
  3. Stack the hexagons
  4. Cut a hole into the top two
  5. Tack some hide or drumskin over the hole

For the rest

  1. Grab a 4x4x36 of cherry, walnut, or maple
  2. Use most to shape out the neck
  3. Use the rest to whittle the bridge, tailpiece, and tuning pegs.

Obviously there is going to be a lot more to it [you don’t say] but I think it’s a good jumping off point to get feet wet [I always feel the hardest part of a project is just getting started].

We did end up going out and looking at our local wood selection and found it did not have any of the wood that we were looking for [or they did, but just not in a size that would work], so it looks like actually finding a good wood supplier might be a bit harder than I expected [I am ashamed to say that I thought I could find usable stock at a Home Depot. DON’T LAUGH!!!].

Another revelation was just how EXPENSIVE all the available hardwood is [now I see why instruments are so expensive]. So in order to try and mitigate any unfortunate mistakes on the VERY EXPENSIVE hardwood, I decided that it might make sense to try and prototype some cuts with a much [MUCH] cheaper wood like pine or poplar.

Home Depot Pine
Home Depot Pine

Welp! That’s pretty much all I got for now. Next things in the pipeline is to just get the wood and start chopping. I’ll keep you posted on how it goes!

Lots_of_Changes

2023-02-19 - Web Development - Medley

Lots of new updates to write up and lots of new features! I’ll make up some guides on how things were done but here is a quick run down of the pretty significant changes that were made.

First things first, we finally have a code repository that will host all the code [regardless of how bad it is] for the projects I am currently working on. This was implemented using Gitea which was pretty quick to implement, especially considering the features it provides.

Next, we also have videos! I'm currently using a Peertube instance to host them. I just threw up an old Linux installation guide I made to test it [Probably riddled with mistakes. Don’t… Don’t watch it].

And finally, I’ve switched over to using Hugo. This didn’t actually add anything new for you guys [Sorry :( ] but it does allow me to really easily add new posts without wrestling with rewriting html multiple times across multiple pages.

I’ll write much more in depth guides for each of these but have a look around my code and checkout the Peertube instance [although maybe don’t watch the video yet] while you wait.

What’s that? You don’t believe me [I've been gone? What? You're crazy!]

Self_centralizing

2022-06-24 - Home Server - Remote Access

I have been pretty busy the last couple of days getting my home server configured. The reason I'm converting my old workstation to a server is because I recently purchased a pretty beefy laptop. I've recently found myself in need of more mobile computing power for projects and recreation [as much as I love my Thinkpad X220, it doesn't cut it when I am trying to get some games in with the boys].

This week I did quite a bit of research on software that would allow me to be more self sufficient [in a digital sense, won't be any help if the grid goes down]. I was able to install some software [with some troubleshooting] but have yet to test them enough to conclude whether they are overkill for my purposes. A summary of what I've done

I'll do a quick rundown of all these points.

Hypervisor

A hypervisor , from my understanding, is the software that hosts and manages the guest OSs [guest OS is the fancy way of saying virtual machine/container/etc]. There are Type 1 and Type 2 hypervisors. Type 2 is software like Virtual Box that run on top of another OS. For example, you have Windows installed and would like to try out Linux. You can install VirtualBox ON Windows and install Linux within VirtualBox. The point is the Virtualbox has to go through Windows to interact with the bare metal. A Type 1 hypervisor IS the OS that is running without other software between it and the bare metal. That's why Type 1 hypervisors are sometimes called bare metal hypervisors. The benefits of a Type 1 hypervisor is less overhead supporting the host OS as the software is typically extremely lightweight.

I settled on using Proxmox which is a bare metal hypervisor. This is so I can stage and deploy a good number of containers and VMs without being throttled by the host OS. Additionally, Proxmox is an open-source project which is always a plus [pretty close to a must in my book].

Storage

My old tower had two 512 GB SSDs for the main partitions for both my Linux [which was my daily driver during the pandemic] and Windows [which was basically just for games] install. It also had a 1TB HDD which was used for storage on my Linux install.

Because I want to implement a self-hosted cloud storage solution and/or a media server, I wanted not only to increase the capacity, but also wanted to implement some redundancy in case of a drive failure. So I went out and got myself two more 4TB HDDs. I actually 3d printed two hard drive caddies for my case that I found on Thingiverse. I had another two 2.5 inch drive caddies that where meant for a different case but I just secured them where I could fit them with some zip ties.

So storage in total currently consists of two 512 GB SSDs - one that will be used as a boot partition for my hypervisor and the other will be used as a cache, scratch, or boot partition for the guest OSs - two 4TB HDDs - which will be configured to be a single 4TB mirrored volume for data storage [basically this means the data will be written twice, once on each drive, to ensure that failure of one drive wont lead to any data loss] - and one 1TB HDD - which will just be used for slow, low priority data [no redundancy, no speed, kinda the odd one out].

I implemented the redundancy listed above using ZFS. ZFS is a filesystem which allows for the disks to be collected into storage pools which then can be divided cleanly into distinct sets of data. I find myself always returning to this video by Linda Kateley that explains the system extremely clearly.

Here are the list of commands I used to create the configuration mentioned above.

                  zpool create fastpool /dev/sda
                  zpool create safepool mirror /dev/sdb /dev/sdc
                  zpool create badpool /dev/sdd

I created three pools, one called fastpool - which is the other SSD that isn't my boot drive for Proxmox - another called safepool - which is the mirrored 4TB storage pool - and badpool - which is the one that is neither fast nor redundant.

Installed Operating Systems

I fired up two guest operating systems to get myself started. One is an Arch Linux installation that copies my dot files from my old workstation. This just means that my configuration - window manager, terminal emulator, keybindings, etc - are transferred from my old daily driver. The other is a instance of Open Media Vault where I'll be storing my data [media server data?].

For the workstation install I downloaded the Arch Linux ISO and uploaded it to homeserv through the Proxmox web gui [which is reached on port 8006 by default]. I chose to make this a container because they are a little more lightweight and I don't plan on doing any intense computing on it. I'll have to delve deeper into the significant difference between VM and CT are in the future.

I'll give the details on the OpenMediaVault installation in a later post because there are some bugs in the installer that required some interesting workarounds [and this post is 300000 lines long and a day late sooooo.…].

I'll try to write up some guides this weekend to document the entire process while its still fresh in my mind.