rob.tweed's blog
EWD Training at Bletchley Park
Submitted by rob.tweed on Wed, 06/11/2008 - 09:09.As you'll see from the programme, I'll be running an EWD training stream at Out of the Slipstream in Bletchley Park. What I'd be interested to know is what level of training would people like. There are essentially 3 options:
1) a beginners introduction to EWD, so you'll be able to see what EWD is all about, what it does, how it works etc
2) an advanced introduction to custom tag development (which is where you can really get control over EWD)
3) an introduction to the ExtJS and Emprise Javascript Charts widget tags in EWD
Unfortunately with Out of the Slipstream being a one-day event, it's impossible to fit more than one course into the time available. So what would be your preference?
You can let me know on the day, but it would be more useful to know in advance what you all think: add your votes as comments to this thread.
Many thanks
Rob
The Web Application is dead! Long live the Web Application!
Submitted by rob.tweed on Thu, 03/06/2008 - 07:53.If you're attending InterSystems' Devcon in a few weeks time (http://www.intersystems.com/devcon2008/), make sure you visit the M/Gateway Developments (http://www.mgateway.com) booth at the Partners Pavilion. If you weren't considering attending, then maybe you should reconsider!
What we'll be announcing and demonstrating is nothing short of the new face of the web application, a set of technologies and capabilities that will fundamentally challenge opinions and preconceptions of the limitations of browser-based application. What's more, we'll demonstrate that EWD makes such a quantum shift unbelievably simple to implement.
The unique and hugely powerful EWD paradigm is now set to seriously challenge the conventional approach to web application development. Come and see the future of web applications, and discover how quickly and simply your applications could become a part of that future.
EWD's Dojo Widgets: the bigger picture
Submitted by rob.tweed on Wed, 01/30/2008 - 10:39.On the face of it, the recent Dojo extensions to EWD may just appear as a way of grafting on a cool set of industry-standard UI components, but if that was all the story, it would imply that if you need fancy widgets when you use EWD, then you have to use the Dojo ones. In fact that's not the case at all. There's a lot more to the exercise than immediately meets the eye.
One of the primary motivations behind the exercise was to create a working demonstration of how to build a set of EWD Custom Tags that would automate and simplify the use of a third-party set of widgets. So let's look a bit more behind the scenes, because, with some outside participation by you, the readers, EWD could become exceptionally powerful: even more so than it is already.
Javascript frameworks and widgets in particular are a very interesting area because you can tap into huge amounts of work that has been already done for you in the design, usability and cross-browser support of these often highly complex components. There are many of them, all of them free to use, including:
- Dojo (http://dojotoolkit.org/), of course. The "grand-daddy" of them all, but notoriously complex to use, often buggy or highly sensitive to being used "just right", and historically at least, extremely badly documented.
- script.aculo.us (http://script.aculo.us/). A very popular widget set, if you can sift through the (IMHO) apallingly laid out web site and find something you'd like.
- Yahoo YUI (http://developer.yahoo.com/yui/). Some very nice widgets here from a major force in the Javascript world, with gurus such as Douglas Crockford behind what they do. Their widgets require a lot of Javascript coding in your pages.
- Interface Elements for JQuery (http://interface.eyecon.ro). Not so well known, but wow! Their widgets are beautiful!
- Backbase (http://www.backbase.com). An up-and-coming force in the Ajax world, again with some extremely sexy widgets, and a very interesting XML-based underlying methodology.
Of course you could spend the time to figure out how to use any one of these libraries and manually hand-craft the widgets into standard EWD pages. That, in itself, is an important feature of EWD that should be understood: there's nothing in EWD that prevents you using any or all of these Javascript libraries. Having said that, most of the libraries have, at their core, a set of solutions for handling the "round-trip" Ajax plumbing (based around the use of the browser's XMLHTTPRequest object) and data binding. These are superfluous if you use EWD: it already contains its own proven built-in solutions.
There's several problems with manually hand-crafting third-party widgets into your EWD applications:
- first, you need to understand the mechanics of the Javascript library you're using. That means a lot of effort, ploughing through their documentation, trying out examples, tweaking them till they do more the kind of stuff you'd like to do. Without exception, all the libraries have a steep learning curve and despite their goal of making it simple to do complex things, they are complex environments to create and use. Dojo is a particularly complex beast.
- secondly, how do you decide which library to use? To do a thorough comparison would take way too long for it to be commercially viable. Can you cherry pick and use one widget from Dojo and another from Backbase? No, it's usually an all or nothing commitment to one, you invest time and effort understanding it and then you're tied to it for better or worse.
- thirdly, the code you typically have to embed in your pages to make the widgets work is, quite honestly, horrendous. One of the most important principles of EWD is that your pages should clearly describe WHAT your pages are trying to do, leaving EWD to generate HOW they do it. Whilst Javascript libraries certainly make it a lot easier to implement complex UI widgets, nevertheless they are still necessarily pretty low-level beasts. Hand-craft them into your EWD pages and a year from now I can guarantee that you'll be scratching your head trying to figure out what they're all about if you need to maintain a page containing them. Worse still it probably won't be you maintaining the page. The result will typically be what I've seen so many times and despaired: it becomes quicker and easier to rewrite the page from scratch than figure out how the old version works. That this is tolerated at all is unbelievable, but my observation based on 12 years experience in this world is that, sadly, it is the commonplace state of the art!
So where's this leading? Well EWD has a secret weapon up its sleeve: EWD pages are actually an abstraction of the pages you'll really run within the environment of your choice. They have to be compiled down into the run-time version that will run on PHP, CSP, JSP or whatever. This is how EWD allows you to have the best of all worlds and describe your pages in terms of what they do: the compiled pages that EWD's compiler generates are all about HOW they actually work, chock full of all kinds of nasty run-time-specific stuff that you'd otherwise have to hand-craft yourself. EWD's XML DOM-based compiler performs the transformations from your high-level tag-based description in your EWD pages into the nasty run-time stuff in, say, your PHP pages. You never really need to look at all that PHP (or CSP, JSP etc) code. If you need to modify or maintain a page, you just modify the high-level EWD page and recompile.
The other secret weapon within EWD is its Custom Tag architecture. All of EWD's own built-in custom tags were implemented using this, and, from the start, the architecture has been exposed and available to the end user to craft his/her own Custom Tags. At the heart of an EWD custom tag is its "tag processor": a method you design to transform an instance of your XML-based custom tag into whatever it needs to be expanded into in the run-time page. You describe that transformation as a set of XML DOM manipulations on your EWD page. This is exceptionally powerful stuff. There really is no limit to the complexity of the transformations you can carry out. And to make matters even better, your transformation can make use of EWD's own custom tag primitives, leaving them to look after the technology-specific aspects, so your Custom Tag will automatically work in PHP, JSP, CSP or whatever!
And so back to those Javascript libraries. My implementation of the Dojo tags was a case study in how to design and express the use of a set of complex third-party widgets as a set of very easy to use EWD Custom tags. I hope you'll agree when you look at the source code in the Dojo examples I've made available on our web site, the EWD/Dojo Custom Tags are all about describing WHAT you want to do: eg I want to have a slider at this point in my page. EWD's compiler and my Dojo tag processors look after converting this to the nasty mass of Dojo tags and Javascript logic that needs to be embedded in your page. Apart from idle curiousity, you'll probably never need to know or care how it's actually done at the Dojo level.
As a result, anyone can now use the Dojo tags without really having to spend any time ploughing through the reams of Dojo's documentation and examples. That steep learning curve has been removed and you can quickly give Dojo a go. And of course a year from now, anyone can pick up that page and see that you used a Dojo slider at that point in the page and tweak its behaviour as required.
And so to where I'm trying to lead this discussion. What I've done is provide a template of how a third party widget set can be expressed as a very simple-to-use set of high-level EWD Custom Tags. It's not intended to be interpreted as a lock-in to Dojo in any way. Quite the opposite. What I'd like to now see is the equivalent implementation as EWD Custom Tags of as many of the Javascript libraries out there as possible. My problem is time. It takes a significant effort to do this. The main effort is actually getting to grips with and understanding the way you use the Javascript library and all its subtle nuances (eg the most complex part of the Dojo implementation was figuring out how it could work with the Ajax fragment replacement mechanism in EWD). The actual custom tag processor development, once you're familiar with DOM processing, is pretty trivial. For example the Dojo FishEye menu custom tags were written on a Sunday afternoon whilst also cooking the dinner!
So there's my request to you, the reader. I'm seeking volunteers to help implement all the major Javascript widget libraries as EWD custom tags. I'll provide as much assistance as you need to understand the mechanics of how to go about such a task. For example, I'm thinking of running an in-depth seminar on Custom Tag creation during DevCon if anyone's interested.
The rewards to the community will be immense. What we'll then have, within the Cache/GT.M community is, without any argument at all, THE most powerful and flexible Ajax/Web 2.0 development environment on the planet. Anyone will be able to use whatever widgets they like without any of the steep learning curve and maintenance nightmares. Users of EWD will be able to focus their efforts where they really should be focusing their efforts: on their application's functionality, concentrating their efforts on WHAT their applications do, rather than fiddling around wasting time and effort on HOW their applications need to do it! EWD + Cache or GT.M will be demonstrably THE most productive web/Ajax development environment, bar none.
Volunteers please? Contact me at rtweed@mgateway.com if you want to help in what I believe will be one of *THE* most influential projects for our community.
Amazon S3 Client
Submitted by rob.tweed on Thu, 10/25/2007 - 15:42.Well I announced it in my Lightning talk at the conference. The Amazon S3 Client
for Caché is now finished and available from http://www.mgateway.com.
Here's the notes from the web site:
This application provides a Caché-based web interface to the Amazon Simple Storage Service (S3) which
offers very low-cost, secure online data storage on Amazon's infrastructure. You can use Amazon S3 for
private storage of data (eg for low-cost backup) or for making data and/or files publicly available at an
incredibly low cost.
You can use the pre-built, Ajax-based client interface to manage and maintain your Amazon S3 storage.
Alternatively you can also use the same low-level Caché API methods that were used to create
the pre-built client interface. These APIs allow you to quickly and simply build your own application
interfaces and to integrate Amazon S3 storage with your Caché applications. The M/Gateway S3 APIs make it
possible to use Amazon S3 storage as an extension to Caché's database storage.
Amazon S3 is VERY cool, and incredibly cheap. Check it out and try out our interface!
Slideshare (continued)
Submitted by rob.tweed on Thu, 10/18/2007 - 08:08.It's very interesting to see the number of views that our respective presentations have now clocked up at Slideshare. For example, mine stands today at over 390 and George's an amazing 470. Even taking into account that many of the viewers will have been "tyre kickers", it's still an amazing way of getting your message out to many more people than you'd otherwise have reached in a conference alone.
I'm sure that many of the views will have been by members of the Cache/MUMPS community, but I'm also sure that we've managed to increase awareness of these technologies for quite a few new people - an objective we always had for this conference.
Maybe our next conference doesn't need to be a physical one, just a set of Powerpoint slidecasts on Slideshare! ;-)
Another Slideshare spotlight!
Submitted by rob.tweed on Mon, 10/08/2007 - 13:27.We seem to be sweeping the boards on the "spotlight" section of Slideshare. First George's presentation got a spotlight, now mine!
Slideshare seems to be a very good way of getting quite significant wide-ranging exposure. Anyone who has good Powerpoint presentations that can be made publicly available should think about uploading them. Thanks, George, for finding this service!
Slideshare can be found at http://www.slideshare.net
Photos of the conference
Submitted by rob.tweed on Sun, 10/07/2007 - 13:45.I've posted some photos taken during the conference on my Flickr account. Click here to see them!
Behind the podcasts (warning - for audio geeks only!)
Submitted by rob.tweed on Sun, 10/07/2007 - 12:38.Recording the audio for the conference was actually a bit of a return to an old hobby of mine, and has rekindled the recording bug. I'm very much a frustrated recording engineer and used to record musician friends and various bands around London in the 1980s. One interesting recording I made was a demo for the late Mort Shuman, the guy who wrote many of Elvis' hit songs, and I've made numerous recordings of my good buddy Simon Chamberlain, one of London's foremost keyboard session players (though I can't claim credit for the recordings listed in his URL!)
Back in the 80's the gear you had available was pretty crude and a lot more expensive than today, but I still have one of the first Sony PCM processors which allowed you to record audio as a digital PCM steam onto VHS tape! Quite an awesome piece of equipment in its day, but sadly redundant these days where you just record digitally straight to computer.
Unfortunately in the intervening time I'd lost one of my microphone cables so I was only able to record the Out Of The Slipstream conference in mono using a single microphone - it all would have sounded a lot better in binaural stereo but never mind - I knew it would all have to be shrunk down and compressed into MP3 anyway, but hopefully you'll all agree that the sound is nevertheless pretty good. As George has said, my son, Simon, did a great job of laboriously recording the talks and doing the post-production work equalising the sound levels (some speakers in particular had a terrible habit of walking around, so the voice level went up and down quite a bit), splitting the tracks up and compressing them to MP3.
For any like-minded audio geek that's interested, the gear used for the digital recording of the conference was:
1 Calrec CM 652D small diaphragm cardioid capacitor microphone
Mic pre-amping was done using the mixer section of an ancient 4-track Tascam Portastudio
Edirol UA-1EX USB sound card
Recording and post-production software: Audacity 1.2.4, running on a Dell laptop.
Calrec is sadly no longer making microphones - they used to make many of the mics used by the BBC, and the 652s were a relatively low cost but amazing quality microphone, great for crossed-pair stereo recording or instrument mic'ing. Calrec were famous for their revolutionary SoundField microphone which is now manufactured by another company (http://www.soundfield.com/) - oh how I always wished I could have afforded one!
Well, I've now got the recording bug again and invested in a new, small Behringer mixer which should be much more portable and higher quality than the clapped out Portastudio, and I now have both the Calrecs up and running.
So if you have a conference or other event that you want recording, let me know - I may be able to help out!
PS: listen out for some of the background sounds during the talks. At various times you'll hear the wonderful sound of vintage car amd motor bike engines running outside the conference room!
Maybe I do need 2007.x
Submitted by rob.tweed on Wed, 09/26/2007 - 17:46.I think I've found a reason for moving to Caché's new shiny 2007.x series. But you'll have to listen to my Lightning Talk to discover what it is! :-)
New Website, new EWD!
Submitted by rob.tweed on Wed, 09/05/2007 - 11:03.As part of the lead-up to the conference I've been busy re-designing our web site. It's a case of practising what we preach, so the new web site is totally Ajax-based using the EWD Ajax Framework. It's a work in progress, so some of the tabs will still take you back to old parts of the site, but the eXtc Web Developer (EWD) section is fully re-designed.
The EWD section is worth exploring - the version of EWD you can now download is the very latest one, bringing in many new features including:
- loads of new Ajax capabilities
- some built-in Yahoo YUI widgets
- WebLink Developer integration
- support for WebLink as a compilation target
- GT.M support
Although not a formal documented part of this release, the latest EWD can be used to design and build PHP applications that use mySQL as the back-end database. This is the first step towards making EWD a completely technology-independent web application development and design framework. As another example of practising what we preach, when you download EWD you'll be running an EWD application that is running PHP and mySQL on our new, shiny leased virtual server (which of course came with PHP and mySQL for free, so why not use it!).
The web site is also an example of the use of EWD's Ajax Framework for static pages and fragments, and it's also a "hybrid" EWD Ajax site where a static "container page" is taken over by a dynamic EWD Ajax application (where the EWD application consists of nothing but "parasitic" fragments). The site is a good example, then, of the kind of things I'll be referring to in my talk at the conference.
You'll find that all the information you need to get going with EWD is now available online in the web site including lots of working examples (complete with fully commented source code). I think the multi-tabbed layout lends itself much better to documenting all the potential compilation technology options supported by EWD - do let me have your comments!
I'm always interested in suggestions and if you have or would like more examples, just let me know.
So get onto www.mgateway.com and start exploring!