Sierra Wireless Voq Professional Phone Demo

Sierra Wireless, makers of fine products
such as the Wireless
Data 1x Aircards
  now has information online about their new “VOQ Professional
Phone” running Windows Mobile™ 2003 for Smartphone software as it’s

It has a flip-open QWERTY “thumb-pad”. Their site features
a cool 3d view of the product and feature information. According to the site the phone
will be available in the first half of 2004.

The design appears more phone-like that some of of Pocket-PC with phone cabilities
but provides more input options that products like the Motorola MPx200 Smart

2004 is going to be a very exciting year for mobile devices like TabletPCs and Smart
Phones taking advantage of increasing levels of network access. With development tools
already existing in Visual Studio .NET the development possibilities are endless!
Now what will be “The Killer App?”

What could Microsoft do to make the experience a better one?

Robert Scoble recently asked the question “why
don’t you attend a user group on a regular basis? If you do, what could Microsoft
do to make the experience a better one?”
and I thought should share my thoughts.

User groups are a great thing and I encourage everybody to get out and support your
local group. If there isn’t one, start one. They are a great source of information,
social contacts, and inspiration to grow your skills and try new things. I’m new to
the area (geographically) and have really enjoyed my experiences so far with the TRIangle
Dot Net Users Group
in North Carolina. (Raleigh, Durham, Chapel Hill). It is a
very active, continually improving group that has helped me increase my skills, meet
new people, and have fun at a great social event.

As for Robert’s question, here’s what I think.

Support INETA – Microsoft should continue to provide INETA with
whatever support they can, including resources (Money, speakers, content) and promotion.
They doing a great job helping users groups already and with more support, can do
even more.

Participate – It’s great to hear about Microsoft staff attending
user group meetings, not just as speakers, but as active participating members of
the community. I highly encourage this and invite any members of Microsoft that happen
to be in our area to stop by.

Information – Keep us in the loop. Tell us the development stories
and progress. Involve us in the process. Tell MS research that we’re a great sample
of the market to involve in their cool projects! The hands on labs at PDC were great
and I think that MS could easily build on the concept by creating hands on demo’s
for user groups. We know MS can’t send Don
to every user group (Or could you?), but why not send a Don Box demo with
slides and a workbook similar to the hands on labs to teach the teachers and provide
good content for the user groups. Don could even send a music video intro.

Free Stuff – Ok, not just free, but special offers to user groups
would be good and would both promote MS technology as well as add value to group membership.
Things like discounts on Conference Registration (PDC, Tech Ed), MSDN subscriptions,
and MS-Press books. NFR software and other marketing SWAG for prizes would also be

TRINUG Special Interest Groups

On the 3rd Tuesday of the month two very interesting Special Interest Groups (SIGS)
from the TRIangle .Net Users Group meet. Both
sessions were excellent tonight and here are some of the highlights:


The Web Development SIG lead by Chris Love of Extreme
Web Works
took a code level look at exception handling. Chris walked us through
some code examples and shared some best practices that he has developed based on real
world experiences. Some things we covered were: 

  • What are “Exceptions”?
  • How can Exceptions be handled gracefully?
  • How can we create our own Exceptions?
  • How can we extend our Exception Handling to include error logging and notifications?

One of the things Chris shared was the following code that he uses to programmatically
capture the contents of all control on a form to include in an error report.

_control As Control
Dim ErrorDescription AsNew System.Text.StringBuilder
ForEach _control In Page.Controls
    ‘Find the HTML Form Control
    If _control.GetType.FullName
= “System.Web.UI.HtmlControls.HtmlForm”
        Dim _ctr As Control
        ErrorDescription.Append(“Controls ————-”
& vbCrLf)
ForEach _ctr In _control.Controls
‘For each control on the form, pull the appropriate content for
‘it’s defined type.
Case _ctr.GetType.FullName
tb As TextBox
CType(_ctr, TextBox)
ErrorDescription.Append(tb.ID & ” – ” & tb.Text & vbCrLf)
ltl As Literal
CType(_ctr, Literal)
ErrorDescription.Append(ltl.ID & ” – ” & ltl.Text & vbCrLf)
lbl As Label
CType(_ctr, Label)
ErrorDescription.Append(lbl.ID & ” – ” & lbl.Text & vbCrLf)
rb As RadioButtonList
CType(_ctr, RadioButtonList)
ErrorDescription.Append(rb.ID & ” – ” & rb.SelectedItem.Value & vbCrLf)



This was one of those great informative sessions that made us all think of things
we could do better in our code.

The second group is the newly created Architecture And Patterns SIG lead by John Brady
of Organelle.  This
group is very interesting because it is still in the process of defining it’s scope.
The simple question of “What is architecture?” has turned into a very interesting
topic. We quickly discovered that this term can mean a lot of different things to
a lot of different people.


Part of the conversation led us to try and compare Software Architecture with more
traditional Building Architecture. While some interesting parallels were drawn, it
was very clear how unique software development can be from other “building’ projects.
Another key issue was how far should architecture go before it becomes something else?
And what is that something else officially, design? Implementation? Plumbing?


It was good to look back at some of the different models including the initial move
to Object Oriented Development, Client/Server and Web based, to the current visions
of a Service Oriented Architecture. In the end we decided to do a little research
for next month about how Industry, Open Source, and Academics define SOA. Hopefully
some comparisons will allow us to see their views on architecture and compare the


I really enjoyed this session and look forward to seeing where things take us as we
proceed through architecture and make our way through patterns. This is a fun, code
neutral group and encourage anybody interested in this area to make it out and join
in. More information about the TRINUG SIGS can be found on the group

Things NOT to do with Longhorn

If anbody decides to play with System.Net.NetworkInformation
and write a sample program that monitors changes in IP addresses, DO NOT start
manually changing the IP address to see if the program picks up the events. (Which
it does did quite niceley)

What happened to me was that each time I changed
the address the system created another new interface for the new IP address. At first
I though this was just something minor since a reboot removed all of the duplicate
entires, but then it happened. First I the defautl gateway stopped working, then the
system would crash and reboot when changes were made, and then it simply would not
boot anymore.

MS verified that “There are problems with the
new IP stack
” in my newsgroup bug post.

I’m now re-installing from scratch so I can continue
to play with all the great new additions to System.Net…


NetworkInterface.Type vs. NetworkInterface.InterfaceType

While working on a sample I plan to share in the near future I have been playing
with the System.Net.NetworkInformation classes. There are some nice
additions here giving us easy access to a lot of network related information
and ability to monitor and properly react to changes.

During this I noticed that the NetworkInterface.Type property
specifies the InterfaceType as an InterfaceType enum. Would it not make sense to expose
this property as NetworkInterface.InterfaceType in the same way that NetworkInterface.OperationalStatus is
setup with the OperationalStatus enum? Using “Type” alone seems a little too generic
and a little confusing in my humble opinion.


Triangle .Net Users Group (TRINUG)

Last night was the November General Meeting of the Triangle
.Net Users Group (TRINUG).
I strongly encourage anybody living in the Raleigh,
Durham, Chapel Hill area of North Carolina that has an interest in .Net software development
to come check things out.

Last night we enjoyed a presentation by Paul Ballard of The Rochester Consulting Partnership
on Data Access Application Blocks. His talk took a look at the Microsoft
Data Access Application Block
as well as the one updated and modified by the GotDotNet
community. Along with looking at the code, Paul took some time to go through some
of the reasons why to actually use a DAAB within your Data Access Layer and the importance
of a separate DAL within your.

As well, Chris Love and I somehow ended up in front of the group discussing his trip
to Tech Ed and my trip to PDC. For those interested, here are some on the links that
I mentioned regarding sources of news and info from PDC



Following the meeting there were many great conversations about things people like
about the group and changes that they would like to see. It’s great to see so much
excitement right now noth within the group as well as the overall Microsoft Developer

Upgrade to Microsoft Pocket PC 2003

Upgrades are now available for Viewsonic
V35 and V37 Pocket PC devices here
. Orders can be placed online or printed and
sent in. There appears to be a free upgrade available for a limited time for devices
recently purchased.

On the note of Viewsonic and the PPC devices, I need to use the opportunity to say
how happy I am
with the 802.11
SDIO wireless network card
 that I recnetly purchased. The card is amazingly
small, easy to install, and works remarkably well. It performs way better that a similar
compact flash card that I have for another device. If you’re looking to network a
V37 or similar device, this card is highly recommended.

PNL08: Computing on the Beach: Visions of Mobility (A general overview)

PNL08: Computing on the Beach: Visions of Mobility (A general overview)

