The week in qooxdoo (2008-09-26)

Another weekly status report. Another brief one. Most team members will return shortly return from vacation, so there'll be much more to cover on a weekly basis. Nonetheless, some team members are up for a challenging:

Winter of Code

Well, sort of. Apologies to Google. ;-) Anyway, two students will join the qooxdoo core team at 1&1 in October. One of them, Martin Wittemann has been a long-time contributor and team member, and will certainly have fun with his Master thesis on an interesting and overdue topic: databinding in qooxdoo. The other student, Yücel Beser, is new to qooxdoo, but nonetheless his Bachelor thesis will surely improve the way we all create and maintain qooxdoo applications. We're looking forward to working with you guys!

Ok, let's keep the status report really short this time. Next week we'll pull together more information: new contributions, roadmap updates, bugfixes and so on. C U.

The week in qooxdoo (2008-09-19)

Still holiday season around here: team members returning to work (me this week, Thomas next week, Fabian the week after), or about to go on vacation (Jonny, Alex). Among all the temporary coming and going, there is also a highlight:

New core developer

Christian Schmidt joined the qooxdoo team this week as a new full-time employee at 1&1. During his recent diploma thesis he already worked with qooxdoo and Eclipse RAP, so now he started to dig into all the new features of 0.8. Sure he'll say hello to everybody soon. Again, welcome Chris, glad to have you here. :-)

Framework

Work continued on stabilizing and improving the framework. Some of last week's issues include:

* Bugfix for #1407: IE6 freezes due to missing "blank.gif" placeholders.
A missing "#asset" directive caused the "blank.gif" image to be requested with the wrong URL. As this image is used at every so-called "protector" DOM element (an element which is used along with the decorator implementations), the browser unsuccessfully requested this image multiple times. This caused problems - especially IE6 could freeze up. This issue is now fixed in trunk.

* Bugfix for #1132: Inline window stops dragging when it gets moved too quickly. Using window widgets inside an inline application now works as expected.

* Bug #1415: Standalone demos currently don't work for IE in trunk, i.e. demos that are opened outside the demobrowser. This bug has to be fixed in future versions, just want to you let know about when you are developing in SVN trunk. Stay tuned for a bugfix :)

* Added check for all non-static classes. In order to catch mistakes during development more easily, an "exend" key is now required for all non-static classes, otherwise an error is displayed.

JavaScript browser war

Sure you noticed, at least after Mozilla announced TraceMonkey, then Google Chrome entered the browser market, and now Webkit's new JS engine SquirrelFish Extreme arrived. Those are truly exciting times for web development - and especially qooxdoo. With its determination to leverage JavaScript for creating web applications these announcements feel like some paradigm shift that we hoped for - and envisioned - for quite a long time. But that there are so many browsers now, that rival each other for the JavaScript performance crown, is fabulous. At least three browsers come with sophisticated JS engines that are up for the challenge to bring JavaScript execution speed into absolutely amazing regions: Webkit SquirrelFish Extreme, Firefox Tracemonkey and Google Chrome V8.

You shouldn't just sit back and enjoy this competition of JavaScript engines from a distance. Get ready with your qooxdoo rich internet application. There has never been a better time for creating qooxdoo-based RIAs!

The week in qooxdoo (2008-09-12)

While most of us (Fabian, Thomas and Andreas) are on vacation we were working hard on the documentation and the mailing list this week.

Bugzilla

The Bugzilla cleanup is now finally done. All bugs are sorted into the system. Sebastian has written a few paragraphs on how to deal with bug reports. Basically all defects are directly added to the next milestone of the specific branch to get fixed as soon as possible. All of these bugs are assigned to somebody who works on this one (or delegates it further). All other reports are regarded as enhancements. These are priorized to show which ones we regard as next steps in our development. Anybody could help us with these. Voting is possible to let us increase the priority of specific reports. We listen to your feedback.

Google Chrome

