Work Space Matters

I got spoiled while working at VoiceMobility. I had my own office for a very long time. It was great, and I loved having my own office, a space I could call my own. I could close the door when I needed to think or to concentrate on my work. I could play music without using headphones. I had my personal space so I could call my doctor if I needed to, and not have someone else listen in to my conversation. It really was bliss. This setup allowed me to feel extremely comfortable at work, which is something that I feel is crucial to being productive. Allowing me to firewall myself from others was something that I really needed to do once in a while at VMI.

Moving to NewHeights I was placed into a pretty crappy cubicle. The lighting was horrible, the was no A/C in the summer, no heating in the winter, and it was cramped. The working conditions were pretty bad, and I think that my productivity showed this. Still, it was a place I could call my own. Then I got moved to a worse location. I was in a large cube with 3 others, but my desk was right beside the entrance to the cube and this made my back to the entrance. The directors office was right next door, so this lead to an endless stream of people, and an endless stream of interruptions. Again, my productivity took another nosedive.

My final workspace at NewHeights was in the same cubicle, but I had a new spot so I wasn't facing the door. It was a lot better, but the downside to a cubicle is the ambient noise. I had a great view, but I could still hear the conversations of others. It was adequate.

My move to Kodak brought me to another office. I am sharing this one with a long time friend, and so far it has been great. It is a corner office with lots of large windows that let in a lot of light. It is warm and inviting. I love working there. Since I share the office, I still wear headphones, but I have found that it is quite nice to have someone to talk to once in a while, and someone handy to ask questions of.

The point of this is that as an employee I like having a place I can call my own. It is essential that I am comfortable and that helps me to be productive. Minimal distractions and interruptions also boost productivity. Personal space is important to me, so having that back is great.

Programming Agrees With Me

I realized this on Friday: After 8+ years of programming I still get a thrill when something complicated I am working on, or something new I am trying actually works. I get a kick out of seeing software that I wrote working. That is how I know I am in the right industry.

When things don't go right, I get frustrated, and really want to solve the issue. Again, another indication that I am in the right job.

On the bad days I may not like my job, but on the whole I still like programming a lot.

IDE Customizations

I am a hacker and a tweaker. I like to make a computer (and software) work the way I do. Sometimes I install helper apps, sometimes I tweak settings. Visual Studio is an application I use every day at work, and as such I need it to be most efficient for me. I remap key combos, tweak colors, modify macros, install add-ons all in an effort to help me do my job quicker.

I read the article Pimp My IDE over at Coding Horror a while ago and made some changes to VS that I absolutely love.

Settings Changes:

  • I changed the font to Proggy Clean
  • I change the background color to an offwhite (232, 233, 235)
  • I modified some of the syntax highlighting colors as well
  • I turned off some of the ReSharper code highlighting. I found that the bolding of some items caused on-screen formatting errors.


Add-ons installed:

  • ReSharper - excellent refactoring and code writing tool
  • Kings Tools - some helpful tidbits for working with c++ (header flip especially)

Macro's:

I have also made a new macro named CollapseAll and have it tied to the HotKey combo ctrl+alt+0. CollapseAll collapses all projects in the solution explorer.

Sub CollapseAll()

' Get the the Solution Explorer tree
Dim UIHSolutionExplorer As UIHierarchy
UIHSolutionExplorer = DTE.Windows.Item( _
Constants.vsext_wk_SProjectWindow).Object()

' Check if there is any open solution
If (UIHSolutionExplorer.UIHierarchyItems.Count = 0) Then
' MsgBox("Nothing to collapse. You must have an open solution.")
Return
End If

' Get the top node (the name of the solution)
Dim UIHSolutionRootNode As UIHierarchyItem
UIHSolutionRootNode = UIHSolutionExplorer.UIHierarchyItems.Item(1)

