Thoughts from the office by Ed Ball
Thursday, March 02, 2006

Once upon a time, I blogged about how I've always loved a good hard-drive-usage-visualization application. The application that I talked about there ended up no longer being free, but I have since found another free application that's just as good: WinDirStat. It's a great way to find those big, useless files on your hard drives that you want to delete because you're running out of hard drive space, or you don't want to backup, etc. Check it out!

3/2/2006 1:08:36 PM (Pacific Standard Time, UTC-08:00) | Comments [0] | Tools#
Tuesday, February 14, 2006

For the most part, it is a pleasure working with Visual Web Developer 2005 Express. Of course, the fact that it was absolutely free is probably still having an unfair influence on my opinion. At the very least, it is hard to argue with a free IntelliSense-enabled editor.

However, one aspect of the product has been driving me crazy. When you add a reference to one or more assemblies, it adds the .dll and .pdb files to the Bin folder of the project, but it also adds a .dll.refresh file. This file causes the build process to see if the .dll file has been updated at its original location and copies it if it has. This is a great feature, except that it is unbelievably slow. I have a project with 8 assemblies added to the project in this way, and a simple Build takes minutes, every time. I'm not sure why this process is more complicated than checking to see if the file has changed and copying it if it has, but I'm sure I'm missing something.

At any rate, I'm not willing to wait that long every time I need to build the solution, so I use a simple workaround. I've deleted the .dll.refresh files from the project and I use a batch file to update the assemblies instead. Without the .dll.refresh files, the project builds quickly. The batch file not only copies the assemblies, it first builds the Visual C# Express projects for those assemblies with msbuild to make sure that they are up-to-date. Thus the batch file solution is not only much faster than building the solution with .dll.refresh files, it is also more useful, as I don't have to open those projects, make sure that the proper configuration is selected, and build them.

Here's the basic design of the batch file:

