Dojo.workshop(“Haifa”) – Israel, April 11th 2010

After last years. Dojo event in Haifa, Israel, Yoav Rubin from IBM Research Labs was so kind to set up another Dojo event on April 11th. This free event will give you the possibility to get insight into the new features of Dojo 1.4, how you already today can build mobile applications with the Dojo Toolkit and we’ll take a look into the future and see how we can access hardware from an API within a mobile browser.

Join us for a full day of Dojo, JavaScript, Mobile and lots of interesting topics.

Location: IBM Research Labs, Haifa, Israel

Date: April 11th, 2010

Schedule: Will be posted soon, including Dojo overview, Mobile JavaScript and much more

Registration: Click here.

Cost: Free

Food: There will be food, sponsored by IBM

See you in Israel, looking forward 🙂

Dojo Week in Review #4

First Dojo security advisory in 2+ years, a number of great Dojo articles and tutorials, and many improvements.

Dojo 1.4.2

Dojo 1.4.2 is live. Regardless of the version of Dojo you are using, please read the full Dojo Security Advisory and upgrade your version of Dojo now. We have new versions of Dojo for 0.4, 1.0, 1.1, 1.2, and 1.3 as well. The AOL and Google CDNs are also updated to resolve this security concern. If you have any issues with upgrading, please contact us.

New Community Tutorials and Demos

David Walsh has authored a nice News Scroller demo. Dojo the Definitive Guide author Matthew Russell has a tutorial on charting, USAID Data Charted with Dojo . Tom Elliott whom we met at Dojo Beer in London has created a great new explanation of using the Dojo build system.

Cody Lindley (SitePen) has authored a Learning Dojo blog post outlining the best resources available for someone new to learning Dojo. Kris Zyp (SitePen) has a number of interesting new blog posts:

eWeek has a nice write-up about Dojo user Coyote Point Systems.

A new XForms and Dojo-based rapid application development tool is available from BetterForm. “betterFORM allows easy creation of highly dynamic Web 2.0 user interfaces with attractive controls and layout. You can add validations, calculations, actions and events to build complete webapplications in a declarative way.” A demo is available.

Improvements to Dojo in trunk

Significant improvements were made from March 3rd to March 12th.

Nicola Rizzo has been improving DojoX’s effects using CSS3 animations, be sure to check out the demos.

James Burke (Mozilla Messaging), Mike Wilcox, Bill Keese (IBM), and Adam Peller (IBM) addressed the Dojo Security Advisory with fixes and new releases for Dojo 0.4, 1.0, 1.1, 1.2, 1.3, and 1.4. Please upgrade now.

A number of other improvements throughout Dojo, Dijit, and DojoX were made by Bill Keese, Nicola Rizzo, Jared Jurkiewicz (IBM), and Doug Hays (IBM).

Recent Events

QCon London occurred this week (March 10-12). On the evening of March 11th there was be a Dojo Beer event with Nikolai Onken, Tobias von Klipstein, Sam Foster, and I. On March 12th, Nikolai, Torrey, and I gave talks on the Browser as a Platform track along with Joe Walker (Mozilla) and Simon Oxley (Aware Monitoring). Conference slides and video will be available on the QCon web site in the near future.

Upcoming Events

SWDC 2010 is coming up in June and is hosted by Dojo contributor Peter Svensson. It features a great line-up of speakers including a number of Dojo committers or contributors (Nikolai Onken, Wolfram Kriesing, Mark Wubben, and I). And Stockholm in early June is amazing.

Dojo Beer events are also coming soon in Washington DC (JSConf), Israel, Austin Texas (for SXSW) and more. Let us know if you want to schedule an event in your area.

Dojo Security Advisory

If you have Dojo 0.4 through Dojo 1.4 installed on your site, you are strongly encouraged to read all of this message and take immediate action.

We recently had a security review done on the Dojo codebase, and some issues were discovered. Most of the issues were in test files or related PHP files, but there were some issues discovered with a few files used by modules. You are strongly encouraged to remove some files immediately to give yourself the best protection. While we are not aware of any specific exploits, we take security issues very seriously and we encourage you to take quick preventative action.

Quick instructions

