Turning web pages into standalone desktop applications for better performance

It’s ironic. The promise of running full browser-based desktop-like applications has nearly been fulfilled using web technologies like AJAX, CSS, .NET, etc. However, it has led to some unintended consequences. Browsers were just not really designed to display and run all of the dynamic pages that are so common today. I would argue that  much of the real-time dynamic web apps are based on hacks. The language and tools are just not very standard, robust, or well thought out. Web developers live in a world of incompatible browsers, unknown application environment, vague standards, poor memory management, extensions, etc.

Running a web app as a standalone desktop application doesn’t magically solve all of these issues, but it can help to provide a much nicer user experience. I find the apps are snappier and much  more responsive. I’m experiencing that right now as I type this into my WordPress blog posting app. There is probably a lot less battling over application resources, including demands from extensions and I have tons of those. Hell, even tabs have added to the chaos. Running web applications, like gMail, Google Reader, or Facebook like they were standalone applications has some very compelling benefits and is drop-dead simple to do as you will soon see.

Tearing an application away from the browser UI lets it run as its own system process and moves much of the full browser’s overhead crap out of the way. I find that the single processes seem to manage memory better too. I often had Firefox bulging at its seams after keeping it running just overnight. Browser memory management is abysmal and I’m sure sloppy page coding doesn’t help (I’m as guilty as anyone. object=null anyone? ;-). Plus, running a lot of extensions can exacerbate the problem. I suppose it’s not too surprising if you think about all of the junk that goes into a browser; the rendering of the page is almost secondary.

Besides the memory issues, I also found that the typing buffer would ebb and flow causing irritating pausing when I typed even just a few words. I found that this basically disappears when running the pages as desktop apps.

Both Firefox and Chrome have the ability to turn a web page into a standalone application. For Firefox, you need to add the Prism extension. After installing, navigate to the web page. From the Tools menu, choose Convert Website to Application.

A dialog will appear where you can set a few options. The Show navigation bar option will display a toolbar with the basic navigation buttons, plus display the URL. The Show status messages and progress option puts a progress bar at the bottom. The Enable navigation keys option allows keyboard shortcuts for page navigation. The Display in the notification area option just puts an icon in the system tray.

For the most part, I only find the Enable navigation keys option mandatory; the other options just add clutter. When navigation keys are enabled, you can use Alt+Left/Right arrow to navigate backward/forward. Most browsers have a ton of keyboard shortcuts (e.g., Firefox and Chrome). F5 to reload is a good shortcut to remember.

I like to save the shortcut to the Quick Launch Bar, but you can also save to your Desktop and/or Start Menu.

For Chrome, first navigate to the desired page. To the right of the address box there is an icon that looks like a page with a down arrow next to it. Click it and choose Create Application Shortcuts. A dialog will appear where you can set where you want the shortcut placed.

That’s it! As simple as it can get. Of course, you will end up with a lot more items on your taskbar, but you’ll have fewer browser tabs. You also get much more screen real estate since the UI window is barebones and doesn’t have all the clutter of the standard browser. You might miss some of your extensions though, like Flashblock and Adblock. Oh well, ya can’t have everything!

Note that links that open in new windows will open normally in the matching browser (i.e., Firefox or Chrome).

No sign of anything similar for IE, Safari, or Opera, but Mac users should be able to find Prism for Mac.

NOTE: What’s kinda interesting is that you can figure out which pages are the true memory hogs since each runs as a single process. Let the apps run overnight and open up Windows Task Manager to see the real pigs. You’ll need to kill the process and see which window goes away, cuz the process (image) names will all be the same for the same browser engine.

The worst offender? gMail. Note that the increase was pretty small, less than 10MB. A relatively distant second was Facebook. Google Reader was actually pretty good, surprisingly. Full Firefox running without any pages open had the biggest increase. No doubt owing to it’s infamous memory leaks and one or more of my extensions. I’ve heard that Forecastfox is notorious, but hell, that’s why I’ve got 4GB in this baby, right?

“Turning Web Apps into Desktop Programs”, MaximumPC, September 2009
“Prism or Chrome?”, http://www.xul.fr/mozilla/prism-or-chrome.html

