Skip to main content

PGP: C756 2813 F881 06E2 6F1F 547B 003F 530D 3859 B702

Learn more about me. Email me at








Supporting the Open Web

1 min read

Today, my employer announced its backing of Manton Reece's excellent Indie Microblogging Kickstarter campaign. I wrote a few words about it over on our blog, and you should check it out. If you haven't already become a backer, I'd encourage you to consider contributing to the cause.

2016 was a really interesting year for DreamHost, and I think the thing that I am most proud of is our revised Vision statement, which is in support of an overall Noble Cause.

  • Noble Cause: We help people own their digital presence.
  • Vision: People have the freedom to choose how their digital content is shared.

Its great to be a part of a company that has a passion for the open web, freedom of information, and privacy.


The Mourning After: You Are Not Alone

3 min read

This morning, I mourn briefly, and then I turn to look forward. The march of progress never stops, it merely slows. There is hope and purpose in all things, and now we have to find it together. Presently, I feel so alone, but I know that I am not.

To my immigrant friends: know that you are loved and welcome by so many in this country. Know that we will continue to fight for you and care about you. You are not alone.

To all women, especially victims of sexual assault: know that nothing and no one can invalidate your pain or your value. We will continue to stand up for you. You are not alone.

To my LGBT friends: I love you. You matter. You are not sick. You are beautiful and your identity is real and no one can take that away from you. We are here to stand with you no matter what. You are not alone.

To people of color: stay strong. The result this morning has me, a white male, fearful for you and your families. But know that you are important and valued. Systematic racism is real, and so many of us will continue to fight it alongside you. You are not alone.

To the needy: we won't abandon you. Where government fails you, we will do what we can to fill the void. We will never stop fighting to change our system to give you a chance to make it. You are not alone.

To the Muslim community, and people of all faiths and creeds: your freedom to worship without fear of discrimination or persecution is so important to this country. I will stand up to anyone who tries to take those freedoms from you. You are not alone.

Finally, to those of you who voted for our President-elect: I don't understand you, and I don't respect the man you voted for, but I will try to understand. I will try and hear you. I am guessing that you felt alone, and this is your response. Well, clearly you are not alone. Now, let's work together to listen to those who still feel alone: immigrants, victims of sexual assault, people of color, the LGBT community, muslims, the needy. Open your hearts to them and I will open mine to you. We won't agree on many things, but I ask you to listen, as I will listen to you. Who knows? Maybe we can actually continue the march of progress together.


The difference in our differences

3 min read

Primary season for the 2016 Presidential election is well under way. On the left, the Democratic field has narrowed to Hillary Clinton and Bernie Sanders, while the GOP field can best be described as a circus, with Donald Trump currently leading Ted Cruz, Marco Rubio, and a cadre of also-rans with no chance at the nomination.  The circus on the right has prompted a lot of discussion, and it's highlighted an important difference that I think needs to be discussed. Notably: how objectionable are our candidates, and for what reason?

Republicans commonly respond to Democrats with statements like "at least Trump isn't a socialist like Bernie Sanders," or "he can't be worse than Hillary, she is a corrupt politician!" Any response that elevates Trump over Bernie, Hillary, or even his GOP rivals is disingenuous at best, and dangerous at worst.

The arguments against Bernie Sanders relate to policy. He is unabashedly liberal, and his policies are aggressively left of center. The arguments against Hillary are that she represents the establishment: business as usual. These are fair arguments, and I respect those that make them.

The argument against Donald Trump, however, is completely different. While Trump's policies are easy to disagree with, when he actually discusses them, the reality is that most of those who dislike Trump aren't fearful of him for his policies. They are concerned because he is a narcissistic, bullying, racist sociopath who is entirely unfit to represent our nation. Arguments on policy and philosophy of the government are healthy, reasonable discussions that happen every election season. The argument against Trump is something new and unique. We're in uncharted territory, here!

