On this page
pZing and Tablet PC development
Interesting Touch Development in Sydney
LinkedIn Group for Tablet Developers
An interesting chat with Scott Eckert of Motion Computing
Trap for young (or tired) players
Why are Microsoft holding SilverLight back?
Why are slates disappearing?
Is Loren writing a web based ink blogging tool?
Silverlight Ink SDK Sample Available on Microsoft Downloads
Loren Heiny, Ink, and Silverlight
Experimenting with recognition and Silverlight
Silverlight Released
Inside the PressureLevels application
Download the pressure levels utility
Little app to show off pressure levels
How about some ink enabled Silverlight controls?
Every form more than 600 pixels wide is a failure
How To: Create an Ink-Enabled Sidebar Gadget Using Silverlight
Tablet Meetup @ TechEd
Frank does Tablet @ TechEd
Three big events for the tablet PC recently
Inking on the web is a whole lot easier now
Wacom tablets big and small
Cool app to Explore Ink Analysis
My five to ten minutes at the .Net UG
Developing Tablet Apps on a Non-Tablet
More SideShow Gadgets from CES
The Windows Vista Developer Story: Mobility and Tablet PC Roadmap
Make your own on-screen keyboard.
Cool looking tablet game
Some upcoming webcast that may be of interest
Using InkCanvas
SideShow Gadgets explained
MSDN Webcast: Overview of Ultra-Mobile PC (UMPC) Development for Windows Vista
Article about Inking the Web
More on the Speech tutorial in Vista
My new ink application - for Vista only
Update to Tablet SDK
New Tablet Development BIog
Done and Dusted
Windows Live Writer
Practicing what I am Preaching
Christian Falch: looking for Ink Everywhere
Ink in Sidebar Gadgets, the problem
UMPC and Tablet PC Developer Contest
Lunch with a Microsoft Author
Code translations...
BlogPad back in business...
Mobilize your apps!
Turning off the Pen Input Panel Icon for a InkEdit Control
Anyone willing to help with BlogPad development?
Where is the Alpha going?
About to build the Alpha Build of BlogPad
Seven Habits of Highly Effective Programmers
Another BlogPad Test - with Categories
Test post from BlogPad
More Tablet Devleopment Focused Resources
Add Tablet PC Cred to Your Windows Forms Application
A (minor) Breakthrough
BlogPad back on the front burner
BlogPad on hold for a week or two
Time to get cranking on BlogPad
Will BlogPad Post as Ink?
BlogPad mentioned in OnTheRun with Tablet PCs and by Scoble
A visual Tour of BlogPad
Visual Studio Express Editions RTM - And FREE
Test Post from BlogPad
A non-developer's look at VB Express
Some progress on BlogPad
Starting on the path of TabletPC Development
Recent Posts on Technozone
This site
Calendar
<May 2013>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
Archives
Categories
Microsoft MVP
Blogroll OPML
Disclaimer

Powered by: newtelligence dasBlog 2.0.7226.0

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Send mail to the author(s) E-mail

Theme design by Craig Pringle

Based on the essence theme by Jelle Druyts

pZing and Tablet PC development#

We’ve had some guests staying with us for a week or so and tonight I am catching up on some of my feeds  from the past week. 

My good friend Nick Randolph, in a post about the Self Publishing Service pZing, points out that Dr Neil’s excellent eBook on Tablet PC Development is available for download from pZing.

Another book that was recently published via the pZing service was Dr Neil’s Tablet PC Development eBook:

pzing Getting Started with Tablet PC Development

If you would like to get into tablet and touch development but don’t know where to start this is well worth checking out.

Wednesday, January 21, 2009 8:06:37 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Interesting Touch Development in Sydney#

I got a sneak peek at a team doing some interesting development with touch technologies in Sydney on Thursday.

image

My friend Nick Randolph is the Chief Development Officer at nsquared solutions. He his heading up a team of developers working on development projects with a range of cutting edge technologies including Windows 7, multitouch, multipoint and Microsoft Surface.  

They are working on some really cool projects that are really going to show how multitouch can really change the paradigms we work with in user interfaces now.

It is exciting stuff and I am sure we will be hearing more form nsquared in the near future.  In the meantime you might want to check out Nick's teaser post about what they are working on and subscribe to the nsquared blog feed.

Friday, November 28, 2008 8:47:32 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

LinkedIn Group for Tablet Developers#

I was just doing an overdue Inbox cleanout when I came across a comment notification I got ages ago that I should of posted about before now.

Folks: if you are a TabletPC developer or user please join us in the Linkedin TabletPC Enthusiast group: http://www.linkedin.com/groups?gid=66744

This is an official Linkedin.com professional networking group. Sole purpose is to identify TabletPC developers and users and grow our community. No cost. See Linkedin.com for more information about how Linkedin.com and groups work.

Sounds good - I've signed up. If there is one thing we all need it is more people writing cool tablet applications!

Tuesday, October 07, 2008 9:00:28 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

An interesting chat with Scott Eckert of Motion Computing#

This morning I was fortunate enough to have a one-on-one chat with Motion Computing's President and CEO, Scott Eckert.  Thanks for all those who posted comments and questions on my blog and on GottaBeMobile.  Rather than pose every question directly (as there were quite a few) I looked for the common themes in the comments and constructed questions from those. 

I met Scott in the foyer lounge of a Sydney Hotel.  We chatted for a couple of minutes about Sydney, the appalling weather and work, then got down to business.  He was pleased that I was taking notes on my LS800 at the meeting and allowed that he used one himself for two years.  This led nicely into my first question.  What follows is summary of my discussion with Scott.  This is not a verbatim transcript as I did not record the conversation.

--

Of the 12 comments posted on the two blogs (excluding the one about taking Scott hostage until he included ice cube makers - which we both took as a joke) fully 4 of them mentioned the LS800 directly and two others mentioned a desire for a smaller tablet.  When the LS range was dropped there were a lot of people who were very disappointed, myself included.  In my view Motion created and owned the Ultra Mobile category before the UMPC label even existed.   Given that there is an apparent market for these devices and that they were, and still are,  a device that really turned heads and got people interested in Tablets - why was it dropped?

In response Scott was pleased that I was crediting them with creating a category.  Their goal was to create a truly enterprise class UMPC and he felt that they had done well with that.  He also indicated that while the LS800 did enjoy some success in certain areas that it did not achieve the volumes needed to sustain it as an additional range.  That said the market for this type of device is still there and Motion is keeping an eye on it, there is ongoing R&D and as pen, touch and other technologies mature it is an area that they may re-enter.

Next I said that to me it seemed that sometimes Motion was focusing more on winning new customers than looking after their existing customer base.  Two examples I held up to support this.  The first was the inability to migrate accessories between ranges - such as the M-series range and the LE-series range.  The second was the relatively poor upgrade experience that Motion users had going to Vista. 

On the first point Scott pointed out that their ranges are expected to exist for about 3 years before being replaced by a new range.  They try to ensure consistency in the range, but in order to take advantage of rapidly advancing technology they won't necessarily have compatibility of peripherals between ranges. 

I suppose that this helps Motion evolve their products more quickly as they are not constraining a new range with the limitations of the old. 

Scott also pointed out that while accessories for previous ranges are not necessarily compatible, they are supported and spares are available long after the range stops shipping, which also helps to mitigate the issue for their enterprise customers.

On the second point Scott acknowledged that the Vista upgrade experience had not been all that smooth for end users.  They have learned from the feedback and hope to do it better next time.  He also pointed out that many of their enterprise accounts are still deploying XP based images on their Motion tablets.

There seems to be an increasing focus on verticals with the specialized range expanding and what I consider to be the general use/corporate range shrinking.  Is this going to be a trend that continues?

Motion are really highly focused on the verticals.  In fact when I was chatting to Scott this was very apparent long before I asked this question.  Scott told me that the way Motion look at it is that they have two primary verticals and three product ranges.  The vertical markets they are focused on are healthcare and field automation and the three product ranges can be applied to both of those.

This is not to say that there are not other niches and verticals that don't suit the Motion tablets.  Indeed some of the successful markets have come as something of a surprise to Motion.  The LS800 enjoyed quite a bit of success in the aviation market, and this was largely driven by a software partner who married up his software, the LS800 and a mounting solution and sold this as a bundle.

What other verticals interest you?

Motion's primary focus has always been people who need to use a computer while standing and walking. 

One of the questions that came up was around a slate for artists - any plans to enter that market?

Scott thought that the artist market was pretty well served today by the likes of the Wacom Cintiq which is not mobile, but it provides a much higher resolution and a better digitizer than what is available today in mobile devices.  There may not be too many mobile artists, but many of the ones that are out there are using the LE range devices today with success.

There were a couple of questions around multi-touch.  Motion was leading the market there - what happened?

The technology was very new and Motion just struggled to get it commercialized.  Touch, and the combination of touch and an active digitizer, is and will continue to be an important technology for future ranges.

