Skip to content

Software Development News: .NET, Java, PHP, Ruby, Agile, Databases, SOA, JavaScript, Open Source

Methods & Tools

Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!

The Dojo Toolkit - Announcements
Syndicate content
Unbeatable JavaScript Tools
Updated: 5 hours 34 sec ago

Autumn 2014 Dojo events

Fri, 08/29/2014 - 12:45

There are a number of Dojo events this autumn. We hope to meet you at one of these events:

Dojo Community Day
  • Dojo Community Day. November 16, San Jose, CA. Free registration required. Registration details will be announced in October.
Meetups
  • Intern 2. October 9, Nick Nisi, SitePen. London, UK. Free registration required.
  • Intern 2. October 16, Dylan Schiemann, SitePen. Boston, MA. Free registration required.
Training Workshops

Let us know if you’re speaking at an event, and we’ll add you to our listings!

Categories: Open Source, RIA

Dojo community day Switzerland

Mon, 08/18/2014 - 22:18

We recently hosted a Dojo Community Day in Brugg, Switzerland on the Saturday following a week of Dojo workshops. We had about 25 Dojo users and committers join us from England, France, Netherlands, Germany, Romania, Austria, and Switzerland for a fun day of hacking and discussions about current and future directions of Dojo.

Zurich

Brugg

We began the day by welcoming the group at the modern university in Brugg/Windisch and, thanks to SitePen, we had Dojo t-shirts and stickers for everyone. After some initial time to socialize and get everyone situated with wifi, I delivered a short talk on the current state of Dojo, and answered questions about the direction of Dojo. We discussed the idea that getting to Dojo 2 would mean completing the packages incrementally that we need, making them work with today’s Dojo 1.x core so people can start adopting them as they are ready, and then calling that Dojo 2 when they are all completed. For example, Intern and dstore are big parts of the Dojo 2 roadmap.

After my talk, Patrick Ruzand of IBM gave a short overview of recent changes to Dojo Mobile in 1.10, and answered a few questions about Delite/Deliteful, IBM’s early work on Dijit 2.0.

Patrick Ruzand

The purpose of the community day was then a mix of hacking and chatting. We split the room into groups based on interest, with the categories chosen as fixing bugs in 1.x, getting involved with Delite/Deliteful, and fixing documentation and tests. We landed a few pull requests from the day and closed some bugs. More importantly, we hopefully have encouraged more people to get involved and helped them understand the process a bit better.

Dojo hacking

Dojo hacking

Around lunch time, we walked to the Havanna restaurant near the river that agreed to provide wifi and a space to hack for the afternoon. We enjoyed Swiss/German food such as wienerschnitzel, while others enjoyed the Swiss take on Mexican food like fajitas and tacos. We continued talking about may different Dojo topics, and then spent a few more hours hacking on Dojo.

Dojo lunch Brugg

Dojo lunch Brugg

The main challenge with days like this is that there is never enough time. It was great meeting so many Dojo users, and catching up with several Dojo committers. We hope to run similar events later this year after other SitePen Dojo workshops.

Categories: Open Source, RIA

Case study: HPCC Systems

Thu, 07/31/2014 - 08:01

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Gordon Smith from HPCC Systems, a subsidiary of LexisNexis RISK Solutions.

Q: How did you first learn about Dojo?

A: Through Google / Stack Overflow. I suspect my “discovery” of Dojo was a bit different to the norm, as prior to 2013 I had never really done any Web Development. Up until then I was predominantly a C++ Developer, some Java and a smattering of C#. Initially I wanted to knock together a single page proof of concept, consisting of a code editor (CodeMirror), a result view (HTML Table) and an “activity graph” (ActiveX Control) and wanted something that would handle the layout, resizing and ideally something with splitters – after a few searches online I found the Border Container Docs and away I went! Shortly after, I added a Tab Container and switched to using the basic Grid.

ECL Playground

ECL Playground – How the original POC Looks today

Q: Why did you choose Dojo?

A: After the initial success of the proof of concept, we took stock of our existing web application and decided that a rewrite would be in order, at this stage I did stop and take a longer look at what was available and quickly came to the conclusion that it would be jQuery or Dojo. Dojo won out for a number of reasons, chief of which was how the core libraries had been architected, as well as their attention to “core” details, like AMD, OOP, localization and accessibility. I was also satisfied that we could use Dijit for the App layout and common widgets, while being able to drop in any other “best of breed” page elements as needed.

Q: Were you previously using another toolkit?

A: We had been using XSLT to generate our pages and a small amount of YUI for some of the newer work.

EPC Before

Before

EPC After

After

Q: What does your application or service do?

