Mark Birbeck's blog

Compact HTML: A mark-up language for micro-blogging

Mark Birbeck's picture

When sending small comments via services such as Twitter, it's pretty straightforward to add links to other documents. The general pattern is to abbreviate the link using an online service, and then paste the shortened link into your post. Software that displays your posts can then replace any string that begins with http: with a real link.

However, there are many occasions where a link is just not good enough. Sometimes you'd like to embed an image, or even a video. But if we start trying to add HTML mark-up, we'll pretty soon hit the character limit imposed by micro-blogging platforms.

Enter compact HTML, or CHTML...for short.

Using JavaScript's replace function to stem the spread of eval()

Mark Birbeck's picture

One of the recurring patterns in the Ubiquity RDFa library is the need to substitute the property of an object into a string of text. The general pattern is that templates such as a tooltip, or piece of script, should have all occurrences of any variables replaced with the actual value of those variables from a run-time JavaScript object.

Passing run-time parameters to internet applications

Mark Birbeck's picture

Determining the behaviour of an application at run-time using parameters is a well-established practice. But whilst it's possible with command-line and server-side applications, the scope for passing information to client-side internet applications is limited. With the growth in internet-facing desktop applications, widgets and gadgets, there is a need to pass parameters directly to the application, rather than via a server, and this post looks at how that might be achieved.

@role values for SVG

Mark Birbeck's picture

Something which was part of the early design concepts from the XHTML Role Attribute Module, which has got a little lost, is that elements from any language can provide a handy source of role values too.

Upcoming talks on RDF, RDFa and XForms

Mark Birbeck's picture

May is going to be pretty busy with talks about XForms, RDF and RDFa coming up.

How formsPlayer can help take XForms to new platforms

Mark Birbeck's picture

A short while ago we made the formsPlayer source code available under an open source license, on Google Code. We didn't announce it widely because we wanted to get the infrastructure right before inviting people in, but it's something that the team behind formsPlayer have been excited about doing for a while now, for a number of reasons.

The main one is simply that in this day and age, open source is so obviously the way to go; whether it's government departments, multinational companies, educational establishments or individuals, there seems to be no barrier nowadays to people using open source software in their projects.

But perhaps just as important as 'doing the right thing' is our desire to enlist help in porting formsPlayer to new platforms. Our team is small, and would never have got formsPlayer to its current enterprise-level standard without the enormous amount of community involvement we've received, in the form of testing and bug reports (formsPlayer has been downloaded tens of thousands of times). But that means that we're missing out on a crucial asset, the involvement of developers. XForms needs to be on more platforms, and in more browsers, and we think that formsPlayer has a major contribution to make to realising that—but it will only be able to make that contribution if the code is open.

From the end-user point of view, making the code 'free' will probably have little impact; formsPlayer has had a free version available ever since it was first released, and that will obviously continue. And for those who need enterprise-level builds and priority support, we will continue to offer that service. But the team that built formsPlayer has been increasingly providing companies with world-class XForms consultancy, support and training, and in the coming period we intend to put that much more to the centre of what we offer.

So over the next few months we'll be making a number of announcements about new partnerships, new libraries, new tools, and new services. And we'll also have case-studies on our work in sectors such as the UK insurance industry and banking in the US, just as soon as we can find the time to produce them!

We believe that XForms can be central to web and desktop application development over the next decade, and we want to play our part in helping to put it there; taking formsPlayer open source was a significant step towards that.

RDFa Primer published

Mark Birbeck's picture

A new version of the RDFa Primer has been published. It's a useful introduction to the power of RDFa, with lots of examples.

SugarCRM, RightScale and EC2

Mark Birbeck's picture
SugarCRM Logo

I've had an interesting time lately, looking at SugarCRM for a potential customer. The project involves having an internal system for the sales team, and then a public system that needs to cope with tens or even hundreds of thousands of members.

A better XForms news service

Mark Birbeck's picture

For a long time now we've placed useful XForms links at the bottom of the page on this site. But the problem is that we don't always capture all of the useful sources of information that is available for XForms, and what links we do list are tucked away at the bottom of the page. (You might not even have known it was there!)

