All posts by Bryant Sombke

Bryant Sombke graduated from the University of North Dakota in 2008 with a Bachelor of Science in Computer Science. Now he is a .NET and SharePoint consultant in suburban Chicago. As a Microsoft Certified Professional Developer in SharePoint, he no longer becomes frustrated by anything.

Initial impressions of the PlayStation Vita handheld gaming console

PS VitaPlayStation and I have had our ups and downs in the past year, but somehow I’ve managed to move past the whole account hacking, contested charges, and banning of my beloved PSN account. I recently picked up the new PlayStation Vita, and so far I am impressed.

For starters, the variety of new input methods seems to work well. The most obvious improvement over the PSP is the inclusion of a second thumb stick, making it possible to play console-quality games on the handheld. This was the #1 feature which held back the PSP, and the Vita knocks it out of the park. Not only does the unit feature a second thumb stick, but both thumb sticks feel like that found on the Dual Shock 3 controller, rather than the sliding disc found on the PSP. This alone improves analog input so much that it can’t really even be compared to the PSP.

As if adding a second thumb stick wasn’t enough, Sony added a high-quality OLED touchscreen, which I must say looks exquisite and reacts accurately to the commands of the user’s fingers. If you’ve used a high-end smartphone in the last year or two, you’ll feel right at home using the Vita’s touchscreen.

Another set of important additions are the front and rear cameras, along with a built-in microphone. This not only makes online gaming and voice chat possible without a headset, but the possibility for video and audio-based apps are almost endless. Apps such as Skype will be much more enjoyable than it was on the PSP, that’s for sure. Hopefully it’s only a matter of time before we start to see apps taking advantage of these features.

Just to add some gravy to the mashed potatoes, Sony also added a touchpad to the back of the device, allowing users to tap, swipe, and draw with their fingers, without ever obscuring their view of the beautiful screen. While it feels like the least precise input method the Vita has to offer, I can only imagine the value it could add to gaming.

The questions I’ve yet to answer are: How will the multitude of input methods affect the quality of gameplay? Will it make playing certain games feel like a chore? Will gamers be able to deactivate the rear touchpad if it is not to their liking? Will Nintendo release yet another version of the DS which offers the same inputs, plus 3D? Hopefully in the next week or so, I’ll be able to answer some of these questions.

Skyrim on PS3: Took an arrow to the knee

PS3 SkyrimFor the past few of months, there have been widespread reports of horrendous lag and framerate drops with the PS3 version of Skyrim. The lag gets gradually worse as the user continues to put in hours and their save file continues to grow. After about 60 hours and a save file over 6 megabytes in size, the game degenerates into an almost unplayable state. The game is said to perform infinitely better on PC and Xbox 360. Or so the story goes…

This week, Bethesda announced an upcoming patch to correct the problems. I’ve been playing Skyrim more than any married, full-time employed person should during the time that I’ve owned it, and just hit the landmark 60 hours the other night. Coincidentally, my save file is right about 11 MB now, well above the stated 6 MB size. I’ve experienced almost no glitches, and nothing to agree with the aforementioned issues.

If my memory serves me, I’ve experienced two game freezes and minimal framerate drops, and all of it has occurred while I was background downloading content from the PlayStation Store. Since running the game is I/O intensive on the HDD, as is downloading content from the store, this does not surprise me in the least. I’ve seen videos of the supposed problem, but I can’t help to think there’s a good explanation that doesn’t fall squarely on the shoulders of Bethesda.

My question is this: Is there really a problem, or are users complaining about nothing? I bring this up, not only because I have yet to experience any significant problems during my significant time spent in Skyrim, but also because Skyrim on PS3 runs noticeably smoother than Oblivion did on the Xbox 360. Even at the worst of times, Skyrim compares nicely to the previous Elder Scrolls title at its best.

I know, comparing Skyrim to a game released over 5 years ago isn’t fair, but it’s the best frame of reference that I have, and users were crying foul back then as well. Personally, I had more problems with Oblivion on the Xbox 360 than I did with Oblivion on PS3 (yes I did play through the entire game on both consoles), and I’ve yet to experience problems with Skyrim on PS3. Maybe my life experience has made me a skeptic, but I’m not buying it. At its best, Skyrim is an ambitious game on a grand scale. At its worst, it is a flawed game with an occasional glitch and framerate hiccup, but not unplayable by any means.

