Skip to the content Back to Top

My new laptop should arrive any day now (yay! It just came!), so in preparation for setting it all up again, here's my list of everything I'll put on it (in the spirit of Scott Hanselman's excellent "Ultimate Developer and Power Users Tool List for Windows"):

Standard Fare and Utilities

  • Windows Vista Ultimate (and soon Windows 7)
    I'd put the Beta on now, but that means a repave would come too soon.
  • Executor
    I bind it to Win-A and instantly have the best application launcher out there for Windows. Almost as pretty as Launchy and Enso (well, not quite, but we can't be too picky) and even more functional than SlickRun. After first trying it, it promptly became my launcher of choice; it's ridiculous how much you can do with it.
  • Ultramon
    Absolutely necessary when running multi-monitors (latest beta works without issues). DisplayFusion looks good as well so I'm actually going to try it out as it's the first legitimate competitor I've seen for Ultramon in all the years I've used it.
  • Roboform
    Phenomenal way to securely store and use login credentials and software codes, and autofill registration and checkout forms (including credit card information). Expensive but worth it. I've also been trying out LastPass on my netbook. RoboForm's usability is a tiny bit better (for i.e. keyboard shortcuts are better, especially for initial login) and it is more secure because data is only stored locally (which I use Windows Live Sync - see below - to synchronize between multiple machines), but LastPass has the huge convenience of having a central repository so that data is instantly synced between all machines (including the ability to get access from other machines, including public ones where you can utilize one time login credentials for greater security). Oh, and LastPass if free. Regardless, use something and create strong passwords.
  • ClipX
    Tiny clipboard history manager. I've been using the beta x86 version with very few glitches for a long time now. Will be using the x64 beta on the new machine.
  • Windows Live Sync (aka FolderShare)
    Great way to securely sync files between your different machines, and if wanted, between different users. I use it to sync RoboForm data, YNAB data, and more.
  • SnagIt
    Screen capturing software. When Peter first told me how much he loved it, I guffawed and told him it was screen capturing software! How could it be worth $50 USD?!? (even more in beaver bucks). But I tried out the trial and...well, me of so little faith: Peter was right. Phenomenal piece of software that I promptly purchased (do a google for a coupon codes for a price reduction).
  • Notepad++
  • Microsoft Office 2007
  • QuickBooks
    Someday there will be a replacement for this software that seems stuck back in the 90's, but until there is, couldn't live without it even though it regularly contributes to a receding hair line (I am so thankful I am not a bookkeeper and I raise my glass to the wonderful bookkeepers in my life: Pat and Maxine).
  • Mozy
    Please backup, backup often, and backup off-site. Mozy makes the process easier, although I think I'll be trying out IDrive this time around because of many additional features including its ability to synchronize multiple machines to local media (external USB drive) which then syncs up online. I've got ~90GB of data so I'm hoping the synchronization process is a little faster with IDrive (Mozy churns away "replicating splines" when determining what of my local 90GB of data has changed/been added - apparently that's some sci-fi reference). Regardless, both are dirt cheap for personal home use (unlimited for $4.95/month with yearly discounts available). Eventually I'll get a Windows Home Server configured too, which will be even better!
  • Windows Live Messenger (aka MSN Messenger)
    Someday I'll find an alternative that works well (have tried Trillian and Pidgin, but both have bigger shortcomings either in usability or stability). At least there's a registry hack you can do to remove the ads in Windows Live Messenger (no, I am still not interested in "Singles in Surrey").
  • 7-zip
    Great file compression (that can also read and write to RAR and ZIP).
  • SharpKeys
    A registry hack that is used to make certain keys on a keyboard act like other keys. I use this to map unused keys on my Apple keyboard to something more useful:
    • f13: Print Screen (used all the time with SnagIt)
    • f14: Insert
    • f16: Mute
    • f17: Volume Down
    • f18: Volume Up
    • f19: Calculator
    • Right-Ctrl: Application Menu
  • Switcher
    What Vista should have done for its Alt-Tab implementation.
  • YNAB Pro
    Budgeting software that just works.
  • Skype
  • Pantone Huey PRO
  • µTorrent
    BitTorrent client.
  • ted
    Torrent Episode Downloader with a great name ;-)
  • Startup Delayer
  • Windows Live Writer
  • ffdshow and K-Lite Codec Pack
    Just use this codec pack to cover pretty much any codec you need to view or listen to digital media.
  • Plaxo
    Used to sync contacts and calendar with all other machines for accounts other than Exchange.
  • Acronis TrueImage

