Best Albums of 2012


I agonize over this list every year, for 100% personal reasons. I feel like I have failed as a human if I miss anything hot that happened musically in a year. Because I live in the city that never sleeps, when I like a record, I can typically see the artist play it live soon after it comes out. Here’s the year in review.

Top 10

Some Nights, fun.

fun., Some Nights

channel Orange

Frank Ocean, channel ORANGE

Wrecking Ball

Bruce Springsteen, Wrecking Ball

Strange Weekend

Porcelain Raft, Strange Weekend


Beach House, Bloom

Swing Lo Magellan

Dirty Projectors, Swing Lo Magellan


Sharon Van Etten, Tramp


Matthew Dear, Beams


Escort, Escort

Fear Fun

Father John Misty, Fear Fun

Special Award: The Weeknd, Trilogy
Technically, this encompasses 3 records that dropped last year. Chris had a visceral reaction of disgust when I even hinted at throwing this at #1

Also Really Good

The Walkmen, Heaven
Craig Finn, Clear Heart Full Eyes
Strand of Oaks, Dark Shores
Purity Ring, Shrines
Lord Huron, Lonesome Dreams


Japandroids, Celebration Rock
Beak>, >>
Django Django, Django Django
Cat Power, Sun
Daughn Gibson, All Hell
White Rabbits, Milk Famous
Silversun Pickups, Neck of the Woods
Kendrick Lamar, good kid, m.A.A.d city

WordPress 3.5 + Me

WordPress 3.5 dropped today. This is a special release for me because my picture made it to the Credits and I had 30-40 of my patches committed. Here’s the full list:

The hightlights:

I have 55 patches on deck for 3.6 already, excited to see what makes it! If anyone out there is thinking about contributing to core and is hesitant, don’t be. 90% of success is showing up. Be There. Subscribe to Trac. Comment on tickets. Test patches. Occasionally check in on IRC. The people who are making WordPress are there. You could be one of them.

I was just a little lad with a dream 2 years ago at my first WordCamp in NYC when I grilled Nacin and Koop about using IDs instead of classes in the CSS selectors for Twenty Ten. Koop talked to me afterward and suggested I contribute to core. My first patch was at the after-party for WordCamp San Francisco 2011 at 2am at the old Automattic space at the Pier on the Embarcadero. I got 1 patch into 3.2. 1 patch into 3.3. Zero into 3.4. And here we are.

WordPress + Regionalization

Regionalized merch, regionalized promos, regionalized blog posts, and the list goes on and on

Regionalized merch, regionalized promos, regionalized blog posts, and the list goes on and on

One of the coolest things about WordPress is that it is built from the ground up with translation tools. Many blogs want to vibe in a language other than English, and many blogs want to get their international game on and present content to people in several languages.

But what if you want to detect a user’s geographic location and display content based on their country code (“US” for USA, “FR” for France, et al) or your own regional site code (“EU” for European Union countries, for example)? This is not built-in but can be built by you if you know what you are doing. Let’s learn!

Btdubs, eMusic makes extensive use of regionalization. We have 4 regional sites: US, UK, EU, CA. We regionalize everything, so almost every database query on our site has to be subject to some filtering. We also have to intersect WP with our regionalized catalog data and in various places link them together magically.

Custom Taxonomy: Region

Creating new taxonomies in WP requires code, but adding terms to that taxonomy can be done by anyone in the admin. Let’s get the code out of the way:

 * Shortcut function for assigning Labels to a custom taxonomy
 * @param string $term
 * @param string $plural If not specified, "s" is added to the end of $term
 * @return array Labels for use by the custom taxonomy
