Over the last week I have been doing some investigation on dojox charting, building on the XPages tutorial samples of Chris Connor and the pure dojo tutorials of Doug McMaster and Eugene Latzukin on SitePen, the basis for parts of the article on dojocampus. Despite their work, I suffered a number of frustrations trying to produce the charts I wished to. For example, Chris’s sample charts look great, but if I was using the pie chart widget for a customer, their first question would be “What do the portions of the pie represent?” This is not intended as a criticism of Chris’s excellent examples, but how do we extend the example to have a legend or tooltips to provide this information? After quite a bit of investigation, in markup HTML using an HTML table data source, it appears you can’t.
I have come to expect such frustrations when working with dojo because of the patchy nature of the documentation. The examples on the dojocampus site are useful, but it is a little embarrassing that they don’t work on Internet Explorer, when dojo is trumpeted as overcoming cross-browser problems. It usually covers the basics, but if you want to use other properties or functions of the classes, the documentation on them is very limited. There is the dojo api website, which is useful as a list of the properties and functions available for certain releases of dojo, but doesn’t help you implement them – especially if you’re using markup rather than javascript. More often than not the only option, if you wish to implement dojo, is to roll up your sleeves and dig about in the javascript code. I’m by no means a javascript expert but I have written my own extensions of the dojo classes (e.g. a dijit.form.SimpleTextarea that validates with the same styling as the other widgets) and I consider myself good at reading through code and understanding what it’s doing. Nonetheless, I find it daunting and frustratingly time-consuming to wade through the code. That challenge may be too much for some developers. Could we say the quality of the dojo documentation is good enough for them to use it?
These frustrations reminded me of the frequent posts to forums about the quality of the XPages Help documentation, and there seem to be a number of developers out there for whom XPages may even be the first time they have dipped their toes in the waters of web development. Even though I agree that, as ever, some mischievous developers may be jumping on the bandwagon to further their own agendas, nonetheless there is also a demographic amongst our community that are feeling out of their depth. Yes, there are some people who just want someone else to give them all the answers, but there are others who don’t have the skills to be able to work the answers out for themselves.
Who should people turn to for help? Some might say IBM. I would say one another. And the evidence suggests I’m not wrong. Over the last year a whole raft of resources has sprung up on the web around XPages, whether that be through personal blogs, the XPages blog, or the Domino Designer wiki. Through this blog I’ve been in communication with a few developers to try to help with their own challenges. Business partners have also been involved with coordinating XPages training with IBM. And at this time of year we should also mention Lotusphere. Members of our community have been working hard over the last couple of months to produce sessions at Lotusphere, and good luck to them all. I am sure that, as ever, there will be some excellent learning that comes out of those sessions. And for those who cannot attend, like me, there are Lotusphere Comes To You events as well as local LUGs (there’s a session at Lotusphere next week about creating and running a LUG – BOF508 Creating and Running a Lotus User Group Event). There is also the Sandbox on the developerWorks website, and who cannot have used OpenNTF.
If we all work with a silo mentality, individuals might achieve some good things. If we share our knowledge and feed off one another, we can achieve great things. It is that belief that drove me to start this blog, because I felt I had knowledge to contribute to the community and had the confidence to publish it. Don’t get me wrong, with each article I’m always hoping I’m not saying something everyone already knows or something that’s incorrect, and the comments I receive are very encouraging. But I also believed it was part of the duty of a Business Partner to take an active part in the community, which is why this is not a personal blog, but a company blog (and I hope my colleagues will have the confidence to share some of their expertise in the future). By then perhaps I will have the confidence in my expertise and reputation to be more involved in the community outside of this blog.
My point in this article is that without Chris’s sample charts, it would have taken me much longer to do as much as I have with charts. I did not expect all the answers from Chris’s charts, nor would it have been right for me to do so. But this is why I will be writing probably a number of articles of charts, not out of any criticism of anyone else’s work, but because I feel I have learned something that others might benefit from. And equally I don’t expect this to be a definitive resource. If anyone should find errors, please point them out. If anyone extends my examples further and feels they have more to contribute, again please do so. We cannot reach the sky ourselves. But by climbing on one another’s shoulders, maybe we might.
Paul,
Thanks for the mention and also congratulations on putting together such an excellent site. I guess the downside of being on the “leading edge” (gawd I sound old!) of this sort of technology is that we are exposed to “evolving documentation”, issues / bugs etc. With dojo in particular I have been bitten a few times on integration issues and general use – where I have just written my own “custom” functionality using usual DHTML / javascript.
At least with our growing blog community we are all making attempts at answering these issues and adding a bit to the previous experience. From a positive point of view we are shaping best practice and the directions on how these technologies are used – in a market that is far from saturated………..
Anyway – documentation around all of this has been a real frustration for me too. Many hours reading blogs, trying things, failing, trying things again have gotten me so far with xPages. I know there is a long way to go and as the product quickly evolves with our efforts prospects look good with this technology.
It is often easier for me as an business partner and consultant to go back to old tried and trusted ways (jQuery / DHTML / javascript etc) but I believe in the product and I am keen to keep pushing on. In in terms of charting done a lot of very good stuff with MS Components but that is another kettle of fish altogether and my wandering post needs to stop somewhere!!
I will be at LS010 this year and I will be bending the ear on everyone within range on this and other matters. Feel free to drop me an email if you have any issues / concerns / comments – from all our perspective I want to make the most of LS010 as the source of better blog contributions for the year ahead.
Like all things I try to keep things market driven (ie deal with issues I am being asked about – via blog or work or whatever). Maybe more focus of my time needs to be made in the area of charting….as I said LS010 methinks…
Again – keep up the excellent work. Sorry about all the words – will stop now!!
@Chris Thanks for your comments. I agree that XPages and dojo are both products worth persevering with. The more we do, and the more other developers use and extend them, the better they will get.
Unfortunately I won’t be at LS2010, but Tim Malone our Marketing Director will be there. Noentheless via Twitter, blogs and other media I’ll be trying to get the lowdown on what’s happening now and in the future.
Regarding the Dojo API. I find the DojoCampus docs a lot more helpful than the API documentation. Highly recommended if you haven’t been there.
{ Link }
@Tommy You’re right, DojoCampus is a lot more helpful, some good examples there, and one of the main resources I use. It’s a must for anyone starting out on dojo and for the established developer as a starting-point for the functionality. Unfortunately, there are a number of TODO references, and it doesn’t always cover how to use all the functionality both via markup and javascript – charting was a good example of this (admittedly we shouldn’t expect dojox functionality to be fully documented, it’s still in development). DojoCampus also only documents the latest version, but thankfully that is no longer an issue now that 8.5.1 supports dojo 1.3.2.