This last panel, on the last day of PDC was definitely one of the most interesting
sessions that attended. It was interesting not so much because of any specific content,
(Although there was definitely some great content!) but rather because the panel did
not agree. Unlike the other panels (that I attended) that included experts with slightly
different interests and views that were pretty much already heading in the same direction,
these folks were all headed in different directions.

 I think that this lack of agreement was very representative of the current mobile
device market. There was a lot of discussion about what the ideal combination of functionality,
form factor, and price should be to expand the market. Each panel member seemed to
have an interesting view on which were the major devices and which were simply “Tweeners”,
or devices that were between device A and device B. While nobody came right and said
it, the event appeared give a really good unscripted look into some of the competing
arguments that take place between the different product development groups trying
to win support for their ideas and concepts.

If you didn’t know better you would never have thought everybody on stage was from
a totally different company. While I can certainly see this looked upon poorly by
the marketing folks, I think it was excellent for the developers forum. There was
a lot of two-way conversation between the audience and the panel with some questions
submitted through PDC Bloggers thrown it. There were many great comments and if definitely
shows that this is a rapidly evolving market that is definitely being influenced by
not only those that develop the OS and hardware, but those that write and make use
of applications as well.

Otto Berkes, Senior Platform Strategist, Microsoft Research talked
a lot about small form factor devices with full computing power. His “goody bag” included
a small industrial prototype design of a small screen device with that featured a
split design allowing for a thumb keyboard to slide forward. He also had a Sony
Vaio U101 sub-notebook

Arif Maskatia, Chief Technology Officer with Acer America Corporation
shared the manufacturer’s viewpoint about the Tablet PC market. It sounds like there
are some very good things in the works as companies understand that a Tablet PC is
not simply a notebook with a special screen. The next generations of devices will
really be the first designed to be Tablets and not simply modifications to laptop
designs. Discussions also included display and battery life issues and solutions in
the works. I’m looking forward to seeing some of the things (including biometrics)
he hinted at possibly coming to market in 1Q 2004.

Donald Thompson, Software Architect, Smart Personal Object Technology,
Microsoft, gave some very interesting viewpoints about trying to engineer the extremely
low power, low cost, small footprint (Fingerprint?) size devices that are being used
in Microsoft’s Smart Personal Objects
. These devices initially are initially starting as watches
that can receive content specific data broadcast over the airwaves.

David Groom,  Lead Program Manager (Hardware), Mobile Devices
Product Group Microsoft shared how Microsoft is working with the OEM hardware manufacturers
to bring the best possible products to market to take advantage of the Microsoft platforms.
Microsoft has a small number of hardware people that design next generation prototypes
to show where they feel the market is heading.

Some of the mot interesting points brought up from the audience were:

Why can’t we have tablets with smaller screens (say 4×6) to reduce the power consumption,
reduce the cost, and reduce the processing?

Will we be able to buy devices and displays separately?

Durability was another major issue that received a lot of discussion.

For being the last session slot of the conference it was a surprisingly active and
energetic session that I wish could have gone on even longer. A big thanks to all
of those involved.

The full BIOS of all the speakers are available

The Longhorn SDK

For those that now are able to install and use an early version of Longhorn and for
others that just want to learn more about what all the talk is about, start by taking
a close look at the Longhorn SDK. The information both including on the Longhorn DVD
as well as available on the web at
The information is divided into 5 main categories:

    • Technologies – Provides an overview of the main technology areas
      of Longhorn
    • Reference – A reference for the Class Libraries, Schema, Compiler
      and Languages
    • How do I …? – Provides a list of “How do I ..?” topics grouped by
      technology area
    • Samples – A number of Sample applications and code demonstrations
    • Communities – Longhorn development community information

The format makes it easy to gain an overall understanding of a topic as well as to
drill down into a specific piece of information and to see what it can be implemented.
A very innovative addition is that through the entire SDK users are able to provide
their comments or “Annotations” to assist in refining and improving that documentation.
Users are encourage to comment on bugs, errors, and requests for additional information
or details. The Longhorn SDK Documentation is a great resource that everybody should
make some time to go through.

While still a work in progress, the SDK is an excellent example of how much work has
already been done and the importance that Microsoft appears to be placing on working
with the development community to shape and improve the continued development of Longhorn.

For the latest information on Longhorn check out: