Tuesday, November 25, 2008

Subversion to the max!

I moved from Visual Source Safe to Subversion. I’ll never go back.


Impressions

I was forever locked into the VSS world, always worrying that if I will have to abandon my comfy Visual Studio integrated tools. My early dabbling in the CVS command line world were fun and while the server was great the clients were faulty at best. The few CVS clients at the time (WinCVS and TortoiseCVS come to mind) were unintuitive and lacking key features. Visual Studio integration was buggy. So back I went into my VSS hole.

 

Earlier this month I decided to give Subversion a try. Looking around I discovered VisualSVN and in a few minutes I was setup and ready to commit (pun intended). I am really impressed by VisulSVN. For somebody used to VSS this is the deal! You get great integration with Visual Studio 2008, so much so that I don’t miss any of the VSS features I got used to. For more advanced features you get TortoiseSVN for monkeying around the explorer so you can commit files without starting Visual Studio or doing fancier stuff like creating repositories.

 

I also got the free VisualSVN Server, made specifically for the UI-happy Windows users. No command line configuration happening here, all I need is in a few screens and it is so easy to do I didn’t even read the manual. Not that I ever do that anyway ;),

Price

VisualSVN - $49.

Visual SVN Server - Free
TortoiseSVN – Free


Conclusion

You must have source control software and VisualSVN is well worth the money.

Get VisualSVN and VisualSVN server from here http://www.visualsvn.com/

Get TortoiseSVN from here: http://tortoisesvn.tigris.org/

 

 

Tuesday, October 14, 2008

Let out the maniacs!

When it comes to software development you simply have to be a keyboard lover and so am I. I live and die by my shortcuts so when I found this site I was in heaven. All your keyboard shortcuts in PDF format so you can easily print them and post them on your wall for quick reference.

Sample the keyboard shortcuts here: http://www.shortcutmania.com

Tuesday, September 30, 2008

Are your pages crawling across the network instead of flying? Find out why with YSlow!

Quite often a web site works well on the developer’s machine but when it is deployed to another location it starts to crawl. The reason is most of the time the network latency introduced during the deployment. You can mitigate lots of these performance issues with a range of measures nicely described here: http://developer.yahoo.com/performance/rules.html. YSlow will automatically detect most of the potential problems described in the previous document and quickly point you in the right direction.


Impressions

YSlow is a Firefox add-on and it requires Firebug to be already installed. So there is some setup required to get things chugging along but it is all worth it. Once you have it setup you will be able to run an analysis on the current page and YSlow will evaluate and grade several potential problems. Grading makes it very easy to see what areas need your immediate attention and it also gauges progress once modifications are implemented. Not only do you get recommendations to improve the speed but each point is linked to a clear and through explanation of the reasons behind the recommendation so you can take an informed decision if you want to implement them or not.

 

You can also run through the rules used the YSlow here manually if you feel that your case needs some more fine-tuning:

http://developer.yahoo.com/performance/rules.html



Price

Free.

Conclusion

If you develop or own a web site then this is a must have, 5 stars!

Get Firebug from here: http://developer.yahoo.com/yslow/

 

 

Tuesday, September 16, 2008

Find duplicate code with Simian

Find duplicate code with Simian


Impressions

From the developer’s site:

Simian (Similarity Analyser) identifies duplication in Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy source code and even plain text files. In fact, simian can be used on any human readable files such as ini files, deployment descriptors, you name it.

 

Sounds too good to pass up so I downloaded a copy. You can only download a tar.gz file, a clear indication that this is not a tool for the fain at heart. I managed to unpack the file and found a copy of the poorly design website inside - monkey and all - along with a bin folder that has the binaries. There are two types of developers targeted here: Java and .NET, I chose to focus on the .NET version so I bravely double-clicked the simian-2.2.24.exe file. A black screen flashed and disappeared. I felt my DOS senses tingling which meant that this was a command line application so I opened a command prompt and ran the EXE again.

 

I won’t put you through all my pain but fiddling with the input parameters I managed to run the application against my code and it printed something like this:

 

 

Found 35 duplicate lines in the following files:

 Between lines 848 and 882 in abc.cs

 Between lines 1059 and 1093 in abc.cs

 

