Sunday, July 30, 2006

XForms, metadata and MDA

For the last several weeks I have been looking at the XForms standard. This has been related to my contract at the Minnesota Department of Revenue to replace many of their paper forms with electronic versions. Although my contact is to design XML Schemas, ultimately they need to be entered through a web form. I started to build some mock-ups of web forms to clarify requirements but found the older HTLM forms lacking in many areas. I also wanted to be able to validate the data using the XML Schemas that I was building.

What I found was that XForms is a wonderfully designed specification. It integrates XML Schemas, XML data-types and XPath expressions directly into the standard and also adds the new XML Events standard. XForms also faithfully uses both the Model-View-Controller pattern and several separation-of-concerns issues. In short, XForms is an excellent design and appears to be very well thought out. My congrats to the XForms team.

My other worry was that it would be hard to setup and test XForms. I have been happy to find out that FireFox has a new plug-in that supports XForms and there is a plug-in free solution using the FormFaces javascript tools. Many of the examples just run without modification. Just build your XForms and out pops complex XML documents.

What I am most interested in is that there appears to be several things that XForms demonstrates that will make software engineering better: the drive away from the complex procedural world and toward a more model-driven declarative style of development that allows non-programmers to maintain complex systems. This means less complex javascript and complex server-side coding in Java. I hope to have a sample PowerPoint presentation on my web site soon that goes through these arguments. Look for an XForms user interface to data element entry in the near future.

Another last point is that if a large audience starts to build XForms you are going to start to have fully-formed XML documents flying around. This means you will need more XML Schemas being generated and web services to accept them and respond with XML documents and XML services. This will make the creation of new XForms go even faster. Positive feedback cycles. All the more reason to build a metadata registry!

I have been thinking about creating an transform from a constraint schema directly into an XForm. This would be an nice MDA-type approach.

Let me know your thoughts. - Dan

Friday, July 07, 2006

Photo gallery Software

I have been looking into OpenSource photo gallery software. I am a little frustrated by the limitations of FrontPage for publishing my photographs. I would like to just tag my images from the Windows browser and say "publish". I want a thumbnail-drive front page for each section with a variety of viewers (matrix, filmstrip, montage) that can be customized with the FireFox View/Page Style menu. My friend Liela Tite recommended Coppermine. I also ran into these two: Gallery Project - based on the Drupel web content management system. 4Image - which is a system written in Germany. Since the 4Image site was written in German I had a more difficult time trying to find a list of all the features. Both the gallery and Coppermine systems seemed very full-featured. Let me know if anyone has suggestions. A Wikipedia feature-comparison would be very helpful. Perhaps I should start one? :-) OK, OK, I will...

Thursday, July 06, 2006

Thanks Arun!

I recently started a project at the Minnesota Department of Revenue. I was happy to find a kindred spirit in the IT department that also in interested in using Wiki's to manage IT data. Arun has got me to think about the implications of Wiki publishing and how I can integrate metadata into a ESB framework. Check out his web site. It has lots of interesting things. http://netrii.com/display/ABB/Home I was also interested to find that he uses a Wiki for his own personal web site. - Dan

Ant Image Tasks

I was pleasantly surprised to find that Apache Ant has a large library of image processing tasks under the optional Ant tasks. For example, the following will create a folder of thumbnail images for all the images in a folder:

This creates thumbnails of the images and make sure they all fit within the 160x160 size whether the image is portrait or landscape. Very cool! Check out the Ant manual for more information: http://ant.apache.org/manual (Ant tasks/Optional Tasks/Image) This makes me think that you could use Apache ant to do basic photo publishing. It would make thumbnails, a layout page that has links to the thumbnails and ftp the folder's web-resized images to a web server. I have also found that there are some nice photo-layout CSS pages. It would seem that it should be easy to add a set of CSS styles that could be changed using the FireFox "Page Style" option. I would be happy to write a basic ant task and an XML transform to create an HTML page of all the images in an image set if anyone wants to help. What about image keywords and captions? Should each photo have its own photo metadata? What if you want to change the file name of a photo? How can the metadata file stay in sync with the file system? Could you use a subversion-tortoiseSVN-like http://tortoisesvn.tigris.org/ Any ideas?