Archive for the 'software' Category

Syncing Folders with SyncToy

Friday, July 6th, 2007

Every time I get a new computer or external drive it is always a pain to get the files in sync and keep them that way. In particular it is most difficult to keep my iTunes music files organized. I just discovered a utility called SyncToy. You can create multiple profiles and set the action to synchronize, echo, subscribe, contribute or combine and it takes care of keeping the files in sync. Previously I just had to copy and paste and overwrite files or carefully select the files which were not already copied. It was tedious.

Now whenever I purchase new music I can fire up SyncToy and make sure my new music is copied to the desktop which has a lot more storage than my laptop. I can use it as a backup system. It would be great if iTunes itself had such a feature, but unfortunately they have not created it yet. In fact, I wish I could sync up iTunes on my laptop from my home desktop system like I do my iPod. That would be a great feature.

Custom Exceptions for the Real World

Thursday, June 21st, 2007

In response to the freshly coined ADD methologies I decided to assemble the following list of custom exceptions for the real world. I do not recommend using them, but sometimes I come across code and I wish I could just throw one of these exceptions.

LegacyCodeException

Sometimes you run across a class that is thousands of lines long with most of the work done in a single public method. It may even use several member variables all over the place so it is hard to keep track of everything as you look through the code. When I have to update code like this to add a new feature or fix a bug I wish I could just wrap it in a try...catch block and if it catches an exception I would like to re-throw it inside of a LegacyCodeException.

(more...)

Subversion Bridge for CodePlex in Progress

Thursday, June 21st, 2007

The project is called SvnBridge and it will work for CodePlex as well as your own Team System environment which is an unexpected bonus. The documentation explains that the bridge works entirely on the client-side so you do not have to install anything onto the server. This functionality was supposed to be available on CodePlex by now but it appears they have some issues to work out.

Once this is done it will be a great addition to Team System. I would like to have TortoiseSVN installed so that I can get updates from within Windows Explorer instead of firing up Visual Studio for everything.

I have suggested to people that you can use Subversion for more than just managing software. I know of one company that is managing their office documents with Subversion. It gives them version control for their spreadsheets so they can access old versions and even create branches. With SvnBridge this could be done with Team System transparently. I just hope the update to Team System this year adds many of the features most developers really miss after using Subversion. In the meantime at least we have the Team System Power Tools.

Subversion in Visual Studio, Finally

Friday, June 8th, 2007


All this time that I have worked with .NET in Visual Studio there has not been a good way to integrate support for CVS or Subversion. For Subversion there was AnkhSVN which attempted to implement an SCC provider for Visual Studio. It never was fully embraced by developers due limitations of what could be done with SCC which was designed to support Visual Source Safe. The SCC interface is also something you must license if you want the full documentation. Bottom line, it is not something Microsoft makes easy to implement.

So it was good see a new add-in called VisualSVN which appears to take care of all of those concerns and implements good support for Subversion in Visual Studio. The FAQ explains that they do not even bother trying to implement an SCC provider.

(more...)

ReSharper Potential and Shortcomings

Monday, June 4th, 2007

I have been reading Oren Eini's blog Ayende @ Rahien (great blog, by the way) and he recently mentioned a bug ReSharper that he wants resolved. The product has several bugs which irks me as well. It has such great potential but in so many ways it has been so disappointing.

For example, at one point it started including support for MSBuild. The features looked impressive and since I spend a lot of time working with MSBuild scripts I was interested in leveraging the new features. I use the MSBuild Community Tasks which is a collection of custom tasks that provide functionality which is not included with the standard tasks. One of the tasks is Zip. When I import these custom tasks and reference the Zip task I see an invalid error message because ReSharper ignores the Import directive.

(more...)

Fixing Health Care with Software

Monday, June 4th, 2007

I have watched parts of presidential elections and one comment which has come up a few times from both Republicans and Democrats that has stuck in my mind. The comment is about how much the cost of paperwork makes up the overall cost of health care. A study at Harvard Medical School shows that the cost of paperwork was $294.3 billion in 1999. The numbers from Bill Richardson's website show that administrative costs are at 31%. Much of it is the paperwork related to insurance forms. Since the cost of health care seems to have skyrocketed the past few years it has become a big issue that the candidates have to address and most of them say the solution is to reduce the administrative costs by leveraging IT, which means replacing the paperwork with electronic documents and software.

(more...)

Software Development Techniques at the WJUG

Friday, May 4th, 2007

The next meeting for the WJUG will cover Software Development Techniques.

In this session, learn five of the techniques I've borrowed along the way. We'll discuss The List, code reviews, code change notifications, daily meetings, and tech leads. These techniques are often abused, but when used properly they can make a huge difference in how you develop software. Take this opportunity to add these practices to your toolkit.

No matter what platform or language you use this should be a useful session. On a related note, I just purchased Mythical Man Month which covers this topic extensively. It is a special anniversary edition with revised commentary after the original book named "The Mythical Man-Month: Essays in Software Engineering" was published back in 1975. The lessons covered in the book are still valid today.

I am all Vista’d Up

Wednesday, May 2nd, 2007

I finally took the jump. I have been running Vista inside of Virtual PC 2007 for short periods just to try out various features, such as IIS7. Since Visual Studio 2005 SP1 for Vista was released I have been tempted to make the jump and I finally did.

I am still just running it inside of Virtual PC since I just plan to use it for development. It performs quite well despite living in a VPC and my Inspiron is only a single core processor. Initially the sound device was not recognized but once I installed the VPC Additions the sound automatically started to work. My main concern was how well TortoiseSVN would integrate with Vista. I have not had a single problem with it. I believe I waited long enough for the early adopters to work out the kinks.

Since I mainly use this environment to run Visual Studio I am sure I will not have any problems. And if I choose to move back to WinXP it is only a matter of firing up my other environment which is now sitting in cold storage. :)

Packer 3.0 for .NET

Monday, April 30th, 2007

I recently fixed a bug in a widely used Javascript library and once I was done I needed to shrink the library to get it back to the previously reasonable size. To do so I planned to use Packer by Dean Edwards, a popular tool which uses a clever technique to eliminate duplicate strings in a library. Many times you will get some very good compression ratios. When a Javascript library grows beyond 100k it is helpful to make use a tool like Packer.

When I looked at using Packer I found a previous version for .NET which offered part of what I needed with a limitation due to the WinForm interface. I reused the classes which did all of the work with a newly created console application which took multiple filenames to compress all of the files into a single output which is commonly done with Packer. Once I added this functionality I packaged it with an installer and published it on SmallSharpTools.com.

This console application should come in handle in certain scenarios, such as a post build deployment. I have a few ideas for future releases once I have more time. Those ideas at listed on the project page.

Notepad2 Update Released

Thursday, April 19th, 2007

Florian Balmer has produced a 2.0 release for NotePad2. The zip download includes the executable but no installer so I have created an MSI installer (as I did before) which places the files in your Program Files folder and sets a registry setting which adds "Open with Notepad2" to the context menu in Windows Explorer as shown in the image on the right. You can run this installer without uninstalling the previous version. It will simply replace the existing version.

I place Notepad2 on every computer and server I use because it makes it so easy to edit configuration and source files.

[ Download Notepad2 2.0.15 Installer ]

(more...)