A: The HPCC Platform (High Performance Computing Cluster) is a massive parallel-processing computing platform that solves Big Data problems. It has been in development for more than thirteen years and was open sourced just over three years ago now. We call the web application “ECL Watch” (ECL is our declarative data processing language), and it allows the user to:

  • Submit, Monitor and Manage ECL jobs.
  • Load, unload and manage raw and processed data (files).
  • General configuration and operational management.
ECL Workunit

A single ECL “Workunit” making heavy use of the TabContainer

Q: How does your application use Dojo?
  • A: It uses AMD and Declare to enforce well organized and encapsulated coding.
  • Our platform primarily uses SOAP/JSON/REST style messaging, so we make heavy use of Request, Deferred and Stores.
  • Dijit Layouts – The Border Container and Tab Container are always at the foundation of any new Widget/Page we write.
  • Dijit Widgets – Both the usage of the built in widgets as well as the framework for extending and writing out own widgets – every visual page we design is done as a “plugable” widget, and as such can be opened in different parts of the Web Application as well as in a separate browser window (very useful for emailing links to colleagues).
  • The rest – it’s hard to list specific items here as we pretty much use it all… dojo/topic and /dojo/aspect would get honourable mentions as they have allowed some elegant solutions to some tricky design challenges we faced. dojo/aspect helped workaround some ActiveX/NPAPI browser specific inconsistencies, by intercepting and altering specific DOM Class changes to widgets (all within a single function). While dojo/topic (along with dojo/Stateful / dojo/store.notify) helped ensure there was no assumption about what sets of widgets were loaded at any given time and keeping all related widgets in sync.
Q: Overall what is your user experience with Dojo?

A: On the whole it has been a very positive experience, it does have a moderate to steep learning curve, but no harder than any other “significant” framework. As I switch to/from my C++/Java work, it is interesting that I seem to miss more of the patterns I have learnt while using Dojo than the other way around. I suspect I will be implementing a variant of the Deferred/promise pattern in the near future!

Q: What’s your favorite thing about Dojo?

A: The AMD loader and OOP support – Personally I find it all too easy to write hard to maintain code in JavaScript (especially as a novice), but with the AMD/OOP support I was able to continue to “think”, organise and encapsulate in a similar fashion to my C++/Java work.

Q: What are your future plans with Dojo?

A: We still have a small amount of work todo in converting our existing Web App, but once that is done the plan is start optimising the users workflow, this will mean developing new and better interfaces, so lots of Widget work. We have already started to integrate visualisations using d3.js (as widgets) and I hope that Dojo 2.0 (and the new related SitePen work) gets released at a convenient time in our release cycle so we can be early adopters.

ECL Treemap

Treemap

ECL Landing Zones

Landing zones

ECL Graphs

Graphs

ECL Visualizations

Visualizations

ECL User Permissions

User permissions

ECL i18n

Internationalization

Thanks!

Thanks Gordon for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.

Categories: Open Source, RIA

Case study: FreeNAS

Wed, 06/18/2014 - 13:45

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview William Grzybowski from iXsystems, a California-based company and creators of FreeNAS.

FreeNAS Add User

Q: How did you first learn about Dojo?

A: Around Dojo 1.3. I was tasked to write a tree menu and I was pointed to a Dojo example of the dijit/tree. The learning curve was higher compared to other simple frameworks but it was totally worth it.

Q: Why did you choose Dojo?

A: We were looking for a JavaScript toolkit capable of build an UI-rich application, Dojo did stand up due to its great documentation, active community and BSD License.

Q: Were you previously using another toolkit?

A: I have used jQuery UI and Bootstrap, but I think Dojo is a much better fit for our use case, the default functionality and modules are beyond what I have ever seen before.

Q: What does your application or service do?

A: FreeNAS enables users to build network-attached-storage (NAS) on nearly any hardware platform of their choosing. The FreeNAS project and software were founded in 2005 on the principle that network storage be made available to the world at no cost and unencumbered by license restrictions.

Watch a video demo of FreeNAS

Q: How does your application use Dojo?

A: Dojo is used as the central part for FreeNAS WebGUI. it is a Rich Internet Application (RIA) so it is used for everything: base layout, tree menu, menu bars, dialogs, form elements. We have developed our own widgets for the volume manager, cron job task schedule, web shell, unix path selector, among others.

We feature a RESTful API written in Python/Django which is also consumed in our dgrid datagrids using dojo/store/JsonRest.

Q: Overall what is your user experience with Dojo?

A: Dojo has exceeded my expectations in every way. The documentation is terrific, I can always find everything I need there, without the need of looking through the source code. I have found the community support is also something to account for, there is always someone willing to help, either in IRC channels or in the mailing list.