FireFTP is one hot browser-based FTP client

With the maturing of web technologies like Flash and AJAX, web apps are suplanting the need for desktop apps more and more. PC Mag’s March issue recommended the Firefox extension FireFTP on their Best Free Software list so I decided to check it out.

Well, it has all of the features I need including SFTP support, so I’m going to start using it for my remote FTP needs. Previously I’ve been using a desktop app CoreFTP. (I’ll still stick with TotalCommander for a lot of stuff since I like the integration into that tried and true file manager.) Check out this gem if you do a lot of FTPing.

Read It Later Firefox extension is wonderful

I often come across websites that I want to read later, but they don’t truly warrant adding formal bookmark. I used to use a special Temp folder for these, but it tended to grow and grow, and was a pain to maintain. Well, I chanced upon this cool Firefox extension called Read It Later (RIT). It’s basic function is to act as a temporary storage place for these one-time URLs. It sets up a nice pop-up window that not only lists the pages, but shows you the age. To add/remove to/from the list, you merely click the checkmark icon that appears in the address bar.

Even more useful, at least for me, is the integration with Google Reader. The same checkmark icon appears at the top of each entry title–right next to the star.

A Read It Later folder is also created in the standard FF bookmarks. Since I use Foxmarks, these are automatically synced to my other PCs; however, RIT also has this feature built-in if you want. It’s got a lot of other cool features and is definitely something you should check out.

Disabling Forecastbar Enhanced Firefox extension fixed memory leak

I’ve always had a severe memory leak issue with Firefox. FF will slowly grab more and more memory often hitting 1/2 GB with only 3-4 tabs open.

I use a ton of extensions and I read a couple sites where they listed off a bunch that were known to contribute to memory leaks. For whatever reason I zeroed in on Forecastbar Enhanced as a likely suspect. Well, low and behold, it seems to have fixed a major contributor to my problem. There are probably others and I’m disabling the ones that I can live without.

I’m sort of suspecting that it could be a combination of extensions because I use Forecastbar at work and it doesn’t eat away memory like at home. Oh well, I guess ya can’t argue with success.

Open Google Chrome links in Firefox…kinda

I like opening Gmail and Google Reader in Google Chrome (GC) because it seems to manage memory much nicer. Leaving those sites open in Firefox often results in hundreds of megabytes of RAM used. The problem is I’d like to open GC links in Firefox. I’ve got too many FF extensions that make life so much easier.

Right now I’m using the Open in Google Chrome FF extension so that these two sites open up GC. However, if I click a link on either, those obviously will continue to open up in GC. Note that the extension doesn’t open the link in a FF tab, but rather it runs the full GC app. Too bad someone doesn’t make a FF extension like IE Tab.

Anyways, I’ve discovered a workaround that sort of allows you to open a GC link in FF. First, you have to have both running. Then, drag the link to the Windows taskbar over the Firefox task and continue to hold your mouse button down. The Firefox window will come to the front and you just drop the link in the address bar.Note how the cursor changes as you move over FF.

I was hoping I could drop it over the task, but that doesn’t work. Note that you can drop the link over the browser window, but it replaces the existing URL. (Note that I have FF set to up new pages in a new tab.)

Save Firefox bookmarks to proper folder with Add Bookmark Here extension

Whenever I used to save bookmarks, I always had to first look at my bookmark hierarchy and figure out the best place to put the bookmark. Then, I could go ahead and save the bookmark. I stumbled onto this cool extension called Add Bookmark Here. It adds a menu item to the top of the normal Bookmarks menu or submenu that lets you add the current page to the folder being displayed in the Bookmarks menu. What a time saver!

While I’m on the subject of bookmarking, I’ve given up on Google bookmarks. I just never liked the lack of true support for hierarchy. Sure the extensions like Google Bookmark Button allow it, but it’s essentially a hack. The Foxmarks Bookmark Synchronizer extension is way better and you can bring your bookmarks up on the Internet if you need access to them remotely, like on your phone. Love it! Note that it’s even useful if you aren’t syncing bookmarks between multiple computers due to the Internet access. HIGHLY recommended.