And now I open up the floodgates: Have you experienced problems with Skyrim on your PS3? Am I an idiot for insinuating that there is no issue? Let me know in the comments below.

Holiday Gift Guide 2011: Consultants and Traveling Professionals Edition

Being a consultant or traveling professional comes with some unique challenges compared to the standard 9-to-5 job. We’re constantly on the road, talking on the phone, guzzling coffee, chowing down, and trying to find street addresses in neighborhoods we’ve never been in before.

I’ve put together this gift guide to help make life a little easier for the consultant on your shopping list this Holiday season.

1) Colgate Wisp

I can’t recall exactly how many times I’ve traveled out to a client’s location for the afternoon, which usually means that I get to eat my lunch on the road. By the time I’m done eating and I arrive at my client’s office, I oftentimes wish I could brush my teeth. Thanks to Colgate, this is no longer a problem.

With the Colgate Wisp, I can brush my teeth anywhere without all of the hassle of finding a restroom, carrying around toothpaste, and having a place to spit and rinse. These single-use toothbrushes contain toothpaste “beads”, which are available in many flavors, and much more convenient than a tube of toothpaste. Now I can brush my teeth on the go and simply throw away the brush when I’m done. There’s not a consultant on your shopping list that wouldn’t love to have a box of these under the tree.

2) Bluetooth Headset

Unless you have a car with built-in Bluetooth, a Bluetooth headset is an absolute necessity for a traveling consultant. Considering the amount of time consultants spend on the phone while driving, being able to talk hands-free will save countless lives and trips to the dry cleaners.

There are endless varieties of Bluetooth headsets available from many different manufacturers, which can range from below $20 to well over $100. While many cheaper models are likely to perform about as well as some of the more expensive models, keep in mind that in general, you do get what you pay for. The cheapest models likely won’t last as long or work as well as the upper tier, preventing your gift living up to its potential.

3) Garmin nüvi GPS

Cell phones are a great tool without a doubt. However, relying too much on my cell phone can be a real hassle, especially while traveling. Consider using your phone’s GPS function while dialing in to a conference call and eating your lunch, all while keeping your attention on the road ahead. Talk about a headache.

Stand-alone GPS units, such as my personal favorite Garmin nüvi, are an excellent solution to this problem. Since receiving one as a gift a couple of years ago, my phone is completely free to use for phone calls – imagine that! Having a device dedicated to GPS requires less multitasking, making my drive much safer. No consultant should be without one.

4) Laptop Attaché

Having a laptop carrying bag is a necessity for consultants and IT professionals alike. Traveling with a laptop also means traveling with power cords, wireless mice, and the occasional sandwich (among other important accessories), so it is important to have an attaché with plenty of pockets for items besides the laptop itself.

5) The Best Travel Mug

Here it is, the Holy Grail of travel coffee mugs: A heated travel mug complete with USB and car adapter! Not only will it plug into your car to keep your coffee warm during the early morning trip to the client far, far away, but you can also plug it in to your laptop once you get there. Unless you like cold coffee, it doesn’t get any better than this.

I’ve had many coffee mugs in my day, and every day I wish I had one of these. If anyone out there’s feeling extra generous this holiday season, send one my way. I’ll appreciate it, I promise!

Giveaway: Win 1 free month of PlayStation Plus

After I was banned from the PlayStation Network and forced to create a new account, Sony made it clear that they still appreciate me as a customer. What does that mean for you? It means I have two one-month trials of PlayStation Plus to give away.

I’ve covered PlayStation Plus before, and while I’m not wild about it myself, everything tastes better when it’s free. PlayStation Plus offers free games and nice discounts on a ton of content – it’s like free money in your pocket.

Before you enter, there are a few of stipulations:

  • The PlayStation Plus code must be redeemed by March 31st, 2012. If you spend too long waiting for the right discounts and free content to start your trial, you may be out of luck.
  • You are required to have a valid credit card linked to your PSN account to use the free trial.
  • If you don’t cancel your free month at least a day prior to the end of the trial, Sony will automatically bill you $17.99 and convert your membership to a 3-month plan.
  • Once your month is up, your free games will no longer be playable until you sign up again. Any discounted content you purchase (read: with REAL money) is yours to keep forever.

To grab one of these free codes, please leave a comment on this article about your favorite downloadable PSN game, and why it’s your favorite, by 12:00 PM CST on December 22.

