Archive for May 2004

My Article On Programming The Tablet PC Get Up To Speed Quickly Is U

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.

Tablet Love

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.

What’s not to love?

Blogged on a Tablet PC

Thinktecture: Blogs As Micromarketing Tools

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 Sonard

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….

Bluetooth as a PC mike?

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?

Sonar-Based Auto-Discovery

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?

Clippy, User Experiences, and Microsoft Search

Chris Pratley blogs of Clippy: …A big part of the Assistant plan was to use it as the gateway to help. You could click on the Assistant and ask it questions in normal English (or other language depending on your version of Office)….it did not do this as it turned out – people still overwhelmingly type a single word in the hopes that will get them the answer…the Assistant was actually a wash in terms of user acceptance. Many users told us that they really liked it and found it useful, something which technical people have a hard time believing, since they were the ones who pretty much uniformly didn’t like the assistant…. via [Chris_Pratley's WebLog]

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?

Mono Beta 1 Release

Is the ACM Shilling for Sun?

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?

Should a Weblog just be questions?

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 ( 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,

If you had, say, a quarter of a million dollars in angel funding to start your own software company right now, what would you build?