Actions I might find in an ideal micropost reading tool:

  • skip: some things should just be removed from my stream. there are valid reasons not to unfollow someone despite not wanting to read their content. I should also be able to silence things based on content.
  • sift: my massive feed should have a way for me to type what I’m interested in at the moment, and see items (posts, microposts, commits) about it.
  • skim: there should be a smaller feed of stuff I want to have a chance to read, that I can quickly scroll through.
  • read: some things I actually want to read. this should be smaller still.
  • reply: unlike the above, these will have to be ticked off one by one.
  • act: I feel I don’t act on what I read often enough. When someone I follow writes a nifty new library I should actually install it and try it out, and offer feedback.

Finally, catching up on items from my streams should feel like work more often. Using some of these networks directly is biased towards goofing off.

I’m a believer in the concept of necessary steps.

I can’t waste less time online unless I show some restraint.

I can’t have more privacy online if I don’t self-filter.

Tools can help. Things that break up the habit can help. But in order for them to work, I have to make a good, old-fashioned change.

If I’m not ready to, I should ask why. Perhaps there’s something online that’s really important to me, and I don’t want to restrain myself. Or maybe I need to fix an issue I have that’s keeping me from wanting to do something more productive.

This isn’t my only goal for 2012, but it’s the only goal from my only set of goals for 2012 which contains only one goal.

My goal is to, each night before I go to bed, prepare for the next morning. This means having a default choice of what to wear, knowing what I need to pack and where I’m first going to go, and a draft of a schedule and to-do list for the day.

My inspiration for this comes from a few different sources:

This matters most to me because I feel that my best self can figure out all of the other stuff, but if I don’t start my mornings off right, I’m unlikely to be my best self.

From time to time I’ve been recording voice memos. I find them to be valuable both when I record them, because I explore thoughts in a different way, and later, when I listen to them. It’s a convenient sort of diary for me. Here’s a snippet from a voice memo I recorded while I was driving from the Raleigh-Durham International Airport to the coast in a rental car, thinking about what I had just resolved to do, which was to learn things in depth, rather than just read web development news:

So, who shall I learn from? I guess, it doesn’t matter that much. What matters is that I learn, that I stick to learning, that I spend my time on real learning and that I don’t get lured into the kind of learning that isn’t that important. Now, it doesn’t help me to read Hacker News, and to poke around into every little thing that comes out…because, it’s rare that I learn about what comes out enough to use it on something, so what value am I getting out of it? Not much. And…it’s real easy to do that, because I’ve been lured into the idea that being a successful programmer is mostly about keeping up on learning everything new—not missing anything.

One poignant memory I have of not really learning something is when I read about rip on twitter. I went nuts about it, and I thought it was really cool that I had twitter and Hacker News so I could hear about it right away. Then, a couple of weeks later, I realized that I had done absolutely nothing besides read the article. I hadn’t even installed it. Meanwhile, in those same couple of weeks, I had spent maybe an hour a day reading articles I found on HN and twitter. I was really busy when I realized this, so I didn’t immediately go out and try it. Chances are, if I had any problems that could have been solved by rip, my knowledge of it would have got me nowhere. Because I hadn’t used it, I forgot almost everything in the article about it, except that rip is like virtualenv for ruby.

Now, a new one has surfaced: Node.js. I read some early articles about Node.js. I’ve downloaded it. I’ve even ran a couple of demos. But what I haven’t done is build anything with it. Now, everyone knows about Node.js, and many of the people who don’t pay attention to new developments like I did, know Node.js, while I don’t. What’s more, people who have been more proactive about learning and participating in open source projects, have people from other communities begging them to try Node.js. I’ve seen it happen. It seems that the information networks of those who genuinely participate in open source are fine without HN or twitter (though they may be enhanced by them).

  1. Limit your number of tweets per day to a certain number. Use them wisely.
  2. If you get close to the limit, start saving tweets for future days.
  3. If you want to say more online, find interesting blog posts and leave insightful comments. Comments that require work outside of composing the comment tend to be insightful.
  4. Exceptions should be exceptional.

Backstory: I’ve lost readers (sounds less narcissistic than “followers”) by tweeting too often. I’ve changed how I’ve tweeted since I read Gwen Bell’s twitter bio, which used to say that she was limiting her number of tweets to a certain number per day. Sometimes I still have been tweeting too often, though. As I started blogging more regularly, the idea to switch from tweeting to leaving comments on blogs came to me.)

There are only two hard things in Computer Science: cache invalidation and naming things.

— Phil Carlton

