a glob of nerdishness

January 17, 2012

The web is its own platform

written by natevw @ 1:57 am

Web apps are not cross-platform apps.

If the battle is whether Apple’s tools or HTML5 is the best way to write iPhone apps, whether Google’s frameworks or HTML5 is the best way to write Android apps, whether Windows Presentation Foundation or HTML5 is the best way to write Windows apps — my money’s on “native” in any and every case. Some developers aren’t as bothered by oppressive distribution policies as they are by the differences between platforms. They see JavaScript as the new Java — write once, run anywhere — and see generic-but-native-looking HTML5 apps as superior to the native apps they mimic.

The trouble is that users don’t value “consistent across platforms”. Why would they? They expect consistency within a platform. Developers who look at web apps as a “cross-platform solution” because of “HTML5″ do themselves a double disservice: not only do they devalue their own app by making it subtly inconsistent to native iPhone apps, they devalue the foundation they’ve built upon by muddying the web’s unique consistency.

Interestingly enough, it was Apple’s experiments that in large part sparked what we now call HTML5 — even before they tried to pitch web technologies as the iPhone SDK. Their 2004 introduction of Tiger’s new WebKit features, and their use in HTML-based dashboard widgets, was not uncontroversial — especially the debut of the <canvas> element. The controversy was not just about a browser adding this new element ahead of the standards process, but whether its nature fundamentally fit the web.

This wrestling may have been too quickly forgotten when the zeitgeist turned to The Web vs. Flash. Which one did we want in our pockets? Which one would we allow into the App Store? (We know who shot a rather rich mixture of fuel across that flame too!) Cute young <canvas> livened up that party, while the more web-ish SVG kept faithfully raising the children back in her own namespace.

Now APIs for 2-dimensional, and perhaps someday 3-onto-2-dimensional, drawing at such a low level as <canvas> provides is one of the most native-ish things a sandboxed web page could hope to ever do. But what distinguishes <canvas> from Flash? Very little as far as the topic at hand — the user experience may certainly benefit indirectly from an open standard implemented by competing vendors accessible from the same code that manipulates other document content, but its fundamental direct nature is one of a rectangular garden in which every website may try to plant its own reimplementation of superficial patterns and behaviour borrowed from hither and yon.

Like Flash, <canvas> is a useful medium for games. Games are their own platform. There are certain habits in game design; one of these patterns is that every game paints its own interaction. The Web, too, is its own platform!

Should the web platform shun games as one of its many contents? Certainly not! The web is a platform for content — perhaps the platform for content — and I’m beginning to suspect that that is exactly how a web *app* should look and behave as well. And not just any content, but linked content. Hyperlinked hypercontent for hyperconnected hyperhumans.

Raw pixels do have a place in that, as do video and audio and maps and molecule models.

You may recall me puzzling, in my early days of transition from desktop interfaces, at the attraction of building “apps” on what began as the physics paper platform. Just as physics is discovering what a tangled web may lie beneath their spherical cows of uniform density, it’s becoming harder and harder to ignore just how revolutionary “sharing within internationally dispersed teams” was even just for some academic information. And the web was never intended to be limited to a single format, so the idea of applying it — finding applications of it — building web apps for any task that can be turned into information, is not unfounded. Because of the web, any part of our lives that can be turned into content is limited only by the velocity of its light cone and the weight of its incoming links. It’s a powerful, powerful platform.

(The web’s other attraction is not unique to the web: any medium seems to gather a healthy school of builders who may not understand the first thing about foundations but are willing to keep bracing lumber together until they find an arrangement that’s worth tying a rope swing beneath. However, the web platform is actually especially conducive to this; how many of us don’t look back fondly at the first tree forts we built, that were our early homesteads in this great forest?)