Found 515 duplicate lines in 31 blocks in 7 files

Processed a total of 1243 significant (2510 raw) lines in 8 files

 

Obvious pain points:

 

No easy way to now get this output into Visual Studio and search for the data. Am I supposed to search by line name?

 

No indication on what is duplicated or how severe the duplication is. If you are looking at 1000 duplicated “things” how do you prioritize? Or should I just eliminate all duplicates?

 

It only processed the current folder and I found no obvious way to make it run on all the sub-folders so if you happen to have a bigger project you can simply forget using this tool.

 

It does not do a duplicate search among all the files or if it does it was not clear how to enable the option.


Price

Free for non-commercial and evaluation purposes
$99 for SOHO users

Other licensing options are available on the site.

Conclusion

Nothing good, 0 stars!

You can get Simian from here: http://www.redhillconsulting.com.au/products/simian/

 

 

Tuesday, August 19, 2008

Find performance problems quickly and easily

When it comes to performance improvements I noticed two distinct factions: one that would tune every line of code and the other that would never do anything. Somewhere in the middle you will find performance tuning nirvana. Here you will tune only the most relevant areas of the code to maximize performance and minimize the time spent tuning.

It is often said that tuning 5% of your code will take care of 95% of your performance problems and my gut feeling tells me that it is probably true. Finding the relevant 5% is another story. You can certainly comb through tens of thousands of lines of code, pepper your functions with performance counters or simply use a profiler and let it tell you what you need to do. One of the best profilers I tried is ANTS Profiler.


Impressions

ANTS Profiler will make you feel like a performance optimization specialist. After a quick run through your application with the profiler running it will present a view of your source code with performance statistics for each line.  The time to run is displayed for each relevant line and a bar with the relative performance is displayed next to the slowest lines. You can instantly identify the line that takes the longest and if it is a function you can drill down into it to see exactly what line of code is causing the grief.

 

You can profile Windows applications, ASP.NET applications, COM+ applications and .NET Windows services so you should be covered from every angle.

 

ANTS Profiler is very easy to use with intuitive UI and proper options presented along the way.

 


Price

From $295 for the Standard edition up and $495 for the Pro edition. For more pricing and licensing details see the developer’s website.

Conclusion

A good profiler is a must have for any .NET developer and this is one of the best, 5 stars!

Get ANTS Profiler from here: http://www.red-gate.com/products/ants_profiler/

 

Monday, August 11, 2008

Are regular expression painful? Use The Regulator!

If you are like me you tried to avoid regular expressions and came up with the weirdest excuses in doing so. At first contact regular expressions seemed more like voodoo than programming. I wish I had a tool like The Regulator in those days.


Impressions

The Regulator is the missing link for regular expression development in any modern IDE. It provides a great way to develop, test and manage your regular expression code library.

 

Let’s look at some features:

- Intellisense – when you sort of know what you want but you don’t know what you need intellisense will pop up with a helpful list of options and explanations for the token at hand. Immensely helpful and dearly missed in other IDEs when working with regular expressions.

- Syntax highlighting – we take this for granted but it is a great help in troubleshooting problematic regular expressions.

- Code generation – automatically generates VB.NET or C# code. It would be nice to have support for other languages but I am feeling spoiled as it is.

- Performance analysis – compare different versions of a regular expression. An amazing feature and as far as I know unique to this tool!

- Community integration - integrates with regexlib.com to search, import and upload regular expressions.

The overall feel is of a professionally written application, well polished and very useful. I just wish Visual Studio would be as good as The Regulator when it comes to regular expressions!


Price

Free.

Conclusion

If you use regular expressions then you must give it a try, 5 stars!

Get The Regulator from here: http://tools.osherove.com/CoolTools/Regulator/tabid/185/Default.aspx

Also make sure to check out the RegExLib site here for many regular expression samples posted by the community: http://regexlib.com/default.aspx

 

 

 

 

Tuesday, August 5, 2008

What's in a pixel? Pixie can show you.

Pixie displays the color under your mouse pointer in various formats. Very useful for web developers.

Impressions

