I just received a couple of brand new version 2 yubikeys! Previously, I had been one of the first round of people to purchase the version 1 yubikey. Originally back when I had first received my version 1 key, I had high hopes of playing around with it as a home project. However, things in real life managed to pull me away from getting very far with it. I had planned to help with the yubico-pam module for linux, or perhaps mess around in PHP or Ruby to implement my own authentication server. This reminded me about my current struggle with Getting Things Done (GTD). Along the way, I’ve learned a couple of productivity tips that I’d like to share.
With college coming to a close, I ended up having too much to handle between my Security & Privacy, Java/Datastructures, and Senior Design courses. (That’s not to mention the internet radio show and DJ-ing.) However, I did learn a thing or two about SSL, Java programming, and RFID last year. Knowledge is always good!
Being Productive with Projects
Lately, I’ve been really wanting to pick up some of my old abandoned projects so I can try to break my old habits of procrastination that I learned too well in college. There are mainly three things that I’ve been battling with to do this:
The first thing I started learning was to try and figure out how to schedule the various things that I need to get done each day. It’s a lot harder than it sounds. The first bad habit I had to break here was the nocturnal sleep schedule that college had ingrained in me. Getting a job helped with that, because it started forcing me to get up early. I’ve always been somewhat of an insomniac anyway, and have learned that if I don’t get enough sleep one night, then the next I’ll definitely be really tired and want to get to bed early. The first few weeks were painful, but I think most of it is out of my system.
Learn to break the inertia
The next obstacle to combat procrastination is to create a small goal for yourself and then just start working towards it. I’ve found that the longer I work with a specific goal in mind, the easier it is to keep going. This works even after stopping for the day. Once you start your wheels turning, it’s definitely easier to motivate yourself.
Don’t get distracted
Here’s the one I’m currently fighting. I’ve always been able to multitask, but there’s a point where this gets really distracting. I’ve found that my first problem here is surfing the web to research one thing, and then the next thing I know I’m looking up why cats lick themselves so much. I’m not sure if it’s ADD/ADHD related. The other problem with getting distracted has to do with subtasks. I usually start task A, and then realize that I need to get subtask B done first. This can go on forever until I forget which task I started out on, or which order I needed to get them done in. (Perhaps a stack could help here).
To combat this, luckily I’ve found a couple tools that can help.
The first is a plugin for Eclipse called Mylyn. I first talked about it in my post titled “New Improved Development Environment“. It’s made managing tasks in programming much easier. The main idea here is that for any given programming “task”, you’ve got a set of files that are related to it. For example, your task could be “fix CSS bugs”, so you would have a bunch of CSS files open that you’re editing. Mylyn takes care of this problem by keeping track of which open file tabs are associated with what task. It calls this a “context”. The other thing Mylyn does is integrate with various bug trackers, so you’ll see all your current bugs as tasks in Eclipse. There’s also a professional version of Mylyn called “Tasktop” that takes this idea of task-oriented tab management to other applications, including Firefox! Sadly, you’ve gotta pay for it, and it’s kinda pricey ($99).
The next tool I found was inspired by my desire to have something like Tasktop.
Managing Tabs in Firefox
We’ve all probably had the problem of too many tabs in Firefox. Even if the tab overload doesn’t bring the browser to a crawl, it sure does slow down my productivity! That’s where the TabMix Plus plugin comes in handy.
TabMix is a session manager plugin for Firefox. Firefox has it’s own built-in session manager, but it’s mainly limited to one session which it restores on the occasion of a crash. TabMix lets you manage multiple sessions, which can be composed of window(s) that contain multiple tabs. Before I had this plugin, I would generally have a bunch of subtasks (or even completely different tasks) going at once, all in a single Firefox window! Now, I organize my FF windows by separate subtasks, and save each session with some description of the main task that I was doing. It’s a bit more overhead to manage and organize tabs, but it definitely keeps me much more focused and clear headed. The other nice thing is that I can set new tabs to open and load Google. Now a web search is only a Ctrl+t away!
(Tip: Google desktop also has a nice shortcut Ctrl+Ctrl that will let you type in a query and search either your desktop or the web fast too)
It’s also got nice features like: make new tabs to open next to the current one, window and session histories, control what the mouse buttons do on each tab, and a bunch of other great configuration options that I won’t mention here. Sadly the organizational features of TabMix are a bit lacking when compared to Tasktop, but overall it’s definitely a good thing to have.