INCLUDE_DATA

SQL Server 2008 SP1 Final Released?

April 1, 2009 No comments »

We’ve had an open support ticket with Microsoft due to some bugs we’re seeing with SQL Server Reporting Services 2008.  After Microsoft saying that the Update Pack 4 for SQL Server 2008 (released back in mid-March) would fix our problems, they sent us an email this week letting us know that the final version of Service Pack 1 for SQL Server 2008 would be released yesterday, March 31, 2009.

Unfortunately so far the links they’ve provided don’t go anywhere.  I’ll be checking these links through the day and the rest of the week and will post any further updates if I actually do find the “real” links.

According to our internal document, below is the information about SP1:

Microsoft SQL Server 2008 Service Pack 1

Release date: March 31, 2009

How to obtain

To obtain SQL Server 2008 SP1, visit the following Microsoft Web site:

http://www.microsoft.com/downloads/details.aspx?FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19

To obtain Microsoft SQL Server 2008 Feature Pack, April 2009, visit the following Microsoft Web site:

http://www.microsoft.com/downloads/details.aspx?FamilyID=b33d2c78-1059-4ce2-b80d-2343c099bcb4

To obtain Microsoft SQL Server 2008 Express Edition SP1, visit the following Microsoft Web site:

http://www.microsoft.com/downloads/details.aspx?FamilyID=01af61e6-2f63-4291-bcad-fd500f6027ff

It should be released on March 31, 2009.

Enabling and configuring HTTP compression in IIS6

February 5, 2009 1 comment »

As I mentioned in my last post, I had to figure out various ways to make my latest project’s ASP.NET application run faster.  One of the ways that I was able to get some “free” (i.e. no code changes) performance was to enable HTTP compression on our web server.

While not a new concept, for some reason I really hadn’t researched this too much before recently.  I knew that IIS 7, which we aren’t using,  had great support for this but didn’t think IIS 6 could support it.  After not much Googling I was all setup with HTTP compression and immediately noticed some great results (measurements were done with Fiddler, check it out if you want to debug your HTTP traffic).

This process I’m going to describe can easily be found out on the interwebs.  I figured I’d just streamline it a bit, provide some screen shots, and take out all the extra crap that I read to get my ASP.NET site screaming with HTTP compression.

You need to know is that these changes will require you to bounce (restart) IIS in order for them to take effect.  So, plan to do this during off hours or set them aside for your next regularly scheduled maintenance window.  Don’t just go and tweak all of this on your production web server in the middle of the day.  That would be bad!

The first thing you’ll want to do is open up the Internet Information Services (IIS) Manager on the target server.  Once in the management console you’ll want to right click on the name of your server and select All Tasks > Backup/Restore Configuration.  This will allow you to create a backup of everything in case you screw something up while trying to do all of this.

Metabase Backup

Luckily I didn’t need to use this but you can never be too careful.

After you save all that you will want to go back to that same server node and right click again.  This time you want too bring up the properties for the server instance.  From there, click the check box labeled Enabled Direct Metabase Edit.

Enable Metabase editing

Enabling this will allow us to later edit the metabase file (XML) directly.  This is much easier than trying to run some of the command line utilities that you can use that basically accomplish the same thing.  Some may disagree, but I feel like I can change a few values in an XML file way more quickly than trying to get the cryptic syntax right for various IIS script utilities.

Next, expand the local server node and right click on the Web Sites folder to bring up the properties.  From there select the Service tab and enable the Compress application files and Compress Static files check boxes.

Enable HTTP compression

Optionally, you can change the temporary directory where IIS will store the compressed files (default is %windir%\IIS Temporary Compressed Files) and put a size limitation on this folder.  I left both of these options with their default values.  I will probably revisit the size constraint option once our site is live and I can watch it for a while.  For now, unlimited is fine.

Next, go back up a level in the IIS management console and right click on Web Service Extensions and choose Create a new web service extension (as opposed to Web Sites, which we were just using).  Call the new extension HTTP Compression and point it to %windir%\system32\inetsrv\gzip.dll.  Finally, before you click OK be sure to check the Set status checkbox so that it is enabled (Allowed).  When it’s done you’ll see the new extension listed like this:

Enable gzip

The good news is that you have set all of the settings that you need to get HTTP compression working in its most basic form.  If you restart IIS (I always use the trusty iisreset command) you will be compressing your HTTP requests right now.  The bad news is that the most basic compression won’t do you much good if you’re serving up anything other than Classic ASP pages or static HTML files.  The fix for that is to edit that Metabase file that we talked about earlier.

