Keeping up to date on the New Brunswick Innovation Forum

I was just (re)visiting the site for the New Brunswick Innovation Forum coming November 2-3, 2011 in Fredericton, NB.

This looks like a very worthwhile event, and I hope to attend.

To that end, I thought I would sign up for updates (using the link on the event’s site). This where it became sadly amusing. The only channel for getting updates is via an email subscription, using a very “last millennium” looking form. It seems very ironic that an event entirely focused on technology, innovation, and the digital economy, does not use any social networking channels to promote itself?

Note that I am not criticizing the event, or those who spend (I am sure) a great deal of time organizing it and putting it on. I am just pointing out a little bit of irony!

Make Your SharePoint 2010 Master Page Extensible with Delegate Controls

I have been playing a lot the last little while with SharePoint 2010 Delegate Controls. I have known about them for a ling time, but have never really delved into them all that much.

Most of the examples I have looked at, and the usage ideas I have seen, involve using the existing delegate controls in V4.master to do things like:

  • Modify the Welcome Menu
  • Customize the Global Navigation
  • Add useful code to the page header

Last week, I used a delegate control for something a little different.

For a project I am working on, the client wanted some functionality displayed just below the Quick Launch, on every page in the site collection. I know there are lots of ways to do this (put a user control on the master page, put a web part on the master page, or just put links on the master page, since that’s all the content was in this case).

But then I thought of a little bit more elegant (to me) solution. Rather than explicitly putting the content on the master page, I added a delegate control of my own to the page, and placed it just below the Quick Launch, as shown below.


Several things to note here:

  • I gave it a ControlID specific to my application;
  • I set AllowMultipleControls to true, which will be useful later
  • I included default content in the <Template_Controls> element, so that I could see it change when I activate a Feature with an appropriate control.
  • Next, I implemented a Feature in Visual Studio 2010, with a control to replace the default content. The details of how to do this are covered in other places (such as here), but to summarize:
  • I created an empty Visual Studio 2010 project;
  • I created a user control inside the project (this automatically mapped the ControlTemplates folder for me). It is a very simple user control, and simply displays “Hello, Delegate!”
  • I created an appropriate elements.xml file to map my control to the Delegate Control’s ControlID.

So, here we see the how the delegate looks before I deploy my feature:


After I deploy my Feature, we see that the default content is replaced with the Feature’s control’s output:


But wait, there’s more! Remember that I set AllowMultipleControls to true? That allows me to deploy multiple features with controls that map to my ControlId, and instead of only displaying the one with the lowest Sequence attribute, it will stack them all in order of Sequence number, as shown below.


This means that I can add any number of  things to the area under the Quick Launch without further customizing the the Master Page.

Maybe I am just easily amused, but I thought that was pretty neat!

The source for this, including the master page, is available here.

If a phone is launched in the forest, does anyone hear it?

This is a bit of a rant (I do that a lot, don’t I?) Partly it is a rant about Microsoft and its Windows Phone 7 launch. It is also partly a rant about our local Bell Mobility retailer, and their complete lack of customer service or sales skills.

I am in the market for a new smart phone. My current phone is a 3 year old HTC touch, which I like, but it beginning to show its age. Over the past few weeks, I have been looking at both the iPhone 4 and the Samsung Galaxy S. I like the iPhone, but am pretty much anti-Apple because I do not really approve of either the undeserved hype around their products, or their obsessively controlling attitude towards developers and users alike. The Galaxy S looks like an interesting option, however.

For the sake of completeness, however, I wanted to wait and have a look at a Windows Phone 7 device. I am tied to Bell, so unfortunately my only choice would be the LG Optimus Quantum. I am not a fan of slide out keyboards, but I thought I would give it a chance.

I have been faithfully watching the Bell Mobility site for news of the launch. That was a waste of time. Even now, on launch day, there is no information, just a form to fill out to “get more information when it is available”. Last night (November 7) I did get an email from Bell saying the device would be available in their stores today.


