While attending the recent Featured Community Summit at the Microsoft campus
in Redmond, I had the pleasure of an hour of Mike Hall's time. The job
title that he currently has is one of Technical Product Manager, which
apparently falls under the marketing group, however, he describes his role as
more of a technical evangelist than anything else. His day-to-day activities
include things like researching embedded technologies, building code samples,
recording tutorials, communicating with the press and speaking at both Microsoft
and third-party conferences, all at a deep technical level.
Bit About Mike
Mike
had 14 years of experience developing software and hardware for embedded systems
before he took on his first role in developer support at Microsoft UK.
That was a little over ten years ago but, in 1996, he started playing with a
pre-release version of Windows CE which eventually lead him away from doing
Device Driver development, C/C++, MFC, and Fortran support and into his second
role at Microsoft with the system
engineering group working on Windows CE. He continued to work at that role
in Europe until three years ago when he made the move to Redmond and took on a
new role with the embedded product group. Before moving to the US, he
somehow also spent ten years as a part-time Police officer on the Special
Constabulary in the UK while holding down his regular full-time job in
technology. Dating back to the First World War, special constables have
been appointed in the UK and these volunteer members of the police force have
full police powers and authority when on duty. It is a little hard to
picture Mike as a police officer after enjoying his casual and openly friendly
company along with his youthful enthusiasm for technology, but perhaps it is
this ability to make others feel comfortable that made him a good Special.
At midnight on the evening of November 8th, you would have found Mike
among the 1000 or so people at the Redmond Town Center that were waiting in line
for a chance to buy a copy of Halo 2. Besides bumping into him wielding a
battle riffle or a Covenant energy sword in the virtual space of XBox Live, you
might also find Mike on the squash court or practicing Yoga when he is not busy
at work or spending time with his family. But like many of folks at
Microsoft, he admits that a great amount of his time is focused on technology and
doing a job that at times is more like play than work. To get a feel for
the wide variety of high tech topics that make up his world, one only needs to
take a quick look at his popular blog or the Channel 9 and WeDig sites where
Mike is a frequent contributor.
Knowing What's New
So, one of the first things that I asked Mike during our conversation was,
what are some of the important changes that software
developers targeting devices will want to get up to speed on or be ready to take
advantage of that he sees coming? Mike pointed out that the two most important things that he
saw coming in the near future where Visual Studio 2005 and version 2.0 of the
.NET Compact Framework. This next version of the development environment
is important because it merges native and managed code development into one tool
and into a single IDE, however, he finds the next release of the Compact
Framework exciting because of the new functionality that it will provide
developers. One of his favourite new additions in 2.0 is the serial
communications class. Turning the focus to embedded developers, Mike
mentioned that they will soon benefit from the release of Windows XP Embedded
Service Pack 2 which is currently available as a technology preview. The
service pack will bring features like the firewall and security update
enhancements found in Service Pack 2 for XP as well as things like enhanced
write filter support. Mike acknowledged that recently released Windows CE
5.0 is already shipping, so we are not going to see a new version of that OS for
a while yet, but stressed that the important thing to take away is
Microsoft's continued duality of the two operating systems. He often gets
the question "why two operating systems", and he is quick to point out
that each has distinct advantages that make one or the other more appropriate
under certain circumstances. Mike feels that the multiple processor
core support for X86, MIPS, SH4 and the ARM families along with CE's true Real-time
support and superior battery management are the key differentiators between CE
and XP Embedded, which is strictly X86, not a Real-time OS, and is not ideal for
power management. Looking further down the road, he says the duality will
continue and mentioned that Longhorn Embedded and the next generation of Windows
CE are already in the works.
When I asked Mike specifically about MapPoint and location technologies, his enthusiasm
didn't waver in the least. Mike sees evidence of both location and
different communication technologies making their way into the embedded
space in ways that will help integrate the overall supply chain for many
industries. Vending machines alerting the warehouse that they are low on
stock, automated routing, optimization of fuel consumption, and fleet
maintenance where all examples of things that Mike sees coming as embedded
solutions.
What about the game developers out there? The introduction of DirectX
Mobile is the next most significant thing for that crowd. The game api (GAPI)
has been the Windows Mobile game developer's tool of choice for a while,
but Mike points out that GAPI-based code is not very portable. Windows CE
5.0 will have a new core technology called DirectX Mobile which will allow
developers to create game code that will be portable across both the desktop and
the mobile environments.
Attending the Best Dev Conferences
I wanted to know what industry conferences Mike would recommend to
developers. For the developer looking to gain general knowledge about the
embedded space and operating systems he recommended the Embedded System East and
West conferences which offer a mixture of sessions and exhibit space covering
Microsoft and competitive technologies. However, for those of us focused
primarily on Microsoft platforms, he mentioned that in the past we have had two
primary Microsoft developer events: the Mobile Developers Conference widely
known as MDC and the Embedded Developers Conference or EDC and that is going to
change. Although he told me that it was too early to share much in the way
of details, he did tell me that in 2005 we were going to see a combined event
and that there would be a new larger developer conference that covers both
mobile device and embedded topics.
Career success
When I asked Mike what he saw as being the significant opportunities that are
coming for developers in regards to financial and career success he
recalled being asked a similar question, by a customer, at a recent
customer briefing about figuring out what is "The Next Thing".
He pointed out that the Spot Watch that he was wearing could be considered the
low end of the Microsoft technology spectrum, running a 27 MHz processor with an
ARM based CPU; it has a tiny CLR and it runs C# applications; then there is
Windows CE with the Compact Framework, the desktop, laptop and tablet platforms
with the full .NET framework, then ultimately the server products. So, when
considering the developer space, Mike suggests that Mobility and Embedded systems
represent a very interesting segment of the market and follows that up by saying
that we only need to look at the Consumer Electronics market to products like
Media Center PCs and new DVRs to see that having a skill set that scales across
all layers of the eco system will be a very valuable skill set to have.
Mike comes from a pure embedded development background that involved
assembler level programming and he points out that things have now changed
dramatically from those days when he was building things on 4 and 8-bit
processors. Today, embedded systems are often running on 32-bit processors with
memory management units and sufficient memory,
so this means "managed"
applications are more than good enough for most embedded or mobile scenarios today. Real-time apps, like hardware monitoring and hardware control, are
still typically not considered suitable scenarios for managed code, but Mike
points to Maarten Struys's report on Real-Time systems using the .Net Compact
Framework which discusses the use of a DLL device driver approach that allows
developers to leverage managed code for developing UI and the other
aspects of a Real-Time application. All-in-all it sounded like this
hardcore embedded developer saw managed code and those developers with .NET
skills as having a bright future.
Technology at Home
At this point in the conversation I asked Mike to change direction a little
and to share his views on the future of digital and connected home
concepts. To start, Mike described his own home as one with multiple PCs,
XBoxes, and a Media Center PC, connected by both wired and wireless networks. He
mentioned the Media Center and the recently announced Media Center extenders as
examples of the convergence of TV, Media and PC functionality throughout the
house. When I asked him about his views on developer opportunities in this space,
he recalled a similar conversation that he had with one of the other guys on the
CE team. They were recently discussing the concept of how data inside the home
network will get stored in the future. Mike painted a picture where data storage
of things like photos, video, and audio may be handled by "Home
Servers" that hide under the stairs and have a remote UI to administer
them. These home servers would allow for easy but sophisticated sharing and
storing of personal media in ways appropriate to a digital lifestyle.
Developers, he points out, have the opportunity to add value on top of this
merging of the PC and Media spaces in the home and to synchronize that new
experience with all of the devices you have with you, making it possible for you
to access your media wherever you are in the world. Mike made the point that,
in the connected home, there would be a need to make the technology available to
people who are not IT Pros and described the future as one where the solutions
would be "Designed from the user up, instead of from the technology
down."
When asked "what piece of hardware around the house he looked forward to
being able to program or automate?", Mike pointed out that he doesn't
necessarily want to see everything automated around the house, a scenario where
you might just "end up living on the couch and never getting up" as he
put it. He did, however, mention that it would be useful to remotely monitor and
activate certain parts of the home while away, providing examples like getting
notification on his Smartphone of a motion detector going off in his home when
no one was expected to be there. I then asked Mike what he predicted would be
the most significant impact of digital home technologies on everyday people's
lives. He pointed to how we are already seeing companies like Comcast
announcing new services that include digital set-top boxes with PVR (personal
video recorder) capabilities
and technologies that allow everyday folks to record, pause,
rewind and store the television
experience. He
believes that people have started to embrace these technologies in their home and are
taking
advantage of new abilities to control their media and share
their personal experiences through methods like instant messaging and posting to
web sites that provide photo sharing. Mike said that
technologies around the home are already changing the fact that people can watch their television
shows when they want to and not just when they are on, which he described
humorously as a type of time travel and then pondered when the Time Travel API
was going to be available.
Real-Time Multiplayer
As we ran out of time, I threw out a few general topics or questions that I
had left on my list and asked him to pick one last one to comment on. Mike
chose my question about Mobile Gamming and what interesting things he saw in store
in the mobile space with technologies like XNA around the corner. Mike pointed
first to the transition of single player desktop and console games into a realm
of online multiplayer games where the opponents are other people instead
of the traditional computerized AI of the single player gaming experience.

Multiplayer games have been available on the PC for a while and more recently on
XBox Live. Live games allow you to play against real people, in an environment
that you can go head-to-head against others, but he points out that there is
more to it than that. Halo 2, for example, is not just a great game but,
behind the game, there are statistics, and clans, there are clan wars, and a
community developing around the game. So, in the mobile and embedded space,
you are starting to see games become "completely interesting" on
hand-held mobile devices. The convergence of devices, where a PPC or Smartphone
is no longer just a PIM device, but now a connected device that can be always up-to-date,
not only benefits PIM type applications but also enables interesting game
play as well. Multiplayer games are already appearing that take advantage of SMS
as a transport but, as connectivity becomes cheaper and more pervasive and we add
things like GPS and location into the mix, a "whole bunch of fun" is
coming to real-time gaming on mobile devices.