Joe Paterno, dead at 85

RIP Joe Paterno

It’s a very sad day.  Joe Paterno was not only a great football coach but a maker of men and great contributor to Penn State.  History will remember this man not for a perceived inaction in the response to the actions of another man, but for a great legacy at Penn State.  Joe and his wife were consistent donors to Penn State including $13.5 million towards the expansion of the Patee Library (the expansion was named Paterno Library).  As a graduate of Penn State, my education was made better by this man.  He will be missed.

This is also a glowing reminder to give lots of support to anyone you know with cancer — even treatable forms.  Joe Paterno died not from a treatable form of lung cancer, but an utterly broken heart.

Join the fight against SOPA and PIPA

Today is Stop SOPA Day and websites across the Internet are shutting down for the day and replacing their content with information regarding SOPA. Head over to Google or Reddit and join the cause. If you were hoping to look up information on Wikipedia or buy something on Craigslist you’ll be out of luck today.

SOPA and PIPA are very dangerous laws that inherently break the way the Internet works. Please join the cause by signing the petition or calling your Congressmen.

Metro Snack #1: Choosing XAML or HTML5 for Windows Developer Preview apps

XAML or HTML5?Windows 8 Metro Style app development starts with choosing a user interface technology path. Developers will need to choose whether they will create their user interface using XAML or HTML5. Choosing XAML means that the business logic for the application can be implemented using C++, C#, or VB. HTML5 apps will mainly use JavaScript for this purpose (note: it is possible to call into C++/C#/VB code in an HTML5 app).

Which should you choose?

Continue reading

Metro WebView Source and HTML workarounds

WebView Workarounds

In the process of writing my first Windows 8 Metro style app using C# and XAML, I came across some limitations of the current WebView control’s implementation.  The flow for the feature I was working on is fairly simple:

  1. Content for a webpage is displayed in a WebView (using the WebView’s Source property).
  2. User browses the page until they find something they want to save.
  3. User clicks a save button and the app parses the information into a readable format for saving in the app’s storage.

This is a pretty straightforward concept and I thought the implementation would be just as intuitive. Judging by the similarity of the WebView control to the Silverlight WebBrowser control, I went about implementing this functionality as I would have for Silverlight.  I set the WebView’s Source property to the initial Uri where I wanted the browsing to begin.  I wired up a test button that I thought would kick off the parsing process.  That’s when I started to run into problems.

Continue reading

Designing APIs for the 80% case

I just read a blog post by James Padolsey (Making APIs is hard).  He makes a comment that is at the core of how we design APIs in my day job.

From the post:

I am sitting here thinking about that end-user-programmer-guy. I guess this holy API should seek to provide exactly what this guy wants. The trick is knowing what he wants.

While I don’t agree with the entire blog post (in particular, there’s way more to API design than just naming), I do believe James has partially nailed the essence of what makes API design difficult.

At Infragistics, we have a design tenet that states we will optimize for the 80% case while still remaining flexible enough to accommodate the other 20%.  What this means is, in 80% of the use cases for what we are designing the developer should be able to use it without consulting product guidance.  This requires a lot of research to determine what the 80% case is, but in the end the result is a product that is easy to use most of the time.

That’s not to say that we don’t care about the other 20%.  We just don’t design for that first. The basic idea is: the more common it is, the easier it should be.  On the flip side: the less common it is, the more difficult it can be.

No Comment

Inspired in large part by Matt Gemmell’s decision to finally turn off comments, I have decided that I’m done with them too.  Frankly, I’m just tired of the spam.  Comments really don’t add much value to a blog post and there will always be ways to provide feedback to me on anything I write.

So, if you have something productive to add to the conversation, tweet at me (@brentschooley) or find me on any of the social networks listed at the top right of this site.

Design decisions, guided learning approach, and NetAdvantage Reporting

One of the products I work on at Infragistics, NetAdvantage Reporting, just launched its first version.  The team put a lot of work into making a polished product and I’m very proud of what was released.  One of the goals of the product was to make it very easy to use.  In  the process of working towards that goal, many design decisions had to be made.  I go into detail about one of those (Guided learning) here on the Infragistics blogs.

If you’re in the market for a new reporting tool or just feel like your current one could be better, you should definitely check out NetAdvantage Reporting.

It pays to be persistent with Siri

Sometimes Siri can be stubborn but if you have a hunch that it will do something, just keep trying.  I really wanted Siri to tell me a story so I kept at it.  Eventually Siri relented me and gave me a pretty good laugh in the process:

 

Steve Jobs 1955-2011

Steve Jobs passed away today at the age of 56.  As I sit here writing this post on a MacBook Pro with an iPhone in my pocket and an iPod Nano in my backpack, I can’t help but be overwhelmed by the news.  The technologies and design concepts this man helped create have literally changed the world for the better.

Thank you for everything you contributed to society, Steve.  You will be missed.

Fix for Expression Blend 4 crashing on startup

If you are among the many .NET developers who have recently installed Visual Studio 11 Developer Preview and are installing the recently released Windows Phone SDK 7.1 (Mango) RTW, you may find that Expression Blend 4 is crashing when you attempt to run it.  In fact, if you debug it you’ll find you are getting a System.ExecutionEngineException.  This is due to an issue in the .NET 4.5 version that was installed as part of VS11.  To get Blend back up and running you’ll need to run the following commands from the Command Prompt:

 %windir%\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "%ProgramFiles(x86)%\Microsoft Expression\Blend 4\Microsoft.Expression.Framework.dll"
 %windir%\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "%ProgramFiles(x86)%\Microsoft Expression\Blend 4\Microsoft.Expression.Blend.dll"
 %windir%\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "%ProgramFiles(x86)%\Microsoft Expression\Blend 4\Microsoft.Expression.Project.dll"
 %windir%\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "%ProgramFiles(x86)%\Microsoft Expression\Blend 4\Microsoft.Expression.WindowsPhone.dll"

Happy Blending!