@echo off
pushd (C# project directory)
msbuild /property:Configuration=Debug
xcopy /d /y bin\Debug\* (Web project directory)\Bin
popd
pushd (another C# project directory)
msbuild /property:Configuration=Debug
xcopy /d /y bin\Debug\* (Web project directory)\Bin
popd

I have a similar batch file that builds and deploys the Release binaries, which is another advantage over Visual Web Developer, since it doesn't directly support Debug and Release configurations.

I'm sure that Visual Studio 2005 solves all of these problems and then some, but I'm willing to jump through a few hoops to use the free Express editions...

Update: Used xcopy /d so that it doesn't overwrite the destination file if it hasn't changed.

2/14/2006 9:16:05 AM (Pacific Standard Time, UTC-08:00) | Comments [2] | Tools#
Tuesday, November 29, 2005

I hope this mini-trend of giving free software to .NET bloggers continues!

I've got a number of ideas for Windows Forms applications; if any of them ever come to fruition, I may want to leverage third-party control libraries, so I am happy to mention the release of the Krypton Toolkit in exchange for a free copy of DotNetMagic. The Krypton Toolkit provides user interface controls for Windows Forms, is targeted at Visual Studio 2005 and .NET Framework 2.0, and is free for commercial use.

11/29/2005 3:05:19 PM (Pacific Standard Time, UTC-08:00) | Comments [0] | Tools#
Tuesday, November 01, 2005

I’ve often thought that it would be nice to have an easily deployed database engine for a client-based application, but most database engines are difficult to deploy, have a large footprint, and use many files for a single database. One database engine that always looked like it had promise was VistaDB, so I couldn’t pass up this offer to get a free copy! If you’re interested, read the advertising blurb below…

VistaDB 2.1 database for .NET has been released
This 2.1 update includes over 60 improvements, including new support for .NET 2.0 and Visual Studio .NET 2005. VistaDB is a small-footprint, embedded SQL database alternative to Jet/Access, MSDE and SQL Server Express 2005 that enables developers to build .NET 1.1 and .NET 2.0 applications. Features SQL-92 support, small 500KB embedded footprint, free 2-User VistaDB Server for remote TCP/IP data access, royalty free distribution for both embedded and server, Copy 'n Go! deployment, managed ADO.NET Provider, data management and data migration tools. Free trial is available for download.

11/1/2005 12:00:09 PM (Pacific Daylight Time, UTC-07:00) | Comments [1] | Tools#
Thursday, August 18, 2005

It is frequently useful to attach a debugger to a running process. For one thing, our application can take a while to launch under the debugger, so it's nice to attach the debugger after it is fully initialized. Unfortunately, Visual Studio .NET 2003 occasionally crashes when I display the Processes dialog (via Debug > Processes or Tools > Debug Processes). I hate the prospect of losing work, so I've started attaching processes to the debugger with the Task Manager. Simply open the Processes pane of the Task Manager, right-click on the process you want to debug, and choose Debug. Same effect, no crash.

8/18/2005 11:26:54 AM (Pacific Daylight Time, UTC-07:00) | Comments [4] | Tools#
Monday, August 23, 2004

I've been a fairly faithful user of SharpReader ever since I started watching RSS feeds, but I have heard enough good things about RSS Bandit that I try it out now and again.

I’ve been running them both for a few days now. Here's why I'd like to switch to RSS Bandit:

  • it doesn’t crash when it is left open while the computer is shutting down
  • it exits when closed and hides when minimized
  • it supports custom output styles – in fact, I created my own that mimics the look of SharpReader
  • it remembers my preferred sort order (oldest to newest)
  • it doesn’t give false taskbar notifications of new unread items like SharpReader does
  • it doesn’t mistakenly mark items as changed as often as SharpReader does

I’m going to stick with SharpReader, though. Here’s why I’m uninstalling RSS Bandit (again):

  • it fails to download feeds more often than SharpReader
  • once a feed fails, that feed doesn't succeed again without a refresh or a restart
  • it doesn't show the Author field in the list view
  • double-clicking on an item doesn’t jump to its link
  • it's harder to change feed properties, particularly for multiple feeds
  • Alt+Space doesn’t open the System menu
  • it doesn't preserve the look of the category tree between sessions
  • it doesn’t refresh feeds right away on startup after it’s been closed for a while; the “force download feeds on startup” option seems like overkill
  • I’m not fond of the happy face icon
  • hovering over the taskbar notification icon should show the application name in addition to any other useful information

Some of those are nits, but they all add up to a less enjoyable experience for me. If it keeps improving, I'm sure I'll give it another chance down the road...

8/23/2004 9:16:14 AM (Pacific Daylight Time, UTC-07:00) | Comments [3] | Tools#
Monday, July 19, 2004

If you’re looking for a simple, cool, free photo manager, go download Picasa! I’ve been using Windows Explorer to manage my photos, so it’s a great improvement for me. Why? Well:

  • It has a great interface for moving photos from a Memory Stick into the My Pictures folder.
  • It automatically finds the pictures on my hard drive and displays thumbnails for all of them in a smooth-scrolling view.
  • You can use really small thumbnails to see hundreds of images at a time, or really big thumbnails to see good detail when looking for a particular picture.
  • It’s easy (and fast!) to rotate photos.
  • It’s easy to remove red-eye from a photo, and it does a very good job.
  • It has a great cropping tool. In fact, it has a feature I’ve been looking for – it can keep the cropping rectangle at a 3 x 5 ratio to ensure my prints don’t get clipped!
  • It has nice slideshow support.
  • It supports videos as well as photos.
  • It has good keyboard shortcuts for most operations.
  • It does everything very quickly, even on my slow machine at home.

It has a number of other cool features that I won’t use as often, including an interactive timeline view. I’m sure it doesn’t hold a candle to more powerful photo managers, but considering the price (free!), I’m really enjoying Picasa.

(Thanks to Scott Watermasysk for the link!)

7/19/2004 2:47:31 PM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Tools#
Friday, July 16, 2004

One of my favorite features in Visual Studio is IntelliSense auto-completion. That is, if I type “XmlEl” and hit Ctrl+Space, it will fill in the rest for me – “ement”. If I haven't typed enough characters – “XmlE” could be completed with “lement”, “ntity”, etc. – it gives me a little list of identifiers to choose from, and selects the most likely candidate as the default.

Microsoft Word needs this feature. Just a few moments ago, I typed “Indispe” ... and wasn't sure how to spell the rest. I can guess, and then look for the red wavy underline, of course, but wouldn't it be better if I could hit Ctrl+Space, and voilà! It correctly completes the word with “nsable”. Now that would be cool.

7/16/2004 3:11:54 PM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Tools#
Wednesday, July 07, 2004

“Ever notice when you click the +/- icon next to a folder (or double click on a Solution/Project file), it collapses that particular node in the Solution Explorer... but not any of the sub-nodes? If you have a really large project with a deep hierarchy, wouldn't it be nice to be able to recursively close all of the items beneath a current node so when you expand it again it doesn't re-expand everything below it? Now you can.”

Excellent. (The other features of Solvent are cool, too.)

7/7/2004 2:08:27 PM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Tools#
Friday, September 19, 2003

I've always tried to keep close tabs on the files and programs that I've got on my computer (a product of my personality, perhaps), in part because hard drives tend to fill up eventually. I'm not as attentive as I used to be, with hard drive space being so cheap these days, but I've always looked for cool tools that help manage hard drive space, and have occasionally written my own rudimentary "disk usage" tools.

Thanks to Dotnet Boy's list of free utilities (inspired by Scott Henselman's list of Power Tools, which is also great), I found FolderSizes, a great free application that makes it easy to get a good overall picture of your hard drive usage, especially if you're looking for the biggest space-wasters. Also, thanks to Steve Hiner's comment, I've played with SequoiaView (also free), which gives an interesting graphical view of the entire contents of your hard drive. Cool stuff!

Update: FolderSizes is no longer free.

9/19/2003 11:19:15 AM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Tools#
Wednesday, September 10, 2003

As you already know, the XP Command Prompt is far more powerful than the command prompts of old. I've recently experienced the small joy of using the ampersand to separate multiple commands on one command line, e.g.

cd ..\project3 & build

Be sure to surf a bit from the link above for any command prompt tricks you may have missed.

9/10/2003 4:29:16 PM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Tools#
Tuesday, August 26, 2003

Did I mention that VSS should support Check Out without a Get? Of course I did. Occasionally I wonder if my daily habit of doing a full recursive Get in the morning before I open and build our main project is really a good use of my time. So I don't do it. That's usually when I get burned. Ah well.

8/26/2003 10:43:47 AM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Tools#
Thursday, August 14, 2003

I was getting the strangest dialog box when trying to Save As... an .htc file in VS.NET -- something to do with checking out a file modified in memory...? Anyway, I finally realized that I was editing the .htc file with the frightening VS.NET HTML/XML editor! <gasp>

So I quickly changed the default editor for .htc files to the Source Code Editor with Open With... in the Solution Explorer, as I'd already done for .html, .xml, and .js files.

One of these days I'm going to post all of my favorite settings for all of my favorite software programs. Really!

8/14/2003 10:10:05 AM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Tools#

I was just reflecting on Visual SourceSafe and I think I realized something -- you shouldn't have to get the latest version of a file to check it out. When you check the file in, it merges with the latest version without changing your local copy. This is similar to the "always checked out" model of CVS but doesn't eliminate the usefulness of "seeing who has what checked out".

Anyway, this would get rid of the annoying problem we have now, which is making sure that you notice if you end up with the latest version when you check out a file. Because if you did end up with the latest version, it probably depends on other code changes that you don't have because you haven't done a full Get. Not to mention the headaches we get from VS.NET when we get the latest version of one or more project files, particularly if you're trying to modify one of them...

I wonder if SourceGear Vault allows a check out without an implicit Get...

8/14/2003 9:52:59 AM (Pacific Daylight Time, UTC-07:00) | Comments [0] | Tools#
Search
Archive
Links
Categories
Administration
Blogroll