About the author

Steven HarmanSteven Harman is a passionate developer who believes that writing great software isn't just a job, its a craft.

ASP.NET MVP

For recent posts and more about me, scroll to the bottom.

Subscribe

  • Subscribe to my feed. via RSS
  • Subscribe via email via email

Jobs

Badges

  • Subtext Project
  • Support Subtext
  • HiddenNetwork.com Banner

How-To-[Tech].

For those "Hey, how the hell do I...?" issues that we all deal with at one time or another, these are some Techy How-To Guides from the Hope This HelpsTM dept.

Hacking Windows Mobile 6.1 to Enable Tethering

One of the things I love about my Windows Mobile device, a Blackjack II running on the AT&T network, is being able to tether it to my laptop to get an internet connection when I’m in a pinch and can’t find a Wi-Fi signal. Windows Mobile 6.0 + a BJII used to require a non-trivial hack to get Internet Connection Sharing working - the largest part of which was actually installing ICS on the device. However, WM 6.1 includes ICS by default*, so I was hoping ICS would just work. But its not that easy Unfortunately, ICS doesn’t work right out of the...

Quick Tip: Clear You DNS Cache

Need to clear you machine’s DNS Cache? Running Microsoft Windows? It’s pretty simple and straight forward. Fire up a Command Prompt† Run the following command > ipconfig /flushdns You can also take a look at what’s in your DNS resolver cache with the following command > ipconfig /displaydns Why would you clear your cache? Most DNS clients will cache the results...

How-To: CTRL + ALT + DEL in Remote Desktop

I’m a big fan of Microsoft’s Remote Desktop - it’s built right into Windows and allows me to quickly and easily administer a remote box from the comfort of my own work station. I use it at my house to administer the headless servers on my home network, the Subtext build server, and the co-located VelocIT servers. Gotta' love that magic! Today a co-worker asked me how to send the infamous Control + Alt + Delete keystroke combination to a machine he was working on via RDP. This is a pretty common keystroke to use when trying administer windows... it...

Using Virtual PC with Multiple Monitors, Sort Of

I'm a huge fan of using multiple monitors and the productivity gains they bring. I'm also a big proponent of using Virtual Machines to isolate client projects... once you get over the initial work it takes to get your VM Image library going, the productivity gains are gi-normous! However, the lack of real multi-monitor support in Virtual PC (both 2004 and 2007) tends to limit the productivity gains you can squeeze out of your VMs. This is especially evident when using VMs as a development environment on a daily basis. I was hoping that Microsoft would address the issue and...

SQL Server Installation and MSDTC

While setting up a new VM for an upcoming project I ran into an issue while trying to install SQL Server 2005. During the step with the setup wizard checks all of the necessary components and system configuration settings on your machine it gave me a warning message about the COM Plus catalog Requirement. The message dialog had the following messages: COM Plus Catalog Requirement If SQL Server Setup fails, Setup will roll back the installation but my not remove all .manifest files. The workaround is to rename the files and then rerun Setup. For more information, see...

Avoiding the '401 Unauthorized' Error when Using the ReportViewer in Your Web Application

A couple of days ago I was using ASP.NET WebForms and the new ReportViewer control to put together a quick demo for rendering SQL Server Reporting Services (SSRS) reports right in your web application. If you're not familiar with the ReportViewer control, Thom Robbins put together a great screencast to introduce the ReportViewer control. How I used the control I was running the control in remote mode - meaning it pulls the reports down from a fully managed SSRS installation, and then renders them directly in the web browser - all from within my application. I was also using Windows Authentication because the client required it....

Cache Your Page File to Your... iPod Shuffle?

Not too long ago I was reading up on some of the cool new features Inside the Windows Kernel (part 2) and I got pretty excited about one new feature in particular - ReadyBoost. So when I upgraded to Vista (about a month ago now) one of the first things I tried was plugging an extra 1GB Flash drive into various USB ports - so I could use the drive to Speed up my system. Speed up my system? Apparently when you plug a new USB device into a PC running Vista there is a new option at the bottom of...

I'm all Zipped Up

Jeff Coding Horror Atwood recently posted an interesting and enlightening article about how he is reducing his site’s bandwidth usage. As Jeff hints, these changes were prompted by the high bandwidth demands of his recent Why Can’t Programmers... Program? post (a.k.a. - The FizzBuzz Test). At it’s peak that post kicked his bandwidth usage up to 9GB in a single day. In looking at his pretty bandwidth usage graph I also noticed his typical daily bandwidth is around 2.5GB. Now, I’m not nearly as popular a blogger as Mr. Horror, so I don’t expect that my daily bandwidth usage is...

VPN Connections and Default Gateways

So, you need to setup a VPN connection to your work/client/buddy's remote network. No problem, just use the Windows VPN client, fill in the remote VPN server IP address, your username and password... click Connect. And a few seconds later you're connected to the remote network and you can now access resources (servers, fileshares, etc...) on your work/client/buddy's network - and all traffic between your PC and the remote network is encrypted. Awesome! However, if you've ever dug into the Microsoft VPN client settings you might have noticed a little check box that says "Use default gateway on the remote network."...

