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.



Since Edison got into Pokemon his favorite has been Eevee, this little dog pokemon that evolves into a bunch of different types of stronger pokemon.  I started dropping hints that our dog Kojak might be a pokemon.  He wasn't buying it.  I kept it up, eventually expanding the hints to include his origin as an evolve of Eevee.  Now we're at the point where I call him Kojeon (to fit with Eevee's other evolves such as Flareon, Vaporeon, etc), and we actively debate whether it's possible that he's a Pokemon.  Edison insists that Kojak isn't a Pokemon because he's never seen him in the show or on a card.

I can't wait to see his face when this card emerges from a pack at christmas :)


Bio-terror drama based on CRISPR

Produced by Jennifer Lopez for some reason.  This should be good... and won't villify genetic engineering at all right? right?

Bio-terror drama based on CRISPR

Javascript environments... this hits close to home

After starting to work with Meteor, learning the ins and outs of node.js, mongoDB, and the blaze templating system, I was just starting to get somewhere with it and they changed everything in favor of moving to ReactJS.  No logical migration, just a "rewrite it all in React" statement.  I gave up, screw that, I had sunk a ton of time into learning that platform just to have the rug pulled out.

Now I'm getting into Ionic/Angular, also node based with a build step that used to use gulp but now uses rollupjs.  This stuff is pretty insane and changes way too fast.  Ionic 2 is completely different from Ionic 1, I like it, so I'm sticking with it, but damn if it isn't a ton of work to keep up with all this.

Javascript environments... this hits close to home
XKCD - Always so relevant

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