Turn Off Compatibility Mode for Steam

Sometimes when Steam crashes or there is a problem with it (or a game running from it) Windows 7 thinks that Steam needs to run in compatibility mode. This is a problem, because Steam doesn’t need to be in compatibility mode and shouldn’t be. Compatibility mode can cause issues with some games.

Screenshot of Windows 7 compatibility warning when starting steam.exe
Steam displays a warning when it is set to run in compatibility mode.

Unfortunately turning this off isn’t as simple as right-clicking on the Steam shortcut (or even the steam.exe file), viewing the Compatibility tab, and unchecking the Run this program in compatibility mode for option.

Screenshot of steam.exe Compatibility tab.
The Compatibility tab for steam.exe will not fix the issue.

Fortunately I found this quick fix using a simple registry edit:

  1. Go to the Start menu and type “regedit” into the search box and press Enter. If you have UAC enabled you’ll need to click Yes to continue.
  2. Browse to HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers and delete the entry for the steam.exe file.
    Screenshot of the steam.exe registry entry that enables compatibility mode.
    Browse to the steam.exe registry entry that enables compatibility mode.
    Screenshot of the context menu for the registry entry with the delete option selected.
    Right-click on the registry entry and delete it.
    Screenshot of the confirmation warning to delete the registry entry.
    Confirm that you want to delete the registry entry.
  3. You should also see if there is an entry in HKEY_LOCAL_MACHINE in the same location and delete it as well.
  4. Restart your computer. Steam should no longer run in compatibility mode.

I think it’s unfortunate that Windows 7 automatically applies compatibility mode without your consent and without a user-friendly way of turning it off, but at least it’s relatively easy to fix. If you’ve encountered this problem and have another solution or more information let me know in comments!

I’m Participating in the SOPA Blackout

I try to keep my personal politics off of my blog site because its focus is more on my hobbies involving technology. However, I feel very strongly that SOPA and PIPA are crossing a line onto a slippery slope (look at that, two cliches in one sentence!) of internet censorship.

Is piracy a problem? Of course it is. Should the government do something to reduce it? Of course it should. But SOPA is not the answer.

SOPA Blackout Plugin

If you are reading this on January 18, 2012, you’ll have noticed that a message about SOPA popped up before you could access my site. I’m using the Stop SOPA Widget plugin to do this (you can also add this JavaScript snippet to any site manually). It’s simple and gets the job done with no fuss. I encourage all WordPress.org users to participate by installing one of the available SOPA plugins and enabling it on January 18, 2012. And of course, call or write to your representatives in Congress!

My 2011 Year in Review

This is my first “year in review” style blog post. I feel that this year was particularly eventful for me in terms of my web designer/developer career and my personal life, and I thought it’d be a good idea to reflect on those events and capture it here for myself and any interested readers. Continue reading

Let it snow! Try my jSnow Plugin for WordPress

I love using JavaScript to add simple holiday effects to a website. I’ve tried several different “falling snow” WordPress plugins for my blog, but none of them quite fit my personal tastes. Instead I started looking for a good JavaScript or jQuery plugin that I could wrap up myself as a WordPress Plugin. Eventually I came across an updated/modified version of the jSnow plugin for jQuery.

I liked the simplicity of the plugin and the fact that it performs rather well on all of the browsers I tested (as with most of these animated JavaScripts, performance is highly dependent on the browser and computer itself). I also liked the fade out effect and the fact that I could set it to have a short height, essentially keeping the “falling snow” effect within my website header. Continue reading

SharePoint, jQuery, and FullCalendar—Now with SPServices

This entry is part 2 of 2 in the series Building a Better SharePoint Calendar

In the first entry to this series, I demonstrated how you can use a data view web part (DVWP) to emit SharePoint® calendar events as JSON that the FullCalendar jQuery plugin can use. Although it works fairly well, there are some limitations to the solution. It doesn’t handle recurring events, it doesn’t retrieve all events, it doesn’t support pagination/bookmarking, and it doesn’t provide a way to connect the calendar to Outlook® or create alerts.

This post will overcome the first two limitations by borrowing most of the code posted in this discussion thread on CodePlex and doing away with the DVWP altogether. Jim Bob Howard provided a lot of great information, but it’s broken up over several replies and is a bit difficult to follow. I also wanted to expand on the functionality of his solution by displaying events in the local time zone instead of the web server’s time zone and optimizing the web service calls by retrieving as few events at a time as possible instead of getting a month’s worth of events at a time.

Screenshot of a Fullcalendar demo page.
Fullcalendar in all it's jQuery-themed glory!

Continue reading

Field of View (FOV) Fix for Flight Simulator X (FSX)

I recently fired up Microsoft’s FSX a few days ago to try it out with my Eyefinity setup. I hadn’t done any virtual flying since before I purchased my third monitor, so I was looking forward to a more immersive experience.

Unfortunately when I started FSX I noticed that the field of view (FOV) was too narrow. Instead of having a wider view out the sides of my aircraft, I had less of a view above and below me. This is a classic sign of a vert- FOV, which unfortunately is all-too-common when running games in widescreen and Eyefinity resolutions.

Screenshot of default FOV for FSX in Eyefinity
This is the default field of view in FSX when running a triple monitor Eyefinity setup. As you can see the image is cropped on the top and bottom rather than letting you see more to the left and right.

Even using the built-in zoom feature in FSX doesn’t allow you to expand the FOV enough for a true Eyefinity experience (although it does improve things quite a bit).

Screenshot of zoomed out FOV in FSX using Eyefinity
This is the largest FOV you can achieve using the built-in zoom controls in FSX. It's an improvement, but still hinders visibility.