(reading between the lines I take it there won't be one in the LE range, though I could be wrong.)

Motion also feels that for touch to really succeed it is critical that the applications are designed for and work well with touch.  This led nicely to my next question.

Again - from the questions posted is there any thought of entering the software market to help bring that about?

The short answer is that Motion is not looking to become a software house.  However Motion are already active in that space and they currently work with about 150 software partners in the vertical markets to help them write better applications.  It is better for Motion to have more partners and to work with them rather than compete against them.

This is where Scott talked about the aviation example and how a partner created a market for the LS800 and did really well in it.  Naturally Motion would like to find more partners like that, so for those of you reading this that write software - keep that in mind!

There are some general issues that most mobile users face, such as battery life and heat.  There are also some technologies that seem to be taking a long time to come to market, such as hybrid drives or that still carry a significant premium like solid state drives.  What do you see as the most important technologies coming.

Battery technology is really a chemical process, which means that adding capacity to batteries is not easy.  Motion have found it more fruitful to reduce the power consumption of the device and this is where they are investing.  This means both engineering better, more efficient hardware, adding technologies such as LED backlit displays and working with application developers to make the applications more efficient.

--

Some closing thoughts from me.  Scott is a genuinely nice guy and I really enjoyed my chat with him.  He is astute, passionate about his products and focused on the vertical markets and the Motion vision.  Motion are not merely aware of the bloggers, readers and commentors that make up the blogosphere.  They are not just listening to the conversations.  They are actively reaching out and engaging and I think that is a really good thing.  Thanks to Scott for taking the time to talk to me.

Wednesday, June 04, 2008 11:21:47 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Trap for young (or tired) players#

If you are looking at developing tablet applications (and before you ask - yes you should be...) then there is a little trap that you should be aware of.

If you want to make use of the Ink Analysis API and you are developing on a 64-bit machine then make sure you set the target CPU to x86.  The Ink Analysis assemblies only support 32-bit at this time. 

If you forget to do this then when you build or debug the project on an 64-bit machine then you will get an error like this:

System.BadImageFormatException was unhandled
  Message=" is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)"
  Source="IACore"
  StackTrace:
       at System.Windows.Ink.AnalysisCore.RecognitionEngine..ctor(AnalysisWarningBaseCollection warnings)
       at System.Windows.Ink.AnalysisCore.RecognitionStage..ctor(AnalysisWarningBaseCollection warnings)
       at System.Windows.Ink.AnalysisCore.InkAnalyzerBase.CreateParserAndRegisterForEvents(Boolean reco)
       at System.Windows.Ink.AnalysisCore.InkAnalyzerBase.ForegroundAnalyzeInternal(ForegroundProcessingRecord record, AnalysisRegionBase dirty, AnalysisRegionBase originalDirtyRegion, Int32[] dirtyStrokesToAnalyze, AnalysisRegionBase dirtyRegionFromStrokesToAnalyze, AnalysisRegionBase regionOfRemovedStrokes)
       at System.Windows.Ink.AnalysisCore.InkAnalyzerBase.Analyze()
       at Microsoft.Ink.InkAnalyzer.Analyze()
       at InkBlogger.Form1.Button1_Click(Object sender, EventArgs e) in C:\Users\Craig Pringle\Documents\Visual Studio 2005\Projects\InkBlogger\InkBlogger\Form1.vb:line 21
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
       at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
       at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
       at InkBlogger.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()

Which is not all that helpful...

To correct this you just need to set the target CPU in your project properties to x86.  To do this...

  1. right click you project in project explorer and select properties
  2. click on the Compile tab
  3. click on the Advanced Compile Options... button
  4. Set the target CPU as shown below.

image

What am I developing, you ask?  Time will tell ;-)

Wednesday, February 20, 2008 9:45:02 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Why are Microsoft holding SilverLight back?#

Are they you ask?  I think so and, quite frankly, it really annoys me.

SilverLight is a platform that offers a lot of potential to the tablet community as it opens the door to real ink on the web.  It is also a direct competitor of Adobe flash.  Flash is well established and SilverLight is the new kid on the block. 

To gain real acceptance in the market Microsoft need to convince developers to choose SilverLight over Flash.  The more developers that are using it the more widely the browser plugin will be deployed. 

So why are Microsoft still using flash on their sites?  I've seen this on a couple of MS sites lately - but tonight it was on Zune.net.  I don't get it.

Sunday, November 11, 2007 7:06:43 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [1]  | 

 

Why are slates disappearing?#

The Mobile Tech Roundup team and Warner Crocker over at GBM are asking where the slates have gone.

Its true. Relative to the whole tablet market, there are fewer slates around now than there were. When I say "relative to the whole market" I am referring to the new form factors such is UMPCs and the new entrants such as Dell.

But why are the slates disappearing?

More accurately what is preventing slate adoption growing as rapidly as their keyboarded cousins?

I'd put the answer in three parts.

  1. Fear. People are use to having a keyboard and giving one up (albeit part-time) scares some fairly savvy users.
  2. Pen-abled applications - or more accurately a lack of. We need more applications that either expose more functionality when run on a tablet or are written explicitly for the tablet.
  3. Natural language Input is just not there yet. Many working age people can type faster thanthey can write.  And that percentage is only increasing. Speech is a good alternative and works well, but it is fairly resource intensive, and many smaller devices such as UMPCs just can't hack it. Not to mention it is simply not possible to dictate to your PC in many situations. I'm inking this post on the train, can you imagine the irritated looks I would be getting if I were talking to myself?

That may sound pretty dire, but does it mean that slates will only be a niche player? I think not.

Why? Because the first two of those points are addressable now.

The fear factor can be addressed by education. Teach the market that you can use a computer without a keyboard. Teach them that if you dock a slate it works just like a "normal" PC. We call this education of the market "marketing" and it has been sorely lacking since the tablet was launched in 2002. It is time for Microsoft and OEMs, especially slate specialists like Motion, Tablet Kiosk and Electrovaya to lift their game.

On the second point there are some really good pen-abled apps out there, but we need to see more marketing from the companies that develop that software. It's a differentiator, promote that fact. But we need more, too, so as a community we need to educate developers and most importantly demand pen features in the apps we use now.

The third point will be eased as hardware performance improves, but will not be eliminated (lMO) any time soon. We need at least the next version of the Windows OS. We can't write off Apple here, either. Now that we have all seen the i-phone you can imagine that a Mac tablet would challenge the UI paradigms we operate in.

Tuesday, November 06, 2007 7:52:11 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [2]  | 

 

Is Loren writing a web based ink blogging tool?#
Tuesday, October 09, 2007 6:03:06 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Silverlight Ink SDK Sample Available on Microsoft Downloads#

Gavin Gear points out a cool sample available on the Microsoft website that demonstrates using its on the web with silverlight.

There's a new sample live on downloads.microsoft.com that I wrote a while ago that demonstrates implementing ink support in Silverlight using a reusable class called "InkCanvas" - InkCanvas code was originally written by Sam George here at Microsoft. This sample implements reusable functionality similar to the InkCanvas element in WPF.

Here's the download link.

Tuesday, October 09, 2007 5:57:38 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Loren Heiny, Ink, and Silverlight#

 I love seeing a tablet developer getting a bit of recognition... no pun intended :)

Via Gottabemobile:

If there is a developer out there more committed to getting Ink onto the web than Loren Heiny I’m not sure who it would be. Loren created a version of his SearchTip, using Siverlight, that allows a user to Ink a search query. Someone was watching and the SearchTip was recently mentioned in Microsoft’s Silverlight Showcase. Congrats, Loren!Silverlightsearchtip

Great stuff Loren!

Wednesday, October 03, 2007 6:42:22 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Experimenting with recognition and Silverlight#

 Loren Heiny has done something cool... again!

SilverlightSearchTIP

Remember the ole ActiveX-based inkable search tip I wrote awhile back which enabled you to search Google using handwritten queries? Well, now it has a cousin: a Silverlight-based version.

Check out the full post, then give the Silverlight Search Tip a whirl.

Monday, September 10, 2007 10:36:41 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [2]  | 

 

Silverlight Released#

Silverlight 1.0 was RTW'd (released to Web) recently and is available for download here.

The 1.1 alpha was also refreshed. you con get both runtimes here.

what's the difference? Check the features matrix here.

Monday, September 10, 2007 10:16:21 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Inside the PressureLevels application#

Now that I have posted the PressureLevels utility I thought that I should give some insight into how it works - in case any real developers want to look into something similar. :)

While it is trivial to collect ink on a tablet using the controls provided by the Tablet SDK if you want more direct, low level access to stylus information then you need to use the Real Time Stylus API.  This is a pretty bare bones API that provides a stream of packets as the stylus moves around.  As a developer you can create a plug in that basically filters this information to just what you are interested and executes code every time on of those "events" fires.

I found this CoDe Magazine article by Marcus Egger to be very well written and extremely useful.

I have a class that contains this plug in that looks roughly like this:

Imports Microsoft.StylusInput

