RSS 2.0 New Entries Syndication Feed Atom 0.3 New Entries Syndication Feed

Show blog menu v



Use it



Sibling projects

RIFE powered

Valid XHTML 1.0 Transitional

Valid CSS!

Blogs : Latest entries

< Previous page   Next page >
Artima article : Distributed Web Continuations with RIFE and Terracotta

In this article, Jonas Bonér and me discuss how the RIFE Web framework helps you become productive and efficient in building conversational Web applications. Productivity with RIFE is in large part due to RIFE's unique approach to Web development—its use of continuations for conversational logic, and complete integration of meta-programming to minimize boilerplate code.

We also introduce you to Terracotta and it's JVM-level clustering technology, and show you how Terracotta and RIFE can work together to create an application stack that allows you to scale out and ensure high-availability for your applications, but without sacrificing simplicity and productivity. This means working with POJOs, and minimal boilerplate and infrastructure code.

You can read it at Artima.

posted by Geert Bevin in RIFE on Aug 8, 2007 8:23 PM : 0 comments [permalink]
Frank Sommers : What Do You Look For in a Template Engine?

Frank Sommers of Artima has started a discussion about template engines and asks what you find important in them.

Template engines seem to be one of the most stagnant technologies in Java, many adopt the design that mixes content and logic but implement it differently (PHP, JSP, Velocity, Freemarker, ...). It's a good thing that Terrence Parr (of ANTLR fame) created StringTemplate which seems to move in a similar direction as what we've been doing with our template engine in RIFE. He acknowledges the push model that injects values and text into a template instance instead of pulling them in with an expression language. While I prefer our approach where there really is no logic in the template at all, I really appreciates what Terrence says in his docs:

Language theory supports my premise that even a minimal StringTemplate engine with only these features is very powerful--such an engine can generate the context-free languages (see Enforcing Strict Model-View Separation in Template Engines); e.g., most programming languages are context-free as are any XML pages whose form can be expressed with a DTD.

This goes back to a less-is-more philosophy where you build what is needed to comfortably use a technology in trivial and advanced situations, and nothing more. RIFE's template engine does the same. Instead of including a whole collection of additional features, we rely on you making a mental shift to adapt your development habits towards the new capabilities and characteristics of our template engine. In my case its not language theory, but rather lots of very complex HTML layouts and other uses of our template engine that gets me to say that our template engine is powerful enough to allow you to comfortably build anything you want, without compromising on context separation and reusability.

Have you ever tried out another template engine besides the classic pull model in anger? What did you think of it?

posted by Geert Bevin in RIFE on Jul 21, 2007 10:41 AM : 0 comments [permalink]
RIFE 1.6.1 released

There are no new features since release 1.6, this is a bugfix release.

Everyone using continuations is urged to upgrade to 1.6.1 due to performance regressions that crept into the previous release.

You can read the full changelog for more details.

This release can be downloaded from the downloads section, as usual.

posted by Geert Bevin in RIFE on Jul 14, 2007 11:40 PM : 0 comments [permalink]
RIFE 1.6 released

Below are the highlights:

  • Isolated continuations package with proper public API and separately downloadable jars
  • Byte-code instrumentation agent that can replace the classloader
  • Integration with Terracotta for continuations fail-over and scalability
  • ManyToOne and ManyToMany relationships in the GenericQueryManager with lazy-loading
  • Refactored authentication package for optimal pluggability
  • New template tags BA and C
  • Template tag syntaxes don't require quotes anymore
  • MVEL as blockvalue scripting language
  • JRuby support for implementing elements
  • Support for the H2 database
  • Support for Java 5.0 enum types
  • ReadQueryString and ReadQueryTemplate query builders
  • EXIT:PARAMSJS:name and SUBMISSION:PARAMSJS:name for increased spammer protection

Full documentation for the new features is being written and will be published in the RIFE wiki cookbook.

You can read the full changelog for more details.

This release can be downloaded from the downloads section, as usual.

posted by Geert Bevin in RIFE on Jul 2, 2007 3:25 PM : 0 comments [permalink]
JavaOne Podcast : Web continuations with RIFE and Terracotta

The podcast of my mini-talk at JavaOne 2007 has been published on, this is the abstract:

State management has always been a complex and tricky part of web application development. Continuations simplify this and automatically allow you to create a one-to-one conversation between users and a web application. State preservation and flow control no longer need to be handled manually, bringing you back to the simplicity of single user console applications. Remember 'scanf()'?

This presentation will introduce continuations from general principles, followed by practical examples that explain how they benefit web application development and their frequent usage patterns. Finally, automatic fail-over and scalability will be demonstrated through the integration with Open Terracotta.

You can listen to it here.

The corresponding slides and examples can also be downloaded.

posted by Geert Bevin in RIFE on Jun 7, 2007 7:44 PM : 0 comments [permalink]

< Previous page   Next page >
Google web