Deploy a Hexo blog to Github Pages

Hexo is a powerful static website generator that can be combined with Github Pages to run a personal blog. This pairing is a convenient, performant and free blogging platform that is very flexible and relatively simple.

Most instructions make running this combination more complicated than it needs to be. If you’re already using Github to publish your Hexo blog, read on to learn how to update your workflow and eliminate some plugins.


Dynamic testing with Mocha and async data sources

Mocha & Chai are fantastic libraries for BDD or TDD development, but don’t have a well documented method to do data driven testing. I define data driven testing here as dynamically generated tests, duplicated with the structure and content of the data itself being the varying input.

The tricky thing about using these libraries for this purpose is that the test suite generation itself expects all the tests to be defined in advance. As a result, looping over the data and using the regular describe(), each(), it(), etc does not go well.


Intermittent blogging, life, good times and bad

It’s been almost 3 years since I’ve posted on this blog! Disregarding some minor aesthetic fixes last November, this setup has remained relatively untouched and reliable over that time. A lot to be said for static site generation when your needs are simple - thanks Github and Hexo!

In that time much has happened in the world - one of the more exciting being SpaceX landing reusable rockets vertically (and then even bigger ones simultaneously, in science fiction fashion).

Anyway… for those of you not on social media or working at Apple I’m still alive :) peace!

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.


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…


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 :)


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)


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.