How web applications will get to the desktop

About a year and a half ago, I made a post entitled "Why web apps will move offline". All this time later, I've come to realize that we're in for much bigger and more interesting changes than just offline web apps.

It's inevitable that web applications will move offline, and we're already starting to see some examples (Google Reader using Google Gears, for instance), but I think that in the next year or two, we'll see something even more interesting: web apps that run in the browser with real desktop functionality. I'll call these "webtop" applications.

The first thing webtop applications need is secure local storage. Google Gears is addressing that with what I believe is a very interesting solution: a browser extension with SQLite embedded to give web application developers the ability to store data in a local database. Google Gears also has a local server bundled for caching assets offline, and a way to spawn additional threads in JavaScript to make web applications more responsive.

The next thing you need is desktop APIs, or maybe I should say OS APIs. We got our first glimpse of web applications using OS APIs at WWDC when Steve Jobs revealed how devleopers will extend the iPhone: web applications which will load into Safari. The iPhone version of Safari has APIs for things like making phone calls. These applications will run in some kind of a secure sandbox which will keep them isolated so that, in theory, they can't damange your phone or corrupt other applications.

So what's the next step? I see webtop applications moving forward in two different directions:

  1. I think there will be additional browser extensions which will add desktop functionality like drag and drop, system notifications, and maybe even limited file system access to browsers. I also think it's possible that Apple will add OS APIs to the desktop version of Safari, and now that Safari is available for Windows, webtop applications will be able to run cross-platform. (Apple has already done it on the iPhone -- why not on the desktop?)
  2. The Adobe Integrated Runtime (AIR) is another alternative (I'm a Product Manager on the AIR team at Adobe, but I'll try to be objective). AIR lets you build desktop applications using web application technologies like Flash, Flex, HTML, Ajax, etc. Rather than loading the applications from the web, however, you install them, more like traditional desktop applications, which gives them more desktop privelages than you would probably want to give something that was loaded from a web server. AIR applications bridge the gap between the desktop and the web by allowing easy access to remote services, and by providing a secure sandbox in which remote content can run in.

Not to be outdone, I'm sure Microsoft will join the party with additional Silverlight functionality which means some of the biggest software comapnies in the world (Google, Adobe, Apple, and Microsoft) will all be trying to bring web applciations to the desktop. Get ready for web to take a huge step forward.

Science fiction becomes reality: the Encyclopedia of Life

While getting caught up on news this morning, I came across one of the most amazing projects I have ever seen: The Encyclopedia of Life. You really need to check out the site for yourself (and namely the video on the home page) to get a full sense of what this project is about, but in short, it is an attempt to create a web page for each of the 1.8 million named species on the planet.

As I watched the video this morning, I was dumbfounded by both the boldness of the EOL project, and by how unbelievably important it is. Obviously inspired by Wikipedia (one of my favorite sites), I hope it enjoys the same level of media attention, participation, and collaboration.

I really feel like this is an extraordinary time to be alive, and to be working with computers and information technology. Concepts which were confined to the imaginations of science fiction writers are now becoming a reality. I believe Wikipedia was, at least in part, inspired by the Encyclopedia Galactica from Isaac Asimov's novel Foundation (ironically, searching for "foundation novel" on Google returns a link to Wikipedia as the first result), and Second Life (another project which I believe will prove to be revolutionary) was obviously inspired by the Metaverse create by Neal Stephenson in Snow Crash. Both Wikipedia and Second Life are projects which, at one time, seemed entirely impossible, yet are both now easily accessible and freely available to anyone with a PC and an internet connection.

I can't write about amazing information organization projects and technologies and not mention Google. I don't know if Larry Page and Sergey Brin were inspired by any works of science fiction, but searching on Google has always reminded me of Captain Jean-Luc Picard conducting research by talking to the both omnipresent and omnipotent "Computer", especially now that you can interact with Google over the phone. Whether you like Google as a company or not, you can't deny that they have changed the world with their mission of organizing its information.

I will be keeping a very close eye on the Encyclopedia of Life project, and even contributing where I can.

The new software model: less is more

I've noticed an interesting pattern in software recently which, when analyzed, shows just how much opportunity there actually is out there right now:

Someone writes a piece of software to solve a particular problem.

  1. If it's successful, several competing products are released.
  2. Driven by competition, each version becomes more and more complex and feature rich. Competition tends to be based primarily on features rather than price.
  3. Eventually one emerges as the winner. Nobody else bothers trying to compete anymore because the idea of implementing so many features is daunting. The victor becomes a de facto standard, and often makes obscene amounts of money.
  4. Someone eventually gets tired of being locked into a single overly complex solution, and creates a simple and disruptive alternative. It's usually cheap or free, and it sparks an entirely new wave of innovation.

Several things may happen next, including:

  • A lot of internal memos get sent around.
  • A lot of people lose their jobs or quit.
  • A lot of other people make a lot of money.
  • We start using terms like "2.0" and "paradigm shift".

I'm not a venture capitalist, or a rich and successful entrepreneur, but for what it's worth, here's my advice:

  • If you're passionate about something, don't be afraid to reinvent it. A successful idea doesn't have to be an entirely new idea. It just has to solve a specific problem, and it has to be simple.
  • Solve your own problems, and you'll probably end up solving other peoples' problems, too. If you find a particular piece of software too complicate, bloated, buggy, expensive, etc., more than likely, so do thousands of others.
  • Start simple. Solve one problem, and solve it very efficiently and effectively. Don't worry about adding all the other features. That happens once you're successful and competitors start closing in.
  • If you're the one on top and you want to stay that way, try unseating yourself before someone else does it. Hire or assemble a small agile team of visionaries, give them some space, and challenge them with toppling you. If they're smart, and if they can truly distance themselves from your existing corporate culture, they will tap into the inevitable pent up frustration over your product and create something potentially disruptive, revolutionary, and probably alarmingly simple. You might as well -- chances are, someone else out there is already doing the exact same thing.

How to recover a corrupt Parallels virtual machine

Parallels is a very impressive piece of software, but it's not quite ready for prime time. In addition to using it on two different computers myself, I know many other people who use it on a daily basis, and although it's by far the best way to run multiple operating systems on an Intel Mac, it's also full of problems. If you use Parallels on a regular basis on different networks, you are likely already familiar with the various networking and VPN quirks, and if you have been using it for long enough, you might have also discovered that virtual machines will occasionally become corrupt and refuse to boot. And if you have ever tried to get free email support from Parallels, then you have almost certainly discovered that they are unable to keep up with demand. Again, I want to stress that Parallels is a remarkable piece of software, and it gets better with each update, however if you're using it for mission-critical operations, be sure to make frequent backups.

But if you haven't been backing up your data, and you've run into the dreaded corrupt virtual machine problem, there is actually a relatively painless way to recover your data:

  1. Create a new VM. Configure it any way you want, and get it to the point where you are ready to install the guest OS (presumably Windows).
  2. Before installing the guest OS, edit the VM by clicking on the edit button, then click "Add..." beneath the property table.
  3. Click "Next", then select "Hard Disk", then "Use an existing hard disk image".
  4. Browse to your previous virtual hard disk (the one with the data you want to recover) and choose "Finish".
  5. Install the guest OS. Be careful not to install it on the virtual hard disk that you are trying to recover.
  6. When you boot into your new installation of Windows, open Explorer, and notice that your old virtual hard disk is mounted and that all your old data is accessible.

I've had enough problems with Parallels that I've stopped using it on a daily basis and have gone back to trying to get by in a Windows-centric world using nothing but OS X. I haven't given up on Parallels entirely, however, and with every update, I give it a fresh chance since I still believe that if you absolutely have to run Windows, the best way to run it is as a Mac app.

Widget Madness

Everyone has widgets these days. Or gadgets. Small, lightweight software utilities that do one thing, and one thing only. They try to stay out of your way until you need them, and then they are close at hand and ready to serve. Stock quotes, weather reports, words of the day, dictionaries, notepads. Widgets are the tapas of the software world.

Off the top of my head, I can think of about eight different widget implementations:

In general, I like widgets. At least in theory. They make a lot of sense when you think about them. The problem is actually remembering to use them. As I see it, these are the main problems with widgets:

Continue reading "Widget Madness" »