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

Don’t Use Your ISP Email Address

Every internet service provider (ISP) that I’ve ever used (or anyone I know has used) provides you with an email address. It’s usually how you log into their website to access your account information, pay bills online, etc, so it makes sense that they do this. However, I’m going to take a stand and say dont’ use it!!!!

Switching ISPs

You might be asking “why not?” Well, the only reason you really need is the fact that you might switch ISPs at some point in the future. If you switch ISPs, what happens to your email account? Some ISPs might let you keep it, but it’s not really in their best interest to provide that service when you’re no longer paying them on a monthly basis. As anyone who has done it can attest, it’s a pain to change your email address.

Think of the hundreds of friends, family, websites, retailers, etc. that use your email address to communicate with you. Do you really remember every important website or service that you registered your email address with? They probably include your bank, utilities, social networks, shopping websites like Amazon.com, entertainment services like iTunes and Netflix, your college or school, your employer, various reward/loyalty clubs for stores, and the list goes on. If you switch ISPs, you’ve got to log in to each account and update your email address. What a pain!

Feature Limitations

I have yet to see an ISP’s email services match the feature set of top webmail services like Gmail.

IMAP vs POP3

Email services from many ISPs only support the POP3 standard instead of the IMAP standard. IMAP allows you to sync your email across multiple devices like your smartphone, desktop PC, laptop, tablet, etc. Any change you make on one device, such as deleting a message, will be reflected on all of the other devices. It also supports most email functions like moving messages into folders.

POP3 is more limited; it simply downloads a copy of an email when you open it on a device and either deletes it from the server (so it is only accessible on the device you first viewed it on) or leaves a copy on the server (so when you delete it from the device you viewed it on, it will actually still be on the server and all of your other devices). Continue reading

My Impression of Bias Lighting

Several years ago I was shopping around for a new HDTV to splurge on. I spent months pouring over reviews on CNET, reading threads on AVS Forum, and walking around Best Buy to find the perfect HDTV. I found AVS Forum to be the best resource of good information because you could ask specific questions, and there was most likely someone on the forum who could answer it based on personal experience (and who knew what the heck they were talking about unlike most retail employees).

During that search, I came across the concept of bias lighting.  This is not the colored ambient lighting crap that some TVs use as a marketing gimmick—colored back-lighting actually screws up your perception of contrast, color tone, etc. This is the lighting that professionals use with a professionally-calibrated monitor so they can edit video. I could go off on a tangent about why I prefer to see movies the way the director and editor intended, but I’ll save that for another post…

The basic idea with bias lighting is that you reduce eyestrain and perceive contrast better if there is a small amount of light behind the TV or monitor that you are watching. I won’t get into the specifics, but suffice to say that you shouldn’t throw any old lamp or cold cathode behind your TV. If you want to read more about the concept, here are a few links to get you started:

I always wanted to get a bias light for my TV, even though I never had it professionally calibrated, because I always liked the idea of having a little bit of light in the room at night rather than burning my retinas with a bright image in a totally dark room, and most lights cast reflections on the TV screen that are very distracting during darker scenes. As fortune would have it, I moved into a new apartment recently and it has no built-in lighting in the living room, but it does have a switched outlet right next to my TV. This was the last bit of motivation for me to finally get a bias light. The thought of adding a little light to the room while improving the TV viewing experience at the flick of a switch is very appealing, don’t you think? Continue reading