I’ve finally gotten around to actually playing with Windows Presentation Foundation in Visual Studio and I’m really blown away by the capabilities. As a GUI guy, I can totally appreciate all the work they’ve put into this framework and I am relieved to see most of the problems with GDI+/Windows Forms being addressed. WPF will definitely mean more impressive looking user interfaces that will make “web 2.0” look like DOS.

But what does this mean exactly for Tablet PC’s? Well, with the recent announcements about Origami devices, the landscape is certainly changing drastically. No longer can a Tablet PC developer assume that his application will run in 1024×768 at 96dpi. Even with the Toshiba M200 and other large screen tablets this is already a problem (although it’s a lot easier to deal with more screen real estate than less).

Resolution-independent applications

The first way you can make your applications deal with different resolutions is to create adaptive layouts. That is, make sure your controls stretch when the window is stretched. In some cases, you can have wrapping UI elements or split containers. This is all possible today in Windows Forms. But it doesn’t solve the issue of high density screens that pack lots of pixels into a small physical area. The problem here is that the same application on 1024×768 at 96dpi looks terribly small on a screen with a much higher physical DPI.

The solution is to stop thinking in terms of pixels and start thinking in terms of real world coordinates like inches. Traditionally, this has been very hard to do in Windows programming. Sure, GDI and GDI+ have scale transformations and alternate coordinate systems, but the underlying Windows subsystem does not have this capability, making it practically useless for controls. In WPF, though, everything is consistent. A virtual coordinate system in WPF works great because you can layout your user interface in a predictable size and then if the resolution (number of pixels) or DPI (pixels per inch) changes, your user interface can scale uniformly and still be usable, with no additional work by you, other than applying the scale. The result is just like if you resize a flash movie.

Consistent visual styles

The other problem with developing Tablet PC applications in Windows Forms is that there is no clear user interface guideline for these kinds of devices. For example, the Origami devices seem to be touch-focused rather than pen-focused. If your application is going to run on these devices, you probably want to make sure your UI elements are suitable for fingertips which are bigger and blunter than a stylus (unless you’re a child, a very thin woman, or a really feminine guy, or a gynecologist, etc…) but what is the right size? What works best?

Why does every new Tablet PC programmer have to research this? And once they do, applying these guidelines consistently across a Windows Forms application is not trivial. But with WPF’s style support, you can “skin” your controls just as easily as you would with CSS on the web. I envision some brilliant WPF-minded people at Microsoft will come up with some great style resources which can just be dropped into your WPF form. They might look similar to the look and feel of the Tablet PC Education Pack which has beautiful, large buttons and attractive gradients. I want more applications to look like that and WPF can make it happen.

Ink is a first-class citizen

This really took me by surprise. But in WPF, ink is just built in. It’s in the same runtime as the rest of the presentation components and all of the UI elements that I have seen expose support for the RealTimeStylus API which provides low-level stylus input capabilities. So it’s easy to tell if you were clicked by a pen/finger or clicked by a mouse.

Also collecting and rendering ink has all of the same presentation capabilities such as the render transformations, animation, 3D, etc. But I suspect this will not be as broadly useful as the other capabilities. But it might make for some really cool visual effects for the TEO controls!

Anyway, bottom line is… If you’re thinking about developing applications that will run on these wide variety of devices, you need to consider Windows Presentation Foundation. It’s available for Windows XP and Windows Vista and is currently in beta.

I gotta hand it to Loren Heiny of Jumping Minds software. This is just a very natural, no brainer. The ability to use commonly used proofreading gestures to edit Word documents and email messages makes perfect sense on the Tablet PC and he’s executed it very well. Like me with TEO, Loren discovered the hard way that writing Office add ins for Tablet PC isn’t a cakewalk and after what seemed like an eternity, the long awaited Ink Gestures 1.1 is available for the public. There are also several videos showing how to use it.

Congrats Loren on beating me to market! :) And on making Office one step closer to being the ideal Tablet PC software.

http://www.inkgestures.com

I’ve heard great things about this add in for quite some time but only now did I get a chance to actually install it. I think this is a must-have for any Tablet PC user but it’s also very useful to anyone that likes to keep an organized PIM.

