A blog by the Brick Factory The Brick Factory

Pounding the Rock: Lessons from the San Antonio Spurs on running a great digital campaign

I grew up in San Antonio and like everyone from there I’m a big fan of the San Antonio Spurs. Since drafting Tim Duncan in 1997, the Spurs have gone on an unprecedented run, winning four NBA titles and more than 50 regular games each season for the last thirteen years.  Led by their cranky coach, Gregg Popovich, the Spurs are celebrated for their unselfishness and commitment to team.

The following quote from Dutch American reformer Jacob Riis hangs in the Spurs dressing room and serves the team’s unofficial motto:

“When nothing seems to help, I go and look at a stonecutter hammering away at his rock perhaps a hundred times without as much as a crack showing in it. Yet at the hundred and first blow it will split in two, and I know it was not that blow that did it, but all that had gone before.”

In the context of basketball, the quote is an obvious call for players to put maximum effort into everything they do.  Winning an NBA title is the culmination of years spent taking jumpers in the gym when no one else is watching.  To be great you have to pound the rock.

The quote is also an accurate description of what it takes to build and maintain a great digital program.

There are tons of organizations that want a great, successful online campaign but don’t want to put in the work.  The truth is there really aren’t short cuts.  The truth is that building websites and running digital campaigns is hard work that requires a significant commitment.  A successful web program isn’t the result of one transcendent idea so much as it is hundreds of small ideas implemented well.

To be great you have to write compelling content every week, and preferably every day.

To be great you have to optimize your email messaging and design.

To be great you have to make sure your website works in all browsers (even IE) on all devices (desktop, tablet and smartphone).

To be great you have to experiment.

To be great you have to test and then test some more.

To be great you have to pound the rock.

How to Create Dynamic SVG’s with Raphaël

Over the last few years I have heard more and more good things about the javascript library Raphaël. A project I was working on recently afforded me the opportunity to experiment with it fully. I discovered that it is really powerful and actually fun and easy to work with. In fact, it feels like it replaces a lot of the functionality you could create in Flash, when that was the standard for robust, dynamic interfaces. But unlike Flash, mobile browsers are starting to support SVG across the board (from a few years ago) and Raphaël will convert the SVG code to VML for IE8 and below.

In this tutorial I walk through some basic examples of using Raphaël and then include code for a more complex example where I create a custom pie graph. This tutorial assumes that you have a basic knowledge in JavaScript code and that you are familiar with using jQuery. But before I get into the tutorial, let’s go through the basics.

What is Raphaël?

Raphaël is a JavaScript library that allows for creating SVG’s on the web. For browsers that do not support SVG, it will automatically convert the code to VML (IE8 and below).

What makes Raphaël awesome is how it fits very well with responsive design. Since it creats vector graphics, it can scale without losing clarity or stretching out pixels, like you find in raster graphics.

Getting Started

The first thing you will want to do is download the raphael.js file. I recommend using jQuery to help work with the dom, but jQuery is not required to use Raphaël. You will also want to bookmark the documentation page, as that will be useful in accessing different functionality and options for the library. I also recommend going through the examples they have on their site to get a feeling for what you can do with the library. In fact, if you can find an example that sends you in the right direction in what you are trying to do, I recommend starting from there.

When using Raphaël, you will always need to create a canvas to draw on. This defines the total area we have to work with. You will be referencing this object when you draw lines and shapes, so make sure you call this before those samples. With the Raphael() call, we are sending the id of the <div> where we want to draw the canvas.

Below is the basic html structure for a page that uses Raphaël, including creating the canvas, that I’m using with these examples. Note that the CSS here is very important, as we are using it to define the size of the canvas.

Drawing Lines

A key concept when using Raphaël is understanding how lines are drawn. There are different ways you can do this, and you will want to understand the different options. For the examples in this section, we will simply use Paper.path().

Keep in mind that all of the commands we are sending to this method are SVG commands. So as another option, you could use several software programs to generate these commands. You can reference the W3 SVG standards if you want a more in depth and technical description in what you can do.

Here is a sample command that draws a line. Underneath the code, I explain what each part of the command is doing.

M: This tells the system where to move the cursor. It then is followed by a 0 and 240, which are x,y coordinates. In human terms it is saying “From the top left corner of the canvas, move the cursor 0 pixels to the right and 240 pixels down”.

l: This is a lowercase “L” and specifies that we want to draw a line, relative to where the cursor is at. An uppercase “L” uses an absolute position from the top left corner of the canvas. With the code above, the command is saying “From where the cursor is at, draw a line 640 pixels to the right and 0 pixels down.”

With both of these commands you can use negative numbers. For the x coordinate, this would make it go to the left and for the y coordinate, this would tell it to go up.

Here are a few additional examples:

You can combine all of these into one path value. The only reason you might want to separate them is if you wanted to apply different styling or effects to each line. But in most cases in dealing with lines, you will want to combine them into one path, like this:

See the code in action.