A common refrain that I've heard repeated these last few weeks is that the popularity of Bernie Sanders and Donald Trump are a result of some common narrative – the rejection of the political establishment. Those who reject the political establishment on the left could certainly identify with Sanders. On the right, they can identify with Ted Cruz. But, those who identify with Donald Trump over Ted Cruz choose him because of his words and his actions, and the words and action of Donald Trump do not speak to anti-establishment. They speak to racism, xenophobia, and hate.

So, yes, disagree with Bernie's policies. Be concerned that Hillary is born of the political system. But, don't tell me that the concerns with Trump are equivalent. Don't tell me that the Sanders movement and the Trump movement spring from some common theme. They don't. While I wouldn't vote for Marco Rubio, at least my objections to him are rooted in policy. Trump, on the other hand is a cancerous tumor that must be excised from American politics.


For me, its Hillary

4 min read

Replied to a post on

Eight years ago, Hillary Clinton and Barack Obama were locked in an intense battle for the Democratic nomination for President. Obama soared upon a message of hope and change – a new type of politics that would bring cooperation and collaboration to Washington. Hillary Clinton, on the other hand, ran on a platform of experienced leadership, and an ability to get things done in the American political system.

I bought in hook, line, and sinker to Barack Obama's promise to try and change politics, and in retrospect, I am very happy I did. Barack Obama has been the right President for our country for the last eight years. He made genuine attempts to change the business of governing, brought an expected calm pragmatism to the office, and did some real good. The country is in a much better place than it was eight years ago at the end of George W. Bush's second term. The economy is stronger, we've got the beginnings of a saner approach to healthcare, and the deficit has been reduced by over a trillion dollars.

We're now at a new crossroads as Democratic and Republican candidates vie for the nominations of their respective parties. The GOP is in disarray, with a collection of terrifying candidates that preach xenophobia and fear, and threaten to roll back all of the progress that has been made under President Obama. The story in the Democratic party is significantly more interesting, and eerily familiar.

Hillary Clinton is locked in battle with Bernie Sanders, a progressive outsider that wants to change politics. Sanders' positions are aggressively liberal, with the exception of gun control, and he resonates strongly with young people. Clinton is again the experienced politician, and Sanders acolytes claim that she would be a return to business as usual; a cynical embrace of divisive and hostile political warfare.

I see things a little differently.

It is important to note that I find the vast majority of Bernie Sanders' proposed policies to be the fulfillment of American progress – true universal healthcare, free education for all, and fighting the influence of money in politics. That said, I do not believe that Sanders is the right candidate for the Democratic party, nor the best person to be President in the current political climate. Instead, I believe in Hillary Clinton, for three main reasons.

First and foremost, the same experience and feisty assertiveness that gets Hillary labeled as "business as usual" is precisely what is needed to combat the GOP's current run on crazy. While President Obama has been a calm pragmatist, the GOP has responded with vitriol and staunch obstructionism. I for one want to see the progress that the Obama administration has made be preserved and, more importantly, built upon. I do not believe that there is a single candidate that is better prepared to go to battle with the GOP than Hillary Clinton. She is a brilliant, experienced, principled leader that, quite simply knows how to get shit done.

Secondly, the field of GOP candidates is a nightmare for the future of the country. While Bernie Sanders' platform is extremely progressive, many of his positions are nearly impossible to implement in the current political climate, and are unpalatable to the moderate majority of Americans. I believe that a Sanders nomination would very likely lead to a President Trump or President Cruz, and that's not a gamble I am willing to take.

Finally, I believe that its time for America to have a woman in the Presidency. Eight years ago, we put a black man in the office of the President, sending a message of inclusion and hope to young minorities nationwide. As the father of a five year old girl, nothing would make me happier than to see her grow up with President Hillary Clinton in office.


Changing Education Paradigms

2 min read

This year, my daughter made the move from preschool to school, and the transition was quite difficult for her. We initially enrolled her in a "transitional kindergarten" program at a very high quality private school in the neighborhood. Things went well at first, but after a month or two, Colette began to show signs of distress. She wasn't her normal, bubbly self. She didn't want to go to school in the morning, and would put up a fight to avoid it. She was sad, and it was absolutely heartbreaking. What was going on with our little girl?

