One Way Tweet
Feb 6, 2018 - 07 p.m.

A couple weeks ago (wow, actually more like a month) I tweeted about my latest project, One Way Tweet, a twitter client with very limited functionality, and I promised I would write a follow up blog post with the motivation and possible plans for the future of it. This is that post.

I love twitter, I really do, but it has become increasingly clear to me (and many others) that it and social media in general are a source of a lot of stress in our lives. Bouncing our attention around constantly leaves us unsatisfied, endlessly bored, and feeling unfulfilled. Not to mention the level of discussion online can be so toxic. It's also hard to get anything done when you're constantly refreshing your feed.

One Way Tweet is software in the service of a more mindful approach to social media. Sort of a middle road between canceling your internet service and living online. It allows you to send tweets but purposefully provides no way to surface tweet content. Throughout the day I come up with tweet ideas, and in the past I would go to twitter, fire off the tweet and then find myself sucked into my feed. Time melted away, and whatever I was working on got left in the dust. Now instead I can send the tweet without the risk of losing my afternoon. I can even block the url in my hosts file and still tweet (after the initial auth.) Technology shouldn't just be a source of stress, but also a tool to aid us in relieving stress. I'm hoping this small piece of software is helpful to me and others in some way. Also it was way more fun to write than most things I write day to day!

Depending on how successful it is, I'd like to add an android app version (although it's currently pretty ok looking on mobile) and additional features like twitter handle autocomplete and image uploading, depending on what users might find useful.

Let me know what you think and have a good one.
A Year of Meditation
Jan 4, 2018 - 01 p.m.

My new year’s resolution last year was to meditate every day this year, which in thirty-two years is the first resolution I can remember completing, and it feels pretty good. Meditation isn’t something that I mention much because I worry people will find it obnoxious. However, I do think it’s something that can help almost everyone, so now, under the cover of humble bragging, I’m going to talk a little about it.

I first began meditation around three years ago, during an acute bout of anxiety, when a therapist suggested it to me. I’ve fought the depression/anxiety demon for as long as I can remember, doing years of talk therapy and taking piles of medication. While those both worked in varying degrees, for me, mindfulness has been the closest thing to a silver bullet I’ve tried. (That's not to say those aren't valid treatment options, in high school they likely saved my life.) With regular meditation, I’ve found myself in much better control of my anxiety, and as a result, happier.

This also isn’t to say that you need to complete a year of daily meditation for positive effects. Before this year, I skipped days frequently, and during the year, not every day was what you would call “zen”. Most days I sat for five to ten minutes, but I also meditated for ten seconds with my eyes closed on the top of a mountain with someone talking to me, drunk and sitting on the floor next to my bed after waking in a panic realizing I’d forgotten, and while pushing a sleeping toddler in a stroller through disney world. All good, and the overall change in my life has always been positive.

Anyway, I’m carrying on a bit more than what my point needs. If you’re looking for a way to improve your life this year (it is the new year season after all), please consider trying a meditation practice. When I first started I found Headspace’s Take Ten program a good starting point, although I now use a different app (Insight Timer) to track my progress. I’d also recommend reading Mindfulness in Plain English (also free online here). I’ve read it a few times now, and every time I get more out of it. Also feel free to send me an email or tweet, it’s something I’m happy to talk to interested people about.

As a related aside, this year has inspired me to plan and work on software to promote more mindful use of technology, so keep an eye here in the coming months.

Sep 20, 2017 - 01 p.m.

When it comes to writing code, I go through phases. As long as I've been working I've been writing code almost every day, but when it comes to writing code outside of work, it's been everything from writing zero code for months to writing every day. Why? My guess is it's a function of how exciting work code is and how I'm currently viewing my own goals. I haven't done a good job of observing.