Just like the “L” call, you can make the “M” call lower case. This makes the cursor move relative to where it is at currently. So we could draw a triangle in the center of a rectangle with this command:

See the code in action.

Drawing Shapes and Text

You could create shapes and text manually using the path() method. But there are much simpler ways for drawing basic shapes and text using the library. A few examples are circle(), rect() and text(). See an example that draws all of them on the same canvas below.

See the code in action.


At this point we haven’t customized the look of the objects we have been drawing. What if you want to change the fill color of the object? Or the border? Or the cursor when the mouse goes over the object? For customizing the look of any object you draw in Raphaël, you will want to use Element.attr().

Here is some code that creates a circle and changes the fill color.

Or you could make the code look like this to accomplish the same thing.

You can change as many properties of the object as you want.

Once you have drawn an object, you can also add click, mouseover or any other jQuery events onto that object very easily. Take a look at this code to see a modified example that changes the attributes of the object and also modifies one of the objects when the text is clicked. From here you see the benefits in using jQuery with Raphaël.

Custom Pie Graph

Recently we created a custom pie graph directly in SVG. But the problem was that the SVG would not load in IE8. To get this working in IE8, we decided to redo this using Raphaël.

When tackling a complex customization like this, you will want to break the task into simpler steps that you implement one at a time. I first got a basic pie graph to display. I then implemented the different colors for each slice of the pie. Next I modified how far each slice goes out, depending on the value. Finally I created each section slice (to make each section clickable).

If you take a look at the code, you will notice that I am getting the values of each slice from a hidden html table on the page. This opens up the possibility in how to get your data into something like a graph.

See the code in action.

Once you get over the initial learning curve using Raphaël, you begin to realize the potential this library has to create some really cool, dynamic interfaces. And when combined with jQuery, implementing this becomes even easier!

Five Things charity: water is Getting Right Online

As someone who spends more time online than is healthy, I’m constantly inspired by the great work done by others in the digital space.  Every day I come across something that excites me and makes me want to get better at my own job.

As a way to spread some love and provide some inspiration for those looking for ideas, I’m planning to use our blog to regularly highlight great work done by others.

The first program I want to highlight is a long time favorite, charity: water.


Five Worst Sports Team Logos

Yesterday, Tom and I brought you our list of the best logos from the four major North American sports leagues.  Today, we bring you our list of the worst.

Before diving in, we would just make the point that the people who actually designed these logos are likely not to blame for the end product.  These logos reek of design by committee, where the best options were likely discarded and various concepts were merged.  No matter how talented a designer you are, it is nearly impossible to design something good for someone with bad taste.

5. Anaheim Ducks



Mistake Number One: In the spirit of “marketing synergy” you name your newly formed hockey team “The Mighty Ducks of Anaheim” after a Disney movie franchise starring  Emilio Estevez.

Mistake Number Two:  You somehow create a logo that is even more ridiculous than the team name.

Mistake Number Three:  In 2006 you finally decide to rebrand, but you inexplicably keep the “Ducks” name and create a logo that conveys absolutely nothing.


The palette here is an improvement. Gold is a big color in Florida. Every other Chrysler you see in Florida is gold (and is moving at 32 mph in the freeway passing lane). The biggest issue with this logo is the readability. Actually, no. It’s the duck foot. That’s a duck’s foot for the D.  How dare you.

4. Minnesota Wild



This one just sort of left me confused and angry.  I don’t get it at all.

Tom went to art school or whatever, so I’ll let him try to make sense of this one.


Let me help Todd and you with what you’re seeing here. A stream inside a forest with a shooting star under a full moon all inside a coyote skull. This has client interaction written all over it. Imagine the hateful creative meetings. The resentment. Sadly, the designer hanged himself minutes after approval.

3. Miami Marlins



I’m from San Antonio and have been a Spurs fan all my life.  Back in in 1989, the Spurs abandoned their bad ass black and white logo for a “fast breaking Fiesta version that supposedly represented San Antonio’s multicultural identity or whatever.  I immediately purchased a bunch of t-shirts and hats featuring the old branding and never bought a single piece of merchandise featuring the fiesta logo.  The Spurs finally killed the fiesta colors in 2002 for an updated take on the classic original logo.

The Marlins new logo reminds of those bleak “fast breaking fiesta” days for the Spurs.   If there were any Miami Marlin fans out there, I would feel sorry for them.

I actually think the logo itself might be ok if the palette was good.  But the palette isn’t good.  It really isn’t.


Todd’s heart-warming story of that festive Spurs logo falls by the wayside to this unfathomable acid-washed jean clothing label from 1985. Baseball logos on the whole are so much better than any other major sport. Where’s the baseball? Where’s the retro type face? Pitchers and catchers reported Monday. Grown men are wearing this Crockett and Tubbs-inspired disgrace right now as you’re reading this.

2. Vancouver Canucks