Some of the files listed below may not be in your version or build of Dojo. These instructions are listed to be comprehensive across all the Dojo versions.

  1. If you use Dojo from the AOL or Google CDN, the issue is already fixed.
  2. If you have PHP enabled on your site, turn off PHP for the directories that contain dojo/dijit/dojox. Dojo only used PHP files in some tests and demos, but PHP is not required to use Dojo.
  3. Remove the following files:
  • util/doh/runner.html – a file used for tests, should not affect production/deployed code.
  • dojo/resources/iframe_history.html – in 0.4 it is just iframe_history.html in the dojo directory. This file is used by dojo.back. In Dojo 0.4, it was used by dojo.undo.browser and dojo.io.IframeIO.
  • dojox/av/resources/video.swf – used by dojox.av.FLVideo
  • dojox/av/resources/audio.swf – used by dojox.av.FLAudio

If you use one of the modules listed above, instead of deleting the files you can do one of the following:

  1. Get an updated release with the security fixes.
  2. Pull the specific files from one of the updated builds.

If you do your own custom builds, you are encouraged to also get an updated release or pull the correct files, both options listed below.

Updated Releases

New releases of the 0.4, 1.0, 1.1, 1.2, 1.3 and 1.4 branches have been done that contain all the security fixes. These builds only have the security fixes applied, and have some new defaults for some build commands.

Here are the updated builds:

To avoid accidentally copying files test files during custom builds, the build option “copyTests” now defaults to false, and “mini” defaults to true. The “mini” option removes the demos directories and now removes all PHP files regardless of location. With these new defaults, it should reduce the attack surface for the future. If you need the tests or demos in your builds, then pass “copyTests=true mini=false” as part of the build command.

Pull Specific Files

If you have your own custom, modified Dojo source and cannot update to the new builds, you can go to the directories listed in the “Updated Builds” section and grab the files you need from the version that most closely matches your version and just copy them over to your distribution.

Some branches do not have all of these files, just replace the files that exist in your distribution:

Dojo 1.0+

  • dojo/resources/iframe_history.html
  • dojox/av/FLAudio.js
  • dojox/av/FLVideo.js
  • dojox/av/resources/audio.swf
  • dojox/av/resources/video.swf
  • util/buildscripts/jslib/build.js
  • util/buildscripts/jslib/buildUtil.js
  • util/doh/runner.html

Dojo 0.4:

  • iframe_history.html

In addition to grabbing the files listed above, be sure to delete any .php files in the dojo/dijit/dojox directories, if PHP is enabled on your server.

Description of Issues

The main issues that are being fixed in this update:

  • Some PHP files did not properly escape input.
  • Some files could operate like “open redirects”. An bad actor could form an URL that looks like it came from a trusted site, but the user would be redirected or load content from the bad actor’s site.
  • A file exposed a more serious cross-site scripting vulnerability with the possibility of executing code on the domain where the file exists.
  • The Dojo build process defaulted to copying over tests and demos, which are normally not needed and just increased the number of files that could be targets of attacks.

Actions to Prevent Further Issues

We take security issues very seriously. We are fortunate that the issues above were brought to us via a security review by community members, and we have addressed the issues as quickly as we can but at the same time making sure we have comprehensive, safe fixes.

We changed the build defaults so that the area with the most issues, tests and demos, are not copied automatically in builds, reducing the surface of attack.

The non-test-related issues were in a very old file that did not get enough attention, or in newer flash modules. We do not expect to have the same issues again for those kinds of files now that we know better how to review them.

However, security requires continued vigilance. To that end we have set up new dojo-sec mailing list to handle any further security-related inquires, see next section.

Summary

Please take immediate action to make sure your site does not contain one of the files listed in the “Quick Actions” section. In most cases the files can just be safely removed, since the modules affected are usually not heavily used. However, there are new builds of all the branches with the security fixes that can be used.

If you have any questions, please feel free to ask our community

If the concern is something you want to keep private, you can contact our newly created security list: dojo-sec at mail dot dojotoolkit dot org.

Dojo.beer(“London”), March 11th

As Dylan already wrote in the last “This week in Dojo” there will be a Dojo.beer(“London”) in guess what? … London, march 11th.

Right at the same time as QCon, come join Dylan, Torrey, me and others for drinks, food and as always, lots of Dojo, JavaScript and other cool stuff we web-hackers like.

The event will be located at (and is free):

Location: Two Chairmen, 39 Dartmouth Street, SW1H 9BP London

Date/Time: March 11th – 18:30 – until the end 😉

If you are planning to drop by, make sure you let us know via this form.

Looking forward to this one.

P.S. More dojo.beers are planned in April, including Israel, Washington and maybe NYC – watch the regular sources for more info.

P.S/2 If you want to see Dojo access some hardware and display your heart rate, this event might just be right for you

Dojo Week in Review #3

This week’s highlights include preparations for Dojo 1.4.2 RC, Dojo-inspired CommonJS Utils, and many improvements.

Dojo 1.4.2 RC

A release candidate for Dojo 1.4.2 is being prepared. This release will
address this list of issues.

Please give it a try and help us find any potential regressions before it is release. If you find issues, please create an account if you don’t already have one, and login to
bugs.dojotoolkit.org

CommonJS Utilities

Kris Zyp has announced CommonJS Utils, a collection of tools for making it easier to work with CommonJS-compliant toolkits. Some of these tools are inspired by work in Dojo, including an observe pattern implementation similar to dojo.connect, or assistance for JSON schema which already has great support in Dojo and Persevere.

Documentation Improvements

We continue to make refinements and fixes to the incredible new collection of Dojo documentation. Thanks so much for your tremendous feedback. Just let us know here, on the mailing list, or in a bug ticket. Be sure to let us know the page where you see the documentation issue so we can fix it quickly.

New Community Tutorials and Demos

Charles Spraggs has a nice tutorial on creating fancy drop down menus, while David Walsh, known for his involvement with MooTools, has a couple of quick demos on link nudging and removing images which show how easy it is to do things with Dojo when you’re familiar with MooTools or jQuery.

Thanks for taking the time to write these up!

Improvements to Dojo in trunk

Development efforts from February 21st to March 2nd were focused primarily on stabilizations and improvements to Dijit by Bill Keese (IBM) including further refinements for new themes including refinements
to the AccordionContainer and TabContainer. James Burke (Mozilla Messaging) and Bill Keese improved our build process for not adding certain test files to production environments. Korean translation fixes
were contributed by Youngho Cho (Nannet) and by Adam Peller and others at IBM. Adam also added a fix for Norwegian translations. Eugene Lazutkin made minor fixes to DnD. Jared Jurkiewicz (IBM) continued his
frantic pace of perfecting the Editor widget and its plug-ins. Finally, Peter Higgins (Joost) added support for a new hover state on the close icon of the Dialog widget.

Upcoming Events

QCon London is next week (March 10-12). On the evening of March 11th
there will be a Dojo Beer event with Nikolai Onken, Tobias von Klipstein, Torrey Rice,
Sam Foster, and I. On March 12th, Nikolai, Torrey, and I will be speaking on the Browser
as a Platform track
along with Joe Walker (Mozilla) and Simon Oxley (Aware Monitoring).

SWDC 2010 is coming up in June and is hosted by Dojo contributor Peter Svensson. It features a great line-up of speakers including a number of Dojo committers or contributors (Nikolai Onken, Wolfram Kriesing, Mark Wubben, and I). And Stockholm in early June is amazing.

Dojo Week in Review #2

This week’s highlights include a few new Dojo sites and steady improvements to Dojo.

Joost and Wall Street Journal

Joost, an early pioneer in online broadcast videos, has launched a completely revamped version of their platform with Dojo 1.4 as the basis for their new user experience.

/images/joost_website_screenshot_500.png

The Wall Street Journal, the world’s leading financial news service, has updated their web site to make use of Dojo 1.4 (as well as Prototype and script.aculo.us).

/images/wsj_website_screenshot_500.png

Improvements to Dojo in trunk

This week’s development efforts were focused primarily on stabilizations and improvements to Dijit by Bill Keese (IBM). Adam Peller (IBM) made a number of translation resource commits for various Dijits. Mike Wilcox
contributed fixes for the UpgradeBar and FileUploader. Jared Jurkiewicz (IBM) further improved the Editor widget and its plug-ins. Finally, Doug Hays (IBM) contributed additional fixes for minor bugs.

