Entries Tagged 'GTD' ↓

A couple of great ideas

 I haven’t posted much lately, but I’ve been reading a lot. And lately there’s been a ton of good ideas floating around on the net.

One that I really liked was Joel’s idea of not posting comments on a blog, rather write your response on your own blog. Its a great way of generating content and forcing you to think about the topic (similar to the idea of “you don’t really understand something unless you can teach it to someone else”). I think its a really great idea, and it seems to have stirred up a lot of debate.

And finally, the other great idea: Do it fucking now.

A wise man gets it done

Sometimes, no matter how much you whine about something, it just won’t go away until you roll up your sleeves and work on it.

I’ve been feeling like whining about how all of these cool programs and games are getting released by everybody these days, and I haven’t been able to get squat done. But every time I started to think about it, I kept remembering that I have a small pile of unfinished projects that could use some attention. Some need a little bit, others need a lot.

I’m a big fan of the “pick something small, get it working, and use that as inspiration to move onto something bigger” philosophy. I use that technique all the time at work to try and get around logjams (be they mental, or load based). For the most part its pretty effective, the feeling of accomplishment builds quickly as small tasks disappear off the old to-do list.

So I decided to apply this to a python project I’ve been twiddling with for over a year. I ran one of the tests for it, and saw an error. I spent about a half hour or so playing around fixing the error and in the process managed to improve the code flow, pretty print my output messages, and uncover a potential problem before it had a chance to bite me. And you know what? It feels good to have gotten that done. A few more sessions like this one and I might actually finish this project up before the end of the year…

As a side thought on this topic: It is really important to use tools that allow you to have a maximum amount of productivity. In a situation where you are time constrained (i.e. a deadline is looming, you only have an hour to play, etc.) every second counts. If you are fighting you IDE, you are not solving your core problems. I thought about using TextMate to try and work with my python code last night, but I kept running into situations where using Eclipse was easier. So despite the “niceness” of TextMate, I had to abandon it for this project and keep on using Eclipse (and the wonderful PyDev plugin). Less twidiling, more working.

Success begets success

For me the best motivation is success. Kind of a vicious cycle, its hard to get motivated, but the motivations comes from success. No success, no motivation. How in the world can you get started if you can’t reach a starting point?

I’ve found the key is to have a small easy-to-achieve goal. Something trivial. Implement a small helper function. Wash the dishes in the sink. go for a small walk (instead of sitting watching TV). Do one small blog post. ;)
Accomplishing one thing, no matter how tiny is a small victory. And usually I wind up thinking “Well, it was easy to wash those dishes, I should wipe off the counter too, that will only take a second”. Before I know it, I usually accomplished a quite a few small things, and that usually adds up to a big thing.

So the next time you are lacking motivation, just think of one or two small things you can knock out quickly and easily. (You do have a to-do list, right?) I’ll bet that getting a few things done will help motivate you to tackle the bigger jobs.

And speaking of bigger jobs, I’m off to try and write a few methods to try and make a class or two spring to life.

Your thought for the day

I saw this on a sign the other day:

Success comes in cans, failure comes in can’ts.

Time and distance

After my post yesterday I decided that today I would avoid the computer as much as possible. It looks like that was the right thing to do. Tonight I sat down and looked at some notes and it hit me: The reason I was stuck was because I didn’t know what to do next.

So, I began making lists. As soon as things started to appear in a nice neat ordered list, it became apparent what had to be done (and the order to do it in).

A lot of programmers like to just jump into a problem and start coding. Sometimes that’s what is needed, but a lot of times what is needed is a plan (no matter how vague) of where you want to go, and how you plan to get there. A To Do list is a basic type of a plan, and once you start organizing on any level, it tends to snowball until your whole project is encompassed by the plan.

At least that’s what should happen if you want to get things done. A Big Plan is made of many Small Plans. By following through on the small plans, you are following the big plan. I can’t believe I let that wisdom escape me, its so fundamental!

Voodoo Pad rocks

I’m probably behind the curve on this one, but I recently discovered in the last day or two how cool Voodoo Pad is. I’ve been using it to make to do lists (I’m trying to get back on the Getting Things Done wagon). I’m really impressed how smoothly the program runs. It doesn’t stand in the way of my data, it simply guides it and connects it auto-magically. That just amazes me, it makes me wish there was a port of this app for Windows so I can use it at work!

