2007-05-18

XTech 2007 Summary

A short post with the best things -
  • Joost demo - I need them to open source their sprite code as well as using the XULRunner base, or I'll have to write the same thing at work. It also would make a better platform for the UML modelling and SAM meta-tool stuff I used to do. Maybe they'll turn up on Mozpad.

  • XMPP pushing - Several demos of making interactive applications on top of XMPP, and a cute demo of SamePlaceSuite, which I got my sister to install this evening; Strange Attractor have a fuller write up of the Jabber and ubi-comp talks.

  • Arduino hacking - I first got into computers after messing around with analogue electronics, light sensors and making motors go on and off. This is the sort of thing I could make cool stuff for my nieces with, who might get tempted to take things apart. There seems to be a generation of programmers today who don't have any idea of the hardware below, because there's so many layers in modern systems; I don't know how many CS courses still have obligatory hex microprocessor programming sections now that microprocessor instructions are several times as long and have a multitude of addressing modes. 6800 was much simpler than modern cores, Arduino seems simpler still.

  • Joins on open data - several talks mentioned using joins across open data sets, for example tags on photos with geolocation data can be used to infer tags for the locations, and also many cases of joins across datasets for space and time visualisation in stamen.com's talk.

  • The eponymous stamen.com talk on interactive visualisations - but with very little actual interaction. They create beautiful, information rich applications, many simply play through a time selection and give a video scrub control, and you watch a population of events evolve in a space. The information-software as branch of movie making metaphor.

  • Interaction embodiments - Nabaztag and Matt Webb and others, using simple metaphors and littoral devices which span between physical and web spaces. I like physical things that do one thing; gestures and simple control. I hate trying to do anything detailed with a mouse, though a trackpad is ok - something like drawing with your fingertips, and stylus or touch screen is much better. That most of the physical interaction we have with computers is with a soap-on-a-rope always strikes me as odd (they also hurt my wrists if I do use them, but that's another issue). I'm still waiting for the nanotech to get to the state that I can write code in my moleskine and it will execute and report the result on the next line of paper.

  • Together-apart-together-apart flows in information/interaction embodiments and mediated spaces/private spaces. The dumber the network - and xmpp is pretty dumb - the more diverse the messages; getting information software as rich as print media and interaction as easy as a pocket book is hard. But fun hard.



Pete

Labels: , , , ,

2007-04-26

Rich Application Platforms

Well, there's been a bit of a kerfuffle about whether or not Silverlight (nee WPF/E) supports binding, widgets and XMLHttpRequest gubbins. And Adobe has open sourced Flex, as well as having had its Apollo platform out for a bit now. XULRunner is still going, being used for SongBird and Joost, and freshly the DVD version of Wikipedia, though whether or not Mozilla is promoting it well as a platform is under discussion.

Having done an awful lot of XULRunner programming in the last few months, there's still a lot to be done before its an easy to use platform. Quite a lot of undocumented interactions cause crashes - particularly race conditions between XBL bindings being attached and scripts in the body of the document being run, and any manipulation of the tree in script during an XBL constructor. But I don't have any idea how well Silverlight or Apollo handle such things, or even if they support anything as flexible as XBL. There needs to be an XULRunner 2.0 that is a lot more predictable in its behaviour, and less arcane in its invocations.

There's also a big question for the sort of system's I'm interested in - can a platform do something like the ClusterBall WikiPedia visualisation? XULRunner SVG grinds to a halt at a thousand or so arcs, and rotated font anti-aliasing is a bit off. Flash, using Haxe, can render ten thousand arcs, but getting text to rotate is a hassle - it requires embedded fonts, and that means more tools, you can't just set the rotation property. There's quite a lot of weirdness in Flash, half of it is object view graph based, the rest procedural, not everything works and it doesn't play nicely with the browser, for example capturing keyboard input and not being part of selections. As far as I know, there isn't an open high-quality 2D graphics library other than anti-grain 2.4 which will scale and isn't, well, a bit weird. But anti-grain has moved to GPL, and isn't hardware accelerated at 2.4, so what will become of it I don't know. I'd really like a good, object oriented language, with a mix of dynamic and static typing, support for mesh tuple spaces, event queues, first class functions and relations, orthogonal persistence, which runs fast enough, and generates portable, high quality visualisations and information displays. None of the options are quite there yet, but XULRunner's JavaScript and SVG seem to be the most sane.


Pete

Labels: , , , ,

2006-10-07

Better GUIs

Every now and then I go and have a look back at Java land. Yesterday I found this blog entry
John O'Conner's Blog: Better GUIs are one step closer.

It's very painful making good layouts in Java. For my last large Java UI project, which was based on porting a large mainframe ISPF application to run as a desktop application on PCs, I ended up implementing a layout and look-and-feel with most of the CSS box model on top of swing. I would have used XUL for it, but it was a Java shop and adding another platform was too political. There already is CSS look-and-feels in Java, so it shouldn't still be an issue getting things lined up right.

Anyway, I tried to do the same thing in XUL, so that it looks like this on a Mac:





source
css

Now, this took a little while while I remembered that you have to specify widths to ensure each flexible box ends up the same size, but the declarative syntax means you don't really need an IDE and a graphical editor, and the full CSS support means you can skin things if you like.

But that's not the real problem. Better guis are not just better aligned guis - they are concerned with user experience. And if you have to produce that amount of code just to align your fields, then you won't be agile enough to respond to your users.


TME

Labels: , , ,