Windows 8 Picture Password on domain linked machine

If you’ve been using Windows Developer Preview on a machine linked to a domain, you may have been disappointed to find that you do not have the option to try the new Picture Password mode of authentication. This is because Microsoft has disabled it in domain linked machine by default for security reasons.  If you would like to try Picture Password you will need to change some settings in the registry (at your own risk!).  Here are the changes you need to make:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]

“AllowDomainPicturePassword”=dword:00000001

“AllowDomainPINLogon”=dword:00000001

If you don’t know how to make this change, it might be a good idea to skip this tip!

Metro Snack #2: What is WinRT?

What is WinRT?

It doesn’t seem like a great idea to go into a series of posts talking about Metro-style apps without briefly defining the core components that they are built on.  The most fundamental piece of the puzzle for these apps is Windows Runtime, or WinRT for short.  WinRT is probably best described as an unmanaged, native API that can be leveraged from many different languages via a mechanism called language projection.  Read more to find out some more details about how WinRT works.

Continue reading

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: