I\

Friday, 30 October 2009

My take on the Stack Overflow DevDays

On Wednesday, I attended the London leg of the Stack Overflow DevDays. Conferences are normally way out of my league, financially, but at a relatively cheap £85, this was my first chance to spend a day at one.

Carsonified, the event organisers, did a really great job setting up the venue. The wireless was near faultless and there were plenty of power sockets to run laptops from. Twitter apps encouraging social interaction among the audience were also a neat touch.

It felt like there were a lot of speeches crammed into the day, kicked off by Joel's excellent and thoroughly engaging keynote. Of the others, these are the ones that I found most interesting:

  • Michael Sparks analysed the source code for a spellchecker, written in just 21 lines of Python by Google's Peter Norvig. From a technical perspective, this was an excellent speech, walking through the source and building up a mental model of how powerful Python can be.

  • Reto Meier's introduction to Android development probably captured my imagination more than anything else. He was quite explicit about contrasting Google's openness with Android against Apple's paranoid control-freakery with the iPhone, which was a pretty astute pitch to a hall full of developers. And having the JVM at the core of everything just sweetened the pill even further, when compared to Objective-C (of which more in a bit). It got me tossing around some ideas for an Android side-project, written in Clojure.

  • Next up was Remy Sharp's talk on jQuery. I got the impression that 90% of the audience found this one quite tedious because it was aimed at jQuery novices. But that suited me perfectly and I found it to be a great introduction. It also helped that Remy is clearly a very accomplished public speaker.

  • Phil Nash presented an iPhone development jump-start. It was another good speech and quite a persuasive argument for investing the time to learn Objective-C, but... Objective-C. I mean, what's with that language? It just seems wilfully awkward. Separate labelling and naming of arguments, for instance; did somebody really think that was a good idea? Suffice to say, Clojure/Android seems way more attractive to me at the moment.

  • Pekka Kosonen delivered a fairly high-level overview of Qt. I first looked at Qt three or four years ago, while evaluating cross-platform C++ libraries. Unfortunately, the GPL restriction on the free version turned me right off, so I chose wxWidgets instead. That was a shame, because Qt's signals and slots architecture sounds cool. Anyway, since buying Trolltech, it appears that Nokia have relaxed the GPL restriction, so I may come back to Qt next time I need to work in C++. It looks like Nokia's intention is to leverage Qt to muscle in on the developer space that Apple has carved out with the iPhone and Google is now angling for with Android. I wish them luck, but I can't see it happening somehow.

  • Last up, Christian Heilmann delivered an interesting overview of Yahoo!'s developer tools. I'm already familiar with YUI because it is at the core of Ubiquity XForms but, of the others, YQL seemed especially interesting. I thought it was a bit of a shame that Christian's talk was at the very end of the day, because the audience were visibly tiring by that point.

All in all, it was a good day and definitely worth the entrance fee.

Friday, 25 September 2009

Five wishes for the javascript debugger in Safari

This week, I played around with the javascript debugger in Safari 4, as I started adding Safari support to Ubiquity XForms. Until now, all of my javascript-based work had been targeted at Internet Explorer and/or Firefox, so I had no prior experience with Drosera. From experience debugging javascript in those other two, though, my feelings about what is a pretty significant part of modern software development were mixed at best.

There were some early hiccups, predictably enough, but I was quickly impressed by what Safari offered. The UI looked slick and it ran very reliably. Overall, my impression was of a very solid debugger, so kudos to everyone involved for that.

Screenshot of javascript debugging in Safari 4

However, I was also left with a sense that, if only a few more crucial features had been implemented, the whole thing would be genuinely industrial-strength excellent. That feeling led to this blog post, so here, ladies and gentlemen of the internet, are my five wishes for the javascript debugger in Safari:

  1. My biggest gripe at the moment is that changes to my scripts are not loaded when I refresh the page in the browser. I assume this is probably down to something in WebKit itself, but when debugging it is a major pain to have to close and re-open the entire browser, just to debug with some modified code.

  2. Hot keys for important actions like 'step over', 'step into' and 'step out of' would be a massive bonus. When debugging large applications, it can take some time to zero in on problem areas. On every occasion that my fingers have to leave the keyboard, just to step to the next statement, that time is increased.

  3. Making the console window update calculated values dynamically would also be a huge time-saver. Round about the third or fourth time that I have to paste the same variable name into that window, just to see its current value, it gets quite tedious. Alternatively, a dedicated watch window, separate from the console output, would be just as good.

  4. Tooltips for certain items like variable names, showing the current value, or breakpoints, showing the current hit count. That would be sweet.

  5. And if that little lot got finished, then it would be really nice if the code view were actually a code editor, so I didn't have to Alt+Tab to a separate window to make changes. This would be especially great because the dropdown list of currently loaded scripts is way cool and I really, really want it in my editor.

UPDATE: So, I've just discovered that you can use the cursor keys for shell-style scrolling through the command history in the console window. You can also use them to auto-complete the names of objects, properties and methods. These go a long way to assuaging my pain from #3, although the dynamic update of values / dedicated watch window would still be very nice to have.

Tuesday, 15 September 2009

The XForms Developer Zone

Well I've not been around these parts much of late, but it is good to see that the old blog is still standing. Now seems like a good time to blow off the cobwebs that have gathered around this place and post some news about what's been keeping me so busy.

Over at webBackplane, we've dedicated a significant portion of the last few months to improving Ubiquity XForms, the open-source project that we're developing jointly with IBM. Going hand-in-hand with this work has been the creation of a new XForms community resource, the XForms Developer Zone. The vision for <xforms:dz> is a community-driven site for anything and everything XForms-related. Developers and users of all XForms processors are welcome, in fact they (and you) are positively encouraged to sign up and contribute.

As it is only the first day of the new site's life, content is still quite thin on the ground right now, but we're going to add new articles thick and fast. Already on there, amongst other items, is a tutorial by yours truly that demonstrates how Ubiquity XForms and Google Maps can be combined to easily add powerful map controls to your web pages. And looking forward, we're excited about plenty of other Ubiquity XForms articles that we have in the pipeline, not to mention even more content about the likes of Chiba, formsPlayer, Orbeon, XSLTForms and XForms in general.