Basically, what Anagram does is parses text from the clipboard and converts it into a Contact, Task, Appointment, etc. I mostly use it for contacts because many times people will email me with their contact info but it’s not in a VCF. It’s in an email signature or even worse, the body of their email. So you select the text (it doesn’t matter if you get stuff that isn’t a part of the contact) and Anagram will do its best to figure out where fax numbers, home numbers, email addresses, etc. all go.

The best part is, since TEO 2.x and above will override Outlook’s standard UI’s for things like this, it just works by default with TEO! I’m working on a screen capture video much like Rob Bushway did with TEO and ActiveWords to show off how Anagram works with TEO. I have one already but it has someone’s contact info that might not want to be shared.

Get this add in!

I got my confirmation email today that I got the Tablet PC MVP (Most Valuable Professional) award for my contributions to the newsgroups and Tablet PC Buzz forums (and believe it or not, the Infinotes forum too).

I think this says a lot about the program which I have had my doubts about in the past. For starters, by awarding me with the MVP, Microsoft has made it clear that the award is definitely given for community involvement and not for being a Microsoft puppet. As some of you who browse the newsgroups know, I very often times disagree with Microsoft and stray from the “supported and recommended” practices if it means helping someone out. I also express my views quite openly regardless of whether or not it’s going to piss someone off. The fact that this didn’t disqualify me gives me more faith in the program.

Also, I want to make it clear that I didn’t accept the nomination and change my mind about the program just for the benefits. I already have the MSDN membership and I already have NDA’s with Microsoft and connections to insiders. And I’ll still continue to post when I have time, when I’m qualified to answer, and when I feel like it. I don’t feel any pressure to keep up my post counts.

Thanks again to everyone who nominated me!

Congratulations to the other Tablet PC MVP’s:

Marc Orchant
Craig Pringle
Tracy Hooten

They were also awarded MVP’s yesterday. I read this over at www.tabletpcbuzz.com

I thought Marc and Tracy were already MVP’s but I guess not!

When you see how fast TEO 3 is (yes even in the first beta) you can thank the folks over at AutomatedQA. This profiling tool is very intuitive and is probably the best performance profiler I’ve ever seen. I took a few hours to tune up TEO 3.0 tonight and made about an 85% speed improvement opening new and existing items.

Sorry I haven’t posted much. Been busy with Christmas, TEO, and sick as a dog for the last week. I have a pretty big announcement to make (about my personal life) on Saturday so stay tuned.

Well after over 2 years (and a visit to MS and interaction with many many employees), Microsoft’s legal department just decided that Tablet Enhancements for Outlook is a violation of their trademark. I’m no expert in trademark law, but I’m sure they have grounds for what they’re asking, but it’s retarded.

Why? Because it’s not like I’m calling it “Outlook Tablet Edition” or something like that. The name is very descriptive of the fact that it is an add on for a specific Microsoft product. In fact, the descriptiveness of the name has probably been a key factor in how popular it has become.

Furthermore, it is not in competition with anything Microsoft is doing and in fact it improves upon a product which has neglected Tablet PC users for 3 years.

So anyway I have no ability to fight this and I’d probably lose anyway so it’s time to think of a new name. Some suggestions I’m making are:

  • Tablet Enhancements for Bullies
  • Tablet Enhancements for Thunderbird
  • Tablet Enhancements for iCal
  • Tablet Enhancements for your favorite personal information manager that Microsoft makes (oh wait, can’t use that trademark either)

No matter the result, less copies of TEO will be downloaded. I’m glad someone is making $300/hour to work on this case.

Nov 102005

Well tomorrow I am off to the west coast AGAIN. I’m leaving for San Jose at 10:45 AM. Gonna get there a little early. It’s for some Sylantro training session. I am not attending as a student, however. I am helping out with some of the labs and they want me to check out the program they have so that I can help them with future training sessions. All in all, it’s a distraction right now since TEO is getting so close to wrap up, but I promised I would do it and I want to keep my relationship good with them.