Nothing screams “Canuck” like an angry whale breaking out of a letter C that has apparently imprisoned him (her?) for years.  Damn you, letter C. I will have my revenge.

Wait.  What just happened?


Very angry, very tough and I’m guessing (but I don’t feel like googling) the whale is from some Canadian totem. This is pretty dismal as a logo and even as something you might recognize as a C. With that fin sticking down it’s an E. The most basic challenge of the assignment was missed.

1. Toronto Raptors



The Raptor is wearing basketball shoes that have special holes cut in them for its claws.


I remember when this nickname was conceived and at the time I figured it was in reaction to the popularity of the Jurassic Park movies. Not that this has anything to do with the logo, but naming your franchise after a monster no one had heard of before a movie came out is like naming your baby Nemo. Or Cloverfield. You will be mocked.

Everything went wrong here. Toronto running across the top of the mark looks tacked on and was highlighted with a silly, out of place triangle pattern. The Raptors font looks cheap and drawn sloppily in Adobe illustrator. The head of the raptor looks strong and should have been the only illustration within that black field, but fleshing out the dribbling figure was forced down someone’s throat and as Todd mentioned, those sneakers happened as well. This is really an unfortunate final product because although I think the name is ill-conceived, with a Raptor as your subject matter, there were some great possibilities to explore. I’m hoping for a much more impressive redesign sometime soon (I refused a movie coming soon joke here).

Five Best Pro Sports Logos

A few weeks ago the New Orleans Hornets underwent a rebranding, unveiling a new name (the Pelicans) and logo.   Given the catty nature of the Internet, it comes as no surprise that the logo had its share of critics.   I , for one, love the Pelicans logo as does our CCO Tom McCormick.  Tom wrote a post explaining why he thinks the design works.

The conversation about the Pelicans rebranding got Tom and I thinking about which of the major U.S. pro teams had the best and worst logos.   Following is our list of the five best logos from the NBA, MLB (AL and NL), NFL and NHL, along with witty and insightful comments from Tom and I. The list of the worst will follow later in the week (Update: our post featuring the worst logos is up.

5. Detroit Pistons



If you look through all the NBA logos, you’ll see the Cleveland Cavaliers, Detroit PistonsLos Angeles Clippers, Los Angeles Lakers, New York Knicks and Philadelphia 76ers all have similar ball-centric logo layouts.  They are all good, but the Pistons logo is the best of the genre.  I love the colors, typography and relative simplicity.  This updated version of the classic Pistons logo is a huge improvement over the weird horse thing they had going on from 1996 to 2005


I don’t really know what a piston is. If the mechanic tells me I need some type of piston replacement or maintenance or something, I will nod my head and say, “yeah, I assumed that was the issue, but I don’t have a lift so I need you boys to take it from here”. The mocking, as usual, would begin as I was just out of earshot.

awkward transition

What I like most about this logo is the clear nod back to the ABA. Big, bright and fun without having to play tough guy with some goofy, menacing mark. It’s not like this is the Paris Pistons. It’s Detroit. We know you’re tough.

4. Texans




When I started out reviewing the logos I never would have though the Houston Texans would make my top five.  The logo just wasn’t on my radar.  But the more I looked at this mark the more I appreciated it.  In addition to just sort of looking cool, as a Texas native I like how it evokes the horns from the University of Texas logo and the star from the Dallas Cowboys logo.  It nicely creates a new brand while tipping the hat to the long history of football in the state of Texas.


I’m sure Todd’s heart is fluttering at the horns here, and would love them in orange, but for me, it’s just a flat out perfect logo. Red, white and blue with a star is easy to screw up. I’ve done a ton of campaign logos to prove that, but here the colors are not traditional 4th of July, they’re a bit cooler. If I were some hillbilly from Texas and 25 years younger I could see this as a tattoo. Not on me of course. I was thinking Todd.

3. Nets



I love the shield concept for the logo and the use of black and white.  That is also a great font they are using.


The black and white is instantly cool and the font is right on the money. I was surprised when it came out, and even more surprised at the backlash it received. Weird, but expected these days.

2. Yankees



The Yankees are a bit confusing, as officially their logo is the ball/bat/hat thing that I don’t love.  This brilliant mark is  still used on their uniforms and caps so we’re counting it.  There is something really confident (arrogant?) about this logo, which is pretty much what the Yankee brand is about.


The weird N Y design was created in 1877 for a medal to be given by the New York City Police Department to Officer John McDowell, the first NYC policeman shot in the line of duty. That’s a pretty decent back story. The mark itself is the most iconic in sports. Simple. Immediate. Perfect.

1. Raiders




The branding here is so good that Oakland fans have devoted themselves to looking as depraved and frightening as the raider in their iconic logo.

As an aside, you think the Nets design team might have been a bit inspired by the Raiders?


Somehow this incredibly old school, macho, insanely cool logo hasn’t been upgraded ever, as far as I can tell. One of the few things Al Davis didn’t get his hands on.

Update: Check out our list of the worst logos.