I’m not 100% sure if you really need or want to restart IIS now or not.  To be safe I would probably go ahead and do it.  When I first went through this process I was pulling information from a few different resources so I did things in more of a step process.  You’re getting a step by step list of things that I found over the course of a few different days.  So with that said, go ahead and restart IIS to get the compression working.

Now the easy GUI part is over.  We’re going to open up the Metabase file and start to change some values in the XML.  What you need to do is open up the Metabase.xml file located at %windir%\system32\inetsrv\Metabase.xml in Notepad or some other text editor.  Once opened we want to find the sections that look like this (search for compression/deflate):

Original metabase values

We need to tell the types of extensions that each scheme is to support and compress. The static types need to go under the HcFileExtensions and the dynamic under HcScriptFileExtensions.  This needs to be set for both the gzip and deflate entries (so you’ll add each extension twice).  Like the samples show, you need to put each extension that you add on a new line.  Be sure to follow this carefully as I recall reading something that said IIS is very picky about this.  Here are the extensions that I added:

Static (HcFileExtensions):

  • htm (default)
  • html (default)
  • txt (default)
  • css
  • js

Dynamic (HcScriptFileExtensions):

  • asp (default)
  • dll (default)
  • exe (default)
  • aspx
  • asmx
  • ascx

Finally be sure to set the HcDynamicCompressionLevel values to 9.  The level of compression for dynamic content is set to 0 by default. This could be increased to a maximum of 10 depending on your available CPU resources. Everything I read says that generally setting it to 10 is bad; in most cases it will have a negative impact on your throughput. This is something you’d need to do some tests with to figure out what works best for you. It’s also worth noting that setting it to 0 does not mean no compression, it just is a lower compression (which also means it will be the fastest).  I went with 9 to be safe and it seems to have worked out fine for me.

The end result looks like this:

Updated metabase file

Do another reset of IIS and you’ll be compressing content used by most ASP.NET sites.  You can obviously add more extensions to some of the areas if needed.  There are a few things like axd fieles that I considered compressing but read that it could cause all kinds of problems.  I am going to continue to research this and may do some testing for myself to see if I can potentially add this file type in to my dynamic (script) extension list.

Final Notes:

You should know that the process I’ve described here enables compression for all of the sites on your server.  If you would like to target only one website or a smaller subset of sites you will need to make some additional changes in the Metabase file in other areas (i.e. IISCompressionSchemes node).  I didn’t do that so I am not going to go into detail about that.  If that’s something that you want to do it shouldn’t be too hard to find additional information on doing this.

Also, while I stated in the beginning that enabling this was a way to get a “free” performance gain, it’s obviously not free.  You’re going to pay the price somewhere.  In this case the server will need to do more processing/work now to compress these files before they’re sent down the wire to your users.  Based on what I’ve read and what I’ve seen from my testing, IIS 6 is pretty darn efficient with this and as long as your CPU load is under 80% you should be fine to enable this.  That obviously will need to be a decision that you make based on the amount of traffic your site gets, the hardware your server has, etc.

Ways to optimize your ASP.NET applications

February 2, 2009 1 comment »

I’ve spent quite a bit of time recently optimizing our ASP.NET application to help improve performance.  After spending time analyzing the code and the database for inefficiencies, it was clear that something needed to be done to minimize the data (reduce the request size) that was being delivered to each user for each page request.

After lots of reading and testing, I ended up reducing the size of most of our page requests by as much as 95% in some instances. In the next few posts I will go over, in detail, how you can use the following steps to optimize your ASP.NET (and non-ASP.NET) web applications with only a little bit of work:

  • Enabling and configuring HTTP compression in IIS6
  • Enabling content expiration for static content (graphics, css files, JavaScript files, etc) in IIS6
  • Changing your application to store ViewState in the session rather than in each page
  • Configuring Telerik’s Radcontrols to work as efficiently as possible

Cumulative update package 3 for SQL Server 2008

January 30, 2009 No comments »

Since we have been developing with SQL Server 2008 here at work on my latest project I have been keeping an eye on its available updates and fixes (at least until they come out with Service Pack 1). Cumulative Update Package 3 has been made available now.

Per Microsoft:

A supported cumulative update package is now available from Microsoft. However, it is intended to correct only the problems that are described in this article. Apply it only to systems that are experiencing these specific problems. This cumulative update package may receive additional testing. Therefore, if you are not severely affected by any of these problems, we recommend that you wait for the next SQL Server 2008 service pack that contains the hotfixes in this cumulative update package.