function emusic_tax_inflection( $str = '', $plural = '' ) {
    $p = strlen( $plural ) ? $plural : $str . 's';

    return array(
        'name'              => _x( $p, 'taxonomy general name' ),
        'singular_name'     => _x( $str, 'taxonomy singular name' ),
        'search_items'      => __( 'Search ' . $p ),
        'all_items'         => __( 'All ' . $p ),
        'parent_item'       => __( 'Parent ' . $str ),
        'parent_item_colon' => __( 'Parent ' . $str . ':' ),
        'edit_item'         => __( 'Edit ' . $str ),
        'update_item'       => __( 'Update ' . $str ),
        'add_new_item'      => __( 'Add New ' . $str ),
        'new_item_name'     => __( 'New ' . $str . ' Name' ),
        'menu_name'         => __( $p ),

$post_types = get_post_types( array( 'exclude_from_search' => false, '_builtin' => false ) );

$defaults = array(
    'hierarchical'      => true,
    'public'            => true,
    'show_ui'           => true,
    '_builtin'          => true,
    'show_in_nav_menus' => false,
    'query_var'         => true,
    'rewrite'           => false

register_taxonomy( 'region', $post_types, wp_parse_args( array(
    'labels' => emusic_tax_inflection( 'Region' )
), $defaults ) );

Because we load a bunch of custom taxonomies, this code helps us stay modular. But yes, this is the amount of code required if you only have one taxonomy!

All you *really* need to know is: we made a hierarchical taxonomy. It’s called region. We are now going to use it EVERYWHERE.


So now that we have a taxonomy for region, we want to be able to assign region(s) to posts.


We also want to view the region in the posts list table. We can add custom columns to the posts table and make the region column sortable. We need some more code for that:

class CustomClassNamedWhatever {


 * Filters for Admin
function admin() {
    add_filter( 'manage_posts_columns', array( $this, 'manage_columns' ) );
    add_action( 'manage_posts_custom_column', array( $this, 'manage_custom_column' ), 10, 2 );
    add_filter( 'posts_clauses', array( $this, 'clauses' ), 10, 2 );

	// this is an internal method that gives me an array of relevant post types
    foreach ( $this->get_post_types( false ) as $t ) {
        add_filter( "manage_edit-{$t}_sortable_columns", array( $this, 'sortables' ) );

 * Register sortable columns
 * @param array $columns
 * @return array
function sortables( $columns ) {
    $post_type_obj = get_post_type();

    if ( is_object_in_taxonomy( $post_type_obj, 'region' ) )
	$columns['region'] = 'region';

    return $columns;

 * Add custom column headers
 * @param array $defaults
 * @return array
function manage_columns( $columns ) {
    $columns['region'] = __( 'Region' );
    return $columns;

 * Output terms for post in tax
 * @param int $id
 * @param string $tax
function _list_terms( $id, $tax ) {
    $terms = wp_get_object_terms( $id, $tax, array( 'fields' => 'names' ) );
    if ( ! empty( $terms ) )
        echo join( ', ', $terms );
 * Output custom HTML for custom column row
 * @param string $column
 * @param int $id
function manage_custom_column( $column, $post_id ) {
    if ( 'region' === $column )
	$this->_list_terms( $id, $column );

 * Filter SQL with this monstrosity for sorting
 * @global hyperdb $wpdb
 * @param array $clauses
 * @param WP_Query $wp_query
 * @return array
 * TODO: fix this
function clauses( $clauses, $wp_query ) {
    global $wpdb;

    if ( isset( $wp_query->query['orderby'] ) &&
        'region' === $wp_query->query['orderby'] ) {
        $tax = $wp_query->query['orderby'];

        $clauses['join'] .= <<term_relationships} ON {$wpdb->posts}.ID={$wpdb->term_relationships}.object_id
LEFT OUTER JOIN {$wpdb->term_taxonomy} USING (term_taxonomy_id)
LEFT OUTER JOIN {$wpdb->terms} USING (term_id)

        $clauses['where'] .= " AND (taxonomy = '{$tax}' OR taxonomy IS NULL)";
        $clauses['groupby'] = "object_id";
        $clauses['orderby']  = "GROUP_CONCAT({$wpdb->terms}.name ORDER BY name ASC) ";
        $clauses['orderby'] .= ( 'ASC' == strtoupper( $wp_query->get('order') ) ) ? 'ASC' : 'DESC';

    return $clauses;



After all of that, we can sort our posts by region:


If you’re new to WordPress, you may have just barfed. Just know that we added relevant code to make the Region column sortable. Meanwhile, we still haven’t done anything to make our site regionalized. If we let WordPress just do its thing, you would still get content from every region, not to the one you are specifically targeting.


We have very specific values we check to regionalize users. If you’re anonymous, we get an X-Akamai-Edgescape HTTP header that can parsed, and it contains a value for “country_code.” Based on that country code, we can assign you to a region. Anybody with a debug console can probably view this header in their eMusic requests. If you’re logged-in or “cookied” – we pin you to your original country code.

At the end of the day, we want to be able to set some constants:

 * Register default constants
if ( ! defined( 'THE_COUNTRY' ) )
    define( 'THE_COUNTRY', get_country_code() );

if ( ! defined( 'THE_REGION' ) )
    define( 'THE_REGION', get_region() );

if ( ! defined( 'CURRENCY_SYMBOL' ) ) {
    global $currency_symbol_map;
    if ( isset( $currency_symbol_map[THE_REGION] ) ) {
	define( 'CURRENCY_SYMBOL', $currency_symbol_map[THE_REGION] );
    } else {
	define( 'CURRENCY_SYMBOL', $currency_symbol_map['US'] );

get_country_code() and get_region() are very specific to eMusic, so I won’t bore you with them, but they both return a 2-character-uppercase value for country or region, “US” and “US” for example. Now, anywhere in our code where we need to refer to region or country, THE_REGION and THE_COUNTRY will do it.

Linking Region to Taxonomy

Ok cool, we have a taxonomy, and we have some vague representation of region / country defined as constants. We still don’t have regionalized content. One way we could link region to taxonomy terms would be to make a map and refer to it when necessary:

$regions_map = array(
    'US' => 3,
    'UK' => 6,
    'CA' => 9,
    'EU' => 11,

This method sucks. Why? Are those IDs term_ids or term_taxonomy_ids? What if they change? Also, grabbing a PHP global every time you need to translate region code to term_id is weird. How else can we get the terms belonging to the region taxonomy? Let’s try this database call which is cached in memory after the first time it is retrieved:

get_terms( 'region' );

That’s great, but what do I do with it? Because your Region codes are also the names of your region terms, you could dynamically create your map like this:

$map = array();
foreach ( $terms as $term )
    $map[$term->name] = $term->term_taxonomy_id;

Next question: where do I set this, and how do I account for crazy stuff like switch_to_blog()? Try this:

 * Automatically resets regions_tax_map on switch_to_blog()
 * Because we switch_to_blog() in sunrise.php, this function is
 * called when plugins_loaded to create initial values
 * @param int $blog_id
function set_regions_tax_map( $blog_id = 0 ) {
     if ( ! isset( get_emusic()->regions_tax_maps ) )
	get_emusic()->regions_tax_maps = array();

     if ( ! taxonomy_exists( 'region' ) )

     if ( empty( $blog_id ) )
	$blog_id = get_current_blog_id();

     if ( isset( get_emusic()->regions_tax_maps[$blog_id] ) ) {
	get_emusic()->regions_tax_map = get_emusic()->regions_tax_maps[$blog_id];

    $terms = get_terms( 'region' );

    $map = array();
    foreach ( $terms as $term )
	$map[$term->name] = $term->term_taxonomy_id;

    get_emusic()->regions_tax_maps[$blog_id] = $map;
    get_emusic()->regions_tax_map = get_emusic()->regions_tax_maps[$blog_id];

 * The initial setting of $emusic->regions_tax_map on load
add_action( 'init', 'set_regions_tax_map', 20 );
 * Resets context on switch to blog
add_action( 'switch_blog', 'set_regions_tax_map' );

STILL, we don’t have regionalized content, we just have a standard way of mapping region code to term_taxonomy_ids. So why do I care about the IDs? Because we have to use them to alter our default WP queries so that posts only intersect the region of the current user.

Tax Query

Tax Query is an advanced way of altering WP_Query. If you load a page of WP posts, you ran WP_Query. A developer can make their own instances of WP_Query or alter the global one. We need to alter the global one and we don’t want to ever use query_posts to do that. The first thing we need to do is retrieve our map of Term Name => Term Taxonomy ID:

 * Gets a map of region name => term_taxonomy_id
 * @return array
function get_current_regions_tax_map() {
    return get_emusic()->regions_tax_map;

Now that we have that, we want to use it in the tax query that we are going to inject into WP_Query. One step at a time, here’s the tax_query portion, encapsulated in a function that always returns the proper context:

 * Encapsulates common code to create a regionalized tax_query
 * e.g. $tax_query = array( get_region_tax_query() );
 * @param int $region
 * @param int $all
 * @return array
function get_region_tax_query( $region = '', $all = true ) {
	$regions_tax_map = get_current_regions_tax_map();
	if ( empty( $regions_tax_map ) )

	$terms = array();
	$terms[] = $regions_tax_map[ empty( $region ) ? THE_REGION : strtoupper( $region ) ];
	if ( true === $all )
		$terms[] = $regions_tax_map['ALL'];

	$tax_query = array(
		'operator'		=> 'IN',
		'taxonomy'		=> 'region',
		'field'			=> 'term_taxonomy_id',
		'terms'			=> $terms,
		'include_children'	=> false

	return $tax_query;

Being able to query by term_taxonomy_id is important, because it is the primary key for the term / taxonomy relationship. If I had passed term_ids, they would need to be translated into term_taxonomy_ids by WP_Tax_Query before WP_Query could complete its logic. I helped nurse this new functionality along in WordPress core (3.5):

Ok cool, we have the tax_query portion, but we haven’t applied it to the global WP_Query yet, let’s do that next.


Here is what you may use in your theme or plugin to apply regionalization to WP_Query. The best place to hook in is “pre_get_posts.” In this hook, we can directly alter the query:

class MyAwesomeExampleThemeClass {


protected function regionalize() {
    add_filter( 'pre_get_posts', array( $this, 'pre_posts' ) );

 * @param WP_Query $query
 * @return WP_Query
function pre_posts( $query ) {
    if ( $query->is_main_query() && ! is_admin() && ( is_archive() || is_front_page() || is_search() ) ) {
        if ( ! $query->is_post_type_archive() )
            $query->set( 'post_type', $this->post_types );

        $query->set( 'tax_query', array( get_region_tax_query() ) );

        $query = apply_filters( 'emusic_pre_get_posts', $query );
    return $query;



The above will regionalize posts in search results and on archive pages. If you want to alter a query inline, now all you have to do is something like this:

$results = new WP_Query( array(
    'tax_query'	=> array( get_region_tax_query() ),
    'orderby' => 'comment_count',
    'order' => 'DESC',
    'posts_per_page'=> $limit
) );

In Action

View eMusic in multiple regions:

From the US
From France in the EU
From Canada (CA)
From Great Britain, mate (UK)

Why Spotify Sucks

I just watched the Session Highlights of Spotify CEO Daniel Ek and investor/adviser Sean Parker’s talk with Walt Mossberg at the All Things Digital Conference, and it confirmed what I have thought for a long time: Spotify sucks, is bad for artists, and hopefully does not succeed. I am not saying this because I have bias (I work for eMusic). I am saying this because I am a musician, I know a ton of musicians, I play in a band, I have toured with my band, and I have seen behind the curtain of how the music industry works. I know how little money there is to go around it, and I can give you some examples.

Return of the Era of the Single?

One of the most irritating things I hear is that “people don’t want full albums, they only want singles.” People generally will say “albums only have one or two songs that are worth hearing, the rest is filler.” So, that’s a giant lie. Yes, I’m sure the one Chris Brown song you heard at the mall is the only good song on his record. But if you’re buying a Chris Brown record and going to the mall, you aren’t the kind of person that is going to deeply engage with a digital music service anyways. You probably also have bad taste. If you are a real music fan, you buy records because you like the artist. You want to hear the entire record.

Artists don’t go into the studio to record one good song and then load up the rest of the record with filler. I’m sure there are plenty of pop factory records that do, but in that case, the label is probably shooting to moon and trying to launch the new teen sensation or something. *Real* artists are trying to create something great. You would never get a Radiohead record and skip through the tracks until you found the hit. You listen to the entire record, know every song, and view the work as a whole, as a period in the band’s life.

Saying that people only want to consume bands and artists in a hyper-unaware, ADD fashion is insulting and a piece of misdirection. “Album sales are down, accept that people might pay for one song only and be happy about it!” No. There is nothing better than a great album by a great band. And there are many, new ones arriving weekly.

The simple facts are: an artist will make more money from the purchases of their album, digital or otherwise, than they will from the sum of streaming royalties. Let’s say an album sells for $10 on iTunes, the label gets $7, and the artist gets $2 of that. If the albums sells 100,000 copies – which in this day and age, is what a semi-famous indie will sell – the artist gets about $200,000. Assume the artist is a band with 4 people: $50,000 each (let’s make it $37,000 after taxes). If you’re from my hometown where the median income is in the mid-$20K range, congrats: you’re in the middle class. If you live in Brooklyn (probably Bed Stuy or Flatbush on that money), you make less than a 23 year old on their first job post-college.

So that money doesn’t look very good, right? Let’s look at another scenario. YOU’RE the label. You made the record in your bedroom, but it sounds great, and Pitchfork wrote about you. 100,000 albums is a dream, you sold 20,000 albums – huge numbers for a DIY-er. You make $140,000 / take off taxes / divide by 4. You’re poor.

Artists Have Other Revenue Streams, Right?

Um, not really…. I mean, there is touring. Let’s break down touring. Assume you are in my band, and you want to go on tour for 2 weeks (we’ve done this, a bunch of times). Before you even leave home, the vehicle rental is a fixed cost, about $3,000 – could be cheaper depending where you tour, but ultimately, it’s expensive. If your only income is your band, this could be a non-starter. $750 per man from someone making $1,000 a month is a lot of money. Remember, the money made from an album doesn’t come in one lump sum, and the royalties are cumulative for an entire 1-2 years, and money is probably only paid every quarter, if that often. And the money is only a reality if 1) you made an awesome record and 2) people buy it. Not just “people,” but every person who likes the album. You can see where our numbers fall apart again.

So not only do we have to pay about $3,000 for our van, we need to put gas in it every day. Not sure if you’re aware how expensive gas is these days, but speculation by banks into the commodities and futures markets have caused things like gas to shoot up into the holy shit expensive range. When you go to fill up your gas tank, expect to drop $100 every time. Let’s assume you fill up 2/3 of the days you are on tour (10 days). There’s another $1000 in fixed costs.

You might be asking, why not play venues that are closer together? You would save money! That would be awesome, but that’s not gonna work. Every state in America has a finite number of towns in it that are even remotely interesting. Try this: name 6 towns in Virginia that have music venues that support your style of music. Ok, now get booked in all 6 towns. You can’t because: you may have zero draw (number people willing to come see and pay money for it), the venue is already booked, the promoter might not like your music.

But let’s shoot the moon. Let’s say you booked all 6 venues back to back. Since you’re on a 2 week tour, let’s assume you’re playing every night. For one hour. Monday-Saturday, 6 nights in a row in Virginia. Since you’re new to the area, cover is $5 and you keep everything after the first 20 people pay. For four people in your band to split $100 a night, you need to have 40 paying customers every night for 6 nights. That means: to cover your gas for Tuesday and zero dollars left to split, you need to bring 40 people out to a music venue in Virginia, that may or may not even know who you are and have them plop down $5 to do so. You’re also trying to do this at a venue in a potentially backwoods town, and the venue might have 5 bands a night, 7 days a week.

This is not meant to be a horror story, this is reality. It is insanely hard to make money touring at a DIY level. But what you’re probably thinking is: yeah, but larger acts make a fucking killing, it’s just your shitty band that can’t make any money. Fair, but let’s break that down. Aerosmith? Yes, private jets, made $20M for 10 shows in Rio recently, boatloads of cash. Springsteen could sell out 20 nights in a row at Giants Stadium. But the number of people who can even come close to doing anything like that is very very small.

I know a band (they’ll remain nameless) that was recently in Pollstar’s Top 50 grossing acts. The band grosses about $1M a year from touring. They make guarantees at venues. A talent buyer calls up their booker and says he’ll give them $X to play at Y venue. The band thinks it over and might accept. They have a consistent draw in enough markets to command a decent guarantee. The band also sells a lot of merch. Because they are a jammy / folky kind of band, they don’t sell a lot of records. So, touring is their main source of income. Band has a booker, a manager, a crew, and 5 band members. My friend is in the band. What is his cut of that million dollar pie? $32,000 a year. $10K less than I made at my first job in NYC. And they’re a SUCCESS story!

Their tour bus runs about $700 a day. They have to add some production value to their show, so they have a crew. Manager takes his cut off the top, and they have to take out money for taxes. My friend assures me that NO ONE is making the money you think they are making from touring. A lot of major pop acts will release a single from a new album, and if it doesn’t blow up like they expect, they’ll cancel their stadium / arena tour, knowing how expensive it is to not have consistent sellouts (Kelly Clarkson and Christina Aguilera both cancelled tours a few years ago, rather than scale back).

So where are those other revenue streams?

Spotify pays about $0.0004 per stream. Let’s say you write an amazing pop tune, the internet goes crazy, and Spotify’s users stream that song One Million Times. $400. You and your 3 bandmates are taking home a cool $100 a piece. Having your song streamed a million times means your band has some level of fame. And your reward for blanketing Spotify with your single is 400 fucking dollars. Let’s assume my math is WAY off and Spotify actually pays a penny ($0.01) per stream. Congrats on your cumulative payout of $2500 per man. If you are super broke, you’re happy, for a month.

Of course, let’s realize that almost no one generates 1 million streams. So almost no one is making that much money, which isn’t even a lot of money.

Artists Get Exposure?

I have heard SO MANY people defend Spotify and say “but artists get exposure.” How? How does generating a $0.0004 payout to an artist qualify as anything other than “I just got to hear music on demand for free.” That artist probably spent $2000-10000 making their record. So those million streams are just paying them back for that (if they get the huge royalty rate of one fucking penny per stream, which is absurdly high). They then hope to translate those listens into paying customers at their shows.

Here is where the logic falls apart for me, because none of the people who say that (“artists get exposure”) are in a band, have toured, and have had to generate an audience of paying customers. It is very very hard to get all of your FRIENDS to come to a show, much less strangers in a area where you are not from and have no roots. Saying that streams translate into concert attendance makes the false assumption that everyone who listens to music sees all of those bands in concert every chance they get.

MOST people don’t ever see live music. MOST people don’t go out on Tuesday nights. Some markets work different than others. In NYC, you might have people come out on a Tuesday night and see you. In some college markets, the same. But even in rowdy college towns, you can’t always rely on a huge turnout on weeknights, even from those people who enjoy your music.

To make the argument that somehow Spotify changes this is ludicrous. Otherwise, what does “exposure” mean? Does it mean this listener is now going to spend top dollar for your goods? They were just of Spotify to SAVE MONEY, and NOT PAY full price, or at all, for your music.

There is no added exposure, there’s $0.0004 to you and your buddies.

Music is not Free

I don’t care how this sounds – Lars Ulrich was ahead of his time. Napster somehow made everyone believe that music is free and it is Your Right to be able to download the shit out of it, at will, for eternity. In that scenario, musicians are basically expected to live in abject poverty. Yes, you’ll have your manufactured stars that appear to have it all, and the few that break through actually will. But in society these days, music and movies and art are seen by the general public as not a product, but as an unalienable right that all people have to download and then vote on the life or death of the artists who created them.

At the end of last year, I was really into The War on Drugs lastest record. I actually see all the bands I respect live, so I was at their sold-out show at The Bowery Ballroom. I hung around after to have some beers and maybe meet the band, since I noticed they were packing up their merch tables themselves. Standing there, I overheard the lead singer’s friend ask the band where they were crashing that night (the band is from Philly). Lead singer: “The Red Roof Inn in Secaucus, my dad got us 2 rooms.”

LCD Soundsystem played their final show at Madison Square Garden last year, rounding off a year of a tour or 2 at some of the biggest venues and festivals across the world. James Murphy appears to make a bunch of dough, but I know someone who knows Nancy Whang (maybe the 2nd most recognizable person in the band), and she’s close to 40 years old and lives with 2 roommates. I know other members of the band do a lot of substitute teaching.

When I saw the Dirty Projectors play the 4th of 4 sold-out shows at The Bowery Ballroom a few years ago, they were setting up their own gear because they don’t have a crew, and that was at the height of their popularity – The Roots and David Byrne joined them on stage that night.

When Sharon Van Etten made her record last year, she actually didn’t live anywhere – she was crashing with different friends throughout. And these are the SUCCESS stories. These are some of the most revered artists of present day. Magazine covers, indie label contracts, the occasional video, Take Away Shows, sold out NYC shows. And they’re just scraping by. Spotify’s not saving them, and won’t.

Imagine what Spotify’s not doing for artists that aren’t at the top of the game.

Chatype, font for Chattanooga

I think I posted this on Facebook a while ago, but I was talking to some people about this weekend randomly so I figured I would post it here. Chattanooga is in Tennessee, about 2 hours from where I lived full-time from age 6-18, meaning I “grew up in Tennessee.” Everybody who is from Tennessee knows there are awesome aspects to the state, and there are bad / weird / crazy parts of it.

As with any landlocked state of Greater ‘merica, there are basically 3-5 towns that are even worth visiting, and a few more that are ok if you are from the area, and then the rest make up a strong voting contingency of the GOP and Fox News’ viewership. Nashville and Knoxville are cool. My hometown, Cookeville, is halfway in between them.

I’ve been to Chattanooga on several random occasions. It’s cooler than you’d expect. And by way of these Vimeo and Kickstarter posts, it appears someone fancies the town to be “the next ___” – I’m gonna guess Portland.

Anyways – I’m posting the links here so people can check them out, cool ideas:

Official Site: Chatype
Kickstarter (already funded): Chatype: A Typeface for Chattanooga, Tennessee.