Shawn Wildermuth

Author, Teacher, and Filmmaker
.NET Foundation Board Member

The Blog

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


Forcing Orientation in WinRT

7d703de7-03a1-4a9b-8425-841ae065c30fI am working with a client on an enterprise Win8 app that is for order taking. They have a specific page that they require to be only in Portrait mode while the rest of the app can support any orientation. Since I've done so much Windows Phone 7/8 work I thought this would be simple. Just specify the value on the Page. But this didn't work…

Digging through the docs I found a probable solution: DisplayProperties.AutoRotationPreferences (in the Windows.Graphics.Display namespace). The docs specify that this property can be set with the DisplayOrientations enumeration to specify which of the four orientations to support. The enumeration is a flag so you can combine them too:

// All orientations
DisplayProperties.AutoRotationPreferences = DisplayOrientations.None;

// Portrait only
DisplayProperties.AutoRotationPreferences = DisplayOrientations.Portrait;

// Landscape only
DisplayProperties.AutoRotationPreferences = DisplayOrientations.Landscape;

// Landscape and upside down landscape only
DisplayProperties.AutoRotationPreferences = DisplayOrientations.Landscape | 
                                            DisplayOrientations.LandscapeFlipped;

Using these options should work, right? I tested it in a bunch of different places in my code and it didn't seem to have any effect. I was baffled.

Read...


Designing APIs for the Web

Ever get perplexed when designing your API for the web? My new course is now available on PluralSight that helps you design your API. The course covers:

You can view the course here:

http://pluralsight.com/Courses/web-api-design

Read...


Building Atlanta Code Camp Website

I recently helped the Atlanta Code Camp effort by building them a new website. You can see it here: Atlanta Code Camp.  I am pretty proud of what I was able to accomplish in the scant number of hours I had to build it. It's not done as we need to improve it when we have the speakers chosen and set up the schedule, but so far I am pretty happy with it.

I had a number of goals for the project:

My first thought was to start with a Mobile-First template and just build the site but as #4 was going to stymie that as PluralSight would really like me to finish my courses ;) So I started with a Bootstrap template (that I got from https://wrapbootstrap.com). This provided a good basis for the shell of the website. Before I did real color skinning of the site, I needed to wait for our logo. Dennis Estanislao did an amazing job on the logo. With that I was able to use the color scheme to change the template to match the logo and overall theme. But that was just the HTML part of the story.

Read...


Speak at the Atlanta Code Camp 2013

logo-verticalI've been honored to help put together the Atlanta Code Camp this year. This year's event is happening on August 24th here in Atlanta and we're expecting to have eight tracks covering a mix of developer, designer and some IT professional talks. I've attended this event the past eight or so years and it's always a good time. I decided it was time to help out.

We've now opening our Call for Speakers. If you're an experienced speaker or want to do your first talk – we want you to submit talks to the Atlanta Code Camp. This event has done a great job in helping first time speakers get started with their first talk.

Submit your talks here:

Read...


Evolving Your Development Skills

TeachingOnGlassIn the last couple of years, I've been adding the HTML/JS/CSS skillset to my stack of required skills and my talks and courses have reflected that change. To my readers who are deep in the XAML stack, this change seems to have come at somewhat a shock to many. I've even been accused by some of abandoning the Silverlight, WPF, Win8, WinPhone folks. This has caused me a lot of frustration because I don't believe that developers can or should only know one possible stack. To reach the full breadth of users, sometimes you need to be able to develop across the ecosystems. In this same time, I've also done quite a number of HTML/JS/CSS talks where I didn't use Visual Studio. Some have conjectured whether I am moving away from the Microsoft stack as a result of the lessened use of Visual Studio in my demos. The frank answer is: nope.

So what is really happening here? I believe the development world is evolving. In fact, this isn't new…in the past 26 years everything has continued to change my entire career. And I expect (and hope) it continues. Software development is unlike many other similar professions. We think of ourselves as engineers but many engineering professions the rules don't change all that often. In civil and mechanical engineering, it can be somewhat stagnant. The requirements change, but torque and setbacks are similar to what they've been for years (AFAIK). But in software everything changes.

