Bug Fix to Minecraft Warden

After deploying the Minecraft Warden to my friend’s server we found some issues with placing it into production. I think I missed a commit->push because the same use-case was working fine on my system. Having said that, there was an issue with how the software would handle the case where the server wasn’t running and should start it up again.

Basically, the code had determined that the system should be started but wouldn’t flow to the place where the startServer() function was called. That has been fixed and has also been working just fine.

Repo Here: Warden Repo

Tire Weather Website

For some time now, I’ve been thinking about building a quick website to help my fellow enthusiasts in Canada to decide on whether or not they should install their high-specification summer tires. So far, this is what I’ll use to represent the idea/basic logic/basic design spec. I think that I’ll be doing this in C# since I am familiar with .NET but I’m pleasantly surprised at just how similar Ruby on Rails is to .NET MVC. Something tells me that it isn’t an accident ;).


– Threshold is 7C
– Outlook is 14 days
– Minimums are used to determine outdoor-overnight parking
– High is used to determine indoor-overnight parking

Location object
– City (String)
– Province (String)
– Country (String)

Parking Object
– Location

Weather Data Object
– City (String)
– Province (String)
– Country (String)

Days Object
– Minimum Temperature (Integer)
– Maximum Temperature (Integer)
– Rain (boolean)

Tire Object
– Class
– Lowest Temperature

UPDATE: Added Tire Object to allow support for different tire classes. Also, cleaned up some of the entities so they are more like a real UML.

Minecraft Warden: Keep your FreeBSD10 Minecraft Server Up and Running

My friend Stephane Potvin had been running a Minecraft server but was stuck with some reliability issues. I did some work for the start-up scripts but that work was lost when the port maintainer (rightfully so) decided to take a step back and fix up the port. He did a great job in my opinion and left the “start-up” process to be figured out by users.

That said, there was still a gap left. The reality is that some of things in the older port used a .lck file and that made things great and portable since you could use whatever the heck you want to wrap the service and start it up, restart it, shut it down, etc.

Having said all of that, I present to you my MinecraftWarden to keep the Minecraft application running like it should! Here is a link to my gitlab repo: MinecraftWarden. The only caveats are that we haven’t tested it on his system since I need to bring him a Gigabit switch to connect the server onto his network.

More Backup Scripts (This time for wordpress)

I was able to complete my backup scripts for the WordPress site lickity split. I also found that grive in ports is broken and should be deprecated since the Google API it uses has been defunct since 2012. I had to download and compile grive2 from the interwebs (a quick search will yield success).

Here is a link to the wordpress backup script: WordPress Backup

And a link to the BSD version of the Google Drive backup script: GoogleDrive Backup Script (BSD). The BSD version points to /usr/local/bin/bash instead of /bin/bash, but that could likely be soft linked.

FYI, I pass the TARGETDIR in through the script’s args but here is an example of how my crontab looks like on the WordPress server:

0 0 * * * /home/brodey/src/Scripts/backupWordPressh.sh
30 0 * * * /home/brodey/src/Scripts/backupBSDFilesToGoogleDocs.sh /FreeNAS/WordPress

Yes, I’ll eventually have a “common place” for all of my scripts to run and better maintainability  but this is a “get something in place now” type of deal.

First things that I’m working on

Looks like I may be looking at a possible drive failure or, “normal” wear-in on one of my brand new hard drives (A 4TB Hitachi). I received a lovely error message from FreeNAS indicating that my drive error count increased from 0 to 1, so I shall be monitoring that count to see if it’s rate of increase changes.

In the mean time, and after taking manual backups of data. I decided to get some backup scripts in place so that I don’t have to continuously monitor the situation. I developed a simple script with a touch of ‘hard coding’ to get the job done for now, using a couple posts about grive and BASH.  Grive is awesome, grive -f is also equally awesome when forcing a “download” or “pull” from your Google Drive.

Here is a link to my backup script: Backup Script