The fix was very simple once I found it in a forum post on Tom’s Hardware. I found the fsx.cfg file (located in C:/Users/[username]/AppData/Roaming/Microsoft/FSX/ in Windows 7) and opened it with Notepad. Then I found the line that said “WideViewAspect=False” and changed it to “WideViewAspect=True” and saved the file. I started up FSX again and the FOV was fixed! The view now expanded on the sides instead of cropping the top and bottom.

Screenshot of fixed FOV in FSX using Eyefinity
Now that the FOV fix has been applied, FSX provides a gorgeous widescreen view without cropping visibility. The built-in zoom controls can still let you expand or reduce the FOV to your preference, but at least now you're starting from a good middle ground.
Screenshot of exterior view with fixed FOV in FSX using Eyefinity
With the correct FOV, exterior views provide expansive panoramas.

A jQuery UI Theme for SharePoint 2007

I’ve been using jQuery UI in a few recent projects on my department’s SharePoint® site. In order to provide a consistent user experience, I used the excellent ThemeRoller to create a custom theme that matched our branding. We have a custom master page, custom page layouts, and our own color scheme, fonts, etc. so I wasn’t trying to match the OOTB look and feel of SharePoint.

However, it recently occurred to me that although I’ve seen a few articles about people using jQuery UI to enhance SharePoint, they usually go with a pre-built theme that doesn’t quite blend with the rest of SharePoint. With that in mind, I decided to see how closely I could match the default SharePoint look and feel using ThemeRoller. I’m limiting this to just SharePoint 2007 for now, although I may do a follow-up for 2010 if enough people find this useful.

What if I don’t like the default look of SharePoint?

First, let me say that although I don’t think SharePoint looks terrible (although many would disagree with me on that!), it does look pretty dated. However, I would rather have a SharePoint site look consistently dated than have a cool-looking, modern tab widget in the middle of a SharePoint page; it would stick out and break the flow of the page design.

There is an argument to this of course—you might want your widget(s) to stick out so that users are drawn to them and don’t lose track of what they’re doing in a complex web application. I recognize the potential value in that. However, if that were the case for me, I’d still want the theme to blend, but I’d probably do something like reverse the primary and accent colors or find a complementary color scheme to use.

Second, I’m not criticizing anyone’s efforts in using jQuery UI without a custom theme. The functionality is the important thing. In fact, I’d encourage anyone using jQuery UI to get things working first and worry about a custom theme as the last step. The great thing about jQuery UI is that it’s set up to be themed by simply swapping out a CSS file and a few images. You won’t need to make any edits to your HTML or JavaScript/jQuery to use a custom theme at a later date (although if you’ve done some additional customization to jQuery UI, you may need to tweak a few things). Continue reading

Play an Enhanced Version of Descent FreeSpace 2 with FS2Open

Descent FreeSpace 2 needs no introduction to most PC gamers. To this day it’s one of the best space combat simulation ever made in my opinion. I don’t think it tops the X-Wing and TIE Fighter games, but it’s still a must-have for sci-fi and space simulation fans.

If you were to install FreeSpace 2 without any modifications, it would still hold up OK. However, thanks to the release of its source code several years ago, the FreeSpace 2 Source Code Project (FSSCP) has made a ton of enhancements to the game, culminating in the current version of FreeSpace 2 Open (FS2Open – 3.6.12 as of this writing). With a little extra work, you can enjoy FreeSpace 2 with modern graphics and audio, several additional campaigns, and even the entire FreeSpace 1 campaign. Continue reading

Run the Steam Version of Doom 3 in Widescreen

One of the great things about playing PC games that are a few years old is the fact that you can usually crank the graphics up to the max and still get a silky-smooth framerate. When you couple this to the fact that I’m a sucker for video game package deals on Steam, you can see how I end up playing a lot of older PC games.

Screenshot of Doom 3 zombie in 1080p resolution.
Doom 3 running at 1080p HD resolution

One of my latest purchases was the QUAKECON pack that included a smorgasbord of games from id Software and Bethesda Softworks for pennies on the dollar. I hadn’t played Doom 3 since 2005 or 2006, so I figured I’d give it another go. Back in the day (am I really calling 2005 “back in the day”?) my GeForce4 Ti 4600 couldn’t really handle the brand-spanking-new “id Tech 4″ engine that Doom 3 used, so I went out and bought a mid-range GeForce 6600 GT that did the trick very nicely. At the time I was rocking a 19″ CRT from Dell, which was an awesome monitor at 1280 x 1024 resolution. I had a great gaming experience at the time, but even with the newer video card I couldn’t run the game on “Ultra” settings without serious drops in frame rate.
Continue reading

Redirect in SharePoint Using Meta vs JavaScript

This morning I was working on a custom list item display form for a “Tags” list that I created in SharePoint (DispFormCustom.aspx). I replaced the standard display form web part with a data view web part (DVWP). For various reasons that I won’t bother explaining in this post, I needed to create a redirect on this page that included an additional tags parameter in the query string with the @Title of the current list item. For example, if a list item has an ID of “1″ and a title of “jquery,” I want the page to redirect from http://server/lists/tags/dispformcustom.aspx?ID=1 to http://server/lists/tags/dispformcustom.aspx?ID=1&tags=jquery.

I didn’t want to use <meta http-equiv="refresh" content="0;url=/{@FileDirRef}/dispformcustom.aspx?ID={@ID}&tags={@Title}" /> because it creates a history entry in the browser. If the user clicks the Back button from the new page, they’ll go back to the page with the redirect and be immediately redirected to the page they were just on. This is bad for the UX. I could extend the time from 0 seconds to 3 seconds or more to give the user more time to click the Back button again, but I don’t think this is a good UX either. I want the redirect to be as transparent as possible. Continue reading