Tablet UML News


News and commentary (and whatever else catches my eye)
from Martin L. Shoemaker, author of Tablet UML
and UML and Tablet PC instructor for The Richard Hale Shaw Group

Tuesday, April 10, 2007

My speaking and other travel schedule (Revised April 10, 2007)
UPDATE: To make it easier to find this entry, I've added a link to it in the right sidebar, right under the links for my books and my classes.

West Michigan .NET User Group in Grand Rapids MI. April 17. Topic: Dee Jay: A Voice-Controlled Juke Box for Windows Vista.

Ann Arbor Day of .NET in Ann Arbor MI. May 5. Topic: Talking with Vista.

West Michigan Day of .NET in Grand Rapids MI. May 5. Topics: Do, Undo, Redo, Do Over: A Generics Command Pattern Implementation; Talking with Vista.

Huntsville New Technology User Group in Huntsville AL. September 11. Topic: Dee Jay: A Voice-Controlled Juke Box for Windows Vista.

Saturday, December 23, 2006

The mother of invention
Especially when I'm traveling, but sometimes even when I'm home, I'll work on my Tablet PC while I'm in bed watching a movie or TV. And sometimes, I fall asleep while I'm working.

Now there's a problem with beds: they're soft. As in cushy. As in when you set something on them, it sinks in. As in when you set a PC on them, it sinks in and blocks off the cooling vents. And then overheats.

Now my wonderful Gateway CX200-X has got protection to keep the machine from completely cooking: it shuts down when the heat gets too high. That's good, but it's not a very clean shut-down. So I've been looking for a solution.

One solution, of course, is to get out of bed when I work. Sorry, ain't gonna happen.

Another solution, of course, is to go to bed without working. Sorry, ain't in my nature. Too many irons in the fire.

Another solution, of course, is to set the computer on a table before I go to sleep. Sorry, sometimes I'm too tired. I don't choose to sleep, it just happens.

So the solution I'm left with is to put something under the computer to keep the vents from blocking. I tried books and magazines; but it seems that either the computer slides off, or the magazine folds up and covers the vents. I know there are boards you can get for something like this, but I've been too busy to shop for them.


Saturday, December 9, 2006

Reply hazy, try again
Still exploring. Updates soon, I hope.

Saturday, December 2, 2006

Help me help someone
As some of you may know, I have been named an MVP for Visual Development (C#) by Microsoft. The MVP program is an effort by Microsoft to recognize people in the community who help other people to learn and use Microsoft's technologies. They give us advance information and other perks because they know we're enthusiastic supporters of their products. They hope that their supporting us will help us to build the community of satisfied Microsoft users.

As part of that growth effort, early this year they sent us each three coupons for MSDN Premium Subscriptions, with the instruction that we were to use them to help the community. They gave us no rules or guidelines beyond that. MSDN Premium is a developer suite consisting of pretty much every development tool Microsoft has, plus developer licenses for Office, SQL Server, and every operating system Microsoft publishes. There's lots of other stuff as well. It's everything a developer needs to develop for the MS platforms.

I'm trying to take seriously the commission to use these coupons for the good of the community. I gave my first coupon to a friend of a friend who was out of work, and who wanted to upgrade his skill set. I figured that was a good cause. I gave my second coupon to the West Michigan .NET User Group where I was speaking, so that they could offer it as a door prize to help promote the group. Good .NET groups are a great way to spread .NET programming knowledge.

But I'm still trying to find a home for the final MSDN Premium Subscription before year end; and I really want to make this one count. I would like it to go to a good cause; but I'm not sure what that cause should be, so I'm asking for your help. Maybe you know a way I can use this to help a good cause. Maybe you know a good charity that could use it, or maybe a really deserving person who could use it to get into a development job. When I give this one away, I want to feel like Microsoft and I made a difference in some way.

So if you have a suggestion for a way to put this coupon to good use, please let me know. Either leave a comment, or send an email to MSDN*at*TabletUML*dot*com (address obscured to cut down on spam — you can figure it out). I'll take all suggestions from now until next Friday. Then I'll review them, decide which looks like the best (as judged by me and some trusted friends), and announce the results in the following week.

A lot of people would like this for the free stuff. I understand that. If you're going to suggest I give it to you, I won't ask you not to; but please consider if you're doing so for the free stuff, or because you really have a need for it. I'll listen to your justification; but the coupon will go where I think it will do the most good.

I really hope you can help me here. Thanks!

Sunday, October 15, 2006

The 21st Century Cocktail Napkin presentation is now available on-line!
The 21st Century Cocktail Napkin is a talk I presented to the Ann Arbor .NET Developers group on June 14. It's an example of a smart cocktail napkin application built using the Tablet PC API. In a a smart cocktail napkin application, you draw shapes as part of some design you'll share with other readers; but as you draw, the Tablet PC also recognizes and understands what you draw, and creates information behind the drawing. (For an example of a smart cocktail napkin application, you can start here.)

Now, thanks to Camtasia Studio, I have a recording of this presentation. And thanks to YouTube, I can now present it to you on-line:



And you can also download a ZIP file of the slides and the sample code.

Look for more recorded presentations soon. And if you're looking for an easy-to-use UML tool for Tablet PCs, check out Tablet UML.

Wednesday, October 4, 2006

The Ink in 60 Seconds presentation is now available on-line!
Ink in 60 Seconds! is a talk I have presented to a number of user groups (some courtesy of INETA). It consists of a number of small little demos of Tablet PC programming, most written in 60 seconds or less.

Now, thanks to Camtasia Studio, I have a recording of this presentation from the Ann Arbor .NET Developers group on June 14, 2006. And thanks to YouTube, I can now present it to you on-line here. And you can also download a ZIP file of the slides and a cleaned-up version of the sample code.

One part of the video may need explanation. Part of the fun of this talk is the deadline: can I write that code in 60 seconds? And if not, I expect the audience to heckle and laugh. But just in case they need encouragement, I wrote a little tool called Egg Timer. When I launch it, it starts a 60-second clock; and if I don't stop it before the clock elapses, it will heckle me. So if you hear a strange computer voice at spots in the video, it means I ran out of time.

And for those who are curious: yes, my car is much better now.

Look for more recorded presentations soon! And if you're looking for an easy-to-use UML tool for Tablet PCs, check out Tablet UML.

Update: Here's an attempt to embed the video in this post:



Update: Fixed the link to the ZIP file. Thank you, )Stéphane Torres.