Q: What’s your favorite thing about Dojo?

A: The modularity is my favorite feature of Dojo. One can easily extend any component to fulfill his needs. The source code is extremely clean, which makes the task even easier.

Q: What are your future plans with Dojo?

A: Next projects will definitely give Dojo a serious consideration as it has proven to be a very nice piece of software. I would like to leave here my sincere thank you for every single Dojo developer. Keep up the good work!

Thanks!

Thanks William for telling us about your experience with Dojo. Checkout more FreeNAS screenshots to learn more about the application. If you would like to share your experience with Dojo, please contact us.

Categories: Open Source, RIA

Dojo turns (1.)10

Mon, 06/16/2014 - 13:04

Ten years ago, we humbly started a project to create a “next generation DHTML toolkit”, based on an initial email, Selling the future of DHTML. Today, we are pleased to announce the immediate release of Dojo 1.10, our 16th major release of the toolkit!

Release Notes and Documentation

Dojo 1.10 is primarily a stability and bug fix release, with over 275 issues resolved. Read the Dojo 1.10 release notes for the complete list of what’s new and improved in 1.10. API features and enhancements primarily occurred within the following areas:

  • Core (DOM, events, request, WebWorkers, etc.)
  • Dijit
  • dojox/charting and dojox/gfx
  • dojox/app
  • dojox/calendar
  • dojox/mobile (including an iOS 7 theme)
  • dojox/store (offline store supporting WebSQL and IndexedDB support)
  • Uglify 2 support for Dojo builder

The tutorials, reference guide, and API viewer have also been updated for the 1.10 release.

Use Direct from the CDN, or Download

Get the Dojo release that’s right for you. Choose from CDN, optimized builds, or source versions with full demos and utilities.

Get Dojo

dstore

The new dstore project is being worked on as the eventual successor to dojo/store. It works with Dojo 1.8+, but is intended to also define the object store APIs for Dojo 2. Tutorials and documentation will accompany the dstore 1.0 release that is expected in a few weeks. Read the Looking ahead with stores blog post for more details on the direction of this module.

Grids

As reminder, while the source code is still available for DataGrid and EnhancedGrid, these modules are formally deprecated. We instead recommend that you use dgrid or gridx.

dgrid 0.4 is currently under development, and will be the first component to leverage the new dstore API.

Intern

Intern is the replacement for DOH. Work is currently underway to update all DOH tests in Dojo core and Dijit to use Intern, to make it easier to prevent regressions with Dojo 1.x releases. You can learn more about Intern via the Intro to Intern webcast, and also read What’s next for Intern and the 2.0 release that is expected soon.

What’s Next? 1.10.1, 1.11, and 2.0

We continue working on Dojo 2.0. We continue to issue periodic maintenance releases on 1.4+, primarily to fix issues when new browsers are released. We will likely will have a 1.11 release for anything that might change or enhance an API, or backport key improvements made for 2.0.

Thanks!

This release would not have been possible without significant contributions from the Dojo team. Special thanks to everyone who helped make this release possible, including:

  • Adrian Rakovsky
  • Adrian Vasiliu
  • Akira Sudoh
  • Alexander Kaidalov
  • Allen Shiels
  • Avraham Rozenzweig
  • Ben Hockey
  • Benjamin Santalucia
  • Bill Keese
  • Brandon Payton
  • Bryan Forbes
  • Christophe Jolif
  • Chuck Dumont
  • Clement Mathieu
  • Colin Snover
  • Damien Garbarino
  • Damien Mandrioli
  • Dasa Paddock
  • Douglas Hays
  • Dylan Schiemann
  • Ed Chatelain
  • Ed Hager
  • Eduardo Matos
  • Eric Durocher
  • Erwin Verdonk
  • Gabriel Aszalos
  • Gaurav Ramanan
  • Heng Liu
  • Hugh Winkler
  • James Morrin
  • Jochen Schäfer
  • Joerg Sonnenberger
  • Julien Mathevet
  • Justin Bumpus-Barnett
  • Kitson Kelly
  • Kris Zyp
  • Lajos Veres
  • Lamiaa Said
  • Lee Bodzak
  • Lorenzo Solano
  • Mangala Sadhu Sangeet Singh Khalsa
  • Mark Hays
  • Mark Szymanski
  • Matthew Maxwell
  • Mustafa Celik
  • Nick Nisi
  • Pascale Dardailler
  • Patrick Ruzand
  • Peter Kokot
  • Philip Jägenstedt
  • Rawld Gill
  • Scott Davis
  • Sebastien Brunot
  • Sebastien Pereira
  • Semion Chichelnitsky
  • Simon Speich
  • Stephen Davis
  • Stephen Simpson
  • Steve Hearnden
  • Terence Kent
  • Tim Roediger
  • Virgil Ciobanu
  • Vitaly Trushkov
  • Wouter Hager
  • Youngho Cho

