All posts by David Wise

SharePoint Dev Tip – Restart the Timer


The SharePoint Timer service is handy for what it does but it occasionally gets very hungry and devours hundreds of megs of RAM and keeps it for hours.  This isn't a problem on most production environments because of the memory those machines typically have but it can be a killer on a memory challenged dev Virtual Machine.

The most common symptoms that I've run across is that starting Visual Studio in Debug Mode takes 2-3 times as long as normal and stepping through the code is painfully slow.  When this happens, I restart the timer and all is well again.

I used to do this from the Control Panel but found that there is a much more efficient method: use a batch file with the commands below and just run it periodically.  I have a shortcut to this in my Quick Launch menu and run it before starting any development.

net stop "Windows SharePoint Services Timer"
net start "Windows SharePoint Services Timer"

Of course, if you happen to be doing work that doesn't rely on the Timer functionality (which is most likely the case) then you could always turn off the service and avoid the problem entirely.

Devistafication


There is a trend out there where people are taking perfectly good machines running Windows Vista and then uninstalling it in order to install the venerable Windows XP.  This process hasn't had a name up until now but I think I have come up with a good term for it : Devistafication. 

Here is how I would define it:

de-vis'ta-fy:
tr.v. de-vis'ta-fied, de-vis'ta-fy-ing, de-vis'ta-fies
The act of removing Windows Vista from a computer and then installing a different operating system, such as Windows XP.

de-vis'ta-fi-ca-tion  n
de-vis'ta-fi-er  n

I hope this helps to ease the language burden often associated with this task 🙂

Vital Hotfix for Sluggish Design View in Visual Studio 2008


Microsoft has released a Hotfix for the incredibly annoying performance issues when working in the Design view of an Asp.Net form that contained custom user controls.

The installation info is on the MSDN Blog and is pretty self explanatory.  It takes a few minutes to install but it is worth the wait.  Before the patch, simply switching to Design view for one of my Asp.Net forms could take upwards of 30 seconds.  After the patch, it takes around 3 seconds and half of that is the pulling together the nested master pages behind the form. 

I've also noticed that the properties window now switches almost immediately when I click on a control.  Before, it would take 5-10 seconds to change and sometimes never did.

The Battle for Nothing… or is it Null?


I have worked in numerous programming languages and the one thing that I find most irritating is that every language feels the need to reinvent Nothing – literally – and then applies their own rules to it.

In VB, Nothing is Nothing.  In C# and JavaScript, Nothing is null.  Ruby's Nothing is nilNothing can also be Null or Empty or undefined, although it can sometimes be NaN, which is not necessarily Empty or Null.  Something that is undefined is sometimes null and sometimes not but something that is null is rarely undefined.

Throw in the mix how badly empty strings are handled where "" is not Empty or null, but is an EmptyString and could be NaN.  It could also be a NullString, which is still not a null or even a Null and certainly not an Empty or undefined.

Nothing/Null/null/nul/nil is a basic part of any programming language.  Is there any chance that we could pick one term, like Null (or null even), and use it across languages?

It's just a word, what is the big deal?  The word itself is trivial but the need to use a new term for something so basic is the root of my aggravation.  Each language feels that they have to use their own terms to be "cool", yet are just rebranding well established concepts without adding functionality.  That isn't innovation, that's marketing.  It's "New and Improved" without being either.

All it accomplishes is that it adds one more tiny step in the learning curve for that language and slows adoption.  Further, assuming that the "cool" factor won out in other areas, then there will be hundreds of other such tiny steps as well, all without any added benefit.

Tell you what, I'm going to create my own programming language called Presidents.Net, where all of my core data types are named after past Presidents.

private Jefferson ProcessRequest(Washington pRefID, Jackson pAmount)
{
   Lincoln User = getUserID(pRefID);
   Eisenhower AccountNumber = getAccount(User);
   …
   return applyTransaction(AccountNumber, pAmount);
}

What is the value added?  Nil, or … null … or … Polk.

The Value of an IT Curmudgeon


They have stories from the dawn of computing, about the problems with tape backup, data layouts using bitmasking to save single bytes wherever possible and can regale you with tales of horror about the era of punchcards.  While they can expound for hours on middling details of tech found only in museums, they are surprisingly quiet on the merits of any recent technologies.  One could say that their value is historical but I think they serve a far greater purpose.

They are warning posts, put in place to remind you about the perils of complacency.  About what will happen to you if you let your skills lapse or get too comfortable with any one particular technology.  This field moves too fast and they are glimpses into your own future if you stop moving with it.

Talk with them.  Listen to them.  Consider them the career equivalent of a car wreck.  They hit the brick wall so you don't have to.