Saturday, January 31, 2004

Tough copyright questions 

To illustrate how challenging some copyright/copynorm issues are, let's ask a few hypothetical questions. For each of the following, answer a) is it legal? b) is it ethical:

1) You own an analog casette from a certain artist. You download the tracks from a file share network, for personal use only.

2) Same as 1) but you bought the music on physical digital media, like a CD.

3) Same as 1) but you've long since lost the casette and can't prove you own it.

4) Same as 3) but with physical digital media.

5) Same as 1) but with soft digital media, like a download from the iTunes store.

Nobody said it would be easy. -m

Saturday, January 24, 2004

Cyber-life support 

I'll be on the cyber version of emergency life support for at least the next week. seems my beloved powerbook has suffered a fatal hard drive incident. Booting in verbose mode, I only get about four lines on the screen. And Apple seems to think the warranty expired one month after I bought it.

At least I got to see the Chandler Apple store. -m

Update: back in business. I have to say the Apple repair experience was light-years ahead of the HP experience. -m

Thursday, January 22, 2004

Going live with Atom 

Now an Atom feed is available for Push Button Paradise. I won't yank the RSS feed just yet, though. -m

Tuesday, January 20, 2004

RSS for XForms Institute 

For all you RSS-heads out there, XForms Institute now has an RSS feed. I'm trying something a little different, truly treating it as a RDF Site Summary. It has both front-page news and lesson summaries. (And possibly a tactful sponsorship notice??)

Let me know if you spot anything amiss. -m

Monday, January 19, 2004

XForms Institute 

I am very proud to announce a new web site: XForms Institute.

In discussions with readers and potential readers of XForms Essentials, the most common request has been for a more gentle tutorial. This site combines just such a tutorial with real-world examples of XForms documents (XHTML1+XForms) that will run right in your browser, thanks to the DENG Flash plugin, which implements a sizable chunk of XForms+XHTML+XML Events+CSS in two swf files that total a measly 112kb.

In the immediate term, I'm in need of some incoming links, so please link away.

And more is coming. -m

Thursday, January 15, 2004

Structure and Interpretation of an online XForms Validator 

Validating XForms is quite an interesting challenge, for several reasons. For one, you can't assume too much about the host language, since XForms finds a home in many places. Is it XHTML? XHTML2? SVG? Something else? (One way around this is to require the operator to provide a fully formed host language+XForms XML Schema. Ouch.) Secondly, there is an unfortunate amount of existing content that uses a development namespace. [Namespaces rant elided.]

Anyway, how would an ideal XForms validator work? For one, it wouldn't provide a strict valid/invalid answer. Like a "lint" program, it would provide warnings of suspicious-looking constructs. There are three increasingly sophisticated levels of processing that can take place:


  1. Run some basic checks on the overall document. For instance, a child of <instance> in the XForms (or host language) namespace is a suspect for a missing xmlns. I also believe that this level (and not schema checking) is the appropriate place to look at ID/IDREF connections.

  2. The next level involves isolating "islands" of XForms content, as defined in the conformance section of XForms, and individually validating each against a suitable schema. The Schema in the XForms 1.0 appendix turns out to be not too suitable for this, so I'd use Relax NG instead.

  3. Finally, the validator could chase down all the provided XForms Models, including instance data which may be local or remote, then look at the various incoming references. Basically, implementing half an XForms processor. This would catch context node and similar errors nicely.


All in all, a nice little project. It would lend itself well to a staged rollout. Now, I wonder who could implement such a program? -m

Saturday, January 10, 2004

More libxml2 with Python 

Collecting some links.

Official examples/tests.

Uche's xml.com article.

More basics from Kimbro. Also, for OS X Panther, there is this succinct page showing how to get libxml2 to compile against the included Python.

-m

Friday, January 09, 2004

You Are Ell 

"Thankyouthankyouthankyou" was one private response I got to my message on xml-dev appreciating that any remaining reasons for using the term 'URI' in polite conversation have gone away with the revision to RFC 2396.

My take: even 'URL' is a bit TLA-ish. For folks like grandma, 'web address' is the right term. -m

Tuesday, January 06, 2004

Press Press Press 

Some nice quotes in Transform Magazine, and another review on TechBookReport. (Note: the review concludes with "For example, the appendix which compares XForms with Microsoft's InfoPath, while interesting, could have been replaced with a complete worked example of a simple site that uses XForms." Actually, that part is online-only, which is a reasonable choice, considering that the 0.7 version UBL used is already in need of a refresh. -m

Saturday, January 03, 2004

Installing is half the fun 

Over on DreamHost, I'm setting up for some Python+XML processing.

Since they run an older version of Python and libxml2 (and no libxslt that I can see), I compiled and installed local copies of Python 2.3.3, libxml2 2.6.4, and libxslt 1.1.2. Fun experience.

I haven't done much remote administration, especially without root access. It goes like this:

wget (URL to tarball)
tar -xzv (file just downloaded)
cd (directory just created)
./configure (lots of switches, see below)
make
make install

And you're done.

The two most important switches for configure are --prefix=(path to home)/local and --exec-prefix=(path to home)/local. I used these every time, compiling Python first. Next, compiling libxml2, I had to add --with-python=(path to home)/local/bin/python. Finishing with libxslt, I needed all of the above, plus --with-libxml-libs-prefix=(path to home)/local --with-libxml-include-prefix=(path to home)/local --with-libxml-prefix=(path to home)/local. Whew! Makes for quite a command line, but it works.

local/bin/python
>>>import libxml2
>>>

Update: on DreamHost (as with all providers running suexec) you need to do a chmod 755 on the script files AND the containing directory, otherwise you will only get a 500 page with a misleading "Premature end of script headers" message in the server log. (It's also possible that your headers really are messed up, or possibly you have non-Unix line feeds, but at least you can narrow it down.)

-m

XFE Errata 

P 175 (troubleshooting), grandchild should be fully in the code font, e.g. grandchild

-m

Thursday, January 01, 2004

New Year's Resolution: 

1280x854, thank you very much. -m

Contact

mdubinko@yahoo.com

Terms of use

For external use only. I doubt the enforcability of click-through licenses anyway. Copyright 2003 Micah Dubinko. All rights reserved.