Two lucky winners will be picked at random and will receive their code via email or direct message. Be sure to post with a valid account so we can get your code to you. If you post as a “Guest” we have no way of reaching you.

Windows Phone 7 Alert: HTC Connection Settings app is bad for your phone

Bad News Bears“HTC Connection Settings” is a free app from HTC which comes pre-loaded on some of HTC’s Windows Phone 7 mobile phones and can be downloaded from the company’s “HTC Hub” app or from the Marketplace. Unfortunately, this app suddenly decided that my phone didn’t need data access anymore – talk about bad news.

After enduring more than 6 hours without any data access, I decided to give Verizon a call and see what was going on. With a stroke of luck, Verizon’s Customer Support was very helpful and friendly (unlike some of my past dealings). The gentleman from customer support walked me through several troubleshooting steps, including reprogramming my phone on Verizon’s network, and was able to effectively rule out the idea that it was a problem on their end. He then told me to make sure I had all of my important data  backed up, because we needed to reset my phone to the factory defaults. After securing a backup, I went ahead and reset my phone.

I was skeptical that this would produce anything more than another headache for me, but to my surprise my 3G connection was then fully functioning. This led me to believe that it was either a glitch in Microsoft’s Windows Phone  7 OS (which is unlikely, since such an issue would be widely reported), or a problem with an app I had installed. After doing some internet sleuthing, I came across several forum posts about the same issue being related to the “HTC Connection Settings” app after installing the Mango update.

If your Windows Phone has “HTC Connection Settings” installed on it, I recommend that you remove it immediately. If you come across this app in the Marketplace, do not download it. It’s a pointless app that serves no real purpose anyway, so I doubt anyone would miss it. I know I don’t.

Has anyone else experienced the same issue? Let me know in the comments section below.

SharePoint 2007: Troubleshooting ‘Unexpected Error’ while editing web parts

One of the great things about SharePoint is the ability for non-technical users to update page content without the assistance of a development team. On the other hand, one of the terrible things about SharePoint is the ability for non-technical users to update page content without the assistance of a development team.

I recently had a client that was experiencing difficulties when attempting to edit web parts on certain pages in their Intranet site, running on SharePoint 2007. For starters, clicking on the web part’s Edit menu would make the browser window scroll back to the top of the page, rather than opening the Edit menu as it should. No big deal. Who needs to edit a web part, anyway?

If that wasn’t bad enough, any time they would drag and drop a web part to a different web part zone on the page, they would receive the wonderful “An unexpected error has occurred” error, preventing them from saving the changes to the page.

To add some madness to the mayhem, the issues only occur in Internet Explorer. Since IE is the only browser officially supported by SharePoint 2007, SharePoint uses a dumbed-down page editing interface in other browsers. While much less user-friendly, the simplified interface would allow my client to successfully edit and move web parts without encountering errors.

Troubleshooting the problem

As my first step in troubleshooting the problem, I edited the web.config file, turning off Custom Errors and enabling the stack trace output. The hope was that this information would point me in the right direction to solving the problem. While the new error message is much less cryptic than “unexpected error”, it was rather unexpected and perplexing at first.

Guid Error

GUID should contain 32 digits with 4 dashes.” Gee, thanks! I know what a properly formatted GUID should look like, but a GUID is never used as user input on the page. Why is it passing in an invalid GUID to the SPWebPartManager? Shouldn’t SharePoint be able to keep track of these GUIDs on its own? This got me to thinking that something must be preventing SharePoint from determining the GUID of one of the web parts, thus causing the error. Buy why?

The page contained Rich Content area at the top with user-defined content in it, as well as a couple of Content Editor web parts, so I decided to investigate. And sure enough, I found the culprit.

When the user pasted in the HTML content for the Rich Content area, it must have been copied from a Content Editor web part at some point. Unfortunately, not only was the inner content of the web part pasted into the content area, but the outer wrapping DIV was pasted as well, including the ID of the previous web part. This was creating a conflict of web part IDs, causing the JavaScript function to fail when determining the GUIDs of the web parts on the page.

After removing the extra wrapping DIV and the ID from the content area and saving the page, the web parts began to function properly. If I took one lesson away from this scenario, it’s that users aren’t always careful about their input, and SharePoint is not good at offering help to the non-technical user. As with any Content Management System, SharePoint is prone to user error, one of the most difficult types of errors to troubleshoot.