After scanning down the list it seems that we could benefit from at least two or three fixes listed:

  • FIX: You may encounter a deadlock scenario when you use table variables in SQL Server 2005 or in SQL Server 2008
  • FIX: When you use a ReportViewer control to view a SQL Server 2008 Reporting Services report that contains two pages, the formatting for the second page is lost
  • FIX: When you print a report by using the SQL Server 2008 Reporting Services Client-Side Printing functionality, the spacing is too small or too large

I would probably take Microsoft’s advice and hold off installing this update if you’re not specifically seeing any of the issues mentioned in the fix list.

You can download Cumulative update package 3 for SQL Server 2008 here.

Windows 7 Beta – get yours now before it’s gone!

No comments »

Microsoft is offering free downloads of Windows 7’s Beta release.  You can get your copy here.  They were originally going to keep the beta open until sometime in March I think but due to the overwhelming number of people that have signed up they’re going to be ending it very soon (actually according to the site, in the next few days).

So far I’ve been very happy with it.  I am running it on my Macbook Pro with VMware Fusion 2.  Even though VMWare doesn’t officially support it yet it went on automatically when I picked Windows Server 2008 64-bit as my operating system when I setup a new VM for it.  All I had to do was put in the product key that Microsoft emailed me when I signed up for the beta and it was up and running in no time.

I only allocated 40GB of Hard Drive space to the VM and 1GB Ram (I have 4GB total).  So far it has been running great on that and seems to be much quicker than the Vista VM I had setup before.  From everything that I’ve been hearing Windows 7 is basically a cleaned up and more stable version of Vista.  So far I agree.

The next steps for me will be to install Visual Studio 2008 and SQL Server 2008.  Since Windows 7 comes pre-loaded with Internet Explorer 8.  One odd/annoying thing that I’m finding is that the Beta version of IE 8 that comes can’t be upgraded to the RC1 version they just put out this week.

For those of you that don’t know.  RC means Release Candidate, and is the final testing version before a software product is released with it’s final version.  The release cycles are typically:

  1. Alpha
  2. Beta
  3. RC (Release Candidate)
  4. RTM (Release to Manufacturing or Release to Marketing)
  5. GA (General Availability)

Here’s my advice to you as far as Internet Explorer 8 goes.  If you insist on using IE, make sure you’re using at least IE 7.  I would not start using IE 8 until it’s released in a final version.  If you’re only using IE because that’s what came with your computer, do yourself a favor and go and download Firefox (for free) right now.  It is way faster than IE, much more secure, and will give you a much getter browsing experience.

Flip MinoHD vs. Kodak Zi6 Comparison Review

January 29, 2009 No comments »

As I mentioned back in December, I received a pocked HD camcorder for Christmas and decided to try it out against another comparable camera that was out on the market to make sure that when all was said and done that I had the better of the two units.

The two cameras that I tested were the Flip Video MinoHD Camcorder and the Kodak Zi6 HD Pocket Camera.  Both were purchased from Amazon.com and as you can see from the links here had pretty comparable features.

Here’s a breakdown of what I felt were the pros and cons for each model:

Camera Pros Cons
Flip MinoHD
  • Smaller size
  • Wrist strap on side vs. bottom
  • Software supports MAC
  • Software decent for managing device and movies
  • Battery is internal and can be charged by USB port
  • No expandable memory
  • Internal battery can’t be replaced if it goes bad or loses capacity over time
  • More expensive
  • Software upload to YouTube feature doesn’t take advantage of YouTube’s new HD options
