The week in qooxdoo (2008-08-29)

Greetings, qooxdoodians! Still breathless from yesterday's 0.8 release (and
maybe with a little hang-over here and there), we nevertheless stick
unwaveringly to our weekly report tradition. So read on!

Release qooxdoo 0.8

Yesterday saw the landing of version 0.8 of qooxdoo. This child of love and labor, with roughly 13 months of incubation and several thousands of SVN commits that went into it, was friendly received so far and we hope for further reception. So spread the word!

Memory Leaks

We have made major improvements to the internal object registration mechanism in 0.8. Many ideas came from Stefan Hansel. Thanks again to him for the many hours spent to identify and work around these issues. qooxdoo 0.8 is now without memory leaks - even in IE - which means that it is now even more practical to be used for enterprise application development. Details on the improvements will be posted next week. Stay tuned.

PNG's vs. IE7

During the very last days of 0.8 development some users started sending us screenshots and reports about bad rendering results of our Modern theme in Internet Explorer 7. This seems to only affect a small group of users, but for them it is not possible to combine stretched PNG images e.g. a image tag with increased dimensions with a opacity filter. There were many artifacts in the resulting application. The workaround now implemented in 0.8 is to use the AlphaImageLoader filter in IE7 as well. Normally it is common belief that IE7 supports all kind of PNG images natively, but it seems that in combination with other filters it might still be the better choice to use the AlphaImageLoader explicitly. Many thanks for the time spent by Maria Siebert. She helped us a lot with identifying the issue and applying a final fix (right before release).

Twitter

We started a qooxdoo twitter stream this week. Hopes are that this will give a more "real-time" insight into our project whereabouts for those of you who care, especially in times of higher attention like around releases. There is also a new friendfeed that combines this twitter stream with the news feed from this blog.

Vacation

None of the qooxdoo core developers here at 1&1 was preferring a summer vacation over finishing work on qooxdoo 0.8. Well, at least it looks like it, given the vacation schedule: in September, all of us will be gone. Of course, at different times and with a decent overlap. Anyway, mailing list support should be fine at all times in September, but please be patient if not all of your request can be answered right away. September isn't only about absence: we are looking forward to a new colleague, starting here as a full-time qooxdoo developer on Sept 15, 2008. That's actually the day I'll be back from my vacation, which starts now ;-)

Again, thanks for all your support. Take qooxdoo 0.8 for a test drive. Enjoy.

qooxdoo 0.8 released

Finally, here it is: the most amazing piece of software we ever released. :-)

qooxdoo 0.8 is a milestone, for sure. Unlike the minor jump in version number may suggest, this release includes tons of changes and improvements over the previous 0.7.3. It is impossible to account for all changes here, it's even hard for the most significant ones. So if you haven't closely followed the development of qooxdoo 0.8, you may just go ahead and see yourself to get an idea.

There have been two main areas that improved substantially: GUI toolkit and developer tool chain.

GUI Toolkit

qooxdoo 0.8 features a complete rewrite of the GUI toolkit. It is state-of-the-art and supports all major browsers (IE, Firefox, Safari, Opera). The GUI toolkit has a layered architecture: on-top of a low-level DOM-oriented layer (that might be used as a separate library), it includes a large set of widgets and layout managers (perfect for building RIAs). Online demos are available.

Users can very easily implement additional custom widgets or layouts to fit their individual needs. Theming of widgets continues to be independent from the widget code itself, and now allows for virtually unlimited styling possibilities, e.g. rounded borders, gradients, shadows. While qooxdoo comes with two new attractive themes, it is also easy to create custom themes, without any CSS knowledge required.

Special thanks go to ERGOSIGN, a leading provider of user interface design services. In a close and fruitful collaboration we created the new default theme, that nicely demonstrates some of the UI capabilities of qooxdoo 0.8. Indulge in the so-called "Modern" theme!

Tool Chain

Besides the exciting changes in the GUI toolkit, the developer tool chain has also been improved tremendously. The built-in tools free the developer from tedious and complex tasks and also aid in development.

Unlike the previous versions, which featured a Makefile-based build process and required Windows users to install and use Cygwin, in 0.8 all that ceremony is gone: Essentially, all that's needed is a working Python installation, which is trivial to setup on any operating system, including MS Windows.

With those low entrance hurdles any user should greatly benefit from the power of the integrated tool chain. There are too many features of 0.8 tooling to be mentioned here, but some highlights include image combination, integrated internationalization support, JSON-based configuration, etc. Of course, also API doc generation and unit testing.

