XML News from Thursday, January 27, 2005

Cool discovery of the day: I just noticed that at the very bottom of the iTunes Music Store there's now an option to choose your country, so even though I'm in the U.S. I can now shop fopr music in a dozen plus countries and languages. For someone like me who prefers European pop to today's U.S. music, this is a very big deal. Right now I'm watching a German video from some band called "Rosenstolz" I've never heard of before. (Another tip: you have to pay for the songs, but the videos on the iTunes Music Store are free!) Some songs and videos are shared between stores, but some appear to be unique to particular stores, even in English. The French store has Marilyn Manson's Personal Jesus video, which apparently didn't make the cut at the U.S. store. (Great video, by the way. Also worth watching: Bowling for Soup - 1985, Lee Ann Womack - I May Hate Myself in the Morning, Avril Lavigne - Nobody's Home, and Eric Prydz - Call on Me. If the iTunes Music Store used a real web browser instead of custom client, I might be able to provide links to these instead of just telling you the titles.)

Hmm, it looks like I can browse the stores, listen to previews, and watch the videos, but I can't actually buy music. I guess Apple hasn't quite worked out whatever licensing issues were preventing them from offering music across borders. I remaining amazed at the incredible stupidity of the entertainment industry and their willingness to deliberately turn customers paying away. Oh well. Back to Gnutella.


Ryan Tomayko has posted Kid 0.5, "a simple Pythonic template language for XML based vocabularies. It was spawned as a result of a kinky love triangle between XSLT, TAL, and PHP." The language is based on just six attributes: kid:for, kid:if, kid:def, kid:content, kid:omit, and kid:replace; each of which contains a Python expression. Since this expression can point to externally defined functions, this is most of what you need. In addition there are attribute value templates similar to XSLT's, and <?python?> processing instructions can embed code directly in the XML document. I'm not sure I approve of the use of processing instructions in the language, but I'm not sure I don't either. Not having to escape XML-significant symbols like < and & in the embedded code is convenient. Kid templates are compiled to Python byte-code and can be imported and invoked like normal Python code. Kid templates generate SAX events and can be used with existing libraries that work along SAX pipelines. This release changes the license from GPL to MIT. Overall it looks like a fairly well-designed, well-thought out system that has clearly learned from the mistakes of gnarly systems like PHP, JSP, and ASP.