Designing Web Apps For Multiple Devices
triskelion embroidery
Last November, I was asked to write a guest post for Mozilla's Hacks blog. It describes the thinking behind the two apps I've developed since PopupCalc - one for webOS and one for Firefox OS.

Here's the link I should have posted then:

webOS “Desk Accessories” Using Dashboards and System Popups
triskelion embroidery
Several years ago, I wrote a guest post, on a limited way to use two apps at once, for the webOS Developer Blog. I didn't want to look like a content farm and copy the text here. Here's the link that I should have posted then:

Two-Handled Snow Shovels and Innovation
triskelion embroidery

Two decades ago, a client gave my father-in-law a two-handled snow shovel as a thank you. He was attempting to market them, but they didn't catch on. It's so much easier to use than a conventional shovel, that when the blade wore out, my mother-in-law asked me to fix it.


I don't know why the client didn't succeed, but I can imagine a number of reasons. Retailers stock thousands of products - they may not have wanted to deal with a supplier who had only one product. Higher price and worse stackability would also turn them off. Many potential users would laugh and never give it a chance. In Michigan (where he was selling) a snow blower is not overkill at all.

Perhaps as the price of oil continues its long rise, snow blowers will become less attractive. Maybe consumers will scorn them as eco-unfriendly. Or maybe two-handled shovels would sell better today in places with some snow, but not too much. I don't know (and I'm not going to test it).

My takeaway is that there is room for innovation, even in "mature" fields. But only if you know the field and have good execution.

HP's Exit Strategy for Handhelds
triskelion embroidery

There is wide agreement that HP's hardware (and before that, Palm's hardware) for webOS was not as good as it needed to be, to compete.  HP failed, over the course of a year, to use its "scale" to properly sell the devices it did have.  So, it's reasonable for HP to stop making webOS hardware.

webOS itself was widely praised for its elegance of design (if not so widely for its implementation).  Other manufacturer's expressed interest in licensing webOS, despite the poor history of Apple and Palm directly competing against their licensees.

Deciding to ax your hardware changes the proposition.  Windows CE/Windows Mobile and its licensees trundled along for over a decade. And as of this week, Android licensees are strongly motivated to look for a new OS to add to their lineup - so a deal is more reachable than ever before.

What looks better to a licensee - a functioning ecosystem where you can add products, or a mothballed ecosystem that must be revived?   For the cost of shutting down webOS GBU suddenly, HP could easily have ramped down operations until new devices from new manufacturers were within reach.   If apps are truly as important as pundits say, it's better to have developers continuing to work during the transition, rather than trying to lure them back to a re-animated platform.

With licensing deals much easier to make this week, there was no rush to announce the end of HP webOS devices, and kill off current sales and consumer interest.  Even if a licensing deal is announced within a month, HP has badly damaged the value of webOS.

Leo Apotheker and the rest of HP's high management have done their shareholders a disservice by macho posturing instead of prudent operations.

Tags: ,

Software Bugs: Have We Made Progress?
triskelion embroidery
Today I configured the new version of Quicken to download data from our bank.  Quicken's import function threw no errors, but reported it had imported 0 transactions.   I looked at the file in a text editor (textual data formats are good for that) and was sure there was a transaction in it.  While chatting with Intuit's second level of support, I realized the account number in the file didn't match the account in Quicken I was trying to import into.

