The DEMML™ blog is about the Distributable Educational Material Markup Language™,
an XML standard being developed by Grant Sheridan Robertson.
Learn more about learning more at

Thursday, December 31, 2009

Letter to Developers

To any developers interested in contributing to DEMML:

I am currently still working on the XML schema. It will be relatively involved and I am currently working entirely alone, so it may take me a while. If you already know about XML and designing schema then, yes, I would really love some help with that right now. If you do not know about XML Schema then I suggest you learn. I firmly believe that XML is the way of the future for data and data transmission. Solid XML standards will pave the way for developers to create standard APIs to allow many different types of applications from many different vendors, in many different languages, and on many different platforms to interoperate. I highly recommend "Beginning XML Development 4th Edition" from WROX Press and "Definitive XML Schema" by Priscilla Walmsley. (Avoid the O'Reilly Press book "XML Schema" like the plague. The author seems to think if he obfuscates everything as much as possible it shows that he is smarter than other people. Ether that, or he is trying to hide the fact that he doesn't really know what the heck he is talking about.) As DEMML is an XML schema it will be important for developers to know how to write code that deals with XML.

Once you understand XML well enough, then you will need to learn about DOM and SAX to write code to read and write XML properly. I just finished an independent study course working on a simple project to read and display some basic XML so I could help you out with that some if you don't already know it, although I am far from an expert. I highly recommend "Core Java" volumes I and II by Cay S. Horstman and Gary Cornell. Those guys really know how to explain things so you can understand it and they don't skip the important details. So many Java examples and tutorials I have found out there, including the Sun tutorials, seem to simplify many things to the point of being wrong. Their sample code works but it does not follow best practices. It is just barely good enough to get the job done. But real developers want more than that.

Once you know how to write code that handles XML well, then you might want to learn about how to display XML content that contains HTML markup in a window that uses the engine from a solid web browser such as IE or Firefox or Opera. One of the goals of DEMML is for it to be able to contain and present any content that could be displayed in a web browser. This includes JavaScript, Flash, videos, etc., using the same plug-ins that are already installed in the user's regular browser. (It is important to keep in mind, however, that all of this fancy content must work when all of the files are stored on the user's hard drive. They cannot rely on a connection to any server at all. This is so users in the most remote rural areas of underdeveloped countries can still use the content once they have gotten it onto their computers.) I have yet to figure out the technical details of how the heck to use the browser engine technology. I do not know how to develop a browser or how to use the engines for existing browsers, such as the Gecko engine for Firefox. So this would be a very good area where you could help a lot.

If you are more interested in internet routing protocols then you may want to help develop the routing protocol I invented to make it possible to distribute all the content out to areas where there aren't internet connections. I would like to refer you to an idea I posted on my personal blog. It is for a new type of "network" routing protocol that doesn't actually require a network at all. Devices would transmit data to other devices as they happen to come into contact with them and transfer messages on an ad-hoc basis. The messages would hop from one device to another till they eventually got where they needed to go. The post is merely an idea, with no actual implementation whatsoever. However, I have placed that idea and a full outline of how it could be implemented in the public domain. Anyone is welcome to develop the idea and I will be happy to provide more feedback with additional ideas to help anyone complete that project. My hope is that someone else will work out all the details and write all the code and then I won't have to. This is the true spirit of open-source development. Everyone contributes what they can and then everyone benefits from the results. The protocol is called The Intelligent Epidemic Routing Protocol and you can find my post at It would make a great graduate thesis project for a computer science graduate student. If you were to write the code to actually implement this idea, you would be famous. You would be able to get a job just about anywhere you want.

One of the best things is that, once I have published the DEMML schema, anyone will be free to develop software that makes use of the schema. I will be encouraging any and everyone to write software (open-source and commercial) that creates and/or uses DEMML content. Just as there are a bunch of competing web browsers and dozens of different HTML editors, I want there to be lots of competing software for DEMML. I will be founding a non-profit soon (eventually). One of the purposes of that organization will be to develop software libraries to make it easy for developers to develop software that makes use of the DEMML standard. I hope to eventually be hiring full-time developers to work on those types of things.

If you are interested please contact me.

Grant Sheridan Robertson

This post is Copyright © 2009 by Grant Sheridan Robertson.