Skip to main content

I'm a self-employed web developer, family man, nerd, scuba diver, and author of many fine books. Manager/maintainer of the Elgg community site, and core Elgg development team member.


Ionic 2 Release Candidate

This is exciting, and is really perfect timing for a project I'm about to start.  Lots of breaking changes since the last beta though.

Ionic 2 Release Candidate
Quick demo of observable vs promise differences

wget all files from a remote directory

1 min read

Because I'll probably need this again and it's a useful snippet

wget -r -nH -np --cut-dirs=2 -R index.html* http:‌//

This will recursively download all files in the target directory, keeping the existing file structure.

--cut-dirs=2 is the number of directories from the hostname to exclude when building the directory structure.


Therefore this will create:










git status
git add --all
git commit -m "ffs stop making changes out of the VCS you fucking morons"


Octopus on Snake Island wall

Took the day off to dive Snake Island wall.  My first time there and I wasn't disappointed.




Found this octopus at 90 ft on a near vertical part of the wall overlooking a dropoff to blackness.  My camera had trouble with the red filter on the video, but it's a cool video of it non-the-less.  Usually I see them crammed up into a hole or crack somewhere.  It's very cool to find one out and about like this.


Let's face it, I'm probably just apologizing to future-me


Thank God It's Fri... fuck you wordpress :(


Battle of the useless labels

Organic industry: "Whaaa, the useless Non-GMO label is tricking people into buying those products instead of the ones with our useless label"

I treat them both as "do not buy" labels.

Battle of the useless labels

What level of stupid do you have to be to write the function is_admin() that doesn't tell if the user is an admin.


Reason 924 to hate Wordpress - no plugin dependency management. Just spread 'function_exists' calls everywhere like you're seeding a lawn