Public Class SimpleStylus
    Implements IStylusSyncPlugin
    Dim iLastPressure As Integer = 0

    Public ReadOnly Property DataInterest() _
    As DataInterestMask _
    Implements IStylusSyncPlugin.DataInterest
        Get
            Return DataInterestMask.Packets _
                Or DataInterestMask.StylusDown _
                Or DataInterestMask.StylusUp
        End Get
    End Property
    Private attachedControl As Form
    Public Sub New(ByVal form As Form)
        Me.attachedControl = form

    End Sub
    Public Sub Packets(ByVal s As RealTimeStylus, _
    ByVal data As PluginData.PacketsData) _
    Implements IStylusSyncPlugin.Packets
        Dim g As Graphics = _
           Me.attachedControl.CreateGraphics()
        Dim packetCounter As Integer
        For packetCounter = 0 To _
        data.Count - data.PacketPropertyCount _
        Step data.PacketPropertyCount
            Dim iX As Integer
            Dim iY As Integer
            Dim iPressure As Integer = 10
            iX = g.DpiX * data(packetCounter) / 2540
            iY = g.DpiY * data(packetCounter + 1) / 2540

            If data.PacketPropertyCount > 2 Then
                iPressure = data(packetCounter + 2)
            End If
            Console.WriteLine("P: " & iPressure & ", LP: " & iLastPressure)
            If iPressure < iLastPressure Then
                g.Clear(Form.DefaultBackColor)
            End If
            g.FillEllipse(Brushes.Black, _
                iX - iPressure, iY - iPressure, _
                iPressure * 2, iPressure * 2)
            iLastPressure = iPressure

        Next
    End Sub

    Public Sub StylusDown(ByVal sender As RealTimeStylus, _
    ByVal data As PluginData.StylusDownData) _
    Implements IStylusSyncPlugin.StylusDown
        Console.WriteLine("Stylus Down")
    End Sub

    Public Sub StylusUp(ByVal sender As RealTimeStylus, _
    ByVal data As PluginData.StylusUpData) _
    Implements IStylusSyncPlugin.StylusUp
        Console.WriteLine("Stylus Up")
        Dim g As Graphics = _
           Me.attachedControl.CreateGraphics()
        g.Clear(Form.DefaultBackColor)

    End Sub

    Public Sub CustomStylusDataAdded( _
    ByVal sender As RealTimeStylus, _
    ByVal data As PluginData.CustomStylusData) _
    Implements IStylusSyncPlugin.CustomStylusDataAdded
    End Sub

    Public Sub [Error](ByVal sender As RealTimeStylus, _
    ByVal data As PluginData.ErrorData) _
    Implements IStylusSyncPlugin.Error
    End Sub

    Public Sub InAirPackets(ByVal sender As RealTimeStylus, _
    ByVal data As PluginData.InAirPacketsData) _
    Implements IStylusSyncPlugin.InAirPackets
    End Sub
    Public Sub RealTimeStylusDisabled( _
ByVal sender As RealTimeStylus, _
ByVal data As PluginData.RealTimeStylusDisabledData) _
Implements IStylusSyncPlugin.RealTimeStylusDisabled
    End Sub
    Public Sub RealTimeStylusEnabled( _
ByVal sender As RealTimeStylus, _
ByVal data As PluginData.RealTimeStylusEnabledData) _
Implements IStylusSyncPlugin.RealTimeStylusEnabled
    End Sub

    Public Sub StylusButtonDown( _
    ByVal sender As RealTimeStylus, _
    ByVal data As PluginData.StylusButtonDownData) _
    Implements IStylusSyncPlugin.StylusButtonDown
    End Sub

    Public Sub StylusButtonUp(ByVal sender As RealTimeStylus, _
    ByVal data As PluginData.StylusButtonUpData) _
    Implements IStylusSyncPlugin.StylusButtonUp
    End Sub
    Public Sub StylusInRange(ByVal sender As RealTimeStylus, _
ByVal data As PluginData.StylusInRangeData) _
Implements IStylusSyncPlugin.StylusInRange
    End Sub

    Public Sub StylusOutOfRange(ByVal sender As RealTimeStylus, _
    ByVal data As PluginData.StylusOutOfRangeData) _
    Implements IStylusSyncPlugin.StylusOutOfRange
    End Sub
    Public Sub SystemGesture(ByVal sender As RealTimeStylus, _
ByVal data As PluginData.SystemGestureData) _
Implements IStylusSyncPlugin.SystemGesture
    End Sub
    Public Sub TabletAdded(ByVal sender As RealTimeStylus, _
ByVal data As PluginData.TabletAddedData) _
Implements IStylusSyncPlugin.TabletAdded
    End Sub

    Public Sub TabletRemoved(ByVal sender As RealTimeStylus, _
    ByVal data As PluginData.TabletRemovedData) _
    Implements IStylusSyncPlugin.TabletRemoved
    End Sub
End Class

In the data interest mask I state that I am interested in StylusDown, StylusUp and Packets events.   This means that every time the stylus comes into contact with the screen or is lifted from the screen the StylusDown and StylusUp subroutines respectively will run.  I use the Stylus up event to clear the drawing so that when you lift the pen you get a clean slate ('scuse the pun).

The workhorse is the packets subroutine. A packet is generated every time there is new data to send.  This will include at least an x and y coordinate and may include a pressure level.  What this routine does is convert the X and Y coordinates to screen coordinates (the digitizer has a much higher resolution than the display), and if there is a pressure level it converts that to the radius and draws a circle on the attached control (which is the main form you see when you run the app.

The other subroutines are just stubs that could be used if you edited the data interest mask.

On the main form I just use the load event to instantiate a RealTimeStylus object then add the SimpleStylus plugin in the class above and pass it the form itself as the attached control.  Here's the code for the main form.

Imports Microsoft.StylusInput

Public Class Form1
    Inherits System.Windows.Forms.Form
    Private rts As RealTimeStylus

    Private Sub Form1_Load _
             (ByVal sender As System.Object, ByVal e As System.EventArgs) _
             Handles MyBase.Load
        Me.rts = New RealTimeStylus(Me)
        Dim plugIn As New SimpleStylus(Me)
        Me.rts.SyncPluginCollection.Add(plugIn)
        Me.rts.Enabled = True
    End Sub
End Class

And that is really all there is to it.  Pretty cool that you can get access to such low-level information so fast, eh?

Tuesday, August 21, 2007 10:25:17 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Download the pressure levels utility#

I previously posted about a little utility that I was working on that shows off the pressure levels detected by all most active digitizer tablets.  (Rob Bushway pointed out in a comment that not all active digitzers present pressure information to the OS).

Well - I've not had much time do more work on the util but I have decided to release it as is for people to have a play with.

It was written against version 6.0 of the Microsoft.Ink assembly - so in theory it will require Vista.  I don't have any XP tablets to test it against but I would not expect it to work.

Basically you run it up and as you press down in the window a circle dynamically sizes around the tip of the pen - the radius is relative to the pressure level being recorded at the time. As pressure decreases I have to refresh the drawing area so you can see the new circle, which causes some flickering, but you can still see what is going on.  If you run it on a touch screen device or on a device without an active digitizer it will work, but it is not that interesting because these devices always return the same value for pressure (if at all).

Download the tool here - it is really just a toy with no real use, but any feedback is appreciated.  Guaranteed to provide minutes of entertainment or your money back.

Tuesday, August 21, 2007 9:59:16 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [1]  | 

 

Little app to show off pressure levels#

One of the cool thingsabout active digitizersis that they arepressure aware. Thedigitizers in most Tablet PCs can detect256 levels of pressure,whereas some of theeternal ones artists usecan detect 512.

While I was at TechEd Australia I had a cool sideline conversation with a chap from Wacom. My colleague Lee was with me at the time and be asked this guy if they had any little utils that could be used to show off pressure awareness in tablets. The answer was no, but we all agreed that it was a cool idea. I foolishly opined that it would be easy to make one, hence volunteering.

I'm still tinkering and will release code soon, but I'm using the real the stylus API to detect the pressure levels and render a circle where the radius is relative to file pressure applied.

Still a bit rough but the Gif below might give you an idea of what it looks like.

PressureLevels

Monday, August 20, 2007 4:25:15 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [2]  | 

 

How about some ink enabled Silverlight controls?#

Frank LaVigne points to a good collection of Silverlight controls he found recently:

I've been working a lot on WPF lately and with the new CTP's of Expression Blend, I've been starting to play around with Silverlight.

Much to my surprise (and perhaps horror) there aren't a lot of controls built into the Silverlight runtime. 

Fortunately, ComponentOne has been working on that and you can see what they've been up to in their labs.  Their control suite for Silverlight, called Sapphire contains the following:

  • textbox, masked textbox, numeric textbox
  • combobox
  • lists galore
  • layout controls: stackpanel, hyperpanel, etc.
  • date pickers
  • color picker, sliders, etc.
  • Much, much more

I wonder ... has anyone made ink enabled Silverlight Controls they are sharing??

Tuesday, August 14, 2007 5:38:35 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Every form more than 600 pixels wide is a failure#

One thing that really irks me is some bits of Vista just don't fit on a 800x600 screen in portrait mode.

See how the right side of the dialog is off the screen?

This is just poor design. The minimum supported resolution for Vista is 800x600. Vista includes tablet functionality. Tablet screens rotate.

If you are building Vista apps assume that screen resolutions will vary and make sure they are still readable at 600 wide. Good design would have the above form resize.

Wednesday, July 25, 2007 10:27:01 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [1]  | 

 

How To: Create an Ink-Enabled Sidebar Gadget Using Silverlight#

While I was at TechEd in Orlando I sat in on a great session by  Dr Neil Roodyn on developing sidebar gadgets.  In his session Dr Neil reminded us all that SideBar gadgets are just mini HTML applications.  I had the thought that now that we have Siverlight with great ink support we could probably knock together some pretty cool gadgets that leverage Silverlight to provide ink functionality.

Now Gavin Gear not only confirms that this is so - he provides and example.  Pretty cool.

In this post, I’ll show you how to use Silverlight to create an inkable surface on a sidebar gadget.

Here’s the example running on my desktop:

 

Check out the full post here.

Saturday, June 16, 2007 10:34:06 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Tablet Meetup @ TechEd#

If you are @ TechEd 2007 in Orlando and you love, have, want or develop for tablet PC then we should catch up.

As it happens there is a Tablet Developer’s Birds of a Feather session going on at  Thursday, June 7, 2007 at 2:45 PM, in Room S331.This is being moderated by fellow Tablet MVP Frank LaVigne.  It further happens that there is a break right after this session.

Perfect! I'll be at the BOF session and my suggestion is that we meet outside room S331 at 4:00 PM for a little ink geekiness.

If you are interested then come along and look for me. I'm the guy with the shiny head holding an LS800.

Thursday, June 07, 2007 8:51:06 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Frank does Tablet @ TechEd#

Last year at TechEd in Boston I struggled to find much Tablet content. There was one session on getting started with mobile PC development that had some ink bits in it.

This year - sessions number one (after the keynote) is Tablet PC as a Smart Client Platform presented by Tablet MVP Frank La Vigne.

Frank covered:

  •  What is a tablet -stressed that tablet is a full PC and that they run the full version of the .net framework.
  •  Overview of tablet form factors.
  •  Some basic tablet usage demos including the TIP, handwriting personalisation is Vista, and ink in OneNote, PowerPoint and Outlook.
  •  Positioned tablets in the enterprise against other mobile devices
  •  Talked about the cost of manual solutions -"paper is expensive" :) Great quote!
  • Adding ink and reco support to a windows form via the ink collector object in the tablet SDK.
  •  Ink Analysis
  •  Cool demo of live blogging in ink, converted to text via ink analysis and posted live

All and all a great sessions - well done Frank!

Tuesday, June 05, 2007 3:57:32 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [1]  | 

 

Three big events for the tablet PC recently#

Since arriving in Sydney I have been too busy getting set up and too disconnected to stay on top of my feeds. As a result I'm using some downtime on a flight (to TechEd. yeah baby!) to catch up on a backlog of things that I either have not gotten to yet or flagged to follow up and have not gotten back to.

As such I am reading about things that have happened in the last couple of weeks all at one. I've noticed a trio of events that are unrelated, but that I think speak volumes about the future of the tablet experience.

The first event was the release of the Gateway CX210X Tablet PC for only US $899.99 as reported by GottaBeMobile. While certainly no light weight this is an impressive entry level tablet at a very good price. Event 1: the entry level tablet price drops.

The next event that caught my eye - of course - was the announcement of Microsoft Surface.

Picture a surface that can recognize physical objects from a paintbrush to a cell phone and allows hands-on, direct control of content such as photos, music and maps. Today at the Wall Street Journal’s D: All Things Digital conference, Microsoft Corp. CEO Steve Ballmer will unveil Microsoft Surface™, the first in a new category of surface computing products from Microsoft that breaks down traditional barriers between people and technology. Surface turns an ordinary tabletop into a vibrant, dynamic surface that provides effortless interaction with all forms of digital content through natural gestures, touch and physical objects. Beginning at the end of this year, consumers will be able to interact with Surface in hotels, retail establishments, restaurants and public entertainment venues.

The intuitive user interface works without a traditional mouse or keyboard, allowing people to interact with content and information on their own or collaboratively with their friends and families, just like in the real world. Surface is a 30-inch display in a table-like form factor that small groups can use at the same time. From digital finger painting to a virtual concierge, Surface brings natural interaction to the digital world in a new and exciting way.

“With Surface, we are creating more intuitive ways for people to interact with technology,” Ballmer said. “We see this as a multibillion dollar category, and we envision a time when surface computing technologies will be pervasive, from tabletops and counters to the hallway mirror. Surface is the first step in realizing that vision.”

Undeniably cool. Also undeniably not a tablet. Make no mistake though, this is an important innovation and it is only a matter of time before multipoint touch technologies arrive in the mobile PC space.

The third event that struck me as really important was the release of the Google Gears beta. Kevin Tofel over at jkontherun provides the official Google description:

    • A local server, to cache and serve application resources (HTML, JavaScript, images, etc.) without needing to contact a server
    • A database, to store and access data from within the browser
    • A worker thread pool, to make web applications more responsive by performing expensive operations in the background

The exciting thing about Gears is that it offers another approach for developers to provide offline capability to their applications when they are running on occasionally connected mobile PCs. More tools will lead to more apps that are mobile friendly, and that will lead to more you can do when you are moving between pockets of connectivity.

In short these events portend a richer tablet and touch experience, more flexibility at a cheaper price. Bring it on!

Sunday, June 03, 2007 1:49:53 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Inking on the web is a whole lot easier now#

If any of you have tried to ink enable web applicaitons you will know that it has historically been far from easy.  Basically you had to build a custom control into your page, which meant that users had to have you in their trusted sites group to use the control (with default settings).  This might be OK on the intranet, but it made Internet Ink just too hard.

At Mix '07 Microsoft announced the Siverlight (nee WPFe) beta 1 and in the announcement they pointed out that Siverlight has ink support.  How cool is that?

Gavin Gear has put up a great series of posts on the subject that you really should check out if you want to build ink enable web apps.  These include:

Silverlight 1.0 Beta with Ink Support Announced at Mix07

New Channel 9 post on the basics of adding Ink to your Silverlight webpage

How To: Implement an Ink enabled Silverlight Photo Annotation Webpage

Want to see some demos of Ink in Silverlight? Check out this video from Mix07!

Silverlight Ink Session @ Mix07, See the video!

Silverlight ink enabled photo browser – download the example code!

Overview of Ink support in Silverlight, MSDN conceptual topic

Gavin also points to Julia Lerman who is doing some investigation of the ink support in Siverlight.

Want to get started?  You can download the Siverlight beta here.

(Sorry for the mass linking - I'm playing catch up.  I'm still getting setup in Sydney and living in temporary accommodation.  I have to take connectivity when I can get it.)

Sunday, May 20, 2007 2:56:20 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Wacom tablets big and small#

One of the cool things about Vista is that if you are running Home Premium, Business, Enterprise or Ultimate then the tablet features are there, all you need is a Digitizer to turn them on.

Wacom has an awesome stand at CeBIT Australia that has an excellent range of external tablets you can connect to you standard PC or laptop to pen enable them.  Developers - This is a great way to ink enable your development machine so you can start writing those ink enabled applications. *hint*

These range from small USB tablets...

...to a massive 23" digitizer monitor that would be awesome for the professional artists and media types.

Very cool - though I would not recommend reading with in bed with that tablet!

The other one I think would be very cool to play with is the Bluetooth digitizer. 

No wires and the stylus just stores in the back of the unit. 

Would be great with a Vista based Media Centre PC.

Tuesday, May 01, 2007 4:17:09 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Cool app to Explore Ink Analysis#

Tablet MVP Josh Einstein has released a new tool called Ink Analyzer Explorer that looks like it will be a great help to developers wanting to learn more about the Ink Analysis API.  In fact that is one of the things on my To-Do list so I guess I better grab a copy myself ;)

