Archive for the ‘productivity’ tag
That’s it?!!
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.
temporarily making my twitter account private
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.
Do you read your own diary?
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.
Taking a twitter break
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 twitter.com 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.
Greasemonkey Script: Benjamin Franklin Quotes on reddit
I just wrote my first GreaseMonkey user script. It’s a script that puts a random Benjamin Franklin quote above the stories on reddit to remind me to be dutiful and not spend too much time looking at online news. I found the quotes through (you guessed it) reddit.
Here’s what it looks like:

And here’s the code:
// ==UserScript==
// @name Reddit Quotes
// @namespace com.benatkin
// @description Shows Quotes in front of Reddit
// @include http://reddit.com/
// ==/UserScript==
function franklinQuote() {
var quotes = [
'Early to bed, and early to rise, makes a man healthy, wealthy and wise',
'Diligence is the mother of good luck',
'God helps them that help themselves',
'Sloth, like rust, consumes faster than labor wears, while the used key is always bright',
'Dost thou love life, then do not squander time, for that’s the stuff life is made of',
'Lost time is never found again',
'He that riseth late, must trot all day, and shall scarce overtake his business at night',
'Drive thy business, let not that drive thee',
'Industry need not wish',
'He that lives upon hope will die fasting',
'There are no gains, without pains',
'Plough deep, while sluggards sleep, and you shall have corn to sell and to keep',
'One today is worth two tomorrows',
'Have you somewhat to do tomorrow, do it today',
'Be ashamed to catch yourself idle',
'Let not the sun look down and say, inglorious here he lies',
'He that hath a trade hath an estate',
'He that hath a calling hath an office of profit and honor',
'At the working man’s house hunger looks in, but dares not enter',
'For industry pays debts, while despair encreaseth them',
'Constant dropping wears away stones',
'By diligence and patience the mouse ate in two the cable',
'Little strokes fell great oaks',
'Employ thy time well if thou meanest to gain leisure',
'Since thou art not sure of a minute, throw not away an hour',
'A life of leisure and a life of laziness are two things. Do you imagine that sloth will afford you more comfort than labor?',
'Trouble springs from idleness, and grievous toil from needless ease.',
'Many without labor would live by their wits only, but they break for want of stock',
'Industry gives comfort, and plenty, and respect: fly pleasures, and they’ll follow you',
'Keep the shop, and thy shop will keep thee',
'If you would have your business done, go; if not, send',
'He that by the plough would thrive, Himself must either hold or drive.',
'The eye of a master will do more work than both his hands',
'Want of care does us more damage than want of knowledge',
'Not to oversee workmen is to leave them your purse open',
'In the affairs of this world men are saved not by faith, but by the want of it',
'Learning is to the studious, and riches to the careful, as well as power to the bold, and Heaven to the virtuous',
'If you would have a faithful servant, and one that you like, serve yourself',
'For want of a nail the shoe was lost; for want of a shoe the horse was lost, and for want of a horse the rider was lost'
];
return quotes[Math.floor(Math.random()*(quotes.length))];
}
function addFranklinQuote() {
var tbl = document.getElementById('siteTable');
if (tbl) {
var quoteBox = document.createElement('div');
quoteBox.innerHTML = franklinQuote();
quoteBox.style.fontSize = "16pt";
quoteBox.style.backgroundColor = "#f9f7ed";
quoteBox.style.padding = "1.5em";
quoteBox.style.position = "relative";
quoteBox.style.width = '500pt';
tbl.parentNode.insertBefore(quoteBox, tbl);
var quoteName = document.createElement('div');
quoteName.innerHTML = "-- Benjamin Franklin";
quoteName.style.fontSize = "10pt";
quoteName.style.position = "absolute";
quoteName.style.bottom = "0";
quoteName.style.right = "0";
quoteBox.appendChild(quoteName);
}
}
addFranklinQuote();
Greasemonkey really is as simple to use as it sounds. You give it a script and the URL’s to which it applies. When you browse to a page that matches the URL, the script is executed. For this one, it was a simple matter of adding a DOM element in the right place.
Some scripts are meant to be loaded on all pages, such as a script that makes it possible to use shift to quickly check or uncheck a bunch of checkboxes. If you’ve heard people complain about the Greasemonkey overhead, it’s probably because they’ve run a bunch of these utility scripts that run on all pages. A script or two that are browser-wide, with the rest of the scripts only running on a single site shouldn’t slow things down much.
To install, first install greasemonkey. Then, find the greasemonkey folder (gm_scripts) in your profile directory and save the above code into a file called “redditquotes.user.js”.
Be more productive
I just got done reading a great article called HOWTO: Be more productive on Aaron Swartz: The Weblog. One part I found interesting:
Time when you’re hungry or tired or twitchy is low-quality time. Improving it is simple: eat, sleep, and exercise.
If you’re not exercising, I’d like to encourage you to start again. Please feel free to encourage me next time I forget that exercising actually makes me more likely to get other things done.
ramblings about personal projects…
I’m in the software field both because I want to learn how computers work and because I want to make something great. For a long while I thought that I should focus on making something great, and in the process I would learn how computers work.
The problem was that without knowing how things work (beyond my Computer Science cirriculum), my project goals were almost always poorly defined and I would end up scrapping my work and starting another project every time. So my only successful projects that took more than a couple hours to complete were student projects, some work projects, and a Tetris clone I made on a whim during the summer between my 4th and 5th year of college.