Windows Phone 7: Where’s my Browser?

Microsoft has locked itself out of the competition.

With the release of the Mango update back in September, Microsoft undoubtedly improved Internet Explorer on their Windows Phone platform. WP7 now features a full-fledged version of IE9 designed specifically mobile devices, which is leaps and bounds ahead of the browser that was available before the update.

However, many WP7 users like me would love to have Google Chrome, Mozilla Firefox, Opera, or even Safari on their handsets. Why are these popular third-party browsers nowhere to be found on the platform?

Blame Microsoft

For some reason, the folks in Redmond have decided that all web browsing on their mobile OS should be based on Internet Explorer, meaning that any third-party browsers must use the IE rendering engine that is native to the phone.

Developers are limited to customizing the UI of the browser, while using the rendering engine of the phone’s native IE9 Mobile. A few developers have done just that, with varying success. A couple of the most notable browsers available in the Marketplace, Browser+ and Browse On, have done well to improve the lacking interface of IE, but still have their problems.

If Mozilla or Google were to bring their beloved browsers to the platform, they’d without a doubt be great. Unfortunately, they have no plans to do so, thanks to the restrictive nature of Microsoft’s platform.

Microsoft has told developers they’re welcome to try to make a good web browser with Silverlight, the technology that most apps are built with on WP7. As a developer, that doesn’t sound like fun at all. It’s not surprising that Mozilla is ignoring the platform entirely.

Google has several apps available for Android and iOS, including Google+. On WP7, Google currently has nothing more than a Google Search application that, upon clicking on a search result, opens the target page in Internet Explorer. Good grief.

It appears that Microsoft’s close-minded approach to third-party support is keeping some of the industry’s largest hitters away from the platform, which is effectively limiting the platform’s ability to grow into a respectable player in the smartphone market. Frustrating third-party developers is a sure-fire way to frustrate your user base, which is a questionable approach for a company that is trying to strengthen their position in a highly competitive market. Hopefully Microsoft changes their stance on this issue, not only for their own benefit, but for the benefit of their users, and for the benefit of the smartphone market as a whole.

The Little-Advertised New Features of Windows Phone 7 “Mango”

MangosConsidering the expansive list of enhancements and new features, I can’t imagine there was a single Windows Phone user that was not excited about the recently released Mango update. We were given native Windows Live, Facebook, Twitter, and LinkedIn integration, as well as enhanced multitasking and Live Tile support, among countless other improvements.

But these features were no surprise, as they were the highly anticipated features that would make WP7 a relevant platform in today’s smartphone market. The purpose of this article is to expose a couple of my favorite new features that were not so well-known prior to release. Not only are these features nice-to-have enhancements, they have simplified and improved day-to-day use of my mobile phone.

Outlook Mobile

Connecting to my company’s Exchange server for email was great before Mango, but the user interface has been pushed over the top after the update. I prefer to configure my Outlook 2010 desktop client to display emails in Conversations, which makes keeping track of email threads much easier. When applied to the smaller screen of my HTC Trophy, this feature really shines. Instead of having to scroll through every email I receive, they are now grouped into threads, as they should be.

While this enhancement is nothing groundbreaking, it does bring Email on WP7 up to par with other mobile phones, further buttressing Microsoft’s relevancy in the rapidly changing mobile market.

SharePoint Mobile

Prior to the Mango update, the native SharePoint functionality was hardly useful, even for SharePoint professionals like me. The original version only worked with SharePoint sites which implemented Forms Based Authentication (FBA), effectively making the feature useless. My company’s Intranet site uses Windows Authentication (NTLM), which meant that I could not access any of my own documents stored in SharePoint, let alone any documents stored on my clients’ SharePoint sites.

WP7 Office Hub
The Office Hub in WP7

While the enhancement was not widely advertised, the Mango update added support for NTLM authentication, and I can now access project documents with a couple taps of my finger. I no longer need access to my laptop and WiFi to get at the documents I need to do my job.

Coupled with the Office Hub integrated into WP7, viewing Office documents on a mobile device has never been so seamless. This is a feature, if marketed properly, that Microsoft could use to gain an edge in the corporate sector, which would undoubtedly help them overtake the iPhone and Android as the mobile platform of choice for day-to-day business.


