I seem to remember talking about this already but I've further upgraded my man-cave to new levels of geekiness. I know have two 26" screens that I've wall mounted just above my desk (keeps them in the same position regardless of all the clutter on my desk.)

Currently I'm running OS X on my right screen and Windows 7 on the left. I use Synergy to share mouse/keyboard commands so it feels like one continuous background. I'm mostly using OS X still but the new machine has 6GB of RAM which gives a lot of breathing space if the Mac gets bogged down.

What I'd like to do is switch out my aging Logitech system with two simple monitor speakers -- I still haven't decided what make/model to get but they have good stuff for pretty cheap. I'll plan on mounting these on a small shelf along with all the hard drives and accessories that I have. If that all works, I could simply get rid of the desk and bring the leather chair from downstairs. Should be a nice setup.

I have visions of punching a hole behind the monitors and making an in-wall rack that I can use to store my rather large 4U case. The wall there backs into the garage rafters and there's quite a bit of room. Ventilation and cooling would be an issue but I'm sure I can come up with something that works well.

What's your work/play area set up like? I'll post any pictures I receive...

I've had a heck of a time staying productive this week. I don't think that it's been helping that I've been trying to do a lot things on the side. But something about this week felt different. I have clearly defined tasks but I've been procrastinating an awful lot more than usual. I tend to have 25 things to do and continually shuffle the top 5 things. I finish them and instead of hitting things farther down the list I substitute the most interesting next 5 things that I can do. So a backlog is typical. My problem is that recently I've been feeling guilty about tasks way down in the 20's and spend a lot of my "free" time trying to focus on that.Â So instead of knocking out high-priority tasks, I've been ineffectively working on low-priority things.

I tend to mix my personal goals, chores, continuing education, and regularÂ work all into the same priority pile. I find it hard to segment it any other way. Unfortunately that means that at the office sometimes I'll blow time on things that aren't work related meaning that now I have to work evenings, stay late, take vacation, etc. This would ideal if I was working as a consultant and could make my own hours. I've never felt like I needed a boss to motivate me and enjoyed the shorter-term goals of contract work and the variety of experience that they innevitably demand.

Here's a list of things that I'd like out of work:

I'd really like to be able to work with companies and individuals that need services that I can offer.

I'd like to be able to excel in providing these services to the point that my value is clearly seen.

I'd like my work to offer me the opportunity to be creative -- not simply implementing known entities.

I'd like to be location-agnostic for much of my work (i.e. telecommuting should be an option for 90% of the time).

I'd like the project sizes to be such that I can cycle to new projects or new clients every 6 months.

As a software engineer, I feel much more like a [traditional brick-and-mortar] architect than a manufacturer or general contractor. What I do should be bigger than simply implementing a known solution -- it should be validating, improving, and refining a requirement and then implementing an innovative solution that may be somewhat unexpected. I know that's a lot of buzz-words, but it seems accurate. I don't want to help people install Microsoft Word on their computers, I want to help them think about the problems of word processing, document management, collaborative editing, world-wide publishing, and the myriad of associated goals and put whatever solution in place that makes sense for them (hopefully it's not Microsoft Word).

Well my new position has been keeping me busy writing software for Symbian, Nokia's primary phone operating system. I hate it. It's fun to learn new stuff and it's probably a good thing to be learning. But it's still awful. Documentation is terrible. Developer forums have lousy support. Two unique programming elements: descriptors and the cleanup stack just make life agonizing.

I've never appreciated C# so much.

On the bright side, it's drawn me back into C/C++ coding which I haven't done in years. That part is fun. It's funny how many things I take for granted with C#. I've even gotten lazier considering some of the wonderful upgrades to C#Â 3.0. For example:

List<string> list =new List<string>{"Susie", "Lucy", "Bobbie"};

List<string> list = new List<string> { "Susie", "Lucy", "Bobbie" };

This makes sense to me. It's easy and straightforward. It saves [development] time.

At work things have been interesting because I've been working with developers firmly set in an embedded mindset. They think in terms of saving bytes. My .NET programs take up 20MB of RAM just in basically displaying a simple window with a few controls. It bugs them.

I don't know -- I see the point of using assembly, C, even the horrible descriptors of Symbian for situations where you are highly concerned with efficiency. However, it does seem that you're going to be forced to spend more development time (by a huge amount) and the code will almost by necessity be much more difficult to maintain. When there's no clear single way to convert a descriptor to a char * every developer will do it differently and the code will be more and more complex and incomprehensible. It might run fast, but it's not flexible.

In the world of mobile development, optimization for speed seems important but if you take 6 months to update your application when new feature sets become available, your product likely isn't selling.

Along these lines of thought, I'm considering pouring a bit of time into iPhone development. I've always shuddered at Objective C but I need to bite the bullet and get into it. My assumption is that I'll be happy with it since from what I've heard it balances maintainable,Â understandable and easy-to-write code with reasonable performance/stability.