The week in qooxdoo (2010-05-28)

Welcome back to another weekly status update.

Manual goes SVN

We’ve decided to move the manual out of the wiki and into SVN. People working with trunk might have already noticed the new top-level documentation file tree. The benefits for this move include:

  • keep the manual in close sync with the release cycles of the framework
  • providing an offline version, alongside with the online version, that can e.g. be shipped with the SDK
  • providing a PDF version, e.g. for download
  • better editor support than what the wiki software can provide in the browser
  • document management functions, like automatically generated TOC, indexes, etc.

So starting with qooxdoo 1.2, we will maintain the manual pages in SVN and will be putting static HTML pages online. It is expected to fit these manual nicely into the existing homepage structure and design just like the existing wiki-based manual. The new manual will also come with a full-text search facility. The HTML pages are generated from the text files in the repository. The markup for these text files will be reStructured Text, the current choice for the documentation system to create the various output formats is Sphinx. Just like the qooxdoo toolchain, Sphinx is also Python-based and runs cross-platform. The wiki-based homepage with all its non-manual pages will stay as it is, however it is planned to update the underlying Dokuwiki to a current version as well. There will be some more announcements relating to that topic in the weeks ahead, so stay tuned.

Bugfixes

For a complete list of bugs fixed during the last working week, use this bugzilla query.

qooxdoo + Lisp = qooxlisp

Kenny Tilton let us know this week that he released “qooxlisp“, a new Lisp-based RIA framework under MIT license:

“What is qooxlisp? In brief, we drive a kick-ass Javascript RIA Web application framework from a Lisp application running on the server, managing in the end to turn a thick client into a slave programmed wholly from a server-side application.

Benefits

  • The Grand Re-Unification of application code, with everything on the server side, including the code that has to run on the client-side. Thank you, content-type “text/javascript” and eval.
  • All the power of a big programming language and all the libraries it can reach. Javascript is neat (and Lispy!) but just a toy.
  • All the power specifically of Common Lisp. You have no idea, but this might help. And I do not even mention macros!
  • The performance of a natively compiled language. Yes, Virginia, many Common Lisp implementations compile natively.

Ingredients

  • qooxdoo: a great Web application development framework.
  • Lisp: the only way to program.
  • Cells: dataflow aka functional reactive programming aka constraints. The only thing better than Lisp. Fans of OpenLaszlo, FrTime, Python Trellis, or qooxdoo’s own databinding scheme will understand. Basically, one gets a declarative programming paradigm in which data dependencies are established transparently and arbitrary invariants enforced automatically, as if one were using a spreadsheet such as VisiCalc or Lotus 1-2-3.

For more info see here.”

That’s it for today. C U around next week.

SWDC, here we come

I am really excited to have the opportunity to participate in the Scandinavian Web Developer Conference (SWDC) 2010, which will take place next week in Stockholm, Sweden. Other than the name suggests, the conference is very international. All talks will be held in English and the speaker lineup is great. Take a look at the conference homepage to see who is going to speak. There will be presentations about JavaScript in the browser, on the server and on mobile devices, so I’m really looking forward to hear all these talks.

I will be in Stockholm on June 1-3, i.e. arriving a day before the conference starts. If anybody is around and interested to meet up, just let me know. Drop me a comment or contact me via twitter.

The week in qooxdoo (2010-05-21)

Hi everyone, here’s again the weekly status update.

Dependency Logging

A common question when analyzing class dependencies in qooxdoo is “Why is this class in my app? Which other class requires it?”. Particularly in large applications it can be surprising which classes show up in a generated application, and you want to find the culprit that introduced the dependency. Since quite some time the qooxdoo generator had support for dependency analysis, with the log/dependencies config key. To answer the above questions, the log/dependencies/type:used-by setting would give you the necessary information, but so far the output was only as text on the console, and you had to track transitive used-by relations by hand. Now, the used-by analysis also supports dot output, so you can e.g. see all classes that require a particular class, and therefore cause it to be added to the application, in a proper diagram. This can also help to untangle multiple dependencies which are spread over many classes and destroy the single-interface principle.

Bugfixes

For a complete list of bugs fixed during the last working week, use this bugzilla query.

New backend: RpcJavaPojo

Jean-Baptiste Briaud, CTO of NovLog, was “proud to announce that a new contrib is now available in the qooxdoo SVN contrib.

