Shawn Wildermuth

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

George Carlin-Style Software Career

George-CarlinI've always been a big fan of George Carlin. I remember watching one of his first HBO specials when I was quite young. No matter whether you agree with his point of view, you had to admit he had an impressive mind and a way to stay relevant no matter where the country went.

Recently, I was watching Louis CK talk at a Carlin Tribute when he told the story (that I'd heard before) of Carlin's philosophy of throwing out his act once a year to work on a new show. This got me to thinking how this could apply to what we do.

ReMIX South 2012

_0012_Logo-Yellow-onWhiteI had a great time at ReMIX South this year! It's been great to meet developers and designers and learn how they are using design tools of all sorts.

If you attended my "Modern Web Development" workshop, here is where you can get the slides and code. If you have questions about the workshop, please just add a comment and i'll respond as soon as I can:

Slates are Dead...Long Live Tablets

surface_05I am headed to Build later this month and am excited by both the Surface tablet and what the PC makers are going to show us in Windows 8 devices. But ahead of that show there have been a lot of reveals by the likes of HP, Dell, Lenovo and ASUS.

I am perplexed by these early reveals by the PC makers. On the whole, these companies built Windows PC's in the Slate era (when Microsoft was pushing Windows Tablet Edition). Many of these new devices feel like throwbacks to the Pen Slates they built in years gone by and that's unfortunate. Even if they don't look like Slates, they look like ultrabooks with touch screens. Convertibles and such are interesting for the minority but not for the majority of users IMO. 

JavaScript for C# Developers Live!

If you're in the Atlanta, I am holding a one-day JavaScript for the C# Developer course. The course will cover:

This is the perfect course for existing .NET developers who are trying to get up to speed with JavaScript for web development or Windows 8 App development. The course will take place on November 14th and costs $299.99. You can register for the event here:

TypeScript (or the obligatory post about it)

Like many of you, I've been itching to see what Anders had up his sleeve and I wasn't disappointed yesterday when they announced TypeScript. After teaching all day, I took a quick look at TypeScript (and I do mean quick).

There was a lot of buzz yesterday and the response seemed to be in one of two camps (for the most part):


Retro Microsoft MVP LogoToday I was renewed as an MVP for the tenth time and could not be happier. Over the past year I've been looking last XAML into the web stack and Microsoft has graciously moved me from a Data MVP over to an ASP.NET MVP. This doesn't mean I won't be sharing on Silverlight, WPF or data technologies; it's just a reflection of what I am working with now.

I want to thank everyone in the community for following me and reading my blog over past're the reason I've been renewed again and I sincerely appreciate it!

When to Not Use Observable in KnockoutJS

javascriptI've been really busy lately and my list of things to blog on has been getting backed up. One thing that occurred to me while building my new JavaScript course was about how KnockoutJS and Observables actually work. Here's the deal.

KnockoutJS supports the idea of an observable object. This is similar to WPF/XAML concept of INotifyPropertyChanged interface. Most KnockoutJS dev's I've talked with use KnockoutJS's observable everywhere. But there are cases when you don't need it.

Eleven Years Ago

On the 11th anniversary of the 9/11 attacks, I am reflective of a difficult time for my country, the world and my own life. I had recently been laid off for the first time in my when the attacks happened, I had all the time in the world to watch all the coverage I could. I was in Portland (Oregon) so I was not close, but it felt close. Watching this news happen in real-time was profound event for me. If I was closer, I hope that I would have jumped in to help. My heart sank for the victims and their families. I tried to make sense of this violent act...and it was simply senseless. At that Twin Towers; at the Pentagon and in that tragic field in Pennsylvania - the bravery and heroism that I have to believe I am not capable of.

I kept thinking of this quote that had touched me as a teenager:

My New Course: JavaScript for C# Devs

If you are a C# developer who is ready to take on JavaScript, I have the course for you. The goal of the new course is to help C# developers understand the nature of JavaScript so you can write JavaScript like a native speaker. This is for developers who need JavaScript for any of the popular places to use JavaScript including:

The course aims to map C# features directly to JavaScript features so you can understand many key topics including:

LESS at DevLink

babyflyerJust finished my talk at DevLink on "A Better CSS: LESS is More…". It was a good crowd and I was surprised that so many people had already heard of LESS which is awesome. Hopefully I covered the breadth of the language. It was a fun crowd and it's been a fun conference. If you haven't had a chance to get to Chattanooga and see the fresh water aquarium, it shouldn't be missed!

I promised the crowd that I would share the slides and the code. You can go both here:

Great Time at Gwinnett .NET Users Group

mobiledevices_clipI headed up to the Gwinnett .NET Users Group last night had we talked all about mobile web development using ASP.NET! If you were there, thanks for attending and here are the slides and code as promised!

If you had any questions that you didn’t get to ask at the talk, just comment below.

aspConf was fun!

I had a good time doing a couple of talks today. If you joined me online, thanks for coming. For those who missed my talks, they will be posting the videos on Channel 9. As promised you can get the slides and examples here for my talks:

I hope you enjoyed the talks!

New Era for Microsoft?

Guidelines-4_embedA lot of people are writing about the possibility of a new era at Microsoft. As a cynical fanboy I am hoping that this turns out to be true. I think there are a lot of great things coming out of Redmond these days and they deserve credit for making real change.

If you’re not keeping up, let’s talk about some of the comments that are being talked about. First up, Woz:

Windows Phone 8 - What do I think?

7612.StartScreen_Maria35_thumb_7EFE7E6BSo the Windows Phone event is over and I’ve had time to digest it somewhat and read between the lines. At the time (for those who read my twitter feed), I was quite reactionary and upset at much of the news. Most of this what as a user of a Windows Phone, not as a developer of a Windows Phone. Do note that another caveat is that I am an author of a Windows Phone 7.5 book, and the thought of my book being suddenly obsolete was upsetting as well (but that happens every time one of my books passes the new car smell line). So let me talk briefly about what I think about the news from both a user and a developer on the Windows Phone platform.

The big news for most users is the fact that Windows Phone 8 won’t work on current hardware. To me this is short-sighted as it seems to punish the only fans the platform has so far. This was especially relevant since I *just* received my Nokia 900 (after having a HTC HD7 for the last 15 months). The idea that this new piece of hardware was going to be out of date in only 4-6 months upset me. But let’s think about it in broader strokes that just me. Is this a good strategy overall?

CodeStock 2012 - Wrap-Up

conference projectorJust back from the CodeStock 2012 event and I want to thank Michael and everyone involved for a great event. I met a lot of great people and had a great time in Knoxville. Both sessions were well attended. I especially wanted to thank those attendees who attended my 2 1/2 hour marathon session on Modern Web Development (see my blog series on it here).

Unfortunately, my recording software was crashing so the talks didn’t get recorded. For those who saw me speak, here are the slides and demos:

Start Button...Hrmph

I'm using Windows 8 as my main OS on my work PC. Not a terribly good idea, but I want to feel how it is to work with on a day-by-day basis. I've been dong this since early in the Windows 2000 days (installing pre-release OSs by MS).

I've heard from some people that they want their Start Button back and my opinion continues to be that it never went away...all that happened was that it is now full screen. In fact, it's still in the lower left:

New Pluralsight Course on Debugging Web Sites

After a long gestation, I finally completed my Web Debugging course for Pluralsight. This new course covers the details of using the tools in the browsers to debug layout, JavaScript, CSS and networking. While the course shows you how to find the tools in all the major browsers, the focus is using Firefox and Firebug. Though the techniques shown in Firebug apply pretty seamlessly to all the browser tools. This course is not .NET specific, but should be useful to any web developers.

The course is broken up into four sections:

JavaScript for the C# Guy: The confusion about 'this'

As a C# guy I am comfortable with the idea of 'this' in the scope of a class (or 'Me' for your VB'ers). It's a relatively simple idea that allows you to access the instance of the class that you're a part of to call members.

In JavaScript that have a similar idea but because of the nature of JavaScript it can cause some odd behavior. Let's look at the standard behavior first.

Move Your WP7 Apps Links to the Marketplace

UPDATED: Changed links to be universal, not US specific.


Atlanta Code Camp Wrap-up

I had the pleasure of joining many of the Atlanta .NET community for the annual Atlanta Code Camp. If you didn't get a chance to join us, you missed a great time. The attendees were enthusiastic and friendly. Thanks to everyone who attended!

I promised the people who attended my sessions I'd post the slides and example code so here you are:

My Speaking Schedule - 2012 Edition

My 2012 conference schedule is shaping up nicely. I will visiting a series of conferences, code camps and user groups this year. Last year I didn't do this nearly as much as I was building a failed product. So back to my love of badges and beer. If you have the opportunity to be at any of these great events, do it. I love them all. (Also, if you see me at an event, please stop by and say hello.  As many can attest, I don't bite much.)

