Sunday, May 27, 2012

Powers of Ten

I've completed the first version of my first Python application, one that was started for me by my high school intern.  It's purpose is to read in data from a binary file into memory, and then promptly save it out to a Matlab mat file.  The data was recorded in real-time, frame-by-frame, and thus is read in the same way.  The interesting thing about this little application is that I have versions of it written in C++ (not by me) and Matlab (me).

So I thought I would share some timing information.

If this is the sort of thing that floats your boat, by all means click through the jump and share in the geekery.

Sunday, May 20, 2012

Living in the Crunch

I've had reason to think about crunch lately.  A week of late nights capped off by a 4am bedtime does make one think about such things.  The effects of crunch are many and varied.  You quickly dispense with the trappings of normal life:  dinner with family, doing the laundry, your favorite TV show, etc.  You start to feel disconnected, lose track of days.

Your work starts to take on a more frenzied pace.  Things you normally do to dot the i's and cross the t's get abandoned in order to achieve your goal.  You start to lose a healthy sense of perspective.  The thoughts that run through your mind at 2 am when you're amped up on caffeine and/or sugar are probably not well reasoned nuggets of analytical thought.  Speaking of which your productivity takes a dive and you have to make up for it with even more hours of staring blankly at a mocking screen.

So, maybe this is not how you have experienced crunch.  It comes in various forms, differing levels of severity.  A recent Gamasutra piece featured an interview with Blizzard's Jay Wilson, game director of Diablo III.  He said about crunch

"...while game development cycles have a tendency to crunch towards the end, usually for a few reasons, at Blizzard, it's actually driven by quality.  But most companies you work for, it's not actually quality that makes you crunch. It's usually bad planning, and a lack of focus."
while defining it as working 50 to 60 hours per week, or more than 40 for an extended period of time.  Now, game development crunches are some of the most well publicized (google "EA spouse"), but by no means the only examples.  Others that I can think of include defense contractors, research organizations, small businesses.  Almost no organization with a salaried workforce is immune.

My experience with crunch has not been driven by quality unfortunately.  How noble that sounds!  Mine falls squarely in the second camp.  I will grant that it is difficult to forecast projects when they are all so different.  It is downright hard to juggle a limited number of people's participation in a number of projects, ramping in and out, overlapping just enough to balance out the month.  The bottom line is that when you've signed a contract to deliver X to a sponsor at the end of Y months, you have to do your best to deliver if you hope to build a reputable name and win repeat business.

Nevertheless, it sometimes makes me want to go herd goats for a living.

Is there any industry, any company, where the grass truly is greener?  I suspect it depends more on the good fortune to work with an experienced project manager who knows how to estimate cost and calculate burndown rates.

In the meantime, I'll dutifully keep doing my crunches.  My abs should really be harder than this by now.

For more information about crunch, check out Crunch Mode: programming to the extreme.

Wednesday, May 16, 2012

Big Rocks

This blog is not for you.

Hear that world?  This blog is for me.  It's my own record of things I'm learning and topics I'm interested in.  It's a professional diary of sorts.  What's that you say?  Why even write a blog then?  Hmmm, got me there.  Well, accountability for one.  I figure if it put it 'out there', I'll be more motivated to follow my personal development plan.  I also admit that I'm looking for a creative outlet for my creative ramblings.  But really, I hope that someday this blog could be for you, that I might someday be able to turn the corner in my mind from learning to teaching, absorbing to sharing, taking to giving.  It's probably as much an question of self esteem as anything, but there you go.  For now, this blog is for me.

It's so easy to settle into your daily grind that you can wake up one day and months or years have gone by.  I'd like to say that I'm being proactive to avoid that, but I have to admit that it's happened to me too.  It's pretty easy to get lazy.  Lately though, I've been picking up steam in the self help department.  I used to be very much into self help books, you know, 7 Habits and all that.  Great stuff but that's not what I'm referring to now.  I'm speaking more about professional development.  What new programming language should I learn, what new technologies do I need to come up to speed on?  What hobby projects have been languishing in he recesses of my mind for too long?

lazy (adjective): disinclined to activity 
or exertion : not energetic or vigorous

I've made a list.  I like lists.  They appeal to my analytic mind and organizational gene.  It's not comprehensive by any means, but it's some big rocks.  (you know about big rocks all you self-helpers). So, I'll spend the rest of this post working on my list.  Enjoy!