Blog

  • Rockstar or Not?

    So you’re in a session at AjaxWorld and it’s not rocking your world!  Want to know where the real rockstars are talking? Want to know what sessions are going off?  Then tune into
    Rocks Or Not and rate sessions in real time and see what others think of the other session live.

    Webtide has implemented Rocks Or Not to demonstrate the Comet (Ajax push) capabilities of Jetty, Dojo and DWR.  The application gives a live 1 to 5 star rating of the sessions, speaker awards (Rockstar, Vulcan, Uber Geek or Droid) and per session chat rooms.

    If you are attending AjaxWorld this week, or simply want to tune in to what’s happening, then visit http://www.webtide.com/sessionRater

  • Adam Lieber to Speak at AjaxWorld

    I’ll be talking about the common gotchas people run across when preparing Ajax and Comet applications for deployment. We have techniques and services to make sure your application is responsive and doesn’t break the bank. Look forward to seeing you there! www.ajaxworld.com, or drop us a line if you need help with registration.

  • Combining Javascript and CSS content

    At the Rich Web Experience conference this week, there were many talks about performance and tools like ySlow. Everybody acknowledges that downloading lots of javascript and css with multiple script or link tags is a key reason that Ajax sites are slow to start, due to the latency of multiple round trips over the network. Yet almost every example I saw at the show had multiple script tags and css links.

    More over, none of the frameworks that I know provide mechanisms for easily switching from development mode (with individual scripts and links) to production mode with combined scripts that are stripped and compressed and it is an error prone process to edit markup in the transition from development to production.

    So I have written ConcatServlet that allows multiple scripts tags like:

      <script type="text/javascript" src="js/behaviour.js"></script>
      <script type="text/javascript" src="js/ajax.js&/chat/chat.js"></script> 
      <script type="text/javascript" src="chat/chat.js"></script>

    to be replaced with the single tag:

      <script type="text/javascript"
        src="concat?/js/behaviour.js&/js/ajax.js&/chat/chat.js">
      </script>

    The same servlet can also be used for css links.

    The servlet uses RequestDispatcher.include, so it can be used with dynamic scripts, such as those generated for DWR.  The down side of this approach is that it can’t get the last modified dates of the individual resources, so the browser will not well cache the combination.  So the servlet may be run in development mode, where the content is always combined and served, or in production mode where the start time of the servlet is used as the last modified time.  This is production, the servlet needs to be restarted before any changed scripts will be served in response to If-Modified-Since requests.

    If this style of script and link tag is well received, then in future, the servlet could be modified to do a better job with detecting modifications, caching combinations and perhaps stripping comments and whitespace.   It would also be possible to cache combinations in direct buffers so they can be served efficiently by Jetty’s NIO layer.

    This servlet will be in the utilities jar of the 6.1.6 Jetty release.

  • Greg Wilkins to Speak at the Rich Web Experience 6-8 September

    If you’re interested in finding out more about Jetty and the ways in which it can help you conquer the significant challenges of Web2.0, Greg Wilkins – CTO of Webtide and founder developer of Jetty – will be a featured speaker at the Rich Web Experience, 6-8 September in San Jose, California.

    For more information visit http://www.therichwebexperience.com

  • New Jetty Plugin for Eclipse WST

    The Eclipse Web Standard Tools project extends the Eclipse platform with many useful tools for building and testing web applications.

    Webtide has made available a plugin which allows developers to use Jetty within the WST environment.

    A Jetty instance can be controlled (ie stopped and started) using the standard Eclipse menu options. Additionally, Eclipse-based webapps can also smoothly be deployed, undeployed and automatically hot redeployed to Jetty.

    The plugin is available at this url:
    http://www.webtide.com/eclipse

    There are also detailed instructions on how to download and install it here:
    http://docs.codehaus.org/display/JETTY/Web+Tooling+Support

  • Clustering Jetty with Terracotta Webcast

    Join Webtide and Terracotta on Wednesday 29th August at 1.00pm Pacific Daylight Time for a joint webcast on why and how to cluster Jetty with Terracotta.

    Signup at: https://terracottatech.webex.com/terracottatech/j.php?ED=94642882&UID=0

  • Hightide Release 6.1H.5-beta

    Release 6.1H.5-beta of Hightide is ready for download from:

    http://www.webtide.com/downloads.jsp

    This release upgrades:

    + jetty to version 6.1.5
    + atomikos to version 3.1.7

    This release fixes:

    + a cometd bug with duplicated subscription messages

    This release introduces:

    + rpm installables

  • Jetty Powers Sybase SPEC

    Sybase has published some SPEC® jAppServer2004 results for their Jetty powered EAServer showing excellent performance results against websphere and weblogic.

    Sybases EAServer JEE application server  uses Jetty as the webtier, with the latest releases using Jetty-6 to provide 2.5 servlet specification compliance as well as Jetty’s advance asynchronous features (Jetty 6 is also available as the web tier of Geronimo, Websphere CE, JBoss and Glassfish).

    SPECjAppServer2004 (Java Application Server) is a multi-tier benchmark for measuring the performance of Java 2 Enterprise Edition (J2EE) technology-based application servers as  an end-to-end application which exercises all major J2EE technologies including the web container, servlets and JSPs

    The results published by Sybase, show EAServer as one of the best results on a 4 core server. While Oracle have better 4 core results, they used  used more powerful Itanium systems which limit direct comparison.  The sybase 4 core results exceed some 8 core results from Sun, Websphere and Weblogic.

    For clarity, the result table has been sorted and colourized in the image below:

    Results

    SPEC® and the benchmark name SPECviewperf® are registered trademarks of the Standard Performance Evaluation Corporation. Competitive benchmark results stated above reflect results published on www.spec.org as of Jan 12, 2001. The comparison presented above is based on the best performing results published by the vendors listed. For the latest SPECviewperf® benchmark results, visit www.spec.org/gpc.

  • Support for Support

    Matt Asay suggests that many companies get great value by supplementing the support they can get from public open source support lists by budgeting for professional support. See his discussion at Matt’s blog.

    Certainly in agreement here. Beyond that, though, at Webtide, we find that our clients value not just access to the experts, but the mode of access. Open lists are, by definition, public. Discussion of specific internal infrastructure or specific client issues are often not easy subjects to discuss in that setting. Through our professional support systems, Developer Advice clients boost their time to market, and Production Support clients stay in top working order. Great to have the additional corroboration!

  • Jetty Release 6.1.5

    This release is only available from Codehaus and the MortBay site. For more information, please see:

    http://docs.codehaus.org/display/JETTY/Downloading+and+Installing

    This release includes a few minor fixes and some good improvements and few new features, including: RPMs, OSGi manifests, graceful shutdown and a new gzip filter.

    The ant module jar, the RPMs and the JBoss sar are also available for download by following the link above.

    jetty-6.1.5 - 19 Jul 2007
    + Fixed GzipFilter for dispatchers
    + Fixed reset of reason
    + JETTY-392 - updated LikeJettyXml example

    jetty-6.1.5rc0 - 15 Jul 200
    + update terracotta session clustering to terracotta 2.4
    + SetUID option to only open connectors before setUID.
    + Protect SslSelectChannelConnector from exceptions during close
    + Improved Request log configuration options
    + Added GzipFilter and UserAgentFilter
    + make OSGi manifests for jetty jars
    + update terracotta configs for tc 2.4 stable1
    + remove call to open connectors in jetty.xml
    + update links on website
    + make jetty plus example webapps use ContextDeployer
    + Dispatch SslEngine expiry (non atomic)
    + Make SLF4JLog impl public, add mbean descriptors
    + SPR-3682 - dont hide forward attr in include.
    + Upgrade to Jasper 2.1 tag SJSAS-9_1-B50G-BETA3-27_June_2007
    + JETTY-253 - Improved graceful shutdown
    + JETTY-373 - Stop all dependent lifecycles
    + JETTY-374 - HttpTesters handles large requests/responses
    + JETTY-375 - IllegalStateException when committed.
    + JETTY-376 - allow spaces in reason string
    + JETTY-377 - allow sessions to be wrapped with AbstractSesssionManager.SessionIf
    + JETTY-378 - handle JVMs with non ISO/UTF default encodings
    + JETTY-380 - handle pipelines of more than 4 requests!
    + JETTY-385 - EncodeURL for new sessions from dispatch
    + JETTY-386 - Allow // in file resources