Getting Started

API documentation is progressing towards full coverage. The wiki-based user manual of 0.8 is being updated and improved to account for all the changes and improvements.

It has never been easier to get started with qooxdoo: Download the qooxdoo 0.8 SDK package, unzip it, and see the included index.html for next steps in creating a hello world application.

Development

See the impressive number of commits over the time span of qooxdoo 0.8 development:

You notice the drop in 0.8 development activity end of last year? At that time we successfully supported and mastered large-scale qooxdoo application development. If you haven't checked out GMX.com, a large free webmail service, you should definitely do so. Some of the experience we gained from that task was also helping with the further development of qooxdoo 0.8.

Thanks

Many factors - but mostly people - play a key role in developing such a ground-breaking release. qooxdoo 0.8 could not have been possible without the many users, supporters, partners, contributors, developers and, of course, 1&1.

Thanks a lot for all your input, work and support! :-)

Please see the release notes for a detailed list of changes. Go download and enjoy!

qooxdoo’s twittering

Those of you who would like to be in close touch with our current release activities and beyond, there is a new Twitter stream for qooxdoo. Enjoy!

There is also a brand new friendfeed for qooxdoo. It currently contains the news of this blog plus all twitter posts by the development team.

The week in qooxdoo (2008-08-22)

A rather short weekly status report this time, as much work has gone into yesterday's

First Release Candidate

qooxdoo 0.8-rc1 is available and ready for a test ride. Please read the announcement, that asks for your help in identifying and reporting any open issues. Thanks for your support!

Contributions

qooxdoo-contrib is the project's infrastructure for contributions to the framework. It allows for an successful collaboration on new features and works as an incubator for features that are still experimental. As with other parts of the framework, it is constantly improving, and with the number of contributions. The build process in 0.8 (as in 0.7) allows for transparently integrating contributions. Once there are contributions available or about to become available for 0.8 this will certainly be further polished and extended. Besides the rather technical details of seemless and user-friendly integration, the overall visibility of contributions is also being addressed during an ongoing improvement, e.g. providing individual downloads or hosted online demos.

Memory Leaks

Thanks to the thorough and repeated testing of Stefan Hansel, memory consumption became one of the hot spots of 0.8 framework development last week. During the course of careful analysis and systematic retrofitting of the existing memory management facilities, memory consumption could be significantly reduced, particularly in IE. A few bugs responsible for or related to memory leaks could also be identified and resolved. In legacy 0.7 some issues seem to remain, somewhat different to 0.8, that may have more of an practical impact than expected, but this requires more analysis.

Outlook

Plans continue to have a qooxdoo 0.8 final release available next week. Keep your fingers crossed. ;-)

First release candidate of qooxdoo 0.8

We are getting closer to qooxdoo 0.8 final: a first release candidate is available. :-)

Please download the corresponding package and take it for a test drive. There are some open issues that are planned to be tackled within the next few days. It would be great if you could report all issues you find while working with qooxdoo 0.8-rc1. Documentation of qooxdoo 0.8 is in the works and should become more complete and accurate day-by-day.

There have been many improvements after the beta version, so checkout the detailed release notes, run some demos.

The week in qooxdoo (2008-08-15)

We're gearing up for the final release of 0.8!

Releases

Plans are to have a first release candidate of qooxdoo 0.8 available during the week, with the final release to be shipped this August. As we are approaching those next milestones, we really appreciate your feedback. Please do not hesitate to file bug reports.

Framework

Image Handling

Working with images in 0.8 has arrived at a very powerful level. For instance, a new low-level class has been added to create images for decoration purposes that takes care of all the images combination (a.k.a image slices), alpha transparent PNGs, various new repeat modes like scale-x or scale-y, etc. Full support for alpha transparent PNGs in IE6 in decorators and icons is included. Images in qooxdoo can now be scaled to the size given explicitly. This auto-scaling is disabled by default, but can easily be enabled with the boolean property "scale".

Hints are being output during app development when using images which qualify as good candidates for being combined. This is another smart helper to support the developer in creating low-latency applications. What such a combined image could look like? See some combined radio buttons and check boxes (taken from the List demo).

Polishing

