Thank you Codestock

I greatly enjoyed the Codestock conference this year.  The new venue is definitely a move in the right direction.  Downtown Knoxville is a fantastic area – at least once I got oriented and discovered Market Street.

I mentioned several tools during my Advanced Windows Phone 7 development talk.  Here are the links:

To replace the default Windows Phone image with unlocked WP7 image (build 6176), follow this link: .  Drop the image into C:\Program Files (x86)\Microsoft SDKs\WindowsPhone\v7.0\Emulation\Images and rename it wm70C1.bin .

For the application bar icons go here:

Stephane Crozatier’s implementation of the Pivot Control and Panorama Control (variations on the Hub concept) can be downloaded here:

Laurent Bugnion’s MVVM Lite framework, which includes templates for Windows Phone, is available here: 

Be sure to review the Windows Phone UI Design and Interaction Guidelines:

I also want to point everyone to a fantastic resource for learning Windows Phone Silverlight development I recently discovered.  It is Roberto Brunetti’s blog.  It is in Italian but is nevertheless fairly easy to follow thanks to his excellent use of images and code samples: .

Be cool, Codestock is coming


After the Silverlight Atlanta meetup tomorrow night, I will be driving to Knoxville for Codestock 2010 with Jeremy Likness, Corey Schuman and others.  

I’ll be presenting on Intellitrace early Friday morning and on Advanced Silverlight for Windows Phone 7 development on Saturday afternoon.

Codestock is led by Michael Neel a d has been growing every year.  If you plan to be there, tweet me @jamesashley and we can meet up.

Natural User Interface and Semiotics


The icons above are prescribed (promoted?) for Windows Phone 7 development.

When dealing with limited screen real estate, it is important to use what space one has effectively.  One way to accomplish this is to use icons rather than text to cue the user about the functionality of a phone application.

Iconography is intimately tied to the development of what people are calling the Natural User Interface (NUI) which is to be distinguished from the Graphical User Interface (GUI) that has predominated in software devices and PC’s since the mid-90’s.

The main input device for GUI’s has (let us say, in a qualified manner, “always”) been the mouse.  The main input device for NUI’s, on the other hand, is the finger, facilitated by touch sensitive devices and touch recognition software.

(Missing from these moments in the evolution of the software interface is Speech UI, which has never seemed to catch on.  This was the dominant UI foreseen by precogs of the 50’s and 60’s.  In part this may have been due to the fact that SUI is a technology that can easily be described in print sci-fi literature, whereas a NUI interface is less so.  A generation raised up on Star Trek – to which we are indebted for the design of our cell phones as well as the sliding doors at Walmart – thought it was a sure thing.  Strangely it has been largely skipped over at the very time when the processing power of computers and devices makes it plausible.  One possible explanation for this is that it simply took too long to get the hardware up to snuff and another generation of designers – one influenced by Tom Cruise’s The Minority Report rather than Star Trek – came along.  With advances in CGI, NUI is much more compelling than SUI in movies, and discards the print-based underpinnings of speech UI.  Another possibility, however, is that Speech Recognition simply got bogged down by the baggage of AI and the desire not only to make speech interfaces effective but also to give them a personality.)

So what makes a Natural User Interface natural?  For one thing, it removes the input device – whether a mouse or a keyboard – as the intermediary between the user and the device.  It is an unmediated interface.

But is this truly more natural?  Isn’t one of the definitions of humanity that we are tool using creatures.  Our interaction with the world is always mediated by tools that extend our natural capabilities.  We have swords in place of claws, books in place of memory, and wireless keyboard\mouse combinations in place of … what?  Fingers?

Looking at this from a different perspective, one of the criteria for the success of NUI will be that people intuitively understand how to use it.  For this, however, more will be required than simply having touch sensitive devices.  The UI’s created with NUI must also be intuitive.  People must be able to use an application without first reading the manual (which they haven’t done for generations, anyways).

Here we have an opening for a discussion of semiotics.  Semiotics is simply the study of signs.  (Tom Hanks — the other Tom —plays a semiotician in the Dan Brown inspired movies, though he is not called that.)  The study of signs includes language.  It includes codes.  It especially includes icons.

One of the common observations about signs is that they are natural and universal.

One can look at Egyptian hieroglyphics and, even without a Rosetta stone, have a feeling that one understands them.  Smoke always indicates fire.  Red, in the natural world, seems to often indicate danger.  An arrow seems to always draw one’s attention in a certain direction: up, down, left, right.  We intuitively understand why our distant ancestors used signs as a primitive form of writing – the meaning can be culled out of symbols without apparent cultural context.  Symbols (and gestures) can be used to communicate when there is no other common language between people.