Tres cool, Josh.

Hat tip to Rob over at GBM.

Thursday, March 08, 2007 6:24:09 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

My five to ten minutes at the .Net UG#

I dropped in on the Wellington .Net User Group today to deliver what they call a lightning talk.  The whole meeting was a succession of speakers, each alotted 5-10 minutes to deliver their message.  That is not a lot of time for anything more than a quick intro to a topic.

My topic was "Why you should be developing for Tablet and Touch technologies" and I went bare-bones.  No slides.  No projector.  No demos. 

I just gave a bit of background on the evolution of tablet to date - Windows XP Tablet Edition, Tablet Edition 2005, making the Tablet OS available on touchscreen devices, UMPCs and now Vista.  Then I put it to the audience that if - and I am not sure that this is the case - the tablet has failed to deliver on its promise then fault lies with developers.  Brave thing to say if you are in a room full of developers perhaps, but I stand by the statement.  Why?  Because tablet is just a platform.  Platforms in and of themselves do not add much value.  Applications that leverage the features of the platform to enable users to work better add value.

Next I outlined three classes of applications.

  1. Tablet ignorant applications are unaware that they are running on a tablet at all.  They treat the stylus just like a mouse and you need to use the TIP to enter text.  A classic example would be Notepad, but in fact most applications fall into this category.
  2. Tablet aware applications offer additional functionality to the user when running on a tablet.  Examples of this include MindJet MindManaer and most of the Office suite.
  3. Tablet specific applications are designed to run on a tablet and don't work well (if at all) on a non-tablet.  Some examples of this include Windows Journal and the apps in the tablet experience pack.

I closed with a call to action.  In short I said:

Work with a tablet if you can.  This is the best way to understand their strengths and the painpoints of tablet ignorant apps.  Next start making your existing applications tablet aware.  Lastly if you find a use case that lends itself to ink input then consider writing a tablet specific app.

Wednesday, February 07, 2007 6:17:14 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Developing Tablet Apps on a Non-Tablet#

One of the major limitations of the Acer that Microsoft and AMD sent me is that it is not a tablet.  I previously blogged about using an external Wacom graphics tablet to enable the pen and ink features in Vista.  However, truth be told, using an external graphics tablet, while better than nothing certainly does not make the Ferrari a Tablet PC.  It is simply not as easy and natural to write off to one side and have the ink appear on the screen in front of you.

So while you can add tablet functionality to an ink challenged mobile PC it does not a tablet make...

...But there is hope yet for the Ferrari to redeem itself.  If it can't be a tablet, then the next best thing is for it to do is to empower real tablets by being used to develop tablet applications.  Here's how to go about setting up a Vista machine to develop tablet applications.

Step 1.  Ink enable your Vista development machine by adding a Wacom graphics tablet as I described here.  You can develop tablet apps without any pen functionality, but it is really hard to get a feel for how your application feels when you are emulating ink with a mouse.

Step 2. Install your development environment.  I am using Visual Studio 2005 Professional, but you could equally use one of the express editions.

Step 3. If you are installing Visual Studio 2005 or one of the Express Editions then install the appropriate version of Service Pack 1.

Step 4. Install the Windows Vista SDK.  According to Gavin Gear...

This option does not install the InkAnalysis binaries, but exposes the Winforms, COM, and WPF InkAnalysis binaries – this allows you to use InkAnalysis with the Windows Presentation Framework!

 Step 5. Install the Ink Analysis binaries.  Gavin's step 4 gives you two options to achieve this, I went for B because I like command lines.  Make sure you run the following as administrator.  Also note that I've replaced the dashes (-i) in Gavin's example below with foreward slashes (/i).

Option b: Manually install the InkAnalysis binaries:

Open a Windows SDK cmd shell from Start->Programs->Microsoft Windows SDK->CMD Shell

Run the following commands:

cd %ProgramFiles%\Reference Assemblies\Microsoft\Tablet PC\v1.7

gacutil /i iacore.dll

gacutil /i microsoft.ink.analysis.dll

cd %ProgramFiles%\Microsoft SDKs\Windows\v6.0\Bin

gacutil /i ialoader.dll

regsvr32 iacom.dll

And you're good to go!  Gavin also provides a couple of good articles for getting started with Ink Analysis in WPF.  Check out:

Tablet PC: Getting started with InkAnalysis in WPF

Shape recognition with the Tablet PC Platform InkAnalysis API

Tuesday, February 06, 2007 5:59:27 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