So today I go to my local Bell partner retailer (Sounds Fantastic in Moncton). Actually, I tried calling Sounds first to save myself a wasted trip, but three calls over the course of a couple hours all went unanswered. I figured they must be really busy. So, I decided to visit the store on my lunch break. Not busy at all – in fact, no one there. So I was able to very quickly get the attention of a helpful sales parson. After a brief sequence of questions and one-word, grunting responses, I learned the following.

They do not have any Windows Phone 7 devices.

He does not know when/if they are getting any.

No, he does not know if anyone else in the area is getting any.

No, the guy who might know if they are getting any is not in today.

Not very helpful. He could have maybe taken my name, or tried to find out the information I needed. But he was too busy (even with no other customers in the store).

So that is my rant about Sounds Fantastic. I was very disappointed by the service, but not surprised. It sort of matches all my other experiences there (on the mobility side, anyway – they seem to be completely different business).

Now to talk about Microsoft, and the Windows Phone 7 launch in general.

How can a major tech corporation manage to launch a major new product, and yet generate no hype whatsoever. I have commented on this before. It seems to me that Microsoft’s biggest weakness right now (and for most of the last decade) is its marketing department. Microsoft makes some very cool technology. In my opinion, they are at least as innovative as Apple, and probably more so (at least they are innovative across a much broader spectrum of technologies and solutions).

But lets looks at Microsoft’s marketing track record (especially marketing to the consumer market – their marketing to the enterprise seems pretty good).

  • Tablet PC: Microsoft launched the Tablet PC back in 2002. Since about 2005 it has been a viable platform. I have been using productively that entire time. And yet, even up to about a year ago, I would have people see me in airports, on airplanes, and many other places, ask me what they device was I was using, and be surprised that anything like that existed. Microsoft completely and utterly failed to communicate the existence of this technology outside of the hard-core techie community. And even within that community, they failed to communicate the power of the platform, or to entice developers to develop for it.
  • Windows Vista: Where to begin on Windows Vista? To be clear here, Windows Vista was far more of a marketing failure than a technology failure.  Yes, Vista had its problems. The vast majority of them (in my opinion) were due to third party driver and application updates or lack thereof – this is of course a marketing/product management issue as well. Vista’s biggest problem was public opinion, and failed marketing. For how long did Microsoft sit back and watch while a certain competitor raked them over the coals with very popular and effective TV commercials? When Microsoft marketing did respond, what was the best they could do? Seinfeld and Gates in obscure, bizarre skits? Please.
  • Microsoft Surface: Ok, this is not a consumer-oriented device (yet), but it is an example of Microsoft coming up with really cool technology and then actively hiding it from the world. Until a year ago, it was very difficult to get any information about it at all. Buying one was damn near impossible. Even now, people look at it and say “hey, that’s copying the iPad” – not knowing it has been around for 3 years.
  • Windows Phone 7: Major new launch, and no hype or energy at all, outside of hard core Microsoft circles. A few articles here and there. Even mobile service providers carrying the devices have almost nothing on their web sites about the devices, and then it is buried. And then I go to a store to look at one, and there are none.  Not “we had some but they are sold out”, just “we have none”. I realize I live in a backwater of the world, but it is amazing to me to see how little attention Microsoft has generated for this launch.

This to me is indicative of what truly ails Microsoft right now. In the enterprise market, they are very healthy. But in the consumer market, they cannot generate any hype. As everyone in this business (or any business) knows, you can have the best products and technology on the planet, but if you cannot get the word out, get people excited, and manage consumer perceptions of your products, you will fail!

Update: After my experience trying to look at a Windows Phone 7 device at Sounds Fantastic, I decided to reply to the above Bell email, asking why there were none at my local Bell dealer. Yes, I know it would bounce because that message was obviously form an auto-mailer. I did get an automated response, though:


Good enough. I happily click through the l;ink to voice my concerns – only to see the following page:


Just not my day for talking to Bell Sad smile

Bill Buxton: “NUI – What’s in a name?”

Recently (early October) Bill Buxton gave another talk nominally about Natural User Interfaces. For those who don’t know, Bill is Principal Researcher at Microsoft Research and has a 30 year involvement in research, design and commentary around human aspects of technology, and digital tools for creative endeavour, including music, film and industrial design (and a lot of other things, but I am not going to copy and paste his whole bio!).