' Collapse each project node
Dim UIHItem As UIHierarchyItem
For Each UIHItem In UIHSolutionRootNode.UIHierarchyItems
UIHItem.UIHierarchyItems.Expanded = False
Next

' Select the solution node, or else when you click
' on the solution window
' scrollbar, it will synchronize the open document
' with the tree and pop
' out the corresponding node which is probably not what you want.

UIHSolutionRootNode.Select(vsUISelectionType.vsUISelectionTypeSelect)

End Sub

I also use this Visual Studio macro that hides the turns off the navigation bar in c# files. Apparently this will speed up the editor.

Outside of the editor I also use CompareIt! by GrigSoft. This is my diff tool of choice. Nice colors, easy to use.

I also usually have a custom toolbar where I place all my often used commands. This got lost recently. Not sure how VS lost it. VS.net also has an annoying issue where you cannot export your custom settings. Microsoft has fixed this for VS 2005 (finally).

Addition:
It appears that Erik Lane has similar preferences to me.

Firefox Extension List

Firefox, how I love thee. I also love the extensibility of it. I test a lot of extensions, and some are more useful than others. Here is my list of extensions.

Extensions (enabled: 20, disabled: 3):

Upon examining this list I think there are a few I can get rid of after the upgrade to Firefox 2. Restart Firefox and the Google Toolbar come to mind. And I don't use the dictionary search any more.

The most useful extensions add-ons that I actually use pretty much every day:

  • IE Tab - view a webpage automatically or on demand rendered in IE in a tab in Friefox
  • dragdropupload - when uploading files, you can drag it onto the form. Multiple files and multiple entry boxes are no problem.
  • del.icio.us - a different kind of book mark manager
  • Tab Mix Plus - my preferred session management tool

Eudora Announcement

Qualcomm, the makers of Eudora, have made a press release announcing that Eudora is going to be made open source.

Interesting. I think this is awesome news and hopefully it will help spread the adoption of Eudora (a program I have been using since approximately 1994). It will be based on the Thunderbird code. I hope that they can keep the look, feel, and useability of the current Eudora when they make this switch. I have tried Thunderbird, and it just reminds me of Outlook in how it operates.

The first half of 2007 is the anticipated release schedule, and I know I will be watching out for that.

I especially like one of the quotes in the release:

“Using the Mozilla Thunderbird technology platform as a basis for future versions of Eudora will provide some key infrastructure that the existing versions lacked, such as a cross-platform code base and a world-class display engine. Making it open source will bring more developers to bear on Eudora than ever before.”

This is an excellent way to leverage open source software to open up new markets. I also like that they are getting away from IE as the rendering engine :)

Firefox 2 vs IE 7

I've been playing with browsers at work recently. I installed IE 7 on my backup machine, and on my main machine I installed Firefox 2 alongside Firefox 1.5 in a setup that allows them to run side by side.

IE 7 first thoughts were bleh. There isn't anything there to make me switch back. To me the UI isn't better than Firefox, and it isn't more useable. It really isn't all that special. Nothing jumped out at me that was a key feature.

Read the IE7 feature set here. All of their "Makes every day tasks easier" are things that Firefox has been doing for a while. Enahnced security with IE7? I don't feel it. Improved platform? I would agree with that, but it still feels like a catch up to me.

Now with Firefox 2 I found something to get excited about within 10 minutes of using it. Read their release notes here. Phishing protection, session management builtin, better handling of web feeds, inline spell checking (that is awesome), and more.

I don't forsee using a browser to manage my web feeds any time soon, but with Firefox 2 I can set which application I want it to use to handle my feeds. I changed the setting to RSS Bandit, and now when I encounter a new site, and Firefox informs me that it has a feed, I click the icon, and RSS Bandit pops up with the add feed already in progress. If there are multiple feeds on the site, there is a drop down to choose the feed I want. Very, very handy. I like it.

The inline spell checking is very handy. It works like a spell checker should, and I can modify the dictionary to suit my needs.