We also thank AltoViso, IBM, SitePen, and TimeTrade for their generous contributions of development time and financial support.

Dojo community day!

We’re hosting a free Dojo community day in Switzerland on July 5th, and plan to host similar events in other locations later this year. If you cannot make it to Switzerland, we still encourage you to join us on the #dojo IRC channel (irc.freenode.net) for an afternoon of hacking. We’ll be online from approximately 9am – 6pm in Switzerland. Or join us at another Dojo event this summer.

Thanks!

We hope you’ll find Dojo 1.10 to be exceptionally stable and reliable. Please let us know if you run into any issues by opening a ticket. If you find a problem in the documentation, you can also provide feedback via the link at the bottom of every page. We also encourage you to get involved, to help improve Dojo and to work on Dojo 2.0. We hope you find value in using Dojo 1.10!

Categories: Open Source, RIA

Summer 2014 Dojo events

Sun, 06/15/2014 - 17:13

There are a number of Dojo events this summer. We hope to meet you at one of these events:

Dojo Community Day
  • Dojo Community Day. July 5th, Brugg, Switzerland. Free registration required.
  • Dojo Community Day. September 27, Ottawa, ON. Free registration required. Registration details will be announced in July.
Training Workshops

Let us know if you’re speaking at an event, and we’ll add you to our listings!

Categories: Open Source, RIA

Esri Web Optimizer

Wed, 05/21/2014 - 17:56

Esri, creator of the Dojo-based ArcGIS JavaScript mapping API and ArcGIS Online, has announced the beta release of a new product, the ArcGIS API for JavaScript Web Optimizer, a Dojo-based app for creating Dojo and Esri ArcGIS optimized builds.

Visit the help documentation to view application screenshots.

Categories: Open Source, RIA

Case Study: Autostore

Mon, 05/19/2014 - 18:03

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Ramil Rakhmetov from PeopleWare, a Belgian company that creates enterprise web applications. Ramil is a JavaScript developer who created the Autostore front-end.

Q: How did you first learn about Dojo?

A: In our company, Dojo is the standard toolkit for front-end JavaScript applications. When the Autostore project started we had an internal JavaScript and Dojo training, by Jan Dockx, which allowed me to get up to speed quickly since Dojo does have a steep learning curve.

Q: Why did you choose Dojo?

A: The choice for Dojo was obvious as it was the company standard and we needed to make a web application that feels like a desktop application. In the not too distant future there will be a need for a mobile interface for Autostore as well.

Q: Were you previously using another toolkit?

A: I used Plone in previous projects which was, at the time, using pure JavaScript. Switching to Dojo felt like a more robust framework that has a very rich feature set compared to what I saw in the past.

Q: How does your application use Dojo?

A: Autostore is an application that can be used for both fire prevention and fruit preservation all over the world. It allows users to control the PLC hardware that is installed in their cooling cells, in case of fruit preservation. It acts as a dashboard that monitors the current values coming back from the sensors that are attached to the PLC’s. It also allows the user to update configuration settings in the PLC hardware.

We chose to write the back-end in Java and the front-end in Dojo. Since this is a dashboard, it is important to show live data to the user. Therefore most of the screens refresh themselves every second using XHR calls to the back-end. The results of these calls are loaded into a Stateful object that refreshes the view using events.

Q: Overall what is your user experience with Dojo?

A: Dojo is, besides the rather steep learning curve, a great framework to build enterprise quality applications. First you make widgets, which are the building blocks of your application, that you can fit together to make them act as one application. This allows us to quickly respond to changing customer demands in an agile manner.

Q: What’s your favorite thing about Dojo?

A: The Dojo build is a great tool! The more I learn about it, the better it gets. Right now, Autostore is build via Maven using the maven-antrun-plugin to execute the Dojo build. Using git-commit-id-plugin and com.google.code.maven-replacer-plugin we even set the cacheBust in dojoConfig to the GIT commit ID abbreviation, making sure that the sources are only cached when we want to. The result of this build is put in a JAR file and deployed next to the back-end WAR file on a Jetty server. This is deployed at several locations all over the world via Puppet.

Q: What are your future plans with Dojo?

A: Convert all XHR calls, that are used to refresh the on-screen data, to WebSockets. This way the on-screen data will be really live. Another major benefit is that this will minimize the communication with the back-end. Unfortunately, when we started this project, WebSocket standards weren’t available yet across all browsers.

