My article on Programming the Tablet PC — Get Up To Speed Quickly is up on DevX. Includes source code for a Tablet PC blogging tool.
Archive for May 2004
I love the TabletPC. One reason is that, like many writers, I have an abiding love for the physical act of putting pen to paper (or, for the past 18 months, pen to screen). I have a few “nice” pens, a couple Mont Blancs, two Watermans, and I use those for writing letters, not emails, to friends and family. I write my journal with a Waterman. Written expression need not be just in the choice of words, it can be in the looseness of the stroke — the precision of the lettering — the addition of arrows and position
Also, the Tablet is a software developers dream. The Tablet PC is proof of the .NET strategy. Ink is a low-level, first-class OS object. It never lags behind a pen moving at full speed. And yet, all ink capabilities are exposed via a clean, well-designed OO api. You can begin coding against the ink API in minutes. Yet, the things you can do with the ink are limited only by your creativity.
Need I point out that there will be 1,000,000 Tablet PCs in the field soon and yet there is virtually no competition for those who would sell software to Tablet PC owners? For those who dream of opportunity in the software field, the Tablet PC should be embraced. A powerful, easy-to-use SDK, a market unserved and a form-factor which begs for new applications.
Blogged on a Tablet PC
I bet that a good 50% of the readers of this blog already know about thinktecture, a company that’s less than 24-hours old. Because of blogging, I’m the #1 Google return for various queries about programming airline reservation systems, which is how I keep myself in Jolt Cola and Doritos. I’ve published somewhere north of 500 technical articles in the past 15 years; blogging absolutely outstrips writing technical articles as a marketing tool. Is it better to be indexed than it is to be read?
Julien (Dumky) Couvreur comments on my sonar-discovery thoughts:
“Some problems for measuring distances: -don’t you only measure the distances modulo the wavelength?”
Yes…*scratch on back of envelope*… holy cow, those are much shorter than I realized…So much for pure tones; you’d have to use a complex waveform. Which would seem to bring us into the world of Fourier transforms, which goes beyond my “thoughts while dog walking” capabilities….
Why use sound to bootstrap a networked meeting rather than just use IP-level discovery?
The idea was that sound maps perfectly with “people having a conversation” while IP-level discovery is either a figment of the network or WiFi-based….
I lost my Bluetooth phone (actually, I put it in a McDonald’s bag for “safe-keeping” at a beach known for car theft and neglected to mention to Tina that she shouldn’t toss the bag in the garbage). I have a Jabra bluetooth headset which works(-ed) great and I thought I’d use it as a mike for making notes on my Tablet, for which I have a USB Bluetooth dongle. But when I “look for devices” from the PC, it doesn’t see the headset. Is there a way to use a bluetooth headset for PC input and output?
I was thinking about Loren’s concept of a virtual array-microphone on my walk this morning. I was breaking it down into simplest cases and came up with an interesting software idea.
The simplest case is locating a tone-generator on a straight line between two mikes, right? The difference between the sine waves is directly proportional to the relative distance of the mikes to the tone generator:
Add in volume, which is (inversely) proportional to the square of the distance of the signal from the mike, and it should be pretty easy to get a fix on a single tone generator. (Oh, excellent, we can make a sniper detector!)
Things get quite harder when you start thinking about “real” noise signals, and get really hard when you think about overlapping signals. (As a matter of fact, on my walk, I came to suspect that 16-bit volume might be the Achilles heel of the virtual mike array). But leave that aside for now
My new idea was “well, what if the laptops were themselves the tone generators?” Could that be used to locate laptops in physical space?
And then (as my walk ended), I thought ” And then the laptops use Morse code to send their IP addresses and initiate meeting software.”
Things get a little tougher with multiple laptops in X,Y but it’s easy enough to figure out protocols to get around that. Essentially, you’d sit down at a meeting, hit “go”, and it would sound like acoustic modem coupling. Either that, or it would have cool WWII submarine sounds, and the software would be called “The Search for Red Toshiba.” Anyway, after a few seconds, “participating laptops” would appear on a virtual table and you could match participant names to faces; shared note-taking / agenda things would start to synchronize; etc.
So basically, is a SONAR-based discovery protocol possible? Valuable? Any other ideas on “meeting room” applications?
One of the things that we’re hearing about Microsoft’s forthcoming search engine is that it will focus on “natural language queries,” as did, say, Ask Jeeves. The thing about natural language query is that you need a user-model. For instance, at iMind we could analyze the educational objectives of lesson plans because we knew “this lesson plan for 9th grade American History is from this teacher in this school district” and we had already spent gazillions of cycles preprocessing all of that context into a model that had “just” a couple of hundred dimensions. I don’t think you can do relevant English-language query without a user model: “What’s the best movie of the year?” “What’s the most important news of the day?” “Why is my computer crashing?”
Is general-purpose English-language query achievable or is it destined to be the next Microsoft Bob or, if not Bob, the next Clippy (hated by some, appreciated by some)? If Web search could be dramatically improved by a server-side user model (essentially, “We store every query you ever enter and induce that you’re a programming geek”) would that be acceptable?
As part of the ACM, one receives free unlimited access to the ACM Professional Development Centre. The PD Centre is hosted at the Sun Learning Center (the “centre” at the “center”) and to say that it’s Sun-centric is an understatement (they have recently added 5 courses on .NET fundamentals, but compare that to 77 courses on Solaris, and 30 courses for Sun One Middleware).
Fair or foul? No one’s forcing you to take “Solaris 9: Manage Network Printers and System Processes” and, if you wish to be a Sun sysadmin, I’m sure it’s a valuable offer. But is it proper for a professional organization to lends its brand to a commercial entity?
For this month, aside from occasional out-link posts, all of my posts will be in the form of questions. I hope to increase the amount of feedback I get, both in my comments and directly to my email address (email@example.com). More importantly, I hope to break down the “echo chamber” quality of the blogosphere a bit and get some new perspectives on the state of the software development industry.
For instance, I love the Tablet PC. To me it’s an exciting form factor, it suggests all sorts of new applications, and the SDK has tremendous bang for the buck. If I were looking to start up a company, we’d be building Tablet software (heck, I’ve got the application designed!). But obviously, very few people share that view and what can I learn by writing Yet Another Blog Entry on how much I love the Tablet PC? So,