Pixie is one of those micro-tools you just add to your toolbox only to have it at your fingertips when you need it. It is extremely small in both file size and screen space footprint and focuses on only one thing: to show you the current color under your mouse cursor as conveniently as possible. There is a build-in magnifier window that you can activate as needed to aid you in tracking down that elusive pixel. You can also start the color picker dialog box to pick any color you might envision. Beyond these simple features and copying the current color into the clipboard this there isn’t much else Pixie can do.

Price

Free.

Conclusion

Other tools do the same job but none do it with more elegance than Pixie, 4 stars!

Get Pixie from here: http://www.nattyware.com/pixie.html

 

 

 

Monday, July 21, 2008

Enhance your documentation with easy screenshots - check out Cropper

A picture is worth a thousand words. I’m sorry to use a cliché but nothing says it better when it comes to documentation. Instead of a page-long list of instructions detailing every click and mouse move just add a picture, overlay an arrow and most people will get the message. This is where Cropper comes into picture

Impressions

First experience was a bit confusing. I installed Cropper, took a screenshot and nothing happened! I eventually clued in that the screenshot was being saved to disc every time I hit Enter or Double-Clicked the screenshot area but it would have been nice to have some sort of notification that the screenshot has been taken.

 

Once I understood the way it worked it actually made sense. Cropper lets you focus on taking the screenshots as you need them, saves them automatically in he format you need and deal with the screenshots later. This suits the way I work, when I am going through an application I want to just take a screenshot and deal with them later.

 

A nice array of options is supported. For output formats BMP, JPG and PNG are supported as well as going straight to your clipboard.

 

This tool is designed with precision in mind. You can preset your capture size, automatically create thumbnails. This is perfect for documentations where having the same screenshot size for similar items is ideal to make the document look neat. Automatically creating thumbnails is a great timesaver too, the author really uses his tool so he knows what kind of pain we go through to create a proper thumbnail for each capture.

The snappy way to create the screenshots made me wish I could also add a voice recording to the screenshot, something like “Nice screenshot of deleting a file”. This would let me clue in to what I was thinking when I took the screenshot. Just kidding but if anybody wants to implement this feature the source code for Cropper is also available.

 


Price

Free.

Conclusion

This one is a keeper, it will sit forever on my taskbar! 5 stars!

Get Cropper from here: http://blogs.geekdojo.net/brian/articles/Cropper.aspx

 

 

Monday, July 14, 2008

Stylizer - speed up your CSS development

Stylizer focuses on CSS fine-tuning and speedy live web page editing. As a nice change from existing similar tools you can see your changes in Internet Explorer as well as FireFox.

Impressions

Stylizer will let you edit the CSS on your live pages. While it specializes only on CSS editing it does it very well with multiple innovative features:

- Multiple browser support. I was able to easily switch between Internet Explorer and Firefox. A very useful feature to make sure your CSS is behaving as expected with both browsers.

- Instant preview in the browser of your choice. This is a great selling feature for this application, it will let you easily fix CSS bugs or take a peek under the hood for at an existing web site.

- CSS browser filters. Apply some CSS to one browser and some to another, all with just a few clicks.

- Disable CSS on the fly.

- CSS validation, both when a page is opened and also ongoing while editing.

 

You must go through the tutorial, it will show you how to get around the application in just a few minutes.

 

Caveats

 

Limited only to CSS editing, it would be nice to be able to edit HTML and JavaScript as well. Other tools offer similar features while integrating into a more complete experience - FireBug comes to mind again.
The integrated tutorial and purchasing pages are not working if the internet security settings are set to high.

Interface can be hard to figure out at times, don’t skip the tutorial. It would be nice to have the various options available in menus with more descriptive text and in categories to complement the existing toolbar.


Price

The Basic version is free but it comes with limited functionality.

$69.95 CAD for the Ultimate version.

Conclusion

If you need the specific tools it offers then go for it. Basic CSS editing is available for free in other tools like FireBug.

4 stars.

Get Stylizer from here: http://www.skybound.ca/stylizer/

 

 

Monday, July 7, 2008

MBUnit - NUnit evolved

If you love NUnit you’ll go gaga over MBUnit.

