Productivity Hacks

Posted March 29, 2011 under General, Hacking

As my last semester of college is starting to wrap up, I’m under a ridiculous amount of pressure trying to get 8 different projects finished at once, homework, job interviews, and a handful of other things. Before I go mentally insane, I’ve figured out some things that work for me in order to stay productive the whole day. So productive, in fact, that I’ve forgotten to eat until 8pm multiple times.

That might sound a little ridiculous but sometimes when the crap hits the fan you’ve got to neglect things in order to do it all. So here are a few of the life hacks I’ve used to accomplish this.

1. Disable your clock

If you’re anything like me, you are constantly looking at the clock counting down the amount of time until the next class, meeting, or other event. Lucky for me, I have several Android phones that sync with my Google Calendar (I know you’re jealous :P ). This lets me add things into my gcal, sync to my phone, and get alerts on my computer and phone when events are coming up in an hour. It’s single handedly the MOST productive hack I have used to date.

2. Keep your OS clean

The first step is to choose your OS of poison. I do a lot of Ruby on Rails, so I use OSX. This may be Linux for you or Windows for someone else. The key is, pick your OS for work and stick with it. Install the tools you need: vim, Ruby, Rails, whatever. The trick here is to make sure you don’t install things that you don’t need. It’s too easy to leave Pidgin open all day and have people continuously pinging you throughout the day. Same goes with websites and other apps. If you have too many points of contact, you won’t be able to get in the zone. That also means checking your email and RSS feeds once in the morning, once at lunch, and once at the end of the workday. The less the better, especially if you’re expecting an important email to roll in. It’s an email, it obviously doesn’t need a response the exact second it arrives because you would have received a phone call if it was THAT important. Keep in mind that notifications are just another distraction and the people who achieve the most tend to be those who can focus and naturally avoid these things.

3. Learn the tools that work best for what you do

For the longest time, I continued using TextMate and GEdit for writing code. I refuse to use IDEs because I hate their bloat, but I never felt like taking the time to memorize all the commands for Vim. Since I took the plunge, I have been able to traverse so much more code than ever before, and I still don’t know crap about Vim! It’s the right tool for me and what I do. Find yours and become a master.

4. Find your optimum social environment

This is very crucial to me. No matter which of the above things I do, it really comes down to where I’m working. For me, I work best with a pair of noise canceling headphones in a relatively quiet place. People walking around, noises, really anything can distract me at times. Building a good music playlist and drowning out the audio distractions allows me to also drown out the background visual ones as well.

5. Accomplish a small, but good feeling task every morning

Probably the greatest feeling is waking up, doing something that gives you an incredible amount of motivation and confidence, and then tackling some hard problem right afterwards. It’s good to have a schedule or task list for each day, but that’s often hard to do when you’re unmotivated and groggy in the morning. Grab something to drink and pick a small task that can be completed from start to finish in half an hour. There have been a couple occasions where this has greatly benefitted me. Recently, I received an email with some wonderful news in the morning and for the rest of the day I was so excited and confident I was able to do a much better job at an important project I had later that day. Another time on a Saturday morning, I patched in a feature to a new NodeJS IRC library to add SSL support. This got me excited by contribute to an open source project in a language I barely know so much so that I went back immediately to hacking on a project for school and finished some larger features that felt too daunting to jump into cold.

Summary

These are a few things that work exceptionally well. Don’t work too hard though, you’ll get burnt out and these hacks will suffer. They work well for me but I’d love to hear what things you use to keep focused on a daily basis.


Open Sourced – Python IRC Bot Web Hosting

Posted November 7, 2010 under Hacking

A while ago I had the idea to build a Django web app to serve up IRC bots for people. It’s a pain to have to maintain bots on your own box. Why not provide a web interface for management?

