Software development industry analysis by Larry O'Brien, the former editor of Software Development and Computer Language
Thursday, July 28, 2005

One wonders what the rationale is for changing the names of programmer-level layers from fairly memorable brands to utterly forgettable TLAs.

Thursday, July 28, 2005 6:58:44 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Wednesday, July 27, 2005

Well, there's a nice coincidence -- a brand-new (well, used, but not by me) M1400 and the Longhorn / Vista beta. In the words of the immortal James Doohan, “How do they mix? I'll let you know...”

Update: Microsoftian Hilton Locke warns “many of the user interface items (read: Tablet PC Input Panel, Journal, et al) are not in this release. We will be making an interim version of the Input Panel available for installation on Vista Beta 1, but I do not have final details on that just yet.”

Update: I chickened out. I need the M1400 to be fully functional for a project I'm starting on the 1st.

Wednesday, July 27, 2005 12:13:02 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Loren speaks of hardware driving the success of the Tablet PC, and Iggy agrees, going so far as to say that “computing with a pen is unnatural.”

“Computing with a pen is unnatural.” Okay, I can agree with the words, but only to the extent that it's tied to “computing with a keyboard is unnatural,” “computing with a mouse is unnatural,” “computing with a 4-function calculator is unnatural.”

The very idea of “natural” computing is off-base; the computers that we have today are quite unlike any natural form: they are neither static objects nor responsive animals. They have internal state, they react, they generally transfer data to us in high-level abstractions (words, images), but they lack even fundamental awareness of their environment, much less the reactive capacity of any work animal (much less human). Someday, certainly, we'll be able to interact with computers in a “natural” way -- computers will watch and listen to us and their environment and intuit our intent for them. Several breakthroughs will be required before that day.

Iggy's sentiment, though, is not “computing today is in its infancy,” but rather “computing with a pen is less intuitive than computing with mouse and keyboard.” With this sentiment I whole-heartedly disagree. I hammered on the preliminary nature of computing today precisely because the view that a keyboard and mouse is “natural” is incredibly myopic. In the late 80s, I bought a mouse, from Microsoft, for use with my spanking new 286 running DOS. You could use it with Microsoft Word and a small set of DOS-based windowing tools. The mouse was $99 and was no bargain. Word was inferior to WordPerfect and when programs did use windows (the Turbo IDEs, for instance), it was always faster to use the keyboard (and function keys. Does anyone remember function keys? You know, they're still on the keyboards...).

So in 1989 (say), it would have been totally parallel to say “look, you have to pay a premium for a DOS mouse, it's slow for input, there's no software... Computing with a mouse is unnatural.” And, believe me, there were plenty of people who expressed such sentiments, even with the Macintosh sitting there and telling the story:

To be useful, a hardware innovation (mouse) must be coupled with software innovation (bitmapped windows)

And then along came Desqview 386 (software innovation to exploit the hardware innovation of the 386 and the mouse) and Windows 3.0 & 3.1 and here we are 15 years later with a software ecosystem that has co-evolved with the mouse and keyboard. It is true that it is hard to use a non-mouse pointing device with existing software, even with drawing software where the pen is fundamentally easier to control than a mouse.

It's not that the pen is unnatural, it's that the software has evolved with a bias towards mouse and keyboard

It's true that new form factors, longer battery life, better screens, perhaps more ruggedness -- all of those affect the “the change of scale or pace or pattern" that [the Tablet] "introduces into human affairs" and thus are important to the medium. But there must be software specifically created for the Tablet PC's hardware innovations. Just as applications evolved to exploit the mouse and keybard, so too can they evolve to exploit the pen. And such software will feel natural.

Case in point: Arcs of Fire. While a game with a single-screen and a static background is hardly going to take sales from Half Life 2, there has never been a game that “feels” more like the act of throwing, which is a behavior that's hard-wired into our genes to be pleasurable. Arcs of Fire “feels natural” for that type of game, much more “natural” than the old DOS-based games where you typed in muzzle velocity and angle, or mouse-based games requiring a diagonal motion that's hard to do accurately with a mouse.

The success of the Tablet, at this point, is much, much more reliant on software than hardware.

Wednesday, July 27, 2005 10:23:10 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

I can't find any sign of this on Yahoo's Website, but a press release from the Computer Games Development Conference Europe speaks of “Yahoo! Poker, a multiplayer cross platform title, which lets mobile phone gamers play against those on their PCs.” Man, there's gotta' be some way to cash in on the poker craze...

You know, you don't make money chasing gold, you make money selling to people chasing gold (Levi's, Wells Fargo). Maybe a Texas Hold 'Em trainer: instead of actually playing out the hands, test the ability to evaluate the odds based on position and pot odds. That's easy to calculate (for a computer) until you get to the challenge of evaluating another player's betting sequence, which is intractable to a simple algorithm.

Wednesday, July 27, 2005 8:41:50 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Sunday, July 24, 2005

We recommend How to Become a Professional Con Artist http://www.amazon.com/o/ASIN/1581602693/ref=pe_arr_d_1581602693_6_txt

You are 19,547 times more likely to purchase this item than other customers.

Dang.

Sunday, July 24, 2005 6:50:35 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Tuesday, July 19, 2005

Be sure to visit all the options under "Configuration" in the Admin Menu Bar above. There are 16 themes to choose from, and you can also create your own.

 

Tuesday, July 19, 2005 9:00:00 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | dasBlog#
Monday, July 18, 2005

Business Week says that the outsourcing craze has peaked and demand is increasing for American programmers. It then goes on to warn that “routine programming” is continuing to flow offshore and that programmers wishing to be employed in America have design skills.

The funniest line in the piece is on a recent CMU grad who “landed a plum assignment with tech consultancy Accenture Ltd.” Oh, the naivete of youth!

Monday, July 18, 2005 7:32:13 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Sunday, July 17, 2005

So I wrote a rough pass for my OneNote PowerToy: it synchronizes voice recordings on a SmartPhone / PocketPC onto a desktop and imports them as links into a OneNote page. After spending some time with a hex editor, I backed off the idea of trying to do a binary edit of the OneNote file to embed the links as native OneNote audio embeds (even though, in fact, OneNote embeds a link to a file, so it ought to be possible to do the binary edit, but not for a Sunday morning project).

Unfortunately, using a file link results in an annoying “Are you sure you want to open this potentially unsafe file?” dialog every time you click on it. I'm pretty sure that this annoyance will drop my PowerToy back at least to the middle of the pack. So I thought, “Well, what can I do that would be slick?” and my thought was “Automatic voice recognition of the voice notes, at least to get a running shot at search / browsability.”

It turns out that voice recognition of a file could hardly be easier: it's literally a 10-line initialization block and then an event-handler for the results. When tried on a .wav file generated from my noise-cancelling Plantronics headset the results are definitely adequate, but the results on the low-fidelity recordings from a phone are so poor that I'm not even going to include the capability in the PowerToy.

Oh, hey, today's our 1-year anniversary of moving to Hawaii. Rockin'. Had a great time at Honaunau yesterday freediving. My freediving has taken a big step in the past couple months -- I'm now really comfortable for about 1:30 on the bottom, which is great, because the reef fish change from being scared to being curious at about 1:00. My goal is 2:00 on the bottom, with :30 of swimming up and down time. I'm also getting more and more confident about taking a shot at the 100' club...

Sunday, July 17, 2005 2:23:55 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Friday, July 15, 2005

Loren asks how one would spend various amounts to promote the Tablet PC.

  • $10 million. I would “bake in“ ink and voice input support to a word processor and spreadsheet. If I didn't happen to have a world-dominating suite of office products, I'd do it in Open Office for heaven's sake. And I'm not talking about ink comments or voice notes: I'm talking about multimodal control. I tap my pen and say “Equals Sin B6“ and the spreadsheet cell becomes “=Sin(B6)“ or I say “Equals Sin...“ and then tap my pen in B6 for the same effect. Or I'm dictating a memo and see a word screwed up five spots back, but with my pen I can highlight the wrong word, choose the alternate, and return to the original insertion point very rapidly. The Tablet PC will never go horizontal until people can create the 3 most important document types: email, spreadsheets, and .docs with a speed comparable to composing them with a keyboard. (Note I used the word “composing“ and not “entering“) Corollary: The device that allows such creation in a mobile context will be a breakthrough comparable to the original PC
  • $1 million. I would sponsor an X Prize for the above.
  • $1. I'd put it towards my blog hosting expenses.

UPDATE: Oh, and pictures and diagrams.

Friday, July 15, 2005 10:30:41 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Thursday, July 14, 2005

I'd like to enter the OneNote PowerToy competition and, since getting a fourth Tablet PC is not particularly motivating I'll even tell you what I've got -- your voice notes on your Smartphone / PocketPC get automatically changed into OneNote items. I've got it working using file links but I'd like to add note flags and embed the link a la native OneNote recording, though, and you can't do that with the XML import API. Has anyone reverse-engineered the .one file format at the hex level? You know, like we did when we were kids?

Anyone interested in a little Open Source cooperation?

