Slashdot Mirror


Building Rich-Client-Like Web Apps With Echo

An anonymous reader writes: "IBM developerWorks is running a feature on the 'Echo' project, which is used for creating web apps that 'look and act like rich clients.' Echo uses HTML and JavaScript to render a user-interface in the browser instead of client-side plugins like Java WebStart. The API is similar to that of Swing. The article examines an example email client written with the technology. The framework itself is built on Java servlets, and is distributed under the LGPL. More examples can be found here."

70 comments

  1. advantage? by ddd2k · · Score: 4, Funny

    I don't see the problem of using a servlet-applet combination for interactions with a server through a user-friendly graphical interface inside a browser. It really isn't asking much for a graphical designer to learn how to use Swing and java graphics APIs.

    1. Re:advantage? by josepha48 · · Score: 4, Informative
      Hmm some companies dont like applets. Also applets can be really time consuming to download and don't always work in the browser. This is not to say that javascript on the client side is going to be any better. I can write a boat load of scripts to crash a web browser though ;-).

      However the big thing at many companies today is 'do you have a web front end?' No, oh were going to someone who does. Why cause its considered 'cool and new and in and hip'. Yeah okay that's crap, but talk to an exective and that is what many want for some reason. My companies president is just this way. He wanted a java web application front end. He didn't know what he was asking, but he wanted it anyway. What a dumbass huh?

      Why is this happening? Maintenance and deployment. I can setup a webserver and when I need to push an update to the software out to the users I just update the webserver and everyone gets it. Java applets may get broken if the right VM is not on the client. Javascript is pretty basic and much of it can be coded to work well with both IE and mozilla and netscape. There is plenty of browser detection code in JS already out there. Rich clients are what people want too.

      Also this means that one can lock down a desktop system so that it only has a web browser and everything a user does is done using the browser. Similar to the old green screen models, only now the client is a little more powerful.

      Imagine having ot go and install software on 3000 users desktops. Asking users to install software themselves can sometimes be asking for disaster. mac's update is pretty good, but now you just have to get the users to run the update.

      Software push is the way that companies want to go, and the web offers them the easy way to push.

      Yeah everything is 'web this / web that' but so what?

      Anyway, this whole echo stuff is just allowing a java developer to develop code for a rich client that happens to be a web browser without having to think about cookies and maintaing state. What's so bad about that. Hey if you don't like it dont use it.

      --

      Only 'flamers' flame!
      Does slashdot hate my posts?

    2. Re:advantage? by TodLiebeck · · Score: 3, Informative

      I don't see the problem of using a servlet-applet combination for interactions with a server through a user-friendly graphical interface inside a browser. It really isn't asking much for a graphical designer to learn how to use Swing and java graphics APIs.

      :D

      I take the point here to be "How does Echo fit with the needs of the creative/graphics design team when building applications?" Certainly a valid question.

      First of all, I'd like to make clear that Echo isn't based on Swing, and you don't wind up using the Java graphics APIs all that much (they're only used when you want to dynamically generate images, which isn't necessary in most applications). Echo has enough similarity with Swing that your underlying statement is still valid: creative designers are not going to be working with it.

      The interactions between designers and developers when building an Echo application will be the same as they would have building a rich/thick-client app. The responsibility is placed on the developers to integrate the graphical elements designed by the creative team into the application. We can "get away with this" for a couple of reasons:

      - Echo is best used in scenarios where rich clients would be otherwise. Such applications don't tend to be "Web-site-like", where presentation is everything, and visual pieces are modified every few weeks at the whim of the marketing department.

      - The API used by Echo developers to lay out user-interfaces is easier to work with than HTML. For example, there are dozens of little tricks used by web developers to get HTML tables to lay out content correctly. It's not uncommon to have to do quite a bit of arithmetic calculation if you want to construct, for instance, a table that has fixed width cells, margins, paddings, and some cells spanning multiple columns (I'm sure some might think I'm full of it here, but I bet their tables don't look right on all platforms/browsers :)). Anyway, point being, Echo's Grid component offers a much simpler interface and performs such calculations (and many other table rendering tricks) for the developer. You can even do things like allowing cells to fill empty space in a particular direction. The result is that the effort required of the developer to integrate visual design elements into an application isn't anywhere close to what it is with a traditional roll-your-own-HTML app.

      While I'm at it, one other thing I need to mention is that Echo doesn't make use of any applets. It's all servlet-based, and the client-side user interface is rendered using only HTML and JavaScript. (Although it is possible to write Echo components that embed items such as Applets, movies, or Flash objects).

    3. Re:advantage? by vadim_t · · Score: 1

      Quite easy, really.

      1. Install Linux on a good server.
      2. Write your program in whatever language.
      3. Install an X server on the clients.
      4. Profit!

      There you go. Just one place to update when you need to change something. Although not even that is needed. I maintain a program that doesn't have such a huge amount of users, but it has auto-update already. We even have support for blocking too old programs. So it's really not such a big problem.

    4. Re:advantage? by Godeke · · Score: 1

      I am always surprised how much we can get away with developing web apps. While I wouldn't use Echo simply because of the bandwidth it is eating to pull these tricks off (and the probable breakage with minor browser revisions), I can't tell you how often the recommendations for our app is to "windowize" it more. No thanks: I love the fact we can patch once and all our users are "fixed". New features just release: no downlevel users, no data upgrade problems (on the user side).

      --
      Sig under construction since 1998.
    5. Re:advantage? by dead_penguin · · Score: 1

      Now try and do that where many of the clients are behind firewalls only allowing HTTP traffic through, are on slow connections, and are not permitted to install software like X Servers on their desktops.

      Step 4 seems to fade away quickly...

      --

      It's only software!
    6. Re:advantage? by vadim_t · · Score: 1

      Um, I'm talking about corporate environments where everybody is on a LAN and nobody has any problems with getting the program.

      For users that need to access the program from home it's of course much more efficent to run it locally. Home users usually aren't limited to only HTTP, though.

      And in any case, a normal mail client needs much less bandwidth than webmail.

    7. Re:advantage? by josepha48 · · Score: 1

      Most of our clients use cytrix, and they don't want to run Linux, as they don't always 'trust' it. Yeah whatever I run it and have no problems, in fact while they are fighting worms and virus I'm still working away ;-). But they need outlook and office and calendaring and have been hocked into the ms .net stuff and so they work in the windows world. At present they are actually more interested in web services then web frontends. Many want to create their own frontends to our systems, but he ones that don't would like the rich web gui if they can get it.

      --

      Only 'flamers' flame!
      Does slashdot hate my posts?

    8. Re:advantage? by Rick+the+Red · · Score: 1

      OK, so this thread is so cold that nobody will read this, but hey, I have to say it: In the corporate environment where I work, people are not allowed to load software; the IT department does that. Even if IT were willing to support yet another program (the X server) it would take time for them to evaluate X servers and choose one for their "standard." Then my clients would all have to budget to buy it (because you know IT isn't going to choose a "free" one -- the old there's_nobody_to_sue_if_it_doesn't_work problem.) and wait for IT to install it. Oh, and I'd have to find an un-used PC (yeah, right) to turn into a server (and risk my job in the process -- Linux isn't "standard" here).

      On the other hand, I could write a web-based app and deploy it on the existing department web server (which took us years to justify and obtain, thank you very much IT). I know that everyone in the company has a web browser, so I don't have to ask anyone to buy and load an X server to access my app; they just come to our web page and run it. I can control access (click here and I'll email you a user ID) and do everthing my boss wants.

      Stuff like Echo is exactly what I need.

      --
      If all this should have a reason, we would be the last to know.
  2. This is dumb by Curien · · Score: 1, Interesting

    Ooh! Look! I can put every application known to man in a web browser!

    Web browsers are turning into the Emacs of desktop computing, and it's pissing me off. If you want a front-end, write a front-end, possibly in Java. When you need to communicate with the server, open a friggin socket. Or use XWT or some other XML-RPC-based solution.

    Oooh! But it's web-based! Fscking marketroids.

    --
    It's always a long day... 86400 doesn't fit into a short.
    1. Re:This is dumb by redtail1 · · Score: 3, Insightful
      I don't see the downside to a framework for writing apps whose target audience is any computer with a browser.

      Yes, there are other ways to do it. Why do you feel threatened by another one?

    2. Re:This is dumb by mcdrewski42 · · Score: 2, Insightful

      +1 Troll to the parent :)

      As you said, "marketroids"...

      Add a pinch of "anyone can use a web browser",
      Stir in a dash of "we need lots of training for a 'proper' GUI",
      Season with "GUI application support costs us money"
      Then Bake until golden brown.

      My problem is that I have yet to come across a browser-based interface for anything more complex than 'One-click shopping' that doesn't make me want to beat the designer over the head with a bat.

      Anyone used Domino.doc - IBM's pre-eminent document management system? That'll show you pain. How about webmail on any mailbox with more than about 20 messages (no, I'm not talking about deleting all the spam, I'm talking about finding your expense claim or that document you were sent five weeks ago)?

      Except for all but the simplest of tasks, I really can't see the 'browser based' model as a good solution. That said, when you're in marketing, everything is a simple task. "Sell a product", "provision a mobile phone", "roll out a new server". See how easy it is, it's only a few words!

      --
      /* affect != effect */ void affect(int *thing,int effect) { *thing += effect; }
    3. Re:This is dumb by Brandybuck · · Score: 1

      Troll troll troll. But I still agree with you 100%. Does everything have to be a web application?

      --
      Don't blame me, I didn't vote for either of them!
    4. Re:This is dumb by MacroRex · · Score: 5, Informative

      Yes, options are always good.

      Echo seems interesting, and there is also Millstone, which is truly terminal independent, whereas Echo seems to be browser only.

      Fundamentally the two platforms seem to be very similar, just take a look at the HelloWorld examples: HelloWorld with Echo, HelloWorld with Millstone.

      The important thing about a platform like this is the default component library, and at least Millstone has a versatile and strong component set that's also as small as possible. Take a look at their feature demo that showcases the basic components. The feature demo itself runs on Millstone.

    5. Re:This is dumb by jhunsake · · Score: 0, Troll

      Stop humping your dog, you sick pinko faggot!

    6. Re:This is dumb by jhunsake · · Score: 0, Offtopic

      Oh fuck, that guy is posting from my account again!

    7. Re:This is dumb by Tablizer · · Score: 1

      If you want a front-end, write a front-end, possibly in Java. When you need to communicate with the server, open a friggin socket.

      Java is a fat-client solution. Java applets from a modem are hair-raising. And, sockets often cannot get past firewalls without bothering the network admins with justification forms. HTTP is the way to go.

      Or use XWT

      My pet HTTP-GUI solution is SCGUI (Server-Controlled GUI). It attemps to be more thin-client so that you don't need the "emacs-sized browser" you speak of.

  3. Gain, less pain by redtail1 · · Score: 2, Interesting
    Good article. Richer GUIs for web apps without the pain of applets seems like a good idea to this neophyte.

    I'll probably give it a shot if I can ever talk myself into playing with compilers again. Scripting languages like PHP are hard to give up...

    1. Re:Gain, less pain by innerlimit · · Score: 2, Informative

      I didn't see someone mentioning Bindows yet.

      Yes, I know it's Win/IE only...

  4. Great! by Anonymous Coward · · Score: 0

    Now all web applications can replicate the ease of use, visual appeal and speed of Mozilla's browser-rendered UI!

    1. Re:Great! by akweboa164 · · Score: 1

      Hmm . . .

      Each of the sample apps don't seem to work in Mozilla Firebird 0.6.1.

      Hmm . . .

      (Yes, I have javascript enabled :-), I just pulled up HTMLArea

    2. Re:Great! by Curien · · Score: 1

      Works for me with a self-compiled Firebird 0.6.

      --
      It's always a long day... 86400 doesn't fit into a short.
  5. I'm with you by DrSkwid · · Score: 1

    the web browser has set back application development 20 years.

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    1. Re:I'm with you by Anonymous Coward · · Score: 1, Funny

      But it increased Programmer income for 7 years, so it's worth it.

  6. swing, eh? by BortQ · · Score: 4, Funny
    The API is similar to that of Swing

    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah!!!

    That is all.

    --

    A Multiplayer Strategy Game for Mac OS X, Windows, and Linux
  7. I've already made such a system by mithras+the+prophet · · Score: 3, Funny

    echo <<<html>
    <head>
    <title>My rich-client-like web app</title>
    </head>
    <body>
    [ note to self: put forms and javascript and stuff here ]
    </body>
    </html>

    EOQ

    --
    four nine eighteen twenty-7 thirty-nine forty-7 fiftyeight sixty-nine seventy-9 eighty-8 one-hundred-and-nine one-twenty
  8. OT: Your Sig... by named · · Score: 1

    Love it.

    That's a pet peeve of mine too (you know you're anal when you have a pet peeve about language usage ;). I've been thinking about siggifying it, but haven't gotten around to being witty.

    Kudos to you, sir!

    1. Re:OT: Your Sig... by mcdrewski42 · · Score: 2, Funny

      Actually, you know you're anal when
      1) you have a pet peeve about lanuage usage
      2) you turn it into a sig
      3) you get frustrated at the 160ch limit because it means you can't put in the other valid use of 'effect' as a verb... :)

      --
      /* affect != effect */ void affect(int *thing,int effect) { *thing += effect; }
  9. Nothing to see here by Anonymous Coward · · Score: 0

    JAVASCRIPT: Error: Client model not available.

    All back to the mine.

  10. "Echo" is an unfortunate choice of name by Paul+Bain · · Score: 1

    The term "Echo" is an unfortunate choice of name -- it conflicts with another, new project that aims to "develop a common syntax for syndication & archiving, and an editing API." And, of these two projects, the one to which I have linked is by far the more important and likely to be far more seminal (once they have finished their work). Some of the people behind the "syndication Echo" (as distinguished from the "web app Echo" mentioned above) are very smart, e.g., Sam Ruby, Dare Obasanjo (aka "Carnage4Life" here on Slashdot) and Evan Williams, IIRC. The syndication Echo apparently grew out of the blogging API's (see bottom of page).

    --

    A lawyer & digital forensics examiner. Also an expert on open source software (OSS).
    1. Re:"Echo" is an unfortunate choice of name by jp_fielding · · Score: 1

      to be fair, this project actually came first. they even asked on the mailing list if it was ok to reuse the name.

    2. Re:"Echo" is an unfortunate choice of name by Sam+Ruby · · Score: 1

      The "syndication format previously known as Echo" is now known as Atom.

      --
      - Sam Ruby
    3. Re:"Echo" is an unfortunate choice of name by jrumney · · Score: 1

      And to be even more fair, the project to produce a program for displaying textual output on a terminal display for use within shell scripts would seem to predate this project by some decades.

  11. Inefficient and Slow by slashkitty · · Score: 3, Interesting

    I found this to be the worst web development ever. Using javascript to instead of regular links makes it slower and messier. Just because the application may be a little easier to write doesn't make it a good idea. In the email example, the login form submit uses javascript. The link to view the email uses javascript and reloads both frames, very inefficient. It also seem to do multiple submits/redirects just to load one page. One could have just used to highlight the table row, instead of reloading the entire window. Not only that, but the app doesn't even work in Mozilla for me!!

    --
    -- these are only opinions and they might not be mine.
    1. Re:Inefficient and Slow by Anonymous Coward · · Score: 0

      Yeah, I blocked the cookie for the email client, and the page went into an internal reload loop. YOU FAIL IT!

    2. Re:Inefficient and Slow by TodLiebeck · · Score: 1

      "I found this to be the worst web development ever. Using javascript to instead of regular links makes it slower and messier. Just because the application may be a little easier to write doesn't make it a good idea. In the email example, the login form submit uses javascript. "

      The act of using JavaScript in place of a link should not have a noticeable impact on performance. Please take a look at the Echo high-level technical overview documentation for more information about why we're doing things like this. Specifically, look at chapter 2, "Client/Server Interaction".

      "The link to view the email uses javascript and reloads both frames, very inefficient. It also seem to do multiple submits/redirects just to load one page. One could have just used to highlight the table row, instead of reloading the entire window."

      With regard to the "multiple submits/redirects": I think you are seeing the client-browser download the small JavaScript resource files that are required to make the application work. These are downloaded on an as-required basis, and are cached for future use. After two or three clicks, this issue goes away.

      With regard to using JavaScript to highlight a single row of the e-mail message list in order to avoid reloading its frame, you are very much correct in that this would be more efficient. It is possible to do exactly that, but it would have required the creation of an Echo component that rendered a few bits of HTML and JavaScript to do it. This was out of the scope of the tutorial, so instead the stock Echo components were used. For more info on creating Echo components that render their own HTML and script, see the Component Authoring Tutorial.

      "Not only that, but the app doesn't even work in Mozilla for me!!"

      I take it you're using Firebird 0.6.1? Another slashdot user reported this issue and I've looked into it. Echo works with 0.6 and the latest nightlies, but not with 0.6.1 (possibly due to a bug in 0.6.1). It also works quite well with the Mozilla 1.0-1.4 series. Please take a look at this post for more details on the problem.

    3. Re:Inefficient and Slow by demian031 · · Score: 1

      yeah, i'm using mozilla firebird and none of the demos function. what the hell. thats why web-apps should be as simple as possible.

      you put this stuff in the 'critical path' between a user login and customer checkout and you're gonna lose money, period.

  12. web apps that 'look and act like rich clients'?! by uradu · · Score: 3, Insightful

    Don't think so. Their sample apps behave JUST like regular old web apps because that's what they are. The webmail example looks and feels pretty much like any other webmail client, with a "dead" HTML message list that refreshes the entire page when clicking one message, just to highlight it. What one usually understands by a rich GUI is that there are high-level components for common visual elements such as lists, trees, tabs etc, that provide more or less complex functionality. The highest level component I see in their stuff is the HTML table. Yay! Maybe they just didn't demo the right stuff, but so far the main gain seems to be the GUI programming paradigm on the back-end. Which is nice, to be sure, but a rich client it ain't.

  13. can you build echo UI with NetBeans? by BigGerman · · Score: 1

    _that_ would be cool!

  14. what echo is used for.... by jp_fielding · · Score: 5, Insightful
    DISCLAIMER: i'm an echo user...so i'm biased

    as some comments above state, echo will not cure little timmy's cancer.. it is a tool like all other tools and has it's place.

    why not just deploy thick clients....? maintaining thick clients (or at least getting a jvms installed and running) is a pain.

    it can use higher amounts of memory, it uses a lot of javascript, it can even generate a lot more html than 'absolutely' necessary.

    that said, it's main purpose is for deploying 'rich' clients, generally on high bandwidth connections like a lan or corporate network.

    for these possible issues (as they can be mitigated), you get 'real' component reuseability, massive refactoring support, type safety and last but not least..... no more need for html or linking.

    these last 2 may seem trivial and even unnecessary, but the more important question, is why would you want to know these things? is it important when editing documents? is it important when writing thick client code to know exactly how each pixel is going to be written, and for that matter, that it's absolutely the most efficient?

    the strangest part to me is why hasn't something like this already come about. every other language, java included, has some form of a Windowing Toolkit, why not a Web Windowing Toolkit. people started editing html files, then started making them dynamic, then just kept on going (myself included) like forrest gump. but why, when we began actually writing applications didn't we stop and build the tried and true abstraction models that have proven themselves over and over. if that had happened with thick clients, would we not be writing those in some form of pixel markup language?

    anyways, it's not perfect (but i think it's quite close), but for that matter nothing is, but i tried it, and i don't know if i have it in me to ever go back, it was just way too much work before. i can only suggest you make the same leap.

    Good luck for those who are willing to try it, it's an investment that returns.

    1. Re:what echo is used for.... by angel'o'sphere · · Score: 1


      the strangest part to me is why hasn't something like this already come about. every other language, java included, has some form of a Windowing Toolkit, why not a Web Windowing Toolkit.

      There are otehr web wndowing toolksits, like wingS from www.mercator.de.
      They mimic Swing as well, and generate HTML with a similar API like Swing does.
      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  15. Re:web apps that 'look and act like rich clients'? by jp_fielding · · Score: 0
    you're right, you haven't seen all the demos if you haven't seen trees and such.

    the echo project contains the base functionality of widgets. this provides a very clean base from which customization is made trivial.

    echopoint, a derivative project, does provide things like wizardpanes, tabbedpanes, trees (just like swing).

    it's worth a look, and echopoint poker is good enough to kill a few hours...

  16. Warning, Echo does not work with Firebird 0.6.1 by TodLiebeck · · Score: 3, Informative
    akweboa164 wrote:
    Each of the sample apps don't seem to work in Mozilla Firebird 0.6.1.

    Thanks for pointing this out. On looking into it, Echo does NOT appear work on Firebird 0.6.1 on either Windows or Linux. 0.6 works properly, as does a fresh nightly build that I downloaded just a minute ago. Mozilla 1.0-1.4 also should work fine. Mozilla and its derivatives are very much in the "first-tier" of target environments for Echo. It's quite frustrating to see that this problem with 0.6.1 was not previously noticed.

    The particular piece of code that appears to be tripping up 0.6.1 is a single line of javascript:
    history.go(1);
    This is used to ensure the browser is always on the latest page of the history at all times. When executed in Firebird 0.6.1, a JS exception occurs indicating that the "history object has no properties". On further investigation, it appears that the history object does not exist in 0.6.1. I'm guessing that this is a problem in this particular version of Firebird, as no other browser encounters this issue, including previous and current (nightly build) versions of Firebird. The O'Reilly JS (rhino) book seems to think the code is legal too.

    If this problem presents itself in future versions of Mozilla, Firebird, or any other browser, we'll have to modify the browser detection startup script to disable this feature based on browser type (unless of course I'm wrong and history.go() is no longer fashionable).

    Thanks again!
    1. Re:Warning, Echo does not work with Firebird 0.6.1 by Jason+Pollock · · Score: 1

      Wow, good work.

      Diagnosis, work-around and description of fault all inside of 2 hours. That sort of support for a GPL'ed piece of software is very cool to see.

      I'm definitely going to look into this one closely. Might help us with our java screen problems.

      Thanks,
      Jason Pollock

    2. Re:Warning, Echo does not work with Firebird 0.6.1 by akweboa164 · · Score: 1

      Wow!!!

      I would have to say that the fact that you responded to this so quickly is impressive.

      Software, no matter what quality, with this kind of support behind it is impressive. Because of this, I will definitely give Echo another look. Of course, I will upgrade my browser first. :-)

      Very, very impressive.

    3. Re:Warning, Echo does not work with Firebird 0.6.1 by dadeSF · · Score: 1

      I'm definetly going to give it another look now.

  17. Millstone by Anonymous Coward · · Score: 2, Informative

    Another similar framework you might want to take a look is Millstone. Main fundamental difference is that Millstone provides themes through usage of XSL. Some of the UI-components look really nice in the default theme (demo can be found here).

  18. Way, way too slow? by Futurepower(R) · · Score: 1


    I would certainly like to find a workable solution such as this. However, the video poker is so slow as to be useless. People don't like waiting for a computer to respond. They want the computer to serve them, and wait for them.

    Is there any way to speed the response? I'm using Mozilla 1.4.

    1. Re:Way, way too slow? by TodLiebeck · · Score: 1

      I would certainly like to find a workable solution such as this. However, the video poker is so slow as to be useless. People don't like waiting for a computer to respond. They want the computer to serve them, and wait for them.

      Is there any way to speed the response? I'm using Mozilla 1.4.


      I didn't write EchoPoint Casino, and worse, I'm not even familiar with the source code. I am all too familiar with the app from an end-user standpoint though.

      I do know a bit of the history on the application though. It was built some time ago to demonstrate one of the features of EchoPoint (which is a collection of free as in LGPLed Echo components). Specifically, it shows off the capabilities of HtmlTemplatePane, which allows the embedding of Echo components within an HTML template. To the best of my knowledge, this app was written as a just-for-the-fun-of-it demo by the lead developer of EchoPoint, Brad Baker.

      The most significant performance issue I see with the poker game is that clicking on a card results in a refresh of the screen. Each card is its own button, distinct from the checkbox below it. Clicking on a card results in a server-roundtrip, where an ActionEvent is fired and is picked up by a listener that toggles the checkbox below it. Once this has finished, the response causes the whole screen to be re-rendered by the client. That's not very efficient, and wrecks the interactivity of the game in this case, where the server is not on your Intranet, but instead is in San Antonio, Texas, in the US.

      One solution that springs to mind to solve this problem would be to create a reusable rendered component that renders the card, the checkbox and the "Hold" label and sets the state of the checkbox without a server roundtrip. Such a component would require a little bit of HTML and JavaScript programming, albeit not much. Echo is very much designed to be extended in this fashion. The betting interface could also use a similar overhaul.

      A "workaround" of sorts exists if you click the "hold" labels or their checkboxes to hold the cards instead of clicking on the cards themselves. It makes the game quite a bit more playable, and is representative of the performance on would see if the previously mentioned card/checkbox component were created.

  19. The code is not valid! by bertilow · · Score: 3, Informative

    The Echo HTML code isn't even valid!

    Such applications could break in future browsers. Browsers tend to become stricter and stricter. Only valid HTML is future-safe.

    They can't even put a correct doctype declaration in the HTML!

    And frames are crap anyway, even if you do the code right.

    1. Re:The code is not valid! by TodLiebeck · · Score: 3, Insightful

      "The Echo HTML code isn't even valid!

      Such applications could break in future browsers. Browsers tend to become stricter and stricter. Only valid HTML is future-safe."


      Rendering correct and "future-safe" HTML is a very critical concern in the development of Echo. In a few cases Echo will even render alternate non-standard HTML based on the results of browser detection. As we all know, browsers often don't conform to the spec. I'd personally love to be able to dump all such "workaround" code, but end-users appreciate things looking and working correctly far more than adherence to the HTML specification.

      The goal is to keep Echo as close to the spec as possible. If you see something in particular where we have deviated from the specification incorrectly, please, please, please let us know. Post something on the mailing list, developer forums, or even in reply to this comment. It would be greatly appreciated.

      Another issue you might find when validating Echo's generated HTML code is that some validators get tripped up by some of the URIs. W3C's for example doesn't care for the following img "src" attribute:

      src="/EchoWebMail/webmail?E_id=E_ls&E_z=107a6_ 0"

      "They can't even put a correct doctype declaration in the HTML!"

      All Echo rendered HTML documents have a DOCTYPE declaration. If you see one that does not, please let us know. I would definitely consider this a bug.

      Also, if you're referring to character set-related issues, please understand that we do provide this information in the HTTP response header. If you're cutting and pasting the source into a validator, this information will be lost.

      "And frames are crap anyway, even if you do the code right."

      I would disagree. Breaking up code into smaller documents that may be independently refreshed has performance advantages. Frames can be a major pain when developing page-based applications, but Echo's JavaScript libraries take care of these problems to ensure the developer doesn't have to deal with them. For example, when a user clicks a button in Echo, the server will be notified of all changes (e.g., modified text fields) in every frame and window of an application. This is performed by storing the form values in a single non-visible frame that is submitted in response to the user performing an action that requires server interaction. The response to this request will contain JavaScript directives to re-render other frames and windows of the application, thus eliminating the "big problem" encountered with frame-based apps where the developer would be required to know which frame was to be refreshed in response to a specific user action.

      For more info on how Echo does this, take a look at:

      http://www.nextapp.com/products/echo/doc/hltov/int eraction.html

    2. Re:The code is not valid! by Anonymous Coward · · Score: 1, Insightful

      W3C's for example doesn't care for the following img "src" attribute:
      src="/EchoWebMail/webmail?E_id=E_ls&E_z=107a6_ 0"

      That would be because some characters (<> and &) are only ever supposed to be entered in encoded format (&code;) in an XML or HTML document. Most browsers are pretty loose with those, but it's not technically valid to have an ampersand that's not part of a character reference, (as < or > cannot be valid if not part of a tag)
      src="/EchoWebMail/webmail?E_id=E_ls&amp;E_z=107a6_ 0" is how it should be in the html.

    3. Re:The code is not valid! by bertilow · · Score: 1

      Another issue you might find when validating Echo's generated HTML code is that some validators get tripped up by some of the URIs. W3C's for example doesn't care for the following img "src" attribute:

      src="/EchoWebMail/webmail?E_id=E_ls&E_z=107a 6_ 0"

      That's because the address is not correct. When the validator complains, it's most probably right, and your code is most probably wrong. Learn the rules!

      "They can't even put a correct doctype declaration in the HTML!"

      All Echo rendered HTML documents have a DOCTYPE declaration. If you see one that does not, please let us know. I would definitely consider this a bug.

      It's not enough to put in a doctype declaration. It must also be the correct one. Pages with elements like "frameset" and "frame" should have a "frameset" doctype declaration. Check out what you're using.

      "And frames are crap anyway, even if you do the code right."

      I would disagree.

      OK. Echo pages are not ordinary web pages, but applications. Frames can actually be OK in web applications.

  20. Slowness markets a technology negatively. by Futurepower(R) · · Score: 1


    Tod,

    Thanks for the reply. I will check into this.

    Thought: I think it is unfortunate that this issue was not addressed before the story appeared on Slashdot. All the slow Java programs are destructive to the acceptance of Java, for example.

    Customers have experience with their computers responding instantaneously when they work with a program on their hard drives. They want no less service from other technology. I find that it would be politically impossible to deliver an application that took any time to respond. Customers do not expect that the function finish immediately, just that the menu respond immediately. Perhaps this demonstration of poker should have been on my intranet, rather than from Texas.

    Even when software is free, there is a marketing component. We want as much support as possible for good technology, and that support can only be gained through skilled communication. The skills required are identical to the skills required to design marketing.

  21. And with Darren's help, we'll get that chicken! by one9nine · · Score: 1
    Take a look at the Sierra Intranet demo and you can see which shows the developer watches:

    Kramerica Industries
    J. Peterman
    Cromulent Technologies
    Strickland Propane
    Binford Industries

    There's also Fishy Joe's, Interslice and CompuGlobalHyperMegaNet but I don't recognize which shows they come from. Anyone know?

    1. Re:And with Darren's help, we'll get that chicken! by fumanchu32 · · Score: 1

      Fishy Joe's Futurama CompuGlobalHyperMegaNet Simpsons Interslice Simpsons Try using this thing called google.

  22. Re:web apps that 'look and act like rich clients'? by uradu · · Score: 1

    > you haven't seen all the demos if you haven't seen trees and such

    I've seen enough to not be impressed.

    > echopoint poker is good enough to kill a few hours

    I DID specifically see that one. Refreshing the entire page when dealing? Ugh! That's NOT a rich GUI client.

    If you want to see a rich GUI, look at XUL and Mozilla. Now there you can have serious rich GUI distributed apps. For a lot of people an HTML page simply doesn't qualify as a rich interface, regardless of how fancy the backend is. You're still dealing with HTML tables that keep jerking around while the page loads.

  23. Doesn't work in Firebird by Peter+Cooper · · Score: 0, Flamebait

    This framework is appalling. I'd expect better from IBM, and I don't even have that high an opinion of them!

    Standards compliant XHTML and CSS are the way to go with Web based apps. Sure, on old/non-standard browsers the pages might look like ass, but they should work.

    Unlike this.. which only seems to work in my IE6, but not my browser of choice.

    1. Re:Doesn't work in Firebird by TodLiebeck · · Score: 3, Informative

      This framework is appalling. I'd expect better from IBM, and I don't even have that high an opinion of them!

      This framework isn't written by IBM. The article is on IBM developerWorks, which is a developer's resource site that often publishes material on open-source third-party products.

      Standards compliant XHTML and CSS are the way to go with Web based apps. Sure, on old/non-standard browsers the pages might look like ass, but they should work.

      Unlike this.. which only seems to work in my IE6, but not my browser of choice.


      Echo does not work with Mozilla Firebird 0.6.1. It works with 0.6, and with the latest nightlies. To the best of my knowledge, this appears to be due to a bug in Firebird. (Please understand that it's possible I'm wrong on that, I'm still looking into the matter). Keep in mind though that the stable Mozilla series (1.0-1.4) is very much a first-tier supported platform for Echo. Firebird support *is* important, as even though its not an officially stable release yet, it is a very cool product, and is tremendously popular among developers. See this post for more information on this problem:

      http://developers.slashdot.org/comments.pl?sid=778 63&cid=6917761

      Echo doesn't render in XHTML yet (it presently renders HTML 4.01 transitional, and does use CSS as much as possible). We will go to XHTML when it makes sense to do so (Which I personally hope is sooner rather than later). Please also take a look at this recent post of mine if you'd like more info on how we deal with specification compliance:

      http://developers.slashdot.org/comments.pl?sid=778 63&cid=6924701

  24. mod_perl by kwoff · · Score: 1

    I'll be waiting for a mod_perl/Mason version. :)

  25. Example App by Anonymous Coward · · Score: 0

    Renders my browser's Back button useless....

    Thanks.

    That is all.

  26. Rich??? Yeah Right! by Aka_Hook · · Score: 1

    That webmail demo was super lame.
    If I wanted to build rich interfaces I would use
    Flash and Cold Fusion or PHP on the backend.

    I don't really consider JavaScript to be "rich".
    Calling a web interface that utilizes JavaScript and
    HTML "rich" is about 3 years out of date.

  27. Too bad it doesn't work with Mozillla by jbwiv · · Score: 1

    Mozilla Firebird, at least. Javascript seems incompatible. And I was so excited :(

  28. Other interesting packages by Netcool2 · · Score: 1

    netwindows, domapi, bindows are alike but without java implementation. Do you know any others that can be included in this list ?

  29. Multiple client-side web technologies by camusatan · · Score: 2, Funny
    There seem to be more and more client technologies that we're supposed to be able to use to make our web application lifestyle better -
    • Flash
    • Java
    • DHTML
    And there are a ton of languages which are supposed to make our lives better, too -
    • Java
    • Perl
    • PHP
    • Whatever.NET
    And of course we're supposed to run these wonderful things -
    • On our own, secure, happy, well-administered server, behind our firewall
    • On a service providers managed, well-maintained, backed-up server, in some co-lo facility somewhere

    And when we do manage to get all of these crazy things to try to talk to eachother, somehow, we can choose among 5,000,000 different XML languages/schemas/whatevers to use.

    Web-based computing is still in the stone age - if I can ever manage to get my own stupid project off the ground, perhaps I'll have a solution for this, soon enough...

  30. I am not impressed by LCB · · Score: 1

    As a Java developer I am always on the look out for a client side GUI framework that is lighter weight than Swing. It is even better if it doesn't require a plugin or explicit download. So, I went to the Echopoint demo site, and I was not impressed. I have seen faster Swing downloads - and I have certainly seen much better JavaScript interfaces. I don't know if the Echopoint site is just slow for some reason (I think it is), but even if that is the case the interface was very clunky. For instance, the Tree View widgets update by refreshing the page, as do the rest of the widgets I tried (a limited set). Compare the "expanding" widgets to something I threw together: http://mywebpages.comcast.net/developer.dude/urls. html Developers should look at UI frameworks from the user's perspective; users want a smooth fast UI that works on the browser they are using, without having to download a plugin. I haven't looked at the Echo framework from the developer's POV because I can see within just a few minutes of trying out the demo that the user isn't going to like it. Maybe I am just being lazy, or maybe the Echopoint demos are just poor ones.

  31. Now this is just painful by fizbin · · Score: 1
    Somehow the other people responding to this post were able to overlook this:
    However the big thing at many companies today is 'do you have a web front end?' No, oh were going to someone who does. Why cause its considered 'cool and new and in and hip'. Yeah okay that's crap, but talk to an exective and that is what many want for some reason. My companies president is just this way. He wanted a java web application front end. He didn't know what he was asking, but he wanted it anyway. What a dumbass huh?
    I think what you meant to say was:
    However, the big thing at many companies today is "Do you have a web front end? No? Oh; we're going to someone who does." Why? Because it's considered "cool and new and in and hip".

    Yeah okay that's crap, but talk to an executive and you'll find that that is what many want for some reason. My company's president is just this way. He wanted a java web application front end. He didn't know what he was asking, but he wanted it anyway. What a dumbass huh?
    The niceties of spelling and punctuation aren't around simply so that people can flame you, or to give grammar teachers something to do. They're there so that people can read your post quickly. When you spell things and omit punctuation like this, you slow the reader's reading speed down close to the speed of speech. It feels a bit like hitting a speed bump while driving at 60 mph.

    Please, have a modicum of consideration for people who would read your post; otherwise, you are saying that you don't care enough about what you've said to make it legible. If you don't care enough about the writing of the post, I don't see why I should care enough to read it.

    And yes, I know that this post is better than some that end up here - "one" in place of "won" is the worst reading speedbump I've seen lately - but it's still painful on the reader.
  32. Cart Before Horse Time by NickFitz · · Score: 1
    The responsibility is placed on the developers to integrate the graphical elements designed by the creative team into the application

    As a web applications developer who comes from a traditional software development background, I would state most emphatically that responsibility should be placed on the creative team not to make the mistake of believing that the user interface of an application is the place for their graphical elements.

    Usability principles apply just as much to a web application as to any other kind. It's easy to make one look like a native app with creative use of stylesheets (served according to client platform); those who ask "what's the point of that?" are too hung up on the "web" bit, and not taking sufficient notice of the "application".

    Somebody once said, "There is no website so simple that a graphic designer can't completely f*ck it up for you". That goes triple for web applications.

    --
    Using HTML in email is like putting sound effects on your phone calls. Just say <strong>no</strong>.
  33. (Remote)XUL by Anonymous Coward · · Score: 0

    (Remote) XUL has similar capabilities. Check out http://www.xulplanet.com/ and http://robin.sourceforge.net/