So I decided to set up a separate site called Planet XForms, that does nothing other than aggregate a number of XForms-related blogs, as well as various XForms-tagged resources, such as images from Flickr, presentations from SlideShare, videos from YouTube, events from Upcoming, links from Magnolia and del.icio.us, and news from Google. There is also a Feedburner feed if you want to get the whole bundle into your RSS reader in one go.

Planet XForms is completely automated, which means that if you have a screenshot that you want the XForms community to see, you don't need anyone's permission to get it onto the Planet XForms site; just upload it to Flickr, tag it with 'xforms', and it will soon show up. Similarly, if you have a useful tutorial, you could make a YouTube video or upload your slides to SlideShare, and as long as you don't forget the 'xforms' tag, your video or slideshow will quickly be available to anyone interested in XForms.

We'll leave the feeds on this site around for a little longer, but since Planet XForms is going to be so much easier to use, and includes far more material than we have here, we'll wind it down soon.

The 10 minute guide to Sidewinder (or 'How to turn a web app into a desktop app without programming')

Mark Birbeck's picture

Welcome to the quickest way to get up and running with Sidewinder, the open source web applications framework. This post is intended as a quick step-by-step guide to creating desktop applications with web languages, but it's full of screenshots, so it should also be useful to anyone who wants an overview of what Sidewinder can do.

Yahoo! uses XForms for 'write once, run anywhere' mobile applications

Mark Birbeck's picture

Yahoo! recently announced their entry into the mobile web applications space, with a service that allows applications to be built and hosted using Blueprint, a purpose-built mark-up language based on XForms.

The Blueprint roadmap describes the underlying philosophy:

Much of Blueprint's philosophy and syntax comes from XForms. We opted for a full declarative language because it was the only way we could effectively run on the wide range of devices out there, some of which have no scripting at all. By using declarative syntax, we can encapsulate and hide the scripting specifics. In some cases, the code could run on the phone, in other case, such as XHTML, we can put the logic on our servers. It's the perfect way to deal with the various environments and their capabilities.

At the moment Blueprint is simply converted to XHTML plus JavaScript for delivery to devices, but the mention of XForms gives a clear indication of where they are heading. And given that Google did something similar with the launch of its Google Mashup Language, it all bodes well for a new wave of web applications that won't be built using JavaScript (or even Java and GWT) but will use straightforward, device-independent, mark-up.

Write once, run anywhere, anybody?

For more on why XForms is Ajax on steroids, see:

Passing run-time parameters to Sidewinder via the URL

Mark Birbeck's picture

The Sidewinder Viewer contains a growing number of innovative features, and one I'd like to highlight here is the ability to pass run-time parameters for a web application, via a URL.

Sidewinder is open source and gets a new home

Mark Birbeck's picture

The transition of Sidewinder, our semantic web applications viewer, to an open source project is now complete. It took quite a lot of work in a number of different areas, but we're convinced that this will now help us realise the full potential of the framework.

Server move and Drupal upgrade complete

Mark Birbeck's picture

On Monday we completed the move of formsPlayer.com from a Windows box sitting in a rack at a hosting company, to a Linux instance running in the virtual world of Amazon's EC2. Along the way we discovered RightScale, which builds on Amazon's excellent product to create something quite revolutionary.

During the course of the move we also upgraded Drupal to 5.2, which should give us more control over projects and releases. There are a number of things that are done differently in this version of Drupal, so please bear with us whilst we iron out the glitches.

Clarification on formsPlayer CE 1.5.4 and 1.5.5

Mark Birbeck's picture

Over in the Upgrade forum Jozef Aerts has asked for clarification on versions 1.5.4 and 1.5.5. As he rightly points out, the 1.5.4 builds of formsPlayer Community Edition are newer than the 1.5.5 ones, which is a problem if you have installed any 1.5.5 builds--you can't upgrade to the newer software, because the version number you are trying to install is lower.

The problem stems from not having made clear in the past which builds are 'previews' (only recommended for brave developers wanting to have a look at new features that are coming down the line) and which builds are part of the main development path.

We've been working for a while on making future developer previews completely separate, to avoid confusion, and whilst we finish this process we've put on hold the new features from 1.5.5 (custom controls based on select and select1 will be easier to create). This means that for 1.5.6 we'll be concentrating on finishing the last few items from XForms 1.1, and resolving any outstanding bugs.

