1 Oct 2010

Introducing Summer - The HTML5 Library for Java

Summer is now officially over but we have a new project to announce and apparently it's called Summer. I've been working on it in the past few months and I hope that everyone that dares to try it will be as much excited as I am. The name Summer derives from the fact that the project is a natural addition to the Spring Framework and brings various interesting features that you can hardly find anywhere. If you're currently using Spring MVC or you're eager to try the Spring 3 and Java EE 6 goodness then definitely check this project out.

Summer introduces a super clean dynamic HTML5 markup that enables templates, expressions and iterators. In order to enable these it internally utilizes a subset of the functionality offered by JavaServer Faces 2.0 while preserving the overall Spring MVC ideology. Summer takes advantage of the modular capabilities of Servlet 3.0 and enables the creation of true web enabled modules that combine both Java code, configurations and static resources. Thanks to Spring 3 you can easily apply conversion and bean validation as well as data binding, content negotiation and REST support. The project also offers an optional integration with jQuery which enables partial page rendering using AJAX and HTML5 WebSocket capabilities based on the Atmosphere framework.

Summer is still in a young project and doesn't offer much documentation. It's available on GitHub and we're open for people who find it interesting and want to contribute whatever they can. Our plans for the next milestone include features like Flash scope and AJAX validation as well as some more samples.

In addition we're working on a package called Summer Extras that will enable static resource optimizations, beautiful form components, output markup formatting, Servlet 2.5 and Google AppEngine support. It will very likely be commercially distributed since at the end we have to somehow justify the effort we put into providing this goodness to you.

A special thanks goes out to our friend Rostislav Georgiev! Without his support and contributions this project wouldn't have been possible.

Check the project homepage, the sample showcase and the source code. Have fun and let us know what you think!

5 May 2010

jQuery Address 1.2 - Ajax Crawling, URL building and more

I'm happy to announce the strongest jQuery Address release up to date. In the last few months we put a lot of effort in adding new features and samples as well as incorporating bug fixes and community feedback.

Probably the most important update is the strong integration between the plugin and the Ajax Crawling mechanism promoted by Google. The sample that jQuery Address ships with is unobtrusive as possible and works even better than the Google's own GWT example. We used PHP to showcase all the aspects of this integration but we'll try to add samples for more languages in the near future.

Another huge improvement is the ability to build deep linking values part by part. It should replace any custom string concatenation functions that you have used in the past and simplify the cases where you need to use many different parameters. In order to build such values or queries without the generation of history entries in the browser you may need to use the new autoUpdate mode setting.

Other notable features are the wrap option which will generate a DIV wrapper for your content in order to prevent scroll issues with the hash fragments, the support for hash fragments inside the value and the utilization of the the HTML5 onhashchange event where possible.

Here is a list of all the changes:

  • New queryString, parameter and path setters.
  • New autoUpdate, crawling and wrap options.
  • New generic bind method.
  • New Accordion, Crawling and Form samples.
  • Support for hash fragments as a part of the value.
  • Basic support for forms.
  • Improved onhashchange support.
  • Switched samples to HTML5.
  • Switched to the Closure compiler.
  • JSLint compatibility.
  • Simple test suite.
  • Support for jQuery 1.4.2 and jQuery UI 1.8.

Any comments and opinions are welcome but please use the GitHub issue system for bug reports.

Download jQuery Address 1.2

23 Dec 2009

jQuery goodness - new Address, Format and Thead plugins

It has been almost half an year ago when we announced the jQuery Address plugin and it's great that we're now back with a new version and two other cool additions. We're releasing them at once because I hardly find the time to blog while the code has been available on GitHub for quite a long time. Here are some more details:

jQuery Address 1.1

I hope that all who tried it have enjoyed the clean API and feature set. There were some problems that may users reported but unfortunately until now there was no free time available for an official release. This new version works better with Internet Explorer, introduces news internalChange and externalChange events as well as various other small improvements.

jQuery Format 1.0

This plugin in based on some legacy code that I have successfully used in the past few years. It enables formatting and parsing of dates and numbers with a fair level of complexity and fits well in Java based applications that require internationalization. Parts of the code have been ported from scripts like date.js and probably from others that I don't even remember. I'm interested in adding support for time zones and ISO dates but that will probably happen only if I need them one day.

jQuery Thead 1.0

It's nice to have a sticky table header that is always visible when you scroll down in a long table. I experienced it while working with Drupal and I became eager to use in another project of mine. The enabling script was jQuery based but it wasn't a standalone plugin so I made it one. The original developer wasn't fine with me releasing the code in anything different than GPL so I had to change it completely in order to use the MIT license.

Happy Holidays to everyone! This is how we do it :)

5 Nov 2009

LESS for Java

LESS is a cool project that has been around for a while and extends CSS with a few nice features like variables, mixins, operations and nested rules. The best thing about it is the syntax that feels very natural and easy to learn. I was eager to play with LESS but the main stopper for me was the fact that it is written in Ruby and I'm mostly involved in pure Java projects. It seems that my desire to try it was really strong because I sat down and lost almost a weekend in learning how JRuby works and finally produced a working prototype that only requires the Java 5 Virtual Machine. Over the last two months I was able to totally reorganize, extend and test the code base and I'm now finally glad to release it officially.

LESS for Java is a set of 2 modules that primarily target Maven 2 compatible projects but can also be used in any Java enabled environment:

  • LESS Engine contains the original LESS codebase and provides a straightforward access to the underlying API. It has been designed as a core module that can be used various scenarios.
  • LESS Servlet automatically compiles and serves LESS sources but also supports other resources like image and script files. It optimizes the server response by adding appropriate headers and applying the YUI Compressor for both CSS and JavaScript requests.

Both modules are already available on the official Maven 2 repository and you can start playing with them immediately. The current 1.2.11 version matches the snapshot of the original LESS distribution that has been used. The project has been successfully utilized on this website as well as in a bigger project built around Spring MVC and JSF. The source is available on GitHub where we're planning to put all our new open source stuff. Comments and feedback are welcome.

29 Sep 2009

SWFAddress 2.4

I'm happy to announce the availability of SWFAddress 2.4 which appears to be the most stable and feature-full version up to date. It fixes some nasty issues that appeared in the previous release and introduces a few interesting additions. Here is the changelog:

  • Support for parameter arrays.
  • Improved IE8 support.
  • Fixed IE initialization issues.
  • Fixed browser communication issues with AS2/AVM2 on Mac.
  • Fixed URL decoding for AS1 and AS2.
  • Fixed handling of swfobject.createSWF.
  • Workaround for WebKit bug 20355.
  • Frameset support and corresponding sample.
  • All methods dealing with parameters and query strings no longer return empty strings.

The project became pretty mature but we'll continue to consider interesting ideas and requests. More open source goodness is coming soon.

« Previous Entries



Blog Search

Blog Categories

Blog posts

Recommended sites