One of the remarkable observations discovered by Semiotics as a professional discipline is that there is always a cultural aspect to signs.  Even in using simple signs, two people have to quickly agree, in the moment, on what they mean by apparently obvious glyphs.  Does a yellow light mean “slow down” or “speed up”?  When I point do I mean this item here or the one slightly to its left?  When I laugh, am I laughing with you or at you? 

All meaning is based on agreement.  As Umberto Eco might put it, we know this because we can disagree about meaning.  The definition of a sign, then, is not simply something that stands for something else, but rather something that can be misunderstood.

In designing glyphs for the Windows Phone 7 device, then, we must work with signs that can be misunderstood and are obligated to try to make them univocal in meaning.  This is one reason why the designers of the WP7 platform strongly recommend that everyone use this particular set of icons.  If everyone uses the same glyphs, there is less room for misunderstanding.

The requirement that we all come to a common understanding of what these glyphs represent also opens up the possibility that the meaning of these glyphs will change over time.  There is also the theoretical possibility that these glyphs currently mean nothing at all.  Each glyph is simply an arrangement of pixels.  It will be up to Windows Phone application designers to determine how they should be used.

Paul L. Snyder, a friend on the “Semiotics and Technology” forum, makes the following observations about these signs:

Consider the types of symbols in this collection.  We have:

* Symbols that depict a particular object, with the intent of evoking an association with that object’s primary function (an SLR camera, an envelope, an film-driven movie camera, a file folder, a present, a trash can, a pencil)

* Symbols that suggest a general idea, in the hopes that it can be related to a contextual activity (a minus sign, a plus sign, arrows, a check mark, an ‘X’, a star, a question mark)

* Symbols that rely primarily on already-established conventions outside of the computer realm (play/pause/ff/rewind)