The login screen of the autostore application.

The login screen of the autostore application.

Autostore Main Screen

The main screen acting as a dashboard for the most important parameters to monitor. This screen refreshes every second.

Autostore Alarm Screen

The alarm screen shows which alarms are currently active.

Autostore Settings Screen

The settings screen can be used to configure the PLC setup to the customer needs.

Thanks!

Thanks Ramil for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.

Categories: Open Source, RIA

Dojo 1.10 release schedule, beta 1 now available

Wed, 05/14/2014 - 12:50

In preparation for the release of Dojo 1.10, trunk is now in feature freeze, which means this code is considered feature complete for Dojo 1.10. The release schedule is currently as follows:

  • May 13: Dojo 1.10.0-beta1
  • May 29: Release candidate 1 (note: if additional beta releases are necessary, each release will push this out by 1 week)
  • June 12: Final release (note: if additional rc releases are necessary, each release will push this out by 1 week)

We encourage you to grab the beta and help us find any bugs or regressions with your code base and report any issues you find by following our contributor workflow.

The documentation for 1.10 has not yet been built, though the API changes from 1.9 are minimal. Work in progress release notes are available to see a highlight of the additions we have made.

Thank you to everyone that has helped make this release a success, including the 61 contributors that have had code land in this release!

Categories: Open Source, RIA

Case study: MAGICapp by Fullstack

Tue, 05/13/2014 - 13:24

The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Deno Vichas from Fullstack, a San Francisco-based software consultancy and creators of MAGICapp.

MAGICapp New Section

Q: How did you first learn about Dojo?

A: Around the time of Dojo 0.3, I was tasked with building a web based real-time dispatching application. Knowing it was going to be a UI-rich single screen application, I looked around for a library that would ease the pain of building widgets from scratch. After some searching and research, Dojo seemed like the best choice.

Q: Why did you choose Dojo?

A: After having great success with Dojo on past projects, it’s a no brainer to start any large project with it now. For my new project developing a medical guideline authoring platform, I knew Dojo had everything I needed to quickly and successfully build a complex UI, including full internationalization support and a build tool. Since Dojo is a complete toolkit, I knew I didn’t have to piecemeal a bunch of projects together and worry about compatibility, dependency management, and license compliance levels while only using the parts I needed. If I found something that Dojo didn’t solve well, I could easily add in third party libraries like I did with ckEditor and dGrid.

Q: Were you previously using another toolkit?

A: No, before Dojo I was developing everything from scratch and occasionally using third-party JavaScript widgets.

Q: What does your application or service do?

A: MAGICapp enables medical guideline authors to write and publish their guidelines online using the GRADE methodology. Based on the work of the DECIDE and MAGIC research programs, MAGICapp is an easy to use web based application that supports open integration with other software applications and public standards, but does not require additional software to start using.

MAGICapp helps guideline organization to meet standards for trustworthy guidelines while maximizing efficiency and reducing costs throughout the authoring and publishing process. Guideline organization and MAGICapp users also benefit from ongoing high quality research and empirical evidence about optimized strategies for authoring, maintaining, and disseminating trustworthy guidelines at the point of care.

For more information visit the MAGICapp project website.

Q: How does your application use Dojo?

A: The application uses a number of custom Dijits and makes heavy use of dojo/store/Observable and dojo/store/JsonRest, using an application controller much like you have in the app controller recipe. The different Dijits in the application talk with each other using a combination of dojo/topic and dojo/aspect. We started out using the nihilo theme and over time have extended this for a custom look and feel.

Q: Overall what is your user experience with Dojo?

A: At first when using 0.3 it was a little tough since there wasn’t much documentation at that time. My experience has been worlds better now with all the information available on Dojo Toolkit , SitePen, and the dojo-interest mailing list. The toolkit is pretty complete now having most all of the features I need to build modern web applications.

Q: What’s your favorite thing about Dojo?

A: Currently, I really like the new AMD and dojo/store functionality released with version 1.6. The new dGrid is great and lot simpler to work with over the old dojox/grid/DataGrid. The new functionality in dojo/store has really made it a lot faster to get the front and back-end talking with each other. I also like that everything in Dojo is very easy to extend. This made creating custom JsonRest stores for offline use a breeze.

MAGICapp Strong Recommendation

MAGICapp Effect estimates

MAGICapp Comparison

Please also check out the MAGICapp project website to learn more about the project!

Thanks!

Thanks Deno for telling us about your experience with Dojo. If you would like to share your experience with Dojo, please contact us.

Categories: Open Source, RIA