Monday, July 3, 2006

The Tablet PC: A look ahead
At Office Evolution, a blog hosted by ZDNet, Marc Orchant points us toward Microsoft MVP Terri Stratton's summary of new Tablet PC features in Vista.

The biggest value for me will be this:


Train Your Tablet PC to Recognize Your Handwriting

There are two ways to train the handwriting recognition in Windows Vista. While Handwriting recognition personalization is enabled by default, it will have no effect until you either submit samples using the Handwriting Recognition Personalization Tool or opt into Automatic Learning.


The Tablet team often hears rumors that the current Tablet PC API "learns" your handwriting; but since they never wrote code for that, they just laugh. The Tablet PC today doesn't learn the way you write; rather, you learn to write the way it can understand. And it's good, but it could be better. In Vista, it will be.

As a Tablet PC programmer, I'm more interested in API changes. But this list of UI changes will affect a lot more people.
Posted in Tablet PCs by Martin L. Shoemaker on Monday July 3, 2006 at 2:22pm. 0 Comments 0 Trackbacks

Wednesday, April 12, 2006

Vox: A text-to-speech application for keyboard and pen
It looks like I'll be speaking at the Day of .NET in Ann Arbor, MI. And in preparation for that event, the Ann Arbor Computer Society is having a night of Grok Talks on .NET topics, and I was asked to participate. For those who haven't seen them before, a Grok Talk is a quick (ten minutes or less) talk on a small topic, with a focus on demonstrating just a little bit of code or a little technique people can use in their projects. Now normally, I have a bit of Ent in me: ten minutes is scarcely enough time to say good morning. But when I needed to come up with a topic for my Grok Talk and I hadn't enough time to think through it, I said, "Text to speech." And then afterwards, I thought about it, and realized: with Microsoft Speech API (SAPI) 5.1, text-to-speech takes three lines of code. Literally:


ISpVoice mVoice = new SpVoiceClass();
uint uiStream;
mVoice.Speak("Hello, world!", 1, out uiStream);


And one of those lines is a variable declaration! So this topic would take me less than a minute to cover. Whatever would I do with the remaining nine minutes?

So being the Tablet PC guy that I am, I decided to mix in some Ink capabilities as well. So I had a vision of an application that would speak whatever the user writes.

And thus, with some additional thought and design and coding, was born Vox: A text-to-speech application for keyboard and pen; and once I wrote it, I decided to use it as a springboard for discussing Ink and Speech programming under .NET.

Vox is available free to anyone who's interested. I haven't tested it on a non-Tablet PC yet; but it's supposed to work just as well there, because I detect at run time whether the computer has the Tablet PC OS or not, and fall back to non-Tablet mode if not. You can type any message (or write it on a Tablet PC), and Vox will speak the message. It will also remember every message, so that you can repeat a message easily. And it has a user-editable list of Quick Words at the bottom of the form, so that you can tap a word or phrase to say it without writing or typing.

If you like Vox, let me know; and if you would like to learn about the code...


Vox: A text-to-speech application for keyboard and pen
It looks like I'll be speaking at the Day of .NET in Ann Arbor, MI. And in preparation for that event, the Ann Arbor Computer Society is having a night of Grok Talks on .NET topics, and I was asked to participate. For those who haven't seen them before, a Grok Talk is a quick (ten minutes or less) talk on a small topic, with a focus on demonstrating just a little bit of code or a little technique people can use in their projects. Now normally, I have a bit of Ent in me: ten minutes is scarcely enough time to say good morning. But when I needed to come up with a topic for my Grok Talk and I hadn't enough time to think through it, I said, "Text to speech." And then afterwards, I thought about it, and realized: with Microsoft Speech API (SAPI) 5.1, text-to-speech takes three lines of code. Literally:


ISpVoice mVoice = new SpVoiceClass();
uint uiStream;
mVoice.Speak("Hello, world!", 1, out uiStream);


And one of those lines is a variable declaration! So this topic would take me less than a minute to cover. Whatever would I do with the remaining nine minutes?

So being the Tablet PC guy that I am, I decided to mix in some Ink capabilities as well. So I had a vision of an application that would speak whatever the user writes.

And thus, with some additional thought and design and coding, was born Vox: A text-to-speech application for keyboard and pen; and once I wrote it, I decided to use it as a springboard for discussing Ink and Speech programming under .NET.

Vox is available free to anyone who's interested. I haven't tested it on a non-Tablet PC yet; but it's supposed to work just as well there, because I detect at run time whether the computer has the Tablet PC OS or not, and fall back to non-Tablet mode if not. You can type any message (or write it on a Tablet PC), and Vox will speak the message. It will also remember every message, so that you can repeat a message easily. And it has a user-editable list of Quick Words at the bottom of the form, so that you can tap a word or phrase to say it without writing or typing.

If you like Vox, let me know; and if you would like to learn about the code...


Friday, March 31, 2006

Consumer alert: A pen alone does not make a Tablet PC!
So my friend Benjamin Day sent me email asking what I thought about this ebay listing: Fujitsu Stylistic 3500 s Tablet PC Laptop Computer used, which sold for $241.50.

Well, it sounds like a decent price for a Tablet PC, even if it's used, right? Except for one problem: It's not a Tablet PC. Read the specs:


Windows 2000 Professional loaded!

It even has PenX 2.02 installed so you can write with the stylus and have it turn to text! also an on screen keyboard.


In other words, this machine does not have Windows XP Tablet PC Edition installed. And that means it's not a Tablet PC.

