DBT - incremental strategies for late arriving data

Hey there, just wanted to leave a signpost for you. My usecases lately have been something like -

Computing a BIG table, with a lot of math in it, over a LOT of rows of data, and then joining in other data to enrich the primary set. Specifically, this is container usage data, which I'm attempting to blend with our AWS bill to arrive at something like "cost per container" per time period.

I don't want to have to rebuild this table every day because most of the data is static once it shows...

Two different flavors of monthly metrics

Supposing a hypothetical organization that sold a product whose feature set and COGS closely followed a typical CSP like Amazon Web Services. That organization allows its customers to change products at will but must manually invoice a significant percentage of those sellables, therefore it needs a robust system to track changes to those sellables and ensure that they are properly charged at each turn of the billing cycle.

I’m picturing reporting format that reports on 2 different types...

FinOpsLand - Reservations

First day of my job at my current employer (almost 7 years ago now) I crack open the company handbook to start onboarding. I remember it saying something like “Reservations are the lifeblood of this company” and thinking “wow, what does that mean?”

I’d had a job prior to this one that had some Stuff on AWS so I was familiar with the concept - something something pay upfront get reduced prices - but it as far from the lifeblood of the company. It was something the IT head took...

SQL is easy, Data is hard

I've been kicking around this thought for a year or so now - to the outsider a career in data looks like a technical path. The data practitioner learns SQL, how to query data stored in a database somewhere using SQL, and if you know enough SQL you can answer any question whose artifacts are stored in that database somewhere.

The reality is that SQL is the very last mile. SQL is code, and so it looks to the non-practitioner like the act of creation, like code written in any imperative...

Dispatch from FinOpsLand

I had a really organized map of things in my head I’d like to tell my younger self about FinOps last night. This morning it is gone. Let this be a lesson to me - jot some notes down. It was a primer course, from the point of view of a data person who was placed in charge of a FinOps practice - how to think about FinOps, what data are you going to need, what do the terms and costs mean, etc.

So what is FinOps?

Well, it’s the driest sounding topic that I’ve ever found incredibly...

Who’s hiring all these B players anyway?

I read an article earlier this week about lessons learned between $5MM and $100MM in ARR. To the layperson - this means growing a small company into a larger company, as measured by its yearly revenue.

One of the points in the article (maybe more, I don’t remember) was about hiring, and it referenced the old adage

A players hire other A players. B players hire C players…

While this sounds like one of those BS businessisms that some capitalist dude came up with, I absolutely...


Been reading the Harry Potter books for a few years with the family at night, and in the middle gets introduced this thing of Dumbledore's called the "Pensieve", which is like a bowl into which Dumbledore can put his memories so he doesn't have to keep them all in his head.

I just realized I've been doing this, sort of, for the last year or so. I'm full on manager now, all I do is phones calls for the first half of any given day. I started taking notes with pen and paper sometime last...

My kids and social media

I'm working through some thoughts in my head about social media, as I've been doing since founding this blog well over a decade ago. Back then I thought it was going to be a savior of democracy in oppressed societies around the world, and we see how that's turned out.

Lately it's an issue closer to home. My kids are creators. At some point years back they got inspired by Captain Underpants and started making their own comic books. We have bookshelves full of 8 inch sketch pads from AC...

What is a "data product"?

"Run your data team like it's a product team" was a common refrain at the DBT conference for the last two years. What does that mean? I am still figuring that out, but I have had an aha in the last few weeks about what a "data product" is, exactly.

Your standard software development process requires two main components to deliver the Things - a software developer and her wits. She takes those wits and expresses them into a text editor, and thereby makes something from truly...

Another shallow musical observation

Headed to dinner last night with the fam, this song comes on (Deep Waves I think?) and my oldest says "oh, this song". Michelle, cutely, starts looking for something to like about it. I, predictably, do the opposite.

So here's the observation -

Basically all pop music these days is made exclusively on computers. Nothing wrong with that in and of itself, but what's missing is the accidental interactivity that happens when you have a group of people playing instruments and giving each...

Not a deep thought

I was listening to Taylor Swift yesterday - Everything Has Changed from her new version of the album. There's this bit in the bridge at about 2:30 where the backgrounds do this "haaaa, ahhhh, ahhhh" thing that's so wonderfully out of tune and everybody involved in the making of this album had the courage to leave it.

Nobody does that anymore. I started thinking about how auto-tune has really enabled the elimination of musical talent as a condition for creating music, and made it that much...

On FinOps, 5 months later

I am on my way to San Diego for the first Platformer meetup thing that I've been to since the Beforetimes, at least the first that's not just my team. On my way to San Diego I stopped by Austin for the FinOpsX conference, an amazing little thing put on by ... maybe the Linux Foundation through some other community community, idk.

Anyway, it was really amazing. Open source is just so much fun, I'm really glad that I found it all those years ago. This conference was smallish, like 400...

On FinOps

Just thought I'd drop myself a line here and remind me about that time that I was getting FinOps certified, because it's so much more interesting than I would've thought.

Basically, back in the old days, there were data centers and if you wanted a new resource in one of those data centers you had to go through a procurement cycle involving finance and probably a procurement team. You'd buy the resource and that would count as Cap Ex in your P&L or whatever. It'd get installed and then you...

It's not The Path, it's My Path

I don't know, this just came to me. For several months now I've been trying to make some changes to old behaviors. One of them is a lack of communicating, of building up a thing or a plan in my head without talking it over with the people whom it affects.

I've summarized this as something like

When I have a good idea - when I see the path - I assume everyone sees it too.

So I've been making more of an effort to communicate everything in the last few months, whether it's the Big Idea...


Because I want to remember this for next time:

"Data modeling" is a kind of nebulous concept, but I define it loosely as

The empathetic act of thinking ahead about how somebody might actually use this data that you're creating or storing.

It turns out to be a skill that not everyone possess, and which a previous career stint as a web developer served me well. I think for the next technical interview I give, regardless of position, I will ask the candidate to explain how a simple blog...


My wife is a Glennon Doyle podcast listener, and on a recent trip she put her on for a little while. Plenty of good stuff, but the phrase that's stuck in my head right now is

The intention doesn't matter. What matters is the impact.

One expression of micromanagement is the inability to sit and let your teammates (possibly) make a mistake on their own. The way I caught myself doing this just now was an innocent question being asked between two teammates for which I knew the answer. ...


I caught this thought train last night and hopped off before writing it down. It has to do with the visible trappings of success. First the obvious bits.

True success isn't something that someone gives you. It's not something that you get. It's not a thing. It's a feeling. I am currently riding the wave of it for maybe the first time ever. I am doing my best work. This post, written over a decade ago - I'm finally there. It may not last, and I'm ok with that. I'm grateful for it...

Naming things considerately is an act of selflessness

Not sure if I mentioned this in the last post, but what I'm doing right now is essentially building a data warehouse for the company. It's from scratch, there was nothing here beforehand, so I get get to/have had to chose everything from the tech stack to the processes to my favorite part of late: naming things.

The name you give to a piece of software, or a command line flag, or a column in a database is an act of asynchronous communication with another human. You are asking them to care...

What I'm up to professionally, early 2021 edition

Started here at this company about 5 years ago, a smallish technology startup (30 or so ppl) HQ'd in Paris founded by some really smart people that I wanted to work with.

I didn't view myself as having the engineering skillset to go out for the engineering team, so when I saw a post for a Solutions Architect that fit my resume perfectly I applied. It was a move out of the "back of the house" programming toward the front of house, talking with customers, working with the Sales team to bring...

Starting a new team in a remote company

This is one of the aspects I didn't consider. A bit of background:

I'll have been here at Platform.sh for 5 years this July, which is crazy because it's now the longest I've ever held a single job in my life. Last summer I was poised to propose that we start a new team here around Data and Analytics right as someone else, much higher up then I, proposed that we start the exact same team. I raised my hand to start this team.

Prior to this I was leading a team of 15 in charge of...

My current understanding of our AWS CUR bill

Hello, me. This post is to jot down what I think I know about the AWS CUR bill at this point in time. There are entire companies built around helping other companies understand this bill, so this should be considered a primer.

There are several columns that matter in this giant bill, and many dozens that do not matter, and about a hundred or so that fall somewhere in between. The ones that I know about so far that really matter when you're trying to decode a bill AT SCALE are:

Crazy thing is...

I never would've dreamed when I was 24 and hitting the road full time with a band that I would ultimately find career happiness not playing music but actually with a full time job working w a bunch of people I almost never see in person.

Prefect looping - .map() it

So I'm back in the writing code game after 4 years off. I started a new position about 2 months ago as "director of data engineering" at Platform.sh. It only took ten years longer than originally planned but I have finally unlocked the "some kind of engineering mgmt at an actual tech company" badge.

I'll get into what I'm doing maybe later, but right now I want to leave a breadcrumb for my past self regarding looping over tasks in Prefect.

I'm just kind of tinkering with pulling info...

Thoughts on sales engineering - setting expectations

I really enjoyed my time as a Solutions Architect, and wouldn't mind at all doing it again someday. The job of a Solutions Architect, or Sales Engineer, or "Presales" is be the technical person in the sales discussion on the part of the vendor who's trying to sell the technical $thing. The sales rep's main responsibility is to manage the sales cycle (a separate post entirely) and depending on how technical the product that your company sells, it's possible that knowing how to answer...

Two kinds of managers

[This was partially inspired by this excellent article that I read Saturday morning.]

I manage two teams. One of them has been through a lot of changes in the last 12 months, basically taking a rather sharp turn in responsibilities and day to day work. This was always the plan because I believed that there was no better team to take over this particular process than ours, but when it came down to actually implement the changes clearly it was not what some members of the team had signed up...

Dunning Kruger

I've known about the Dunning-Kruger effect for years, thanks to Hacker News and its penchant for surfacing the names of Things. It never occurred to me before just now that my steady decline in productivity here on this blog, or rather the extreme productivity I enjoyed in posting to this blog in its first year, were the result of the Dunning-Kruger effect. I had so much to say! I had no idea what I was talking about!

It's a damn shame, because it really did help me to let that stuff out...

Tips for working from home

Basically nothing you probably haven't learned already, but let me detail my latest take on web conference call nirvana:

An iPhone with a mini tripod, search "iPhone tripod" on Amazon, and a pair of AirPods. This lets you set up your meet anywhere - the yard is my personal favorite since about a month ago when spring began - and carry on doing whatever you're doing without having to balance your phone on whatever is around.

The Struggle

Just because I'm losing Doesn't mean I'm lost

I don't know really how to get into this one, but I was talking with someone earlier today about The Struggle. The Struggle is all I've been working against for the last 10 years since I started this blog. I don't want to say that The Struggle is over, but if it's the mountain I've been climbing I think I'm basically at the top of it now. I need to find another mountain to climb now.

I started this blog a lifetime ago, and I feel like...

Continuous integration at Platform.sh

WTF is "continuous integration"??

So, back in the old days, building websites was simple. You had plenty of options for how to build one but me personally, I was totally fine with Wordpress and Drupal. They didn't force me to know what was going on under the hood to be productive and they provided a way for me to learn that stuff along the way while feeding my family. I learned CSS on the job while building the first couple things I ever built.

Cascading Style Sheets (CSS) is a...



I haven't posted anything in over a year. I'm almost rusted shut, yet I lately feel the need to commit to creating a new row in the database that backs this blog.


Just start writing.

I've been at this gig for over 3 years now, and I've learned a decent deal about the "real world", the one that I wanted to exist in toward the end of my last career. I scored that tech job, I got bumped up to mgmt about 8 months ago. I actually really enjoy it and I'd kind of...

Removing GA tracking

Well hey, I haven't written anything here in 2018, that's wild.

So here's what I'm doing - I'm removing the GA tracker from this blog. I don't check my stats anymore and I suspect what audience there is to this blog probably has ad blocking enabled. Hell, I have ad blocking enabled. Seems kind of hypocritical to have an ad blocker installed so that the eye of tech-Sauron can't follow me as easily around the internet, and yet to have GA tracking on my own blog. So I'm getting rid of it.

The Little Platform.sh Book - Introduction

The internet is hard these days.

It started simply enough - for instance, all you really needed was a Geocities account and some initiative to learn HTML and you could have your own place to put whatever you wanted and make it available to the entire world. From such simple seeds, complex structures did grow..

Geocities was permanently shut down in 2009, at once both a tragedy for the loss of so much content, so much history, and yet also a wake-up call for so many of us that we needed to...

Check in

So much to say, so much to say..

Some day I'll write a memoir, but that day is not this day my friends. The most outwardly memorable thing I've done so far this summer is fly out to Oregon to the String Summit to cover for Mike Devol of Greensky. Mike had a baby a few days before, and back in the winter he called me up to see if I might be interested in covering for him on some summer festival shows. Duh, yes.

So I had several months to prepare, but not prepare so much that I got...

So that was fun.

I just switched this blog over to a Silex application for a few weeks, but I never got around to adding in the functionality to add new tickets, and add new tags, and link the two together, and all that other stuff that a framework like Laravel just gives you.

So we're back.

Setting up SSL on your Platform.sh site with Cloudflare.


You've got a new site on Platform.sh that is basically at the end of its development stage, and you're preparing to go live. You've decided on Cloudflare to host your DNS. Cloudflare is a good choice for smaller sites, and I recommend it often. Is has a few things going for it -

  • It has a free tier, which gives you pretty much everything you really need for a personal or small business site.
  • it has a very robust and modern global network.

One of the main features that a...


I was just remembering this post from back in the early days of this blog. Social media was being used to shine a bright light on oppression and old, repressive regimes were falling.

Fast forward to now, the end of 2016. Social media is being used to organize vastly more repressive regimes, and the ease with which anyone can now spread convincing lies makes it almost impossible to tell what's true anymore.

Traditional journalism has never been more important than it is now.

Speeding up your Platform.sh deploys with Yarn


You have a decent sized project and your deployments are taking a while. Platform.sh rebuilds your entire application from scratch with each git push so in some cases the process of downloading all those 3rd party packages can take quite a while. We can and do manage local caches of some composer packages due to our PHP heritage, which helps to make composer install a pretty snappy affair, but it's simply not possible to effectively do this with Nodejs.

Compounding this...

Easy Markdown with Syntax Highlighting, PHP Edition

Easy Markdown with Syntax Highlighting, PHP Edition

Hi there, and welcome back to this 14th installment of "I rewrote my blog in another framework that I'm interested in learning, this time in Laravel". The trick that we'll be exploring today is that, in contrast to Python (the last version was in Django), PHP's lib story is a bit more sparse for this exact use case. However, I'm completely pleased with the outcome, so let's get busy!

PHP Markdown

Google that term and you'll find this -...

Platform.sh from scratch - Laravel, Redis, and the Platform CLI

Hello, and welcome back to Platform.sh from scratch. In this post we'll be reconfiguring your Laravel app that we've been working on in the previous posts to use Redis as a cache and session store, rather than the default file store. We'll also install the Platform CLI and use it to SSH into our application container and get a feel for the layout of the filesystem after it's deployed to its environment.

