My Software Tools List: What I Put On My Machine

by Ted Jardine Tuesday, March 10, 2009 3:32 PM

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.

Inmagic DB/TextWorks and Vista Virtualization

by Denise Bonin Monday, July 07, 2008 5:10 PM

This post is a follow-up to Peter's post Inmagic WebPublisher PRO and Vista Virtualization, but specifically pertaining to DB/TextWorks. 

I recently had a client who created and added a bunch of records to a new textbase located in a folder under Program Files on her Vista-installed laptop.  When it came time to move the textbase off her laptop onto another computer she zipped up all the textbase files, copied the zip file to her thumb drive and prepared to unzip the files onto the other machine.  With files unzipped on the other machine (an older XP-installed desktop computer), she enthusiastically went to show off her newly created and populated textbase. 

Much to her surprise DB/TextWorks produced a disheartening message indicating that the textbase was empty.  How could this be, she had 170 records in the textbase when it was on her laptop and she had copied every textbase file from the correct folder on her laptop.  I got involved and we looked this way and that way - on both machines - and there was nothing that we could see that could indicate that the textbase could possibly be empty (the .btx, .dbt and .occ files were rather large).

The ah ha moment came when Kathy suggested that Peter had posted something about this on our Blog - back in March 2008 (see above link).  I had skipped over that posting because it had referenced WebPublisher, but in fact it told me exactly what I needed to know.  To change the text and code slightly from what Peter posted:

For instance, say DB/TextWorks indicates that a textbase is located at:

%Program Files%\Inmagic\Textbases

Vista detects that DB/TextWorks does not have permission to save to that location and copies the file to:

%Users%\<your account>\AppData\Local\VirtualStore\Program Files\Inmagic\Textbases

Subsequent read/write operations access the VirtualStore version of the file, even though DB/TextWorks will still think it is accessing the Program Files directory. Poor deluded DB/TextWorks.

It took about 1 minute to find the database files in the VirtualStore location - thank you Peter! - however, there was more, or in this case less, to come!  Two of the essential files were missing.  They were the .tba file and the .sdo file.  Why those two? Who knows?  However, combining the new found files (.acf, .btx, .dbo, .dbr, .ixl, .log, and .occ)  from the VirtualStore location with the .tba and the .sdo file from the presumed location – under Program files, allowed us to complete the textbase and transfer it to another location. 

The lesson learned here:

  • On a Vista machine DO NOT install textbases under Program files. 

And a Note: 

  • this problem only occurs with Vista's UAC (user account control) turned on.

When distributed transactions go boing: Get Vista, XP, and SQL Server 2000 talking to each other

by Ted Jardine Wednesday, May 14, 2008 4:27 PM

From XP SP2 and on, all network communication coming out or getting to DTC (Distributed Transaction Coordinator) is disabled by default. For example, if a COM+ object attempts to update a SQL database on a remote computer using a DTC transaction, the transaction fails. Likewise, if your computer hosts a SQL database that components from remote computers try to access using a DTC transaction, their transactions fail. With Vista, it gets even more tightened down (see "Using MSDTC between Vista clients and Windows 2000 servers" for details).

On my development machine, I'm running Vista. As we still do the bulk of our work hooking into SQL Server 2000, I need to run that in a virtual machine; I haven't bothered making all these part of the same domain. Therefore, attempting to do some transactions (via System.Transaction.TransactionScope) makes everything go bonk if you're dealing with a setup like mine:

System.Transactions.TransactionException: The transaction has already been implicitly or explicitly committed or aborted.

And/Or:

The partner transaction manager has disabled its support for remote/network transactions.

And/Or:

MSDTC on server 'servername' is unavailable.

So here's how to make them all play nicely together so you can get back to getting productive work done:

(Caveat: this is for a development environment not production. Obviously, for production environments, you're going to have machines on the same domain, no sign of XP--or Vista for that matter--and can therefore tighten security up quite a bit...make that should tighten security up quite a lot)

  1. Enable MSDTC on Vista
    1. Run dcomcnfg (Component Services)
    2. Expand the "Component Services" node, then the "My Computer" node, then the "Distributed Transaction Coordinator" node
    3. Right-click on the "Local DTC" node and select "Properties"
    4. On the "Local DTC Properties", select the "Security" tab
    5. Select Network DTC Access, Allow Inbound, Allow Outbound, No Authentication Required, and Enable XA Transaction
      Note: reduced authentication security required because the machines are not on the same domain (in a production environment, they will be)
    6. Enable service auto start if you so wish:
      1. Run dcomcnfg again if necessary
      2. Locate Distributed Transaction Coordinator and right-click and select "Properties"
      3. In "General" tab, set startup type to "Automatic"
  2. Enable MSDTC on XP virtual machine
    1. Run dcomcnfg (Component Services)
    2. Expand the “Component Services” node, then the "My Computer" node
    3. Right-click on "My Computer" and select "Properties"
    4. Select "MSDTC" tab
    5. Click "Security Configuration"
    6. Check/Select "Network DTC Access", "Allow Remote Clients", "Allow Inbound", "Allow Outbound", "No Authentication Required", and "Enable XA Transactions"
    7. Okay your way out after the MSDTC service automatically restarts
    8. Enable service auto start if you so wish:
      1. Open SQL Server Service Manager (SQL Server 2000)
      2. Select Distributed Transaction Coordinator and check "Auto-start service when OS starts."
  3. Firewall
    1. On both machines you must add msdtc.exe to your list of exceptions (C:\Windows\System32\msdtc.exe)
    2. You might need to also open port 135. I didn't, but I've heard you might.
  4. Run your transaction code to ensure that it works. If not, reboot both machines.

I got the above from a bunch of various blogs, forum posts, and KB articles. Two that were the most helpful were:

How to install Webpublisher on 64-bit IIS 7

by Peter Tyrrell Friday, May 02, 2008 5:37 PM

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.

 

Visual Studio and the non-sensical "Apply Cut Copy commands to blank lines where there is no selection" option.

by Ted Jardine Friday, February 01, 2008 11:26 PM

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).

Month List