More SideShow Gadgets from CES#

 Just after posting my last bit on SideShow I see that fellow Tablet MVP Frank La Vigne has posted about Yahoo! Tech has a write up on Windows Vista SideShow gadgets

These include some nifty little gadgets like gaming keyboards and very smart smartphones. 

There is also talk of remote controls and there is this cool, stick-it-in-your-wallet sized device...

Can you say tip of the ice berg? 

Source: Windows SideShow Steals the Show
Originally published on Fri, 12 Jan 2007 12:49:00 GMT by Frank

Sunday, January 14, 2007 5:58:09 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

The Windows Vista Developer Story: Mobility and Tablet PC Roadmap#

Tablet MVP Frank LaVigne of Franks World points to this cool article - Windows Vista Mobility and Tablet PC Roadmap.

“The Windows Vista Mobility and Tablet PC Roadmap covers a variety of topics, including ink analysis, WPF support for Ink and stylus input, and much, much more.

A good read for any Tablet PC developer or anyone curious about the future of mobile computing.”

 

Friday, December 22, 2006 5:02:29 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Make your own on-screen keyboard.#

Want to change the way the on-screen keyboard works on your tablet or UMPC?

Kevin Tofel points to replacement with both source code and the executable available for download:

Maybe that open-source community isn't the only group that likes to share. Take Origami Project forum member Ticonderoga, for example. After purchasing a Samsung Q1 touchscreen UMPC, Ticonderoga decided to build a custom on-screen keyboard and made both the executable and source code available for free!

Great stuff.

Thursday, December 07, 2006 7:05:34 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Cool looking tablet game#

Loren Heiny links to a cool looking pen and speech enabled game called Euclidean Crisisthat has been developed using the Tablet PC SDK and the speech API. Very cool!

There is also a video of the game being played on smartboards, but alas the link did not work for me…

Thursday, December 07, 2006 6:53:07 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Some upcoming webcast that may be of interest#

MSDN Webcast: Windows Vista Sync Center for Windows Mobile Developers – Mon, 11/27, 1:00 P.M. PT
If your application handles data that needs to be synchronized between devices, the new Windows Vista Sync Center allows your application to implement a “Sync Center Handler” to perform such synchronization. Dr. Neil Roodyn will guide you through the process of implementing this type of handler.

 

MSDN Webcast: Creating Gadgets for Windows SideShow in Windows Vista – Tues, 11/28, 10:00 PT
If you have not seen SideShow, you really need to check it out! Windows SideShow is a new Windows Vista feature that works with new laptop hardware (such as integrated small external LCD displays like what you’d find on a cell phone) that allows you to access data while your laptop/tablet is closed and even when it’s turned off! This is a great capability when you’re on the go, and when battery life is a key consideration. One of the most exciting SideShow features is the extensibility model built into the SideShow framework. As a developer, you can create “SideShow gadgets” that plug into the system and expose your SideShow functionality. Check out this webcast to learn how to develop these Windows SideShow gadgets.

Hat tip to Gavin Gear

Friday, December 01, 2006 12:00:11 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Using InkCanvas#

The code Project has a good article about Saving-Rebuilding InkCanvas Strokes in WPF.

One of the coolest controls in WPF is <InkCanvas…/>. It's definition from Windows SDK documentation: “Defines an area that receives and displays ink strokes”. When I saw what this control can do, I thought that it would be nice if we can use this control for saving signatures and save these signatures into a database. This <InkCanvas…/> control has a “brother” in WPF. It's brother is <InkPresenter…/>. The definition for this control is: “Renders ink on a surface”.

 

Thursday, November 30, 2006 8:02:23 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

SideShow Gadgets explained#

Nick Randolph links to a great post by Daniel Moth that drills down into SideShow gadgets.

What's a SideShow, well it is the small display on the outside (typically) of a laptop that could show things like the time or information about the song that is currently playing.  It is very similar to the reduced display that some mobile phones have on the outside.  Well the great news is that it is going to be possible to build gadgets for the SideShow. 

Check out Daniel Moth's blog to find out more.

Tuesday, November 21, 2006 6:19:44 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

MSDN Webcast: Overview of Ultra-Mobile PC (UMPC) Development for Windows Vista#

Dr. Neil points out an upcoming webcast on UMPC Webcast:

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032314749&EventCategory=4&culture=en-US&CountryCode=US

Here is the offical blurb:

An ultra-mobile PC (UMPC) is a fully functional computer that is small, mobile, and runs a complete version of a Windows operating system (currently Windows XP Tablet PC Edition 2005 and soon Windows Vista). UMPCs present many new and exciting opportunities for application development. Although your existing knowledge and skills transfer directly to the UMPC, there are some unique circumstances to consider when you are developing applications for these devices. Join us to find out what is involved in developing for the UMPC, and learn how to create outstanding applications for these new devices.

Presenter: Todd Landstad, Product Specialist, Microsoft Corporatio

Source: http://drneil.blogspot.com/2006/11/msdn-webcast-overview-of-ultra-mobile.html

Thursday, November 16, 2006 7:54:04 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Article about Inking the Web#
Just spotted this article over on The Code Project that walks you through the process of creating and using a Web Ink/Drawing Control.
"This article discusses how to create and use a web browser (IE only) compatible ink or drawing control using the Microsoft Tablet PC SDK version 1.7. A sample pre-built control is provided for use and demonstration. Also, please read the disclaimer at the end in case you have any issues with this article."
Very much worth checking it out.
Sunday, November 12, 2006 7:37:39 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

More on the Speech tutorial in Vista#

In response to my post last night about the Speech Recognition Tutorial in Windows Vista not running at 800x600 Rob Chambers has posted about some of the thinking behind the decision:

“I understand the feedback ... and it was a painful decision to have to make ... but we had to go up to 1024x768 minimum resolution for a bunch of the screens in the Tutorial that Craig didn't show you. We tried doing that in 800x600, but it just didn't work; especially in the "Dictation" and "Working with Windows" sections of the Tutorial.

You see, in the tutorial, we try to make the system look as much like an actual running Windows Vista PC as possible, and also give the user instructions off to the right. We ask them to interactively try things (in a directed manner) so when they're done with the tutorial, they'll have a great idea of how to use WSR in the real world.

We may revisit this decision in the future (for Vista + 1), but for now, you'll have to run the Tutorial on a system that supports 1024x768. However, users can still use the old style Training window on lower resolution screens.”

Firstly I would like to thank Rob for responding at all.  It is good that you are listening at all and that you take the time to respond.  That said I could not disagree more.

Rob claims that a couple of the screens didn’t work at resolutions below 1024x768.  As a user of a small screen tablet I would much rather have to put up with something not quite working visually than have it not work at all.

Typically users who have chosen a device with a small screen and a lower screen resolution have made a conscious decision to give a little bit away visually to get some other benefit small physical size, light weight or both.  We choose to do that.  We live with the applications and websites that don’t layout properly and we scroll left and right as well as up and down to use them.  If it is too unusable then we can choose to go away and dock to do what must be done.  Developers – when you error out below a particular resolution (or don’t take into account that the screen can be oriented in portrait mode) you take that decision away from the mobile user and that is bad!

Rob – that exact same if statement that is used to throw up the error that tells me that my screen resolution is too low could instead be used to change the layout of the form, turn some stuff off or simply enable scroll bars.  Sure it may not look quite as pretty but at least it would work and put the decision with me as to whether or not to go and dock instead.

Developers of the world – use your if statements for good, not evil.

As a final point – don’t forget that it is not just mobile PCs that run at 800x600 either.  My in-laws run their desktop PC at 800x600.  It drives me nuts, but that is how they like it and it is not for me, or any developer, to tell them they are wrong.

Wednesday, October 18, 2006 12:38:55 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [1]  | 

 

My new ink application - for Vista only#

One of my favourite new features in Vista is the “search” field in the start menu. This is great. You just hit the Windows key and type something and the computer will hunt high and low for that term. It will bring back documents, applications and even emails. Great feature and so easy to use...

Except when you are on the couch with your trusty slate. Then it is a bit too fiddly. You have to click start, then click the search field to make the TIP turn appear, then click that, then write something and click Insert – too hard!

Enter SearchPad. (I had this idea yesterday and had it kind of working last night. Tidied it up a bit tonight.)

Here’s how it works.

I have a shortcut to it in my Start-up folder so it will load at boot time. That puts a search icon in the system tray.

 

Double-click that and you get an ink enabled dialog above the system tray...

 

When you click “Start Search” it will bring up the Start Menu and enter the ink recognition result into the Search field. Vista does the rest.

You can also right-click the icon and select exit if you want to get rid of it, but why would you want to do that?

I’m going to release this version as a beta to a few people and then fix bugs – after which I'll make it available to all for free!

Friday, October 13, 2006 8:57:11 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [3]  | 

 

Update to Tablet SDK #
Matt over at GBM links to an Update to Tablet PC SDK 1.7
"Looks like the original SDK shipped with a version of Microsoft.Ink.dll that did not work with the 2.0 CLR. This has been updated and a full SDK install was created to patch existing installations and an updated redistributable package. "
Download Link

Friday, September 08, 2006 6:27:30 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

New Tablet Development BIog #
If you caught my Getting Started With Tablet Development session @ TechEd NZ then you may be interested in this new blog.
Gavin Gears Tech Blog a Microsoft software engineer working with the InkAnalysis API
Sunday, August 27, 2006 7:44:15 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Done and Dusted #
Well TechEd NZ is still running but my sessions is all done. My Getting Started with Tablet Development session went over pretty well. I had a couple of little issues but nothing serious. I had a great time and have already had some good feedback. Now I have a bunch of feeds to read and lots to catch up on on my BIog.
Wednesday, August 23, 2006 8:59:52 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Windows Live Writer#

A couple of days ago Microsoft announced the release of a Beta blogging tool called Windows Live Writer.  Today GBM reports that "Ed Holloway has stepped up to the plate and created an Ink Blog plug-in for Windows Live Writer. "