The presentation, given at Microsoft Development Center Copenhagen, covers a lot more than just current ideas around NUIs. It looks back at the history of efforts to develop natural and touch user interfaces going back to the early 70s, as well as looking at what exactly we are trying to accomplish with these UI paradigms, what natural really means in a UI, and what makes good design in general.

While I highly recommend taking the time to watch the entire video, here are a few points I found really interesting:

  • The “Long Nose”: the concept of the “Long Tail” turned around, indicating that technologies (even successful ones) have a very long lifetime before they get on anyone’s radar, and in fact are usually in existence for about 20 years before they become major industries. This interesting implication of this, is that if you are looking for technologies that will be game-changers (can’t believe I used that term – I hate it) 10 years from now, you need to be looking that technologies that have been around for 10 years already.
  • Ask what your idea is worst at: Every idea is best at something and worst at something. It is just as important to be able to identify what your idea is least suited for as what it is best at.
  • You do not succeed in spite of your failures; you succeed because of your failures.
  • There is nothing all that new or revolutionary in the iPhone, iPad, Surface, or any other tablet-like devices. Most of the technology they rely upon has existed for 20-30 years or more).
  • Many people are stunned by how far technology has come (smart phones, touch interfaces, etc.), when really it is surprising how little progress has been made, given where things were in the 70s and 80s.
  • Most of us still carry around paper notebooks of some sort in order to scribble notes, sketch ideas, etc. We were getting to the point of replacing them with Tablet PCs. Unfortunately that is going away now with the current  generation of smartphones and slates, since they have done away with the stylus because marketing people have told us (so it must be true) that we do not want to take notes or make sketches.
  • The next generation of natural user interfaces need to be context aware. Not software context aware, but real context – where am I, what is the environment, what are the constraints.
  • Why the buttons on women’s clothes are all wrong!

Those are just the things I found interesting. The video is about 90 minutes long (60 minutes of presentation, 30 of Q & A), but it is well worth the time it takes to watch.

Neil Young’s “Le Noise”

I have just finished listening to Neil Young’s new "Le Noise" for the third time tonight (it is not actually out until the 28th, but you can stream it, legally, from various sites on the inter-web). The more I listen to it, the more impressed I am with it. Musically, it is very different – mostly just Neil solo with a heavily distorted guitar, plus some very interesting sonic adjustments from producer Daniel Langois (I saw one comment describe the sound as "a one man Crazy horse"). This is an album for sitting in the dark and absorbing (kinda like old Floyd, but in a different way). It may drift a little into the "it is art, but is it rock" category, but it is definitely original (and good, in my mind). What I have always loved about Neil – not afraid to do new things (and old things, too!).

I also read an interesting thing about the recording of the album (which I guess was done at Langois’ LA mansion) – apparently Neil would only record on nights with a full moon 🙂

Long live Neil!

So the iPad comes to Canada – whither 3G?

So I see that they have announced iPad availability in Canada for May 28, with pre-orders starting May 10.

I am of two minds about the iPad. On the one hand, I think it is really a consumer-oriented toy, missing a great deal of functionality (for example the ability to take notes with a stylus, etc.). On the other hand, as a glorified eBook reader, with “just enough” other functionality to make it worthwhile, it is a pretty neat gadget, and I do like my gadgets!

The biggest question for me, though, is 3G access. Will Apple cut deals in Canada to provide reasonably priced 3G access for the iPad (like the $29.95 “all you can eat” plan in the US)? Given the greed of Canada’s carriers, I highly doubt it. I currently have a multitouch convertable tablet (that does everything the iPad does, and more, by the way) with a built in 3G card – and the rates here in Canada are absurd for that.

Mobility is key with a device such as the iPad. And without reasonable 3G rates, its 3G (and hence its mobile) capability is pretty much useless.

Some challenges with MS Surface Development

So I have been playing with the MS Surface for a couple of weeks, and have a pretty good handle on the basics of the development model. As I said previsouly, the nice thing (for me, anyway) is that it is pretty standard .NET stuff. You can do pretty much anything you need to using Windows Presentation Foundation (WPF). That being said, it is not without its challenges, and I would like to share some of what I have seen so far. 