Unlike the ebay seller above, Fujitsu knows better. They call this particular machine a 3500 Tablet, not a Tablet PC. Meanwhile, they call their ST5000 model a Tablet PC. And the difference, as you might have guessed, is that the 3500 has Windows 2000 installed, while the 5000 has Windows XP Tablet PC Edition installed.

Now you might say, "Tablet, Tablet PC... What's the difference? What's the big deal?" Well, to understand what the big deal is, you have to understand the purpose of trademarks, a subject which is often misunderstood (even by people who should know better). If owner A has a trademark on the word "SKDLF", that means that manufacturer B is forbidden from calling his similar product "SKDLF". Now in a country which enshrines freedom of speech in the First Amendment to the Constitution, why should we countenance such a restriction on what manufacturer B can say? Why should we restrict manufacturer B's freedom of speech for the protection of owner A?

And there is where the misunderstanding comes in: trademark law is not about protecting the owners of the trademarks; it's about protecting the consumers from confusion. It's about ensuring that when consumer C buys a product labeled "SKDLF", he's buying a real "SKDLF". The relevant standard in determining whether a trademark has been infringed is called likelihood of confusion. (This is why Ron Coleman, a trademark lawyer whose writings I always find interesting, calls his blog Likelihood of Confusion.) A famous example of this principle was a case in which a floor mat manufacturer was found not to be infringing Ford's trademark by selling a floor mat with the Ford logo. Not just the name, the actual logo! In deciding the case, the court essentially said that "No consumer will ever confuse this floor mat with a Ford car." If trademark law were about protecting the trademark owner, Ford would have won this case; but instead, the court judged based on the rights of the consumer, and the floor mats were allowed.

So is the ebay seller violating Microsoft's trademark? I don't know, I'm not a trademark judge. The only relevant trademark they have registered is Windows XP Tablet PC Edition. So in a literal sense, the listing is not in violation.

But by the likelihood of confusion standard? Oh, yeah, that's a violation. And I have the letter from Ben Day as Exhibit A. He's interested in a good deal on a Tablet PC (I can claim some small credit for that, I think, since I gush endlessly about mine), and he considered buying the listed item, based on the misleading title. In other words, he was confused. That's not just a likelihood, it's an established fact.

And if Ben had bought the machine and then tried to run any sort of Tablet PC software, he would find that the software wouldn't even run on that machine. If Ben weren't a knowledgeable buyer, he might even complain to the software manufacturers about the quality of their products, all because an ebay seller sold him an item under an inaccurate title.

And since one of those products that won't run on that non-Tablet-PC is Tablet UML, I take the inaccurate title rather personally. I already get questions from users who want to run Tablet UML on regular laptops (the answer is still no), and I don't want to see more of those questions just because somebody used an inaccurate title.

And yes, I did inform the seller directly, though he hasn't had time to respond yet. This confusion is pretty common, and is likely not his fault. It's an education issue: people need to learn that a pen alone does not make a Tablet PC. So I used his inaccurate title as a springboard to spread the word.

Friday, March 24, 2006

Boston, here I come!
It's a little late to announce this — particularly since the class is full — but it's worth mentioning for future reference. The Richard Hale Shaw Group is presenting our Visual Studio Team System class at the Microsoft Technology Center in Waltham, MA, with me as lead instructor.

We're also trying to find another chance for me to present Ink in 60 Seconds while I'm there.
Boston, here I come!
It's a little late to announce this — particularly since the class is full — but it's worth mentioning for future reference. The Richard Hale Shaw Group is presenting our Visual Studio Team System class at the Microsoft Technology Center in Waltham, MA, with me as lead instructor.

We're also trying to find another chance for me to present Ink in 60 Seconds while I'm there.

Sunday, March 19, 2006

Bonjour, Montreal!
This is a little late, because I've been doing post travel stuff, and then getting ready for the new VSTS class coming up. To the fine folks in Montreal, I say: Pardonnez-moi, svp, mes amis!