RpcJavaPojo contrib is a Java backend implementation that is compatible with the current RpcJava contrib. Here POJO stands for Plain Old Java Object. That means we are using just classical, simple Java classes as business objects that go from and to client side. In the current RpcJava implementation, the name should rather be RpcJavaBean to explain that it relies on the JavaBean standard, i.e. getters/setters are mandatory.

The new RpcJavaPojo contrib is composed of 2 modules :

  • serialization: It uses JSON to serialize Java objects, just like RpcJava including the “date hack”. Serialization uses code from json.org.
  • RPC : it uses the qooxdoo serialization standard {service, method, param} just like the RpcJava contrib.

There are few differences from RpcJava :

  • simpler (maybe a question of point of view): works at attribute level rather than getter/setter level. Less code is necessary since getters/setters are not used.
  • more standard : rely on Java keyword transient to tell an attribute should not be serialized
  • more modular : RPC and serialization are clearly separated
  • more flexible : there are more programming hooks (maybe still not enough) to take control at different steps of both RPC and serialization
  • quicker : 2 times faster based on a simple manual stopwatch
  • more up to date : using Java 6 (Java 5 is a minimum) with generics, … but this doesn’t change your life when you’re just using it ;-)

To checkout the contrib : svn co https://qooxdoo-contrib.svn.sourceforge.net/svnroot/qooxdoo-contrib/trunk/qooxdoo-contrib/RpcJavaPojo/trunk RpcJavaPojo

The only doc is currently the readme.txt file and few emails on the mailing list.

To download directly the jar file without the code/compile chore : http://www.novlog.com/json-rpc/lib/json-rpc-1.0.0.jar“.

For more info about RpcJavaPojo also see its entry in the list of available qooxdoo contribs.


That’s it for today. See you around next week. Please note that there’s a national holiday here next Monday, so the qooxdoo core team is back at regular work next Tuesday.

The week in qooxdoo (2010-05-14)

Welcome back to another week in qooxdoo land. Actually, it was a rather short one for the qooxdoo team, with a national holiday here on Thursday and the usual bridging day on Friday. So lets focus on some cool stuff that qooxdoo users built recently:

User Success Story

John Spackman of Zenesis Limited wrote in to share information about a (non-public) qooxdoo app they created for a customer and launched successfully. Congrats!

SPAR UK Limited are a UK national retailer (part of the European SPAR franchise) with an Own-Brand product range, who have to maintain audited food and product safety specifications documentation and marketing materials. Zenesis Limited recently developed the new Quality Assurance website for connecting suppliers, external product design and marketing companies, and the trading and marketing teams within SPAR Central Office.

The Quality Assurance specification app was developed using qooxdoo and has over 400 fields that need be completed, audited, and approved – plus the marketing and other design documents relating to every Own Brand product. SPAR use an external auditing company, Micron2, who have said that the SPAR QA website is more logical and user friendly than those of the other major UK national retailers.

Zenesis is proud to endorse qooxdoo because we could not have produced the QA website for SPAR without the support of the qooxdoo technology and the development team – at least not without making some serious compromises on usability and functionality!”

If you also have a success story to share with the qooxdoo community, feel free to add it to the wiki page that lists some real-life examples and/or send in some info to be broadcast via blog post.

qooxdoo+GWT wrapper updated

A few days ago Tom Schindl of BestSolution.at shipped a QxWT 1.1.0.0 release, about a week after the availability of the latest qooxdoo 1.1. If you’re into Java-based programming, maybe already have experience with GWT, you should check it out. Most of the qooxdoo API is already available in QxWT, and for the last missing wrappers Tom welcomes everyone that helps fixing those spots. Lots of QxWT samples (including source code) are found in an online demobrowser similar to qooxdoo’s.

Drinking Old Milk?

You certainly don’t consume IE6 on a regular basis? Well, at least not without being forced to do so, e.g. for testing actual customer experience. Daniel pointed out a fancy campaign by Microsoft itself, asking users to upgrade from IE6. While they focus on outdated security features, there are tons of reasons not to use IE6, most notably inferior performance. Having said that, what about your plans to take advantage of the latest qooxdoo releases and migrating your apps from older, legacy qooxdoo versions?

Bugfixes

No status report without a list of bugfixes, so here you go: bugs fixed.

That’s it for now, C U around next week.