Thursday, July 14, 2005 10:08:57 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Sunday, July 10, 2005

http://www.dontclick.it/ shows how effective a clickless interface can be.

Sunday, July 10, 2005 12:24:29 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

DevX has posted an article that I am really pretty proud of: a literate programming tool for .NET using Microsoft's Visual Studio Tools for Office 2005. By using Word styles and embedding XML tags, you can label your code fragments in a Word document as compilable (including specifying assembly targets, compiler options, etc.). Additionally, the code fragments can have references to other code fragments within them, so that your code fragment can say “<<using block>>” and you can fill in those details someplace else in the document (in a separate discussion, an appendix, or even in a hidden “boilerplate“ section).

A SmartTag assembles all of the code fragments for a given “compilation unit,“ (think normal source code file) and all the “compilation unit“s for a given “assembly target.“ They source can be placed on the clipboard as an XML tree of fragments, as an assembled compilation unit (ready for pasting into Visual Studio), or can even be compiled directly from within Word. I support C# and VB.NET “out of the box“ but it's a simple matter to support additional languages for compilation.

Normally, I'm content to write a tool for an article and leave it for as inspiration for further exploration by others, but I think this tool has such potential that I'm going to continue developing it, possibly on SourceForge or, more likely, hosted locally. In particular, I'd like to add FIT capabilities so that authors would have the ability to confirm that their code behaves as they expect; macros so that adding code blocks was as easy as “Ctl-C“ (or whatever); and the ability to specify “alternate fragments“ so that you can say “If we replace Listing 12 with Listing 13, you can see the behavior do such-and-so...“

I'm going to reveal a new site on the subject shortly...

 

Sunday, July 10, 2005 10:51:47 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Loren Heiny is has begun posting screenshots from his work developing IDE plug-ins allowing inked comments to be made on source code. Personally, I think this is a tremendous use of the Tablet. DevX has just put up my article on literate programming in .NET using Word (in other words, a Word document whose code listings are supported by a “compile this!” smart tag). I was able to use Word's ink annotation capabilities in that project, as well (especially when ink comments are set to “float in front” of the text), but Loren's is definitely the more focused effort.

Sunday, July 10, 2005 10:30:44 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Thursday, July 07, 2005

Oh, I am freakin' killing myself. I bought an M1400 last freakin' week in order to get a ViewAnywhere screen and Motion ships an 8” diagonal-screen Tablet. I am so severely bummed words can't express...

Not to put too fine a point on it, but I live in Hawaii, see. And the view from my lanai (what you mainlanders would call a “porch”) is a panoramic view of the Kona coast. My office, on the other hand, has a window that looks at my garage and a stone wall and another that looks at a tree five feet away. I so want to be able to work outside, with a full-fledged computer that I can write on while sipping an ice tea and watching the surf break...

Thursday, July 07, 2005 10:36:54 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Tuesday, July 05, 2005

The most anticipated patch in Tablet PC OS history is now available!

Tuesday, July 05, 2005 3:28:34 PM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #

Tuesday, July 05, 2005 9:35:36 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Monday, July 04, 2005

So at first you think:

To_Do_Item ::= Done Item
Done ::= boolean
Item ::= String

But then you think:

To_Do_Item ::= Done Item Due
Due ::= DateTime

And then you think:

Due ::= DateTime | RecurrencePattern | DatePattern
DatePattern -- “next Tuesday” “3rd Fridays of the Month” etc...

And you're also thinking:

To_Do_Item ::= Done Status Item
Status ::= Done | Pending | Deferred| Waiting | Overdue | Next Action | Urgent

And what about “Every 3 months or 3,000 miles”? And how to distinguish between "If it's overdue, it's over," ("attend the concert,") "Due any time in a range," ("get a haircut,"), and "If it's overdue, it becomes more urgent."?

And wouldn't a To-Do List DSL be able to describe things like “Your goal is to exercise 40 minutes per day, but 40 minutes every other day is marginally acceptable. But if you don't exercise at all for five days in a row, you've got to get out of the house.”?

There are no easy domains...

Monday, July 04, 2005 9:04:00 AM (Hawaiian Standard Time, UTC-10:00) |  Disqus link  | #
Search
About Larry...
Flickr photostream
Subscribe: RSS 2.0 Atom 1.0
Popular Articles
Programming Sabre with Java, C#, and XML
Genetic Programming in C#
15 Exercises To Know A Programming Language
Top 10 Things I've Learned About Computers From the Movies and Any Episode of "24"
Recently Published Articles
HI
KonaKoder
Categories
Archive