So what is “native” to the web? Cloning every desktop and mobile operating system into a least common denominator cross-platform app framework has failed before, and it will fail again. I even see a very low return on investment trying to mimic the design patterns and interaction behaviours of only The Mac (or the iPad, for that matter) with the new tools HTML5 has given. The Macintosh interface was designed for specific hardware and a rather earlier period of transition. Not to mention, its modern implementation has much deeper consistencies and broader features than the different 80% each one of us relies on, which varies whether we’re keyboard people or mouse people, know Emacs meta shortcuts or copy/paste, have a multi-button scroll mouse or prefer a braille display. A web app’s best bet is not to pirate these patterns, like a camcorder snuck into a matinee, but to embrace the medium of hypercontent it’s been given.

That’s really what the web is: important information, flexibly found and presented, easily shareable via links. Since the web is not the world, people need specialized means of integration between their lives and whatever information they care to share by projecting it into existing and still-missing forms of content. Making that better is what web apps are.

July 2, 2011

Parting questions for PalmHP

written by natevw @ 2:51 pm

To be clear, I LIKE webOS and want it to succeed. :/
Steven Frank, 2011 July 1

One of my first memories of Palm’s new “New Palm” thing was when they were in the papers every month for making their first webOS device pretend to be an iPod. For USB syncing purposes. Clever way to get some free advertising from MacRumors, but you know what? I hate what iTunes has become and loved being able to just drag and drop MP3 files onto my Palm Pre 2.

Anyone wanna buy a Palm Pre 2?

I tried to love it, just like how for years I’d been trying to love the heavy, bulky reel mower I also bought online. It’s good for the ecosystem, it’s got some very very nice qualities designed into it…

I’ve decided I don’t like either the lawnmower or the smartphone. And while I don’t need perfect landscaping in an efficient amount of time or energy, with greater responsibility at work comes greater need to join the same technological century as the rest of the world. Even though I’ve owned a Palm Pre 2 since last December, it’s never felt okay nor have I had room for it on my person. Thus it was not until this week that I became a cellphone person.

More honestly: I am now an iPhone people. It seems like such a silly insignificant change to go from having an iPod touch always in my pocket to an iPhone always in my pocket, but for me it is a defeat.

