The week in qooxdoo (2008-10-24)
Filed under: Activity Reports
By Andreas Ecker @ October 27, 2008 9:26 am
Another week, another weekly status update. Quite a lengthy one this time again:
Bugfixing
Regular framework development saw quite some bugfixing during the week. Some of the changes include:
* ToolTip now (again) allows for HTML content in mode "rich"
* Spinner works again corrently with numberFormat support
* An annoying bug in IE7 was fixed regarding missed click events on Buttons
* Drag&Drop now works inside window widgets
* Hover effect on SelectBox now is similar to the effect on regular Buttons
* Fix for mousewheel in SelectBox when used in combination
with ScrollContainer
* Fix for appearance of ToolBar checkbox widget (state:
checked + disabled)
* Appearance fix for ToggleButton
* Internationalization: Comments are now generated into PO files. A "trc()" method is now included.
* Minor improvements to the portal application (e.g. the application now
also looks ok for smaller resolutions (1024x768))
For a complete list of bugs fixed during the last working week, use this bugzilla query.
Flash
The cross-browser handling of Flash has been improved and made less fragile (for IE), both in qooxdoo 0.7 and 0.8 (e.g. bug 847). If you happen to work with Flash integration and notice some issues, please let us know, Chris will certainly have a closer look.
Manual / Wiki
The Generator Overview page has been update to reflect the actual state of the software, and an additional Generator
Usage page has been added, to make you accustomed with the command line invocation.
The manual page on internationalization has been updated to account for the internal changes of the build process (i.e. separate "gettext" utils no longer needed in 0.8).
A snippets section was (re-)introduced. It is to collect short code snippets that could help other qooxdoo users. So if you have something to add, please do so. All you need is to login to the wiki and add a section. The page is still quite rough, but don't hesitate to add your tips and tricks till it gets more polished.
Build Performance
We had a recent post on build performance under Windows which spurred a bit of feedback. Thanks to all who posted back. The general perception seems to be that Python running natively under Windows is a good deal faster than running on the Cygwin compatibility layer. It also seems that running the build process under Linux gives an additional performance advantage. One poster suggested that even running Linux in a virtual machine on a Windows host is faster than running on the host directly, which seems impressive. So if you are working on a larger project, or in a team context, it might be worth thinking about a dedicated Linux box to run your build process on.
Build System
First steps have been taken to improve the way you can tweak and modify
standard generator jobs in your own config (see bug 1417). Currently, the way
job definitions are merged (e.g. during job expansion) has been
streamlined and will be further refined. The aim is to have an easy and
intuitive way to overload and/or extend specific parts of a job, without
repeating the whole job in your config all together.
Memory Leaks in 0.7.x
Several tests of qooxdoo 0.8 have verified the solid concept and implementation for avoiding memory leaks, even for large, long-running qooxdoo apps. Compared to qooxdoo 0.8, memory handling of previous versions 0.7.x wasn't as strong as it could have probably been. For most qooxdoo apps in 0.7.x this wasn't a real problem, either because they weren't too complex and/or regular usage wouldn't let the leaks become critical. Some of the larger apps also implemented some strategies (also for performance reasons) to pool and reuse widgets, which helped keeping overall memory usage sufficiently low, see GMX.com for a large-scale app.
For frameworks on top of qooxdoo 0.7.x, most notably Eclipse RAP, this was still problematic. Usually creating and disposing large amounts of widgets for complex, long-running applications, qooxdoo 0.7.x didn't allow RAP for implementing a generic pooling concept due to fundamental limitations of the underlying widget system (BTW, removing those limitations was a major design goal for qooxdoo 0.8 and should now be completely gone).
Anyway, good news is that a more rigorous memory management for qooxdoo 0.7.x is available. Thanks to the good collaboration with Stefan Hansel, the final improvements have been checked into the "legacy_0_7_x" SVN branch (see Revision r16512 and a later fix for Tree). Guess there will be a separate blog post to cover some details, for now please note that there is an additional "destroy()" method available on widgets. Unlike the usual "dispose()" method this also removes DOM elements that belong to the widget. Existing qooxdoo 0.7.x apps shouldn't need code changes (at least not regarding memory management) to work with the latest legacy branch. It would be great to get feedback from existing users of 0.7.x, both for the compatibility of your unchanged app as well as taking advantage of the optional "destroy()" for scenarios that actually require the complete destruction of widgets (pooling still being the preferred alternative).
Upcoming conference
One of the most well-known German conferences on modern web technologies is "AJAX in Action". This year it is held in Mainz, Germany on Oct 28-31, 2008. We will also be around during main conference days (i.e. Wed. and Thu.), so it's a good chance to meet us in person and talk about qooxdoo. Fabian is going to present "Modern GUI development in the web with qooxdoo" (in German). There will also be a RIA Panel that I (Andreas) will participate in. Johnny and Alex will also be around during the two main conference days. Looking forward to talking to you.
Meet the Team
If you haven't had the chance yet to meet us at conferences and other events, make sure to check out the developer page. All qooxdoo core developers at 1&1 have added some info about themselves, including bio and picture. Hope you like to get to better know some of the people behind the project. Of course, all fellow co-developers and contributors are welcome to share some info about themselves and their contributions with the qooxdoo community. Just login to the homepage (it's completely wiki-based) and start updating the developer page.
Have a good working week!