It seems that the guys at Google have changed the user agent identfier through one of the last revisions. We have updated the user agent detection to correctly detect the new Chrome version now. For users depending on Google Chrome support (if there are already any), we suggest to use the SVN version for now. Through the holiday season there are still some weeks until 0.8.1 will be released.

Documentation

  • Alex has added some documentation on how to use inline widgets with qooxdoo. Inline widgets are basically isles in a classic HTML dominated web page.
  • A new document by Sebastian explains the appearance system and some of the internals. Especially interesting for users which are highly interested in understanding and make use of the full power of the appearance system.
  • Image clipping and combining talks about the generator and how to use it to combine images and to the reduce the effects of latency through the use of image sprites.
  • qooxdoo 0.8 comes with a lot of nice low-level APIs to directly work with the DOM of HTML or XML documents. Alex's new documentation explains the current set of features and tries to give an overview to the extensive set of classes and functions.
  • Improved API documentation of popups, tooltips, tree virtual and progressive.

Framework

The framework itself has also got some love, too. Mostly this affects bug fixes. This week we have fixed 37 bugs. Our cleaned up Bugzilla really helps to get a better view at the real defects to fix them with high priority. Topics included:

  • The image handling, where scaled and unscaled image now behave correctly in all browsers
  • Fixed support for "removeAll" which had made issues in 0.8 (clearing a SelectBox, etc.)
  • Added support for "input" event when typing into password fields
  • Fixed a few issues when dynamically changing the content of List based widgets (e.g. SelectBox)

Further some improvements were made as well:

  • Better open/close symbols are now used in the tree widget
  • Changed appearance values for undefined. These have been modified from string "undefined" to simply use the primitive undefined value.
  • Improved styling of disabled buttons and text fields
  • Placement algorithm changed to use bounds instead of size hint for greater stability
  • Added completely new visibility queue to better take track of visible widgets. The information is used by the appearance system to do not apply state changes to invisible parts of an application.
  • Improved constructor of Widget for better performance when creating new instances
  • More memory friendly handling of layout children through the removal of one previously used array which is most of the time identical to the normal children array.
  • Minor tweaks and cleanups to the default variant set were made (rev. 16331)
  • Better text color inheritance support in Modern theme

The Demo Browser, API Viewer and Feed Reader were updated to the latest version.

That's the news for this week. Until next week.

The week in qooxdoo (2008-09-05)

Greetings, friends of qooxdoo! We're looking back on the first week after the 0.8 release. Unsurprisingly, it was pretty much filled with documentation, bugs juggling, and other deeds of entropy reduction. And, as we all know, after release is before release.

Demobrowser and IE

The last weekend provided a bit of flurry when it became apparent that the online version of the Demobrowser had issues in IE6 and IE7 browsers. Demos had to be activated more than once, in order to see them running. The issue was due to the special loading mechanism deployed in the Demobrowser app. It has been fixed online, and local installations didn't have that issue anyway.

Bugzilla Clean-up

We have tried to tidy up our bugzilla database, setting some conventions about how bugs shall be treated, to ensure a sound treatment of all of them. Components like "wishes" have been replaced by more meaningful ones. The idea is to have a component structure that mirrors functional units within qooxdoo-the-project. A lot of bugs have been reviewed, re-categorized, re-prioritized. We started piling up bugs for 0.8.1, and are looking at using the assigned/unassigned and the 'enhancement' feature of bugs to set up some sort of categorization and workflow. There are still some bugs open for being moved around. This is planned to be completed during the next week.

Documentation

Documentation for the current 0.8 release has been heavily revamped and extended. The overall structure has been reworked, and many articles have seen substantial extension. Please have a look and offer your feedback. Here is a selection of articles that have been affected:

More tutorials and technology documentation is planned for the next week. Please feel free to give feedback and ask questions. This is the best time to do so!

Fixed Bugs

This week also some bugs were closed. Sebastian has fixed major issues with the Grid decorator and the location code which mainly affected Internet Explorer 6 and 7. Johnny has fixed some some quirks in the API Viewer when Opera is used. He also has improved the way the API Viewer deals with links to hidden items e.g. protected methods. Internet Explorer now shows correct syntax highlighting for code segments in the API Viewer.