A couple of minor changes were made to the API, moving a couple of Dijit APIs to Dojo Core to make them easier to use outside of Dijit:

  • dojo.window.get() // Get window object associated with document doc
  • dojo.window.getBox() // Returns the dimensions and scroll position of the viewable area of a browser window

Dojo Week in Review

This was an exciting week for the Dojo Toolkit project, with the dojo.connect online conference, and the unveiling of the completely redesigned web site.

dojo.connect

Approximately 150 people attended the 3-day dojo.connect online conference. Many talks were delivered by Dojo committers and users on a wide-range of topics. A couple of talks that I enjoyed in particular were delivered by Jared Jurkiewicz (IBM) and Nicholas Kolba (Thomson Reuters).

Jared gave an overview of the much improved Dijit Editor. This talk reminded me of Jared’s early talks on Dojo Data, which inspired the community to greatly embrace and contribute improvements to his work. The new editor is amazing and is now competitive with the best rich text editors in the market.

Nick’s presentation focused on performance testing and optimization for their platform in Thomson Reuters’ financial services division. He features some excellent work done in partnership with SitePen, to build better tools for testing performance, and explained how Thomson Reuters greatly improved the performance of Dojo and JavaScript in their application by having a great way to measure performance on an extremely granular level.

New web site

The previous web site was a frustrating experience for our community. After much effort by Torrey Rice (SitePen), with assistance from Nikolai Onken (Uxebu), Tobias von Klipstein (Uxebu), and Tom Trenka (SitePen), the first iteration of the new site was launched, and the initial community feedback has been incredibly positive. The new design is beautiful, the information architecture is easy to follow, and the foundation of the site will make it much easier for the community to contribute and improve the site going forward. The site was built with Dojo, Dojango and Django. It was a tough call on what technology stack to use, with so many great options like the Zend Framework also viable options. In the end, we chose Django because the developers working on the site prefer Python and Django to PHP and other options.

The site also integrates features and/or components from Nabble, Echo, Google Search, freenode IRC, Twitter, and others to provide a great experience for our community while leveraging what’s already out there. From here, there’s a lot of work to do to continue improving the site, which will evolve much more rapidly going forward.

Featured here: Your Amazing Dojo-based Application

If you have a great application that you and/or your company have built using Dojo, contact us as we’d love to feature it on the new web site.

Improvements to Dojo and Dijit in trunk

This week’s development efforts were focused primarily on stabilizations and improvements to Dijit by Bill Keese (IBM). The Noir theme was removed from trunk, but still exists in SVN if someone wants to revive and complete it, and the Lucid theme is there as well for anyone that wants to check it out. Nicola Rizzo and Mike Wilcox made some improvements to the CSS3-based experimental animation system, and Mike also fixed some IE issues with the UpgradeBar widget. Jared Jurkiewicz (IBM) improved the Editor widget and its plug-ins. Finally, Adam Peller (IBM), Chris Barber (CB1, Inc.) and Doug Hays (IBM) each contributed fixes for minor bugs.

3-day Online Dojo Conference – dojo.connect

This year we wanted to create an Dojo Conference / Event that is more inclusive for the Dojo Community than our traditional Dojo Developer Days. To that end, we have established a Dojo Conference, dojo.connect to provide an online virtual conference so that more people may attend and learn Dojo. The full conference is three days long, with the first two days consisting of practical sessions on how to use Dojo to build amazing web apps. The third day will consist of round tables and discussions centered around Dojo’s future developmental goals.

These days many conferences are simply big marketing and networking exercises and can be very expensive to attend. This is especially true when travel is taken into account. It is often impractical for foreign visitors to come to the US to attend a conference or to get many US developers to attend overseas. Dojo.connect is different in that its goal is to provide practical information and education working with Dojo. Real-time interaction with speakers and attendees is not sacrificed however, and will be accomplished either via voice communication and/or text chat. Most of the active Dojo Developers and other active community members will be presenting various techniques, strategies, and advice to help developers and companies build great applications. Opportunities will exist to discuss and contribute to the future direction of Dojo through communication with those individuals that make Dojo happen.

A portion of the proceeds collected from the conference will be funneled back into the Dojo Foundation in order to support its on going efforts and infrastructure expenses.

We hope you will find the conference enjoyable and informative and will consider signing up and attending. For more information about dojo.connect, see http://widespreadconferences.com/dojoconnect.html.