Shawn

Shawn Wildermuth

The Blog

My Rants and Raves about technology, programming, everything else...


Debugging Like a Knucklehead

So I've been writing a new Web API course Pluralsight. I am digging in how to handle versioning for an API and I think I've gotten it figured out but it just doesn't work. Throwing a crazy exception and just isn't working. I waste four hours trying to figure it out and I am cursing and grunting. The other people in the coffee shop are staring.

I spend a bunch of time on Google trying to find someone with a similar problem but no luck. Looking at the data and walking through the bug with the debugger didn't yield anything. Desperate, I reach out to Glenn Block himself for an answer. He's very gracious and agrees to help me out with a quick Skype session.

I tell him the story and he seems shocked. He's telling me things to try but I've tried most of them. I can tell by the look on his face that he doubts that this could be a bug…but it might be. So I told him I'd create a quick reproducible example so I could talk with someone on the team. With some things to try and my assignment to reproduce the problem in isolation, he left me to my own devices. 

Read...


DevLink 2013

Thanks to everyone for attending my sessions at this year's DevLink 2013 conference in Chattanooga, TN. I had a great time at the aquarium and enjoyed meeting so many of the attendees. If you get a chance, you should add this to your conference attendance next year.

I gave two talks at this year's event. I promised the attendees to get them the code from my talks. Here they are:

Code

Read...


Zen Coding (Emmit) with Visual Studio

As many of you know, I have a new course with Pluralsight called "Building a Site with Bootstrap, AngularJS, ASP.NET, EF and Azure". I had the opportunity to use Zen Coding (renamed Emmet for some reason) in the course. We've released a snippet of the course on YouTube that shows off this cool productivity enhancement that Web Essentials powers. Caveat: Web Essentials doesn't work with free versions of Visual Studio.

NOTE: The title of the video is incorrect and we're trying to change it...it is about Zen coding.

UPDATE: It was noted that I misspelled it. It's Emmet not Emmit. I fixed it in the article, but I can't fix it in the title as that's my URL too.

Read...


Atlanta Code Camp 2013: Done!

I want to thank all the attendees, speakers and my compatriots in planning the Atlanta Code Camp. I had a great time helping make this event the best one we've had so far. Some of the numbers:

428 attendees (including speakers and sponsors)

54 Talks Given (plus a great Keynote)

Read...


Need LINQ but Writing JavaScript?

sketchArchOne of the tasks that I found cumbersome when writing JavaScript is simple collection manipulation. I have gotten spoiled in C# with LINQ. Sorting, filtering, shaping and more is easy with LINQ but what about in JavaScript? Underscore.js to the rescue.

Underscore.js is a small utility library that can help in collection manipulation (as well as other great features). I first started using Underscore.js to replace jQuery's (and AngularJS's) for-each implementations. I find underscore's simple and quick. Like much of JavaScript, the magic is happening in a callback function (think Lambda):

 

Read...


Is It Too Late for Windows RT Tablets?

imageAndroid tablets were a joke. I remember being at a MIX when the Xamarin guys (before Xamarin was Xamarin) were showing off Moonlight on Motorola Xoom tablets. I overheard them complain how bad the devices were compared to their iPad test machines. That was PN7 or Pre-Nexus 7. Sure the Kindle came first, but the real switch for Android tablets was the exceptional Nexus 7. They proved that the OS was usable and that a device was desirable. And they did it for $199. The Nexus 7 was a hit…very late into game. They knew that if they sold it at cost or better that people would learn to believe that Android was more than a haven for Linux-heads.

The problem with the Surface is that Microsoft wanted to make money on it. I know that's their business, but the Surface should have been the loss-leader that got the hardware community to build great tablets around Windows 8. But that didn't happen. Surface RT was $499 at launch (actually $399 but $499 was the right size one). $519 with a touch keyboard. This lined it up against a very successful product but it wasn't going to change any minds of people that already bought it.

Instead they should have taken a page from Google's playbook (not Blackberry's playbook…pun intended) and launched it for $299 and had an 8" version for $199 in the wings. Even with today's slashing of the new Asus 8" to $299 it is still too expensive (and not Windows RT).

Read...


My New Web Development Course is Live

Are you getting ready to build a new website? Are you interested in shortening your development by using Bootstrap, AngularJS, Azure and ASP.NET? If so, my new course might be just for you.

In this new course I build a new web site from scratch. I start out with a Bootstrap template (since my design skills suck) and move through creating content, building a database, exposing a REST-ful API and building a Single Page Application. I wrap it up by publishing the site to Azure Web Sites showing you how to not only get your application up an running in the cloud, but also how to monitor it and handle standard tasks like using your own domain in Azure.

You will see every line of code (with one small exception) that I write. This isn't slide-ware…it's show-n-tell. I use a range of technologies including:

Read...


My AngularJS Talk at Atlanta .NET UG

Thanks to all who showed up to see me talk about AngularJS at the recent Atlanta .NET User's Group. At the talk, I wrote the client-side code for an AngularJS app by hand. The slides are pretty thin, but the code includes all the functionality I showed. I promised the slides and code so here they are!

If you have questions about any of this, feel free to comment and I'll help as much as I can!

Read...


My First Week With Nokia Lumia 1020

imageA week ago I splurged and upgraded my Lumia 920 to the Lumia 1020. So to those of you who were expecting me to switch over the Android or an iDevice; I'm still entrenched in the Windows Phone world. And this phone cements my opinion to stay.  Let's talk about the good and the bad.

I like the weight. I was worried that with the camera bulge that this would feel like a much bigger device but if anything it feels smaller than the 920. I haven't looked up the weight but it feels really nice. I actually find the camera bulge useful as a pivot point to hold the phone.

As no one should be surprised, the camera is that good on the new phone. It's an amazing experience. But you might wonder why you would need 41 megapixels (ok, 38 megapixels since the lens is round)? You don't actually…

Read...


JavaScript Promises

pinky-promiseNo I am not talking the promise that JavaScript will fix everything if you use it. I don't even believe that ;) I am talking about the concept of a promise object that several JavaScript libraries use (including AngularJS, jQuery, Dojo and WinJS).

A promise is a pattern for handling asynchronous operations. The problem is that essentially when you start an asynchronous operation, you need to execute some code as the operation is completed. Asynchronous code is so common that most libraries have found a solution for passing in callbacks. But there is little commonality to how each libraries does this. Let's take jQuery as an example:

Read...