Kodak Zi6
  • Feels more solid
  • Screen much more clear, bigger is much better for viewing
  • Zoom button much better
  • “Trackball” much more responsive than buttons on Mino
  • Uses external batteries, easy to pickup a pack from a store if you’re in a pinch
  • Uses external storage (up to 32GB), you can swap out cards if not at your PC. Mino only has 4GB internal memory
  • Small internal memory
  • Can’t plug it into my 15″ Macbook Pro USB slot when the power cord is plugged in. Have to use a USB extension cable.
  • No Mac version o the software :(
  • Seems to default to HD vs. HD 60 (60 = 60 frames per second vs. 30, the default) — this may be configurable

So which one did I keep?  The Kodak.

Going back to TiVo

No comments »

Man, somehow a week or so ago I stumbled upon the fact that TiVo works with CableCARDs.  What does that mean, you ask?  It means that I can dump Comcast’s crappy HD DVR service and get a real DVR, a HD TiVo!!  How have I missed this for all this time?!?!  I must be slacking in my old age.

Why would you do that, you ask?  Well, the TiVo is 100x smarter than Comcast’s service in that it can hook in with the home network and talk to other TiVos.  Also, since it hooks into the network it can do all kinds of cool stuff over the web like allow you to schedule shows while at work and even stream movies from Netflix (yes, we have that service too) directly.  Also, the TiVo can interface with the computers on your home network to play music and show pictures.  Add the fact that you can record copies of shows that you record on to DVD and I think you’ve got a feature set that makes Comcast’s box and service look like a fisher price toy.

The only thing that I was unsure about was how much Comcast would charge me for CableCARDs.  Well, after a quick call to them a little while ago I learned that they give you the CableCARDs for FREE!  I asked twice and she confirmed it.  We’ll see if that’s actually the case when I go to pick them up in a week or so.  There’s always some screw up when it comes to dealing with them.  I’m definitely excited that I can now not pay them $30+ a month for DVR service on my two Comcast DVRs.

After hunting around I ended up placing an order on Amazon for two TiVo TCD652160 HD DVR units.  I also added two TiVo AG0100 Wireless G USB Network Adapters so that they can talk to each other and get hooked up to my local network.  Add in some current monthly service specials that TiVo offers and my total monthly cost will definitely be much lower than if I had stayed with Comcast.  Sure I’ll need to recoup the costs of the boxes, but considering I’ve had my one Comcast box for over 4 years I think in the long run I’ll come out ahead in this deal, and have a ton of more features and a much better “user experience” while doing it.

More reviews and initial impressions to come once I get the new hardware in, the CableCARDs picked up from Comcast, etc.  Hopefully things will go smoothly and I’ll be up  and running sometime next week.

Apple 24″ LCD Cinema Display – WOW!!

January 16, 2009 No comments »

As I mentioned last month I was considering getting an Apple 24″ LED Cinema Display to compliment my Macbook Pro.  A few weeks ago when I finally got my fantasy football winnings for this year I pulled the trigger and ordered it from PC Connection.  After checking around with a few places I was pretty happy with the deal I got from PC Connection.  Due to them not charging for any taxes I was able to get a better deal there than I could have gotten through my neighbor who gets discounts from Apple through his work.

Considering that I work with dual 19″ monitors at work daily I didn’t think I’d be too impressed with a 24″ and was really actually kind of bummed that a decent 30″ like a Samsung 305T or a Dell UltraSharp 3008WF was so expensive.  I must say that I am more than blown away after using the 24″ Apple display.  At first I was really considering not getting the Apple since it didn’t have any HDMI or DVI inputs (for watching HDTV, etc).  But after I realized that I really wouldn’t (and shouldn’t) be using this monitor to watch TV and the fact that without this monitor I would have to buy a Mini DisplayPort to DVI Adapter ($99 – to hook up a different monitor) and an extra power adapter ($79 – for convenience) the decision got much easier.

What really stands out the most with this display is just how bright the thing is.  With the LED display it goes from off to maximum brightness in an instant.  Also since it’s LED based the power it uses is much less than a comporable LCD display.  Having both LED displays in the laptop and the monitor really make you realize how crappy older flat panel monitors are.  Once you use an LCD display, you won’t want to go back.  In addition to the power savings that the LCD offers this monitor boasts the same environmental (“green”)  changes that Apple made to the Macbook.  Everybody’s “going green”!

Overall I’ve been very happy so far with the display.  Unfortunately the room that I’m turning into my office here at the house is a work in progress so I haven’t been using it daily, but when I have used it I have really been sad when I’ve put it away.  As much as I may like to, having it sitting on the dining room table with a family of 5 just isn’t practical :)   Once the office is done and I get it mounted (I picked up the VESA compatible mount too) I’ll definitely post more about it and how well the dual setup with the Macbook Pro works.

Setting up SSL with IIS for ASP.NET

January 12, 2009 2 comments »

On my project at work I recently had to deal with securing our IIS 6 website with SSL and forcing that no non-secure requests would be honored.

require-ssl

What I quickly found was that IIS didn’t offer a way to automatically redirect any non-secure requests to a secure version of the same page, or some other page (i.e. http://www.yoursite.com/login.aspx redirect automatically to https://www.yoursite.com/login.aspx).

Luckily after spending a good amount of time Googling I found this post that involves a handy tip that you can use to change the custom error page for error 403;4 (the one displayed when you try to view the non-secure site).  I won’t re-state everything from his blog post, but it definitely has everything you need to get around this problem if you’re in the same boat.

Live action recreation of Super Mario Brothers

No comments »

Japanese live-action recreation of Super Mario Bros. (from the same show that brought us Matrix Ping Pong)