Sciral Consistency

I have never registered a piece of shareware faster than I did this morning after trying out Sciral Consistency. This is a to-do manager for repetitive tasks that can occur within a range of days (for instance, you need to do the bills twice a month, but an Outlook repetitive task scheduling them for “5 o’clock on the 15th and the 1st” is overly rigid. Or, you want to make sure that you keep in touch with old friends at least once a quarter.)

The interface couldn’t be more intuitive: a matrix of days versus tasks, with task status color coded, and a simple dot indicating completion (and recalculating the task going forward from that day).


Casey Chesnut Unjumps The Shark

 Casey Chesnut, who’s my favorite Tablet PC programmer because he does all this stuff apparently without realizing that it’s supposed to be hard, has written a neural network based character recognizer for the Tablet PC (via [Tech Blender]). He normalizes an ink stroke in x,y,and t (time) (a technique I discussed in two recent DevX articles) and quantizes it into a discrete number of inputs (50) for the NN.

That’s actually fairly close to my understanding of how Microsoft’s recognizer uses neural nets as well, although for continuous writing you obviously have to deal with letter pairs or even triples (I would think) and use some kind of sliding window across the input.

Post-neural net, you have an activation level per character, which you can feed into a Markov model of letter pairs and triples (if the last letter was a ‘q’ then the odds of this being a ‘u’…). You then feed your letter-based options into a dictionary, which in turn you feed to a language model (the simplest being Markov models again).

Or post-neural net, you move directly to a BNF-like grammar.

We gotta’ get Casey to Windows Anywhere


Tablet PC Jumps The Shark

Time magazine today named the Intel Centrino mobile technology wireless surfboard as one of the Coolest Inventions of 2004…

Via  [Tablet PC hep!]

Lordy, lordy, lordy. When this counts as the coolest thing that done with a technology, we’re in trouble. BTW, I’m doing a surf report Konfabulator widget (For the logic impaired, it’s usually more important to get a weather and surf update when you’re not already at the beach.)

Let the fools have their tartar sauce!

There’s an early Simpsons where Mr. Burns somehow comes to believe that Homer is a fellow predatory capitalist. When he asks Homer how to improve the working environment, Homer says that he’d like the fish sticks in the cafeteria to come with more tartar sauce. Burns marvels at this Machiavellian way to buy the affection of the exploited.

My friend Fabian is consulting at Google and is dazzled by the tartar sauce:

This is my fourth day out at Google and I just have to comment on the cafeteria. Like Butthead used to say, “It is the coolest thing I’ve ever seen!” The menu is outstanding and the price? Free. That’s right, after you load up on food there isn’t a cash register in sight. It’s amazing.

And if that isn’t enough, they just don’t serve lunch, they serve dinner too. Via [The Daily Nugget]

Language Oriented Programming

Via [Lambda the Ultimate – Programming Languages Weblog] I found JetBrain’s Sergey Dimitriev’s very important whitepaper on “Language Oriented Programming: The Next Programming Paradigm

This is the best brief explanation I’ve seen of the emerging consensus that the software development industry is finally poised to move beyond general-purpose languages. This echoes much of what Microsoft is saying about software factories and domain-specific languages (DSLs): in a recent discussion I had with Jack Greenfield of Microsoft I finally grokked that software factories don’t reduce to DSLs, but the rapid creation of DSLs by programming teams within vertical industries is absolutely key.

Dimitriev lays out the practicalities of what he nicely labels Language Oriented Programming (LOP). (I’ve said that I would die happy if there were no more “-Oriented Programming”s, but it’s better than the current fad of “-Driven Programming.”) This paper and JetBrains’ “Meta-Programming System” (MPS) are echoing what happened with refactoring: there was an emerging theoretical and evangelical consensus, JetBrains (then IntelliJ) produced a product that, while perhaps having implementation warts, was half-a-decade ahead of the industry.

I am fully convinced that this is the future of vertical-industry software development.


The Message of the Tablet Medium

