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.

Read More...


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, http://oolportal.com . 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 http://poweredbyjeff.com so it’s time to take corrective action.

Read More...


Erlang B Visual Basic implementation for use in Excel

Erlang B is a commonly used algorithm used to estimate required capacity for a given load. Originating in telephony for estimating required trunks/channels for an expected load, this same algorithm can be applied to any problem where you have a known arrival rate and required Grade of Service - e.g. servers required for given web traffic, lanes required for given car traffic, staff required for given customers in a retail shop, etc. I’m by no means an expert on the algorithm (it involves poisson distributions and clever things mathematicians get exited about). I do however use it so need it available in a format that doesn’t require a maths degree or regularly going to websites, hence Excel. Note also that this does not account for queuing (Erlang C for that) so may not be suitable where you expect and accept a queue, e.g. customers in your store can wait a few minutes and would not typically mind.

Read More...


Jeff's Minecraft server

Yeah, I’m a geek - I’m running my own Minecraft server. In case it isn’t obvious you can see a realtime map of the world as we escape reality in the link in the menu up top. It’s now open for “public” but I would still class as beta as I’m tinkering quite a bit.

Anyways, feel free to drop in.

Minecraft server address: minecraft.poweredbyjeff.com

Read More...


Sniff iPhone traffic using Tomato router firmware

I had a need recently to sniff traffic going to an iPhone at home. Nothing nefarious; just trying to figure out why iCloud backup was not working. Anyhow, a decent (and secure) wifi router would typically only send data to the destination hardware address, meaning I could not see the iPhone’s traffic using tcpdump or Wireshark. In effect what I wanted to do is set up a SPAN port in the Tomoto wifi world. Here’s how I did it…

Read More...


Install script for Teamspeak 3 server on Debian (or Ubuntu)

The ‘teamspeak-server’ package built for Debian/Ubuntu at the time of writing this article is only for Teamspeak version 2, but everyone who is anyone these days uses TS3. After trolling around the Internet looking for a prebuilt package I could trust, I decided to roll my own install script. For the impatient here are the steps to get a Teamspeak 3 server installed on Debian-based Linux quickly:

  1. Try this in a test environment first! It requires root privileges and can take your children. You have been warned.
  2. Download and transfer installts3.sh to your server.
  3. Download and transfer the correct server binary to your server.
  4. Run installts3.sh:
    1
    2
    chmod u+x installts3.sh
    sudo ./installts3.sh serverbinary.tar.gz

Replace serverbinary.tar.gz with the name of the file you downloaded from the Teamspeak website. If there are no errors the script will tell you where to get your ServerAdmin privilege key and you are good to go!

Read More...


Mount SSH on a Mac using Macports (aka the easy way)

Often I would like to access files over SFTP but without the limitations of an FTP client. For example, it’s handy to alter remote files directly in terminal as if they are local, or open them with my nice, fully fledged editor. Mucking around downloading/uploading files each time I modify them gets annoying quickly, especially with something fiddly like web development.

Fortunately SSHFS is now in MacPorts, and provides a quick solution for those on a Mac with SSH access. I could of course configure a file server but that is not always possible, particularly if you don’t have the ablity to install software on the remote machine!

Read More...


Git cheat sheet - computer setup

January 2015 update: these days I generally use the powerful SourceTree tool from Atlassian. While it’s great to be a purist, sometimes I just need to get the “job done”. The below still applies when I’m working exclusively in a shell (generally on a remote box).

These are some post-installation commands I use to get Git quickly into a working, friendly to use state - cherry-picked from http://git-scm.com/book/en/Customizing-Git-Git-Configuration:

1
2
3
4
5
6
7
# Required. Tell git who you are... appears in commit logs.
git config --global user.email "youremail@example.com"
git config --global user.name "Your Name"

# Optional! Some preferences to ease the eye and editing
git config --global core.editor nano
git config --global color.ui true

This list may grow/update over time, but this I find gets me out of the gate and over the minor annoyances quickly when using git on a fresh machine.

Read More...



Fighting spam in Drupal 7 - disable the homepage field on comments

Spam is really annoying, particularly for anybody maintaining a website with anonymous contribution - in my case via comments. Mollum filters the bulk of the spammers out. Unfortunately if you want to capture anonymous commenter’s contact information in Drupal 7 this also exposes and displays the homepage field. This is also displayed to all visitors to your website that can access this content - incentive for link spammers :(

Read More...