Microsoft’s not likely to usurp Apple or Android as the #1 mobile platform any time soon, but they are making solid strides to cement themselves in the #3 spot. As the smartphone market continues to grow, the value of a viable third competitor will as well. I love my Windows Phone, and I definitely love how it continues to make my professional life easier. If Microsoft continues to make the right improvements and learns to market these improvements correctly, Windows Phone may establish itself as a successful mobile OS for years to come.

SharePoint: Successfully Debugging Custom Timer Jobs

Timer Job
You can even write a timer job to send you an email when your eggs are done.

I’ve developed and debugged my share of custom SharePoint Timer Jobs in my day, yet there is still a rather tricky ‘gotcha’ that seems to trip me up every time, even though I am well aware of it. Perhaps writing this article about it will help me remember next time?

My debugging style tends to be something like this: Change a line of code, run the change in debug mode. Change a line of code, run it in debug mode. You get the picture. While not always the most efficient way, it’s a fairly reasonable way to get the job done. Once my change allows the debugger to get past the error that was being thrown, I know I can move on to the next part of the logic.

However, when you’re dealing with SharePoint, no process is this simple. SharePoint likes to cache lots of stuff, sometimes causing it to behave in a somewhat unexpected manner. The same goes for DLLs. In order to increase system performance, SharePoint’s timer service caches all of the assemblies it needs to run all defined timer jobs, including any custom-developed jobs.

The Services window on Windows Server 2008 R2 Standard

So, what does this mean?

Even if you change your code and redeploy the solution to SharePoint, the Timer Job will execute using the old, cached DLL, rather than the new DLL from the GAC. The Visual Studio debugger will be unaware that it is not using the new DLL, and can lead to some interesting results. If the debugger seems to be acting like a drunken mental patient, this is huge clue that SharePoint is running the old DLL.

Remember this:

EVERY time you make a single change to your timer job and wish to debug, you must restart the Windows SharePoint Services Timer service in SharePoint 2007, and the SharePoint 2010 Timer service in SharePoint 2010. This can be done by navigating to Start > Administrative Tools > Services, right-clicking on the service, and selecting Restart. The next time the job runs, it will use the new version of the DLL that you deployed.

To avoid this problem, only one additional step is necessary in my debugging process. It’s simple and easy, but it manages to get me every time.

SharePoint 2010: Mysterious Errors Using Query String Parameters

SharePoint 2010
I am SharePoint... Feel my wrath!

One of the things I love about my job is that satisfying feeling of accomplishment that I get when I solve one of SharePoint’s quirky difficulties. If it weren’t for this feeling of euphoria that comes along every so often, I’d have gone insane long ago. Thankfully, SharePoint has no shortage of strange behavior and head-scratching moments.

One of my colleagues recently ran into a strange error while developing a custom Application Page. No matter how he was catching and handling runtime errors, every time an exception was raised during the Page Load event, the page would crash, displaying a perplexing error message and stack trace.

Specifically, he’d receive a “No item exists at . It may have been deleted or renamed by another user” error. What item? The one that the page isn’t using at all? Obviously. The corresponding stack trace wasn’t too helpful either. When stepping through the debugger, it was clear that the Page Load event was executing successfully, but the page was still crashing, even when the entire method was wrapped in a try/catch block with proper exception handling.

At this point, I thought of something. The page was utilizing query string parameters to receive data and pass data to itself across postbacks, so perhaps something was wrong with one of the parameters? I noticed one of the parameters he was using was named “ID”. I suggested we change the name of this parameter to something else, and lo and behold, the problem was solved.

The Moral of The Story

For reasons I still don’t quite understand, although it does sort of make sense, the “ID” query string parameter is a reserved keyword in SharePoint. Any time this parameter is present, SharePoint tries to do something internally, which sometimes makes it take a crap. Oddly enough, the problem only happens when an exception is raised during code execution, regardless of error handling. The moral of this story is to NEVER use a query string parameter named “ID” while developing for SharePoint.

There are several other query string parameters one should not use as well, and most (but not all) of them are far more obvious than the ambiguously-named “ID” parameter:

  • FeatureId
  • ListTemplate
  • List
  • ID
  • VersionNo
  • ContentTypeId
  • RootFolder
  • View
  • FolderCTID
  • Mode
  • Type
  • PageVersion
  • IsDlg
  • Title
  • _V3List_

(Thanks to Stefan Goßner over at TechNet Blogs for this list.)