For further information see the formsPlayer Community Edition 1.5 roadmap.

XForms custom controls, using XAML and Silverlight

Mark Birbeck's picture

Silverlight clock as a custom control in XForms/formsPlayer

The title of this post may sound like an attempt to squeeze as many buzzwords as possible into one line, but I'm genuinely excited by all of the technologies mentioned. Everyone knows that Microsoft's commitment to standards such as HTML and XForms is legendarily lacking, and this is nowhere more obvious than in the quaintly kludgy XAML. But that said, there are some very interesting ideas in the language structure itself, and it's clear that they have done a very impressive job with Silverlight.

So whilst we're certainly not planning to water down our belief here at formsPlayer that standards are (usually) a good thing, we've never seen anything wrong with a pragmatic approach that uses whatever language gets the job done. Having said that, if it's possible to encapsulate non-standard languages like XAML--or even UI-specific languages like SVG--then we will always try to do that.

Which is why we've created a new section on custom controls, and added two new tutorials. The first shows how easily custom controls can be built with XAML and Silverlight, whilst still maintaining a clean separation between the forms that use the controls, and the controls themselves. A second tutorial shows how to create a simple map control, which inherits from an image control.

Using custom controls to more clearly represent different types of data is an important part of our approach to XForms, but at the same time it's important for us to ensure that exciting new technologies such as Silverlight can be used with XForms and formsPlayer. These tutorials make a start, and they'll be followed by a lot of other custom control work in the coming months.

Skimming, and an Open Source project for a GData XForms client

Mark Birbeck's picture

For me, one of the most exciting developments on the web in recent years has been the growth in services that let you manage raw data. Many of the most useful such services originate when some web-based application--such as Google calendars or spreadsheets--exposes the underlying data. For example, with Google Spreadsheets, it's possible to use ATOM to query spreadsheets for certain values, or add rows and columns, making this a very powerful way of storing data 'in the cloud'. (See Web 2.0, Copernicus and Spartacus: Moving the centre of the web.)

We're building quite a few XForms applications that make full use of this power, and it's something I'll be talking about at XTech 2007, in my session XForms, REST, XQuery...and skimming. Since the approach we use could work on any XForms processor, talking to any ATOM-based server, we've decided to create an open source project to host the forms, and document their use. If this is an area of interest to you, check out the GData XForms client project on Google Code, and its discussion forum.

A toolbar for searching the Prototype API documentation

Mark Birbeck's picture

formsPlayer toolbar for searching Prototype API docs

A recent announcement that documentation for the Prototype Ajax library was now available was followed almost immediately by a rather neat looking desktop gadget and a Firefox sidebar. Not to be outdone, I decided to put together a toolbar for Internet Explorer, and managed to do the whole thing with one XForms form control and an action handler--and of course, no script.

Time for a widget spring clean

Mark Birbeck's picture

Screenshot of analogue clock using SVG and XFormsEvery now and then, when I'm looking for something else, I stumble across a widget or an application that we've built using Sidewinder and formsPlayer, but for one reason or another we didn't get round to putting on the site. (Good old Google Desktop Search!)

Building a Backpack interface with XForms

Mark Birbeck's picture

Backpack logoWe're getting ready for a new version of Sidewinder and in the process we're building a few desktop applications to show what you can do with the new features. One of these applications makes use of Backpack to store tasks and reminders, and during the course of developing it, Phil decided to set up a simple XForm that can access every feature of Backpack. It's such a handy little form that we thought we'd share it with you--if you're planning to build an XForms application that uses Backpack you'll definitely want to take a look, but the form has more general use too in that it shows how to use the formsPlayer extensions to control all aspects of data submission.

A Flickr Search Form

Mark Birbeck's picture

Producing a Flickr search form is fast becoming the "Hello, World!" application for Web 2.0. Kevin Lynch did a Flex demo at the Web 2.0 conference that searched Flickr, and then the Ruby on Rails guys followed suit with an Ajax lookalike. Our XForms version is part of the Introduction to XForms tutorial, and has a rich UI like the others...but since XForms extends HTML, then this Flickr search form needs no scripting or server-side assistance.

Syndicate content