Development

  • Microsoft Visual Studio 2008 Professional
  • Resharper
    Friends don't let friends develop without it.
  • Subversion, TortoiseSVN, and VisualSVN
    I'd like to say something about this combo, but words fail me.
  • GhostDoc
    Free add-in for visual Studio that automatically generates XML documentation comments for C#.
  • VMWare Player/VMWare Workstation
    The former is free, and the latter is expensive. The latter also makes like easier, but you can hack things (legally of course) to get the player to do what you need it to. There wouldn't be a dilemma except for the fact that the player is prettier and has Unity (where the guest application windows look just like host application windows, but with color-coded borders - much easier to tab through applications while developing)! Unity is in Beta for Windows right now, so once it's out of beta, I guess I'll go for less pretty with more functionality (and the relatively hefty price tag).
  • Gallio
  • TestDriven.NET
  • ANTS Profiler
  • Microsoft Virtual PC
  • .NET Reflector
  • Adobe Creative Suite Design Premium
  • AutoHotKey
  • NH Prof
    If you do anything at all with NHibernate, just buy this (beta promotional pricing still in affect).
  • Beyond Compare 3
    Another "just buy it" bit of software. I got a discount coupon through DonationCoder.com that is no longer there, but hopefully will return.
  • RegexBuddy
    If you do anything with Regex, have mercy on yourself and buy this. Worth every penny.
  • SQL Server
  • Oracle .NET Client
  • And more of the usual...

Firefox and Add-Ons

Deserves a section all to itself.

Further to my post called Webpublisher on Windows Vista, here is how to install Inmagic Webpublisher on IIS 7 in a 64-bit environment such as Windows Vista x64 or Windows Server 2008 x64.

These instructions are valid for DB/Text Webpublisher as well as CS/Webpublisher. Steps 1 - 5 are valid for 32-bit IIS 7 as well.

1. Ensure IIS is enabled

This screenshot shows which IIS features are enabled on my Vista x64 machine. The highlighted one is particularly important (IIS metabase and IIS 6 configuration compatibility).

iis7_vista_features_on

2. Install Inmagic Webpublisher

Follow the usual Inmagic install instructions.

3. Enable ISAPI-dll handler mapping on dbtw-wpd or ics-wpd virtual directory

Open the IIS Manager.

Open the Handler Mappings for the dbtw-wpd or ics-wpd virtual directory. (Figure below shows dbtw-wpd.)

dbtw-wpd

The ISAPI-dll handler is disabled by default.

isapi-dll_disabled

Enable the ISAPI-dll handler: right-click it, choose "Edit Feature Permissions", and check the "Execute" box. Click OK.

isapi-dll_enabled

4. Set the Webpublisher dll as an allowed restriction

In the IIS Manager, click on the machine root - this is the top level of the tree in the left column, which shows the machine name. You should see a number of machine-level features, including "ISAPI and CGI Restrictions", as below. If you do not see "ISAPI and CGI Restrictions", you have not properly enabled IIS settings in step 1.

machine_root

Open ISAPI and CGI Restrictions.

You may see Inmagic Webpublisher as an allowed restriction already. The path will point to the install location of dbtwpub.dll or icswppro.dll, depending on which version of Webpublisher you installed.

If you do not see Inmagic Webpublisher as an allowed restriction, you must add it. (Figure below shows DB/Text Webpublisher.)

add_restriction

5. Create an application pool for Webpublisher

Open Application Pools from the IIS Manager.

Add a new application pool to be used with Webpublisher, called "WebpublisherAppPool".

wpp_apppool

Go to the dbtw-wpd or ics-wpd virtual directory and open its Advanced Settings. Set the Application Pool to the new WebpublisherAppPool just created.

6. Enable 32-bit applications on the Webpublisher application pool

Open Application Pools from the IIS Manager.

Right-click on WebpublisherAppPool and select Advanced Settings.

Set "Enable 32-Bit Applications" to true. Click OK.

apppool_enable32bit

7. Get a drink. You're done.

Whatever drink you like. I like red wine, or on a hot day, gin and tonic.

Some more explanation

Whereas in IIS 6 you could run worker processes in either 32-bit or 64-bit mode, but not both, IIS 7 can run 32-bit and 64-bit worker processes simultaneously. And, as the above instructions make implicitly clear, you can set this behaviour on individual application pools.

 

Quoting some comments in Jeff Atwood's "Revinventing the Clipboard" blog post:

What I dislike the most, about the clipboard, is the really bad behaviour in VS. Say you cut something, then you try to past it elsewhere but you hit the C instead of the V (without any text selected) and bravo, you've lost your clipboard content! You now have to undo 3 or 4 times to re-start the manipulation. This is anti-productive at the most.

Fabian on January 22, 2008 03:01 AM

Fabian: That one gets me too, but the good news is that you can turn off that behaviour in Visual Studio.

Go to Tools->Options...->Text Editor->All Languages->General and untick "Apply Cut Copy commands to blank lines when there is no selection"

(I guess this goes towards what Jeff was saying about software having reasonable defaults).

GrahamStw on January 22, 2008 03:10 AM

It's one of those things that I never remember how to reset so here it is. Glory Hallelujah.

And btw, using ClipX and loving it (and yes, the beta seems to work fine in Vista).

A couple months back when I first switched my primary developer machine to Vista, I wanted to connect to a SQL Server 2000 instance on my WinXP Pro virtual machine (Virtual PC 2007). It took a bit of digging to figure out how to a) even do it with WinXP to WinXP and then b) do it with Vista as the host OS.