So there were two or three bugs, or at least flaws:
  1. My bank's web app doesn't remember which account I'm working with when I switch from displaying transactions to downloading transactions.
  2. Quicken silently ignores transactions from a mis-matched account in a .qfx file.
  3. Intuit's support system doesn't steer Mac users to Mac-trained reps. (This wasted my time and theirs, but didn't contribute to the main problem.)
One transaction is not a statistically valid sample.  But my general sense is that the bugs I encounter are like this: not flat-out wrong operation, but software that doesn't match the way people operate.  That's better than when I first started using computers in the '70s and '80s.  But we know how to make better software. So, I think we're making progress, just rather slowly.

So, keep demanding that software work right.  We'll get there (eventually).

WebOS on Windows
triskelion embroidery
 How is HP-Palm going to port webOS to Windows?


A build of WebKit for x86, should be straightforward, though there's many details that need to be got right. WebOS apps use an asynchronous protocol called PalmBus to communicate with system services, so that code must be ported from ARM webOS. Instead of sharing one small screen, each app can have its own window, sized appropriately.

Services written in C/C++ may have been written assuming only ARM processors, but that's in-house code at least. Again, many details must be got right.

JavaScript services are problematic, since node for Windows is not yet fully working. Worse (from HP's standpoint), Cygwin (the Unix-compatability layer for Windows) is GPL, not LGPL:

Most of the tools are covered by the GNU GPL, some are public domain, and others have a X11 style license. To cover the GNU GPL requirements, the basic rule is if you give out any binaries, you must also make the source available….

The Cygwin™ API library found in the winsup subdirectory of the source code is also covered by the GNU GPL (with exceptions; see below). By default, all executables link against this library (and in the process include GPL'd Cygwin™ glue code). This means that unless you modify the tools so that compiled executables do not make use of the Cygwin™ library, your compiled programs will also have to be free software distributed under the GPL with source code available to all.

If the Cygwin license only "infects" node, that should be a win for everyone: HP-Palm supports node under Windows, while the rest of webOS remains private to HP-Palm. However, node in webOS is customized to add PalmBus support, which complicates matters.  HP-Palm will need good work from their programmer-lawyers to thread this strait.

DB8 is the central database of user information in webOS 2. Replicating it and the user's Palm Profile from Windows to handhelds should be straightforward once the above is complete. Currently, PalmProfiles are only backed up once a day. Users will want faster replication between their PC and their handhelds. At the Palm Developer day in May 2010, CouchDB was mentioned in conjunction with DB8. CouchDB has real-time replication; let's hope no DB8 design decisions were made which make real-time replication difficult. This is also needed by users with a tablet and smartphone, so one can guess this is in-hand (or will be in-hand by June).

What features of desktop computers will need support? File system requests already go over the PalmBus, so accessing desktop user files will be supported. TouchPads can print to network printers; presumably local Windows printers will be straightforward to add to that system. Presumably audio support will match that available in other WebKit builds such as Safari for Windows. Bluetooth I'd guess will not be supported in the first release, since audio and keyboards will be handled separately. There's no support for USB under webOS currently, so don't expect webOS under Windows to support it any time soon.

User Experience

Mouse and pointer are different than a touchscreen, but the new Enyo framework has been demonstrated running in a browser, so developers will have the ability to test apps with both mouse and finger. Whether they succeed in well supporting both remains to be seen.

"Syncing to my desktop" is the number-one feature request for Outline Tracker. Having the same interface on both will lower the friction of using both. Web apps are useful, but notes and tasks stored locally are better. Alas, Mac and Linux users will be left out for the foreseeable future.

Currently, people use handhelds as an adjunct to desktop computers.  Many people do not work at a desk; current solutions use different apps on handhelds and the desktop. This (and/or the Motorola Atrix) could shift the balance.

Does the future belong to the system that can best replicate users' data, and the user experience, across all of a user's devices? I don't know, but I look forward to finding out.
Tags: ,

triskelion embroidery
HP/Palm's presentation yesterday showed some solid hardware and innovative user interfaces. The new Enyo framework presented to developers is in position to make webOS live up to its initial promise of developing like developing for the web, rather than merely making use of web technologies.

But I'm worried about how we get from the current webOS users, apps and developers to the bright future painted by HP.

Apps become powerful when users enter a lot of data in them - and they'll only do that if they expect to use the apps for a long time.

This can be seen with some Palm OS apps, such as FileMaker. Users have YEARS of data accumulated, and won't move to another platform without it. Currently, they nurse aging Palm OS hardware, and bemoan that no other platform will let them use their data.

Palm promised the ability to run Palm OS apps in an emulator under webOS. Classic from Motion Apps was that emulator, and technically it works well. But a finger isn't as precise as a stylus, making Palm OS apps a chore to use, even with the clever zoom-in-and-out. The rating of Classic hovers around 3 out of 5 stars -- a poor showing for a product with so much work behind it.

Then, last Fall, Motion Apps announced that HP/Palm was refusing to include the necessary files in webOS 2.0 to allow Classic to run. Users of Palm OS software were left facing a dead end - apparently due to HP/Palm's intransigence, rather than technical limitations.

Old platforms can't be supported forever, but if they aren't supported until there's a viable replacement, users won't trust their backers. What lesson should Palm OS users draw about HP/Palm's commitment to them, from this?

Early webOS adopters took a leap of faith and signed two-year contracts, believing that 3rd-party apps would come. After a short 16 months in public, HP/Palm announced at the NYC Dev day that Mojo (the framework most webOS apps are based on) was obsolete, and not guaranteed to be included on webOS devices after 2011. As a webOS user, should you buy apps now, that won't work next year? Should you stay with a platform that declares your current apps obsolete, months before any replacement could possibly arrive?

Early webOS developers took a leap of faith and learned the intricacies of Mojo, a framework new even to seasoned JavaScript developers. While amateur developers contribute many worthwhile apps, large powerful apps that make a device more than a toy, and users more than mayflies flitting from platform to platform, usually come from professional developers. Developers who need to make a profit. It's hard to make a profit on a platform that's only around for 16 months. While Mojo apps will remain runnable through the end of 2011, app sales are primarily made to users new to the platform. And large, expensive apps do particularly poorly when their platform is obsolete. So, sales of powerful Mojo apps have tanked (and lighter apps aren't doing so well, either). As a developer, what lesson should you draw, about the profitability of developing for webOS?

The TouchPad tablet will not have the gesture area all other webOS devices have, and all the apps demonstrated yesterday were developed using the new Enyo framework.  Developers naturally wonder how (and if) existing Mojo apps will run.   The "back" gesture is essential for using Mojo apps - is there a way to generate it?  These and other reasonable questions were not answered at the developer reception.

Yesterday, we learned that webOS 2.x will not be available over-the-air (OTA) to devices that shipped with webOS 1.x (almost every device not possessed by a developer). While HP/Palm has promised a "path to webOS 2" for owners, no details are available. Will this be a webOS Doctor, which erases 3rd-party data and requires a desktop computer? This is similar to the upgrade mechanism for Palm OS, a mechanism that most users did not use. Will the path be credit toward a new device? No one knows.

Microsoft has excelled at creating fear, uncertainty and doubt (FUD) about it's competitors. HP/Palm has done a surprising job of creating FUD about their own product.  HP/Palm appears to pin its hopes on one exciting future technology after another, with inadequate concern for current users.

None of these problems are beyond remedy. The Palm OS ROM needed for Classic, and the Mojo framework, may consume valuable space on new devices, but there's no visible reason they can't be made optional downloads for those who need them. And HP/Palm can commit to keeping them available until users have real alternatives. Users would see that HP/Palm cares about their long-term needs. Developers could have confidence that apps they develop now can be sold for years. Developers of existing apps would be motivated to improve them and convert them to use Enyo. HP/Palm has supported developers, notably by distributing a large number of developer devices, especially Pre 2s which run webOS 2.  HP/Palm engineers have been and will be answering developer questions in the next days and weeks.

There are many Palm OS apps that have committed user bases, even today. Users who bought one Palm device after another. Users that promoted Palm OS to everyone they knew. How many webOS apps can boast that today?

Good design and a lot of work has gone into webOS 2 (and 3!) There's a bright future out there for webOS -- if the transitions of users, apps, and developers are properly smoothed. And HP/Palm is the one that has to do it.

Procrastination vs. System
triskelion embroidery
Another wedding was coming up (boy, there have been a lot of them this year). When I checked my suit to be sure it was clean, the pants were missing. A call the next day to the cleaner verified that they were still there.

Several months ago, I had a nagging feeling something needed to be picked up from the cleaners, so I put an item on my to-do list: phone cleaners. Months later, I still hadn't made a simple phone call.


My task “phone cleaners” was vague and thus not compelling. If I had written down “pick up pants from cleaners” when I dropped them off, the item would have been focused and actionable. Better if I set it with a deadline. Better yet if I set a lead time (start date), so I wouldn't see the task until it was time to act on it.

Tasks in a to-do system must be specifically phrased, with proper metadata, to induce action.


Without any system, I remembered what I needed to do, in adequate time.

(Counterargument: If I hadn't checked my suit a week in advance of the wedding, there wouldn't have been enough time.)


A task system should contain tasks that are non-routine, or otherwise non-memorable. It should not contain items that will come to your attention anyway (a full trash can is its own reminder).

triskelion embroidery
My pre-electronic handheld mapping tool was a Rand-McNally road atlas. 50 states, 12 provinces and Mexico if I ever needed it. I always made sure I had human-written directions for the last few streets. And, you know, the only problems I had were bad signs (and my poor ability to spot small signs while driving). It only took a few seconds to flip to the right page, and the detail maps were there, too. Of course, the detail for cities was limited, and often there was no detail map at all where I was headed. But it got me there.

My brother had Mapopolis on his Palm, which looked pretty useful (though the vector maps were hard to interpret without a scale) but I never used it enough to be sure -- certainly not enough to plunk down money for it.

When Google brought out Google Maps Mobile for Palm, I downloaded it right away. I was still using dialup, so it was painfully slow, and version 1.0 would go catatonic without a data connection. Later they fixed that, but it was never convenient enough to take time for -- I would fire it up when I was a passenger, but the near-real-time traffic data never guided us away from traffic jams.

Now I have Google Maps on my Palm Pre, and a 3G connection. My wife and I headed off to a wedding without directions to the site. This wedding was in Canada, where Sprint charges me 60 cents per minute, and data in proportion. GPS is a real help in using mapping programs, when your question is "how do I get there from HERE?"

So, I was looking up directions as we closed in on the border. Google Maps Now, we hoped to get there in time to stop at the hotel room to freshen up, so I loaded the route and switched to "airplane mode" (radios off).

We ran late and had to go directly to the site.
So, I had directions to a hotel, but not to the wedding site, and knew Sprint would charge me an arm and a leg to download it. We were short on options, so I turned the radio on, and -- no data service. Fortunately, we soon spotted a Provincial visitor info center, and asked the kind ladies there. So, we got there (and in time!) not with 21st century electronic maps, nor even 17th century paper maps, but Bronze-age stop-and-ask-the-locals. The people who are pushing web applications for mobile need to venture further afield, and learn how far we are from the seamless communication that demands.

I think it's time to buy another Rand McNally road atlas.

Knowledge and Handhelds
triskelion embroidery
I've been using handheld computers for over ten years now.   While I like gadgets as much as the next guy, I try to maintain an engineer's perspective: what does this allow people to do, what does it let them do better?  Much as we compare devices to each other, it's still not clear that handhelds are gaining ground on the 900-pound gorilla: paper and pencil.

For years, I kept a paper planner.  It traveled with me, unlike a wall calendar, and was a useful place to scrawl notes that I might need later that week or month. (I still use datebook applications this way - notes gracefully drift off into obscurity as they became obsolete.)  When my first Palm Pilot arrived,  I was thrilled!  I tend to lose myself in my work.  But the Palm's alarm drew me back to reality in time for meetings and appointments.  (And my wife is delighted—I remember her birthday now.)

I would also write to-do lists in the paper planner, but I was continually copying items to the current date.   The simple to-do application on my Palm III was not much better - I accumulated  a lot of items, but it was work to tease out which items I should work on next.  I haven't yet found an app that really does what I want: tell me what I can do, here and now, to advance various projects.

When Verizon replaced my Kyocera 7135 with a Treo 650, I gave the email application a try.  Irksome to configure (and slow to use over dialup, since Verizon's data rates were too high for me), I  plodded along, thinking "this must have some usefulness."  Many emails were of little value if you couldn't follow the URLs.  The Treo's web browser was not adequate for viewing most of the Web (which is largely the fault of the websites, but I was at the short end of that lever).

A colleague pointed me toward Michael Mace's blog post "The shape of the smartphone and mobile data markets" (  His market research for PalmSource revealed three distinct groups of users (and a big chunk of non-users).  It was an "aha!" moment -- that was why people were excited over capabilities I did not find particularly useful.  The group he calls "information-centric users" (a commenter suggested "knowledge-centric users", and that describes them better) describes my use to a T.  We use handheld devices to record knowledge, and retrieve it again -- a "backing store" for our brains.  While it's nice if our handheld can hold a whole reference manual (or access it online, these days), really we just want to store our notes in a handy place.  So the old PDA-without-a-phone was fine for us. But our needs were seemingly shuffled aside in the rush to pour more data through handhelds. 

So my blog will focus on handhelds and knowledge, and software and techniques that help us toward real-world understanding and making real-world decisions  (with excursions to any topic that grabs my fancy :-).  So I close my first post with the motto of Richard Wesley Hamming's book "Numerical Methods for Scientists and Engineers":

The purpose of computing is insight, not numbers.


Log in

No account? Create an account