Even more astounding, almost all of my Firefox 1.5 extensions worked with Firefox 2. The ones that didn't, were on my nice-to-have list, so I can live without them for a while.

Verdict: I will keep Firefox 2, and still won't use IE very much.

Website Searching Useability

Software useability is a big topic.  I tend to like software that works easily out of the box, or right after installation.  I shouldn't need to tweak something too much to make it work for me.  This is a sign that the solution is not right.

Websites should abide by useability considerations as well.

Last weekend I was looking for the local Michaels store's hours.  Easy enough to do.  Got to Michaels.com, click on Store Locater and you will end up at the above screen.

I entered my city and province, then clicked search. This generated the error seen below.

At first I was confused, but then saw the country selector at the bottom. I re-entered Victoria, BC, and chose Canada. The results then showed what I was looking for.

Thinking about this 3 things pop to mind.

1) Why do I need to enter the country? I told the site it was the province of BC. That alone should be enough to indicate the country.

2) The error message says nothing about the country, and I had assumed (from its placement) that the country selector was for the zip code.

Side note: you can easily guess the country if the user had only entered a zip code too. Canadians use postal codes which are a combination of letters and numbers. The US uses zipcode which are strictly numbers.

3) Why did it clear out my entered data? A likely course of action would be to try submitting again. The site could easily keep my data and present that back to me.

How would I fix this? First, after an error, the user entered data would be re-populated with what was submitted. I would also include a clear button to allow the user to start from scratch. Next, I would ditch the country selector since it is not necessary. The zip code field would be renamed zip/postal and its validation would be intelligent enough to decide which country the user chose. Finally the country can also be determined by the State/Province drop down. To me that is more useable.

GTD - Really Doing It

Time to do some reading. I was poking around the mall today and ended up outside Cole's bookstore. On a whim I checked the business section and saw they had a copy of David Allen's Getting Things Done, so I bought it.

I've been reading about GTD on several websites (like LifeHacker), and have really liked some of the processes and ideals. Seems like a good idea for me to read the source of all these tips and tricks.

I'm pretty excited to get reading this book. Who knows where this might lead.

Once I have read the book and absorbed it, I will see if I want to modify any of my works processes. More on this later.

Pragmatic Programmer Series

This is a tale of excellent customer support.

I've read a couple of the Pragmatic Programmer books now, and they are awesome. One of the things I like is the ability to purchase the book in PDF format at an extremely low rate if you already have the paper bound book.

Yesterday I was all set to buy the Pragmatic Version Control: Using Subversion, 1st Ed book in PDF. There was a problem though, and I couldn't locate the 1st Ed, and only the 2nd Ed.

Abandoning my transaction I emailed the support folks asking about what I was supposed to do.

I just received my response, and they have made me a happy customer.

Greg,

You have earned the distinction of being the first person to ask us
since we put the second edition up for sale!

We do not have the first edition PDF available on the website
anymore, and that is an oversight on our part.

Thank you for pointing this out to us and as such, I have sent you a
complimentary copy of the PDF of the 1st edition of the subversion
title.

You should be receiving an email with the link to your PDF shortly.
If I have sent this email to your work address, and the link has
timed out by Monday AM, please let me know and I can refresh the link.

So, I got myself a copy of the PDF after all and it didn't cost me anything. Even better, I will definitely buy more books from the Pragmatic Programmer series.

Sometimes it is the simple things in life that can make a customer happy. Now I need to find time to dive back into this book!

New Email Signature.

My work email signature has been updated. After reading this article titled Use Your Email Signature To Set Expectations I decided I need to do this. Some people at the company I work at still use email to send time critical information. This in itself is not horrible when the timing is days, but when it is minutes I find this really bad.

I have shown up for meetings only to learn that 5 minutes before the meeting someone sent an email to say it was cancelled. Since Eudora checks every 30 minutes, I never got that notification. Now I just have to hope that people read my signature and learn how to use that information.

Syndicate content