There’s no such thing as Non-Functional Requirements

Recently I was reading a draft requirements document and eventually I came to a section entitled ‘Non-Functional Requirements’ (NFR). As usual there was hardly anything in there. It reminded me of a session at a Extreme Programming camp I attended. The question raised there was, “how do you ensure the non-functional requirements are met”?” Both experiences lead me to believe that NFR are treated as some strange satellite requirement. The upshot of that is they are often just ignored, something that is pushed to the back of the priority stack. At the aforementioned XP camp I argued that there is no such thing as NFR. When I see a functional requirement (FR) I immediately read into it the NFR, I want the NFR to be included in the specification. For example, it is a classic mistake to only consider performance at the end of project, a mistake that is costly to fix. There are just requirements, each requirements is a combination of FR + NFR.

What to do? I would encourage everyone to include NFR with each FR. From a TDD/BDD point of view, we should be seeing references to those NFR. Ok a domain user might not understand the technical terms associated with NFR but even a simple reference to them would be enough to allow/remind more technical readers that they also need to be met.

Posted in Computers and Internet | Tagged | Leave a comment

Fixing the width of HTML table columns in IE

I had a frustrating time today trying to understand why IE was ignoring a fixed width style on a TD. IE was happily ignoring it and resizing the column to the content. It turns out I needed to apply this little CSS attribute that I thought I would note down since I will instantly forget it;

{table-layout:fixed;}

Posted in Html | Tagged , , | Leave a comment

How to log .net binding errors when you don’t have fuslogvw.exe

One of those sticky production problems is when you are faced with a ‘Could not load file or assembly’ type problem and you do not have the .net SDK installed…so no fuslogvw.exe. Today I shown the following extract from StackOverflow

 

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Add: DWORD ForceLog set value to 1 (DWORD )

LogFailures set value to 1 (DWORD)

LogResourceBinds set value to 1

LogPath (String) set value to folder for logs ie) C:\FusionLog\

One thing to add is that after making those changes you’ll probably want to reset your process e.g. for a web sever (IISRESET), COM – shutdown application, etc. Then you can restart and look into the folder you entered for the LogPath.

Posted in Uncategorized | Leave a comment

Using NuGet with Visual Studio Express

A quick “tip”. Currently Visual Studio C# 2010 Express cannot install the NuGet extension. To workaround the problem you must have Visual Studio Web Developer Express. The NuGet extensions has been signed to work with VWD. Then to install a NuGet package for your VCE project do the following (it’s not nice);
1. Create your project in VCE, save and close
2. Open the project in VWD, it will probably complain but just ignore it
3. Run your NuGet command, e.g. Install-Package
4. Save and close VWD
5. Reopen VCE, add reference and browse to the packages folder that is now in your solution.
There, it’s not nice but it does work

Posted in Development, Visual Studio | Tagged , | Leave a comment

Beware of duplicate cookie values

Came across a strange problem today that I thought I should record since I’ve already wasted enough time investigating it. The problem was that a web site was recording a setting to a cookie each time a page was unloaded; e.g. Preference1. Any page can then read the cookie and take appropriate actions. However, for some reason the preference was not correctly read on any other page. Puzzled I examined the document.cookie property. For some strange reason the value was duplicated; e.g. Preference1=hello; Preference2=bla; Preference1=goodbye. So when the page wrote to the cookie the 2nd version changed but when the cookie was read the 1st version was taken. Once I cleared the cookies for the domain everything went back to normal. The site only has one domain, no sub-domain or anything. Very strange behaviour.

So there it is, an aide memoir for me, but if anyone can provide an explanation I would be grateful. I should mention this was all client side JavaScript.

Posted in Browsers | Tagged , | Leave a comment

Intellisense (for jquery) in MVC razor views

Another quick tip. When using master pages or razor layouts you tend to put the script includes in the master but this means your child or view pages do not include any references to the scripts. Therefore you start writing some jquery in your view an Visual Studio does not provide any intellisense. So put the following at the top your view;

@if (false)
{

<script src=http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js type=”text/javascript”>

</script>

}

Posted in Uncategorized | Leave a comment

How to prevent autocomplete on textboxes in html

Just a quick one because I keep forgetting how to do it. If you want to stop your form displaying suggestings in text boxes that were based on previous entered values, then add the following attribute to your html form tag; autocomplete=”Off”

Posted in Uncategorized | Tagged | Leave a comment