Typically, it's an easy thing to set up your virtual machines to talk to each other, and also talk to the host machine, but to get the host machine to be able to talk to the virtual we need to go a little further by configuring a Microsoft Loopback Adapter. Using the Microsoft Loopback Adapter opens our Virtual Machine only to the host. To do this in Vista, do the following:

  1. Install a Loopback Adapter
    1. Open Control Panel
    2. Vista caveat: switch to Classic View to "Add Hardware"
    3. In the "Welcome to the Add Hardware Wizard", click Next.
    4. Select "Install the hardware that I manually select from a list (Advanced)" and click Next.
    5. Scroll down and select "Network adapters" and click Next.
    6. Select under Manufacturer "Microsoft" and then under Network Adapter "Microsoft Loopback Adapter" and click Next.
    7. Click Next and Finish.
  2. You can manually configure your IP Address for your adapter, but you can just let the loopback adapter get an auto configuration IP address from your router's DHCP.
  3. In your Virtual PC Console, choose settings for the applicable virtual machine, and then choose "Networking".
  4. Select the now available "Microsoft Loopback Adapter" (note that your virtual machine will need to be off, not in a saved state, in order to make this change).
  5. Turn on your virtual machine and once it's booted up, verify that the Microsoft Loopback Adapter has installed its routing in your host PC's route table by going to a command prompt in the virtual machine and typing "route print".
  6. In the case of a virtual machine running WinXP, make sure you've allowed file and print sharing in the virtual machine's firewall settings.
  7. Open a command prompt and run ipconfig to find out what your virtual machine's IP address is (note that as we have not configured the Microsoft Loopback Adapter to allow the virtual machine to connect to the outside network, your task bar network icon will warn you that you have limited connectivity – thus the need to run ipconfig from a command line to see if the virtual machine even has an IP address assigned).
  8. Check whether your host machine can now communicate with the client virtual machine by pinging it's IP address by opening a command prompt in Vista and typing "ping 169.254.166.12" where you enter your applicable IP address.
    c:\>ping 169.254.166.12
    Pinging 169.254.166.12 with 32 bytes of data:
    Reply from 169.254.166.12: bytes=32 time=1ms TTL=128
    Reply from 169.254.166.12: bytes=32 time<1ms TTL=128
    Reply from 169.254.166.12: bytes=32 time<1ms TTL=128
    Reply from 169.254.166.12: bytes=32 time<1ms TTL=128
    Ping statistics for 169.254.166.12:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 1ms, Average = 0ms
  9. And voila, you've now successfully networked your host machine to talk with your client virtual machine.

If you still want internet access for your client virtual machine, do the following:

  1. Open your Network and Sharing Center
  2. Click Manage network connections in the left hand navigation bar
  3. Right-click the loopback connection and select properties.
  4. In the sharing tab, enable “Allow other network users to connect through this computer's Internet connection.

This "should" work, but I initially encountered "an error occurred while Internet Connection Sharing was being enabled." However, it resolved soon afterwards all by itself.

The article that was the biggest help in getting the above in place was http://www.governmentsecurity.org/archive/t10129.html

UPDATE: Change to post title.

Many of the ASP.NET web applications we build use SMTP to send email for one reason or another. Order confirmations, mostly, or selected search results.

Testing code that sends email has always been a pain. We have servers with SMTP service that I could point at from my development workstation, but their various restrictions have been, well, restricting. Nor did I ever like the idea of letting SMTP run openly on my local machine in XP. Not that I had much choice, because a) I had to ensure that the code I wrote followed through with the email send, and b) I wanted to view the email as email to ensure it looked the way it ought.

So along comes Vista with IIS 7. And SMTP is not included. It is included with Longhorn Server 2008 with IIS 7 (apparently), but not Vista. I now no longer have the choice of running SMTP locally. Disaster!

Well, as it happens, I'm fine. I'm better than fine, because I stumbled across a better solution all around. I use a pickup directory location.

Using a pickup directory location lets me specify a folder on my local machine for the email generated by System.Net.Mail. It's not sent anywhere, it's just dumped in that location as a *.eml file which can be viewed by Vista's built-in Windows Mail.

The best thing is, I don't have to change my code in any way to make this happen. I only need to add a snippet to the web.config as follows, identifying the (absolute) directory for pickup:

<system.net>
  <mailSettings>
    <smtp deliveryMethod="SpecifiedPickupDirectory">
      <specifiedPickupDirectory 
pickupDirectoryLocation="v:\inetpub\mailroot\pickup"/>
    </smtp>
  </mailSettings>
</system.net>

I did have to make sure that the ASP.NET worker account, NETWORK SERVICE, had read/write access to that location.
And here's the result. One double-click and I get to see it as it would appear in my inbox:
CropperCapture[17]
Probably other developers are like, well *duh*, but this was a new and very pleasant discovery for me.

Categories

Let Us Help You!

We're Librarians - We Love to Help People