1) The SDK only installs on 32-bit Windows Vista. This is a challenge for me, since my T4G laptop is running XP, and all of my other computers are running 64-bit Windows 7. The big value of the SDK is that it contains a “Surface Simulator” which allows you to experiment with Surface development without actually having a Surface. I tried setting up a 32-bit Vista VM to use for the SDK, but the simulator does not work in the VM. Now the good news, after a couple of weeks of messing around, I managed to hack the .msi file for the SDK, which then allowed me to install on 64-bit Win7. All seems to work great now.  

2) WPF experience is hard to come by. I can program in WPF, and understand how it works, but when it comes to the fancy styling and more creative aspects of what you can do with XAML, I am definitely no expert. Apparently, neither is anyone else I know!

3) Changing the way you think about the user interface. This is the biggy. The UI model for the Surface is different than anything else with which I have worked. yes, it is a multi-touch platform, which is cool, but hardly unique. If all you want to do is develope multi-touch apps, you can do it much more cheaply on a multi-touch PC (both WPF and Silverlight now support multi-touch development on Windows 7). The unique aspects of the Surface are that it is social, immersive, 360-degree, and supports interaction with physical objects. In order to make full use of the Surface platform, you have to think about all of these things. You also have to break old habits regarding how the user interacts with the platform. We are used to menus, text boxes, check boxes, drop downs and all the usual UI components we have lived with for so long in desktop applications. Or the content and navigation models we are used to on the web. The Surface requires us to forget all of that, and think of interaction in a new way. In this sense, it is more like iPhone development. However, even iPhone development gives you a fairly strict environment which defines how your app ahould look. The Surface on the other hand, is wide open. You can create almost any interaction model you can imagine, supporting multiple user working either independantly or collaboratively, working from any or all sides of the screen, with or without physical objects. This requires a whole new way of thinking, at least for me.

4) Ideas. This is another big challenge. I have lots of ideas for applications for the Surface. Some of them I am pretty sure are good. Some of those are even useful. Some of my other ideas are probably downright stupid. I would like to hear your ideas. I have always believed that, the more people you have coming up with ideas, and the more ideas you come up with, the better your chances of finding great ideas. So shoot me email with any or all ideas you might have – and don’t worry, they cannot be any more silly than some of mine!

Finally, I have added a little video showing just how far you can go with the Surface UI. Hopefully in the next couple of days, I will have a video of some of what I am working on to show.

DaVinci (Microsoft Surface Physics Illustrator) from Razorfish – Emerging Experiences on Vimeo.

First Thoughts on Microsoft Surface Development

A brand new Microsoft Surface development unit arrived this week in the Moncton T4G office. As I start to develop some prototypes, I will be doing some related posts, but I wanted to start by talking about the platform a little, and the development environment.

For anyone who has no idea what the surface is, it is a multi-user, multi-touch platform released by Microsoft a couple of years ago. Have a look at this video to see what it can do.

Other the last few weeks, before the unit arrived, I have learned quite a bit about the Surface. The first interesting thing I learned was the the surface is not a touch screen in the sense that your iPhone or multi-touch laptop are. The surface of the Surface is just glass – it is not a capacitative or pressure sensitive material at all. All of the touch behaviours and interactions are based instead on a computer vision system. Inside the box there is a fairly standard PC running Windows Vista, with an DLP projector pushing the image up to the table top. There are also 5 cameras inside the box which perform the actual "vision". These feed into a custom DSP board which analyses the camera feeds into something a little more manageable for the PC. The fact that it is a vision-based system leads to some interesting capabilities, as well as some idiosyncrasies.

When the Surface is running in user mode, the Windows Vista UI is completely suppressed. There are no menus, no windows, and no UAC dialogs – nothing that would indicate it is even running Windows. There is also an Administrator mode which shows a standard Vista UI for administrative functions or for development.   