Impressions

Just when you thought it cannot get any better somebody comes up with a better way to do test driven development (TDD). MBUnit is building on the solid foundations laid by NUnit so you are greeted with the familiar attributes and test fixtures out of the box. The fun starts when you go beyond the NUnit clone and find that MBUnit will generate the unit tests on the fly and you have functionality such as RowTest. The RowTest attribute extends the Test attribute by letting you specify multiple variations of test data. Take a look at this example:

 

    1 [RowTest]

    2 [Row(10, 10, "Good widget")]

    2 [Row(-1, 10, "Not so good", ExpectedException=typeof(InvalidWidgetDataException))]

    2 [Row(10, -1, "almost good", ExpectedException=typeof(InvalidWidgetDataException))]

    2 [Row(10, 10, null, ExpectedException=typeof(InvalidWidgetDataException))]

    2 [Row(-1, 10, "", ExpectedException=typeof(InvalidWidgetDataException))]

    6 public void SaveWidget (Int32 width, Int32 height, String comment)

    7 {

    8     Widget widget = new Widget();

    9     widget.Height = height;

   10     widget.Width = width;

   11 

   12     widget.Save();

   13 

   14     Widget loadedWidget = Widget.Load(widget.ID);

   15     Assert.IsNotNull(loadedWidget, "Widget not found");

   16     Assert.AreEqual(widget.Height, loadedWidget.Height, "Height not saved correctly");

   16     Assert.AreEqual(widget.Width, loadedWidget.Width, "Weight not saved correctly");

   16     Assert.AreEqual(widget.Comment, loadedWidget.Comment, "Comment not saved correctly");

   18 }

 

One problem I ran into was when using a DateTime type in the Row data.


Price

Free.

Conclusion

If you do the TDD then this is a must have, 5 stars!

Get MBunit from here: http://www.mbunit.com/

 

 

 

 

Wednesday, July 2, 2008

ReSharper - accelerate your Visual Studio .NET development

ReSharper reinvents intellisense expanding its capabilities as well as improving the built-in features.

Impressions

ReSharper makes development faster with a plethora of features that make developers giggle. It is a developer’s butler anticipating every need and patiently waiting until the master notices. The on-the-fly error detection points out errors and warnings without any compilation. Once it detects that a namespace is not imported it offers a key combination that adds it automatically. Even before I compile I see a comprehensive list of warnings, suggestions and hints that appear right where the problem is so the text is always to the point.

 

And there are the little things like duplicating the selected code. Instead of CTRL+C, CTRL+V I type CTRL+D and it is all done. I simply love these little additions that a few milliseconds every time I use them.

 

Once you are done turn on the automatic code cleanup to remove all the declarations you didn’t use.

 

The feature list is simply overwhelming and posting it all here is not the point; you can find the entire list here:

http://www.jetbrains.com/resharper/documentation/feature_map.html

VB.NET developers will be pleased to find out that they were not forgotten although some key features are only available for C# developers.


Price

$199 for a single developer license.

Conclusion

If you develop in C# then this is a must have, 5 stars!

Get ReSharper from here: http://www.jetbrains.com/resharper/

 

 

 

 

Thursday, June 26, 2008

FireBug - The JavaScript swiss-army knife.

FireBug is by far the best and most complete tool when it comes to Web 2.0 application development. FireBug is a FireFox add-on so it is only a click away when you need it.

Impressions

You get the ability to edit live your HTML, CSS and JavaScript and all changes are reflected in the page as-you-type. This is amazing if you integrate your JavaScript with ASP.NET or other compiled language, you effectively break out of the edit-compile-refresh cycle. Once you are happy with your changes you copy them to your original source file.

I love it because it allows the web developer to experiment with the web site as needed and once the problem is solved he can either copy the fix into the code or email it to another team member.

I first used it with FireFox 2 and had absolutely no problems.

With FireFox 3 just out you will have to install a beta version (1.2.0b3) which brings in some bugs but nothing I can't put up with.

Price

Free.

Conclusion

If you develop or own a web site then this is a must have, 5 stars!

Get Firebug from here: http://getfirebug.com/