Regardless of my motivations, when I am working on code in my spare time, almost all of it goes on github. For a long time I've linked to that on my resume, but I think even with github's new pinned repositories, that probably does a poor job of communicating what I've actually done. What are these repos? Can they be seen running anywhere? What was the point of any of them? To address this, I've added the projects page to this site. These are all the spare time projects that have actually "shipped", along with some info about them.

That's all for now, have a good one.
Well, that escalated quickly
Aug 14, 2017 - 06 p.m.

Last Friday, I'd just gotten out of a meeting and was thinking about how the meeting was going to affect my productivity for the morning when inspiration struck. Some messing around with google calendar, a screenshot, go to twitter, hit send. Here's the tweet that came out of it:

It was pretty popular through the day and around 9:30pm it had something like 250 retweets. Since most of my tweets get like two favorites and no retweets, I was feeling pretty good about myself. Then my phone really started to buzz a lot. Like, "your wife tells you to do something about all the stupid buzzing" level of buzzing. It seems several prominent developer voices had retweeted it to their many hundreds of thousands of followers (people like David Heinemeier Hansson and Joel Spolsky!), and that's when things really got out of hand. As of this writing, it's around 6k retweets and 11k favorites. I'm just glad people like something silly I came up with in between stuff at work. It's about something that bugs and obviously it struck a nerve. Also it feels great to be internet famous and I never want to go back.

I'm not going to talk much about the concept of developers and context switching, since it's hardly a concept I came up with by myself and it's one that's been covered pretty well by people much more eloquent than me. However, I did see some common themes in response to my tweet and I figured here would be a better place to address them than in batches of 140 characters. Here goes:

Everyone has this problem not just developers!

I'd agree this is a human problem, but in my experience it's worse when working on dev tasks, than say, management tasks. Everyone is different thought. Also saw lots of "designers/writers/creatives too!", which instinctually I'd agree but lack the experience to say for sure.

Meetings are important though!

Again, I'd agree. Meetings are important to team success. Everyone just needs to be mindful of the true cost of them, which I think my goofy image does a pretty good job of showing. Keeping this in mind might also prevent the dreaded drive by meeting or getting pulled into someone's office for a single question that could have been done over chat!

Own your own schedule!

I think most experienced developers do their best to guard their time. I saw some suggestions of blocking off development blocks on your calendar, which I love. However, since developers generally have more open time in their schedule (to, you know, work) they are subject to the time constraints of people who have more restricted schedules. E.g. your product manager needs to talk to you but they only have 15 minutes at 10:30 so that's what you get and tough luck computer crew. This is just what it is, but hopefully your product manager is kind when they can be.

There were a few negative responses floating around, but I don't feel they really need to be addressed, since they were from people taking things just a little too seriously. It's just a silly tweet, they're just dumb meetings, let's all try to be our happiest, ay?

Thanks for reading, hope you have a good day.

Redesign and revamp
Jul 5, 2017 - 05 p.m.

A couple weeks ago, I got an email from my lovely web host (webfaction) that they were migrating my account to a new shared server. I've had an account with them for so long that the server I was on was still 32 bit and they were moving me to a 64 bit server. Nice of them, but it meant I needed to do some legwork updating various software.

This blog is written in django, and the version was hilariously out of date. I had been running 1.2, and the latest version is 1.11 (!) The upgrade ended up being suprisingly easy. For the simple functionality of a blog, very little has changed in django over the last nine versions, which was convenient. Most of the original code required little re-working. The biggest hurdle was shaking the cobwebs loose around working on python again.

During the process of upgrading, I was looking at the site more than I had in a while. And what I was seeing was that it was ugly as sin. Web design ages poorly, especially design done by an inexperienced web developer, and this design was roughly eight years old.

So I added the goal of a redesign. I used Materialize, which I also used when building my pointing poker clone, and I quite like how things turned out. I especially like that materialize gives you a set of pre-defined color schemes to work with.

So that's the story of how my blog came back to life and why it looks different. I think my next goal is going to be rewriting it as a single page app in Elm, because I think Elm is a joy to write and it would be nice to build a full application with it.