CSS Friendly Control Adapters - Add 'em to Your Site

Recently I've been playing around with the new ASP.NET 2.0 CSS Friendly Control Adapters as I loath the bloated and overly complex table based markup that so many WebControls render by default. After building a test website using the Web Site template that is included with the adapter's v1.0 download I decided to incorporate them into a project I'm currently work on. There is a good white paper that walks you thru integrating the adapters into your existing web site that I followed step-by-step... almost. First off, my site was using the Web Application Project model, not the Web Site Project...

Migrating a VS 2003 Web Project to VS 2005 Web Application Project - Gotcha!

I recently tasked myself with upgrading a (work) project from the Microsoft .NET Framework version 1.1 to the much improved 2.0 version. One of the biggest (and best) side effects of  upgrading to the 2.0 framework is getting to develop the project in the Visual Studio 2005 IDE - which is a huge improvement over the 2003 edition.  The project I was upgrading was known as a Web Project (in VS 2003 terms) and I wanted to upgrade it to a VS 2005 Web Application Project. Prior to VS 2005 SP1 the default web project model was the Web Site Project and using a...

Installing VS 2005 Service Pack 1 - It went well!

Despite the horror stories I'd read/heard regarding the upgrade to Visual Studio 2005 SP1, last night I decided to just bite the bullet and go for it. Had I gone delirious from too many hours of scanning the blogosphere in search of the ultimate How-To guide for upgrading? Was I being naive... or perhaps suffering from delusions of grandeur? Who knows. But once I decided that I was going to do the upgrade, I knew there was no turning back. How I did it As I said, I spent several hours scouring the web for all of the tips, tricks, and gottcha's...

Get Around Database Locks with the NOLOCK Keyword

Tonight I was trying to debug a couple of failing unit tests for Subtext and I came across a common (though not exactly obvious) issue. These particular tests required access to a database, so I was using MBUnit's Rollback attribute to make sure that any changes made during execution of the test were rolled back when the test was finished. Essentially all the Rollback attribute is doing is wrapping the entire test in a SQL Transaction - smart! So what's wrong? As I was debugging one of the failing tests I realized that I was not getting the expected...

Skype & Logitech QuickCam, They Don't Play Nice!

My daily commute to work is roughly 2,500 miles... so you can just image how much time I spend sitting in traffic! OK, seriously... I really do work that far from our official HQ, but that's because our entire company is very technology forward. In fact, I might even go so far as to say that we make up the quintessential Virtual Office. One of the key tools that I/we use on a daily basis to talk with co-workers (and friends in general) is Skype. One of the cool features of Skype is that it lets you start conference calls with...

SQL Server 2005 Management Studio - Clear Recent Servers List.

If you've used the Microsoft SQL Server 2005 Management Studio (SSMS) very much you probably make heavy use of the "Server name" drop down list to quickly connect to SQL Servers that you use on a regular basis. I use that sweet drop down all the time - but then on any given day I log into up to half a dozen (or more) SQL Servers. Trying to keep all of those server addresses, usernames, and passwords is a job in it's own right! Microsoft knows this, and that's why SSMS will remember all of your past connection settings. As you can...

Mouse Over Row Highlighting - Redux

Some Background A while ago, a smart guy that I know wrote a little post entitled "Adding Mouse Over Row Highlighting To Tables". In his post, Haacked showed us how to use Markup Based JavaScript Effect Libraries (via Jon Galloway) to add a little UI Goodness to your typically boring HTML Tables. I recently decided to use this nice effect in a project for work, and ended up building it out to be more robust and play nice with others (other CSS styles, that is). So, in the spirit of the OSS movement, I thought I would share my new...

The 'ATLAS' Framework - Callback Handler JavaScript Bug

First, an introduction. "ATLAS" is a free (as in beer) framework from Microsoft aimed at building rich, responsive UIs by utilizing AJAX techniques on the web. This framework is different from other AJAX libraries/frameworks as it is built for, and fully integrates with the ASP.NET 2.0 server-based development framework. This tight integration makes adding AJAX-ish functionality to your existing ASP.NET applications quick and (relatively) painless. My First Take I recently decided to look into using ATLAS as the AJAX Framework of choice for the Subtext project. After running through the step-by-step installation instructions, and reading a few quick...

ReSharper - Show Type Hierarchy

I realize that this post may make it seem like I'm playing a game of Keeping-Up-with-the-Jones', but I promise it only seems that way. In truth the explanation is that great minds think alike. Just kidding... half kidding anyhow. OK, so I do have a real bit of news (at least to me) to report. First I must admit that I am a slave to keyboard shortcuts - especially when combined with the ReSharper Visual Studio Add-in - so this news is probably only a big deal to me. But that's why this is MY blog, and not yours, so deal...

Another Bulletproof SQL Script Using INFORMATION_SCHEMA Views