Here's the current slate (in chronological order):

JavaScript for the C# Guy: The Global Object

codeThis is another in my series about (hopefully) interesting JavaScript constructs that might surprise most C# developers. You can see others here: JavaScript for the C# Guy.

Back in the day I was doing some scripting in classic ASP sites (no, not classic ASP.NET) and we screamed and yelled about putting too much in the global scope. We wanted encapsulation and such and that is true today. In my C# work pretty much everything is in a class (static or otherwise) so I don't have to concern myself with it much.  But in JavaScript I know there is an easily accessible global object...but it occurred to me that I don't see the "Global" object accessed much; even though it is used a bit (to hold other containers that have encapsulated code). "Why not?" I wondered.

CSS for the XAML Guy - Positional Selectors

AngleBracketsI got into a longish, public discussion last night about XAML versus the HTML/CSS stack last night. I think they both have merit and pros and cons but it made me decide to add a short series of posts that highlight some of the CSS things that surprised me most (like my JavaScript for the C# Guy posts - and yes, more of those are coming too).

The first topic I am covering is some subtleties of the selector syntax. CSS selectors allow you to pick children, descendants and adjacent siblings. I found that I used descendant selector quite a lot:

Modern Web Development - Part 9

This is the ninth of ten parts of this blog post. mobiledevices_clipThe topics will be:

Why do users complicate our lives by trying to view our content on their phone and tablets?  It's even an issue for smaller sized desktop screens too. Since this is simply a reality for today's web developer I was glad to see there were real strides in working with mobile.

I've been Deep Fried...Again!

So I've done it again.  I survived another 30 minutes with Woody and Keith. Whew. We had a good conversation about the current state of Web Development and the future of XAML development.

I also got to discuss fried foods and make fun of Keith. Couldn't have been a better time. Go listen now:

Application Name WilderBlog Environment Name Production
Application Ver Runtime Framework .NETCoreApp,Version=v1.1
App Path D:\home\site\wwwroot Runtime Version .NET Core 4.6.25211.01
Operating System Microsoft Windows 6.2.9200 Runtime Arch X86