Obviously there wouldn’t be a whole lot of people using something like this. The only reason I attacked this was a challenge to myself. Learn threading, learn dbus, learn Django. After putting some solid time into it, I had a daemon that managed and launched IRC bots from a web interface. I thought it was awesome. Sure enough, life happened, and I totally forgot about it. There is certainly no way I’ll be finishing the application due to time and lost interest in the problem I was trying to solve.

Since I’m never going to do anything with this, there is no reason to keep it in a private repository anymore so I’ve decided to open source it. If you’re interested in Python, Django, DBus, Threading, or IRC and sockets, you might find a good use for this. It’s all GPL’d so go have some fun if you are interested.

https://github.com/excid3/irc_bothost


Android: Can’t Mount /dev/block/mmcblk0

Posted October 10, 2010 under Android, Hacking

Since I’ve got 3 Android phones, I might as well root them right? I’ve been happily running Bugless Beast 0.4 on my Verizon Droid for several months now and it is faster than my Nexus One running CM6 by a long shot. This rom is awesome, so I wanted to install BB0.5 when it was released.

Well, it wasn’t as easy as I had planned. Using Rom Manager, I used the clockwork recovery to try to install it. No dice. Some weird “Can’t Mount /dev/block/mmcblk0″ error. Same thing with CM6. What gives?

I tried this a month back, but I only got it working now. Maybe it was an update in Rom Manager that fixed it or something. I read removing the SD card to make sure it is in place might help. BB0.4 could mount it, so I knew the card was fine. It was something with the recovery. I came across this before and tried Doctor’s suggestion: http://forum.cyanogenmod.com/topic/2315-cant-mount-devblockmmcblk0p1/ The first time it didn’t work for me, but it did this time around.

The steps to fix this are as follows:

  1. Open Rom Manager
  2. Menu -> Clear Download Cache
  3. Flash Alternate Recovery
  4. Reboot phone
  5. Open Rom Manager again
  6. Install your new rom (and Wipe Data and Cache)

Cross your fingers and hopefully it should work for you. I’m happily running Bugless Beast 0.5 now. :D


Bypassing Android Activation

Posted July 12, 2010 under Android, Hacking

Today I decided to finally get around to rooting my Motorola Droid that I received for going to the Google I/O conference. After going back to the 2.0.1 firmware using RSD Lite, I realized that I had to reactivate my phone. I’m out of service range so the phone call couldn’t be completed, and I no longer have my trial month of service even if it did work. Luckily there is an easy way to bypass activation and still use your phone as an internet tablet.

Simply touch each corner of the screen (I used inside the black area where the android logo was) starting with the top left and moving clockwise around it. You’ll jump right into the home screen and be ready to go! Hope that helps!

This worked for only certain versions on my Motorola Droid. Every time on boot I am presented with the activation screen still, however I can bypass it by simply pressing Home (now that I am running Bugless Beast v0.4). I’ve also had the experience where I couldn’t bypass it with these methods, doing the activation call a couple of times, failing, and then pressing home let me through. Who knows what might work for you, but eventually you can get through.


Multiple Version Control Systems At Once!

Posted July 12, 2010 under General, Hacking, Keryx, Ubuntu

For Keryx, I have been working on a new backend system called Unwrapt (A play on words regarding the APT package system :P ). I’ve been coding on github for the social coding aspects and keeping the branch on Launchpad.net as well to be part of Keryx’s page. This meant every time I wanted to commit and push, I’d have to do twice the amount of commands. Of course, being a lazy coder like the rest of us, I decided to script it. Fired up Gedit, and two seconds later I had this:

#!/bin/bash
 
bzr commit -m "$@"
bzr push
 
git commit -am "$@"
git push origin master

Usage is simple (example is using this script saved in ~/vcs.sh). Just execute this from inside your versioned directory like you would normally with git and bazaar:

$ sh ~/vcs.sh "first commit"

It pushes to your default branches (if you have any setup) in one strike using the commit message you pass to the script. Easy as that! I’m sure people might have some good ideas on features and improvements so leave them in the comments!


« Older | Newer »