But first, I'd like to have a brief chat about Git...

Using the tools the way...

Platform.sh from Scratch - adding a database to your Laravel app

Hello (!) and welcome back to Platform.sh from scratch. In this post we'll learn about how to set up the Laravel app from the previous post to hook in to various services on Platform, starting with a database connection and moving on to using Redis as a cache and session store. Along the way we'll visit Platform.sh's "environment variables" feature, and we'll set up our first fully functioning deploy hook.

Prerequisites - go through the previous post and get that far...

Let's get...

Platform.sh from scratch - setting up a Laravel app

Hi there and welcome back to Platform.sh from scratch. In this post we'll convert a Laravel app for use on Platform and learn a few tricks that will hopefully inform converting any app for use on Platform.

Step 1 is to get going with a new Laravel app, so follow the instructions on installing Laravel and setting up a new project. Initialize a git repo, add a new platform, and add the Platform.sh git remote to your local repo. All of this is documented in the previous post.

Now, at...

Platform.sh from scratch - PostgreSQL

Hi there and welcome back to Platform from scratch. Today we're going to take a very simple Laravel application that will make use of Postgres on the backend as a database.

The complete example application can be found here - https://github.com/JGrubb/platformsh-laravel-example

The very first step of this will be to add in the appropriate .platform/services.yaml file. This file was left intentionally empty in the setup for this Laravel application, as we didn't have a need for a working...

Platform.sh from scratch, part 0 - explaining Platform as simply as possible.

Hello, and welcome to "Platform.sh from Scratch". In this prologue to the series, I'll go over some of the very highest level concepts of Platform.sh so that you'll have a clearer understanding of what this product is and why it came to be.

Platform.sh is a "Platform as a Service", commonly referred to in this age of acronyms as a "PaaS". The platform that we provide is essentially a suite of development and hosting tools to make developing software applications a smoother end-to-end...

Platform.sh from scratch, part 1 - Basic setup.

Hello, and welcome back to "Platform.sh from scratch". The goal here will be to augment the official documentation with a short tutorial that shows how to set up a project for proper functioning on Platform.sh. We'll dive into the "why" as little as possible here. For now let's dive straight into the "how".

We're going to start with a very basic application, the example Silex app on the front page of the Silex website. This will be a standard Composer based project, so we'll need a...

RTFM before you need to

So this is it, my week in between my old job and my new job. And I'm bored out of my mind. So I'm going to do something I've never done before - write a blog post on my phone. We'll see how this goes.

I was texting w one of my former coworkers a little earlier today. He was picking my brain about how the AWS command line tools work and so I was explaining some things to him in too much detail. I've noticed this thing that I have where I want to explain the why of things and not just give...

Know Thy Elders

I'm starting a new gig in a couple weeks. I found out about the existence of the gig in the first place because I follow the guy who will be my new boss on Twitter, since he's been around the Drupal scene and very long time and following the leaders in your industry is basically one of the core things that Twitter is for.

You don't need to necessarily know every single leader in every single lang, but if you work on the web and want to move your career forward, you'd do well to know who...

My pipe dream for syncing files between environments


We recently migrated from using a local Drupal filesystem (Gluster) to using S3 to house our uploaded site assets. This was relatively simple, and killed at least two birds for us, metaphorically speaking. Some of my findings are chronicled in the previous post linked above.

We are loving that we don't have to worry about syncing files between environments anymore, which means that when we are developing a site locally, the image sources are all pointing to their S3 URLs and...

Knowledge Hunters

I work with a guy. He's incredibly smart. He's the seniormost developer here, and if you need to learn something new and get something large done, he's the guy to do it. We basically dropped him off in the AWS jungle and told him to learn Hadoop and the entire Hadoop ecosystem for a data warehouse project and he did it.

I work with another guy. He's also incredibly smart. But he asks me for the answer before attempting to find it on his own more often than not. He's got a point when...

Programmatically creating taxonomy terms in Drupal

Because sometimes you need to roll out a bunch of taxonomy terms across 26 sites, and you just don't feel like clicking those buttons.


