Installing and booting to Intel 750 SSD in Debian 8

The Intel 750 series flash storage is a beast, without doubt one of the top tier consumer storage platforms on the market today. This can deliver up to 2500 MB/s reads… for comparison the best SSDs on the market today are limited to ~550 MB/s due to the SATA interface.


To use this storage in Debian Jessie, a little black magic is involved particularly if you want to use it as a boot drive.

Read More

Mouse keyboard and brain synergy with Synergy

I’m a big fan of Teleport on Mac OS X. If you’ve never used it before, you probably haven’t had to work with more than 1 Mac at a time. I’m not talking about remote access (SSH is my tool of choice for remote access). This is for an extended desktop experience with physically distinct machines. My mouse is connected to the Windows machine in the middle, Mac OS X on the laptop to the left and the Ubuntu guest VM console on the right all feel like one “extended desktop”.

The problem with the tool is it’s platform specific… no workie with Windows or Linux. After some google-fu the currently accepted alternative is Synergy. It’s basically a cross-platform tool that does the same thing - allow a computer to share keyboard and mouse to hosts on the LAN. It’s very nice, but here’s some gotchas along with solutions I found along the way…

Read More

CanaryMod plugin tutorial

It’s been a very busy start to 2015! But to keep the chops sharp I decided to try writing a few CanaryMod plugins. It took some effort to get a basic build environment going so I made a tutorial for creating CanaryMod plugins using Eclipse out of my notes.

It’s been about 12 years since I built anything serious in Java. I mean literally: Java 1.4 was considered new. Anyway it was fun and hopefully not too many errors. Cheers and enjoy!

Merry Christmas, new website!

Merry Christmas! And obviously a new website… hope you all like it! Ironically it’s taken 12 years but I’ve gone full circle back to a static website (albeit using the powerful Hexo generator). Inspired by Node.js and it’s ilk, along with lots of toying with MEAN stacks and Git at both work and play, this is now a change tracked Github CDN hosted website.

Either way - season’s greetings :)

Apologies for the old comments - I’ve moved to Disqus and can’t be bothered figuring out how to migrate the old ones. It was mostly spam anyway :)

PADI Rescue Emergency Action Plan (EAP) for Tioman, Malaysia

Earlier in the year I completed my PADI Rescue course. For those that enjoy diving more than once a year and are on the PADI bandwagon, I highly recommend completing this course. It makes you a safer and humbler diver, which if nothing else is what I see to be the most critical attributes to this sport.

Without further ado, here it is! If you’re interested, the original PDFs are downloadable and printable when going to Tioman. Of course the usual disclaimer - please take out insurance, and I don’t guarantee the accuracy/updatedness of this document. Be a real diver, do your own preparation and dive safe. Peace!

Emergency Action Plan (pdf)
Flowchart (pdf)

My ideal Minecraft server buildout (v3)

So after much consideration, I updated and tightened my private Minecraft server. TL;DR:

  • Minecraft server hostname (copy/paste to join):
  • Teamspeak3:
  • Contact any Arbiter to get promoted to build access.

My brief notes here only cover the software side of the setup; I’ll be doing something interesting once I build out my new home hypervisor (currently waiting on 1GB/s internet connection to get installed).

A few enhancements/game philosophy changes:

  • Rolled back to our old map, aka the “Sanctum” map. I found the regulars didn’t play as much as the feeling of effort involved in the old map was lost. For the folks that built in the new world, I moved them to the old map via WorldEdit.
    Moved to Spigot, latest version. If you are a Minecraft server admin (big or small) and are not using this, you haven’t lived.
    Set up BungeeCord in front of the setup. This is a simple but very powerful proxy for the Minecraft protocol. At the moment I only use this as a convenient way for me to run a testing server beside the main one transparently, and run some custom game modes/“resettable” servers. This will help if I choose to move to a local hypervisor.
  • Created a “Lobby” world, both for aesthetics (it looks like heaven!) and a convenient way to mix and match Bungee portals with Multiverse portals transparently to the players.
  • Set up a CNAME record of to prepare the move of the server to my house.
  • Rebuilt the server folder from the ground up. Cut out some rubbish plugins. Set the “world” folder in spigot.yml to prevent rubbish acculating in the root of each server.
  • Moved to a tmux style server management model. All the scripts I looked at were either crippled/unmaintained since 1.7 was released or paid. I’m a tightass on principle here, so opted for run my own. Screen also sucks balls; tmux is another thing you had better try before you die from being throttle to legacy death by Screen.

The main outstanding issue is automated backup and crash recovery, which is not a small item. The backup process is manual at the moment and has a pretty big flaw (that being me :) ). Feel free to ask more about my setup in the comments.

FreeNAS upgraded to 9.1, unable to delete old jails

I just ran the FreeNAS upgrade from 8.3 to 9.1. FreeNAS 9.1 adds the capability to run multiple jails (awesome feature by the way, thanks). After upgrading there was the usual slew of minor UI changes. I had installed bacula earlier but never got around to configuring it, and hence wanted to remove/start fresh.

Unfortunately the jails did not migrate so cleanly on the UI. Additionally when I attempted to remove the installed bacula plugin it resulted in an error saying the jail does not exist.


The above screenshot is taken after the migration command was run. Before this the “jail” field was blank.

Long story short… FreeNAS does not automagically migrate plugins when upgrading from 8.x to 9.x. You will need to run the follow command in the FreeNAS console documented here:

/root/ -D

I’m not sure why the would not automatically migrate plugins during the upgrade. The document hints that this may be due to binary incompatibility between the versions. Any readers that actually know… feel free to update me in the comments!

Redirect an old hostname to new hostname using mod_rewrite and Drupal

I was browsing through the referer logs in my website and noticed Drupal was serving content to my old hostname, . SEO gurus also suggest it’s a bad idea to serve the same content from multiple domains, and that you can transfer link value using a redirect. Over the long run I want the references to all end up going to so it’s time to take corrective action.

The simplest way I have found to achieve this is to have Apache’s mod_rewrite simply send the browser a 301 “permanent redirect” whenever my old hostname is requested. I find .htaccess to be some voodoo… the documentation is intense reading and best done after lots of sleep and at least 2 cappucinos. Also make sure you have brushed up on regular expressions if you want to understand the fine detail here. Having said that, here is my solution:

RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule ^(.*)$$1 [R=301,L]

These 2 lines are added to my Drupal installation’s .htaccess file just below the sections for adding/removing the www. prefix automagically. Works a charm, you can try it by replacing “poweredbyjeff” with “oolportal” in your browser and see the redirection magic!