With that said, I decided to do things a little differently this time. Rather than fly to San Jose (which by the way, no one does nonstop) I decided to take a train for a variety of reasons.

First of all, I hate air travel. Scared to death of it. I try to avoid it whenever possible but it’s even worse when I have to travel alone and even worse still when I have to make multiple stops.

Second of all, (well kinda goes along with the first one) is that I lose lots of sleep and I get very distracted in the days leading up to a flight. This is extremely unproductive. I’m really looking forward to a cross country train ride though. Not feeling nervous before travel is a great feeling that I’m not used to.

Third of all, flying sucks unless you do it first class. I hate breathing that recycled air, feeling cramped like sardines next to some fat smelly knucklehead who acts like I just flipped off the pope every time I want to get to the bathroom or stretch my legs. It’s a 6 hour flight to San Jose from Philly and it’s not fun. I looked into first class and it was a lot more expensive than I thought it would be (granted, the week before I was supposed to leave). That still doesn’t solve problems #1 and #2.

So I booked a first class train ticket on Amtrak.com from Philly to Santa Clara. I’ve got a bedroom so I can sleep and most importantly work on TEO uninterrupted. I’ll have EVDO or 1xRTT for much of the trip so I’ll still be connected. On a train, they have lounge cars and bar cars where you can watch football games and have a few beers.

This is my first time on a long distance train ride so I’m real excited. I packed lots of food and clothing and my supplies:

  • My tablet of course
  • 3 GPS’s (with Streets & Trips to watch my progress)
  • Advil, Pepto, Tums, sleep aid, etc
  • Nintendo DS
  • Book: Windows Workflow Foundation
  • Couple of Seinfeld, South Park, Simpsons, etc. episodes
  • My EVDO-equipped Pocket PC Phone

And of course my entire itinerary is in Outlook along with maps of my destination when I get there.

The whole trip will take about 3.5 days each way and I’m staying for 5 days. I have some business I need to tend to with the folks from Sylantro before the training. This will be the longest I have been away from my fiancé, Heather since we started dating. I’m sure it will be as tough for her as it will be for me. But I’ve got the web cam and I will be in touch with her regularly. I’ll try not to say anything corny like my dad has been doing from his boat in the middle of the Atlantic…

I’ll try to be in touch via email if you have any support issues.

Okay so early this morning I posted a couple screen shots of the task form in TEO 3.0 just to kinda give some insight into the improvements I’ve made over TEO 2.x in overall usability and eye candy. So far the reactions have been good but the reason I try to avoid giving info like this away in increments is because it actually makes the product less interesting when it finally is released because you’ve gradually grown accustomed to things. Take for example the release of the Whidbey family of developer technologies next month. I should be ecstatic because it’s a huge upgrade over VS.NET 2003. But I’ve been using Whidbey in beta form for months now and in fact I’ve been developing exclusively in Whidbey for months too. So to me, Whidbey was released 6 months ago. And don’t get me wrong, it is totally awesome. Well I guess there is something to be said about the fine balance between gradually building buzz about a new product and giving it away all at once.