…So here’s some homework for the mighty tablet armada: sell me on the tablet platform…Given all that, convince me. Sell it to me. Design me a suitable demo. Explain to me exactly why I shouldn’t go and get some cute little touch-screen sub-notebook, a ThinkPad with 7+ hour battery life, or a full-featured Media Center notebook with booming speakers and a gorgeous screen. Challenges [Peter on Tech]

The last thing that you should do when someone says “Convince me of X” is start talking. “Convince me of X” means “My skepticism of X has increased to the point where my emotions are telling me Not X.” And so when someone says “Convince me…” what you should really do is listen.

I will now ignore what I just said.

The thing about the Tablet PC is that The Medium Is The Message. The Tablet PC will only succeed when software developers:

·       See the Tablet PC as a Medium separate from a Laptop; and

·       Understand the the change of scale or pace or pattern” that [the Tablet] “introduces into human affairs.”

·       Address that message in software

Clearly, the use of the pen coupled with the disuse of the keyboard is the most obvious change to pattern, but it’s become fashionable to ignore that since so there’s so little software that engages that message. So there’s lots of discussion about “mobility,” where the Tablet PC’s “message” is that “It’s fully functional even when cradled in the crook of your left arm.” But the Tablet PC’s “mobility” message is inconsistent, since most still have indoor screens and limited battery life, so it’s mobility message is “It’s fully functional when cradled in the crook of your left arm when you’re in a corridor of your workplace,” which is, not surprisingly, exactly what’s conjured up by the “Corridor warrior” persona which was the most-used reference for whom the Tablet PC would be targeted (the medium is the message!).

For me, mobility means outdoor screens, long battery life, instant-on, and rugged enough to be carried in a backpack on a hike or, ideally, used on a diveboat. If I had that, I could do location-aware field guides on the Tablet PC, which you can’t do with a laptop (the “crook of the left-arm” thing is important to field guides).

Another part of the message of the Tablet PC that we fans ignore is that it’s not nearly as non-disruptive as a notepad. I wish it were, but it ain’t. Pulling out a Tablet PC to take notes is insanely disruptive. Once it’s down on the surface and you start writing, it’s more discrete for note-taking than a laptop, but when you turn it on or take it out of the pack, fuhgeddaboutit. So part of the pattern of using a Tablet PC in meetings for me is firing up OneNote, putting the machine in standby, walking in with the Tablet in my hand and getting it down on the table and in note-taking mode as quickly as possible. It’s still disruptive.

Going back to the fundamentals, the disuse of the keyboard is as much a part of the Tablet PC medium as the use of the pen. I’ve had the experience of having both a Tablet and a traditional laptop in front of me in a technical seminar (actually, a slate and a convertible, but the experience was the same). Let me tell you: fantastic experience. Longer thoughts and code at the speed of typing (technical seminar: keyboard clicks acceptable), drawings, connections, short notes with the stylus. It was such a good experience that I could well imagine an external digitizer attached to a keyboarded laptop running Tablet XP as the best solution for the types of meetings I most often have. That would be a better solution than an external keyboard attached to a Tablet, because for reading a vertical screen is better, while for writing / drawing, a horizontal surface is needed. It’s difficult to use the stylus on a convertible in laptop mode, it’s difficult to use the screen on a slate lying flat.

Having said all this, why do I love the Tablet PC medium? Because I adore the stylus’ direct manipulation, gestures, and fast 2D pointing. Those, to me, are the parts of the Tablet PC message that are unappreciated in all software and are only beginning to be addressed in some art programs and OneNote. When I think of what I’d love to be able to create / do with a  Tablet PC, it generally involves these things. For instance, I’m convinced that there’s a broad class of outlining-type facilities that can be created in 2D space (a virtual corkboard; code refactoring; etc.). Or, association by pointing —  this, not that; this, and that; this, in contrast to that – these are things we do on notepads and whiteboards with a line, but what if that line were semantically meaningful? And no physical space can be folded, stretched, duplicated, and restructured the way that computer coordinates can be.

So to me, when I think of the Tablet PC, I think of this product that provides me with everything that the laptop does (in convertible mode) and has an entirely new category of possible software that is unrealized. As an end-user, I can understand why that’s frustrating, but as a developer, it’s what I live for.