Founder at

I took the train from Jacksonville, Florida to Portland, Oregon for the #AWP conference, where the team exhibited. This is the story of that journey.

Read everything up until this point: Day 1, Day 2, Day 3

Day 4

I woke somewhere in North Dakota, the waning gibbous moon looking at me across patchy snow-covered plains. The sun was slowly turning the eastern sky behind us orange and yellow; I pulled some levers under the seats in my roomette to slide them up out of “bed mode” and back into seats, then looked out the window for a while. I'd tell you what was on my mind, if those thoughts happened to be in English — but they weren't, so all I can say is that it was a very pretty morning.


I'm taking the train from Jacksonville, Florida to Portland, Oregon for the AWP conference, where the team will exhibit. This is the story of that journey.

Previous: Day 1, Day 2

It's 3 am and we're going through... some city. Cleveland, I guess. Yep — Cleveland. My left hip is killing me. Somehow the arrangement of my limbs isn't only affecting the muscles around my hips, but also around my knee. Is my leg asleep, just not at the pins-and-needles stage yet? No idea, but it's stiff in ways I've never felt, so I have no idea how to fix it. Anyway, next stop: Chicago.


I'm taking the train from Jacksonville, Florida to Portland, Oregon for the AWP conference, where the team will exhibit. This is the story of that journey.

Previous: Day 1 Next: Day 3

Sleep last night was punctuated by a sore hip, a stiff knee, a quick lateral jerk by the entire train, seemingly going faster than usual, I guess to make up time (it was about 40 minutes late getting into Jacksonville). With my footrest down and my legrest up, I slept about as good as anyone can in that position — my only enemy was a giant, undimmed light hanging over the vestibule door, shining directly into my eyes at my slightly-reclined angle. So I covered my head with a hoodie and slept quite deeply, between the random jarring moments.


I'm taking the train from Jacksonville, Florida to Portland, Oregon for the AWP conference, where the team will exhibit. This is the story of that journey.

I love taking the train. I can't really remember when I started regularly riding it — sometime in the past six years of living in northern Florida. But I often get on the Silver Meteor or Silver Star for a relaxing trip up the east coast to visit family in the DC area. Whenever I travel abroad, it's my preferred mode of transportation — whether the Shinkansen in Japan or the many rail lines in Europe. I wish it was possible to travel the United States with the same ease as in those countries, but today I'm content that we have a passenger rail system at all.


We live in a cacophony of constant commentary. Whether it's talking heads on TV, buzzing smartphones, status updates, blog posts, social media mentions or retweets or reblogs or comments or likes, we're surrounded by opinion and reaction.

When it comes to software that enables the spread of commentary, we need to remember the human side. That's what I'm hoping to do with our upcoming product,


I recently found myself working 12+ hour days again, so I took these last two weeks to slow down, step back from work a bit, and enjoy time with family and friends. I'll be slowly ramping up again over this upcoming week, so we'll be back to full-speed again by next week.

I'm not usually one to divvy up my life into calendar years, but 2018 was a particularly impactful one for me, so I figure, what better time to do a little reflection than now?

I made some major life changes this year. ...Well, one in particular: I traded employee life for founder/boss-man/big-cheese/“maker” life back in February. I did a lot of traveling this year — some just me and my dog, some alone, some with good friends or family.

I started meeting more people, from my own city and others. I got stranded in Alabama as my old car broke down, and made friends with some mechanics. I got a tour of Asheville after showing up without a plan. I got too little sleep dancing and wrestling with locals in Reykjavik. I traded languages with new friends in Sevilla, and stories with Münchner, despite my sorely lacking German. I did some things for business and many for pleasure.

What I'm most excited about right now, this day in late December, is feeling like I'm finally hitting my stride. Besides having the time to build the things I want to this year, I've also had the space I need to grow up and out of old habits; to grab more control over how I spend my time and energy; to do things more deliberately. Many of my experiences and mishaps this year made me realize what I've been doing wrong for a much longer time, and what to do about those things.

One thing I've done over the past few months is go on a diet — partly to lose weight, and partly to eat less terrible food. I was never taught how to eat well as a kid — I didn't touch a vegetable and enjoy it until my mid-20s. But cutting out the sugar and beer and pasta for more whole, varied foods overall has got my body feeling better, and my mind more clear. I've lost a decent amount of weight, but more importantly, most mornings I actually wake up feeling refreshed and ready. When you eat like shit all of your life, this is a truly profound feeling.