* Composite symbols that try to suggest a more complicated idea (a star with a superimposed ‘+’, arrows pointing to a bar, two curved arrows suggesting a loop

It’s interesting to consider these symbols in light of the theory of ‘icons’ that Umberto Eco critiques in chapter 3 (see p.191, I know we aren’t there yet). Clearly, these icons are striving to be icons in a similar sense, as they are intended to:

* have the same properties as their objects,

* be similar to their objects,

* be analogous to their objects, or

* be motivated by their objects

(though I’m less sure about that last one).  Each of the symbols (with the possible exception of the large circle, for which I can’t guess a probable meaning) is hoping to rely on pre-existing culturally-coded conventions, with lesser or greater degrees of similitude.  By providing a hook that is "similar" to the action that the icon is intended to indicate, the hope is to make it easier for the user to store a mental model of these associations.  In some cases (such as the gear) this may be quite loose.  It’s interesting that several of the icons (movie camera, floppy disk) used depictions of outmoded technology in an attempt to make their meaning clearer.

Perhaps one thing that semiotics can do here is to point us to the culturally coded nature of the associations being used, which can be a starting point for assessing the probably efficacy of the symbol selections (though even so, nothing is a substitute for actual end-user testing).

How to become a Silverlight Expert


I am a Silverlight Expert (And So Can You!).

You may have come across this con before.  You find a short ad in a magazine or a newspaper or a flyer that offers you a secret recipe for making lots and lots of money from your home.  All you have to do is send in $10.

A friend of a friend of a friend of mine actually did this.  The secret recipe is that you create an ad in a magazine or a newspaper or a flyer offering a secret recipe for making lots and lots of money and all people have to do is send you $10.

If you google (or google on Bing) for a Silverlight Expert you are likely to come across this blog entry by Caleb Jenkins: 5 Steps to becoming a Silverlight Expert in which Caleb pretty much explains the secret recipe.  You write a blog post with the words “Silverlight” and “Expert” in it and, wham, bam, there you go.  Instantaneous SEO success.  Put Silverlight Expert in your meta tags (go ahead and check mine now, if you like; I’ll wait) and there you go.  More SEO magic.  Link anchors to other sites that score high for this particular set of keywords is also very effective.

In addition to Caleb, a Silverlight Expert search on the web will likely bring up Erik Mork, Corey Schuman and Shawn Wildermuth.  For the record, they all really are Silverlight experts just as Caleb really is.  Erik and Corey are recognized by Microsoft as Silverlight MVPs and Caleb is an ASP.NET MVP.  Shawn has been an institution in the MVP program for a decade.

Besides saying you are a Silverlight expert, you can also, of course, pay to be a Silverlight expert.  A google search today will lead with three paid spots for Northridge Interactive, Implicit Web and Axmor.  Are they Silverlight experts?  I don’t really know.  All I can say is that paying to be recognized as Silverlight experts doesn’t mean you are not Silverlight experts.

You may have come across this joke before:

Socrates: “To be is to do."

Sartre: "To do is to be."

Sinatra: "Do Be Do Be Do."

I first came across it in a 1985 Luc Besson film called Subway starring Christopher Lambert (of Highlander fame).  It exemplifies, trivializes and then revitalizes an ancient philosophical debate between the man of action and the man of words about what is the best life – that is, a debate between the politician and the philosopher/scientist.

For the politician, words and public speaking are a form of doing – it has a goal, to convince the polis on a course of action.  For the philosopher, action is a form of being.  What we do reveals the sort of person we are – and so we must choose our actions carefully.  Socrates drinks the hemlock because that is the sort of man he is.

Only in modern times have we thrown up a third option for the best life – a life achieved through marketing.  We should give a nod to the German transcendentalists for laying the groundwork for this third way, since they developed and expanded on the concept of “appearing.”

In the world of marketing, “to appear” to be something is “to be” it.  The world is nothing more than a representation, after all — a collective agreement on what we value and what we believe.  Both the speeches of Pericles and the final moments of Socrates in the Apology can now be seen as great marketing moments that were memorable as well as influential.  If we could only go back in time and get a product placement in there somehow.

In a virtual world dominated by marketing, the secret recipe to success seems to be a recognition that “to say” is “to do”.  If you don’t believe me, just check Wikipedia.

If you want to “really” be a Silverlight expert, however, then there just are no shortcuts.  You’ll have to just do it*.

[* “Just do it” was coined by marketing guru Dan Wieden for an extremely successful Nike campaign and is probably copyrighted. According to the film Art & Copy it was inspired by the last words of a death row inmate as he was waiting to be executed.]

Learning to program Windows Phone 7


The Windows Phone 7 platform is so new, there is still a dearth of material for learning to program on it.  Pete Brown and Jesse Liberty have opined that if you know Silverlight then you are already a WP7 developer.  This is true up to a point.  If you already know how to program Silverlight or XNA you definitely have a leg up.  But as everyone knows, it’s that last mile that counts.

I’ve previously recommended Charles Petzold’s preview for his upcoming book Programming Windows Phone 7 Series.

It provides a pretty thorough overview of the technology and gives equal air-time to both Silverlight as well as XNA.  Plus Charles Petzold is a pleasure to read.

I would also highly recommend the WP7 Training Kit provided by Channel 9.

The WP7 Training Kit provides code and tutorials that walk you through the basic (and a little bit of advanced) skills you’ll need to start building Silverlight-based WP7 apps.  Mercifully, it goes beyond the Hello World level of Windows Phone 7 tutorial that is currently prevalent on the web.

You should also, of course, hit the Windows Phone forums to see what other people are discovering.  Mark Chamberlain posted a great list of WP7 links on the forum for code samples and code walkthroughs.

If you randomly browse the web for Windows Phone help, I want to warn you in advance of Windows Phone tutorials that turn out to be Silverlight tutorials simply transposed for the phone.  If you see one of these, run.  Run fast.


The Imaginative Universal is the blog site of James Ashley.
James is a mild-manered software writer in Atlanta, Georgia and a consultant in emerging technologies like Kinect, Oculus Rift, Hololens, Unity3D and openFrameworks. For several years he was a Presentation Layer Architect at Razorfish.   The views expressed on this blog are James’s alone, and do not reflect the public or private positions of his employer.
James used to run the Silverlight Atlanta User Group.  He was also the lead organizer of ReMIX Atlanta, a code + art conference in Atlanta that ran from 2011 to 2013.
James is a current Microsoft Kinect MVP and a former Client App Dev MVP. He is the author of Beginning Kinect Programming published by Apress.

Contact James by email:

His twitter handle is @jamesashley

This site is hosted by OrcsWeb.

Free Windows Phone 7 Devices


According to the twitter rumor mill, certificates for free Windows Phone 7 devices are being handed out to select attendees at this year’s Tech-Ed North America in New Orleans (to be accurate 50 of them, according to Brandon Watson).

Looking past some of the grumbling from a few MIX10 attendees who feel they should have gotten a shot at the phones (we all got free Azure t-shirts left in our hotel rooms, didn’t we?), this is very exciting news.  It suggests that a large number of Windows Phone devices are ready and will soon become available to WP7 developers.

<hypothetical>WP7 DEVICES for Phone application developers will soon be generally – more or less — AVAILABLE!  Woohoo!</hypothetical>

For the past month or so I’ve been peering at these devices over the shoulders of Microsoft evangelists.  At MIX I surreptitiously saw one hanging out of the pocket of a project manager on the Phone team.  I don’t think I even saw one at the MVP Summit in February.

So how does one get one’s hands on the upcoming series of phones for developers?  I have no hard information, but a good bet is to sign up for the Windows Phone Marketplace.

It’s $99 for a year – a very good price if you plan to develop Windows Phone applications in time for the Holiday launch later this year.  And if, by chance, that registration puts you on a list to potentially get a WP7 device – well that’s just gravy, isn’t it?

The big message I’m hearing, though, is that you should really come up with a great idea for a phone app before asking for a phone.  Microsoft isn’t looking to hand out phones so you can, only at that point, start thinking about what you might want to build.  That would be putting the cart before the handheld device.

How To Launch A Cat


In his wonderful book, Sketching User Experiences, Bill Buxton identifies the 15th century notebooks of Mariano di Jacobi detto Taccola on military technology as some of the earliest examples of “sketching".  Buxton continues by explaining what he means by “sketching”: suggestive, unfinished illustrations of concepts that are provocative rather than didactic.

The illustration above comes from a 16th century Bavarian work called the Buechsenmeisterei or Artillery Master’s Manual.  The anonymous ink and watercolor illustration is labeled “How to Launch a Cat” and is part of the Getty Museum’s collection in Los Angeles. The drawing depicts a cat with a rocket strapped to its back. It appears to be a sketch demonstrating the possible military application of felines in siege warfare.  It may just as well, of course, be a sketch of novel ways to dispose of cats.

“There is more than one way to skin a cat” turns out to be an incorrect translation of an old German proverb.  The correct saying is, of course, “there is more than one way to launch a cat.”  Placed in its proper context, this saying makes much more sense.

There are also many ways to launch a new business – perhaps as many ways as there are to launch a cat.  I am in the process of doing so now.  The business does not involve cats – though it does involve friends.

I am aware of the common adage that one should never go into business with relatives or cats, no matter how cool they may be.  Nevertheless, I find the prospect of launching a cat with my friends to be infinitely appealing.  It is an opportunity to turn work into play.

And all we need do is wait until the cat is up, up and away.

Danger of Drowning

tybee 002

Habit is often considered a bad thing these days.  It is associated with “bad” things such as smoking cigarettes, chewing nails and eating too much candy.  There are also “good” habits, of course, such as flossing and rebooting your computer regularly.

Aristotle based his ethical system on the notion of forming good habits.  In order to achieve something difficult like “virtue”, he felt, we have to train ourselves to have “good” habits.  This is best achieved by having good mentors and good friends (and it doesn’t hurt to belong to a good city-state) who reinforce the habits we ought to have.

Perhaps too much is made of the distinction, but we currently live in a zeitgeist dominated by Kantian rather than Aristotelian ethics.  In a Kantian system (ours) we judge not good people but rather good deeds.  Moreover a deed is good based not on its results (baby saved from drowning, people can fish for themselves) but rather by the attitude in which it was done.  If an action is done out of a sense of obligation to do good in general, then it is truly good.  If it is done out of a sense of accomplishment – then not so good.

I am making these broad-brush statements about ethics mainly because I am breaking some habits.  I recently moved from my trusted web-host of 5+ years,, to orcsweb.  I have also switched my blog engine from dasBlog to BlogEngine.NET. 

While I firmly believe in the importance of cultivating good habits and am a fervent admirer of the Nichomachean Ethics, I nevertheless sometimes feel the need for a change. is great (especially for developers) but I couldn’t beat free hosting orcsweb was offering for Microsoft MVPs.  Similarly, dasBlog has been very nice over the years (though I’m certain I had it configured incorrectly) but it hasn’t been developed on for a while.  Perhaps everything is perfect with dasBlog the way it is.  All the same, I like the idea of a blog engine that is still being worked on and still has room for improvement.  The last update to BlogEngine.NET was three months ago.  We might say that is still trying to inculcate good habits into its code-base. 

One of my personal habits is an occasional desire to jump into the abyss.  I call this a habit because, when the notion hits me to try out something new, I immediately get a sick feeling in my stomach.  This is when the habit comes into play.  When this vertiginous feeling overcomes me, long-established habit tells me to leap forward rather than fall back.

It is a small thing and reveals itself in small ways.  Nevertheless, I feel it is a good habit and one worth cultivating.