As I'm sure many of you know, peer pressure can be a very powerful motivator... and I am not immune to such pressure. So, hot on the heels of Phil and Jon's posts on the magic voodoo that can be accomplished with the INFORMATION_SCHEMA Views, I felt obligated to add my own small bit of wisdom to the fray. In reading through Phil's article I noticed he didn't mention anything in particular about the creating, modifying, and/or dropping of Stored Procedures when working with a common schema among a development team. This is one thing we often have to deal with...

Custom Output Caching in ASP.NET

When building a web application, one of the most important aspects of the its usability is performance. To be more exact, how quickly the app responds to and process requests for information. One of the best ways to help improve your app's performance is by caching some of the data the server/app needs to render the requested resource [in this a web page]. For a quick-and-dirty intro to what caching is all about, check out this Wikipedia entry. Caching with ASP.NET The ASP.NET framework provides three types of caching for web-based applications: Page Level Caching (called Output Caching) Page Fragment Caching (often called Partial-Page...

[How-To] Override equals() and hashCode()... Part 2.

In Part 1 of this series we discussed how to override the equals method for any class the extends from java.lang.Object, why we would want to do so, and a few pitfalls of doing this. In this post we will look at how and why you must also override the hashCode method any time you override an object's equals' method. So why the hype about hashCode()? Good question. And I have an answer for you! If you take a look at the Java JDK documentation covering Object.equals you will see that one of the last things mentioned is the following: Note that it...

[How-To] Override equals() and hashCode()... Part 1.

Despite the enticing title of this two part series, I'm sure its content will prove to be quite obvious and mundane for many experienced Java and/or C# developers out there... but that doesn't make it any less important. This is a topic that I often find myself covering with our new entry level developers, and on occasion even with some more seasoned developers. Java & C#, huh? You probably noticed that I mentioned both Java and C# above... and I did so for good reason(s): this is applicable to both languages (and probably many other for that matter) We are a purely Java...

[How-To] Save Your Visual Studio 2003 Settings.

I've been reading through some documentation on a few of the new bells and whistles that Visual Studio 2005 has to offer, and I almost stood up in applause when I saw that importing and exporting of settings was finally going to be supported nativley in VS 2005. This developer has been wanting this for a long time.I (like most developers) like to have my IDE configured in a very particular way. I like certain windows in a specific locations, my fonts/hilighting to be just so, I have a crazy set of keyboard shortcuts, and a host of external...

Using SQL-DMO in your .NET app... mine's broken!

"SQL Distributed Management Objects (SQL-DMO) is a collection of objects encapsulating Microsoft® SQL Server™ database and replication management." Well pretty much sums it up for me!But in all honesty, SQL-DMO is a great tool that you can use for accessing and manipulating your SQL Server DB's from within your .NET applications. One such application [here comes the obligatory plug] is subText! We are currently using SQL-DMO in a custom database connection string builder that we use to get information about local (or network) SQL Servers while installing the subText platform. This allows us to have a quazi-wizard method for building...

Using MbUnit with COM+ 1.5 transactions... a big Gotcha!

Its been a while since I took my first steps into the wild world of software engineering, but only recently did I finally start down the Test Driven Development path. I have always been a proponent of Extreme Programming but seeing as the majority of my experience, prior to joining the subText Project Team, is from the corporate world, I'd never had the opportunity to truly implement many of the practices in my daily design/development work. I'm not saying that _the corporate world_ doesn't believe in EP and/or TDD, just that our shop doesn't follow these techniques. Anyhow, I finally...

CVS - Keeping your branch(es) in sync...

So, I've blogged before about how I'm now working with the subText Project and how we've been doing a lot of work under the hood in preparation for the version 1.0 release, and how one of the things that I've been working on is an Upgrade framework. We've recently decided that we need to refactor/redesign the Import process we originally had in mind, and now we're playing with two different approaches. One approach is to implement BlogML in subText. The other is to use the Provider Model to leverage an existing blog engine's (i.e.- dotText, dasBlog, etc...) and subText's built-in...

iPod Shuffle - What I Learned My First Day.

Well, I guess I can now consider myself to be in the ranks of the 'trendy'... I’ve finally got one of those sexy little music boxes (complete with white ear-buds) to call my own. Yes, that’s right, I’m now a proud owner of my very own iPod. My girlfriend got me the 1GB iPod Shuffle for my b-day, how sweet is that! I’ve been playing with her 4GB Mini since Santa brought it to her for Christmas and I love it. So, when I started playing around with my new Shuffle I just assumed it would work just like...

Debugging a .NET WebApp in VS.NET

I've blogged before about debugging dotText in Visual Studio, and recently I've gotten a few emails asking for some help with getting the VS.NET Debugger working. I know that it took some time to get the debugger working correctly with dotText, so I thought I'd put together a little How-To. I'm pretty sure that these instructions will work for most ASP.NET web applications, but I'll be using dotText v0.95 for this Guide. First, a few things that you'll need to have in order for this to work: Visual Studio .NET running on the local machine.The ASP.NET Web server running on...