When something fails I wanna know why. So here are some poignant, probing questions that will magically make Palm/HP awesome again:Good questions are hard please read the following rants instead:

  • what’s with the HP logo when my phone reboots? The original palm wordmark was a reserved, artistic logo. The new .(h|p)*…thing is a glowing gradient of a corporate wart that only calls all the nice things the Palm people have said about their acquisition into question.
  • for example. why is “http://h41112.www4.hp.com/promo/webos/us/en/smartphones/pre3.html” the URL for the Palm Pre 3 (and why is it down while I’m trying to gather info for this post?)
  • why is the Palm Pre 3 still only [no worky web page, no getty authoritative tech specs...] X millimeters “thin”-ner than the mainframe computer I am typing this on?
  • why does it still have a stupid slidey keyboard thing that I could never shake the feeling would remain in my pocket when I accidentally pulled out only the other half?
  • why, after I really really really wanted to love my Palm Pre 2 but couldn’t, am I now completely uninterested in any incremental non-improvement you’ve not really made at all since then? Since the very first Pre?!
  • I know HP used to be a great company and all, but can you please just license the poor operating system that still somehow shows the most spectacular promise of being potentially both usable and open, try taking it and licensing it to a company that might actually be capable of combining it with some decent hardware before it’s too late?
  • and also: I said “potentially spectacular” operating system, not “actually spectacular”. Pls to put a hard-driving perfectionist in charge of software. No more Mr. Nice People, otherwise only Mr. Nice People will be able to say Mr. Nice Things about the promising prototype-grade rubbish you keep. shipping.
  • Buying an iPhone was a defeat because now i’mStuck with iCloud instead of a Synergy plugin that could talk to data on a server I control. Now i’mStuck with iStore monopolies instead of your fun official instructions for owning the device I bought. Now i’mStuck with the same iPhone that everyone else and their soccer mothers all sport like a luxury item because a truly useful phone still is — and it’s cheaper than yours!

    But the saddest thing about it all is that this sticks me with an even better web browser — w00t! — than I got on a platform called webOS. So even while Apple keeps shoving native adults into a sandbox, they’ve also been pushing web technologies up towards where I suspect native vs. web will meet: the same amount of power, but on the latter: the freedom to innovate that only a real platform can provide.

    The web is the only tool developers have left. I feel defeated because it’s not thriving as or even on anyone else’s operating system and I don’t know what that means.

    May 7, 2010

    Multitouch usability

    written by natevw @ 9:15 pm

    An interesting comparison of the iPad to the Kindle with respect to accidental button pressing reminded me to share some observations and a link about the “naturalness” of multitouch gestures.

    I let Tobias hold my iPod touch occasionally. He’s at the age where flipping it back to front and back is plenty fun and his curiosity is mostly towards how it might taste. He’s not very interested in interacting with it, but I think he could be if it were a little closer to his normal experience.

    Tobias holding an iPod touch

    Of course, with the glass screen he feels no relevant tactile feedback. So there’s a significant abstraction right up front. Furthermore, since my iPod is the first model, it doesn’t have a speaker for regular apps to use. So he rarely hears audio feedback. But the issue that I noticed most is that, typically, he doesn’t even get to see any visual feedback. The touch gesture he is paying attention to simply doesn’t work.

    Since Tobias can’t “palm” the iPod (he just turned ten months old) he’s typically got one thumb smeared across the screen just to hold it. In this situation, most software just ignores the actual touching of his free hand [okay, it's more like slapping, but...]. Software that does handle multitouch often fills its corners with hot areas that activate settings instead, which is even less interesting than interface he might otherwise start figuring out.

    I don’t entirely fault the software; most of it is designed well for adults or at least children who can talk and follow verbal instructions. It’s just been food for thought, making me even more embarrassed that Sesamouse (my utility for enabling real multitouch gestures on the desktop via a Magic Mouse) doesn’t even recognize gestures when they start in the top part of the mouse.

    Multitouch is still a new field to most developers, and gesture recognition is not without challenge. I suspect that as more designers and more programmers are given more time to use and think about handling multiple fingers through multiple frames, multitouch software will become more sophisticated. Not in the “draw a squiggle with your index finger while tapping your pinky up and down” sense (as even many simpler gestures are neither intuitive nor discoverable) but in the “it just works” sense.

    October 8, 2007

    The Purpose Driven CAPTCHA

    written by natevw @ 8:22 pm

    So I was reading the BBC the other day and spotted a confusing title about book preserve spam weapons or something. Turns out there’s a respectable CAPTCHA system making the rounds, and it’s even cool enough for twitter. (You can see if I’m cool enough for twitter via this very link.)

    August 22, 2007

    Minimum fuss, powerful ripping with Max

    written by natevw @ 8:11 pm

    This evening CDex, my long-time Windows ripping friend, turned fiend and messed up my settings. Unable to decide whether Stereo or J-Stereo, MPEG version I, II or II.5, and which VBR Method was best, I decided I was ready to stop using Windows to rip CDs. While iTunes does a good job at ripping, it uses a different filename and folder structure than all my previously ripped CDs.

    I found Max, and I like it. It’s free, and has a good blend of power packed into a (mostly) intuitive interface. You can edit metadata on an album or track basis (or automatically fetch it from MusicBrainz), drag in artwork (or have it grab from Amazon) and easily choose presets for (or customize) a large number of output encoders. While not perfect, it’s a great example of a heavily-customizable, workaday utility that still feels right on a Macintosh.

    August 7, 2007

    Apple’s research project

    written by natevw @ 10:58 am

    This from MacWorld’s coverage of today’s Apple announcements:

    Will the iPhone’s “multitouch” features filter down to the Mac eventually? Jobs said that it doesn’t make a lot of sense in the Mac. “I would classify that as a research project at present,” he added.

    There’s been some talk that features like Cover Flow (and perhaps the new skimming, though I’m still downloading the demo) could be a good bridge into multitouch on the desktop. A few commenters on this Coverflow article point this out, for one example.

    I’ve been mulling over the next “interface evolution” article and hope to discuss desktop multitouch in more detail (sneak peek: it’s not going to replace the keyboard). Still, I can see Apple keeping multitouch as a potential addition to future versions of Mac OS X, growing out of features like Coverflow, skimming and resolution independence.

    June 11, 2007

    Leopard learner or Vista victim?

    written by natevw @ 12:52 pm

    There is another reason for Apple to port Safari to Windows. Come October, consumers who are still using Windows XP will have two options: clunk another PC under the desk and start learning Vista’s idiosynchracies, or set a sharp looking Mac on top and learn OS X. The trouble is, people remember how hard it was to learn “computers” the first time and so are hesitant to try their luck a second time. Different may mean better, and “Think different” might have made Mac users feel good, but to most people different just means unfamiliar.

    Beyond e-mail, digital photos, movies, and music, users are spending most of their voluntary “computer time” on the Web. With iTunes, Apple already has the best music and movie player on Windows. If Apple can get people to use Safari, they eliminate one more unfamiliarity. What’s left? After porting two full-featured applications, it should be a cinch to make Mail.app work on the Windows side. If users know how all their music, their websites and their e-mail will work in OS X, there will be no good reason to choose Vista over Leopard. Looking through files with Finder is just like using iTunes, iPhoto is the true Picasa, and just about everything else is spectacularly better. That one last Windows app you can’t live without might not work in Vista, but it will run in Parallels Classic Coherence mode.

    Today’s Leopard demonstration didn’t shatter the world with a multitouch, mind-activated six-dimensional spatial zoom interface. It was one small step for Mac, but it will encourage a giant leap for many potential switchers. If the biggest difference between Windows and OS X is that Leopard offers a friendly, familiar and amazingly rich operating system, while Vista is Apple’s previous operating system crammed into a Start menu and a bunch of annoying dialogs….that’s not such a bad market for Apple developers to be in.

    Edit: Brian Christiansen re¢ently made this argument more succintly: “Pretty soon, when you’re running four or five Apple apps a day, using your iPod and/or iPhone… when it comes time to buy a new computer, suddenly running the Apple OS behind your Apple apps isn’t so foreign. [...] If you’ve been using iTunes for years and sit down on a Mac for the first time, everything is going to be eerily intuitive.”

    May 30, 2007

    Microsoft Surface takes a step forward

    written by natevw @ 2:16 pm

    First, there were Jeff Han’s demos. Then the iPhone. Then the rumors. Now, Microsoft’s contribution to the party has surfaced, and it’s called: Surface. Welcome to the social.

    The demo videos on both Microsoft’s site and Popular Mechanic’s Microsoft Surface video and article leave one a little ho-hum at first — it’s strange how pushing pictures around with two fingers already looks normal. The interactions shown are surprisingly minimalistic for the most part, which is a bit odd for Redmond. Yet the technology goes beyond multi-touch. Cameras and phones can be used in a whole new way. In the demos, pictures are copied off a camera without any wires, wizards, or self-congratulatory popups about “New Device Found, click me to resume your work”! Just physically plop your device onto the screen, and start dragging things in and out of the device itself.

    That is an intuitive simplicity that Apple cannot afford to ignore. Of course, Microsoft’s device is starting life as a posh vending machine, and by the time Windows Vista Superb Plus Zurface Edition comes out the user interactions might start taking on their familiar Microsoft-style tackiness. Yet how long until users are ready to ditch the WIMP style interfaces of the past decades for a new upstart’s design? Where could a company take ripening technologies like multitouch screens, wireless peripherals, hypermedia influenced semantics and a touch of Raskin-esque zooming if they weren’t chained down by last year’s model?

    Update: Walt Mossberg asks Steve and Bill similar questions throughout his interview, especially addressed in Part 5 of 7.

    May 19, 2007


    written by natevw @ 1:38 pm

    Scratch, designed at MIT, has been making a splash in major news outlets lately. The Scratch project is basically Xcode meets YouTube for games. Sounds strange, but it’s a combination of a desktop-based integrated development environment and a community-based game sharing site. In order to pull this off, the designers developed a programming language that succeeds at being both simple and powerful.

    When I saw the headline in the middle on BBC News, I was instantly suspicious:

    Scratch front page BBC News

    The picture was an instant reminder of Lego Programming hype. (Interesting aside: if you google lego block programming, the BBC article takes second place to that very post!) The article itself is less sensational, toning the headline down to “Free tool offers ‘easy’ coding” and revealing that it is actually a desktop application that allows creation of games.

    Trying it out

    Feeling that this had all been attempted before, I didn’t think much more of it until I got a note from Hannah, who had also seen the article: “Would this help me understand you?” I guess it’s worth a shot! She downloaded it, and together we figured out how to get the thing started. The cryptic “Open” dialog box was a bit rough, but after we figured out we needed to select the Scratch.image file, she was on her way.

    As I watched her learn the “language”, I became impressed with its enlightened design. Scripts are indeed built from graphical pieces, but the process is much more powerful than a mindless succession of commands and much less tacky than drawing flowchart lines. The user can nest commands into control structures and insert test questions into conditionals. Like an open-ended puzzle, the shapes and colors of these “building blocks” give subtle clues as to what pieces may be missing.

    Impressive simplifications

    Programming in Scratch is a completely interactive affair. The user can attach a number of independent scripts to graphical sprites. Each script is started by one of many available triggers. These triggers are always active, despite the presence of a green flag (just another trigger option) and a stop sign (just an emergency kill switch) in the interface. The interactivity goes deep — there isn’t even an “initial stage”. What the user drags around with the mouse and what gets moved via a script are on equal footing. This is a daring move, forcing the explicit scene initialization in some cases, but greatly simplifying the user model. This is just one of many well-executed simplifications. Variables are also made accessible to beginners, being visible by default and having at most two scope options.

    As mentioned before, scripts are attached directly to sprites, meaning that in lieu of a master “puppeteer” script, the sprites are essentially autonomous. All scripts run concurrently upon being triggered. This is the coolest simplification, and also means parallelization becomes an integral part of this beginner’s programming language! Concurrency is heavy wizardry when tacked into many programming models, but is very intuitive in the context of sprite objects. The cat has ideas and the mouse has its own. While shared variables can be used to communicate between scripts (and are an easy concept for beginners), there is also a global message broadcast system. Scripts can broadcast messages, asynchronously or synchronously, which are received by all scripts that are triggered by that particular message.

    Wide audience

    Scratch doesn’t just encourage algorithmic thinking with the usual control structure and variable concepts. It also teaches important parallelizing patterns that “real” programmers typically encounter only in still-esoteric languages. Scratch can help my wife understand my field, and I hope it can be effective for younger learners. (With hardly any clues from me, Hannah made a reasonably involved Island Rescue game after only two other experiments.) The publicity is justified. What came as further surprise is that it can inspire my programming patterns and design strategies too! Well done, MIT!

    January 27, 2007

    Multitouch looks great

    written by natevw @ 4:33 pm

    I think I found this through one of those link-swamping sites, so you may well have seen this already. But just in case not, you should see an even cooler demo of multitouch than the iPhone keynote. Forget “the pinch” and 2-years of extra phone bills — Jef Han of New York University did a TEDTalk on mulitouch available for view or download (ed. note: TED=Technology, Entertainment & Design shall save us, Talk=here’s how). That talk shows and explains most, but not all, of the demos you can see in another video on the NYU project homepage, where you can learn more about the technology itself. (I like the photo lightbox best, though the lavalamp is cool too.)

    Next Page »