As far as development goes, the good news is that it is all pretty standard stuff. There are two approaches to programming for the Surface. The first is to use the Microsoft XNA Studio platform, the other is to use Windows Presentation Foundation (WPF). Using XNA gives you a little bit more power, as well as access to more of the "lower level" information like raw images from the video feed. Using WPF is a higher-level programming model, and comes with a set of controls specific to the Surface UI model. The nice thing is that all you know about .NET and WPF programming applies to the surface. And from a larger architectural perspective, Surface can tie into any infrastructure accessible to any other .NET-based model. It is just a different .NET UI layer.

The bigger challenge in developing for the Surface is changing the way we think about the UI, and selecting the right solutions. First and foremost, Surface applications are not just a port of a standard Windows UI. Stop thinking about Windows, Icons, Menus and Pointers (WIMP). The surface calls for a completely different models, one that I am just learning. One of the interesting statement I have read describing the Surface model is "the content is the application."
The Surface is more than just a multi-touch platform. Sure, you could implement a multi-touch solution on the Surface exactly the same as a Windows 7 multi-touch solution, but that is only using a subset of the Surface capabilities. The key characteristics of Surface interaction are:

  • multi-user, multi-touch (up to 52 simultaneous touch points)

  • social interaction – multiple simultaneous users, collaborating or working independently

  • 360 degree user interface – users on all sides of Surface at the same time, with UI oriented to support all of them

  • Natural and immersive – like the physical world, only better

  • Support for physical objects integrated into the experience (tokens, cards, game pieces, merchandise)

When it comes to selecting a solution to deploy on the Surface, the two most important keywords are "social" and "immersive". Social, because the best Surface applications are those in which the computer is not replacing human interaction, it is enhancing it. Immersive, because you want the user(s) to forget that they are using a computer, and to only be thinking about what they want to accomplish. The how should be transparent.

Over the coming days and weeks, I will post more about the Surface and what we are doing with it. Hopefully next week I will be able to post a short video. If you have any thoughts or suggestions, I would love to hear them.

What Should a Slate Tablet Look Like Today? Revisited

A while back I wrote a post What Should a Slate Tablet Look Like Today?. I thought it would be interesting to revisit the post in light of Apple’s iPad launch this week.

Looking back at that post, here is what I listed as my primary requirements:

  1. A form factor similar to the Kindle DX (maybe a larger screen, but similar thickness);
  2. A real back-lit screen – maybe with the ability to turn off back light to conserve power. Without backlight, should look as good as Kindle;
  3. Ink input – and maybe touch;
  4. Running a full OS – a light version of Windows or a Linux distribution (I do not want just an eBook reader);
  5. Software support: Reader for PDF and Office, etc., eMail, Browser, OneNote-like app, Media support;
  6. No extras: no modem, no optical drive, minimal ports, no video out, no web cam;
  7. No HDD – maybe an SDD, maybe the OS in ROM or something;
  8. No keyboard except maybe by USB or Bluetooth;
  9. Maybe assume that most applications I need will be in Browser (cannot believe I said that lol);
  10. Price point around $500

Lets compare those requirements to the new iPad:

  1. The iPad does pretty well on this – though it appears to be quite a bit thicker than a Kindle;
  2. Meets the primary requirement here, but does not satisfy my wish to be able to turn it off and have it look like a Kindle screen (not sure this is even possible);
  3. Ok – fails on this one completely
  4. I am not sure if I consider what is on there a “full OS” – seems pretty limited to me, and is incompatible with everything but iPhone apps;
  5. Fails on this, and even fails on many browser-based apps, given the lack of Flash support (and I am pretty sure it does not support Silverlight;
  6. Seems to be on same page as me here, though I would probably have included a USB port (Apple’s love of proprietary connections strikes again);
  7. Right on here – though the $500 model’s drive is too small to be useful;
  8. Got it right again – though I think Bluetooth would have been a good idea;
  9. As I said above, support for web apps may be limited since Apple does not seem willing to support plugins like Flash or Silverlight;
  10. Bottom end model meets this, but as I said, its 16gd SSD is too small to be useful.

So the iPad meets a lot of my requirements, but without ink support, and with its lack of support for applications I need, it is definitely not what I need as an all around slate tablet. It is a cute toy, but it is just that – a toy.