There are some blog posts so good you just have to periodically read them again and again. Leo Babauta wrote one of them. He begins with a reference to statelessness in computing and the virtue of simplicity achieved by handling requests statelessly. He takes the lesson of handling requests statelessly leading to simpler, more performant, and more scalable solutions and applies it to living your life. You, the server, handle requests most effectively and efficiently if there is not state required in each interaction or if you are able to persist state to a medium easily recoverable and reconstitutable between requests.
It’s an inspiring application of a principle from one discipline to another. In the same way that Developer On Fire was born by applying the form of a podcast for entrepreneurs to the community of software developers, the application of thinking about the statelessness of HTTP (as an example of statelessness in software) to glean lessons for life is useful and a step forward.
Ari Meisel is fond of using the term “external brain” to describe using a tool like Evernote to keep your ideas, thoughts, and tidbits to be able to retrieve them later. More importantly, the idea is to offload them from your wetware so that you can focus your efforts and your power on processing your current task instead of maintaining the multitude of things you want to remember.
Stateless is a better way to live life than the constant struggle to remember everything you need to know.
I’m reminded of my conversation with Kijana Woodard on Developer On Fire. For all of the awesome things Kijana is and does, he talked about having a weakness for opening and maintaining way too many tabs in his browser. I respect and admire Kijana greatly for the great developer, architect, and presenter I know he is and I struggle, too, with the problem of encountering many new things I want to read or consume in some other way and the battle to resist the temptation to just open another tab to continue browsing with the intent to come back to the other tab when I have more time.
I, too, know what it is like to have Chrome processes eating my machine’s resources. It’s not productive and not helpful and it seems those tabs only go away when they get closed accidentally, rather than deliberately.
I thought at one point I had found the answer. There is a great browser extension called OneTab. I really like what they’re doing. It solves a lot of this problem by making it easy to close your tabs without losing them. It stores the resources you want to check out later and makes it really easy to get back to them by presenting a page with links.
It’s an external brain you can use to get rid of state in the here and now. It’s not the answer, though. After I installed it I was happy knowing I could always get back to stateless after I lazily opened too many documents to consume. Then I noticed that I had hundreds of saved resources - too many to be useful - and I realized that the problem was not one of technology, but of my approach to consumption.
The only way to really solve the problem is a good filter and some discipline. What I’m trying to achieve now is some personal conduct rules. I usually keep open a browser window with two tabs - my browser window and my board showing my current task in progress (and past acheivements) and it strive to have at most one other window open with only a single tab. I don’t always live up to my rule here, but I think if I did, I’d enjoy life more.
My wife is in a constant battle with my daughter, trying to get her to keep her room clean. It is a struggle for her. I think my daughter would enjoy life more if she’d internalize what mom is trying to get through to her about the ease of having things in their place.
Using the browser is no different. You don’t multitask and your browser shouldn’t either. When you are going to process your email, you should do that, get to a state of statelessness in your inbox, and leave your email. You don’t need an open tab to stay there. Whatever it is you’re doing in your browser, why not just close it when you finish? If you do come across something to read later, you’re probably not going to read it later. If you are going to read it later and you really mean it, something like OneTab or Instapaper is a better place for it than an open browser tab. Really, though, coming to terms with “you ain’t gonna read it” (YAGRI?) is a better way.
Performing your tasks on an individual basis and without a need for a lot of state management makes you work better. It helps you remain simpler, more performant, and scale better. Getting rid of unnecessary state in whatever form it takes will improve your impact.
What sort of state gets in your way? Please let me know in the comments.