The other reason is that it’s hard to “see” all of the work I’ve been putting in over the last few months until the final pieces are put into place. For example, there’s been a ton of work that I’ve invested in a very cool background research engine that searches your ink against reference databases while you write. You can’t *see* this yet because only recently have I even been able to use Infinotes (which by the way should be #1 on any Tablet PC developer’s shopping list). But when that final piece of the puzzle is put into place you’ll see how unique and innovative this really is.

So anyway, last night I decided to pull another all nighter. Those of you that know me, know that I get my best work done at night (hey now get your mind out of the gutter for a second…) and I try to leverage that as best I can. Why? Well because I am by nature an easily distracted and chatty person. Arin, Lora, Andre, etc all know first hand that sometimes I just can’t shut up. I guess I’m making up for years of being an introvert. In the middle of the night, Heather is sleeping, nothing good is on TV, and nobody is on my buddy list. Is it any surprise that I am a lot more productive at this time?

But sometimes the real world doesn’t quite accept that schedule, as was the case today. My brother needed some help delivering a larger than usual t-shirt order to a customer of his and I offered to take the ride with him at 8:00 AM. So I wasn’t gonna get any sleep this morning. I also had a lunch appointment with Buzz Bruggeman (ActiveWords) at 12:00 PM so I just decided to stay up all day.

We had a great chat, had lunch, I had a few beers (what else is new), then hung out at Starbucks for a few hours and discussed lots of topics from search, to Tablet PC software marketing, to ActiveWords/TEO integration, and probably lots of others. I checked out his HP TC4200 and he got to know my Motion LE1600. He was having a pretty nasty problem with TEO that I’ve seen on maybe 4 other occasions where all of the double-buffered graphics simply don’t draw correctly. I tried several things but wasn’t able to fix it on the spot. I’ll have to do more research.

Anyway by the time I got home I was going on 36 hours without sleep so I totally crashed. Then I woke up around 10:00 PM so my schedule is all screwed up now. Time to get back to work now. I think I have a few support emails to get to.

Edit: Forgot to link to the screen shots and to ActiveWords… duh. Sorry.

Microsoft has quietly released a fix for the Tablet PC managed ink components when running under the .NET Framework 2.0 which will be released very shortly. I encourage all Tablet PC users (especially TEO users) to install the fix below which I am linking to. Hopefully there will be a redistributable version soon. You should install this component now, even though .NET Framework 2.0 is not out yet. This will ensure that your apps (and TEO) continue to work properly when the framework is released.

This is very very good news because this enables Agilix to release Infinotes 2.0 which is dependent upon these fixes and corrects the problems that Infinotes currently has under .NET 2.0 beta. Agilix has said that they will release Infinotes 2.0 on or before November 7th. I want to thank everyone at Microsoft and Agilix who tolerated my bitching and got these fixes implemented.

http://www.microsoft.com/downloads/details.aspx?FamilyID=84bbefa4-7047-41df-8583-e3bdbf9d805f&DisplayLang=en

As has been reported on a few blogs already, I have announced the upgrade policy for TEO 3.0 and pricing information as well as a preliminary feature list.

If you purchased TEO 2.0 on or after 10/1/2005*, then your upgrade to TEO 3.0 will be no additional cost.

Upgrades from TEO 2.0 will be $24.99 and the full price will be $49.99. TEO 3.0 will be released around December 2005. No concrete release date has been specified.

TEO 3.0 represents a huge upgrade from 2.0 with many new features. Below are some of the improvements and new features.

Improvements

  • Larger, more comfortable input controls with visible rule lines, focus indication, full keyboard support, and improved recognition.
  • Much better correction interface with ability to correct recognition while preserving ink.
  • Background incremental recognition and Outlook data binding for much faster saving.
  • Full featured note taking with support for mixes of ink, text, shapes, images, and flags.
  • Windows Journal import capability.
  • Outlook attachments and contact links supported from within the TEO window.
  • Many more Outlook fields supported. Almost all fields supported.
  • Durations and abbreviations supported in ink. Writing things like “1 d” or “2 hours” supported in duration fields.
  • Tab position can be top, bottom, left, or right.
  • Notes bug fixed!
  • Appointment label supported.

New Features

  • Information bar allows special messages and context sensitive tips to be shown at the top of the window.
  • Integration with Virtual Earth for mapping support without MapPoint.
  • Integrated telephony features such as click to call and auto call journaling and conference calling.
  • Integrated voice recording and playback.
  • Background lookups in Wikipedia and other reference databases.
  • Improved reminders dialog with ink support and text to speech option.
  • Recurring appointments and tasks supported.
  • Ability to choose the handwriting recognizer language on a per item basis.
  • Option to warn when saving an item without a category.
  • Contact images and business card images (from a CardScan device) displayed in the form.
  • Layout manager provides optimized layouts for various resolutions and orientations.

Sorry for not posting this sooner. I’ve been very busy between moving and juggling several development projects. A new TEO web site will be up soon.

* Einstein Technologies may allow a grace period of a few days prior to this date for customers that purchased before 10/1/2005. These customers will be notified via email of their upgrade eligibility.