Well done Ed - damn that was quick!

Wednesday, August 16, 2006 7:09:25 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Practicing what I am Preaching#
I have not abandoned BlogPad - though I do think I need a complete code review. I have been doing a lot of learning about tablet and smart client development recently in preparation for the session I am giving at TechEd NZ. In line with this I have decided to add Network Location Awareness to BlogPad and combine this with defensive programming techniques. In short - I'm going to track network state and only try to talk to the server if I'm connected. Simple enough to do.
The other change I am making is something I need to do to make BlogPad easier to use on a small screen tablet - I'm adding the ability for the user to configure the pen size.
I have found that the easiest way to do this is to create a DrawingAttributes object, configure the settings and assign the drawing attributes object to the DrawingAttributes property of each InkEdit on the main form.
Right now I have it hard coded to fine to suit the LS800 until I create the GUI to allow the user to configure it. It looks like this:

' Create DrawigAttributes object
Dim myPenSettings As New DrawingAttributes
myPenSettings.PenTip = PenTip.Ball
myPenSettings.Width = 3
myPenSettings.Height = 3

Me.iEditTitle.DrawingAttributes = myPenSettings

Me.iEditBody.DrawingAttributes = myPenSettings
Wednesday, August 02, 2006 7:02:07 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Christian Falch: looking for Ink Everywhere#
Looking for Ink everywhere?
Christian Falch is doing more than just looking for it, he is doing something about it.
"I've been working on a little utility for giving me ink everywhere, and wanted to post some pictures about my progress so far. The idea is that the utility would replace the TIP completely, letting you write directly on text fields all over Windows."
Sounds great. This is something I'll be keeping an eye on.
Saturday, July 15, 2006 6:29:14 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Ink in Sidebar Gadgets, the problem #
Rob Bushway has been looking hard at Vista lately and has asked some really good questions about the inclusion _or lack of _ink support in the new OS. Rob sees this as a huge missed opportunity and I suspect there are few long term tablet users that would disagree
In his latest post Rob points out Another Vista Ink integration issue - Windows Sidebar Gadgets
While I don't excuse it I can shed some light on why the gadgets in the current implementation of the sidebar lack real ink support. It comes down to what gadgets really are... HTML and JavaScript. This means that the ink in gadgets problem is really that age old (in tablet terms anyway) problem of ink or the web. Except that it is actually worse, you car only use client side scripting and controls...
I know this because I had exactly the same thoughts as Rob and looked into it a while back. I've put it in He "too had" basket for now, but if anyone warts to take a crack at this they can find a guide to writing gadgets here:
Windows Vista Beta 2 - Sidebar Gadget Development Overview

Friday, July 07, 2006 6:28:29 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [2]  | 

 

UMPC and Tablet PC Developer Contest#
Check it out - Handango is having a contest for UMPC and Tablet Developers. Anything that encourages development of pen and touch aware apps is a good thing. Want to get a feel for UMPC development? Check it out at www.handango.com

Handango is looking for fresh and premier Tablet PC and Ultra-Mobile PC content.are you up for the challenge? By converting your existing mobile applications or creating an entirely new title for Tablet PC and UMPC, you'll be eligible to win one of three Ultra-Mobile PCs! Personal Productivity, Travel, Fitness, Medical, Multimedia, and Entertainment titles are all great fits for our catalog. The contest runs from now until August 31st..start coding!The Ultra-Mobile PC is portable and powerful companion that let's users connect, communicate, accomplish your tasks, and stay entertained wherever life takes you. Featuring full Windows XP functionality and the ability to touch, write or type, you'll be able to develop for Tablet PCs and UMPCs simultaneously.
Saturday, June 24, 2006 6:59:05 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Lunch with a Microsoft Author#

I had lunch on Tuesday with Pete Wright.  It was the first time we met face to face, though we have exchanged emails and blog comments in the past.

Pete was a really nice guy and we had a good chat.  He did have me on a bit though.  A while back I posted an open letter to Authors and Publishers calling for them to ensure that they make their books available in digital format, too.  Pete listened and his previos book and his current book are now available as ebooks.  The reason Pete had a go about me is that he posted about this and I did not pick up on it.

I admit it - I missed it.  But I'm rectifying that now and I've subscribed to Pete's blog to ensure it does not happen again.  It was really gratifying to learn that my post had directly motivated someone to release an their book in digital format.  Thanks for listening Pete!

I've been meaning to learn a bit of C# (so far Ionly know VB.net) so I'll have to put my money where my mouth is as well and put Beginning Visual C# Express on my shopping list.

Pete was telling me about some cool things in the pipeline so you might want to add him to your feeds, too.

 

Friday, June 16, 2006 11:57:31 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [1]  | 

 

Code translations...#

I posted last night that I had made some significant progress on Blogpad.  Specifically I made huge inroads into a problem that I have been struggling with for a while - converting RTF markup into HTML.

Last night I decided to look again for an example where someone had done something similar.  And this time I found something! 

I stumbled across this article by sgoliver on The Code Project that uses C# to parse RTF anc can convert it to HTML.  The first problem is that I don't know C# - all the programing I've done to date has been in varients of VB.  When I downloaded the example project I encounted the second problem.  All the variable names and comments are in Spanish!

I built the demo application and gave it a try and it worked.  So what I had was code that worked - but that I really didn't understand.

Not to let a little thing like that stop me I set about trying to turn it into something I did understand without breaking it. 

My first step was to try to turn C# into VB.Net.  As with many things in life Google had the answer.  A quick search for "C# VB.net Converter" yelided several results.  I tried a few and got the best result with this C# to VB.Net converter on Developer Fussion.

Now I'm working through the code and fixing up a few things the converter did not get quite right.  Next I'll go through and use Babel Fish to translate the Spanish variable names into English so I can better understand how it works.

Monday, February 20, 2006 7:07:22 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [2]  | 

 

BlogPad back in business...#

For the last couple of weeks I have not had much time for blogging and none at all for working on BlogPad.  Tonight I decided to spend some time coding BlogPad and made huge strides.  I've got a partially functional RTF to HTML converter - which is a big win.

Amazing how putting something aside for a couple of weeks can give you a whole new perspective.  :)

Sunday, February 19, 2006 7:38:56 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Mobilize your apps!#

Rob Bushway reports from the Mobile and Tablet PC partner brief in Redmond:

Frank is giving a good talk on mobilizing applications for mobility and tablet.

Bottomline: ISV’s need to be optimizing their applications for the tablet experience, especially as tablets go mainstream and become a feature of all notebooks. Mobile PCs are becoming the primary pc purchase, outselling desktops. ISVs also need to be designing their apps for smaller screen devices: 8 – 10”

Tune your applications for mobility: power management, screen sizes, touch

Review the Mobile APIs within the new Windows SDK

Take advantage of rich Windows Vista frameworks in your applications

Take advantage of the marketing opportunities: handango, DevX, Windows MarketPlace

Let the Mobility team know what you are doing:

tabisv@Microsoft.com

This actually ties in well with one of the recurring themes on this blog.  Applications are the key to the success of the Tablet PC.  Update your existing applications to make them more tablet friendly.  Write new apps primarily or exclusively for the tablet.  Without great applications a tablet is just a notebook with a party trick!

Friday, February 03, 2006 8:10:29 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Turning off the Pen Input Panel Icon for a InkEdit Control#

When you place an InkEdit control on a windows form you can enter ink into it directly - which is cool.  However, by default, when the control has focus the stylus hovering over it will cause the PIP icon to be displayed.  This gets in the way while writing, which is not so cool.

To disable the PIP for a InkEdit control (works for some other controls, too) you need to do the following.

<-- VB.Net code snippit starts -->

Dim myPip As New PenInputPanel
myPip.AttachedEditControl = myInkEdit
myPip.AutoShow =
False

<-- VB.Net code snippit ends -->

The above code creates an instance of the Pen Input Panal and associates it with the InkEdit control.  Once you have done that all you need to do is set the PIP's AutoShow property to false and the PIP will not display - cool eh?

Thursday, January 05, 2006 7:20:52 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Anyone willing to help with BlogPad development?#

There is one BlogPad feature that I am really struggling with - though I suspect that a REAL developer might have some ideas how to tackle it. I want to parse the rtf produced by a InkEdit control (which inherets the RichEdit control) and produce well formed xhtml. I want to do this so I can preseve formating, links and images that are pasted into the InkEdit control.

I did find a comercial control that is suppose to do this but a) it was expensive and b) the xhtml the trial version produced was rarely well formed.

Is there anyone out there willing to have a crack at writing something to parse the rtf from a RichTextBox and output well formed xhtml? You will of course get kudos in the credits. If you are interested reply via comments or using the Contact button in the right menu bar.

Monday, January 02, 2006 6:56:00 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [1]  | 

 

Where is the Alpha going?#
You might ask - since I am building the Alpha - where is the Alpha going? I have three brave souls that will be testing it out for me. Thanks guys - I look forward to your feedback.
Tuesday, December 27, 2005 6:14:00 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

About to build the Alpha Build of BlogPad#
This is just a quick test before I build the Alpha of BlogPad. If this works then I'll package it up and post again about what is (and isn't) in the alpha.
Tuesday, December 27, 2005 6:04:39 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Seven Habits of Highly Effective Programmers#

Greg Hughs links to a great article by Philip Chu outlining Seven Habits for Highly Effective Programmers.  An excellent read for anyone who has tried to cut code.  It is reasuring to know that I have managed to do employ some of these in the development of BlogPad to date.

Monday, December 26, 2005 6:49:10 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Another BlogPad Test - with Categories#
I think I've got the categories working - the XML looks OK, but the proof is in the posting! I need to put in some error handling for things that I know break BlogPad, such as no network connection, and then I'll be looking for alpha testers. The alpha will only support the MetaWeblog API so if your blog supports that and you are interested in testing leave a comment or use the "Contact" button in the sidebar of my blog.
Sunday, December 18, 2005 1:26:43 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [4]  | 

 