A permanent task towards the 0.8 release. A few highlights: A lot of decoration images of the "Modern" theme are now combined for better application performance and reduced latency at load time. Many widget demos have got a lot of love. Code should be more concise, functionality be fixed where needed. API documentation is more complete, particularly by adding a lot of new class descriptions which were missing previously. To mention a few widgets explicitly that improved during the week: SelectBox, ComboBox, GroupBox, Spinner, Splitpane

More improvements

  • Decorators are now fully compatible to both box models and therefore are independent of the doctype.
  • Added support for centering Atoms. For instance this is used by buttons that center the label when more space is available (e.g. typical "OK" buttons).
  • Property inheritance has been modified a bit to convert the "inherit" value automatically to "null". Previously, apply routines and getters may have received a string value "inherit", which caused some problems and made code more complex than needed in some cases.
  • Performance and memory usage tweaks for Widget and qx.html.Element, being core components of any qooxdoo GUI application.
  • Moved widget specific layout managers from qx.ui.layout to more specific namespaces (e.g. menu, splitpane, ...).
  • Refactored and cleaned up static resources of qooxdoo, now only including blank.gif and blank.html, which are theme-independent and used by more than one class.

Unit Testing

All framework test classes have been moved from their old name space under testrunner.test to the framework class hierarchy itself. They dwell now under qx.test.

Applications

Apiviewer and Testrunner have been revamped to include a smaller amount of application data (class documentation and test classes, respectively) in their local builds. This makes development of the apps easier. Application data for the Apiviewer now only encompasses the Apiviewer's own classes and the framework classes they inherit from. The Testrunner only loads a small demo unit test class, which is maintained locally. Formerly, both apps included larger amounts of data pertaining to the framework library. This data is now available under the framework itself (see further down).

Tool chain

Downloads

We reviewed our release deliverables and refactored the kits to include just one: an enhanced SDK.

The build kit which contained pre-build applications and the quickstart kit which essentially contained an all-encompassing qooxdoo framework library were seen as of little practical value. The applications are easily evaluated through their online versions, and the new build system can create custom libraries to anybody's content. A pre-built package of the low-level layer is expected for a future release, though, that will be an alternative to other DOM-oriented libraries like Prototype or jQuery.

The many download variants occasionally stirred confusion as to which kit to choose. The reduction to one makes it trivial to pick the right kit to download.

The new SDK mirrors the new repository structure and will include a pre-build version of the Apiviewer, including all the framework classes, so people have a reference immediately at hand. The other applications have to be built first, as usual. Apiviewer and Testrunner components have been stripped down to contain only limited application data for their local development. They previously used framework data and this data is now re-created running the api and test jobs in the framework directly. The ensuing SDK will be around 20MB download size which still seems feasible for an enhanced framework package.

Skeleton and Application Creation

A script has been added to our tool chain that will create a new application from the Skeleton for you. If you invoke tool/bin/create-application.py with a few parameters, a skeleton will be copied to the desired location with all settings already adapted. You can immediately create source and build versions of it, and expand it into your envisioned application.

To this end, the skeleton will be included as source tree in future SDK packages. It is not intended to be usable in place though, since many files are only templates and need expansion through the create-application script.

We hope this will ease the process of getting up to speed when creating custom applications.

Generator

The generic job target test has been implemented and can be used by Skeleton-based applications (with a source-oriented test-source shortly to follow). Running the test job in an application will create an application-specific Testrunner application in a local test folder, which allows you to run application-specific unit test classes. An example is the application of this job to the qooxdoo framework itself.

Locales processing has been revamped. An independent translate key will re-create your .po files at any time you invoke it. A locales key in the config controls which locales will be processed. New translation files are created on the fly, but old files pretaining to a locale not listed are left intact. The code generating jobs compile-source/compile-dist also evaluate a locales key, and the data is included in the generated code accordingly. The old localize config key has been removed.

Contributions

qooxdoo-contrib is the framework's infrastructure for contributions as well as experimental features. It allows for easy and convenient setup, development, maintenance and release management of contributed sub projects. It is constantly being improved, so you might want to check-out the currently available contributions.

Most of the contributions are not labeled "ready for 0.8", yet. Some of them are rather independent of the mostly GUI-related changes of 0.8, so they could rather easily be adjusted. Others, like additional widgets, will of course need to be migrated. Don't expect many authors and maintainers to start looking into migration before a final 0.8 is available and/or they actually start to migrate their custom applications that involve their contributions.

