The Asynchronous Journey

I love song covers. Yes, not all of them live up to capture all the spirit of the original recording, but getting through all the bad ones is suddenly worth it when you find the good ones. You might know the ones I'm talking about, they might be faster, cleaner, heavier sounding, different solo's, or all of the above. You know it's good when they take the song in a new direction that invokes a new vibe but with all the familiarity of the original. It's really what music is all about... taking what's out there and putting a different spin on it to put another mind in a trance. Let me ste…

Read more »

Hands Off Ghost Deployment

It's been awhile since my last blog entry and one of the reasons for that was my miserable deployment setup. This all started with how I wanted blog set up. The goals were for the entire site to be able to run on any machine I'm using with minimal configuration and setup while also making sure all my content is under version control. Those goals have been achived and all I have to do to get set up on a new machine, whether it's a Windows or Mac machine, is clone the repository, run npm install and then fire it up with node. For public hosting I got everything set up on AWS which worked out n…

Read more »

Upgrade your brain virtual machine

Posted on

All of our brains use models to experience everyday life. An easy example is seeing the egg splat on the floor in your head right as it rolls off the table which somehow invokes the physics collider simulator you have going on up there. Everyone we interact with has the person base class with some properties about their gender, age, etc. which defines all the basic assumptions (and stereotypes we've picked up) about how the person will act. If I hit this person they'll be angry of course. Then down through all the convoluted hierarchy of your brain's person class there's a person instance fo…

Read more »

Leaflet Zip Code Map Part 2

Leaflet Zip Code Map Part 1 In this part of the tutorial we'll be focusing on what you need to do to get a front end set up to serve up the map and consume the wonderful zip code data. In case you missed it, here's what we're going for: HTML The html required on the page is almost as basic as it gets since most stuff is loaded in dynamically. The main pieces are: The map div <div class="control" id="map-loader"></div> The Coloring function dropdown if needed And your script includes of course: I'm using Numeral.js for number formatting on the popup, d3 for the handy quant…

Read more »

Leaflet Zip Code Map Part 1

This is the first part of a two part series about how to set up leaflet maps to show zipcode areas with some extra data coming along for the ride allowing us to color the zip code areas based on demographics or any other reporting data. I did this using an ASP.NET MVC site and Web API with a Sql Server database. A database is required for this approach but there's nothing stopping you from reimplementing this in your backend architecture of choice. Here's what it looks like sans the external controls on the page to change reporting parameters and the coloring function (more on that later).…

Read more »

Bucking the Naming Trend

Posted on

There are only two hard things in Computer Science: cache invalidation and naming things. -- Phil Karlton I'm sure many of you have heard this quote before but I want to explore one reason why it's so true: consistency. Programmers are creatures of habit, ritual and maybe sacrifice sometimes too. It's impossible for a good programmer to see a list of variables/tables/functions/whatevers like this: calculate_death_star_trajectory close_exhaust_port get_cup_of_tea and then add to the list fetchThePaper Seeing mismatched items drives us bonkers because it triggers the bug reflex. You…

Read more »

Infini-woes

Inifiniscroll is great. When used properly of course. Google images is the poster child for this and it works so great because they basically have infinite images. The pattern breaks down when it's forced into places where you have less than infinite content. Much less than infinite content. I've seen a few examples around the web where content is just continuously loaded even if it's not new content. Take for example the ghost theme repository: Note the search selections on the scroll bar. After all the themes have been brought in it just starts bringing them in all over again. Careers…

Read more »