Test post from BlogPad#

Just a quick test post from BlogPad to make sure my implementation of the MetaWeblog API New Post method. If this works then I just need to hook in the categories and add in some error handling for an Alpha.

Update:  That worked - just had to come and assign the categories after the fact. 

Sunday, December 18, 2005 12:12:59 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [1]  | 

 

More Tablet Devleopment Focused Resources#

Don't you love it when you make a statement like "I would love to see more Tablet focused development resources out there…" and the next day you discover a whole pile more?

Here are some more Tablet Development resources I have found:

(I wish my bank account was crammed full of money)

Thursday, December 15, 2005 12:07:06 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Add Tablet PC Cred to Your Windows Forms Application#

A recurring topic of late has been the sentiment that applications are the key to unlocking the full potential of the slate.  “Apps make it” I wrote in response to Lora Heiny’s question.  This caused quite a bit of talk about what the killer app for the Tablet PC is and Colin Walker, James Kendrick, Warner Crocker, Rob Bushway and others added their thoughts.  Recently TDavid asked in a comment on my post about demonstrating multiple tablets to a customer (you can find both the comment and the post here):

How can we -- those of us who like the tablet form factor --change this? Come up with more reasons that only can be used, or primarily be used with ink.

One of the thoughts that this sparked in me is that most of the apps that are really great on a tablet are business focused.  Surely one of the things that the community as a whole can do to encourage uptake is to encourage software manufacturers to make the applications consumers already use more tablet friendly.  To this end I have compiled some of my thoughts on how developers can make their existing applications more tablet friendly today.  I’ll also include some links to resources I’ve uncovered while trying to write my first Tablet PC app – BlogPad.

Adding Ink to Your Windows Forms Application

In order to truly understand the how you can improve your application interface for the Tablet PC I really suggest you using a Tablet PC as your main machine for a while.  If you can’t do that then here are some of my thoughts:

·         Textbox vs Ink Edit – If your application uses textboxes for text input then a tablet user can enter text into these using the tablet input panel.  You don’t have to do anything.  That said as a tablet user I much prefer applications that I can just write in the boxes directly.  To achieve this you can use the InkEdit control instead.  The InkEdit is a superset of the RichEdit control that allows for ink entry and performs the conversion automatically.  You can manipulate the properties of the InkEdit to only allow plain text if you are trying to replace a textbox.

·         RichEdit vs. InkEdit – If your application uses RichEdit controls consider replacing these with InkEdits.  Your Tablet PC users will love you for it.

·         Think about how you handle situations where you want to allow users to select multiple items.  On a slate tablet multiple section can be a real pain.  You sometimes need to bring up the on-screen keyboard and hit the Ctrl key to do this.  Consider using the CheckedListBox control instead.  Another option is a panel with checkboxes on it which may be easier if you have a fixed number of options that you are not changing at runtime.   I would avoid ListBoxes if you are wanting to allow multiple selections.

·         Limit textual input to the bare minimum.  Use dropdowns, radio buttons and checkboxes where the input is predictable.  This is good practice anyway but makes a real difference on the tablet.

·         Add value with other ink controls – you can add exciting new features to your application with some of the other ink controls.  The InkOverlay allows you to create inkable windows.  The InkPicture control provide a means of entering hand drawn pictures as ink.   These can then be converted into various image types.

Use Gestures

Keyboard shortcuts are hard to do.  Consider using gestures to perform actions in your application.  Gestures allow you to capture the motion of the stylus and trigger the assigned action.

Make your layout pen friendly

Sliding controls are easy to use with a stylus.  Also if you are using InkEdits then make sure you make them big enough to write in comfortably.

Don’t forget the built in things

Two powerful built in features are the Tablet Input Panel (TIP) and the Microphone.  You can leverage the TIP to help with conversion and correction.  Also built into the tablet is the speech engine.  This can be used to either enter text or control applications.

Further Resources

These are just my thoughts and I’m not even a real developer.  Some useful resource I found while trying to learn enough to write BlogPad include:

·         MSDN Mobile PC and Tablet PC Developer Center – full of articles, samples and recorded webcasts that will help get you started.  You can also get the current SDK there.

·         Add Support for Digital Ink to Your Windows Applications: a particularly good article from MSDN Magazine that covers lots of things you should consider.

That said I would love to see more Tablet focused development resources out there…

Your Thoughts?

I’d be keen to hear your thoughts on how existing applications can be made more tablet friendly.  Also people who have done more tablet development might be able to add a few more tricks and traps.  Which applications do you want to see made more ink aware (don’t just tell me – tell the vendors too!)?  Which applications do you think do it well now (i.e. who should people emulate).

Wednesday, December 14, 2005 6:35:51 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

A (minor) Breakthrough#

Hey - I had a breakthrough.  For the last day or so I've been struggling with why I could not populate the categories listbox programatically.  Not unusually it turned out I had done something stupid.  I had used the CheckedListBox.BeginUpdate method then added the categories.  I tried adding the categories (in a number of ways actually) and they would not show up.  Finally figured out I had omitted the corrosponding CheckedListBox.EndUpdate so the update was never committed.  Doh!

Now I can get the categories via the MetaWeblog API and populate the list as shown below.  Notice I am using the CheckedListBox control rather than the standard listbox as it provides a much easier and more obvious mulitple select interface for the pen.

Now I just need to rewrite the NewPost method to post via the MetaWeblog API and I'll be able to do text posts with categories from BlogPad.

Tuesday, December 13, 2005 7:17:11 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

BlogPad back on the front burner#

After a couple weeks off I am going to be restarting BlogPad development.  I have come to a decision that is going to set me back a bit so don't hold your breath for a RC before the new year.

I was using a free library I found to handle the MetaWeblog API.  Unfortunatly this is a bit limited as several API features have not been implemented - such as assigning post categories.  As such I have taken the decision to drop this library and write my own from scratch.  This will allow me more control and give me the ability to reuse functions for several APIs.  That will make it easier to add support for additional APIs into BlogPad going forward.  It will take me longer now, but a better result in the end.

I also need to figure out the best way to convert the RTF in the ink edit to HTML for the post.  If anyone has done this before I would love a couple of pointers.

Thursday, December 08, 2005 9:12:20 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

BlogPad on hold for a week or two#

I'm holding off on further development of BlogPad.  I am getting a copy of Visual Studio 2005 to work on it with.  Since I know that is coming I have held off installing the RTM version of the Visual Basic Express Edition.  I've taken the opportunity to have a bit of a code tidy up, but I'm holding off writing new until I get VS 2005.

It's not dead - it's just resting. 

I have lots to do as I was going to use a library someone else had already written for some of the blog API communications, but it is just too limited.  I'd have to write extensions to handle some of the missing functionality of it so I might as well just write my own so I have control of all of the source.

And BTW jk - yes I will support TypePad.

Tuesday, November 22, 2005 7:41:09 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Time to get cranking on BlogPad#

I need to do some work on BlogPad.  As Warner Crocker put it:

You better get cranking now that you are all over OnTheRun With Tablet PCs and Scoble.”

Yep – need to get on with is and I still have a fair bit to do!  My wife is away for work tonight and tomorrow night.  That means no requirement to maintain wife balance.  No voice of reason telling me I really should go to bed and get some sleep.  Once my little girl is down for the night it is just me, my tablet and a to-do list.  Bring it on.

Sunday, November 13, 2005 5:10:39 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Will BlogPad Post as Ink?#

A couple of people have asked if BlogPad will support posting ink as an image rather than turning it into text.  Rob's comment on my previous post is a good example.

"By allowing a post in ink, you could keep the ink part and generate it as a graphic, then also store the recognized text as alt text and text that goes along with the post for google search purposes. A user would just need an ftp account in order to reference the graphic."

It is something I will experiment with and I may include it as an option you can select.  But I don't want to rely on FTP - most blog APIs seem to support including an inline image so that would seem to me to be the way to do it.  Also there is an application that does this now - check out Julie Lerman's BLink.

Rob goes on to say:

"The way it is set-up right now, I wouldn't see any benefit over just using the TIP with just a blogging tool like BlogJet."

Firstly I am not attempting to replace full featured blogging clients - I want something simple to allow me to create short posts quickly with a pen.  If I want to create a lengthy post with lots of formatting or to compose a post offline I'll use something else.

The benefit of this approach over the TIP (not well demonstrated in the screencast I will admit) is that you get a bigger writting area.  You can full-screen blog pad and write anywhere in the body window.  I often find the floating TIP is too small and the docked TIP is not always comfortable to write in at the top or bottom of the screen.

Lastly - I've created a BlogPad category for those who are interested.

Saturday, November 12, 2005 4:53:22 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [1]  | 

 

BlogPad mentioned in OnTheRun with Tablet PCs and by Scoble#

Wow – I’m a very happy little blogger today!  The BlogPad tool I’m working on got a mention in the latest onTheRun with Tablet PCs podcast.  This is a great show (not just because they mentioned me) as Marc Orchant and James Kendrick are interviewing Robert Scoble.  For me the coolest thing about being in this show is the calibre of people who were also discussed (and the calibre of the people doing the discussing!)

I would like to clarify a couple of the points that were discussed in the podcast.

Firstly BlogPad is not going to actually put the post on the server as ink.  This is for two reasons. 

The first is that though it is technically possible it requires a control on the server to render the ink and you would probably give a lot away in terms of cross browser support.  You would also be severely limiting the number of servers you could post to as the target server would have to have that control installed. 