I find that I spend an awful lot of time naming things. More than that, it’s a distraction. I also spend a lot of time organizing directories, and a lot of time trying to recall where I’ve put things.

Cluttered Office

GitHub has made it a lot easier for me to find code online. In fact, it’s so easy that sometimes I just download another copy of a repository rather than search my home directory for one.

As of yesterday, though, the madness is over, because I decided to replicate github’s organization on my own computer. Here are the first two levels of my new, and currently modest, ~/github directory:

As I get more repos downloaded, I think my new organization style will only make more sense. And if I also need a github repo somewhere else, I can symlink it. Also, ~/src is symlinked to ~/github/benatkin.

The idea came when I realized I didn’t have all of my GitHub repos in one place. As you can tell by the tree, I still don’t. Also, I’m putting stuff in my GitHub directory that I may add to GitHub later. If something stays there longer than a week and  I don’t put it on GitHub, though, I’ll move it to the archive.

This new directory structure also has the nice side effect that I won’t need to delete repositories just because I need stuff to be easier to find.  It shouldn’t take long for the number at the end of the tree output to go over 100, and in a while, the number could be in the thousands. I’ll think of it as a partial mirror.

How do you react when you find out that a lot of grief could have been prevented by something as simple as maintaining a to-do list? Or following or not following a piece of advice from a friend or colleague? Or doing a little bit more or less yak-shaving? Or taking a break when you need one? Or paying closer attention to Object-Oriented Design?

Are you happy for the learning experience, or do you get angry at yourself because it’s something you should have already learned?

While self-anger can drive a person to change, I think it’s important for programmers to be able to take a step back when it gets to be too much. After all, every passionate programmer knows enough to be successful beyond his or her wildest dreams. Execution is the tricky part.

I’ve talked a lot about it, but I still haven’t taken a proper twitter break. I took a break for about a week. Toward the end of the break, I didn’t think about twitter a whole lot, but I still thought about it. It’s quite a habit.

Making it take a couple of steps to check my twitter account wasn’t enough, so I’m going to try something else—making my twitter account private. One reason for logging back into my twitter account after such a short amount of time was to replace the current tweets on my twitter profile with fresh ones. Now my twitter profile can only be seen by those whom I follow, so that won’t be such a concern this time.

I made it clear in my twitter profile that I’m taking a break from twitter and will still be reading my DM’s. Hopefully people won’t worry about me this time like a few did when I abruptly deleted my twitter account last October.

So, why has twitter been such a problem for me? I think a big part of it is that I’m not in control of my experience. If I was in charge, I would make my twitter account purely a microblog. People couldn’t see who I was subscribed to. I would also change how I manage users and filter and aggregate my feeds. This latter part I can change by writing my own twitter account, which is something I might do at some point.

I’ve been blogging for a few years now. Over the last few months, I’ve been keeping private notes regularly. I haven’t been returning to them much after I’ve written them.

Today I realized that twitter has been a bigger distraction for me than ever after many attempts to deal with it. So I stopped checking it. I was more productive at work today than I’ve been in months.

After thinking about it, I remembered that I’ve blogged about various ideas I’ve had for dealing with twitter productivity problems. I wonder if I would have come to the realization sooner if I made a habit of reading my own blog posts?

I also have a lot of ideas jotted down over the last few months that I haven’t returned to. I’m busy right now, but when I get a chance I think I’ll take a peek.

From the this-should-have-been-obvious department:

  • If there are a couple of friends whose tweets you feel like you can’t miss during the break, turn SMS updates on for them. That way you can stop checking twitter and still (hopefully) get their tweets quickly.
  • Log out of on all desktop or mobile web browsers.
  • Do something to hide or log out of all desktop or mobile apps. Deleting accounts is fine, because they can always be recreated. Sure, I lose my cached data, but I don’t use a twitter client to store data, I use it to read the most recent updates. Here’s what I did for each of my twitter clients:
    • Nambu: I’ve been using this twitter client on my Mac for a couple of weeks. I like it. I was able to delete my account by finding the Accounts screen, selecting my account, and pushing the delete button. I also removed it from my dock.
    • Tweetie for iPhone: I use this on my iPod Touch sometimes, when I have wifi available. I had to enable multiple accounts in the settings before I could find a way to delete my account.
    • Twidroid: My Android twitter client. I couldn’t find a way to remove my username and password, so I just uninstalled it. I can install it later.
    • Syrinx: Ditto. Uninstalled it. (I used this OS X twitter client for months, but I’ve been liking Nambu better.)

In retrospect it would have been quicker for me to just change my twitter password.