Contributions

This week saw the porting of HtmlArea and the UploadWidget to 0.8. However the HtmlArea has still some rough edges, so if you discover some bugs don't hesitate to report them. Thanks to all who contributed, especially Alex and Petr.

That's it for this week. Be in touch next time.

Seeking new adventures

"Twenty years from now you will be more disappointed by the things that you didn't do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover." -- Mark Twain

Why am I quoting this? Well, my desire for new adventures has gotten the best of me once more…Tuesday September 16th will be my last day with 1&1 and I’m off to join StudiVz (Wikipedia), a social networking platform for students, in particular college and university students in Europe. A little more about that in a moment, but first I wanted to say a few things regarding my current employment.

My time at 1&1

I joined 1&1 more than six years ago to grow, learn, do "stuff that matters" and have fun while doing it. I started in the online production, simple websites became more feature rich and I focused on JavaScript over time. Later I continued in the core development. During my time there, almost four years ago, Andreas and myself started with qooxdoo to find out how to improve web applications to make them richer and more impressive than ever before. qooxdoo is a awesome piece of software. I really enjoyed developing it.

At this point, it would be appropriate to call out some of the people I admire and that have influenced me in many positive ways and provided me with support and great advice while at 1&1, but the list would be too long, and I'd risk missing people out. So, look, you know who you are - and I thank you :-) Many thanks to all the qooxdooers outside as well. It is a pleasure working with all of you!

So now on to StudiVz

I will move from the qooxdoo "headquarters" in Karlsruhe to Germany's exciting capital Berlin. It is a trip of 700 kilometers which means about five hours using the train. I'll be joining as the team leader frontend and will improve the whole interface of StudiVz to make it even more attractive and appealing. StudiVz is one of the biggest network portal players in the European market. Still quite a small company compared to 1&1, with currently under 200 employees.

But they have some impressive guys there. The interview was really interesting and I am still fascinated by their ideas and future plans. Thriving such a product to improve upon their current efforts is definitely a cool job. Berlin is also a very interesting and attractive city. Never planned to live there, but the parts I have seen recently are definitely worth at least a visit.

What's about qooxdoo?

qooxdoo, a "baby" of mine. Yes, I love this piece of software. I spent uncountable hours in developing and improving qooxdoo. Maybe I have to mention, that one of the most important tasks for me during the whole qooxdoo progress was to get this new layouting and theming into a release. I think this is the most important milestone for qooxdoo development since 0.1. And finally it's done.

For me this step means an interesting new option in my career with many ways to improve upon my current knowledge and experience. It means human responsibility and even more influence on software architecture. At the beginning I start with a small team of three or four developers, planned to increase to over ten over the first half year.

For sure I'll closely follow the qooxdoo development in the future and intend to spend a few hours each week to keep in touch with the newest development. But to be fair, my main job will be to improve StudiVz and not to improve qooxdoo. I hope to convince my new collegues at StudiVz to use qooxdoo. I personally really want to continue to use qooxdoo! Hopefully it will be possible to contribute new features to qooxdoo as well over time.

Finally

I can tell you this today - StudiVz is cool, the oh-my-that's-the-coolest-thing-I've-seen-and-I-want-to-be-a-part-of-it-kind-of-cool-thing that gets me very excited. Hey, it had to be to take me away from a job, the people, the company and a city I love!

Chrome - a browser designed for qooxdoo

"Google will release a browser" that was the news of the day. But what does this mean for qooxdoo? Judging just by reading the available information (before the release) it seems to be the browser we as JavaScript developers have been waiting for.

But wait a minute. A state of the art browser is nothing one can build over night. Not even Google can do this. Remember how long it took for the Mozilla team to create a somewhat decent bowser after being open sourced? The same is true for Safari. The first Safari basically sucked. Safari 2 was usable to surf the web but to run qooxdoo it had too many bugs and too poor JavaScript performance. Now Google tells us they have a brand new web browser, which is meant to raise the bar for all other web browsers. Normally I wouldn't expect much from a completely new web browser still in its beta stage but hey this is Google and they promise a lot. So of cause I had to download and test it.