My lovely wife Lacey is a former teacher, and has a strong background in education and early childhood development. She introduced me to a different perspective on education, especially for young children. As a result of that process, we pulled Colette from her school, and began searching for a school with a much more progressive outlook on education. As an energetic, creative, and smart little girl, Colette needed more than what her school was offering her. She needed a school that would prepare her not for a world in the midst of the industrial revolution, but for a rapidly changing world that requires innovative thinking, collaboration, and problem solving skills.

After much searching, Lacey found The Knowing Garden Community School, which is only a mile from our home. Colette is now enrolled, and is enjoying every moment of her time. Why? Because TKG has taken a revolutionary approach to education. When we first visited TKG, they shared this fantastic video of a TED talk given by Sir Ken Robinson about Changing Paradigms for Education.

I'm so thrilled that we've found such a wonderful community to be a part of, and am confident that with their support, our children will grow into lifelong learners ready for the rapidly changing and modern world.


Publishing Markdown to Micropub Endpoints with Python

2 min read

You’re probably sick of my posts about Micropub by this point, so I’ll make this my last for a while. Maybe.

I’m up in Seattle this week on business, and the airplane ride from Los Angeles gave me a chance to play around a bit more with Micropub. I whipped up a quick script that allows for quickly publishing Markdown-formatted content to a Micropub endpoint.

This very post is published with the script! Micropub inception! Take a look:

#!/usr/bin/env python

A script for quickly publishing blog posts to a Micropub endpoint. To use
this script, first ensure that you have installed:


You will also need to set the following environment variables:


Run the script, and pass it the path to a Markdown-formatted file. YAML
formatted front matter can be provided with Micropub arguments such as
`name`, `published`, and `slug`.

import sys, os, yaml
import requests, markdown

# configuration
data = {}
token = os.environ.get('INDIEAUTH_TOKEN')
endpoint = os.environ.get('MICROPUB_ENDPOINT')

# make sure the user has provided adequate information
if not token or not endpoint:
    print 'INDIEAUTH_TOKEN & MICROPUB_ENDPOINT environment variables not set.'

if len(sys.argv)  2:
    print 'Usage:'
    print '    blogit '

# read in the content
filename = sys.argv[1]
raw_content = open(filename, 'rb').read()

# check for front matter
if raw_content.startswith('---'):

    # parse out the front matter from the raw content
    _, front_matter, raw_content = raw_content.split('---', 2)

    # parse the frontmatter
    data = yaml.load(front_matter)

# render markdown
data['content'] = markdown.markdown(raw_content, extensions=[

# populate remaining details
data['access_token'] = token
if 'h' not in data:
    data['h'] = 'entry'

# create the post
result =, data=data)

# check the result
if result.status_code not in (200, 201):
    print 'Failed to publish post with status code: %d' % result.status_code

print 'Published successfully.'

You’ll note that it supports some Markdown extras, including code highlighting with Pygments, and several other extras.

Feedback is, of course, welcome. On my flight home, I plan on polishing the script up a bit, making it easy to install, and adding a few options.


Micropub and the IndieWeb

2 min read

It's been years since I last maintained a personal website. Why? Sadly, because of the rise of social media, and content walled-gardens. A few weeks ago, I discovered Known, a new, open source CMS. Known acts as more than just a CMS, enabling users to create a single site that captures all of their content from social media and walled-gardens like Twitter, Facebook, and Instagram.

Known was born out of the IndieWeb movement, which focuses on resurrecting the web of the past, where your content is owned by you, not by an ad-driven corporation. The IndieWeb crew have developed a series of standards and specifications to encourage what they call POSSE, or Publish on your Own Site, Syndicate Elsewhere.

Surprise, It's Markdown!

This site that you are reading right now is created with Known, and fully supports IndieWeb standards like Micropub. In fact, this very post was created in Editorial for iOS and published via Micropub to this site via two workflows.

The Future is Open and Bright

I am thoroughly enjoying being able to microblog, create long form posts, share photos, and otherwise participate in the open web again, while maintaining my ownership over my own content in a single, canonical, self-managed site on my own domain.

The future of the open web is looking up!