Delivering Rich Web-based Applications with MozillaWednesday December 4th, 2002Andy Cavatorta writes: "Mozilla can be used to deliver rich stand-alone applications as easily as you can deliver documents. And I brought proof! "My example is a client program that generates and manages a rich GUI, processes data, and communicates with the server in the background. There's even some server push and snap-in code libraries. And it's all W3C compliant. Proof of the power of the lizard!" Andy's application is an email client called Nervemail which runs entirely in a browser. It allows you to set up multiple POP3 mail accounts and then access your messages through a Web-based GUI. A demo is available on the site. If you decide to set up an account, remember that the application is still in the alpha stage of development, so don't rely on it for anything important. You'll probably want to check the 'leave mail on server' box for each of your POP3 accounts (in Edit > Options) so that you can still collect your mail with your regular email client. Nice, very nice. Assuming that applications of this type take off, is there a mechanism of associating the mailto: protocol to the particular web apps? Don't know how up to date it is these days, but in the past I've used Protozilla http://protozilla.mozdev.org/ to associate these protocols (such as mailto:) with various offline and web-based apps. Could someone document how to start such a task ? Including programming examples. In a _basic_ sort of way Could someone document how to start such a task ? Including programming examples. In a _basic_ sort of way I prefer Mozilla Mail & Newsgroups, is less ugly than Nervemail. Amazing. The page says "it's still in the alpha stages of development". You go and compare it to a product that's been in development for 4 years and has shipped 3 stable releases. Why? I'm just taking a stab looking at the sophistacation of this program that it's probably skinnable. Tha's right, seeing that it's possible is cool, but having some starting points/howtos would be even better. Hi folks, Thanks for taking the time to look at this. I've gotten a lot of helpful feedback email. I think the end product for Nervemail will be an open codebase for delivering stand-alone programs that don't just look like desktop apps, but actually *work* like them. By that I mean that all of the program logic is in the client and the server is only used as data storage and a network proxy. So it will be a bunch of open libraries and the accompanying documentation. But first I've got to get it out of the Alpha phase :) thanks again, all Well very impressing. Though some more technical specs with particular regard to Mozilla tecnologies used would be welcomed. Also it'll be nice to see Mozilla acknowleged as a platform. I do understand that these kind of information has any interest for the average user, but just put them in separate pages for the pleasure of people willing to dig a bit more. Thanks I am trying to launch nervemail using the demo login under linux, with a recent nightly, but nothing whatsoever happens Yikes. I expected traffic but not this much. My new server should be arrriving today; but apparently that's a day late. The current Nervemail server is pinned at 100% CPU useage and has been for several hours. That's probably why some of you can't get in. I can't even get in right now. You can try back later when the feeding frenzy is over, though. Sorry for the inconvenience. Just think of what would have happened if people posted this on Slashdot! /me quietly runs of to post on Slashdot and laughs evil laugh... (Kidding) "And it's all W3C compliant." -- did I detect a "moz-radius" on those TDs ;-) ? Aside from that, this seems like tremendous software. And it could be one of the first uses of Mozilla as an application platform outside of Mozilla and Mozdev that I've used. I don't feel like I'm using a browser for the first time in forever. Question #1, if this is based on Mozilla as a platform, how does it easily translate to run on IE (for instance)? Question #2, if it's Mozilla as a platform will it run with the project that is like a stub of Mozilla designed to run things as Mozilla without requiring you install the browers (I forget the name of the project)? I think that's about all I have for now. As I understand it, this is a JavaScript application that runs inside Mozilla. It could probably be made to run inside any browser with a sufficiently sophisticated JavaScript engine. The Mozilla platform here is really Mozilla as powerful layout and JS engines. I could be totally wrong but that's how I see it. The thing that makes this so special, as I see it, is that it does so much of the work on the client (Mozilla + the nervemail JS code) rather than on the server like most current web apps. --Asa This doesn't use any of the fancy Mozilla-as-a-platform tools. I actually didn't know about them when I started this project way back when with Moz 0.9. This uses Gecko and JS. I chose Mozilla over IE because it broadly supports the juicy parts of the W3C DOM that make this kind of thing possible. And being able to work with the W3C specs as my main documentation was a nice feeling. I wanted to build a client that could be moved easily from server to server. Okay, you caught me. I did use -moz-radius and -moz-opacity too. But that's in no way part of what makes this work. It's just a nice decoration. If those styles were ignored, the whole app would still work the same way. It would just look pointier. :) I was kidding about the Moz-radius. In fact I was just jealous of the rounded edges and wanted to see how to do that. Can we urge the W3C to consider some kind of radius here? :-) radius is actually in the working draft for CSS3. I'd prefer to push for the ability to write text vertically (take it and rotate it 90degs clockwise/counter clockwise) as it would allow the ability to put tabs on the side of something rather than just the top and bottom and still have it look good. "did I detect a "moz-radius" on those TDs ;-) ?" IIRC, vendor-specific CSS is allowed by the standards, as long as the properties are prefixed by the correct vendor token (so "-moz-" in this case). Alex First of all I'd like to say that Nervemail is pretty nice... But things like these have been available for IE since 98. It is not until lately that Mozilla has become good enough for things like these to become a reality. Similar applications: Muse.net (MP3 media manager with clients for Moz and IE) HalfBrain (IE4+, bought by Blox.com, Spread sheet application, discontinued) OddPost.com (IE5+) WebOS.com (IE5+, discontinued) Outlook look alike proof of concept by Ed Bolzer (IE5+, http://www.stedy.com/ieWidgets/webOutlook/webOutlook.htm) probably tons more but you get the point erik Wow, this forum totally screws up formatting... Link to Ed Boltzer's site http : // www . stedy . com, http://www.stedy.com erik Well, as far as I can tell all these pages just use normal HTML with CSS stylings and have all the real work done on the server, i.e. sending completely new pages for every datasource access. This is nothing new really, I bet with a little bit work even NS 4.x could have done this. Nervemail on the other hand just sends the data itself to the client, which then dynamically constructs a HTML (or in this case XUL I think) page on it's own. Just like all those apps/environments I previously mentiopned did. The only difference is that previously a lot of IE specific technology was needed. Now a lot of Mozilla specific technologies are. I still long for the day when things like these can be done without any browser dependencies. But I guess that is never going to happen because the W3C does not target this when designing the standards. " I still long for the day when things like these can be done without any browser dependencies. But I guess that is never going to happen because the W3C does not target this when designing the standards." Eric, you obviously haven't looked closely at this technology. The reason the author chose Mozilla was because of Mozilla's world-beating support for Web standards like the W3C DOM and ECMAScript (JavaScript). This client sounds far closer to your ideal than any of the apps you mentioned. When the other browsers support the standards as well as Mozilla then maybe your dream will be realized. --Asa I do have looked closely at this. If you were into this scene you would know that :-) I love Mozilla and I love the W3C DOM but like previously stated the standards are not targeted at web applications. They are targeted at generic XML documents (maybe rightly so). A simple case is that there is no way to replace offset* with W3C DOM methods. (Another case is the scroll model.) There are tons of cases where features of modern web browser cannot be achieved using standards only. erik This is getting anoying. How do I get a paragraph in this message board? Somehow it insists on removing all new line characters. Erik. You have to like it or anything. But you're obviously missing the point about how this works. It's not a DHTML page like you seem to think. It's a stand-alone application that's built upon Moz's ass-kicking support of standards. Look at the "features" page on the site and you will see what it is. And I chose Mozilla *because* of its standards support - after tossing out IE for it's lack of same. I used the W3C specs as my reference while building this - and the match was perfect. How much closer to standards can you get? The only Moz-specific stuff I used was for decoration: curved edges and transparency in the menus. Nice, though it would be interesting exactly why this does not work in IE at the moment, what in the Mozillas DOM support and Javascript support have you used that is not available in IE 6? That would ba a long list. But the first two things that come to mind are: 1. An event model that really works. The W3C's event model (used in Moz) is nimble, powerful, accessable, and actually straightforward and usable. And in the few spots where there is ambiguity in the W3C spec, Moz implementations fill in the gaps with with practical and consistent solutions. And addEventListener() is just *so* much more nimble than onmouseover etc.. 2. Support for extention of pretty much any DOM element as a programming object by adding custom methods and properties. IE does that a wee bit. Moz does it very thoroughly. And you can just imagine what THAT opens up! 3. While both browsers have their crash bugs, Moz is the one that holds up under serious scripting and memory loads. I've occasionally plucked widgets out of this codebase to use in apps I make for clients. To make things work in IE takes a lot more code and time. And the code gets filled up with weird hacks to get around IE's limitations. And it's a sad thing to have to fill clean code with hacks. I'd like to port Nervemail to IE someday. But I never would have had the fortitude to build the prototype in IE with just JS and XHTML. The hacks and cruft would totally obscure the architecture, and a clean structure would not have emerged. It's like, you could probably write a Java implementation made out of DOS batch files. And you could probably build the Eiffel Tower with bars of wet soap if worked reeeeaally hard. But you wouldn't do it. Remember that MS invested so much in taking over the browser market to *prevent* the Web from replacing the OS. Like many other people, the application-in-a-browser idea grabbed me back in '96 when javascript shipped with Navigator 2.0. After all these years, Moz makes it possible. And it's even standard! To be honest I'm shocked. Is it possible to load "DOM code" with a single click into Mozilla and this code could then read my files, send them to the network, and do other unwanted things? I trust Mozilla to a certain degree because I somewhat know -- at least I hope -- what local information is accessed and what is sent to the network. But if it's so simple to extend the browser to an arbitrary application, maybe even without a notice to the user, I'm really concerned. Is there a "sandbox" for Mozilla like e.g. for JAVA? The "proof of the power of the lizard" is really impressive, though. Thomas Nervemail can't see your local filesystem. So there's no security concern. The most it does is some fancy stuff with sticking little XML docs into cookies to report client errors back to the server. I've planned for Nervemail to have filesystem access someday - so it can run offline and store mail data and libraries on the client. But the user would have to grant permission to a signed script. There isn't any sneaky way to do it. So you're safe. To be honest I'm shocked. Is it possible to load "DOM code" with a single click into Mozilla and this code could then read my files, send them to the network, and do other unwanted things? I trust Mozilla to a certain degree because I somewhat know -- at least I hope -- what local information is accessed and what is sent to the network. But if it's so simple to extend the browser to an arbitrary application, maybe even without a notice to the user, I'm really concerned. Is there a "sandbox" for Mozilla like e.g. for JAVA? The "proof of the power of the lizard" is really impressive, though. Thomas > Is it possible to load "DOM code" with a single click into Mozilla Yes. Most web pages out there do it. It's called a <script> tag. ;) > this code could then read my files, It has to ask for your permission to do that > send them to the network If you gave it permission, yes. "But if it's so simple to extend the browser to an arbitrary application, maybe even without a notice to the user, I'm really concerned." Kind of like an active X? or Bonzie Buddy? While It is possible to do this with XUL, but you still have to agree to download and install the app. Last time I checked, there wasn't a "Accept all XUL app installs" security preference. While these extensions *may* cause security issues for idiots whjo install anything/everything. The implications of splitting an app, soi that half sits as a shell on your machine, and the othe lives on a server somewhere are mind-boggling. I wanted to check this out, but it loads up as text/plain and is not interp't, so I just get the source. Might be server problem? or client? <www.yahoo.com> |