I'm impressed

To make things short: "I'm impressed!". They really deliver what they promise. Chrome is really fast, the rendering is correct and I even like the UI. But the best is it runs qooxdoo without any modifications.

Chrome running the qooxdoo 0.8 demo browser

Chrome running the qooxdoo 0.8 demo browser

Granted they use the WebKit rendering engine, which we support, but most other parts of the browser (including the JavaScript interpeter) are new and could not be tested with qooxdoo before. Even gmx.com, a fairly large qooxdoo 0.7 application, runs without any problems.

Chrome running gmx.com

Chrome running gmx.com

Pushing browser technology

Its nice to see qooxdoo running smooth and fast in Chrome but what really matters to me is that this browser raises the bar for the other browser manufacturer technologically.

Finally JavaScript is getting some love. After WebKit's SquirrelFish and Mozilla's TraceMonkey Chrome's interpreter V8 is the third JavaScript interpreter within a very short period of time, which promises way better JavaScript performance. Good JavaScript performance is one of the key prerequisites to write even more feature rich web applications. Technically I should not call them interpreter as at least TraceMonkey and V8 use just in time compiling (JIT) but I'm used to use this term so I'll stick with it for the moment. Cool about V8 is not only the technology but also that they have released the source on the same day as the browser. Its under the BSD license, which basically means that everyone who wants to embed this interpreter is free to do so.

The second ground breaking feature is threaded browsing. In February Thomas has written a nice article about why Firefox should support one JavaScript interpreter per tab. Now a few months later Chome is here and does exactly that. Isolating the tabs from each other and especially the JavaScript interpreter in the different tab is a real killer feature to me. This is a feature your parents and grand parents have waited for - of cause without knowing it :-) There should be no reason that the UI of the whole browser freezes just because some badly written JavaScript code is running. With Chrome we see that at least Google can do better. My hope and my prediction is that we'll see this in Firefox and Safari in the not so far future as well. I'm not so sure about the Internet Explorer though. Maybe in the year 2012 in IE9.

Developer Friendly

To make a browser successful, tooling is a critical aspect. Anyone who ever had to debug JavaScript in IE6 and got the infamous "Undefined is null or not an object" error with no indication where the error happened knows what I am talking about. There is a huge difference between a browser, which can run AJAX applications and a browser which can be used to write AJAX applications. Fortunately the Google guys are tech guys and they stuffed a lot of interesting developer tools into Chrome. So Chrome definitely is a browser, which can be used to write AJAX applications.

Chome developer tools

Chome developer tools

Chrome developer features:

  • A process monitor, which shows how much memory, CPU and bandwidth is consumed by each tab
  • A stripped down version of WebKit's DOM inspector. Here is still room for improvements but is good to see this in the first beta release
  • A command line JavaScript debugger. This one is really geeky. I haven't yet figured out how to use this beast. Maybe I just wait for the GUI.
  • Gears is included

All in all I must say I'm more than impressed by Chrome. One can see that Google has written this browser with web applications like GMail in mind and what is good for GMail is clearly good for qooxdoo as well. The 'beta' label is probably only there because people expect this from Google. I've seen worse browsers marked as a stable release. My only gripe with Chrome right now is that its not yet available for the Mac.

I encourage everyone to download and test it - if you like it install it on your mother's computer :-)

Have fun

Update

I have to apologize to the Internet Explorer team. I said that I don't expect them to run the browser tabs in different threads. In fact IE 8 already has this feature. It was just slipped under my radar. I guess this is because they marked it mainly as a security feature. Thanks Markus for correcting me. Whether a browser isolates JavaScript execution can easily be tested by typing this URL javascript:while(1) {} in the location bar.

 

Control

 

Categories:

Archives:

 
SourceForge.net Logo

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