Skip to content
13/06/2010 / dimarzionist

Bug with Visual Studio multi-line editing feature in HTML editor

Hopefully you know about one of the cool features of Visual Studio 2010 called multi-line editing. You can select multiple lines of your code holding Alt key pressed and then edit them all – dream for copy-and-paste approach.

But there’s seems to be a bug with this feature in Visual Studio 2010 HTML editor. It’s automatically closes the HTML tags you’re typing, but this doesn’t work while editing multiple lines – it’s only closes the last tag which results in broken HTML markup…

11/06/2010 / dimarzionist

Top 10 Reasons for performance issues with you website

There is big number of blog posts regarding web site performance, but here is my top-10 reasons from number of real world websites affecting their performance:
  1. Table based layout – especially sensitive performance degradation with IE, big number of nested tables also make it look really tricky during the loading time in Firefox and Webkit
  2. Superfluous  markup elements – when they are part of repeated elements such as grid or list this results in hundred kilobytes of useless content
  3. JavaScript included in the wrong place – this pushes web browser to load/execute JS before you will see the first byte of visible content
  4. Lots of HTTP errors, especially 404 and 503 – broken links, moved images, incorrect relative paths to resources
  5. Duplicate <link> blocks and JS includes – obvious, but still common problem
  6. No caching (content expiration) is set for static resources – both server side caching and content expiration headers for the client
  7. Inline <script> blocks
  8. GZIP compression is not enabled for CSS and JavaScript files
  9. Number of JavaScrip includes for one page – results in big number of network connections, sometimes preventing page to render correctly
  10. Incorrect or broken HTML markup – browser spend more time than expected to understand what you were trying to say with <table><div><tr></div><td></tr>/>
10/06/2010 / dimarzionist

What is the difference between sprint and iteration

Summarizing one of the StackOverflow threads:

– Iteration is a common term in iterative and incremental development (IID).

– Scrum is one specialized flavor of IID.

– Sprint is a scrum specific name for the iteration.

All sprints are iterations but not all iterations are sprints…

As to the sprint length: anything goes as long as the sprint is timeboxed i.e. it is finished on the planned date and not “when it’s ready”. It does help to have the sprints of similar durations.

09/06/2010 / dimarzionist

TFS 2010 / Tools: Team Foundation Sidekicks 2010

How to manage “dead” workspaces, “magic” locks, “miracle” shelves and other beauties of TFS 2010 source control?

Command line is awesome until you need to get some more understanding on what’s really happening. Especially when you coming to the new environment and have no idea what was happening to the project last 10 years.

I found Team Foundation Sidekicks one of the most powerful TFS tools I’ve seen recently. Specifically with my case it was really the only thing that was able to help me with some ancient locks for the files which no longer exist in source control, but still preventing our recently upgraded to 2010 source control to do proper merges.

From another super useful features – ability to unshelve to any folder on your machine, changesets and labels history per user per workspace, locks and source control item statuses by user, maintain workspaces and users and the last on toolbar (but not in our hearts) – code review(!) sidekick by changeset or by work item.

Pure power.

08/06/2010 / dimarzionist

TFS 2010: How to unlock/undo changes done within different workspace

tf status $/MyProject/MyPath/MyFile.cs /server:my_server /format:detailed

You’ll get something like:-

User       : MY_DOMAIN\my_user
Date       : Thursday, October 12, 2005 11:25:00 PM
Lock       : checkout
Change     : edit
Workspace  : WorkSpaceName
Local item : [WorkSpaceName] D:\projects\MyProject\MyPath\MyFile.cs
File type  : Windows-1252

There is an unlock command – if this works it will be cool as it would mean that the developer wouldn’t loose their changes.  I heard that this didn’t work properly for Beta 2 – should be fixed now, the syntax is below:-

tf lock $/MyProject/MyPath/MyFile.cs /lock:none /workspacename:WorkSpaceName /server:my_server

There is also an Undo command.  It would get rid of any pending changes that the developer had made and they will lose any work they were doing.  The syntax for Undo is:-

tf undo /workspacename:WorkSpaceName;dev_username /server:my_server $/MyProject/MyPath/MyFile.cs

We had a developer leave our company with some files still checked out when we were running on Beta 2.  To find out which workspaces the developer had we used:-

tf workspaces /owner:dev_username /computer:* /server:my_server

Then we deleted them.  Deleting the workspace also removes the lock on the files.  The command to delete a workspace is:-

tf workspace /delete /server:your_tf_server workspacename;workspaceowner

I read somewhere that an graphical admin tool will be available as a download post release for Team Foundation Server. If not, I think I’ve found myself a new project..

Don’t forget to run this commands under the folder that is bound to the TFS – this will ensure correct credentials will be used.

08/06/2010 / dimarzionist

TFS 2010: Hot to unshelve to a different branch

tfpt unshelve /?
tfpt unshelve - Unshelve into workspace with pending changes

Allows a shelveset to be unshelved into a workspace with pending changes.
Merges content between local and shelved changes. Allows migration of shelved
changes from one branch into another by rewriting server paths.

Usage: tfpt unshelve [shelvesetname[;username]] [/nobackup]
                     [/migrate /source:serverpath /target:serverpath]

 shelvesetname          The name of the shelveset to unshelve
 /nobackup              Skip the creation of a backup shelveset
 /migrate               Rewrite the server paths of the shelved items
                        (for example to unshelve into another branch)
 /source:serverpath     Source location for path rewrite (supply with /migrate)
 /target:serverpath     Target location for path rewrite (supply with /migrate)
 /nobackup              Skip the creation of a backup shelveset
08/01/2010 / dimarzionist

Strange jQuery error

I’ve noticed interesting error in Firefox JavaScript console today within client side code I was working on:

“Could not convert JavaScript argument arg 0 [nsIDOMViewCSS.getComputedStyle]” nsresult: “0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)” location: “JS frame :: /jqueryJsFile/ :: anonymous :: line 809” data: no]’

After half an hour investigation and debug of jQuery internals I found that the reason was in this part of jQuery code:

var computedStyle = defaultView.getComputedStyle( elem, null );

The elem variable was simply text node, something like “&nbsp blah-blah-blah\n”, so because of some bug within JS engine as I can see if was failing to receive styles and it was failing to throw some more readable exception.

The original block of client code that calling jQuery was:


And of course that nextSibling in Firefox was the next space or &nbsp; after some read element like DIV or LI.

The funny think about this bug is that it was only failing remotely(!) and was working pretty fine on local machine.