Out of the blue....

I posted my Day of .Net presentation (PowerPoint slides) on SlideShare. Apparently they have an editorial board that picks presentations to highlight on their home page, and they picked mine! I had no idea they even did this. I tried a new presentation format (thanks to Josh Holmes), and apparently it's working out well.

[Originally posted at http://www.dotnetjunkies.com/WebLog/davetrux/archive/2008/10/23.aspx]

Posted: Thursday, October 23, 2008 3:56:07 PM (Eastern Standard Time, UTC-05:00)  #    Comments - Trackback
Speaking

Day of .Net Presentation Resources

Thanks to everyone who attended my talk! Here's some links related to the talk:

My PowerPoint Presentation hosted on SlideShare

Debugging Tools for Windows web site / download WinDBG

IIS Resource Kit (TinyGet)

LogParser for querying IIS log files

FireBug

YSlow

John Robbins' book on .Net 2.0 Debugging

 

Good blog posts on WinDBG

A Big List of Debugging Resources

Getting Started with WinDBG Part I

Getting Started with WinDBG Part II

Debugging Demos

 

[Originally posted at http://www.dotnetjunkies.com/WebLog/davetrux/archive/2008/10/21/536761.aspx]

Posted: Tuesday, October 21, 2008 3:01:32 PM (Eastern Standard Time, UTC-05:00)  #    Comments - Trackback
Speaking

Speaking at Day of .Net in Ann Arbor, MI

I am giving a talk at the next Day of .Net in Ann Arbor. I am giving a talk entitled "Beyond Breakpoints: Debugging and Troubleshooting". Basically I will be talking about finding bugs and performance problems, looking at techniques that go further than setting a breakpoint and stepping through some code.

Sessions have been posted and registration is open!

 

[Originally posted at http://www.dotnetjunkies.com/WebLog/davetrux/archive/2008/9/29.aspx]

Posted: Monday, September 29, 2008 2:00:31 PM (Eastern Standard Time, UTC-05:00)  #    Comments - Trackback
Speaking

Day of .Net in Ann Arbor

Day of .Net in Ann Arbor this fall is on October 18th:

Day of .Net October 18, 2008 - Be there!
Posted: Monday, September 08, 2008 3:55:49 AM (Eastern Standard Time, UTC-05:00)  #    Comments - Trackback

Snipping Tool - A Vista Enhancement for Developers

Saw a great post about the Snipping tool in Vista: The Blog at the End of the Universe : Why Vista? (Volume 4 -- Snipping Tool). For an old-time Alt+Print Screen guy, this thing is great. But the first time I looked for it, it wasn't there (I'm using Vista Business). I guess by default it isn't always installed, but it is available, there is an article describing how to activate the Snipping Tool at PCWorld.

Posted: Friday, August 08, 2008 1:05:09 AM (Eastern Standard Time, UTC-05:00)  #    Comments - Trackback
Tools

A Cool IE HTML/CSS Trick - Conditional Comments

I am continually humbled by the amount of stuff I don't know in the areas where I generally feel good about my level of knowledge....

Today I learned about conditional comments. This is an IE specific trick, but in my case I'm trying to have different CSS for a certain class so it behaves properly in IE6 and standards compliant browsers. The problem is using .png files that have transparency. IE6 totally botches .png files. But it turns out there is an IE-specific filter (progid:DXImageTransform) that causes IE6 to render a .png properly. An older article at A List Apart describes how to use it, along with conditional comments.

Conditional comments allow IE to display the content between the comments based on an expression. In this case, the expression is testing for the browser version:

<!--[if IE 6]>
<link  rel="stylesheet" type="text/css"   href="ie6.css" />
<![endif]-->

So this code snipped would cause IE 6 to load this custom stylesheet. IE7 interprets the comment correctly and doesn't load the stylesheet. Other browsers interpret this as a comment and ignore it. Very nice.

Posted: Thursday, August 07, 2008 3:49:16 AM (Eastern Standard Time, UTC-05:00)  #    Comments - Trackback
ASP.NET

Developer Productivity Part 1 - Soft Skills

As developers, we struggle daily to be the most productive in our craft. Sometimes interruptions and counter-productive days are unavoidable, but there are number of things we can control to become more productive. These include how we behave, what we do with our work environment, and how we use the tools available to us. This article focuses on the soft skills you can develop to become more productive.

Behavior

Flow or “In the Zone”

As developers, I am sure we have all experienced flow, or being “in the zone”. You really dig in to your task, time passes quickly, and you just knock out code left and right. This effect is a pretty well documented, and as you probably experienced, it is sometimes hard to get the right momentum going. Often it takes about 15 minutes for a developer to get into the flow, but it only takes a short interruption to lose it. As a developer, you need to do your best to encourage flow. This means minimizing distractions. Be busy or away on your IM, don’t answer it. Turn off your Outlook notifications of incoming emails. Email is not a time-sensitive medium, treat it that way.

One of the best ways to keep your flow effective is to take a break when the flow breaks. You can’t be totally effective and in the flow all the time. Take time to recharge. The flow can’t continue endlessly. When you are not being productive in the flow, take a break.

Focus on the Task: Task Lists and Goals

Keeping focused on the task you are working on also encourages flow. Task switching is an expensive activity; it interrupts the flow. Set aside time to respond to emails and IM’s.

To help keep yourself on task, create task lists for the activities you need to accomplish each day. This is one of the productivity benefits of Agile/Scrum practices, it allows the team to set a daily goal, minimizing task switching. Organize your time to work on those tasks. Being organized helps minimize task switching and last minute tasks that slipped through the cracks while you were busy keeping the flow going.

Learning

Few things you can do to increase your productivity have more effect than learning. Knowing the right patterns and concepts up front directly impacts your coding productivity. An article published in Scientific American postulates that experts are made, not born. The article determined that expertise allowed chess masters to easily recognize complex patterns, and find effective solutions in much shorter times than non-masters. This was not due to better analysis skills, but resulted from a larger store of structured knowledge. Experts simply get the job done more efficiently. Additionally, motivation was found to be more important than innate ability when developing expertise. Being better at what you do is simply a matter of putting in the required time to reach the level of expertise you need.

When I am interviewing potential new developers for my firm, one question I often ask is “Do you have a server in your home?” For me this is an indicator of someone who has the motivation to become an expert, they are exploring technology on their own. Obviously not everyone can be a giant in the industry, but the only person holding you back is reading this article. Become an expert, if even in a small space, and increase your productivity.

Environment

Obviously, environment affects your ability to get into the flow and stay there. For many of us, noise is a major flow killer. We usually have little control over our direct environment, such as having an office or a cube. But there are actions we can take to make our environment more effective at certain times.

Distraction and Noise

If you have an office door, close it. This is one of the best ways to minimize distraction. If anyone is able to walk up to you and ask a question, they will. Obviously not all interruptions are bad or unnecessary. In order to encourage flow, time needs to be set aside specifically for flow-oriented tasks. Make it clear to others that you are busy, but also make it clear when you will be available again. Take the opportunity to ask to put off a request until you are free.

Set your phone to forward to voice mail, set your cell phone to silent. Set aside time later in the day to answer messages.

If you use an Instant Messenger (IM), make frequent use of the status feature. Others will notice that you do, and will understand that “busy” or “do not disturb” mean just that. Use your email client to schedule work time as appointments. This way you do not look “free” on your calendar or corporate IM.

If you don’t have a door, take advantage of rooms that do have one. Schedule a conference room for yourself for a time when you need to be busy; take your laptop, close the door. This both reduces noise and minimizes distractions, since you are not at your normal location.

Of course headphones are boon to those of us that don’t have a door. Typically, a cube or open environment has conversations going on around you. If you can’t hear them, you are less likely to get pulled into them.

Colleagues

Choosing to work with a strong team will increase your productivity. A strong team environment promotes learning, which in turn improves your productivity. Colleagues or mentors who are more experienced can also enable your own learning and efficiency. Seek them out and learn from them. If you don't have them at work, find them somewhere else. Look at all the folks blogging, experts abound and they are obvious. Contact them, build a relationship if you can. User groups or developer events, like those put on by Microsoft, or Geek dinners, are another good place to find experts and colleagues.

Next up Part 2: How you can use technology to help you be a more productive developer.

Resources

The Expert Mind

Life Hacker: Interruptions

Task Switching

Posted: Thursday, July 31, 2008 1:13:49 AM (Eastern Standard Time, UTC-05:00)  #    Comments - Trackback
Tools

MCMS and TFS

Microsoft Content Management Server (MCMS) and Team Foundation Server (TFS) in Visual Studio 2005 don't play nice together. Since MCMS is a dead-end product, I don't expect there will be an actual fix.

The KB Article fix (sort of).

Stefan's workaround. Essentially you need to use them separately, TFS with Visual Studio and a standalone version of the MCMS Template Explorer.

Posted: Tuesday, July 08, 2008 12:02:12 AM (Eastern Standard Time, UTC-05:00)  #    Comments - Trackback
TFS | MCMS