Given the recent and also the anticipated future improvements (including better integration with the framework and better outside visibility and promotion), qooxdoo-contrib is a key ingredient for an ongoing healthy and flexible growth of the project. If you consider adding a new contribution or improving an existing one, check out the preliminary documentation, and don't hesitate to get in touch if you have any questions or suggestions.

Outlook

Again a very productive week is over. Stay tuned for the upcoming first release candidate of qooxdoo 0.8. :-)

The week in qooxdoo (2008-08-08)

Today (08-08-08) could have been the perfect target date for qooxdoo 0.8, right? ;-)

Releases

While this wasn't intended, we are getting closer to 0.8 final nevertheless. Last week a first beta was made available, and work now concentrates on the next pre-release. As you might have seen in the road map, and given the progress and scope of the current code base, we plan to have a first release candidate available soon. qooxdoo 0.8 final is planned to ship this August.

Repository re-organization

As we have briefly reported a repository re-organization has taken place earlier this week. All that is left to say is that things look fairly smooth again. The trunk seems to be in good shape, and the former backend part has been successfully migrated to the qooxdoo-contrib repository (thanks to Fabian who did all the tedious SVN juggling). It now dwells there in the form of several independent "Rpc*" projects (see next section).

RPC Servers

qooxdoo offers an advanced RPC mechanism for direct calls to server-side methods. It allows you to write true client/server applications without having to worry about the communication details.

The qooxdoo RPC is based on JSON-RPC as the serialization and method call protocol. All parameters and return values are automatically converted between JavaScript and the server-side language. qooxdoo provides such optional server backends for Java, PHP, Perl (and Python currently hosted externally).

Those existing RPC servers have been relocated in accordance with the backend contributors. The are now available in qooxdoo-contrib. Not only did it allow for a more concise qooxdoo frontend file structure, but now also an independent development process and own release management (e.g. for hotfixes) is possible.

Your favorite language is missing? Feel free to write your own qooxdoo RPC server, it is fairly easy. If you follow the rules of the Server Writer Guide, you should end up with a conformant implementation.

Ravelled-out Tool Chain

We have a new script in the working called createProject which simplifies the creation of new qooxdoo applications. You just will have to provide a name and optionally the top level namespace and the script will create the qooxdoo application into a new directory. The application is already configured and ready to build and run.

The private optimizer has got a little bug fix to also compress/rename privates created through a simple assignment.

Ruminative Framework

Shadow

We have added generic support for shadows on top level widgets like windows, menus or tool tips. The shadows can be styled by any decorator. Shadows are now used in both the classic and the modern theme.

Table

After the port of the table we fixed many small issues and a bunch of long open bugs reported against the 0.7 table. We have even backported most of the fixes into the legacy_0_7_x branch.

Theming

  • More work of polishing the Modern theme.
  • Minor changes at the feed reader application. Mainly changed the appearance of the windows to better adapt the look of the Modern theme.
  • Another improvement included icon themes. The current trunk contains a few more icons Tango and Oxygen have in common. Also some icon names were improved to make them more consistent.
  • Work to improve the performance and structure of the decoration themes have been started this week. Currently the trunk still has some issues introduced with the new code. The situation will hopefully improve during the first days of this week.
  • The ''Rounded'' border was removed for the moment. It is currently not recommended to use the VML/CSS3 based renderer because of a few display inconsistancies. There are good alternatives however like the ''Beveled'' or ''Grid'' decorator which are also used heavily by the ''Modern'' theme.
  • Several bugfixes.

Miscellaneous

  • Added support for context menus on widgets. These menus are automatically attached to the contextmenu event and are automatically placed to the mouse cursor.
  • Added support for cancelling the native context menu. By default this is enabled when using qooxdoo in an application like environment through the usage of qx.ui.root.Application.
  • Added ''getSortedSelection'' to all selection managers. This returns the selection sorted by the occourence in the list/tree instead of the sequence the items where sorted.
  • Imporved drag&drop support, now with full API documentation. Added support for getting the related (current drag or drop widget, depending on the context) and original target (the widget which is hovered) during drag&drop events.
  • The ''iconOpened'' property was removed from the Tree. It is now handled as in every other qooxdoo widget using a state together with the matching appearance theme.
  • The Tree has got full sub control support which means that the icons, labels etc. are now easily accessible inside the appearance theme for improved customization options.
  • Renamed alignment utility to PlaceUtil and methods from ''alignToXXX'' to ''placeToXXX'' after discussion with native speakers. Thank you for that type of feedback.
  • Fixed SelectBox and ComboBox to behave correctly during hovering items. The selection was decoupled between the list and the text field to allow a quick selection during mouse over. Thanks to the community for the feedback to this issue. Sometimes it is easy to miss these details.

