• Shiny New Blog 2017

    I dove into most every cave of a modern Web Document build chain, and have come back with some pearls to show for it.

    And oh, what a many-month-long dive it was.

    I am a Perfectionist at heart, and there are a lot of Best Practices to follow, ones from which these shiny pearls are harvested.

    Now, if you’ve come here to see the Attributions for the Creative Commons artwork used on this site – like :point_left: that one – they are down here.

    But please … feel free to keep reading. The purpose of this ...

  • Since Before the Turn of the Century

    A reflection upon my career to date – a more poetic take on my CV than the prose of my resumé – as viewed through the lens of the JavaScript langauge :rhinoceros: .

    When I tell folks how long I’ve been doing JavaScript development, I use the phrase

    … oh, since before the Turn of the Century.

    You know, all casual-like. Sometimes I’ll also throw in the phrase “high-order JavaScript”, just to shine one on.

    Yet, in going back over my blog posts during a recent refactoring, I was surprised to find how few of them reflected my long and storied ...

  • Local DNS Resolution Mystery ... RESOLVED !!

    I’d been having trouble getting /etc/hosts to consistently resolve a DNS entry on OS X in all the ways that are are important to me.


    I know it’s been a long time since I rapped at ya. But I’m finally getting around to upgrading my ancient weak-sauce blog, And it’s got my mind all up in that long-form writing headspace, you catch my drift? And today I absolutely threw down on a simple fix for an issue that’d been stuck in my craw for about a year now.

    So, here I am, droppin’ some ...

  • Optimizing Socket.io Performance with Binary Mode

    Sure, there was a bit of data munging & aggregation going on, but it was essentially just a pub/sub pass-thru … so why couldn’t the Server keep up?

    My employer had a WebSocket solution that wasn’t scaling very well. My Mission: make the stack high on throughput and low on CPU.

    We were using Socket.io tied into Backbone on the Client and Node.js on the server. Its role in our architecture was to provide realtime streaming data – a unidirectional broadcast, vs. your traditional chat app. The Server consumed JSON payloads from Redis Pub/Sub channels and routed them into our ...

  • Virtualizing Windows XP

    Rather than try and write it all up as a single Blog Post, I’ve created a Git repo with all of my learnings.

    Over the past several months, in my copious free time, I have been working on a project to virtualize an old Windows XP box with a rather curious partition and boot configuration. This grand project involved:

    Exciting stuff, huh!

    Actually, the process got ...

  • Filling in the Gaps after Installing a Binary Ruby with rvm

    When we stop building Ruby from source every time, we also stop auto-installing the binary dependencies.

    Vagrant and chef-solo are a great pair of tools for automating your cloud deployments. Vagrantbox.es provides several Ubuntu images which come pre-baked with Ruby + Chef, and they can save you even more time. However, Vagrant images won’t help you when it comes time to deploy onto a cloud provider such as AWS or DigitalOcean. I am a curious ...