So on Wednesday night in Montreal, I gave my presentation to GUMSNET: Ink in 60 Seconds. Despite my rather hideous attempt to apologize in French for not being able to speak French, they were most gracious hosts. (And darn it! I rehearsed that apology over a dozen times on the trip, until I had it down pat; and then I fell apart when I actually had to give it. Here's what I meant to say: Bon soir, monsieurs! Mon nom est Martin L. Shoemaker, et je ne comprends pas le français. Pardon, si vous plais. Je suis un debutante en français. Mais mon Tablet PC comprend le français!)

I got caught in a lot of Montreal traffic, and also had to fight to find parking in Centre-ville, so I was just a bit late. And then my machine had to reboot. But we finally got rolling, and I started writing little Tablet PC demos, with a 60 second clock running. There were occasional laughs at my expense when I missed the 60 second mark; but on the other hand, many of the demos were done in under 30 seconds. The Tablet PC API is just that powerful. By the time we were done, we were drawing pictures, editing them, erasing them, saving them, loading them, and exporting them as images. We were also drawing shapes that the Tablet PC recognized and identified. We were converting handwriting to text, in both English and French. And we even wrote some text by hand and then had the Tablet PC speak it out loud. We finished with ten ideas for great Tablet PC apps just waiting to be written. I hope that I inspired someone in the audience to go write one.

There was one hang-up in the presentation; and I promised the good folks from GUMSNET that I would blog about it, including what I learned afterward. Late in the presentation — right about the time I tried to do handwriting recognition, when I needed really good ink collection — my wonderful Gateway CX200X Tablet PC started exhibiting dead spots that were strangely reminiscent of the bad old days of Toshiba. The dead zones weren't as consistent, but they were irritating. And they always seemed to be right where I was writing text en français to try to show off the multi-lingual power of the Tablet PC. The audience was forgiving for this, but they did insist on knowing the answer when I learned it. Well, here's what I think I have learned. I noticed that the pen seemed to behave better when I held it at different angles; and then I remembered that when we broke for dinner, I dropped the pen. And as far as I can recall, there were no dead zones before the break, only after. I suspected that maybe I had jammed something in the pen tip; and with a little experimentation, I found that rotating the pen around its axis or relative to the screen could sometimes make the dead zone go away. Suspecting a pen problem rather than a screen problem, I pulled out my spare pen. And I have had no dead zone problems since.

All in all, Montreal was a delightful place to visit, and I hope to return some day when I have a little more time to visit. And the folks at GUMSNET were a great audience. I ran about 40 minutes over time (gee, there's a surprise); and they were all alert and attentive right to the end. We would probably have stayed longer, but the Microsoft employee who was keeping the facility open for us wanted to go home!

Of course, Richard would have my hide if I didn't mention that Ink in 60 Seconds is the opening segment of our Tablet PC Programming Workshop, where you can learn all this and much, much more about building your own Tablet PC applications. In the class, you won't just watch: you'll build a full-featured Tablet PC application yourself, and learn the Tablet PC from the inside. I hope we'll be adding a public Tablet PC class to our schedule first, but you can always bring us to your site.
Bonjour, Montreal!
This is a little late, because I've been doing post travel stuff, and then getting ready for the new VSTS class coming up. To the fine folks in Montreal, I say: Pardonnez-moi, svp, mes amis!

So on Wednesday night in Montreal, I gave my presentation to GUMSNET: Ink in 60 Seconds. Despite my rather hideous attempt to apologize in French for not being able to speak French, they were most gracious hosts. (And darn it! I rehearsed that apology over a dozen times on the trip, until I had it down pat; and then I fell apart when I actually had to give it. Here's what I meant to say: Bon soir, monsieurs! Mon nom est Martin L. Shoemaker, et je ne comprends pas le français. Pardon, si vous plais. Je suis un debutante en français. Mais mon Tablet PC comprend le français!)

I got caught in a lot of Montreal traffic, and also had to fight to find parking in Centre-ville, so I was just a bit late. And then my machine had to reboot. But we finally got rolling, and I started writing little Tablet PC demos, with a 60 second clock running. There were occasional laughs at my expense when I missed the 60 second mark; but on the other hand, many of the demos were done in under 30 seconds. The Tablet PC API is just that powerful. By the time we were done, we were drawing pictures, editing them, erasing them, saving them, loading them, and exporting them as images. We were also drawing shapes that the Tablet PC recognized and identified. We were converting handwriting to text, in both English and French. And we even wrote some text by hand and then had the Tablet PC speak it out loud. We finished with ten ideas for great Tablet PC apps just waiting to be written. I hope that I inspired someone in the audience to go write one.

There was one hang-up in the presentation; and I promised the good folks from GUMSNET that I would blog about it, including what I learned afterward. Late in the presentation — right about the time I tried to do handwriting recognition, when I needed really good ink collection — my wonderful Gateway CX200X Tablet PC started exhibiting dead spots that were strangely reminiscent of the bad old days of Toshiba. The dead zones weren't as consistent, but they were irritating. And they always seemed to be right where I was writing text en français to try to show off the multi-lingual power of the Tablet PC. The audience was forgiving for this, but they did insist on knowing the answer when I learned it. Well, here's what I think I have learned. I noticed that the pen seemed to behave better when I held it at different angles; and then I remembered that when we broke for dinner, I dropped the pen. And as far as I can recall, there were no dead zones before the break, only after. I suspected that maybe I had jammed something in the pen tip; and with a little experimentation, I found that rotating the pen around its axis or relative to the screen could sometimes make the dead zone go away. Suspecting a pen problem rather than a screen problem, I pulled out my spare pen. And I have had no dead zone problems since.

All in all, Montreal was a delightful place to visit, and I hope to return some day when I have a little more time to visit. And the folks at GUMSNET were a great audience. I ran about 40 minutes over time (gee, there's a surprise); and they were all alert and attentive right to the end. We would probably have stayed longer, but the Microsoft employee who was keeping the facility open for us wanted to go home!

Of course, Richard would have my hide if I didn't mention that Ink in 60 Seconds is the opening segment of our Tablet PC Programming Workshop, where you can learn all this and much, much more about building your own Tablet PC applications. In the class, you won't just watch: you'll build a full-featured Tablet PC application yourself, and learn the Tablet PC from the inside. I hope we'll be adding a public Tablet PC class to our schedule first, but you can always bring us to your site.

Monday, March 13, 2006

Ink in 60 Seconds
So why aren't you writing Tablet PC applications with .NET yet?

Do you think it's too difficult? Do you think you're too busy to learn the Tablet PC API? Well, I say you're wrong.

Or do you just not see what sort of Tablet PC app you might build? Do you think that there's no great Tablet PC applications out there for you? Well, I say you're wrong again.

And I'm so sure you're wrong, I'm going to prove it to you at the Groupe d'utilisateurs de l'archutecture Microsft .Net de Montreal by building some simple little Tablet PC samples — samples you can easily adapt into your own applications — each written in under 60 seconds. (Note: In order to meet that time limit, I'll be writing these in C#, the language I know best. Every single one of these demos could be written in 60 seconds in VB.NET, but only by a better VB programmer than me!)

Then after each sample is running, I'll explain to you what I did, how I did it, and how you might expand on it. Some of the samples I'll build include:


  • 60 Seconds to Ink: Capturing Ink in a window in your application.

  • 60 Seconds to Ink Anywhere: Capturing Ink in any window in your application.

  • 60 Seconds to Programmatic Ink: Adding Strokes programmatically to an Ink surface.

  • 60 Seconds to Saving Ink: Saving your drawings.

  • 60 Seconds to Loading Ink: Loading your drawings.

  • 60 Seconds to Saving Some Ink: Saving part of a drawing.

  • 60 Seconds to Loading Some Ink: Loading a drawing into an existing drawing.

  • 60 Seconds to Exporting Ink: Savinging your drawings as images you can share with non-Tablet PC users.

  • 60 Seconds to Selecting, Moving, and Resizing: Manipulating the Ink that you draw.

  • 60 Seconds to Erasing: Erasing the Ink that you draw.

  • 60 Seconds to Drawing Attributes: Drawing with multiple colors, transparent Ink, and different shapes and sizes of pens.

  • 60 Seconds to Clipboarding: Really simple Ink clipboard functionality — and why it doesn't work!

  • 60 Seconds to Simple Handwriting Recognition: Simple handwriting in a form.

  • 60 Secondes au Français: Identification d'écriture en français.

  • 60 Seconds to More Handwriting Recognition: Handwriting recognition mixed with typing.

  • 60 Seconds to Handwriting Recognition Anywhere: Handwriting recognition from any Ink surface.

  • 60 Secondes à Plus Français: Plus d'identification d'écriture en français.

  • 60 Seconds to Text-to-Speech: A simple talking application.



And just in case those samples don't inspire you to devise a great new Tablet PC application, I'll finish the presentation by spending 60 seconds (probably more) describing each of ten different killer Tablet PC applications that I'm just too busy to write myself, but which I think somebody should be writing.

So fasten your seat belts. This is gonna be one heck of a fast ride!

And no, I'm not doing this talk just for the free pizza from INETA and the free trip to Montreal. I certainly hope that some of the attendees are so excited that they'll want to take our Tablet PC Programming workshop, where we'll go places you just can't reach in 60 seconds.

Thursday, March 9, 2006

My dream Origami project
OK, let me first acknowledge right up front: this project is eminently impractical. For one thing, there’s the price: replacing a paper process with at least four Origamis (plus other support hardware) is just a bit pricey. And for another thing, many of the target end users are just a bit suspicious of and even opposed to technological solutions. They think the paper processes are working just fine, thank you very much. (Though as someone who occasionally has to process their paperwork, let me tell you: it ain’t easy, and often their handwriting and habits complicate my job.)

Still, inspired by Epee Bill, I had this vision. And I really do think it would be a vast improvement over the paper processes, if people would accept it. Just imagine...

Mr. Vesper stands beside the fencing strip. In his hands is an Origami: somewhat heavier than the clipboard he once would have carried, but not much larger. On the Origami screen are the names of two fencers. He calls them: "Up next. Mr. Smith. Mr. Bolakowski." The fencers enter the strip, Smith on the right and Bolakowski on the left, and hook up to their wires. Then they present their weapons to Mr. Vesper. He tests each one, and then with his finger makes two "check" gestures on the Origami to indicate that the weapons passed inspection.

Mr. Vesper returns to the sideline and calls out: "Fencers ready..." The combatants assume their en garde positions. "Fence!" The wireless microphone he wears picks up this command and starts the fencing clock, as the fencers approach each other. (If Mr. Vesper preferred not to wear the mike, he could also start the clock by pressing a button on the Origami.) The fencers engage. Beat, beat, beat, feint, attempted parry, disengage, lunge! The scoring box lights up with one light, and Mr. Vesper calls "Halt!" Ideally, the scoring box automatically stopped the fencing clock; but since most scoring boxes aren’t capable of that, Mr. Vesper can also stop the clock via voice or button. Mr. Vesper calls the action, and then records a touch left by making a downstroke gesture in a box near Mr. Bolakowski’s name. The Origami acknowledges by announcing, "Touch, Bolakowski. Score is 1, 0." Meanwhile, the Origami uses WiFi to update the tournament server; and then the server posts the results live to the tournament’s Web site. One of the tournament workers is also wandering around between the strips, using another Origami to record live video and stream it to the server and from there to the site. Fencers and fans from all over the world can follow the tournament in real time. A tournament monitor near the bout table shows the live results. It has a touch screen (in fact, it’s really a larger Tablet PC device being used as a kiosk) so that spectators and fencers can navigate to different pages and check current standings. (This will, I hope, keep them from coming to the bout table and distracting us from our work by asking, "So if I win my next bout, who will I face after that?" Or "So is this an A tournament?" [Like I know how to answer that.] On the other hand, this system will do so much of my work, so I may have time for questions.)

Mr. Vesper repeats, "Fencers ready... Fence," and the clock and the action start again. Thrust, retreat, thrust, retreat, ballestra-lunge! And the scoring box lights up with one white light. Off target. Mr. Vesper calls the action and records the off target by making a downstroke in a different box (colored white to match the white off-target light). The Origami announces, "Off target, Bolakowski. Score is 1, 0."

"Fencers ready... Fence!" Taking a more aggressive tact, Mr. Bolakowski almost immediately leaps into a fleche. But his timing is off, and he ends up colliding with Mr. Smith. Mr. Vesper calls, "Halt! Red card." And he makes a downstroke in a third box (colored red for penalties). The Origami needs more information, so it pops up a list of possible reasons for the penalty, and Mr. Vesper checks the one that says, "Corps a corps." The Origami announces, "Red card. Bolakowski. Score is 1, 1."

Chastened, Mr. Bolakowski falls back into a more defensive mode. He and Mr. Smith trade thrusts and parries and occasional points back and forth, but the action slows. Eventually, the fencing clock runs out, and the Origami announces, "Time." Mr. Vesper calls halt, and then says, "Victory to Mr. Bolakowski, 4-3." The Origami has already figured this out for itself; but since no result is official until a director confirms it, the Origami presents the results to him. He makes a check gesture, and the official results are sent to the server and the Web. Immediately his Origami screen displays the next bout, and he calls it out: "Fencing, Emerson, Jones." Mr. Jones is not immediately available for some reason, so the Origami begins a countdown clock. If he doesn’t arrive in time, he’ll forfeit.

When the last pool bout of the event is complete, the server immediately produces a seed page and also an elimination table. It also pushes the list of elimination bouts out to the directors’ Origamis. The software on the Origamis knows that these are elimination bouts, so it changes the way it keeps time: elimination bouts run to 15 points, and are stopped every three minutes for a one minute break.

Now again, I know this is impractical, probably for more reasons than I have identified. (Flashing blades and computer equipment may be a bad combination.) And while I do think Microsoft could be interested in unusual showcases for their devices as a way to get publicity, I’m not sure that getting involved with fencing is the way to do it, at least not in America: in a country where competitive hot dog eating is actually broadcast on ESPN, fencing can’t get any air time. But boy, would I love to see it in operation! And I could write practically this whole system by myself, without a whole lot of work; and I could teach a team how to write it in under a week. I just have no confidence I’ll ever persuade anyone to let me. But I can dream...

Of course, there are other sports that could make good showcases. I’m thinking that the American biggies – football, basketball, and baseball – would make poor showcases. The fields of play are too large, and officials are too distant from the action, so no one would ever see the Origamis. So that hints at what would make a good showcase sport: one with a smaller playing field, with probably only a small number of participants (two, or maybe four), and where the officials are fairly close to the action so that the Origami will be in the camera shot quite often.

Tennis, anyone?

UPDATE: Fixed the score, thanks to Epee Bill.
My dream Origami project
OK, let me first acknowledge right up front: this project is eminently impractical. For one thing, there’s the price: replacing a paper process with at least four Origamis (plus other support hardware) is just a bit pricey. And for another thing, many of the target end users are just a bit suspicious of and even opposed to technological solutions. They think the paper processes are working just fine, thank you very much. (Though as someone who occasionally has to process their paperwork, let me tell you: it ain’t easy, and often their handwriting and habits complicate my job.)

Still, inspired by Epee Bill, I had this vision. And I really do think it would be a vast improvement over the paper processes, if people would accept it. Just imagine...

Mr. Vesper stands beside the fencing strip. In his hands is an Origami: somewhat heavier than the clipboard he once would have carried, but not much larger. On the Origami screen are the names of two fencers. He calls them: "Up next. Mr. Smith. Mr. Bolakowski." The fencers enter the strip, Smith on the right and Bolakowski on the left, and hook up to their wires. Then they present their weapons to Mr. Vesper. He tests each one, and then with his finger makes two "check" gestures on the Origami to indicate that the weapons passed inspection.

Mr. Vesper returns to the sideline and calls out: "Fencers ready..." The combatants assume their en garde positions. "Fence!" The wireless microphone he wears picks up this command and starts the fencing clock, as the fencers approach each other. (If Mr. Vesper preferred not to wear the mike, he could also start the clock by pressing a button on the Origami.) The fencers engage. Beat, beat, beat, feint, attempted parry, disengage, lunge! The scoring box lights up with one light, and Mr. Vesper calls "Halt!" Ideally, the scoring box automatically stopped the fencing clock; but since most scoring boxes aren’t capable of that, Mr. Vesper can also stop the clock via voice or button. Mr. Vesper calls the action, and then records a touch left by making a downstroke gesture in a box near Mr. Bolakowski’s name. The Origami acknowledges by announcing, "Touch, Bolakowski. Score is 1, 0." Meanwhile, the Origami uses WiFi to update the tournament server; and then the server posts the results live to the tournament’s Web site. One of the tournament workers is also wandering around between the strips, using another Origami to record live video and stream it to the server and from there to the site. Fencers and fans from all over the world can follow the tournament in real time. A tournament monitor near the bout table shows the live results. It has a touch screen (in fact, it’s really a larger Tablet PC device being used as a kiosk) so that spectators and fencers can navigate to different pages and check current standings. (This will, I hope, keep them from coming to the bout table and distracting us from our work by asking, "So if I win my next bout, who will I face after that?" Or "So is this an A tournament?" [Like I know how to answer that.] On the other hand, this system will do so much of my work, so I may have time for questions.)

Mr. Vesper repeats, "Fencers ready... Fence," and the clock and the action start again. Thrust, retreat, thrust, retreat, ballestra-lunge! And the scoring box lights up with one white light. Off target. Mr. Vesper calls the action and records the off target by making a downstroke in a different box (colored white to match the white off-target light). The Origami announces, "Off target, Bolakowski. Score is 1, 0."

"Fencers ready... Fence!" Taking a more aggressive tact, Mr. Bolakowski almost immediately leaps into a fleche. But his timing is off, and he ends up colliding with Mr. Smith. Mr. Vesper calls, "Halt! Red card." And he makes a downstroke in a third box (colored red for penalties). The Origami needs more information, so it pops up a list of possible reasons for the penalty, and Mr. Vesper checks the one that says, "Corps a corps." The Origami announces, "Red card. Bolakowski. Score is 1, 1."

Chastened, Mr. Bolakowski falls back into a more defensive mode. He and Mr. Smith trade thrusts and parries and occasional points back and forth, but the action slows. Eventually, the fencing clock runs out, and the Origami announces, "Time." Mr. Vesper calls halt, and then says, "Victory to Mr. Bolakowski, 4-3." The Origami has already figured this out for itself; but since no result is official until a director confirms it, the Origami presents the results to him. He makes a check gesture, and the official results are sent to the server and the Web. Immediately his Origami screen displays the next bout, and he calls it out: "Fencing, Emerson, Jones." Mr. Jones is not immediately available for some reason, so the Origami begins a countdown clock. If he doesn’t arrive in time, he’ll forfeit.

When the last pool bout of the event is complete, the server immediately produces a seed page and also an elimination table. It also pushes the list of elimination bouts out to the directors’ Origamis. The software on the Origamis knows that these are elimination bouts, so it changes the way it keeps time: elimination bouts run to 15 points, and are stopped every three minutes for a one minute break.

Now again, I know this is impractical, probably for more reasons than I have identified. (Flashing blades and computer equipment may be a bad combination.) And while I do think Microsoft could be interested in unusual showcases for their devices as a way to get publicity, I’m not sure that getting involved with fencing is the way to do it, at least not in America: in a country where competitive hot dog eating is actually broadcast on ESPN, fencing can’t get any air time. But boy, would I love to see it in operation! And I could write practically this whole system by myself, without a whole lot of work; and I could teach a team how to write it in under a week. I just have no confidence I’ll ever persuade anyone to let me. But I can dream...

Of course, there are other sports that could make good showcases. I’m thinking that the American biggies – football, basketball, and baseball – would make poor showcases. The fields of play are too large, and officials are too distant from the action, so no one would ever see the Origamis. So that hints at what would make a good showcase sport: one with a smaller playing field, with probably only a small number of participants (two, or maybe four), and where the officials are fairly close to the action so that the Origami will be in the camera shot quite often.

Tennis, anyone?

UPDATE: Fixed the score, thanks to Epee Bill.
Saving Microsoft from themselves
So at the Microsoft Mobile Platforms Division Partner Briefing, one of the participants said (very loosely paraphrased): "You folks don't know how to market. You don't get cool. When Apple released just another MP3 player, not much different from any other, they called it iPod. That means nothing, but it's simple and catchy. It instantly creates a brand awareness, to the point where many consumers now think iPod was the first MP3 player out there. It's the only name they know. But somehow, I just know that when you finally release Windows Vista, somebody in marketing will have renamed it 'Windows Multi-Platform Operating System, Vista Edition, with Tablet Enhancements, Version 2006, Plus Extraneous Other Stuff'."

Everyone laughed, because we knew exactly what he meant. Despite what ill-informed critics say, Microsoft marketing is absolutely awful at trying to reach consumers. These are the same people who created this new brand, .NET, as a way to label all of their new managed code and Web technologies; and then proceeded to slap the .NET label onto absolutely everything in sight, so that it lost all meaning. Microsoft actually had to retreat from the .NET label in all sorts of areas. And yet now they're making the exact same mistake with the "Live" brand.

And now the worst of it, from my biased view. They actually had a cool code name for a project: Origami. Now there's a name with cool. With cachet, even. It has this connotation of something moving and intricate folded into a very small space, which is exactly the right feel for a small, light weight Tablet PC.

So what does Microsoft call it when they release it? An Ultra-Mobile PC. With that simply abominable abbreviation, UMPC. And they've just proven the guy's point: Microsoft Marketing just can't get cool, no matter how hard they try.

Well, I've decided to save them from themselves, and I want you to join me. Don't give up the Origami name. Don't use that boring label, Ultra-Mobile PC. And whatever you do, don't use that abominable abbreviation.

Microsoft just can't do this job right, no matter how great their technology is. So it's up to us.
All right, NOW I can talk about Origami...
...but Microsoft says it so much better here. As some reports have hinted, Origami devices (now known as "Ultra-Mobile PCs") are small, light, highly portable Tablet PCs.

And for developers, there's a lot more on Ultra-Mobile PCs here.

And of course, if you want to learn how to write programs for UMPCs (boy, is that an ugly abbreviation, or what?), I would like to suggest that you start with our Tablet PC Programming Workshop. (If your organization plans to deploy a large number of UMPCs, Microsoft's SSP program recommends our course.)

UPDATE: Epee Bill (famed member of the Ann Arbor Dueling Society) asks:


And if I asked you, "Why do I want one of these and no a PDA?" what would you say?


Well, Bill, I'm not sure that my answer will make any difference to you, because you're a Mac guy. But I'll give you the answer anyway. Does the PDA run Word? Excel? Outlook? Internet Explorer? Windows media player? A wide range of PC games? MapPoint? And pretty much all of your Windows software?

Does the PDA play DVDs? A UMPC will, though I expect you'll have to plug in an external DVD player on most of them, and probably a power cord. DVD playing should use a lot of battery power.

And while I'm at it, does the PDA run Tablet UML? Or OneNote? Or Journal? Or the Franklin Planner software? Or GoBinder? Or any other Tablet PC software?

See, you're a Mac guy, so you don't have any Windows software; but a lot of people do. For them, this may be a good alternative to a high-end PDA. (Low-end PDAs will still be a lot cheaper.)

And wait until we see new applications built on the power of ultra-mobile connectivity and power. I have some ideas on those, but not enough time to present them right now.
All right, NOW I can talk about Origami...
...but Microsoft says it so much better here. As some reports have hinted, Origami devices (now known as "Ultra-Mobile PCs") are small, light, highly portable Tablet PCs.

And for developers, there's a lot more on Ultra-Mobile PCs here.

And of course, if you want to learn how to write programs for UMPCs (boy, is that an ugly abbreviation, or what?), I would like to suggest that you start with our Tablet PC Programming Workshop. (If your organization plans to deploy a large number of UMPCs, Microsoft's SSP program recommends our course.)

UPDATE: Epee Bill (famed member of the Ann Arbor Dueling Society) asks:


And if I asked you, "Why do I want one of these and no a PDA?" what would you say?


Well, Bill, I'm not sure that my answer will make any difference to you, because you're a Mac guy. But I'll give you the answer anyway. Does the PDA run Word? Excel? Outlook? Internet Explorer? Windows media player? A wide range of PC games? MapPoint? And pretty much all of your Windows software?

Does the PDA play DVDs? A UMPC will, though I expect you'll have to plug in an external DVD player on most of them, and probably a power cord. DVD playing should use a lot of battery power.

And while I'm at it, does the PDA run Tablet UML? Or OneNote? Or Journal? Or the Franklin Planner software? Or GoBinder? Or any other Tablet PC software?

See, you're a Mac guy, so you don't have any Windows software; but a lot of people do. For them, this may be a good alternative to a high-end PDA. (Low-end PDAs will still be a lot cheaper.)

And wait until we see new applications built on the power of ultra-mobile connectivity and power. I have some ideas on those, but not enough time to present them right now.

Saturday, March 4, 2006

I can't say anything about Origami, I tell you!
It's called an NDA. A Non-Disclosure Agreement. As in, "If you ever want Microsoft to have anything to do with you again outside of a court, keep your mouth shut!" So if anyone asks about Microsoft's new Project Origami or about rumors of newer, smaller, cheaper Tablet PCs, I can neither confirm nor deny anything until when and if Microsoft makes any public pronouncements — which are slated for March 9. I can't tell you which things I've heard that are true, and I can't tell you which things I've heard that aren't true.

But I can certainly point you to anything that is being published by other people, and try to pique your interest:

The Project Origami site

A New York Times article that says all sorts of things I can't comment on.

Ditto for this Reuters story.

And these two from ZD Net.

And this one from eWeek.

And I can't overlook the two stories from the good folks at Tablet PC Review Spot.

And then there's this. And this.

I can't say anything about Origami, I tell you. But other people have a lot to say. Some of it might even be true.

Thursday, February 2, 2006

Finally! The numbers!
The main thing I wanted from the Microsoft Mobile Platforms Division Partner Briefing was simple numbers: how large is the Tablet PC market? That, ultimately, is what determines the market for Tablet UML.

And the answer is: 1,000,000 Tablet PCs shipped so far, with 850,000 expected to ship in 2006.

Bonus numbers: 300 known Tablet PC apps in production, 125 of which are for sale on Handango, an online site specializing in software for mobile devices. Those 125 come from 30 ISVs. Maybe I should make that 31.

Now I can start calculating market potential...
Drat! Now I want a new computer!
The MS folks at the Microsoft Mobile Platforms Division Partner Briefing are showing off Sidecar, a new technology that lets hardware manufacturers embed a small display and controller in the lid of a laptop. That way, you can get at some information — maps, appointments, music, etc. — without having to open up and boot from standby and so on. That would be really, really, really handy for mobile users like me.

Unfortunately, the Sideshow team isn't talking to the .NET team. The developer tools group have been pushing managed code (i.e., .NET) for pretty much everything; but Sidecar has only a C++/COM API. This, I find, is a consistent, recurring problem for Microsoft: some of their leading edge stuff in one area hasn't kept pace with some of their leading edge stuff in another area. The Speech API (SAPI), for example, is still only available as a really poor COM wrapper around a C++ core. When I hear MS haters scream how unfair it is that MS app developers have unfair access to the internals of MS platform code, I can only laugh: it seems like the market as a whole is much farther ahead in adopting MS technologies than are some parts of MS itself.
Lights! Camera! Action!
We have a new video up at TabletUML.com. It's in line with the "show, not tell" school of communication. I find that I can talk about Tablet UML all day long without making an impression; but if I just start drawing, people get the point, and some of them get excited.

This video was created with Camtasia Studio Screen Recorder. Josh Holmes recommended it, and I have to thank him for that. Camtasia Studio creates much smaller videos than other tools I have tried. More important, it doesn't slow down the performance of the system while it's recording, so the videos look natural. It's a great tool.

And for those who are interested: that video is of Tablet UML 1.5 in action. It should be available within the week. I distributed copies at the Microsoft Mobile Platforms Division Partner Briefing this week, and I'll update the Web site shortly.

Wednesday, February 1, 2006

Best laugh of the week... from a geek!
Never would I have guessed that a presentation on the architecture of handwriting recognition systems would be a source of great hilarity. At the Microsoft Mobile Platforms Division Partner Briefing, Jay Pittman has us rolling in the aisles. Some examples.

"So you write 'dictionary', but the recognizer comes up with 'dictum'. So we let the user select the 'um' and rewrite it. But we have to do that in context of the first part. Otherwise, Bill Gates tries this, and he writes 'ionary', and the system looks it up in the dictionary and finds the first matching word, 'ion'. And then Bill Gates uses... 'colorful' language."

"I never imagined when I was planning my career that some day Bill Gates would pay me to look up dirty words in the dictionary."

"So we have to mark certain words as being in the dictionary, but being 'restricted'. That means that, when the recognizer can't recognize something but the F-word looks like a possible match, we still don't put it in the match list. We have to put it in the dictionary, or else when someone types it, it will show up as a misspelling. Then someone will write a letter to the editor: 'Microsoft doesn't know the F-word.' But that doesn't mean they want it showing up in the suggested word list. That way, we'll get letters from Senators. Or Archbishops. (Audience laughs.) It has happened."

"KKOMO: That means 'Krispy Kreme's Outside My Office'. It makes you very popular here at Microsoft."

"We don't pre-announce things... usually because we don't know!"

Mr. Pittman is one funny speaker!

On a more serious, business note: at this briefing, Microsoft announced that the Richard Hale Shaw Group is now their official partner for developer training for enterprise Tablet customers. If you're not quite large enough to be one of their enterprise customers, you can get the same training directly from us.

UPDATE: "We also get asked about Klingon text recognition. The answer's still no."

UPDATE: Fixed a dumb spelling error.
Best laugh of the week... from a geek!
Never would I have guessed that a presentation on the architecture of handwriting recognition systems would be a source of great hilarity. At the Microsoft Mobile Platforms Division Partner Briefing, Jay Pittman has us rolling in the aisles. Some examples.

"So you write 'dictionary', but the recognizer comes up with 'dictum'. So we let the user select the 'um' and rewrite it. But we have to do that in context of the first part. Otherwise, Bill Gates tries this, and he writes 'ionary', and the system looks it up in the dictionary and finds the first matching word, 'ion'. And then Bill Gates uses... 'colorful' language."

"I never imagined when I was planning my career that some day Bill Gates would pay me to look up dirty words in the dictionary."

"So we have to mark certain words as being in the dictionary, but being 'restricted'. That means that, when the recognizer can't recognize something but the F-word looks like a possible match, we still don't put it in the match list. We have to put it in the dictionary, or else when someone types it, it will show up as a misspelling. Then someone will write a letter to the editor: 'Microsoft doesn't know the F-word.' But that doesn't mean they want it showing up in the suggested word list. That way, we'll get letters from Senators. Or Archbishops. (Audience laughs.) It has happened."

"KKOMO: That means 'Krispy Kreme's Outside My Office'. It makes you very popular here at Microsoft."

"We don't pre-announce things... usually because we don't know!"

Mr. Pittman is one funny speaker!

On a more serious, business note: at this briefing, M