The second reason is that when I sat down and gave this some thought I realised that the purpose of a blog post is to try and communicate my thoughts.  Being in ink gets cool points but it does not actually add anything to that goal and may even detract from it (if you’ve seen the screencast with my handwriting on it you will know what I mean).  Thus what I really wanted in an ink blogging tool was the ability to easily pen a post and post it in the format that has the best chance of being interpreted as I intended – text, maybe with some ink embellishments (as images) where they add value.

One of the questions asked during the podcast was will the ink be searchable.  It will be – because it will have been recognised and posted as text.  Searchability was something I would absolutely not give away – even though Google sent my boss to a lingerie retail site when he was looking for my blog. J

Another question asked in the podcast was will I be supporting the major blogging engines – absolutely!  I’m starting off getting it working with the MetaWeblog API for the first release.  I plan to add Blogger and MovableType after that.

Just to set expectations – there is still a fair bit to do so it may be a little while before I have a release.  Some outstanding features include:

  • Category support.
  • Improve the correction interface – I want the alternates in the context menu so I don’t need to rely on the TIP.
  • RTF to HTML conversion – this is a biggie.  Right now it only supports text and drops formatting.  I want to have support for formatting and images so you can copy and past text in and paste in snipping tool snips.  Some work to do there.
  • Ability to include an ink drawing. Have not even looked at how I will do this yet…
Friday, November 11, 2005 7:10:38 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [1]  | 

 

A visual Tour of BlogPad#

I wanted to try out creating a screencast using Windows Media Encoder.  What better way than to provide a quick visual tour of my little pet project - BlogPad.

You can download the video below.  It is short, only about 2 min 30 sec, but you will see the interface in all it's glory and see how text is inserted as ink, recognised and corrected (if need be).

Bp Tour.wmv (522.95 KB)

Update: Fixed the broken link.  Thanks to those who reported it.  Sorry for taking so long to correct it - bit busy with the day job :)

Thursday, November 10, 2005 11:32:22 AM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [6]  | 

 

Visual Studio Express Editions RTM - And FREE#

The Visual Studio Express Editions have been released to manufacturing. Better yet they will be a free download until November 2006.

Darryl Burling has more info here.

Tuesday, November 08, 2005 7:28:11 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Test Post from BlogPad#

If you are reading this then we have definate progress. This is a PoC post from BlogPad.

Update: Holy crap - it worked!

Monday, November 07, 2005 6:42:30 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [2]  | 

 

A non-developer's look at VB Express#

As those who grace my blog regularly will know I’m not a developer but I have recently been tinkering.  I’m working a simple ink-enabled blog client I’m calling BlogPad.  I’ve blogged about the concept and my progress thus far.  Tonight I thought I’d blog about some of my experiences.  This is largely due to my lack of further progress.  Curses to my day job and my annoying requirement to sleep.

My Pedigree as a Developer

Just to be clear I make no claims to being a developer.  I work in the IT industry as an infrastructure consultant with a mobility bent.  I’ve done a fair bit of VBscript work and the like and I have in the past tinkered with VB6 an VBA, though nothing major.  As such I would describe my developer pedigree as being the illegitimate love child of a code monkey and a scripter.

The Express Editions

What are they you ask?  The same question appears in the FAQ on the Express Editions Home page on the Microsoft website.  Here’s what they have to say:

The Express products are an expansion of the Visual Studio product line to include lightweight, easy to use, and easy to learn tools for hobbyists, students, and novice developers who want to build dynamic Windows applications, Web sites, and Web services. The Express products consist of:

·                                Visual Web Developer 2005 Express Edition, a lightweight tool for building dynamic Web sites and Web services

·                                Visual Basic 2005 Express Edition, Visual C# 2005 Express Edition, Visual C++ 2005 Express Edition, and Visual J# 2005 Express Edition, targeted programming tools for students and hobbyists who wish to learn the fundamentals of Windows programming

·                                SQL Server Express Edition, an entry-level database tool based on SQL Server 2005

They are currently in Beta (I’m using Beta 2 of VB Express) and available as free downloads.  When they are finally released they are going to available for a nominal fee (~US$50) per express product.

My Initial Experiences with VB Express

The VB Express is very, very cool because it is so easy to get up and running – even a novice like me.  When you launch the application you are greeted by the start page shown below in the centre pane.  This includes your recent projects, some advice to get you going and – best of all – the latest from the relevant MSDN newsfeed.  There is often some very interesting and educational stuff in that column.

The Workspace

The development environment is quite easy to find your way around.  The main window is quite customisable but mine looks like this most of the time (I sometimes close panes to make a bit more room in the middle).

The visible panes are:

1.       The toolbox – drag and drop controls from here to the form you are working on.

2.       The edit window, which is tabbed.  I remember when I tinkered with VB6 and the like it was always a real pane switching between design view and code view.  This makes it really easy, I love it.

3.       The solution explorer – you can double click on an item to open it in the edit window.

4.       The properties of the currently selected object.

5.       The error list.  My best friend.  Checks your code as you right it and lists the errors (there are usually some there).  Double click on an error and jump to that bit of code to correct it.  You soon get into the habit of making sure there are none here before you hit the build button.

It is also easy to add new components to your project.  I added an “About” dialog box in all of two seconds.  Just select Project > Add Windows Form… and select the About Box as shown below:

That gives you a nice pretty About box like this one!

Writing Code

OK – you do still have to do some of this – it’s not all drag and drop.  That said the coding environment makes it very easy.

Two things I have found that make this a bit easier:

  1. The real time code validation is not limited to the error list window – there is word like “grammar checking” in the code editing window as well.  In the image below the variable has a green squiggly line under it because it has been declared but not used.  A similar thing happens if you use one without declaring it.
  2. You can right-click on an object in the code – e.g. Microsoft.Ink.InkEdit – and select Go to definition.  This opens the object browser and focuses on that object so you can poke around it’s methods and properties.  Very handy.
Tuesday, November 01, 2005 7:15:02 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

Some progress on BlogPad#

I’ve made a little progress on my BlogPad project over the weekend.  I think the UI looks much as it will in the end and I’m working on some of the functionality now.

Here’s an updated screenshot:

The mode buttons up the top allow you to select pen mode or mouse mode (to make for easier selection and drag and drop editing).  The Categories list will be populated via a API call to the blog server.  I added a couple other buttons to clear the whole form or just the title.  The post to server button will eventually do just that.  Right now it creates a message box with a bunch of XML in it J.

I spent ages trying to figure out how to get access to the alternates that (in theory) the recognition should create when it fires.  I want to be able to right click a misrecognised word in the editing area after it is recognised and be able to select an alternate word.  Not sure I can do this AND keep using the automatic ink to text conversion with the ink edit.  If anyone has done this before let me know via the comments…

 

Sunday, October 30, 2005 6:37:47 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [1]  | 

 

Starting on the path of TabletPC Development#

At the prodding of Darryl Burling of Microsoft NZ I download and installed Beta 2 of Visual Basic 2005 Express Edition.  I also downloaded and installed version 1.7 of the TabletPC SDK and installed that.

As I previously blogged I carefully followed a tutorial that walked me through creating a form with an Ink Overlay.  The Ink Overlay lets you ink on the form.  The net effect was that I made a gray box that I could write on.  Needless to say I was very excited.

I have now embarked upon a second, more serious TabletPC development project and I will be blogging about my experiences here as I progress.

The Idea

The idea for the project I’m working on actually occurred to me quite some time ago when the blogosphere was awash with talk of blogging in ink.  Several people posted in ink using Outlook –like James Kendrick here -  or screenshots from OneNote.  While this certainly looks cool it has a major limitation.  In both cases ink is converted to an image and posted to the web.  A rather undesirable side effect of this is that that text is not searchable.  

We all drooled over the rather ingenious blog of Philippe Majerus that renders ink if your browser supports it and text if it does not.

Once the initial excitement faded though, it occurred to me that I only really cared about using ink to create the content because it is easier.  However the purpose of my blog is to convey information and both my handwriting and not being searchable would only hinder that goal.  Thus I asked should we be blogging in ink?

I also suggested that Infopath could be used to make a simple blog client.  However after tinkering with this for a while I found that if your blog uses an API based on XMLRPC then this is not at all easy to do.

My idea then is to create a simple blog client that allows for content creation in ink and converts it to text as you write.

Introducing BlogPad

My project is called BlogPad.  The concept is quite simple.  Clicking on an icon in the system tray brings up a form.  The user writes in the text field and the application converts the ink to text as you write.  When finished composing the entry is then posted to the server via the MetaWeblog API.

I have started putting this together and while this is far from what I envisage BlogPad to ultimately be here are a couple of screen shots the ink entry in action.

Figure 1: Ink Entry in a InkEdit control

 

Figure 2: The converted text and some plans for more features.

 

The ink edit is a really cool control and I will blog about its features and capabilities in more detail later.  The way the ink to text conversion works though is nice.  The user inks anywhere on the ink edit control and after a configurable delay (without more pen strokes) the ink is converted to text.  Other that that capability it seems to be much like the traditional rich edit control.  This means that you can paste images and text into the ink edit, so rich blog posts should be possible.

What will be in BlogPad v1.0?

Here is a list of features I am planning to include in the first version:

  • Ink to text conversion (done)
  • Correction of converted ink (not yet implemented)
  • Post to server via MetaWeblog API (not yet implemented)
  • Support for post categories, pulled from server (not yet implemented)
  • Support for post titles (not yet implemented)
  • Configuration page to specify username, password and the url of the API (partially complete)
  • Support for pasting images and text in the post body (Partially complete)
  • Support for hyperlinks in the post body (partially complete)
  • Support for attaching an ink drawing. (not yet implemented)

The Promise

When I get all that into a package that works I promise two things.

  1. I will make the application available (though perhaps not the source) to the TabletPC community free of charge.
  2. I’ll buy this t-shirt and wear it with pride.
Wednesday, October 26, 2005 6:48:51 PM (AUS Eastern Standard Time, UTC+10:00) #   
Comments [0]  | 

 

All content © 2013, Craig Pringle