One realization I had this year was that I've actually been doing something pretty serious this whole time, despite me not recognizing it — building these platforms and ideas and this business. I'm trying to seriously build something that will last. I'm seriously trying to continue doing that for the next few decades. I haven't felt that way about anything in my relatively short life thus far, so actually acknowledging it really affected me.

As I look to 2019, I'm optimistic. I can't wait to build more things, and help more people express themselves freely. I can't wait to meet more humans I've never known or only corresponded with through a screen — whether that's at FOSDEM 2019 in Brussels (February 2-3), AWP 2019 in Portland (March 27-30), or anywhere in between. I can't wait for what tomorrow holds, and I hope you can't either.

Happy New Year, everyone 🎉

#2019 #newyear2019 #personal #travel #work

A recurring problem I and others see in the fediverse, with both new and veteran users, is the issue of a single identity.

I wrestled with this when I first created a Mastodon account, going straight for one on, as most people do. But when I wanted to start my own writing-centric instance, I had to create a new personal account on it and mention my account in the bio, and vice versa. I was the same person, but speaking to different audiences — one, a general audience and the other, more about writing.

Many people create multiple accounts — the point, especially on niche instances, is to get access to the local timeline and see the conversations around your instance's niche. (There are probably better ways to handle this specific problem, but I digress.)

The issue of identity really started to grow as new platforms popped up. There's PixelFed / Anfora for photos, PeerTube for videos, Plume and WriteFreely for blogging, and many more in the works. Though #ActivityPub allows you to follow and comment on all these services from a single identity, current implementations unfortunately don't accommodate the other side: the publisher hoping to utilize all these services under a single identity.

But I think I have a solution — one I mentioned in a recent conversation in the fediverse.

Essentially, we could make each ActivityPub service work both as a publishing platform and a client to other AP services. So for example, if I wanted my primary identity to be a Mastodon account, I could also create a PixelFed account like normal and hook it up to that Mastodon account. In this scenario, PixelFed would let me turn off publication of any ActivityPub endpoints (so people aren't also following my PixelFed account), and would simply interact with Mastodon's API as a client. With this kind of setup, I could use PixelFed's photo uploading / filtering features and have everything go to the profile of mine that people already follow, over on Mastodon. With this, people could combine any number of services to publish a variety of posts all to a single identity.

With the projects I'm building, WriteFreely and, you might use your WriteFreely blog as your primary identity, and then by hooking up your account, any posts you boost from there would be published to your blog.

Of course, making this work in practice will involve much more work that wouldn't otherwise be needed. For one, each platform would need to be able to store any kind of activity out there published by another platform. And some platforms will be more suited to play the “identity” role than others.

Still, I think it's an interesting idea. And I'll be experimenting with it in the future to see if it's all actually possible.

#fediverse #WriteFreely #ReadAs

Now #hashtags are included in the post data sent out to the #fediverse! This means that besides helping organize your writing on your blog, hashtagging your posts will make them show up in searches too, like this:

We also support #CamelCase tags, and encourage everyone to use them to help visually impaired people reading your posts.

Next I'll include any image attachments, and then the only remaining feature to complete this basic implementation is to support scheduled posts. Once that's done, I'll move on to fixing interoperation with other platforms besides Mastodon.

#WriteAs #tags #ActivityPub

As we make iterative technological jumps, what do we lose in the process? I'm thinking about this with It's cool what Google does with machine learning, but what do we lose when the machine put our albums together instead of us? Or when a good friend does? What connections do we miss out on? What is more important: connecting to an illusory intelligence, or another human, animal, the natural world?

One thing we don't see very often in the software world is a project being finished. Why does some piece of software need a visual refresh every year? Why are there more freaking menus here when I could navigate the site just fine before? Why can't we be content with something we built that's just really, really good as it is?

The answers, in many cases, are: it doesn't; no good reason; we can.

One of the things I'm happy to have accomplished, that I noticed the other day writing my last post, was that this thing I built does exactly what I need it to and no more. Are there some places that could be smoothed out? Sure. But overall, it's pretty damn good, and has remained that way for years.

The exciting part for me, the guy building the thing, is that the software is still improving, but it's not disturbing the user. I, the writer, am happy that the publish button is in the same place it was yesterday — but oh by the way, now this cool thing will happen where this post will go out to followers in the fediverse as soon as I publish it.

Build something to be good and as close to perfect as possible — not for endless improvement.

Enter your email to subscribe to updates.