So, if you are interested in GTD and are running on a Mac, go get Voodoo Pad and try it out. It rocks.

Delivering the goods

I was reading a thread on the Game Programmer mailing list the other day that was interesting. A guy had posted a “help wanted” notice for a game he was developing. As the conversation about the game wound on, the poster made a comment about how he had re-written his engine a few times to incorporate new things. This lead to a small flurry of responses, most of which were chock full of wisdom: Stop re-writing and just finish what you’ve got.

That is very good advice. I started writing a game a while back (like over a year ago), but I just kinda stopped for some reason. Recently I’ve been thinking of new projects I *could* start doing, and in one case I actually started slinging some code. When I read the post that advised the guy to just finish the project with an engine (and not re-write it from scratch), that hit me like I thunderbolt.

It doesn’t matter how “good” something is if you never ship it out the door. Sometime you’ve just got to cut your losses and implement those features in the next release. To borrow a phrase from Xzibit, sometimes you’ve got to be a Mack truck: Go the distance and deliver the goods.

My quest for a Python IDE on Mac seems to be over

I’ve been struggling to find a IDE to work with Python code on the Mac. I really really really wanted XCode and PyObjC to work, but there just isn’t enough of the goodies (code completion, etc.) with that combo to make me happy. I know, real programmers don’t need the extras, but I like using them to help me be more productive (especially when I’ve got limited time to code/play).

The other day I thought about Eclipse. I use Eclipse at work for Java development, and I’ve got to say I really like it. I decided to see if a)Eclipse runs on the Mac without looking like ass, and b)To see if there was a Python plugin that would allow Eclipse to recognize/work with Python code.

The answer to question a is: Yes, Eclipse runs on the Mac and so far (after an hour playing with it) it looks nice and runs pretty well.

The answer to question b is: Yes!Pydev brings a lot of the Java-mega-editor-goodness of Eclipse to the world of Python. It still needs a little bit of work, but so far it is looking pretty good!

Just as a bit of history (in case anyone cares) the editors I’ve tried to do Python development with on the Mac are: TextWrangler, XCode, XEmacs, and vi. These editors are all ok, most can color code the source with no problem, but none of them really brought everything I was looking for to the table. Its probably a moot point to even mention it though, I’m sure that in 6 months they will all have advanced in some way (like the usually do).

For now, it looks like Eclipse is my official IDE. Which makes me kinda sad, XEmacs isn’t moving forward with me like I thought it would. *sigh* Such is life I suppose.

Trying to see if you fail

I’ve been reading Wil Shipley’s blog, and he always has something interesting to say. He had a post the other day called Failure is Success that brought up some really good points.

His point is basically that people are held back by a fear of failure, yet if you do not fail then you are not really pushing/challenging yourself enough. Failure is what happens when you find the limits of your abilities.

That’ s a pretty deep thought, and I had to stop and think about it a while. I’ve come to learn that you can always learn something from your failures, but I’ve always thought that the lesson was limited to “what not to do next time”. The idea that Wil presents is more like negative logic: “I did not fail this time, so next time I should try harder/different and find out where my limit is.”

Its pretty clear this can be applied to many things in life, but probably should be used with some common sense (i.e. don’t try to see a sunspot with your naked eye just to see if you fail or not). Its definitely something to think about. Why let a fear of something that could be good hold you back from doing what you want?

And having said that I’m going to stop worrying about my next programming project and if it is designed well enough, or if I’ve thought about everything. Instead of worrying about all of the little details (its a personal project) and not doing anything while I agonize over the small stuff, I’m going to hit the publish button and then start slinging some code.

Be Goal Oriented

Sometimes you need to stop and get your bearings. Today was one of those days for me.

Having a To Do list (or several small ones in my case) doesn’t do you any good if you are not moving towards an objective. That’s the whole reason for the lists, to help you get things done.

So make sure you have a clear goal in mind when you are making your To Do lists. The more focused on your goal your tasks are, the faster you will get there. Knocking out list items and making progress towards your goal can be addictive. Get started today!