That's it for this week's round up. Take care!

Repository re-org

Here is late-breaking news for those of you who keep in close touch with the qooxdoo repositories. There have been two major changes today:

  • The backend part has been removed from trunk. Latest development was done in the legacy_0_7_x branch, and future development will be done in the qooxdoo-contrib repository, so there was no need to retain it in trunk. We are currently working feverishly to extract the backend from legacy and import it to contrib, retaining history, so this change is close ahead too.
  • The directories beneath frontend were lifted up one level, obviating the 'frontend' folder. At the same time, the old application folder has been split into application (containing full-fledged, stand-alone applications) and component (containing projects that have a more complementary character).

I'm sure there will still be rough edges. We were working today to get the trunk back to speed. There is more and more authoritative information to come. Stay tuned.

Beta release of qooxdoo 0.8

This is good news, so why only announce it in the recent weekly status update? Exactly, so check out the release notes of qooxdoo 0.8-beta1, try the online demos and make yourself more familiar with all the cool new stuff of 0.8.

The week in qooxdoo (2008-08-01)

The cherry on this week's icing is to have released:

qooxdoo 0.8-beta1

As has been planned a first beta release of qooxdoo 0.8 was made available today. Just three (but busy) weeks after alpha2 now most of the widgets and most of the applications have been ported to 0.8. See the release notes of qooxdoo 0.8-beta1 for more details.

Table bug hunting day

Wednesday we declared as official "table bug hunting day". After the port of the 0.7 table to the 0.8 widget system was feature-complete, we wanted to make sure that everything still worked as before. Since the table has a really large code base with at least ten different contributors we asked the community to help us find the remaining bugs. The response we got was really amazing. We got more reports than we could fix in just one day, including some really obscure issues we would have probably missed otherwise. Most of the reported issues are fixed in today's 0.8-beta1 release. The few still open issues are filed in bugzilla and will be fixed before 0.8 final. Big "thanks!" to everyone who has reported table bugs. The virtual "bug hunter of the day" award goes to Dietrich Streifert, who filed not less than 5 bugs with clear descriptions and nice screenshots.

Check out the various demos of the new 0.8 table in the demo browser.

Subscribe

As a reminder on the various options to stay up-to-date with the project, in addition to the regular mailing list: You can subscribe to feeds either directly by your feed reader (which is what most people do nowadays), or alternatively by email (if you prefer a more traditional workflow).

Social Networks

Social networks certainly are a matter of taste. If you are into virtual networking and connecting yourself to people that share your interests, you can now also subscribe to "qooxdoo" groups that are available (at least) at the following services: LinkedIn, facebook, Xing, ShortView

Subversion

SourceForge.net is the world's largest Open Source software development web site. As you all know, qooxdoo's code repositories are hosted there as well. They recently started a large-scale data center migration that affects basically all their services. Hope is all of them benefit significantly from the new hardware/infrastructure as well as software upgrades. After migration of SVN, they noticed a couple of severe performance issues (despite that SourceForge's SVN access could never really be called "fast"). Anyway, they focused in resolving the issues, which included a few (planned and announced) outages. Of course, that did slow down our development activities a bit. Sorry for any qooxdoo SVN troubles you might have encountered yourself recently.

Generator

The generator saw mainly internal consolidation this week. Relative path handling has been improved, and the documentation has been aligned to be consistent with it. "frontend/framework/tool/data/config/example.json" is an extended configuration file that can serve as a sample for config file writers and if you need to dig deeper than what the Skeleton config file offers.

Demobrowser

Some effort has gone into the Demobrowser. We wanted it to offer each demo application styled in both the "Classic" and the "Modern" theme, and let the user switch between them. To that end all demos are generated in theme-dependent variants, and the demobrowser GUI has an additional drop-down to support the switching. Check it out.

Outlook

Next week we will consolidate bugs and todos, preparing for the development of a first release candidate of 0.8. Still a lot of work ahead. The better your support (bug reporting, fixing, cheering), the better progress and result. Thanks in advance, we really appreciate it!

 

Control

 

Categories:

Archives:

 
SourceForge.net Logo

Bad Behavior has blocked 760 access attempts in the last 7 days.