The large companies that use Dojo are widely known. This series features other users of Dojo and their stories. This time, we interview Pete Smith from TimeTrade, a Boston-based company who is the industry leader in online appointment scheduling.
We have a number of December announcements.
Dojo version 1.9.2 is now available for immediate use. The most prominent changes are:
Full details of the Dojo 1.9.2 release are available on the mailing list. We expect to have backsupported IE11 support available for Dojo 1.8 within a few weeks.
As many of you know, Intern is our replacement for DOH for Dojo 2.0. In order to make it easier for us to test and maintain multiple versions of Dojo, we are starting the process of replacing all existing DOH tests with Intern tests in the 1.x codebase. If you would like to get involved, please volunteer to assist in migrating tests. We will post additional instructions shortly on how to get involved.
SitePen is running a December promotion with a free Dojo 101 workshop when registering for any of their Dojo 201 or 202 workshops in 2014. They are also offering both free 101 and 201 to the first person to register for all 3 workshops in each city on their calendar. Read the full details on this Dojo workshop promotion. The full Dojo workshop schedule for 2014 is also available.
The following is a guest post from Christopher Folger, creator of a Dojo plugin for the JetBrains IDE. Thanks Christopher for sharing information about your plugin.
Needs More Dojo is a plugin that provides awareness of Dojo’s AMD system and object model to the IDE. Its main purpose is to simplify the management of the imported modules array (and corresponding function parameters) in a define block.
For example, instead of typing “dijit/layout/ContentPane” and adding a “ContentPane” parameter, Needs More Dojo lets you type “ContentPane” then inserts the correct module path and parameter for you into the existing list of imports. As you are writing code, when you reference an AMD module, you can use a hot-key to import the module instead of adding it manually. It will also flag unused modules with a strike-through and allows you to remove all unused modules at once.
Apart from this, it has several other features:
It is open-source and is currently under development. Any feedback or feature requests are always welcome and can be made on GitHub
There are a number of Dojo events this autumn. We hope to meet you at one of these events:
Let us know if you’re speaking at an event, and we’ll add you to our listings!
The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Ahmad Hazli Hasmi from Buildspace, a Kuala Lumpur-based web based app for the construction industry
A: During R&D, before we officially started to develop Buildspace, we spent a lot of hours finding a suitable library. We have experience with all kinds of libraries and toolkits like ExtJS, Backbone, and jQuery. At the end we decided to use Dojo as our base.
A: Our application consists of 2 parts, back-end and front-end. We use PHP for our back-end that basically will do all the heavy duty work (handling requests, calculations, database transactions, authentication). On the front-end, it is 100% Dojo. We write a very minimal HTML layer, where all of our HTML is actually part of the widget templates. There is no HTML rendering from the server-side, it is all done on the client-side and AMD plays a major role here..
A: We all love it! Dojo comes with a solid and extensive features and above all that, it comes with great documentation which really helps us a lot. With our current system architecture, we are now able to split our team into two, front-end and back-end, where the front-end team is purely a group of Dojo ninjas.
A: Dojo grid is the first reason why we chose Dojo. The features and its extensibility really helped us in developing our application. AMD is another great thing that we love. The modularity and flexibility of AMD helps us to decouple our application so our developers can focus more on their expertise in developing the app.
A: We are planning to upgrade our current Dojo 1.8.3 to 1.9 and to maintain our code base in sync with the latest version of Dojo as we benefit from its improvements. We are also planning to come out with a mobile version which probably will ride on Dojo Mobile.
Thanks Ahmad for telling us about your experience with Dojo. Please also check out the Buildspace demo (username: email@example.com , password: demo123) or review a series of demos and tutorials! If you would like to share your experience, please contact us.
If you’re using Dojo 1.4, 1.5, or 1.6, you’ll need to update to the latest patch to fix a regression with the release of Chrome version 29.
Ticket 17400 has the details on the fix.
You can get the patch from GitHub for your particular version of Dojo, and this fix will be included in the next release for each of Dojo 1.4.x, 1.5.x. and 1.6.x.
If you are already using Dojo 1.7 or newer, this fix already exists within your code base.
The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Martin Stadler from Halvtone, a Germany-based platform for creating unique art from your photos.
A: In my previous job at excentos I was working on the single-page app framework and app implementation of their product advisors. They chose Dojo in 0.4 times for its rich and extensible widget system and the liberal license and while the system changed quite a bit during the years, Dojo still proves to be a solid foundation.
Thanks to previous good experiences, Dojo is always a candidate when choosing a toolkit. In this case, everybody involved in front-end development worked with Dojo before so the choice was much easier.
Dojo provides us with most of the features we need for the Halvtone app so we didn’t have to integrate other libraries and manage dependencies. We love how Dojo is 100% AMD so there is a modular and consistent code base, still no build process is needed while developing and debugging in the browser just works as expected.
A: We have experience with all kinds of libraries and toolkits like jQuery, ExtJS, Backbone, Ember. For Halvtone we decided to use Dojo from the start.
For the static pages the new dijit/_AttachMixin comes in super handy. The template is rendered on the server as part of the page’s HTML and then parsed by the widget when it is ready. This way the widget code is structured as usual leading to a consistent and easy-to-read code base while there’s no flickering when loading the page.
The code is structured into two packages, one for the app and one for the static pages. The build is configured in the same way creating a layer for each while common code goes into the dojo (boot) layer.
We use Dojo 1.9 and plan to upgrade to the latest version frequently (we started with 1.8) as upgrading our relatively small code base is usually easy.
A: Dojo is solid and extensive. Features and components added to Dojo core or Dijit are of high quality and usually follow known best practices or will become best practice by other projects incorporating them soon after. Most things needed for an application are included in equal quality and style.
The situation with application frameworks (MVC, routing, etc) still seems to be a bit weak so we used the existing components to build our own structure.
The loader and build system give us all the flexibility and optimization we can wish for.
A: Pure modularity and flexibility due to AMD. Saves so much headache in the long run.
A: We will follow the development of Dojo for this project and will stay up-to-date as long as we benefit from improvements. Depending on business plans we would love to look into moving more into the mobile world, too.
The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Iain Hamilton from Esri, creator of BeakPi, a home automation system using Dojo and Raspberry Pi.
With enjoying the daily exposure to Dojo at work, the reasoning became obvious and the madness of my previous years became clear. Seeing how rapidly it allowed for you to accomplish tasks and not require thoroughly testing in every browser on every 17th line was impressive.
Both the code and styling uniformity the Dojo Dijit widgets offer makes even the smallest of interactions look polished and professional, my favorite styling being the Claro theme. The XHR handler and deferreds remove a lot of ache that would have cropped up if attempting to handle my project without Dojo. I knew developing my project with Dojo would guarantee a smoother experience and a final product less prone to problems requiring fixing.
Basically I chose Dojo as all the more tedious issues that I had experience of handling could be dealt with in a less barbaric form, allowing me to smartly put together a neat application.
A: As seen in the video, the application user front-end is built using mostly Dojo 1.9 in AMD format. There are a few wee PHP scripts for system communication with the Raspberry Pi as well as the Mopidy JS websocket script, but apart from that it’s purely Dojo. It makes good use of various Dojo Dijit widgets for the interfaces as well as the XHR tools for communication.
Anyone connected to the local network can load the Raspberry Pi IP in their browser and through the Dojo interface begin controlling the Pi audio output. The interface seamlessly works on all devices, from laptop to smartphone. Via the offered interactions of the browser application, the Mopidy service backend, the Spotify Rest API and MPC application users can search, queue, skip and view tracks.
A: I’d say that considering I use it at work everyday and also in my hobby programming its pretty clear that I love it! It did take me a short time to get to grips with some of the practices used within Dojo in reflection of coming from the blank canvas approach with my JS programming, however it really was worth it. I look forward to moving my project to the next stage with Dojo.
A: Being able to get your ideas on page fast and with no cross browser stress. For example I wanted to add a seekbar and volume bar to the interface, I pull in dijit/form/HorizontalScrollbar and periodically update its position by polling and filtering the media player system response. Some slight modifications to the style and done. It’s rapid, stress free and looks pretty damn sweet instantly.
A: Apart from working on some more of the audio player features, the next part of my home automation project is controlling household devices. I’ve just recently got communication between the Dojo application, a PHP TCP socket streamer and a RF controller plugged into the Raspberry Pi working. This currently allows for turning a lamp on and off via XML packets. My plan is to setup a back-end database and add some timer controls with Dojo, allowing for a bedside fan to be toggled on and off in the middle of the night.
The large companies that use Dojo are widely known. This series features lesser known users of Dojo, and their stories. This time, we interview Jordi Josa from Iron Services, creator of English Audiobooks – Librivox and other English language learning applications.
A: Not long ago I decided to introduce in the world of mobile programming. My idea was to do several applications to help people like me were learning a Foreign language, in this case English. After a search of the various technological options I decided to use Dojo Mobile 1.8 and PhoneGap because they allow do applications for various platforms. I’ve had great success choosing this technology, as my apps work perfectly on Android, iPad and iPhone, even on desktop platforms as Mac and Windows 8.
Since all the components provided by Dijit, such as toolbars, drop-down menus, and tabs closely mirrored desktop application equivalents, the resulting system was intuitive to use, and continues to be used today with no modifications needed to keep updated with the latest browsers. Everything ‘just works’ and continues to do so.
Currently I have three free apps on iOS and Android. The first one is an application to read books in English, while listening to the audio. The second is an English dictionary with over 175,000 words and 300,000 definitions. The third is a game to learn vocabulary. All applications can work offline, allowing local downloads of audio and text files. In the first application, I worked with the audio stream, many Dojo controls such as lists, panels, windows and transitions, and used Dojo’s Ajax capabilities to download files from the server. In the dictionary app, I use an SQLite database with over 400,000 records locally. The game allowed me to explore the use of animations, and various facets of HTML5.
A: It works on multiple platforms, both for desktop (Safari, Chrome, Internet Explorer) and for mobile phones and tablets (iOS, Android, Blackberry, Windows Mobile 8). The large amount of incorporated widgets and themes facilitates rapid application development. Performance is solid, from mid-range phones to powerful tablets.
A: Yes, I tested Sencha and jQuery Mobile, but I chose Dojo because it also works perfectly well on desktop computers, it’s ease of use, and the extensive documentation and examples that were ready to use.
A: First is to finish my application versions for Mac and Windows 8 Store. Later, I will try to group them so that I can improve the main objective, which is to provide tools for learning English.
A: Previously, I made several web applications with IBM Domino (XPages), so I could test it extensively. IBM trusts Dojo as a solid foundation for their platform, giving me a lot of confidence in its robustness.
A: I really enjoyed building the application so very much, and I think in this way you can see the power offered by PhoneGap, along with Dojo Mobile in a real case study. Feel free to download any of these applications to see Dojo Mobile in action:
Thanks Jordi for telling us about your experience with Dojo. If you would like to share your experience, please contact us.
There are a number of Dojo events this spring and summer. We hope to meet you at one of these events:
Let us know if you’re speaking at an event, and we’ll add you to our listings!