I received an email today from a developer who has been a Microsoft developer for a long time and now feels as if he is effectively unemployable because his skills are out of date. I don't' quite agree with his assessment as he knows ASP.NET, JavaScript and C#. These aren't out of date skills. But his consternation about the fight to keep his skills up to date is one I hear all the time. I struggle with an answer as my job is to learn, not deliver products. Because of this I have time to learn…I still get frustrated learning a new tech. In fact, this is the way that I cycle through a new technology:

Read...


An Engagement

IMG_0008I try to keep this blog relatively technology focused but sometimes something happens in my life that requires an announcement. I am also mentioning it here because I think it makes a good story:

I just got back from SDP13 in Israel and spent 10 days in that lovely country. With this trip planned, I thought it a perfect time to ask my girlfriend to marry me. I'm 44 and I've never been married so it's about time, right? Unfortunately we had a minor argument and in my haste I texted "Maybe I'm not getting married…" This text was meant for a friend of mine who I'd been confiding in about the whole diamond buying experience.  But this text went to my lovely girlfriend instead. Foiled by technology again. So the cat was out of the bag and I didn't think I could surprise her with the ring in Israel.

I was perplexed as I wanted it to be a surprise even though she now knew it was coming. If I were to take her out to a nice dinner or maybe to watch the sunset, she'd know what I was up to. At the same time I considered how to be romantic and unique. I really wanted her to say "yes" (though she knew I was going to ask, she didn't let on with what her answer would be) so making it memorable was important to me. But what could I do that others haven't done before. I thought of writing her a song (I am a musician) but it felt trite and over-done. Then I remembered I am a software developer (ok, I didn't forget, but I am trying to build some tension). I'd write her an App for her tablet.

Read...


Debugging PhoneGap with the Android Console

facepalm4If you build PhoneGap apps and test with the browser, moving to phones sometimes causes a boatload of problems. Because there isn't a great debugging story, being able to see the console window would be of great help.

My particular problem was that my JavaScript and CSS links weren't cased correctly. And it seems that the Android implementation is case sensitive (like most Linux implementations) but I couldn't even see what was wrong. Unfortunately the PhoneGap Build tools let's you use the console and interrogate the DOM but console log messages are lost. So I simply dropped down to the Android SDK.

I don't use the Android SDK for development of my PhoneGap apps. I have it installed because I did some early investigation into Android back about two years ago and it was still there. One great thing to say about Eclipse and the Android SDK is that they are simply file-based so when I pave, it still works (still on that drive taking up space). For me this was a lucky break as I needed it to access the console. So how does it work?

Read...


The New Design

TeachingOnGlassAfter my recent talk on Mobile-First Design, one of the attendees tweeted that he thought it was ironic that my talk was on responsive design but my blog wasn't mobile-friendly. I told him that my company site was…but that was a cop-out. I hadn't had time to get the blog setup with a good template. So voila! I haven't confirmed that everything works the way I want but we should be close!

As some of you might not know, I don't use a blog engine (it's just a custom ASP.NET MVC site). What I love about ASP.NET MVC, is that since the markup so fairly separated from the code (I try and use as little actual Razor markup as possible), skinning it with a new Bootstrap template was pretty simple. It took me about 8 hours to convert it all.

Let me know what you think…

Read...


My DotNetConf Talk on Mobile-First Design

Digital Tablet PC With Mobile Smart Phone IsolatedI had a great time at yesterday's online DotNetConf. I think my "Mobile-First Responsive Web Design" talk went pretty well. You can see the talk on YouTube (embedded below). The talk was focused on designing websites to be efficient on mobile platforms by starting with your design on a mobile and scaling up to tablets and desktops.

If you viewed my talk, you might be interested in the slides and source code. You can get them here:

You can view the talk here:

Read...


My Practical PhoneGap Course is now Live!

If you're interested in cross-platform mobile apps, I like the solution that PhoneGap has. It uses HTML5/CSS/JS as the UI stack and I find it compelling to build apps for iOS, Android, Kindle, Windows Phone and Windows 8 Store. I've just released a new course on PhoneGap that attempts to fill in some of the holes in building apps.  The course includes:

Hope you enjoy the course. You can view it here:

http://pluralsight.com/Courses/practical-phonegap

Read...