$terms = [
    'Case Study',
    'Application Note',
    'Data Sheet',

$vocab = taxonomy_vocabulary_machine_name_load('vocab_machine_name');

foreach($terms as $term) {
    $t = new stdClass;
    $t->name = $term;
    $t->vid = $vocab->vid;

Save this to something like...

Migrating the Drupal public filesystem to S3


  • You're working with a managed hosting provider and have begun to run out of room on the local/networked filesystem. Vendor wants to upsize your storage for a charge.
  • You've got several different environments that you're working with (local|dev|prod|etc) and syncing the filesystem between them is an annoying chore in 2016. The various methods out there of proxying these requests don't really excite you.


How about moving the Drupal filesystem up to The Cloud? ...

Programmatically creating image styles in Drupal

Because sometimes you need to roll out an image style across 26 websites, and dammit you just don't feel like dealing with Features.


 * Adds mobile_content_image style
 * @param $sandbox
 * @return bool

function hook_update_N(&$sandbox) {
  $style = image_style_load('mobile_content_image');
  if (!$style) {
    $style = image_style_save([
      'name' => 'mobile_content_image',
      'label' => 'Mobile Content Image (500 x 250)'
    $effect = [
      'name' =>...

Prev/Next as linked lists in Django


I want to be able to link a set of posts together in an order. If there is a next post relative to the one I'm on, I want a button to show up that says "next post" and links to it. If there is a previous post relative to the one that I'm on, I want a button that says "previous post" and links back to it. Pretty simple, conceptually. Basically I want to reproduce parts of the Drupal book.module as minimally as possible.

So my first naive attempt was to add 2 ForeignKey...

A Varnish 4 VCL for Drupal 7

This is an interweaving of Four Kitchens' Varnish 3 VCL and this generic Varnish 4 VCL.

vcl 4.0; # Based on: https://github.com/mattiasgeniar/varnish-4.0-configuration-templates/blob/master/default.vcl import std; import directors; backend server1 { # Define one backend .host = ""; # IP or Hostname of backend .port = "8080"; # Port Apache or whatever is listening .max_connections = 300; # That's it .probe = { #.url = "/"; # short easy way (GET /) # We...

Drupal Paragraphs - what is structured content?

So I gave a presentation at Drupaldelphia a few weeks ago about the Paragraphs module.

The Paragraphs module is my favorite Drupal module that I've come across in probably the last 5 years. It's basically Drupal's implementation of the concept of "structured content" - one of those terms that sounds so abstract that you probably feel an unconscious repulsion to even learning more about the idea, but hopefully I can help get you over that.

The problem

The problem is the dreaded body...

First steps with Drupal - content types

See the previous chapter on installing Drupal.

Hi there, and congrats on making it this far. You should be looking at a screen that looks like this --

Drupal Welcome Screen

Congrats, you've just set up a website with arguably the most advanced CMS in the world!

Creating Content

This is what a Content Mnagament System is for after all. If you followed the "standard install", then you have a couple of different choices. In Drupal parlance, these are called "Content Types" and you have two of them so...

Installing Drupal

See the previous post in this series on getting started with Drupal

So welcome back, this is actually the most challenging part of this tutorial - installing Drupal. I'm assuming no prior web development experience, so the first part will be installing something to run your tutorial Drupal site on.

For this we'll be using a project called MAMP. MAMP is a package of software that makes it easy to set up Drupal (but not just Drupal) on your computer. I'll skip the deeper details for...

Reversing strings in PHP

Was asked this question recently, and haven't done any low level string manipulation w PHP in a little while. Couldn't remember the signature of substr(), but that wasn't my method anyway. Mine was more like iterating over an index, working from the back forward and concat-ing that on to a new string. Also, this is like 5 minutes worth of code, so cut me some slack.


echo "\nString reverse test\n\n";

function bench_it($func) {
  if (function_exists($func)) {
    $str =...

Why Drupal?

It's an interesting time to be building things for the web. It's matured to a place where much of our day to day lives is conducted through sites that we access online. I personally buy books on paper, diapers, any piece to repair a broken appliance. I search for clues on how to do my job. I read up on the latest state of th technology scene. Every one of these places I go has largely the same stuff on it - some kind of login, some kind of way to get to "my stuff", some kind of way...

Easy markdown and syntax highlighting in Django

Hi there, I'm new to Django. I love the contributed ecosystem, but all of the options that I found there for dealing with Markdown were just too heavy. I didn't need a Wysiwyg editor, I just wanted an output filter. As it turns out this is exceptionally easy to do!

Python has a really amazing lib situation, so I just found the smallest python Markdown lib that I could, it's called "mistune". Do a pip install mistune.

So within your app, let's call it "blog", create a directory called...

Why Drupal 8 will fail

I started working with Django last week. The documentation is complete, organized, and located in one indexed portion of the website. You can download a PDF of the entire thing and it's better than any O'Reilly book you could possibly buy about Django. If you land on a page for an old version of the framework, it lets you know.

The same thing goes for Postgres.

The same thing goes for Symfony.

The same thing goes for Rails.

The same thing goes for React.

These are tools that want to...

Goodbye Rails, Hello Django

So here it is. The last version of this blog - a Rails frontend to a Postgres backend - actually stood for almost 2 and a half years. I think that's probably a record.

In keeping with my decided new theme for this blog however, I've decided to rewrite the thing in Django. Not that you can't google it yourself, but Django is (at a high level) basically the Python version of Rails. Actually, it's basically the Python version of every MVC web framework. It's been around for 10 years, so...

What is Business Intelligence?

My brother in law is a recruiter. He historically recruits salesfolks for companies "in the BI space". I tried to help him out many years ago when I was still on the road playing music, but had absolutely no background to do anything other than plow through the spreadsheet of contacts that he had and try and get a response. Like most witless recruiters. I had no idea what BI was.

Years later, after starting a new job at ABM I still had no idea what BI was. It was something we needed,...

Drupal logstash syslog config

This one really took longer than it needed to.

If you're here, hopefully you've already been through this lesson on setting up the full ELK stack with Logtash-Forwarder thrown in to boot. For me it pretty much ran as intended from top to bottom, so hopefully you're already getting data into Elasticsearch and are flummoxed by how every single other logstash config out there to parse your syslog data doesn't seem to do the job and is still just treating it like every other syslog...

Memcached - a really interesting piece of gear

So this is just another letter to my younger self, straightening out some mental inconsistencies with how I used to think Memcached worked. Much of this will be in the context of Drupal, since much of my work experience is in the context of Drupal. Memcached is obviously not a Drupal specific construct though.


The first time I ever installed it was at the behest of my senior dev, who suggested just installing it on my laptop and giving it 64M of memory. Drupal is slow as...

Intermediate Drush Hacking - Drush Aliases

There are other articles on this topic around the internet, but for some reason I could never completely make the mental connection on how Drush aliases worked until recently. It's actually really simple to get started, but most other articles tend to throw all the options into their examples so it kind of muddies the waters when you're trying to set yours up. By "you/yours", of course I mean "I/mine".


My work is an Acquia hosting client, and we have a multisite setup. Aliases...

What is my $PATH?

I remember being very confused by this one early on. There were boatloads of tutorials on how to change your $PATH, but what that even means in the first place I just kinda had to figure out over the course of it all. It's actually pretty simple. Here's my attempt.

If you're coming from a Windows background, and you were in the habit of being really fussy about where you installed software on the hard drive, you may have just known how to fire up any old piece of software on your system....

For my friend, who's quitting a band

So yeah. I mean, obviously I can't read your mind and get to all the real reasons that you'd be wanting to move on, so I'll just kinda riff on my experience and hopefully it won't come out too narcissistic. I don't really have time to write this down in a narrative fashion, so I'm just going to bullet point some of the thoughts I still remember from that period.

  • One of the things that I remember well is the space that was opened up in my mind for not having a clock ticking in the...

What is curl_setopt()?

When I first started getting into this, I read a lot on PHP and remember clearly having my eyes go crossed when I came across code like this --

// Example code: Creating Drupal 7 nodes by POSTing from cURL in PHP:

$site = "";
$user = "someusername";
$pass = "theusersassword";
$crl = curl_init();
curl_setopt($crl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($crl, CURLOPT_USERAGENT, 'PHP script');
curl_setopt($crl, CURLOPT_COOKIEJAR, "/tmp/cookie.txt");

Some more ruminating about Laravel

Expository info (skippable)

So, for nigh 6-7 years now I've been a Rails enthusiast. I bought the PragProg AWDWR book when it was covering Rails 2.x and had the beach and hammock on the cover, and then proceeded to take years to figure out everything the book was actually talking about from the bottom of the stack to the top. I find it very enjoyable to be able to get my ideas out (in code), and Rails is still one of the cushiest frameworks around in terms of ease of use. It's almost as...

The best, least understood aspect of Drupal multisite config

We are currently running a Drupal multisite installation on Acquia's enterprise cloud. We have a bunch of different domains for the various sites, as well as the various environments in which they run. The development domains look like pddah.dev.abm, pddah.staging.abm etc, presumably to prevent them from being accessed from the outside world.

This setup requires a rather voluminous sites.php file in the root of the sites/ directory to map all the potential incoming hostnames to their...

Laravel mutator not working

I'm sure this is obvious, but I just spent too long trying to figure this one out. The mutator function wasn't even being called.

Make sure that the field you want to mutate is included in your model's $fillable array, else the ORM doesn't care that you want to do things to it.

A URL strategy

I've got this decoupled CMS brewing in my head, and wanted to jot down what I think would be a kind of cool method for generating URLs and URL redirects and making sure everything stays in sync without having to maintain a giant table of redirects (ala Drupal).

The basic scheme would look like this -- site.com/{item_type}/{item_id}/{item_slug}. The type parameter could probably be optional, but it's there for now. An example URL could be...

Angular, Protractor tests, and Sauce Connect config

So it took me days of trying to piece together the correct config options to make my local protractor test suite run in a bunch of different setups on Sauce Labs.

// An example configuration file.
exports.config = {

    sauceUser: 'jgrubb',
    sauceKey: 'fill-in-the-blank',
    sauceSeleniumAddress: 'localhost:4445/wd/hub',

    // Capabilities to be passed to the webdriver instance.
    // This option is called "capabilities" in the protractor docs
    // but whatever.  this also works.

Setting up JMX on Mule ESB

The goal - trying to setup Datadog monitoring of a community Mule server that we have. Using configs from the old server weren't working so I had to learn more about Java infrastructure than I intended. It's simple, but it took me several hours of Googling. Basically you do this -- http://java.dzone.com/articles/remote-jmx-monitoring-mule.

But dudeman's code is broken, presumably because dzone autolinks everything in that xsi:schemaLocation block. I changed the host to and the...

The Musician's Curse

And I wonder - will you miss your old friends once you've proven what you're worth? And I wonder - when you're a big star, will you miss the Earth?

I heard some news this weekend that really shook me up - that one of my old musician acquiantances and his wife of several years had recently split up.

He's a young dude and his band is killing it, and I know first-hand how rough that is on a relationship, so it was not suprising at all. Yet somehow it was also simultaneously...

After one week of Laravel

So years ago, in the early days of my HN acct, I bought a book called "Founders at work" that happened to be authored by PG's wife Jessica Livingstone. Great book with a bunch of interviews with various founder/hero types - Woz, Evan Williams, etc.

One of the interviews with with DHH - the Rails guy. I remember him talking about how he used to write PHP and it was just too hard, and that's how he found ruby and started building stuff with it.

So, I've been going through these Laravel...

My favorite technical interview question

It's very simple. I work at a publishing company in northern New Jersey. I think we hire pretty smart, but the technical interview tends to be more of a conversation about technology than a series of quizzes on the whiteboard. We've been hiring for a few positions lately, and I've recently hit upon the perfect conversational tech interview question. It's separated a lot of wheat from a lot of chaff for me in the past few months.

"What text editor do you prefer?"

I've recently begun...

Brain Dump - Drupal and Fastly


Fastly is a CDN (content deliver network). A CDN makes your site faster by acting as a caching layer between the world wide web and your webserver. It does this by having a globally distributed network of servers and by using some DNS trickery to make sure that when someone puts in the address of your website they're actually requesting that page from the nearest server in that network.

$ host www.ecnmag.com
www.ecnmag.com is an alias for...

The phases of iPhone ownership - the end of the road

And here we are, but first - a story...

Yesterday was my 4 year old's 5th birthday. Michelle and I go back and forth about who's going to take video and who's going to take stills for singing "Happy Birthday", and decide I'll take the video.

We get up to the part where she's lighting the candle and my phone stops recording - "Your phone is full, please manage storage under blah blah blah...". This is an iPhone 6+, bought it two months ago. Obviously I bought...

The absolute bare minimum you need to know on the command line

GUIs change, but the command line is eternal. Memorize these 5 commands and a long and happy life awaits.

$cd change directory. This is how you move around the file system. $ls List, or tell me what's in this directory. This has a huge list of useful modifying flags, such as -l (long, tell me the size, ownership, and permissions on each thing in here too), or -a (all, as in, show me hidden dotfiles as well) $mv Move, this is how you move something from here to there. This is...

Merging two Drupal sites together with Migrate Module

Notes from Mike Ryan, the Migrate guy, at the bottom. Make sure you read them before copying any of this code.

The Migrate module has some of the best documentation I've ever seen in DrupalLand, but there are still just a couple of things that I've figured out over the last month that I wish had been clearly explained to me up front. This is an attempt to explain those things to myself.

Clearly, you're going to be writing code to perform this migration.

Dear me, 5 years ago

This shit is all very scary and confusing to you right now. You're about to walk the plank into the unknown. This will be the last "principled" career decision that you make up until the point that I'm writing you this, and you will learn a hell of a lot from it - about yourself, about your marriage, and about life in general. Shit's about to get really difficult for you, in a way that you sense now, and that's why you were up unable to sleep at 3am last night.

There will be no gentle...

For my friend

I started this blog almost 6 years ago. Looking back it was basically chronicling the beginning of the darkest years of my life. It was also, however, chronicling the beginning of the most creative years that I've ever had. Lot of shit went down for me 5 years ago, and being a nice round-number-type anniversary I've been going back over these old posts a lot lately, especially the ones where I really took a lot of time to lay it out exactly right. The creative fire is one that I wrote...

Omniture - not the best 3rd party javascript

Hoping to land a slot in the SERPs with that title, I'm here to demonstrate today the difference between good 3rd party javascript, and bad 3rd party javascript.

First - the good, as demonstrated by Google Analytics. GA's setup and tracking code, as stepped through here.


Throttling window.onscroll

Simple trick for making sure that anything that you want to listen to window.onscroll doesn't eat up too many cycles while it's doing its thing. It's called "throtting".

Throttling basically means, if you're receiving a steady stream of input from something, you don't really want to be firing stuff off based on that steady stream. This is a performance suck. Let's say you have this ---

window.addEventListener('scroll', function() {
  // Stuff that's actually kinda CPU intensive like

The default Fastly VCL

I screwed this one up pretty bad when I first got started with Fastly. That have that link that says "VCL", as if you should download that to get started. So I did. But that's the generated VCL, and all their special macros are already blown up, so you don't want to copy that one.

And the one on their website has HTML entities encoded, so I'm putting this one here in case I need it again later.

The original

sub vcl_recv {
#FASTLY recv

    if (req.request != "HEAD" && req.request !=...

Tracking Pixels 101

So tracking pixels. They sound awful. They sort of are, but we all use them. One just fired off on you a minute ago when you loaded this page. That's how Google Analytics works its magic. But how do they work? The GA tracking code is Javascript and doesn't say anything about an image pixel.

Step inside...

Dat JS

So that javascript does a few things, primarily it creates another javascript tag that pulls down the real "payload", which is a hackerish term for "a bigger ball of...

Getting started with "Headless Drupal"

Hello there! There has been a lot of discussion in the Drupalsphere lately about a concept that has been coined "Headless Drupal", and rightly so. It's basically theming, but throwing out the theme layer. The theme layer in Drupal is very powerful, but has always felt severely over-engineered to me, especially in contrast to pretty much any MVC framework I've played with. With those, you define view-layer variables in a controller class, and you write HTML with a little bit of code to...


On Tue, Sep 9, 2014, at 10:58 AM, San wrote:

Dear business owner of Ignoredbydinosaurs.com,

I would like to take a few minutes from your schedule and ask for your attention towards Internet marketing for Ignoredbydinosaurs.com.

As a business Owner you might be interested to gain profit by placing your website among top in search engines. Your website needs immediate improvement for some major issues with your website.

  • Low online presence for many competitive keyword...

Deconstructing the Google Analytics tag

If you're a web developer, I'm sure you've placed this snippet of code more into more than a few projects.

<!-- Google Analytics -->
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

ga('create', 'UA-XXXX-Y',...

Drupal Angular tidbits -- multisite


One of these days I'll get around to writing the post that's been in my head for 6 months now about how to get up and running with Angular in a Drupal setting. Today is not that day, however.

What I'd like to talk about today is a little hack that I came up with to allow me/us to maintain a single codebase to serve several different mobile apps.

Multisite Drupal

You're likely already familiar with this concept, and it has its proponents and its detractors. The second (anti)...

The drush command 'mongodb-migrate-prep' could not be found.

For some reason I got it into my head the other day to tinker around with MongoDB and Drupal, masochism I guess. Anyway, I finally had the opportunity to start tinkering with it last night.

The set up was fairly easy - if you're on a Mac with Homebrew just hit up the josegonzalez builds of PHP5.5 and then brew install php55-mongo or something like that. Just brew search php55-mongo before you go blindly copying that command in.

Making the connection between Drupal and Mongo was also...

Cool Nginx feature of the week

Nginx configs

So I recently had a couple of seemingly disparate tasks come across my desk. We recently launched a HMTL mobile app, an Angular front end to our Drupal sites. We decided to completely decouple the mobile app from the Drupal codebase after a fairly long exploratory period trying out different approaches.

When launch day finally came, we set up the mobile app at app.$BRAND.com, with our main sites at www.$BRAND.com. Acquia has this cool feature in their Varnish layer that...


Enlightenment is realizing that the straight job with the commute and the boss actually provides more of what you were seeking from the experience of being a professional grade musician than being in a professional grade band.

For the first time ever I'm part of a team with stated goals and long term plans laid out in service of attaining those goals. It's an amazing feeling that I wouldn't have had I not given the band thing the commitment that I did.

So thank you, Railroad Earth, for...

Function 'fooController' is undefined

I spent about an hour pulling my hair over this one. I'm deploying an Angular to dev for the first time, it works fine locally, but everything is busted when I grunt build and push it up to a server. I'm using ngMin and using the supposedly safe syntax for defining all my dependencies, but unfortunately any Google search that includes "grunt build" and/or "minify angular" only turns up answer that pertain to that fairly well know problem.

So, I commented out Uglify in the build process...

Dear Dennis

Hey Dennis, I became a first time WNCW member during the Gospel Truth a few weeks ago. It really is a different feeling you get listening to a radio station that you're helping to support, but that's not my point...

I moved up to New Jersey for the Railroad Earth gig a very long time ago now, but I'm an App State alumni, class of 2001. I've been trying to get back down to somewhere in the NCW listening area ever since but despite my best efforts, me and my family have gone and grown roots...

Building a mobile app with Drupal and Angular (part 1)

The beginning

I'll make the "what is Angular" part as brief as possible.

Angular is a giant JavaScript framework from our friends at Google. It fits into a similar camp with Backbone, a framework that Drupalists will likely have heard of since it's included in D8 core. Angular aims to make it as easy as possible to build a single page CRUD app, and in my limited experience it succeeds.

I've never built anything with Backbone, but have the Peepcode series on it, and have been working...

Almost every YoshiToshi podcast

On Beta "invites"

This is currently in regards to the Atom editor that I dutifully filled out an "invite" request for. It could be about anything, though. I get this same feeling every time.

It takes me right back to high school gym class and waiting to get picked for a team. And waiting. And waiting. And God this is embarrassing, will somebody please fucking pick me already?

This is a piece of software that you install on your computer. Not a Saas thing that'll buckle under the weight of too many...

Disable Chrome Notifier

That unwanted thing that Google put in your top menu bar? That bothers you, too? Can't find where to turn it off? That's because they wanted to hide it from you.

  1. chrome://flags - put that in your address bar.
  2. Search for 'notifi', as in 'notifications' (which is what it's called right now).

Where is the Homebrew Memcached config file?

I've finally been getting around to using Redis for caching on this blog and other Rails projects I've got laying around, and I've finally gotten around to Homebrewing PHP 5.5 to use for my local set up at work. Jose's default PHP 5.5 brew doesn't install the new Opcache, so look around and make sure you install that version because it screams.

I guess you could fairly say that caching has been on my mind a lot lately as I also finally got around to installing and using Memcached here in...

Dear blog

I've been so busy lately that I forgot to wish you a happy birthday yesterday. I'm sorry. I thought today was yesterday, and I really have been looking forward to this day, er yesterday, for a while now.

We've both been through a hell of a lot in the last five years, I seriously can't believe it's been that long. You were born in the RRE tour bus between Stroudsburg and Easton on our way to play the GA Theater (the old one!). You only stayed in Blogger for all of a week before I whisked...

Compiling Nginx

Because I have to look this up every. single. time.

pcre ---

apt-get install libpcre3 libpcre3-dev

zlib ---

apt-get install zlibc zlib1g zlib1g-dev

init script

#! /bin/sh

# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT...

Getting up to speed with Rails 4 "russian doll" caching and Redis

Russian Doll caching

It's a well branded name for something that makes total sense after reading one blog post. The second half of this blog post will actually get you pretty much there.

If you're coming from a PHP/Drupal background like me, you might be surprised to find out that the database is not the bottleneck in Rails-land. Whereas on your typical Drupal page you might have anywhere from 50 to 1000 database queries being run, you'll be hard pressed to find a Rails app that comes...

Why doesn't 'authorized_keys' work?

For a while now I've been leaving my work computer on 24/7 and remoting in to do all my work when I'm out in the world. I have the same public key on both machines (perhaps not the safest thing in the world, true), so I was confused by why I needed to enter my password every time I logged in to my work computer. Not so confused that I took the time to figure it out until recently.

I had set permissions on the authorized_keys file to 400, but for some reason it needs to be 600.


Building a drop down menu from scratch

Dropdown menus may seem like something that falls under the "solved problem" category, but they can be surprisingly tricky. Tutorials that you find online will usually walk you through a very simple example that assumes markup that you never have. This will not be that. We're going to talk about the theory behind building a drop down so that you can better reason your way through the mess of markup that you're given.

If you're working with Drupal and your requirements are outside the...

Big Sky Big Grass

I totally forgot to take any pics of the shows, but I got some good mountain shots.

Toward the base

Bottom of the tram

Bottom of the tram. Yes, I skied that shit.

Top of the tram

Waiting for Thorn to come up the next tram.

Parsing query string parameters out with javascript

  // creates a global variable called urlParams
  // adapt as needed.

  // will forcefully downcase all query string params

  // use --
  // http://www.ignoredbydinosaurs.com?foo=bar&test=2
  // urlParams.foo  // bar
  // urlParams.test // 2

  window.urlParams = (function () {
    var match,
    pl     = /\+/g,  // Regex for replacing addition symbol with a space
    search = /([^&=]+)=?([^&]*)/g,
    decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
    query  =...

I haz hacks

I've got this relatively old Hitachi plasma TV that has been slowly going down hill for years.

It's been doing this thing where if you turn it off, you can't turn it back on without letting it sit there for sometimes a very long time. I can't find the exact thread at the moment, but I found it - the one where the guy describes the exact problem I'm having, the solution, and the link to the part # on DigiKey. So I ordered it up.

I thought the bigger boys would get a kick out of it, so...

Resetting postgres sequences

I recently rebuilt this site (again, I think this is v9 now) into Rails and Postgres. I was moving out of Drupal, so there was a significant downsizing of the database, and some pretty painless migration of the data. Once again, I used the Sequel gem to write the migration script to pull out the posts and related data that gets scattered hither and yon in Drupal's database. That was the easy part.

I did all of this over a period of about two weeks and it was joyous, painless, and fun. I...

Hex values, rgb, and me

One of the first discoveries I ever made in web development was that CSS hex values that were all the same number would always give me some shade of grey. #444 was dark, almost black. #ccc was light, perfect for form borders. Not long after I discovered that Photoshop wouldn't accept these values and would make me type in all 6 characters - #444444, #cccccc.

Sometime after that I discovered how to tap into a shade somewhere between #eee and #fff, just a barely perceptible off-white with...

A Drupal Views epiphany

There's a question currently on r/drupal that asks the question "What's the best way to get your head around Views?". There are many excellent answers -- "study the Views API file", "get to know the UI ", "fuck Views because it writes poor queries" -- but none of them, to me, really answer the question.

Views, for the uninitiated, is the open source, community contributed module that is the reason Drupal is the powerhouse that it is currently. Yes, there are many excellent Drupal features...

First experiences with Drupal and HHVM

After reading the news about Fastcgi support landing in HHVM, I had to finally give it a try. I'll assume that you're at least familiar with HHVM and it's design goals, but if you aren't the HHVM wiki is a good place to start. In a nutshell, it's a new PHP runtime courtesy of Facebook that, if you can get it working, promises to run circles around any PHP interpreter currently on the market.

So I came into work on Wednesday fired up to give it a try. I wasn't expecting anything at all,...

Weaning off of jQuery animations with CSS Transitions

I've recently finished up a project here at the job that gave me a blank check as far as writing the front end code was concerned. It was among the most blissful Drupal projects I've ever worked on, as my boss did all of the Drupal stuff, and I wrote all the code. It was heaven.

So, there were a lot of requests for some cool javascript features, and rather than reaching for the plugin drawer, I decided to write most of them from scratch. The main feature pages are mostly like this. The...

The music / business idea I haven't seen tried yet


I have a lot of friends in successful working bands that all have one thing in common - a fairly useless website. Pretty much every band I know, with a very few exceptions, treats their website as a tour poster. Most of them have some kind of "store", but frequently they're stocked with leftovers from last year's road merch. You often have to go through PayPal to checkout. I don't know of anyone short of Radiohead that actually lets you download digital goods directly from...

A few things a Drupal dev should know about Ruby

Hi there, probably-front-end-dev-who's-met-and-used-Sass-and-likes-what-they-see. This is for you.


Sass is made out of Ruby - it's a very pleasant, general purpose programming language that's pretty easy to learn and like. Ruby has a package management system whereby libraries of Ruby code are bundled up into what's known as "Gems". Sass is a gem. When you install it, you get a couple of new executables to play with in the terminal, namely sass and sass-convert. The latter of...

On contributing to open source projects

Whenever a new developer shows up in some online thread asking for advice on how to learn to code, the replies always include "find an open source project to help with". The 5th birthday of the Macintosh that I bought to learn to code is any day now, and I've just now worked up the chops and the courage to follow that advice. Here's what I'd say to a younger me.

When people say that, it's usually really intimidating to think about. What project? How do I get involved? What if I suck...

Javascript - named function declaration or assign to a variable?

What's the difference between assigning an anonymous javascript function to a variable or just declaring a named function in the first place? Turns out "hoisting" of the function only works if you declare it as a named function in the first place. Assigning an anonymous function to a variable doesn't perform the hoist.


      (function() {
        console.log(f()); // 'hello'
        function f(){
          return 'hello';


Homebrew Postgres install issues, Mac OS X server

The program "postgres" was found by "/usr/local/Cellar/postgresql/9.2.4/bin/initdb"
but was not the same version as initdb.

I've been battling this for the last couple of hours, trying to figure out why I can't make Postgres run as easily on my desktop as I did on my laptop. Homebrew took care of it all, just leaving me with the agony of taking off the MySQL training wheels to figure out this new and scary Postgres admin syntax.

So I uninstalled the Homebrew version and went to the...

Nginx, Unicorn, Redmine, and my truncated attachment downloads

I'm the honcho in charge of our in-house bug tracker - Redmine. Redmine is a rather large Ruby on Rails project, thus nobody in house when I started here had any knowledge or interest in maintaining the thing, since Ruby servers have a bad rap for being kind of finicky to set up, at least in relation to PHP. So it goes.

I recently upgraded to the lastest stable release - 2.3.1 - and decided to 86 Passenger as our app server in favor of Unicorn. I've been setting up all my Ruby servers...

Finding that pesky Acquia host entry for your development environment

At my gig we host our sites on Acquia's dev cloud. The dev environment is pretty locked down, obviously, since you don't want multiple, publicly accessible copies of your sites floating around out there, especially when it could be in any state of brokenness at any given time. So the way we do it is to use .dev domains that aren't publicly routable via DNS. We have a big ole master hosts entry in the local network that takes any of those dev domains and routes them to the proper...

Explaining Non-Relational Databases To My Mom

I was on the phone with Mom yesterday, and we got to talking about technology - a thing that actually happens fairly frequently. Being an only kid, she's genuinely interested in everything that I do and it's been helpful to have someone who's mostly non-technical to bounce explanations off of when I'm getting my head around a new piece of gear.

The piece of gear that I was explaining the other day was something called Mongo DB. Mongo's parent company is called 10gen, and they landed on...

Converting mp3s to ogg files in the background with Sidekiq and FFmpeg

I have a friend for whom I'm building a site right now, and I chose Rails to do so. I think I'll probably reach for Rails for most sites I build until I get bored of it, which isn't going to happen any time soon. I also learned a few things about different browser's implementations of HTML5 audio, which I'll get into first.

My buddy is in a band, and so part of the functionality of the site is a photo gallery, and another part is a music player. Whereas in the past I'd have just reached...

The infamous Phil gig

I didn't remember mixing this but it must've been some time last year. This was the gig that Vince Herman opened up and Phil Lesh pulled up in his Ferrari out front and helped us level the joint for the second set. Strangely, there were no tapers present whatsoever, so no tapes showed up on the Archive. This was, however, one of the tours that we were taping for Elko, so we were running a 24 track rig that evening. I remember it being a challenge to get everyone down to 24 inputs, and...

Using the MySQL command line with Media Temple's grid server

I've been a Media Temple customer for a long while now, almost 4 years. The file system on my grid server is a timeline of my learning programming and systems administration. I mostly work on big-boy systems over the last 2 years or so, so my comfort level with working through SSH is pretty high now (much higher than working through GUI tools that want to hold your hand, actually). That's one thing that I always loved about MT - the fact that they give you a pretty decent command line...

So yeah, I got a job.

I love this blog. It's amazing how much I used to write. I was so young and so passionate! My ego was totally huge! I had no idea how much of a ride I was really in for! It's a good thing, too!!

So yeah. I got a job. I've been bouncing around a bunch of different technologies for the last few years, trying to figure out where to land, what to do, what to be. Emmitt-Nershi is kind of chilling for the time being, and I happened to find out this was going to be the case the day I got a...

Altering the Drupal Password Reset process

WARNING! D6 code ahead!!

As improved as D7 is, they don't seem to have caught on to this one, so maybe this will help those of you as well.

The internet is surprisingly scarce on information about this topic. Maybe most people don't need to alter the password retrieval process, but I've got a client with a variety of different roles on their site. These different roles have different profiles via the Content Profile module. On account of numerous other account/profile management...

The thing about Drupal, again

So here I go again.

I've written at length on this blog over the years about Drupal. It's a great tool for getting things done right now. It's seen a huge uptake over the last couple years among government agencies and educational institutions, so being versed in Drupal development is a good career bet at the moment, meaning over the next couple years.

In the longer term though, I see it as pretty shaky and here's why.

Drupal's raison d'etre is that non-technical users (meaning -...

Blog v7, I think

v0 - Blogger.

I think I got 3 or 4 posts in before realizing I wanted to try actually throwing up a website of my own.

v1 - Wordpress

One click installer at GoDaddy, my webhost for the first three months.

v2 - Drupal

I wanted to get more involved in the development side of it and was really loving the opportunities in the Drupal job market. Migrating a Wordpress blog was so predictable that there was a Drupal module to do so, and it brought all of my old posts, categories,...

Web designer or web developer?

I see lots of these posts on Craigslist -

Meeting Planning firm is seeking a web designer on a freelance basis to work with provided art work in Photoshop/Illustrator and host onto closed invitation system.


Web designer must have design sense. Must code HTML/CSS -- Java a plus.

I think they'd probably get taken more seriously if they replaced all instances of "designer" with "developer".

So, it's pretty simple. A designer designs. A developer develops. "Web designer...

jQuery Noob - script not working?

It's simple really, but you have to know a few things about how a browser renders a page to get it. jQuery is a wonderful thing because it removes the need to know a LOT about a LOT to do with the DOM and still get amazingly cool things done - slideshows, form validation, etc. However, if you go and learn a bit more about how JavaScript works in a browser you can go beyond copying and pasting code snippets and really start getting creative. Or surgical. Or whatever you want.

So when...

Git and Dropbox

I've just recently started to discover what Dropbox is really good at. I've had one for at least a year and almost never used it. The only thing I'd ever really used it for was client assets like PSDs and the like. I just discovered the Dropbox secret weapon - the symlink.

A symlink (short for symbolic link), if you don't know, is basically like a pointer to a folder/directory. It's a really nifty way to help you organize your filesystem. Say you use iTunes and for some reason you like to...

How to test meta tags with CasperJS

Hi, this post is wildly out of date. I tried to follow it to set up some test within the last year and none of this stuff actually worked. The concepts are likely still valid, but don't expect to be able to copy much.

jg - Oct 2015

I went down to Drupaldelphia (the name should be self-explanatory) a couple weeks ago mainly for a session called "Testing your site with CasperJS". CasperJS is what's known as a "headless" Webkit testing framework. That means it's essentially a...

How (and why) to set up your Mac for Rails development - part 1

The short version -


The longer version -

Setting up your Macintosh for Rails development is actually sort of like Rail development itself - you have to at least kind of know about a lot of different things before you can really get anywhere. I'd say I'm new to Rails development even though I've been poking at it since 2.1. 2.1 is the first version I remember after I first bought a Mac and started trying to teach myself to "program". It's taken me...

The Michael Daves story

Did Telluride last year. 'Twas a blissfully awesome return, particularly since a year earlier I thought my music career was over.

So they pick all us rockstars up at the Montrose airport. I waited around for a bit because the other dude that was getting picked up (who turned out to be Michael Daves) got in about 30 minutes after I did. He showed up and I was getting ready to walk out of the airport when somebody called my name. I turned around to see an old neighbor of mine from Boone, who...

The State of Bluegrass

It's a toy I've been wanting to build for a while. I stole the domain name from Book fair and square, and have been quietly honing the skills to actually build it.

What I'd ultimately like to have is a site that is basically a collection of all current, working bluegrass bands. When you come to the front page, you get a list of bluegrass shows happening in your area. It does this by roughly guessing via your IP address. It has a list of shows in the database that it scrapes from...

Unresponsive touch UIs

If you haven't seen this yet, it's a clip taken from yesterday's press event for the new Microsoft tablet. Dude launches Internet Explorer to show us around the browsing experience, but the thing immediately locks up. It's not just slow but completely frozen, and after about 20 seconds when he realizes that he's not going to be able to demo anything else he has to go swap it out for another device to get on with the presentation. Awkward!

Anyway, there's so many things that we (the royal...

Random post professing love for my Macintosh.

So long story short - I've been doing this thing a few years, I've learned a few tricks and it seems like every single new developer trick I learn about is already set up in the Mac for me.

I just learned about Apache Benchmark. If you don't know, Google it. It lets you ding your webserver with 100 or 100,000 requests to see how it responds under pressure. It's really cool and really simple.

Please don't do this (more than once).

ab -n 100 -c 5 http://www.johnnygrubb.com/

That means,...

Markdown in Rails 3 with RedCarpet

updated Jan 2014 for Rails 4, see bottom

I just got this blog up and running yesterday, a marathon of pain but ultimately successful. So today I wanted to add some Markdown action so I didn't have to drop into TextMate to add <p> tags to everything all the time.

RedCarpet seemed to be the gem that was recommended, but it's recently seen a complete API overhaul that has rendered useless the vast majority of the de facto documentation out there. So, viewers of the Markdown Railscast,...

Praise Jah!!

My first post on my new blog! I wrote this one all by myself, with the help of hundreds and hundreds of open source collaborators, Stack Overflow commenters, IRC, Google Groups, and sheer force of WILL!!!

This is my first running, production Ruby on Rails app. It took me about two days/6 hours to write, and about 4 days/30 hours to deploy. Deploy means "make work on the web so people can see it" and it was every bit the pain in the ass that I'd heard it was supposed to be. But by god, here...

After the age of scarcity

I was listening to RadioLab the other evening during the WNYC pledge drive. During the part of the show in which they were actually driving pledges they announced one of those perks for donors of a certain level, I think they called them "lab partners". It entitles you to some stuff, some interactivity with RadioLab producers, and the obligatory "exclusive content". The very first thing that popped in my head was -

I'm tired of content

I got to thinking. Commerce and economics. Supply...

It's the wizard, not the wand.

I'm reading this morning and I come across a post about a thing that somebody wrote called (or subtitled, I'm not sure) Node.php. Anyone who doesn't understand what it is by looking at the name wouldn't understand my explanation for what it does, so whatever.

For the non-programmers --

It's written in a language called PHP. PHP, despite being the backbone for the server side component of a huge number of the largest websites in existence (as well as this tiny little one), is almost...

Database migrations with CodeIgniter - 101

So I've decided to start playing around with CodeIgniter. It's a supremely simple PHP framework that has a lot of good documentation, a pretty big user/developer base, and has a lot in common stylistically with Rails. I've just really started playing around with it, and wanted to use the migrations feature for building up my database. I won't explain what migrations are or how they work or why to use them because that's been covered.

Our project will be something like a database of...

Databases cont. - the rookie web developer series

This is part of an IRC transcript between a buddy and I, wherein I try to explain a little bit about how the internet works and why knowing at least a little bit of database theory will go a long way in demystifying learning how to build stuff. (It's a technical term.) He's trying to learn a bit about Drupal and about how you build sites with it, so I'm going to tag him in on a project for a friend of mine who runs a yoga studio. Hers was the first site I ever built, in Wordpress. I've...

Something about Bluegrass

I dunno. I’m not really sure what I’m trying to say yet, but I’ll give it a whirl.

There’s a really interesting conversation going on right now, initially spearheaded by Pandolfi, but now spilling out into the wider stream. The whole “what is bluegrass” conversation, and it’s almost certain that it’s always been going on but just never showed up on my radar.

I’ve been, in the most nominal sense, a bluegrass musician for close to 10 years now. Jeremy from the Dusters...

An overly long analogy about the IBMA

I'm just going to attach this note to a rock and toss it over the wall here. Maybe someone will notice it. Maybe it will even be read.

Hi. I'm one of the barbarian bluegrass players on the other side of the wall. I've been looking at your gated neighborhood my entire professional life, and it looks very nice from the outside.

A guy that I respect a lot also happens to be a member of your community. He and his band come outside the gates all the time to play for the masses out here,...

Chris Pandolfi IBMA Keynote 2011

Respect, mon.

Chris Pandolfi IBMA Keynote 2011 from Chris Pandolfi on Vimeo.

Permissions abuse ~or~ the Facebook shell game.


My favorite thing on the internet ever so far.

Share music with my Facebook friends. Great idea. Find all kinds of new music without having to commit to buying it. Great idea. Subscription feature that lets me take it on a plane trip. Great idea.

Today I have to reconnect to Facebook for some reason. I look at the ridiculous list of permissions that Spotify wants me to grant them. Access to my data when I'm not online. Permission to post on my behalf. To name my third...

The Great Lie - Lorem Ipsum

And by "Great", I don't mean awesome.

For those of you who don't know what I mean when I say Lorem Ipsum, it's standard gibberish copy put in place of the real copy that's going into your design. It's been used for decades if not centuries to allow creative teams to test out different visual designs and know what it'll look like when some words get put in there.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua....

"So what are you up to?"

So here I sit, at the end of another brief tour, watching the sky get lighter outside the windows at the St. Louis airport. Listening to a bit of the new Bon Iver record, which is beyond terrific to the point of being maybe the record of the year for me. We'll see.

It's not that I haven't had much to say (though I haven't had quite as much to say), it's just that the time in which I used to say it has been filled by the consequence of my prayers for work being answered. I've been very,...

Why I dig on Sass these days (the quick version)

Sass is a programming language. It's purpose is to take some of the repetitive drudgery out of writing CSS (don't get me wrong, I love writing CSS). It does this by letting you define things such as constants and functions, things that other programming languages give you but CSS doesn't. The end purpose of Sass is to be digested and spit out as plain old CSS.

There are a couple of best parts. One of them is being able to define constants, referred to as variables in Sass. This lets...

A quick trip to the panic room

I use Git. I'm relatively new to the party and it's all I've ever used. I tried to get SVN working for me back when I was first gettings started and it felt like hand-wiring a tube amplifier - slow, tedious, and you don't know if it's going to work until you're totally done. I've more recently taken on a client who uses a nifty issue tracker called Jira, but they have their source checked in to SVN. I thought I was going to to have to get familiar with it until I rediscovered a tool that...

Drupal select list for the Form API - 50 states

This is the list I've spent a half hour hacking around in TextMate trying to figure out how to not manually build. Couldn't quite do it, so here it is, that you may find it and use it when building a Drupal form that has a select list of all 50 states and the District of Columbia.

'#options' => array(
    '' => t('Please Select'),
    'AL' => t('Alabama'),
    'AK' => t('Alaska'),
    'AZ' => t('Arizona'),
    'AR' => t('Arkansas'),
    'CA' => t('California'),
    'CO' => t('Colorado'),

On the music business, generally speaking.

It occurred to me over cooking lunch for my boys just a minute ago that, a week before my 33rd birthday, I've been in the music business for half of my life. I'd like to share a couple of things that I've come up with.

First of all, to get anywhere in this business, to get anywhere sustainably that is, takes a really long time. There is no short circuiting this process, short of selling your soul to the devil. Even bands like the Black Eyed Peas who are on top of the world right now in...

Bluegrass fans

Regarding Pandolfi's recent pot stirrer:

It's pretty much all been said out there, but I'll tell you what gets me going to the point that I have to write about it. It's when I read comments like this one -

Bands like Railroad Earth, Green Sky, Yonder Mountain, Infamous Stringdusters, etc. are going to be labeled bluegrass and I think that's fine....as long as they understand where the roots of the music came from and they have an understanding and respect for that.

Get stuffed. ...

Drupal 101

I've recently begun a new contract for a rather large Drupal site.  I was very excited to land this contract as it shall be my first bona fide "enterprise" contract and there's already a large amount of content on the site despite the company being rather young.  There are a lot of forms on this site with leads being transferred to a backend system that I'll probably never have anything to do with.  Anyway, I was excited to get a look in the back end of the Drupal portion of the site to...

What really killed the music industry...

Well unsurprisingly, even after several minutes of Google searching I'm unable to dig into the real article on this one, only countless verbatim reposts on countless web-scraping sites.

Anyway, here's an example. I don't hate on Jon Bon Jovi, but I do hate on the misrepresentation of facts. Steve Jobs didn't kill the music industry, the music industry killed the music industry. Here's how.

Some time in the early 80s record companies and stereo manufacturers (then known as HiFi) found...


It has been a week. I've been working lately on a site for a non-prof out in California. Their mission is the spread of invasive plant species in California. I built them a system to allow the crowdsourcing of their Spring Nursery Survey, which is where they send folks out to various botanical nurseries around the state and make sure that they aren't selling any plants that they shouldn't be selling.

It's not illegal to sell invasive plant species, most of them are quite pretty. It's...


I might as well ditch this blog. I have no idea where to start another post. Is this a technology blog? Is this a blog about life as a musician? Is this still my rallying cry against the music industry? So much has gone on the last month/year/decade I don't even know where to begin.

I've joined a band. I didn't think I'd be doing that ever again. I actually thought my career as a professional player was over. I thought I'd seen the top of the mountain and that was that and it was...

On Life After Earth

I suppose there's a few ways a post with this title could go. I'm flying back from my first run with the new band, and there were a few themes bouncing around the last couple weeks. This band is a lot lower overhead. There's no bus call. There's no soundguy (although I personally hope that's remedied this year). Load in and setup take about 15 minutes. Billy and Drew managed to work out lift passes for us to all get out on the mountain 3 times in the last two weeks. I grew up skiing a...

Helpful books

This is a little collection of books that I've found helpful over the past few years, ranging from design to development to business to fiction.




As business models go, there are currently two dominant ones: either people like your product enough to purchase it or they don’t care enough to buy it but will overlook its deficiencies if it’s “free” in exchange for their personal browsing and purchasing info sold to advertisers. The former model is Apple’s, the latter is Google’s.

Apple sells emotional experiences. The price is what users pay to be delighted by Apple’s stream of innovations and to be free of the...

Top 3 albums of the year

#3 Arcade Fire - The Suburbs

I've never listened to these guys before. I'd been getting my indie rock fix from Death Cab and the Decemberists for the last couple of years and had never felt the urge to get any of their previous albums, but when their web video for "We Used To Wait" came out I couldn't stop watching it. It's one of the most amazing things I've seen done with the internet so far, and the tune behind the video was really good, too.

After a couple of weeks I bought the whole...

Net Neutrality and the Golden Goose

Just a week before the FCC holds a vote on whether to apply fairness rules to some of the nation’s internet service providers, two companies that sell their services to the country’s largest cellular companies showed off a different vision of the future: one where you’ll have to pay extra to watch YouTube or use Facebook.

~From a Wired article earlier this week. READ IT

Now here's why this matters...

It's not about Facebook or YouTube. Those seem on the surface like silly...

Facebook may rule the world, but you still need your own website.

I was having this conversation on Saturday...

I'm hanging with my new musical buddy George Kilby. He's decided to upgrade his website so we're doing a consult to get a feel for what direction we're going to move him in (pardon my grammar). He said something at one point about a friend of his who'd decided to totally forgo having their own website in favor of just managing their presence through Facebook and a couple of other social sites.

I'm kicking myself for not having a canned...

The Bass influence countdown, number 4

#4 - John Digweed

So this one's might need a little explaining. I've said it here before, but it's likely that you weren't here for that - I went through a phase in college where I traveled all over the southeast going to see shows. I didn't go to Phish shows except for a few times, and String Cheese was a bit after my time. I and my buddies went to go see DJs. This was the golden age of Keoki, Rabbit in the Moon, Simply Jeff, the Dubtribe Soundsystem, Scott Hardkiss.. My first party...

Migrating the blog from Drupal to Jekyll

Reasons for leaving Drupal, a preamble

I'd had this website on Drupal since some time in July. If you look through the archives, you'll notice a relative dearth of posts from this time period. Drupal just has a way of sucking all the fun out of blogging. It's very, very slow for one thing. I had a lot of trouble integrating the site with the Disqus comment system that handled all of my Wordpress comments before I made the move so I was forced to use Drupal's comment system. I'd written...

ibd Version 5.0, and top 5 bass influences.

Well, here we are. It was a tortuous migration, but IgnoredByDinosaurs (the blog) has reached version 5. I think it's version 5, let's see there was Blogger, then WP, then Drupal, then back to WP, then back to Drupal, and now this bad boy, so I guess you would call this one 6.0.

This blog is now run by a system called Jekyll, a "site generator" that's written in Ruby. What it does is take a bunch of text posts and runs them through a couple of different templates and spits out a full...

Step 1 - text editor

May I suggest you download this book -- Learn Python the Hard Way? It's got instructions in the very first bit about getting a decent, free text editor installed. TextEdit that comes with the Mac leaves quite a bit to be desired, and though I haven't personally checked out GEdit, I'm sure it's a step up. Of course if you think you might want to get serious about this, or if you get serious about this down the line, may I suggest dropping $60 on TextMate? I know it's kind of a lot of...

Let's try something.

Does anybody here want to build something? My buddy Jimmy of This Blog fame laid an idea on me the other night. He's a teacher, and a fairly progressive, observant one at that. I believe him when he says that there's nothing out there like this kinda simple, cool idea that he had. I think it must exist somewhere but it's not being properly promoted if it does. So, I thought maybe it'd be a cool idea to try and teach him a little something about web development, and teach myself a lot in...

Thursday morning coffee with the n00b developer - domains and hosting

Welcome back to another installment of the newby web developer series. This morning's entry comes once again from our buddy Jimmy, who the two of you reading might know as the highly technically inclined CT robo-teacher. He'll probably be reforming the state of education in your state soon.

What's up fool. My friend wants me to build him a simple site using wordpress. He already owns the domain name. My question is, once I build the site using MAMP, and get everything upload to our...

Random idea

My vet just recently joined the 21st century and moved all of their records from big, brown paper files to a computer system. Her husband is an IT guy so he did the research and picked out all the computers, networked them together and set up this software system for the office. It looked like a pretty big job to migrate all of their client records to a computer system, but hey, the avoided it long enough, right?

I don't know why I just thought of this, but about a web app that manages...

Slightly more in depth with Wordpress

I am having a blast. I found a nice photo gallery Gen Next - has lots of cool features; still working on it. I do need some help: 1) how do I keep the 'home' page of the WP site clear of posts? I just want to put some html text and links. It seems to always show the latest posts. I need to understand what is going on with that page. 2) How can I order the posts within a category. example: For Lyrics I have category per album with a post for each song. I need to order them in track...

More on Wordpress

This one is for my buddy, Bob. Bob is an old school developer who has recently been baptized by the cooling waters of the web. He's building a site in Wordpress, so I thought I'd post a few relevant pieces of info up here for him, and those of his ilk.

First of all, realize that Posts and Pages are almost the exact same thing. The key difference between the two as far as I can tell is not that Pages are easier to add to the top-level navigation, but that Posts allow you to classify them...

My little pony's first shell script

So I've been doing a lot of CMS work lately, both Drupal and Wordpress. The Wordpress gigs seem to come and go within a week, and are mostly just banging together a theme with varying amounts of complexity. I'm a recent convert to the 960.gs CSS framework, which makes the absolute quickest work of laying out a website. It's a thing of beauty and I've actually created my own base theme to make the work even quicker, but that's for another post.

Every one of these gigs requires the exact...

Keeping it up

Well, the hardest thing about blogging is not having things to say, but finding the time to write them down. And oddly, when I do find the time to write them down, I have very little to say. This is no exception...

There's a blogger out there named Anil Dash, who I first stumbled across at the Gathering by the River over there in Yarmony Creek territory. His bio is on the site, but he worked for Six Apart, a company that made some of the first mass-used blogging software. Their main...

Real innovation in the publishing industry

And I'm not talking about the iPad. The iPad is so cool I still haven't had the opportunity to play with one yet, but from a hundred miles up it's still just one of the bazillion devices that fall into the terrifically broad and jam-packed category of "gadgets to read stuff on the internet". "Consume content" is the hipster way of saying it. It's an obviously lucrative market, which is why it gets the attention of so many innovators. Well and good, but what about people who "produce...

This Google/Verizon crap.

I think Fred Wilson sums it up pretty well.

So now we have a situation where the access providers want to change the game. And they are seeking the regulatory approval to do just that.

Venture backed startups and venture capitalists don't use regulations and lobbying as competitive advantages. We don't have armies of lobbyists. We don't have congress on our payroll. But the access providers certainly do. They have been regulated for a long time. They know how the game is played and they...

Apple, iTunes, and Anti-trust

I was just thinking about iTunes this morning as I was downloading the new Big Boi record. iTunes is the only option to download music on my iPhone. I'd rather download music from Amazon mostly because they offer their catalog in mp3 rather than AAC format, because their albums tend to be a dollar cheaper, but mostly I think Apple could use some competition.

Amazon has the MOST outstanding iPhone app I've ever seen. It's not quite as easy as the website for doing heavy research, but only...

Installing Drush on Media Temple Grid Server

Drush is a tool for working on Drupal websites. It's technically filed away on Drupal.org as a "module", but it's not exactly a module. It's more like an add-on for your webserver setup, either development or production, that adds some really useful tools for managing your Drupal website. For instance, those of you familiar with Wordpress might be surprised to know that Drupal has no built in facility for updating either the core Drupal code or any of the add-ons (which go by the name...

Pruning the Ego

I was thinking yesterday for some reason.

I was thinking about how much more inspired I felt to write to nobody/everybody this time last year. I was remembering how it felt effortless to expound upon the music business and software as if I had anything of worth to say. Interestingly, I think I did. Interestingly, now that I ostensibly know a lot more what I’m talking about I feel a lot more reluctant to blather about it. Less confident. Why is that?

I think it has a lot to do with not...

Here they are =>

I knew they were out there somewhere. Their twist is that they're writing all the tools themselves. They don't have all their cards down on the table, but it seems like they're ultimately after some kind of easy hosted thing.


I still think that Drupal is a better way to go. In fact, I think any open source movement that can piggyback on the conventions and success of another is already that much further up the ladder. These guys appear to have a track record,...

ibd update

Hello, faithful. Or curious. Or google searchers. As usual I've got too many ideas and too much work and not enough time or attention span.

The iBD project lives here, or rather is in gestation here. It's probably going to be a few weeks at the least until i can actually put some time into it. As I see it, there's a goodish amount of work to be done. Gee, I wonder if that's why nobody has really tried this before? Anyway, in the meantime I have some actual work that I need to get off...

Ignored by dinosaurs - 3

The open source website system for musical artists

It's so obvious when I say it out loud. (edit: that's not exactly the most succinct tagline though, so help me out.)

If you're just joining the party and you don't know what open source is, check this out. If we haven't met before, this is some more of my backstory over the last year or so.


Forgive me if you've read some of this here a hundred times. Part of my process is to refine repeatedly.

I'm a musician. I'm 32. My...

Ignored by dinosaurs - part 2

I realized about a year ago that nobody anywhere even had a clue, never mind a plan that saved what was worth saving about the music industry – the music part.

Guilty. Most of us reading this are. There were several entire generations that went by where it was a perfectly logical thing to associate money and music as somehow being comfortable companions if not downright synonymous. It was BIG business - not in the way that defense contracting is, but it was perfectly logical for a...

Ignored by dinosaurs - part 1

If the music business is ever going to be saved, if musicians are ever going to be allowed a chance to achieve a minimum standard of living, if we are going to rescue music itself from it’s place as today’s disposable trinket and restore it’s place as the universal human language, then the paradigm has got to be completely and utterly reinvented.

I knew what I was looking for, but I still didn't quite get it. I was looking for some kind of way to make it easier to build successful...

I had this idea for a band...

So, the software model of yore is just that. The one where you go to the mall and buy a box with a disk inside of it. Do you remember doing that? I do. I actually remember it more clearly than going to the music store, but that's probably a figment of where I'm at right now in terms of my interests. I digress, within five sentences...

Where was I? Oh yeah, so the music business of yore is just that. Remember the one where you went to the store and bought a box with a disk in it? ...

Open sourcing the idea.

So, the 14 of you that still swing by here know my backstory. Sometime in 2003 I joined a band with a neglected website. At one of my first band meetings we discussed overhauling said website, since the majority of our fanbase was a grassroots kinda thing and most of our promotion happened via online channels like the Archive and YahooGroups, etc. Sometime in 2005 we still had that same website. I was at my parent's house in north Georgia when it occurred to me "hey, you know, you could...

Open source and why it's cool

What is open source? It can actually mean a variety of different things, but most simply it means free software that anyone can use as is or alter as they see fit for their particular needs. According to Wikipedia - "Some consider open source a philosophy, others consider it a pragmatic methodology." I think I fall into both camps, but being the pragmatic, methodological guy that I am I shall present that angle today.

When I first got into software and development a few years ago it was...

Open source the music business!

That sounds like the spirit, then! How do I explain this?

A tale of two doc sections

I don't know about you, but the difference between an exciting open source project and a less than exciting open source project boils down for me when I get to the first page of their documentation.

Note on the CiviCRM site they have a link that says "Make a PDF". Notice how on the SugarCRM site they have a mile long table of contents that helps you none whatsoever. Note how much background information there is once you get into the Civi documentation about what CRM actually is, and how...

The newby web programmer. Episode 3.

So, you've spent the last few months teaching yourself Wordpress. Good job. There are lot of crappy websites out there, most of them built by some site-builder commodity crap-stuffer at GoDaddy or Network Solutions or some other budget host. These are God-awful examples of poor web development practices. They're ugly. They don't render correctly in browsers. Many are all but invisible to search engines, which begs the question - if a website fails to show up in the first couple of...

Picking it up

Seems a shame to have this site over here, ostensibly my personal site, and not be doing anything with it. Seems a shame because so much of the last four months has been so personal. It’s been the hardest, weirdest, best, worst four months of my life so far.

I haven’t really been in-between-chapters-of-my-life for a very long time, and I now remember what it feels like. It’s why I moved back down to ATL to take some shitty job at the Guitar Center, just so I’d have something to...

How to embed a flash file in a webpage.

This is actually two different commands. One is for Mozilla browsers and the other is for everyone else. I forget why, something about the object property not being recognized by Mozilla. Maybe it's the other way around. If you're curious, it's out there.

You'll want to adjust the FILENAME and the width and height properties in two places - inside the object and inside the embed. Enjoy.

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 

Akamai plist error in console - you downloaded an Adobe product, didn't you?

Inaugurating a new "Geek" category for this post with the hope that I can prune back most of the current categories into Geek and Non-Geek. Anyway =

You're probably on a Macintosh and noticed it hanging momentarily every ten seconds or so. You probably recently downloaded Photoshop or Dreamweaver or some other Adobe product that made you download and install the Akamai download manager before it would let you download and install the Adobe product you wanted in the first place. Being...

Saturday 8:30pm

Well, it has been quite some time, hasn't it? So much has changed! So much is still the same! Where to begin? I've once again written this post in my head so many times that I don't know where to start. How about the first thing that jumps to mind?

Okay, the first thing that jumps to mind is that I just found a card in my backpack yesterday. It was given to me on new years in Portland, the night of my last show with RRE. I don't remember who gave it to me, which was probably their...

I have only one regret...

And that's that I didn't start programming when it first occurred to me that I should. I'd be at least four years further along. Sigh...

A brief list of the things I've been working on.

The front burner:

  1. Wordpress customization
  2. CSS
  3. Photoshop
  4. jQuery
  5. GitHub

The back burner:

  1. Rails
  2. Sinatra
  3. HAML
  4. SASS
  5. Webby
  6. Facebook APIs

A whole lot of PHP, CSS, JS, and when I have time, Ruby.

Race to Running Software

Get something real up and running quickly. Running software is the best way to build momentum, rally your team, and flush out ideas that don't work. It should be your number one priority from day one. It's ok to do less, skip details, and take shortcuts in your process if it'll lead to running software faster. Once you're there, you'll be rewarded with a significantly more accurate perspective on how to proceed. Stories, wireframes, even html mockups, are just approximations. Running...

Did you know...

...that the DOJ approved the merger of everyone's two favorite companies in the touring business - TicketMaster and LiveNation? They found no reason to have anti-trust concerns with a merger between a monopolistic ticket service and a monopolistic concert promoter/venue owner. But wait! There's more!

One person who may have had some input into this decision was FCC chairman Julius Genachowski. Fun fact about Mr. Genachowski - one of his previous gigs before he came to Washington was on...


Basically, just what it sounds like. The time during which your application, script, program, or whatever is run.

Prepare for the backlash

Because there is going to be one, trust me. This device isn’t as obvious as iPhone. It’s kind of subtle. Which means that those of you who have done the spiritual work to prepare for it will be fine, but those who haven’t done the work, well, they’re probably going to miss a lot of this at first. So you’ll see some noise about who needs this thing, it’s just a fancy desk ornament, and so on. I am telling you this now so that you can be ready for the harsh voices and they won’t...

The newby web programmer. Episode 2.

So, you've gone and installed MAMP and WordPress on your computer, or if you wanna sound really hip you call it your "local machine". You've gone and started building out a wordpress site for your school because your current website is an outdated embarrassment. Wordpress is kind of the no brainer choice, or so your buddy told you, because it's super easy for anyone to use who's familiar with a word processor. You'd like to attempt to keep the content on your site fresh, so it sounds good...

Well that was fun.

Out with the old, in with the newer.  Yes, I just spent the last 3 hours writing SQL queries, mostly by hand in order to move this blog back from Drupal to Wordpress where it belongs.  Some of the effects are still evident, such as the weird catagories.  Luckily I find this kind of shit fun now, so I'll fix it tomorrow.  Thanks for stopping by.

The newby web programmer. Episode 1.

This post is for my buddy Jimmy. He's a teacher in CT and has set up a Wordpress.com site for his classroom. Of course the parents love it, and he's the young techno-hip teacher in the school so his principal has allowed him to go and set up a new site for his school, whose hideous and outdated site was left for dead by the side of the road several years ago, apparently. He just sent me an email asking about downloading Wordpress. I responded by asking why because downloading and using...

On Drupal.

So far it's been a little boring. I've added a few modules, mostly to achieve some comment functionality that Wordpress comes with almost out of the box, and somehow I find my database up to 90+ tables. And the comments don't even really work that well.

So, in researching how to move from Drupal to Wordpress (since I've of course been doing mountains of Wordpress hacking for the last weeks since moving to Drupal), I've discovered that it's basically not easily doable, due to the above...

On Facebook's new no-privacy policy.

I don't buy Zuckerberg's argument that Facebook is now only reflecting the changes that society is undergoing. I think Facebook itself is a major agent of social change and by acting otherwise Zuckerberg is being arrogant and condescending.

via = ReadWriteWeb.

And, in my humble opinion, he's begging the FTC and the FCC to get involved in a sector of the economy in which they can only do lasting and permanent harm. This is why 25 year olds shouldn't be allowed to be CEO of companies this...


I appreciate that you've stopped by. I unfortunately have nothing to say about anything. I feel like I should be giving some sort of summation on the last 7 years in a band, but I don't have anywhere near the perspective to do so yet. I also don't feel like just blathering about technology (again) yet, as I don't feel like I have the guns to be espousing my viewpoints on that either.

This blog might be a little static for a little while.

What I'm doing in the meantime is rewriting...

link_to 'Seven years gone'

Maybe ten years is too long a period of time to plan for. So how about seven? Seven years from now, what will you have to show for what you're doing right now? If your answer is, "not much," perhaps you should consider a new plan, one that might generate a different answer, or, at the very least, be a more fun way to waste seven years.

via => Seth Godin.

On airport security.

"A systemic failure has occurred, and I consider that totally unacceptable," an angry and unusually blunt Obama told reporters near his vacation retreat in Hawaii.

via LA Times

A few points =

I haven't noticed any change in any security whatsoever in any of the 3 airports in which I've been in the last three days. I am not, nor has anyone that I've talked to been concerned with getting killed by a terrorist. The perp in the case was "subdued by passengers and crew" on the plane.



I'm kind of ready to get this over with.

Try Ruby


The coolest and most useful programming tutorial I've seen so far.

The Twitter API is Finished. Now What?

The future is here. Check it out...


p>The Twitter API is Finished. Now What?

via Anil Dash

Could I ask a favor?

I'm testing out this new comment notification system that will supposedly email me when people leave comments, with the aim of making this website (that's getting a tiny bit of action now) a little more conversationally interesting. Would you mind leaving a comment down there? And if there's already one there, would you engage that person in some banter? Supposedly they'll get email, too, unless they untick the "notify me" box.

I appreciate it. By the way, I don't think it's working and...

More on quitting a band.

I just realized this weekend that I missed something in Friday's post.

So, if you haven't already, take a look at the dates, and allow me to prepare a meditation on why November seems to be such a drag for touring bands... Surprise! I'm a cliche! All of these announcements were dated sometime in November - Billy in '06, Ben in '07, Zac in '08, and myself in '09. I already asked, what is it about...

On record labels.

I was just thinking this morning about what a hilarious and glaring anachronism the term "record label" actually is. The "record" as a popular medium for musical commerce was essentially replaced by the CD when I was about 5 years old. There haven't been "labels" on popularly consumed music nor have they been sold in "record" form in approximately 25 years. Yet mavins of popular culture wonder "what will become of the record label system?" When will they finally embrace the digital...

Dear Wood Brothers,

We met last October at the taping of the "Woodsongs Radio Hour" in Louisville, Kentucky. It was the one where Edgar Meyer and Chris Thile were there, also. They did the show after ours? Anyway, I just wanted to tell you something...

I spent the better part of my college years listening to a lot of MMW. I actually had to willfully cut myself off because I was absorbing a bit too much of Chris' style, in my youthful opinion. I hadn't really listened to much in the several years since...

On quitting a band.

I thought I'd take this quiet opportunity to try and recall some of the thoughts that have been bouncing around my head the last few weeks. I was thinking about all the various manners in which many of the bands that I've known have experienced or dealt with personnel changes. I believe there to be a spectrum, and my departure from RRE seems to fall somewhere in the middle.

On the one side you have the "okay, bye" method, most notably employed by my friend Zac Matthews, formerly of Hot...

Today's discoveries

I had a great blog post going in my head while I was cooking dinner, and now that I have time to write it all down, I'm too tired. It's been a long day. We woke up without power this morning, which happens way too often in Stillwater. No power means no heat and no water, since we're on a well and our pump is probably as old as I am. So I got out of bed, lit a fire in the fireplace, lit the burner on the stove and got to making pancakes. We were out most of the day, hence my tiredness. ...

Launch fast and iterate.

Well, this blog has hit version 3.0, with today's torturous migration from WordPress to Drupal. Why put myself through such an ordeal? Because if I'm going to paint my masterpiece, I'm going to have to start butchering some canvasses, and Drupal seems to beg for me to hack away at it. That and there is a world of flexibility in this platform that doesn't really exist in WP.

It'll be a process of getting up to speed and making this look and feel and act as nicely as the old iBD, but...


I'd said earlier that I'd use this blog as a tool to try and explain the process that I'm going through so as to hopefully help some of you understand what has led me to this decision (to quit my awesome band).

I'm changing my mind.

Most of what I'm feeling and doing and going through at this point is way too personal and, the existence of this blog notwithstanding, I'm kind of a private person.

Edit: what I mean is that I'm going write about whatever is on my mind, just like I've...

Geek Club.

I had so much fun last night that I'm writing about it before I've even had a cup of coffee.

The first rule of Geek Club is:

Don't talk about Geek Club. Actually this first rule is my own, and I'm breaking it immediately, except that I shall not refer to Geek Club by it's true name. It took me many months of searching to find it, and I don't want to spoil the sense of victory for you, should you be inclined to sniff out your own local chapter.

The second rule of Geek Club is:


The creative fire

I just finished "Zen and the Art of Motorcycle Maintenance" in the ATL airport yesterday. I tried to read it in college and failed miserably - it was just way too wordy and too deep for 20 year old me. For some reason about a month and a half ago I picked it back up and gave it another try, shortly before I started coming to grips with the fact that my spell in RRE is drawing to a close. It's basically the tale of a man and his son on a road trip. The man has battled mental illness in...

Now what?? //part 3

Shouldn't it be a little more like this -

You're a new user to the iBD CMS. The initial login screen is simple, clean. It has 3 fields that you need to fill in to register - Your name, your password, and your band's name. You press the submit button and that's it. Your new website is active. The second screen you come to asks for your Facebook login information. You enter it, and since your an admin of your bands Facebook page, you just directly imported all the data that is present...

Now what?? //part 1.

The problem I have with the world is this -

It's too friggin hard to build a good website.

I spent the better part of 2009 studying this problem. I was bummed out about RRE's website and the fact that it was just a little too static, a little too disconnected from the rest of the internet. It was a custom built solution, and God bless you Berry for that, but I didn't even know what that meant at that time. It took me several months of poking, prodding, and pulling my hair out before I...

Now what?? //part 2

The ongoing sorrow in my life is this -

You can build an awesome website, and then where are you?

The answer is that you're ahead of at least some of the craptastic pack. The rest of the answer is that you've just taken a major step into proving that you take yourself seriously on the internet. You have opened Pandora's box, my friend, and if you think you can shut it, the world will know just what a punk you are. After all, the days when your website was the totality of your internet...

1st set meditation

Lots of personal posts to come these next few weeks, I expect. I wanted to take this opportunity during setbreak in Woodstock to set down a few things that I was thinking about during the first set.

I've gotten a few cautionary letters from concerned onlookers of my situation, most of them warning me of the pitfalls of this decision that I've made. First, I want to let you know that I've been making the internal preparations for this move for well over a year. It was about that long ago...

Programmers, please enter -->

I have this crazy hope inside of me that some of the IT professionals who have expressed their disdain for the field since my last post will find a way to quit their crappy jobs and go do something that they can put their hearts into. Life is too short to be stuck.

Thank you.

And I bid you goodnight...

Well, campers, the day has come. Regular readers of this blog might be a little less surprised about this particular piece of news, but I'm pretty surprised to be writing it. I've been writing it in my head for a few weeks now, but now that I'm sitting here, I don't really know how to put it.

I joined this band at the age of 24 to accomplish a few objectives. I was barely a year out of college and was already tired of washing dishes and rolling burritos for a living, so I prayed for a...

This is truly fascinating...

A glimpse into design and corporate culture, and where the two often clash.


p>Dear American Airlines | Dustin Curtis

On the road...

To Ruby on Rails proficiency, that is. I mean, I just happen to be in Madison WI at the moment, getting ready to play a show at the Barrymore Theater. I've spent the last two days holed up in a corner of the awesome Fair Trade Coffee House on State St. drinking their awesome dark roast and getting up to speed on some things.

After having written about version control last week, I figured it might be cool for me to actually make a choice and get up to speed on one. My only other freelance...

The importance of "blind carbon copy"

You've all seen it. It's right under the to: field when you compose an email. No, not CC, but BCC. That stands for "Blind Carbon Copy". The purpose of this little feature isn't just to send copies of important emails to yourself for archival purposes. Let's have an example...

Let's say you have a really enthusiastic bud-die that's always sending links to music that he's uploaded to all his friends. You hugely appreciate the thought every time you get one of his treats. But then it...

U2 to Play Free Concert on YouTube

"When U2 takes the stage in Los Angeles’ Rose Bowl Stadium this Sunday, fans in the United States and 15 other countries will be able to watch the whole show, live and for free, on YouTube — the first time the website has ever broadcast a complete concert live."

Are you kidding me? This is the first time that YouTube has broadcast a concert live? Did I somehow get teleported back to 2006? I would think that news of this nature would seem a lot more like news back then, but...

Attention - potential future bloggers of the world

It appears that the creative fire feels like being spent on writing again, finally. So if may I impart a bit of what I've learned in the last few months...

Before you set up that Blogspot account, I just want to call your attention to a few of the other offerings out there. Blogger/Blogspot is an extremely simple way to get going, but there are even simpler ways to get going, if that's what you're going for. There are also offerings out there that will allow you a much greater amount of...

Chapter 6b - the layman's introduction to database migrations in Ruby on Rails

This is not for programmers. This is for myself, because when I first started poking at Rails 6 months ago, I didn't have any idea why I needed to edit a migration file, much less what a migration was, except that it must have something to do with a database. I only knew that because of the command

$rake db:migrate


p that I was told to perform and the fact that it had the letters "db" in it.



So here's the deal. This morning I talked about version control and it's place in the...

Chapter 6a - Version Control

So it's been a while, eh? Not too much in the mood to write about what I've learned when most of what I've learned is how much I have to learn, y'know? Anyway, I've been back into Ruby on Rails lately, since Ruby has got to be the dead simplest real programming language out there. Oh yeah, and I have a major project cooking on Rails, but I'll elaborate later. Let's talk about version control...

Let's pretend you're typing that last term paper in college. This is the modern era, so...

Apparent risk and actual risk

Apparent risk and actual risk: "There are people who I will never encounter in a restaurant. That's because when these people go out for dinner, they go to chain restaurants. These are the tourists in New York who seek out the familiar Olive Garden instead of walking down the street to Pure. That's fine. It's a personal choice. But it got me thinking about the difference between apparent and actual risk, and how that choice affects just about everything we do. The concierge at a fancy...

Finding Your Co-Founders

Finding Your Co-Founders: "The hardest part of starting from scratch is finding the right co-founders. Ideas, comparatively, are easy. You may spend three years finding your co-founders while you’ll come up with a solid idea every 3 months or so. Luckily, once you settle into a great founding team you’ll be able to execute much faster on that killer idea you all come up with – beating those ten other folks who came up with the same idea at the same time."


(Via TechCrunch.)

Communities of Creators

Communities of Creators: "What I've found, though, is that being part of an active, ambitious, supportive and diverse community of peers is just as valuable, if not more so, than any of the more prosaic prerequisites for success."

I'll bet that's true. Maybe I'll find out someday.

(Via Anil Dash.)

Holy Crap!

It's been an inordinately long break, friends, and for that I apologize. I've been engaged on a weeks-long bender of brain expanding self-education on many fronts, plotting medium and long term career paths, taking stock of the current situation and options. For fans of the band I'm in, have no fear, I have no options at this point. The dearth of verbiage here goes hand in hand with the intense push to expand the possibilities there.

Programming Classes

A f-ing killer free programming class that some kind dude just started yesterday on Reddit.  Anyone who's at all curious about how computers work or and of this stuff might want to have a look...

Programming Classes.

Had the weirdest dream last night

Travelling, of course. By myself, of course. In Georgia. Train terminal in middle GA, taking a train to Europe. Forgot my wallet - had to go back and get it. got lost. Couldn't find my way, repeatedly. Ended up in McDonough, but it was huge and congested. Met some hippy kids. Ended up at a music store. Ended up in the rain. Ended up outside McDonough and it was a giant city on a hill. Beautiful.

Was telling Michelle about it and she said it sounded like my life.

on the tall trees crowding out the saplings

Someone left this as a comment for me on Facebook (I think), something in reference to a snarky status update I made about Phish and my not really giving much of a shit about them. I meant this in a mildly light-hearted manner, but I got more comments on it than most Railroad Earth updates get. People get fired up about some Phish, boy!

I will admit a certain amount of aggravation at Phish, not because they haven't worked their butts off to get where they are, and not because they aren't...

Plans, plans, plans.

I think I'd better start writing them down. My list of things that I want to accomplish on the RRE website is only getting longer as I tick off more of the major infrastructure aspects of the site. Luckily the foundation of the site seems to be stable enough and the initial reaction was pleased if not excited. I think everyone is willing to cut some slack, which is good. So. The list...

Media page - needs attention. The media player is slack, the photos are non-existant and the entire...

go for launch

My cherry is no more. Yesterday I fired off my first real website. Nothing exploded except for the email for a little bit. Turns out when you switch servers, the email and the website don't show up at the same time. So most of today was spent learning about MX servers and stuff. The documentation out there about what to expect from your website when you pull a host change is quite shitty, so I'll have to write a chapter in the Moron's Guide about it.

Anyway, I'm totally fried, and...

Counterpoint, anyone? Yes, you...

From TechCrunch...


p>The Case Against Apple Is Just As Much A Case For Apple

Anybody wanna pile on Apple? You, there!

For those of you following along at home, here's The Case Against Apple–in Five Parts. It's a broader version of my "Phases of iPhone Ownership". Enjoy.




p=Reprinted with permission from Jason Calacanis, CEO of Mahalo.com and co-founder of the TechCrunch50.com conference taking place on September 14-15th in San Francisco.

About six years and $20,000 ago, I made the switch to Apple products after a 20-year love affair with Microsoft. That love affair started with the...

At 31, on being a professional musician

We played in Toronto last night. It was our first Canadian gig and it went well. The club wasn't much to speak of, but that's to be expected from our first time in a new market. The promoter was pleased with the turnout, though earlier in the day there was a bit of handwringing over the lack of presold tickets. According to him people don't want to pay the TicketMaster surcharge, which adds up to well over half the base ticket price. This is from the mouth of the Live Nation promoter -...

the concert biz.

I read a piece the other day that really irritated the holy crap out of me. An acquaintance had posted a link to this article proclaiming the "implosion of the concert business". The examples he cites - Aerosmith, the Rolling Stones, Madonna, Bruce Springsteen, U2 - are all apparently seeing a downturn in their ticket sales for their most recent runs. This is not surprising to me and I assumed that it wouldn't be surprising to anyone, but according to Mr. Lefsetz it's a cause of concern...

Do you have a computer? Do you care about any of the files...


p>Do you have a computer?

Do you care about any of the files...

Good advice, worth repeating. I'm not even a "professional" and I get asked quite often what to do when someone's hard drive takes a dump.

The golden age of the software business.

And speaking of widgets, reports out today claim that Verizon is about to open its "Widget Bazaar" wider to developers in a bid to create an "app store" similar to the iPhone's. Like the iPhone store, there will be an approval process, and developers will be able to charge for their applications, with the revenue split likely being 70% to the developer and 30% to Verizon.

- From a BusinessInsider article explaining some of the features that Verizon is rolling out on their FiOS broadband...

Template for Writing a Music Business Plan

Found the link to this on the Music Think Tank.  Haven't had time to pore over it yet, but it's almost certainly worth linking to.

Template for Writing a Music Business Plan

Fake Steve on the iTablet

"I'm off to get a liver and might even die but oh wait, I'm back now and guess what, I saw God and here's the tablet computer that he wants you to use"

This guy is too much. Seriously. Read this...


p>iTablet: My hero's journey

Palin's Resignation: The Edited Version

From Vanity Fair. It starts off funny and gets pretty brutal by about page 3 or so.


p>Palin's Resignation: The Edited Version | vanityfair.com

Wanna see way too much Flash?

Try this.

MS's long slow decline

"Microsoft’s core problem is that they have lost the hearts of computer enthusiasts."

  • the Daring Fireball in a piece called Microsoft's long, slow decline. He sums up my feelings almost perfectly. I apologize ahead of time for being a snobby Mac asshole, but feel my decades of loyalty to MS-DOS and Windows justify and inform my opinions sufficiently.

edit: a discussion thread going on YCombinator

Any copyright geeks in the house?

"The lesson for any artist here has to be to sign a contract with any session musicians you use to ensure that you have set out any arrangement on copyright and royalties in the product. The vast majority of modern artists will be well aware of the risks, but we could see a great number of similar cases. An ounce of protection could be worth nearly 40 years of cure."

  • from a British law blog, Ralli Solicitors. You know that tune "Whiter Shade of Pale", that I always thought was a Steve...

New Years haiku

it was a done deal
come to find out it wasn't
i am the jackass

Psychology, finance, war, cards...

"This line-of-credit, the stop-gap measure that was supposed to solve the problem that hadn’t really existed in the first place had done nothing but worsen it. When we started the week, we had no liquidity issues. But because people had said that we did have problems with our capital, it became true, even though it wasn’t true when people started saying it. . . . So we were forced to find capital to offset the losses we’d sustained because somebody decided we didn’t have capital when...

When Social Media Becomes A Weapon

This one comes from a marketing blog called Outspoken Media. It's a little over the top for me most of the time, and the girl Lisa that runs it most of the time has pronounced diarrhea of the keyboard (yes, I'm calling the kettle black). This post got me thinking, however...

The spark was with the "United Breaks Guitars" tune that's been stuck in my head all day. I'll ruin the surprise and tell you - she's not that impressed. She has some interesting reasons why =


pWhen Social Media...

The last gasp of the Album?

In case you don't follow the tech press as closely as I do, Apple will be releasing a small, supposedly cheaper tablet computer intended to compete in the "netbook" market. Those are small, cheap computers that can't really do anything but access the internet. I see them in airports a lot lately. They look annoying to use, but that's just me. So Apple's version will (according to rumor) look like a really large iPhone - a 9 inch or so touchscreen and no keyboard.

"Apple wants to make...

Carbon emissions reduction, Vice President Biden-style


p>Carbon emissions reduction, Vice President Biden-style

(Via Philip Greenspun's Weblog.)

Twitter 101

This is very smart.

Twitter 101 for Business — A Special Guide.

The phases of iPhone ownership, the hazards of love.

note: Parts one and two.

Phase Four - Complacence

It happens to the best of us. We sometimes take our loved ones for granted. We don't remember the thrill of exploring the new relationship, and start to get annoyed when we're forcibly reminded that those days are over. We see others walking around arm in arm with their new love and you think to ourselves "enjoy it while it lasts" or "I bet you just play games on that thing, don't you, chump?" Soon, it seems like everyone has an iPhone....


Here's a link to a techCrunch article that links to yet another cute little video that someone put up on YouTube. The gist is that designers and programmers hate the stupid quirks and security holes that are present in IE6 and have mounted a vigorous campaign to get corporate IT departments to finally get on with the upgrade.

But, I actually work a bit in corporate IT, at a call center full of computers running IE6. They're running that way by necessity, because many of the computers in...

Allan's guide to running a Facebook Campaign

Well, friends, I asked for it. Yesterday I put up a post about Facebook's new SMS fan feature. This lets RRE fans (or whomever) text "fan RailroadEarth" to FBOOK and they're automatically added to our fan roster on Facebook. This sounds like an extremely convenient way to sign up new fans at a show or whenever the feeling hits them, yet there are a few hurtles from an effective marketing perspective that I wanted some feedback on. For instance, the best way to get the word out would...


I've been killing time the past couple of weeks with Digg and Reddit. Yes, I just recently discovered them. The Digg experience is more polished, but Reddit feels a little bit more real. They're both essentially services where people submit links to interesting articles that are then voted on by the crowd - up or down - and the ones that the crowd finds more interesting naturally float to the top. Reddit's edge for me though is that users can submit their own essays for display/storage...


I really like Fred Wilson's blog. He's a tech VC (venture capitalist) based in New York. He's steady, and often I fall behind since he puts out some good stuff on a daily basis. Following the tack of this post, Facebook just added an SMS friend feature to their business pages. All you do if you're not already a fan is text "fan RailroadEarth" to whatever the number is. The question I could use your assistance with is how best to get the word out about this. Seems to me like getting...

The phases of iPhone ownership, continued...

Phase Two - Love

The day that I knew I'd found the one was July 12, 2008. The 3G and the OS 2.0 software update had come out the day before. I'd updated as soon as I could, playing my part in the server issues that Apple had that day. I was fascinated by the prospect of adding apps, though I didn't really know what I would want to add to the thing that wasn't already there.

Had a nice loooong road trip down I-81 to contemplate such matters. I spent most of the ride and all of the...

The phases of iPhone ownership, the beginning

For me, it began in December of 2007. Anyone who reads this blog or has stumbled across it (as a surprising number have, unless there's a bot out there relentlessly searching for my post on the Best App Ever) knows that I'm a fan. I started off as a casual appreciator of the iPhone, and have since proceeded to jettison a lifetime of loyal MS-DOS/Windows computing in favor of being a blogging, Mac toting dork. I'm not ashamed. My personal productivity has skyrocketed over the last 18...

Rust / Kansas

It feels like ages since my last post, even though I've tried to keep it up with some links to some good dorkery. Today is spent in the bus, driving the 735 miles from Denver to Columbia, MO. We left at 9 this morning and have made a small dent in Kansas, but we'll most likely be rolling in around midnight or so tonight. So here goes...

Yesterday was spent at the Mile High Music Festival in Denver, one of our hometowns. It was kind of a strange lineup - us, Ani, Ben Harper, Tool, Panic,...

Wordpress for iphone

I don't know why it took me so long to bop on over to the app store and search Wordpress, but of course there's an iPhone app! I'll use it now to distract myself while Sheaffer drives us to the airport.

We're headed to the Mile High music festival in Denver tonight. We're playing tomorrow afternoon at the exact same time as Ani DiFranco, which is a real bummer because she was the best set of music I saw all weekend at Rothbury. I'd never seen her play before, and all I can say is Holy Crap....

A little programmer humor

History of the C family of languages.

Fake Steve Jobs on the new Chrome OS

"Our guys on the Safari team even had special toilet paper made up with a Chrome logo on every sheet."

The Secret Diary of Steve Jobs: Let's all take a deep breath and get some perspective.


It's about time somebody told me about this site.


Chapter 5 - Domains

Bollocks!!  Do not buy a domain from Yahoo.

I just want to make sure that shows up in the description of search results, if there are any.  Now a parable...

Many years ago it occured to me that if I didn't go and buy JohnnyGrubb.com, then I was stupid.  I had no idea how to make websites and no need for one whatsoever, but I did know enough to know that if I didn't buy my own friggin name then someday I might regret it.  So, in March 2006, I bought my own name for 5 years.  Doesn't...

Media Temple

The new host.  Hopefully you didn't swing by herein the last three hours whilst I've been wrestling with moving from GoDaddy over here.  If anyone discovers anything funky, would you please let me know?  The comments are down there >>>


I'm relocating some stuff this week.  I've just bought a year of hosting with Media Temple, which seems to be where all the cool kids are parking their websites, and trying concurrently to transfer all manner of domains and live websites to said host.  This should be a lot of fun.  I'll probably hose a lot of stuff this week, this website, the new forum, who knows what else.  By the way, if you're thinking about registering a domain name, don't go Google Apps to do it.  They are a...

On Wakarusa

'Twas an interesting time. Some backstory:

The Wakarusa festival has been going on for 5 years now (or something like that).  They experienced great success at the previous site of the festival in Lawrence, Kansas.  The only problem with the site was that it was held at a state park there, which gave local AND federal law enforcement free reign to be a real pain in the ass.  Lots of people got busted pretty much every year.  It was kind of a bad scene in amidst all the fun and great...

A Site About Something / Richard Geller

Okay, I'm not a fan of Flash.  I'm not sure why except that I think it's kinda like the B3 organ for me.  It's great when someone uses it tastefully, but I've heard so many bands/albums misusing the B3 that it's kinda ruined for me.

This guy's got the right idea, however.  If my whole aesthetic weren't about clean and direct these days, I'd want to do something like this.

A Site About Something / Richard Geller.

ibD Manifesto

Disclaimer(s) : I will me using the terms "we" and "us" and "our" to refer alternately to my band Railroad Earth, and to my colleagues in the jamband scene without differentiating every time which I'm talking about. You'll just have to figure it out. Hope it's not too confusing.

This began as an email to a Rails developer that I'd been conversing with. He brought up the Digg Trent Reznor interview. After the first bit my response became more like a blog post. So I'm posting.

I think the...

Seth's Blog: When the writer becomes the publisher

So help me if Seth Godin doesn't write at least 1 post out of 10 that makes me jump up and shout.

Seth's Blog: When the writer becomes the publisher.

Apply this one to the music biz.  I guess if you read this blog, you get my drift.

SEO in action

So an interesting thing happened yesterday.  I have this cool plug-in installed on this blog.  It's called StatPress, and it all but lets me look back through your screen at you.  It logs all traffic to this blog, IP addresses, referring links, what OS and browser you're using, and what search term you entered into Google to find my blog.  If this is creepy to you, you should know that every time you're on the internet you are broadcasting this info with every single click of the mouse....

Welcome to the new site!

After several months of sifting and searching, I think I've finally honed in on the framework around which I'll be helping anyone and everyone who needs help with their web presence. As my CSS and PHP skillz improve so will this site. This is how it looks now, so take a picture.

And thanks for the encouragement.

Change is gonna come.

So, I've been dealing with these dudes, ScratchMedia.  They doing some design work on the new RRE forum.  I like them and the design a lot.  It'll go live sometime in the next couple of days here.

Stay tuned.

On Miles

I was always more of a Miles Davis man.  I guess what I'm comparing it to is perhaps if someone were a Coltrane man.  I'm not sure why you need to pick one or the other, hell you could like them both as much as you want, it's just that Miles' style always spoke to me so much more.  His was so understated whereas the style that Coltrane made famous was one that seems to be embraced and expounded upon by many many legions of jambands, rock bands, jazz fusion bands, etc.  Anyone that really...

This blog

It's kinda difficult.  I feel bad for not really having much to say, but I've been pondering (probably excessively) over what direction it should really take.

My good buddy Anders, of Greensky fame and fortune, let me know that he checks it out from time to time.  "Some of it's really technical", he says.  Stacy says the same thing. "but then occasionally you'll write something" pertinent.  So, I've been pondering how to take it and relate it maybe to something else that makes the...

Chapter 4 - The API

Facebook made this announcement yesterday through the Developers section of their site:

Today we are excited to announce an important step toward greater openness through Facebook Platform. For the first time, we're opening the core Facebook product experience -- the stream -- with the new Facebook Open Stream API.

What this says to me is that Twitter is having a major impact on the evolution of the internet right now, namely in the heat they're putting on Facebook to innovate.

Now, the...

Coolest iPhone App Ever.

So, as I mentioned in some other post, after about my first hour or so playing with the iPhone, it came to me that this was a device that could help you get things done.  No more going to the computer, turning on the computer, waiting for it to boot up, etc., just to check my email?  A calendar that I always have in my pocket?  These were revelations to my unorganized old-self.  After the 2.0 update and the ability to add functionality to an already cool device was released, that's when...

Album of the Week

Ahmad Jamal - The Awakening

The only version of Oliver Nelson's "Stolen Moments" that might actually be better than the original. Several other outstanding renditions of great standards on there as well. A. Jobim's "Wave" and H. Hancock's "Dolphin Dance" are two of them. This is one of the first jazz albums I picked up in college, before I started playing jazz. When I took the jazz history class at ASU, I wrote a paper about it. I couldn't figure out why none of these tunes follow the...


They still suck!


Simpletons guide to web server analysis

All of the sudden, by bandwidth has gone up?  I wonder what people are doing on there?

Simpletons guide to web server analysis.


For my band, for my band...

Would any of you care to help out with putting together yet another online community?  The aim with this one is to try and organize Railroad Earth's online presence just a bit, mainly so that newcomers can have a better central clearinghouse for RRE info and community before swimming into deeper waters.  This probably isn't the most expeditious place to post this, but I'm trying to keep this kinda small while we're hammering out the design details.

That said,...

Chapter3 - devPlatform

As in, what does that mean, anyway?  I'll try and keep it short.

When I spoke of Ruby on Rails the other day as the 'hotsh!t dev platform of the day', I realized that it would need some clarification.  So let me clarify.

Coding pretty much anything is a massive, time consuming job.  That's part of the reason that computer languages have evolved from 1s and 0s to Fortran to C to C++ to Java to Ruby: if you were to try and write the Twitter website in assembly language (binary), you'd be...

Chapter2 - Databases

This part of the blog is going to be tough to write.  Not because I don't have much to say on the topic, but because I have frequent pangs of "dude, you don't really know anything about any of this stuff".  Then the other side of my brain speaks up. "Dude, it's cool.  They know you're not a professor.  That's the point of this whole thing, right?  If someone wants hard facts and a professionally written tutorial on computer science, they'd probably go somewhere else.  If they're here,...


I went to school in Boone, North Carolina at Appalachian State University. When I picture heaven in my head, it looks more or less like what I remember the drive from Banner Elk to Boone along 105 looking like - Grandfather Mountain, the old Gold Mine tourist joint in Foscoe, Hawk's Nest ski area where I used to be a lift operator, that sandwich place on the corner of the turn to Valle Cruces, the leaves in the fall, the walk up Howard's Knob, hiking up Table Rock in the middle of the night...


This was left for us earlier today in the comments:

You may or may not know this but Apple and Stanford are offering free iPhone development courses online


And it's true.  The whole thing was available in PDF form.  I hadn't even thought about it until just now (thank you Chuck), so I'm gonna go download the course again at


I'm screwing around with the host settings of this website pretty much continually.  If you should happen to come by here and find a "Site doesn't exist" or other such notice, please check back soon.  I probably just changed some setting to see what would happen and ended up hosing the entire site.  Thanks to Scotty Baron for the word "hosed".

Getting Started with Rails

A fantastic Getting Started with Rails guide.  I'll probably reference this page later.


Step 2. Learn to program

Here's the thing. Computers don't think like you and me. They think in 1s and 0s. Every programming language ever invented has basically been a way to translate what a human wants to have done into a stream of 1s and 0s to be read by the computer. The translation into binary can happen at a couple of different points along the way from programmers head to users computer screen, but there are basically two different methods for how different languages do this. Some...


Quick bio - The difference between As in, the difference between your brain and your computers CPU. The difference between how you think and speak and interact, and how your computer does. The difference between languages, be they interpreted or compiled, object oriented or procedural. This first chapter will hopefully assist in the process of the first few days after the moment where it first occurs to you that you want to learn how to develop software, be they games or business or...


It occurred to me last night during the show (where I do all of my best thinking) that of all of the thousands of websites that I've pored over in this quest, of all the books that I've perused, of all the tutorials that I've read and followed through, the one thing that was missing was the square one explanation of what the hell we're doing here in the first place. Everything I've read so far assumes some sort of foreknowledge or education to prepare oneself for the task of learning...


Oh, yeah... The Holy frickin Grail. The MVC framework that's sweeping the land fell under my text editor yesterday.

I hacked my way into Ruby on Rails.

I built a website yesterday in two hours that does more than anything I've done in the last nine months. Granted, it doesn't look that great, but it's functional. Also granted, it took me nine months to put the conceptual pieces together, and to find the technical resources to do something with the RoR framework that I downloaded 6 weeks...


Sitting here in the surprisingly nice Richmond VA airport, so I thought I'd check in. Cool cabby on the ride here. He saw my big PHP book and started asking me about what I was doing, so that pretty much filled up the 20 minute cab ride.

Last night's show was kinda just alright for me, personally. It's funny because Phil and Stacy both thought it was the best show of the weekend. It's just goes to show, you never know. I've learned through the years (you never let me down..) that I...


I pulled the trigger. I am now an official iPhone developer. I can put apps on the app store, just as soon as I figure out how to write one. Had to tell somebody...


Alright! I finally have some time here. I apologize for the dearth of interesting verbiage from this blog over the last week or so. I'm still getting the hang of this whole thing, of course.

One thing that I've realized on reflecting over the past week is that the whole method that I have of getting all fired to write and then putting out four things at a time is probably not the most effective means of running this blog. I guess that's why none of the blogs that I've been reading do it...


So where was I? Oh yeah:

I am not an expert. I will spout endlessly as though I am, and often I will be right in my own mind, but often I will also be full of crap. Never has this made me more uncomfortable than now, since I just followed a link trail over to the website of a UK music website called the Guardian. I'm quoted over there, courtesy of a new buddy named Tim who is apparently in a kindred band to my own. So I felt excited and frightened as one must feel the first time that he...


So Eminem's old producers sued Universal over royalties. For those of you who have never been signed to a record contract, they are shadier (pardon the pun) than you probably imagine. The whole point of getting a record deal is to try and make some money off of selling your recording, right? Well, over the last decades, the industry (and by industry, I mean the lawyers and label heads in charge of finding ever more inventive ways of scamming inattentive rock stars (which is generally...


If not one more good thing happens during Obama's presidency, and I am an eternal optimist, the Data.Gov project sounds like a ball, and a huge step forward pretty much any way that I look at it.



This cannot be allowed. There is a definite whiff of opportunity here...


At least these guys get the clean thing. There's a raft of interesting content up there, and all you have to do is sign up on their page to get access to it all. "Inbound marketing" I believe the savvy would call it. Applause, please..


Here's a band with the resources to do something cooler than they are. Is it just me or is this front page totally overstuffed with info, rendering it almost impossible to glean the useful bits at a glance? Are the links at the top of the page really 2003 looking? Are there an obscene amount of links on the right border that take forever to load?

Or is it just me?

Edit: I count 16 banners of equal size and flashiness (90% of which point to the same merchandise page) on the right margin...


So RRE finally signed up on Twitter, right about the same time I succumbed to my curiosity on the same subject. In case you could tell by this blog, I'm completely fascinated by Web stuff like this. I mean, what a stupid concept, right? A micro-blog so that people can talk about what they're doing at that moment. As if I need to know what Scotty Baron had for lunch today! But wait...

The tech media is positively foaming at the mouth over this thing. Every marketing site I go to is...


Now, this part won't be any news to anyone, but will mainly serve to help organize the thoughts in my brain. First, the old way:

The old way involved the "record industry". The record industry used to exist because recording was very expensive. It was expensive to record a song, it was expensive to reproduce the recording of the song, and it was really expensive to warehouse, distribute, and sell the recording of that song. Thus a whole industry cropped up to take advantage of the...



It's only going to get easier to build software. Brilliant.


When in the course of your bands business, it becomes necessary to cast off your old, crappy website and the confusing, unnavigable interface which you present to the world as your first impression, and to assume the powers of PHP, CSS, XML, RoR, and other technologies not yet invented in the pursuit of a highly compelling online experience, a more meaningful dialogue with your fanbase, and the glorious rewards of possibly higher merch sales, a decent respect to the opinions of webmasters...


When in the course of your bands business, it becomes necessary to cast off your old, crappy website and the confusing, unnavigable interface which you present to the world as your first impression, and to assume the powers of PHP, CSS, XML, RoR, and other technologies not yet invented in the pursuit of a highly compelling online experience, a more meaningful dialogue with your fanbase, and the glorious rewards of possibly higher merch sales, a decent respect to the opinions of webmasters...


This is a nice little explanation of how AIG got into the mess it's in, if you're interested in that kind of thing...


Ever heard of it? It stands for Software as a Service, and it's a little sector of the software/tech business that everyone is keeping an eye on right now. One of the leading vendors of this service right now is a company called SalesForce.com. My brother in law is actually their director of recruiting for the midwest region. What SaaS does is remove the need to buy software for your business. It moves the important stuff to the "cloud", which is another name for the internet, and...

iPhone as PR tool.

So, if you're in a band and you don't have a website, you're not really a band, right? If you own a business and you don't have a website, your business doesn't really exist, right? If you ran a festival, could you see how you could get by without having a website?

The iPhone, and the mobile platform in general, is going to be the means by which info is spread, by which content is delivered, by which people are entertained and kept in the loop. The portable website, but better. Can we...


This is a table I found that shows relative current interest in different computer programming languages. This was put together by measuring the book sales of books covering a specific language as compared to their sales from the year before. The size of the box tells their relative market share, and the color their relative market traction. You'll notice the really bright green one at the top, up 965%, is for Objective-C. Mac OS X applications, and iPhone applications are written in...

The road.

It wears you out. All the stories about how road eventually grinds good musicians into dust may be partially true. I'd suspect that it has more to do with drugs and alcohol on the road grinding musicians into dust. I don't have that problem, so mainly it just wears me out.

Exhaustion is a state that usually lends itself to some good playing, at least for me. Last night I was so tired I think my brain went into some kind of alpha dream state during the second set. That's when I do my...


Let me just say this, and I was a big PC defender/Mac smack-talker for many years. The adjustment period, when I bought my Mac last summer, was about an hour long. I just had to get used to closing windows in the left side of the screen instead of the right. Since the adjustment period has ended, and working on this thing has become sort of an extension of my arms, I gotta tell you - Macs just stay out of your way. It's that simple. I don't fight with it. i don't have to reboot or...


I started running about this time last year. I hadn't exercised regularly since college, where they gave you gym access along with your tuition. I spent the rest of my 20s gaining about 2 or 3 pounds a year, and not really doing much in the way of taking care of myself. It had occurred to me that the only exercise I was really ever going to be able to afford was running, but I hate running. I kept up this hope that some day I was going to be able to at least join a YMCA with a pool or...

Band meetings.

Generally suck. You want to know what happens when 6 musicians get together to discuss running their business? Not much, usually...

Just in case.

I know you know this already, but can we keep this off the Earthboard until I figure out what this is going to be about? I'm self conscious enough already. Danke...

Toward the point...

Okay, so this blog is gonna be really boring if I do it in chronological order. I want to make sure that my two readers so far have something to look forward to besides cleaning out my mental closet.

I had an idea for a business that would be really cool if someone started.

I'm in a band that gets virtually no love from the mainstream media, the major record labels, the world at large...Yet, we've been together for 8 years now. I've been in the band for 6. When I first joined the band...

Numero Uno

To speak into the void.

So I've had this idea simmering on the front burner of my brain for several months now. But first, I should probably introduce myself, or do a bio, or something. Maybe this will take several parts, because I've never tried to write a bio, and I feel like I've done a good job living unconventionally with my first 30 years here...

I was born in ATL, Georgia, that is. No brothers or sisters. Great parents. Always totally behind me for some reason. I got pretty...