I'm going to be moving really soon, so the blog will be frozen for some time (one month, maybe two). Mostly, I don't think I'll have much time to spend writing new posts, but I'm not sure that the temporary hosting solution that I'll find will allow anything but static files anyway...
The feedback, trackback and search systems will most likely be broken during that time. Sorry for the inconvenience and broken links.
I hope to be completely online as soon as possible early next year.
Soon after the first Matrix episode came out I stumbled on this analysis of the similarities between the Matrix and Ghost in the Shell.
A friend pointed out another striking comparison, this time between the Matrix and Dark City. It's in spanish, but the images make the point.
I'd like to thank Andy Oram for pointing out Brian McConnell's Infinite Spire design proposal for the World Trade Center Memorial in this post (O'Reilly Network).
Although I didn't connect much with the Fallen Headstones idea, I really loved the Infinite Spire concept. It is very elegant both from an aesthetics and a mathematics point of view. I think the simplicity of the monument would have beautifully conveyed its solemn but hopeful message.
The site has lots of details on how to implement the optical illusion, using geometry and texture. The references to antic Greek architecture are also very interesting.
One problem, maybe the main one, with Tablet PCs today is the lack of ink-based applications. Microsoft's "Think in Ink" contests are definitely are great way to get more developer traction to the ink-enabled platforms. But my attempts at coding ink applications have led me to think that it'll take quite some time before rich ink applications flourish. More samples and articles demonstrating interesting techniques are needed to get developers to invest more effort in ink-specific challenges.
The problem
To begin, I believe that ink really becomes a powerful interface when it allows a "smart" paper behavior. Journal and document annotations are examples of this, because they replicate the natural and free form paper interface and extend it.
The Tablet PC SDK allows you to develop such applications, but it doesn't necessarily make it much easier. What I mean is that the SDK makes it easy to write certain classes of applications: paint programs and form-based text input. The applications that experiment with other models for input (maths instead of english) and interaction (gestures instead of windows widgets) are still quite difficult to write.
The .NET Show episode on the Tablet PC is certainly impressive, because it shows how easy it is to ink-enable an application and make use of the powerful text recognition engine of the Tablet PC. But as soon as you want features that are pretty different from the Journal, you are on your own.
I'm not saying that the Tablet PC's SDK is at fault here, as it is very elaborate (ink parsing and handwriting recognition) and it certainly provides useful abstractions that allowed applications like Corel's Graphigo and xThink's calculator to be developed. I'm also glad that the companies that developed such products are making money out of it and I agree they should definitely keep their techniques secret.
But the fact is the expertise or knowledge to develop things like Graphigo's simple shape recognition and xThink's equation analysis aren't readily available to the developer community. I know free form sketch recognition is still an open problem in research, but there are very few samples that actually explain even the basic techniques and this raises the barrier to entry for developing rich ink applications.
Last year, I spent some time on a unistroke recognizer in C# (but not on top of the Tablet SDK), similar to Palm's Graffiti. When I was searching the web for existing solutions for this problem, there wasn't many sources of information and they were either too intricate for me (Rubine algorithm) or not really detailed (just comments in source files).
Some ideas
Obviously this is a bootstrapping problem and if ink applications were becoming mainstream more developers would know how to write them or would be interested in learning to. But another way to feed the virtuous adoption cycle would be to help developers write cool apps today. And Microsoft could help there in a couple of different ways:
- publishing more research papers explaining ink parsing techniques,
- making the source for some PowerToys available and explaining it in some MSDN Mag articles,
- publishing more code samples,
- making small parts of the SDK available under some shared source license (providing a powerful API is nice, but teaching a powerful algorithm is better), like some shape recognition APIs,
- keeping the community site more active (keep Tablet PC Developer alive and improve it).
In terms of platform improvements, besides for Ink interop which I don't see coming anytime soon, I'll hold my rants until after Lonestar and the 1.7 SDK are released ;-) I know I'll love the new specialized TIP to enter urls in a browser, with spaces being removed and the url history used.
Other posts on the problem
As I was finishing this post, I saw Peter's post on How Microsoft could help Tablet PC ISVs over on his Tabula PC blog.
One thing I don't necessarily agree on is his "Don't dwell on code sharing", when it comes to contests. I understand his argument, but these contests aren't just the "Tablet PC app awards". You get money or prizes if you win, so showing a cool app isn't enough in my mind. At least the binaries of the winning apps should be made available, if you really think sharing the code would drive developers away.
One thing on which I definitely agree with him is the "Educate developers". But I think they need to be educated further than just on how to use the SDK. The same way there are many people out there that know how do write an HTTP server or proxy using the socket APIs, we need to have more widespread skills for writing powerful ink applications.
Loren also had a thread on this developer adoption problem, which led to starting an open Journal project called WriteFree.
Links
Here are some more applications that go beyond the basic text recognition in forms:
Music Composition Tool.
Text edition with the pen, that demonstrates gesture interaction with text to edit it, and the newer demo.
Lesynski's inShape SDK that allows you to implement shape recognition amongst other things.
ITworld.com takes a look at Tablet PCs after one year (found via Julia Lerman's Blog, I wonder why ;-). It is always hard to evaluate the success of new technologies, but the article clearly shows that more progress and adoption is needed.
Although they are a bit of a time hog, I love playing games ;-)
The demo of Trackmania (PC) came out recently. It's a pretty original car game, were you not only race through crazy circuits (remember Stunt Car Racer on Atari?) but you also have to construct the circuits themselves. The challenge is to build the most optimized circuit, given a limited number of pieces, and expertly drive through it to beat the clock.
A friend of mine bought Dance Dance Revolution Max 2 (PS2) with the dance pads. It's really fun to play with a bunch of friends and it's great exercise too. The only trouble is if you live in an apartment with neighbors below you ;-)
Much more relaxing, a paper snowflake making tool (via Ned's blog). It's a nicely designed Flash app that allows you to cut virtual paper, make snowflake-like shapes and post them to a gallery.
Update: There is now a trailer for the full Trackmania game. Looks like tons of fun, check it out.
Update: Dance Dance Revolution is now available on PC via a Python port: PyDDR. You can even plug the PS2 dance mats via an USB adapater ;-)
I had heard from this initiative internally a while back, but it is now official: users can comment/annotate some MSDN reference pages. More info can be found on the MSDN Lab Annotations page.
The Longhorn SDK pages on MSDN already have the feature deployed.
It looks very similar to the annotation feature in the PHP documentation which is most useful. But there are some differences:
- the MSDN annotations appear to only be available in IE,
- they are exposed via RSS feeds, which I don't think is the case for PHP notes,
- there is no mention of any moderation, while the PHP notes are moderated.
Anyway, I couldn't find any annotations on the API pages yet, so I guess we'll have to wait to see if this feature really enriches MSDN, as it did PHP.
Update: O'Reilly has published annotations for the Longhorn SDK and describes the annotation system. Annotations can be provided by third-parties, through an specially-formatted RSS feed (fetched, cached and displayed by the SDK annotation component that you install on the client).
Update: Thinking more about it, RSS seems like a bad solution to the annotation problem. What you want is some kind of annotation database that can be queried for information related to a specific page or topic, not a stream of annotations. You still want to access old annotations, but they'll get pushed out of the RSS feed as new annotations are added...
On the other hand I agree RSS fits in the scenario where you want to monitor any new notes posted relative to a topic, but I would guess that's not the most common need.