Updated Blogging System

So, I've updated to a new static blog generator. This one is purely Emacs only, still using Org-mode, the idea being that if I make it easier, I should be able to blog more often.

I've said this before, so, I'm really not confident I'll stick with it, this has been something I've been struggling with for years. Have to work out what I'm going to do about it.

Lend Me Your Ears

I've always had bad luck when it comes to Mics, through out my computing history. Basically, I've never managed to get nice, clear, audio of myself. Back when I had, I can't remember now, but some Soundblaster gaming card, I tried using a battery powered lapel mic, it just didn't seem to work properly.

Either, I was just too quiet, or, if I turned up the gain so people could hear me, a horrible noisy mess, (and no… not the horrible mess that is my actual voice). I tried headsets with mics, which included a USB interface, no luck. I finally found success going to a USB mic, the AudioTechnica AT2020USB, and, is what I started my streaming with.

That, of course, gave me other issues. I wasn't using a boom at the time, and I found that having it sit on the desk (it came with a little stand) would, of course, get noise with any tap or bump of the desk. Plus it wasn't located close to my mouth, so I people weren't quite getting the full awesomeness of my voice. So I decided a boom arm was what I needed to get next.

This caused a problem, USB cables have a limited length, and using a boom with a USB mic would mean I would have an issue. This could have been worked around with a USB hub, but I figured, better to just get the option that removes the cable length issue. So, I went for a more traditional XLR mic.

XLR (and the other connector type TRS) are capable of carrying "balanced audio", which I won't go into great detail here. But it's a trick that lets audio signals travel pretty long distances that allows any noise picked up along the way, to be filtered out. This means that my mic cable could have more than enough length without issues. (I believe anywhere from 15 to 30 meters)

XLR also allows power to be send along the cable to power the device at the other end (48V phantom power). Typically, this phantom power is used with mics known as "condenser" mics. The summary is, I ended up going the proper condenser mic, XLR, and USB audio interface combo.

I got the XLR version of the AT2020, an XLR cable (about 5 meters long), a Behringer Xenyx 302USB audio interface, and a Rhode PSA boom arm (with the AT8458 shock mount and pop sock filter). I had some problems with the Behringer, the audio quality wasn't fantastic. I eventually had to return it and got a Focusrite Scarlet Solo. It worked! I had good quality mic audio (at last!), but naturally, it didn't stop there…

To be continued…

Twitch Streaming

So, I've started streaming on Twitch, and thought I probably should write about it. There are many YouTube videos and Twitch streamers who have useful tips and information for new streamers. However, I'm not familiar with anyone who is doing something similar, but, honestly I haven't looked too hard.

This won't be a blog, or discussion about how to do streaming on a budget, although I can't afford to go crazy with money, I do have a day job, and an income that I can spend some on my streaming setup. I generally have to sell some things I have on Ebay to try and make up the funds for purchases.

So, what are my motivations for streaming? Good question! Honestly, I really want to be able to play games (typically with friends) for a substantial amount of time. At the moment, on weekdays, I come home from work, try to help with the kids, eat tea, get the kids ready for bed, then watch TV with my wife until she goes to bed.

Around this time (9:30PM to 10:00PM) is the time where I get to play some games. Since I have to work the next day, midnight is generally the latest I should be staying up. Doing this schedule for five hours a week is a bit punishing, since I have to work the next day, and I'm not at my best. So, I have just recently, cut down to only doing it Monday, Wednesday, and Friday.

Now, if I could get a good enough income from streaming, then I would have the flexibility with my hours, spend time with the kids after they come home from school, and get a better sleep cycle.

I honestly don't expect to be a top tier streamer, making $250,000 a month streaming. But, I would like to be in a position where I can make it a full-time job, so I can justify spending more money and time on gaming. I'm already in a decent enough financial position that I don't need an income from Twitch, et al, so it's pretty low risk in that regard.

Anyway, I figure I might as well blog about it, since I haven't blogged on here for awhile. I really need some subject matter to blog about, and lacking a subject that I'm a real expert on, I figured I would just blog about something that I'm hoping to learn.

Shit Project

So, I've been a bit busy lately, so much so, that I had to defer a semester of Uni. The reason? I've had to manage the installation of a bunch of GPS trackers for a large state government organisation. It's been, in a word, shit.

I inherited the management from someone, who, basically, didn't do much except attempt to make pretty graphs of unrealistic timelines in Microsoft Project. They left, so I was thrown into the project. Now, even though it's not related to a software project, you still have the same sort of things that projects get (funny that).

So, I will write a few blog posts, when I can, to cover just some minor things that I found.

Beep Beep Beep

I use ZFS, and I love it, I think it is the best filesystem out there. It's primary focus is on integrity, which is the most important thing. What is also important, backups. Even with the data integrity that ZFS offers (which far surpasses any hardware RAID), you still have to backup.

Again, with ZFS, this is much easier than with other solutions (like Bacula for example). Since we run Sun servers, we also run Solaris, since when you run Solaris on Sun hardware, the licence is relatively cheap. As a result, I use the Timeslider service to automatically create snapshots (which, when you share a ZFS filesystem out via CIFS shows up in the Windows GUI as "previous versions").

Because of this, I also use the "zfs-send" plugin, basically backing up snapshots to a separate Solaris server. However, there are some gotchas which may catch you out if you had a working config, and then change things around and find the zfs-send service failing.

First, zfs-send will put a hold on snapshots. It does this so they don't get deleted before they're used to send to the remote server. However, if you're in the situation where you need to clear all the snapshots (for example, you've moved, or changed zfs filesystems you want to backup). Then you will find you can't delete these, what you have to do is "zfs release" the snapshots.

Here is a little snippet that will do this (and delete ALL zfs-auto-snap snapshots on the system):

for snap in `zfs list -H -o name -t snapshot | grep @zfs-auto-snap`;
do zfs release org.opensolaris:time-slider-plugin:zfs-send $snap;
   zfs destroy $snap;

Then, secondly, zfs-send stores the name of the previously sent snapshot as a property on the filesystem. It does this, so it knows it can use an incremental zfs send. However, if you have broken this sequence, or deleted the snapshots, then this will cause it to break.

You can look for it with:

zfs get -r org.opensolaris:time-slider-plugin:zfs-send storage

Where "storage" can be replaced with your particular zpool name. To clear a property, you use "zfs inherit", like so:

zfs inherit org.opensolaris:time-slider-plugin:zfs-send storage/shares

Changing "storage/shares" to the particular ZFS file system you want to clear the property from. You can clear this property recursively by just adding the "-r" option:

zfs inherit -r org.opensolaris:time-slider-plugin:zfs-send storage/shares

Once you've done this, just enable the service (or clear it if it was forced into maintenance) and you should be golden.