Analysis: Google prefetch

Lots of news going round on this, and even more hot air! Technically, this doesn't use XMLHttp or anything like that--it's only a link element. Is this a good move?

For Google, yes. The way to look at markup is as an expression of the author's (in this case Google's) intent. And rel="prefetch" does express a specific intent, especially since the markup is only included in cases where Google really thinks the searcher will be 'feeling lucky'.

For Firefox, yes. A markup-rendering application should express the intent of the markup in whatever way makes the most sense to the user. Firefox includes a preference to turn off this behavior, which is also good. Ignoring certain aspects of an author's intent is a reasonable thing to do.

In some postings, people are saying things like "I prefer to only download pages I actually want to visit not those somebody else thinks I want to visit." Ultimately, that position is untenable for someone who feels the need to utilize Google in the first place!

For non-Mozilla browsers, it's a push. If this development helps them do useful things with intent-expressing markup, they will benefit, as will their users. This is a hint, newly-rebanded IE team. :)

For security, it's possibly a slight minus. The prefetched page will of course appear in your cache, and any cookies (including 3rd party) will get set. This downside is mitigated by two things. 1) Firefox puts a special header on prefetch requests, so if it came down to proving what you "clicked" on, there's an evidence trail. But realistically, this is very unlikely to happen due to Google's responsible implementation. The prefetch code only appears in pages where the Google genie is nearly 100% likely that the page is a direct match for what you have already searched for. In other words, you're not going to get naughty or malware hits this way, unless you are specifically searching for it (and then you already have problems!)

If someone has a counterexample to this, I'd love to see it.

Tags: , , , -m

Tolkien on writing instruments

"I hope you can read this! I cannot write decently without a proper table or with a ball-point." -- Letters of J.R.R. Tolkien, #249. I quite agree!

Tags: , -m

nForms code posted

As promised, I posted Ben Nolan's nForms code. The main holdup was getting my infrastructure in place, in this case a wiki. Link.

In a world with DENG/UGO, xslt2xforms, and now FormFaces, the need for this sort of thing is diminished. Still, Ben's code was one of the earliest efforts of implementing XForms in a browser, and it helped show people just how much is possible in contemporary browsers. Directly or indirectly, this code has had a major influence on the web.

That said, I'm posting it in exactly the condition I got it, which is slightly, uh, broken. Apparently when Ben's circumstances changed enough for him to stop work on this project, he was in the middle of a new round of changes. I know this violates all kinds of rules about launching open source projects and community building, but it is what it is.

Go have a look. If you figure anything out, or want to post questions, use the discussion page on the wiki.

Tags: , , -m

XForms on OS X

The XForms situation on OS X has been a little disappointing. No OpenOffice 2.0 yet. No FormsPlayer (or any of the other IE-specific plugins). Flakey X-Smiles. The bright spot is the upcoming FireFox 1.1, and now there's nightly builds available.

Builds include SVG, XForms, and optimization. Keep an eye on this spot.

It is a nightly build, so don't be shocked if you encounter problems on a given day.

Tags: , , , -m

HTML export from Pages

Exporting a Pages document to HTML: good news and bad news. What you actually get is fairly clean, semantic XHTML 1.0 Transitional. Unfortunately, it's riddled with style attributes.

It does write an external CSS file, but in my simple test, it contained only .Body, .Heading, (so far, so good) and .Gray (oops).

It might be good enough to send to someone who only has to read it, but it's nothing I'd want to post on the web. I'd love to see more of this stuff moved into the external CSS file.

Tags: , , -m

Microformats on XML-Deviant

New column out, go read, my children. This one includes a new microformat I named Examl. I wonder if the Technorati guys would let me have a spot on their wiki to flesh it out...

Tags: , , -m

Updated Relax NG schemas for XForms

There's some good stuff going on in the wiki revolving around updated Relax NG schemas for XForms, go have a look. This work will soon percolate down to the XForms validtor, so act now to get any comments in early.

While you're there, take a peek at the whitepapers section if you haven't already seen.

The performance is a bit slow for the moment, due to issues at my provider. I'm investigating.

Tags: , , , -m

Dojo browser toolkit

Something else I need to check out when I get a chance: dojo.

Tags: , -m

Adobe hiring forms guy

Apparently Adobe is hiring a senior forms guy. Hmmm. -m

Eliotte Rusty Harold's XForms slides

From SDWest. Good stuff.

Nice introductory quote: "XForms, a combination of two of the most successful experiments ever performed with the Web: XML and forms." I wonder who said that? ;)

Tags: , -m

JavaScript Python Deathmatch

Some will think me crazy for saying this, but JavaScript and Python are deeply similar. (If only JS would get rid of the curly braces!) It's the little things that trip me up though, and which ever language I've been working in latest tends to dominate my thinking.

As a simple example, in JavaScript, objects and dictionaries are pretty much identical, so you can do something like this: var a={}; a.b ="foo"; JavaScript object literal syntax works as-is in Python (which I use to my advantage in my precomputed lightning search demo), but Python makes a distinction between an object and a dictionary.

In Python, it would be either a={}; a["b"]="foo" or else class o: pass followed by a=o(); a.b="foo". That first one would work in JavaScript too, but I often prefer bare dot syntax.

It seems I am doomed to be conflicted for the forseeable future.

Tags: , -m


Finishing up my slides and presentation for BFMA Spring Forms Institute. I'm thinking about GFDL-ing these.

Tags: , , -m

A new central point for all the stuff I'm working on. Be gentle.

Tags: , -m

Link request getting results

Earlier this week, I asked for some linkage. And I got results

Thanks Ugo!

Tags: -m

Another fan for _XForms Essentials_

Jake Burkey writes on Amazon: "This book is a poor introduction to XForms. In a text that is only slightly larger than a pamphlet, the author attempts to do much more than simply introduce XForms, and the result is that nothing ends up being explained well." And still 3 of 5 stars!

Jake continues: "The relatively few pages of the author's own creation are written in a prose so terse that in some places it reads like gibberish, and the rest of the text is a reference that repeats what is available in the W3C XForms and XPath specifications and the XForms for HTML Authors document."

I could comment on this, but I won't.

Tags: , , -m

Google + Python + Functional programming

Still more good stuff today: an open-source Google [library|] for functional programming. I need more hours in the day...

Tags: , , -m

Opera introduces desktop SVG support

Kudos to Opera, for releasing a version of their browser with native SVG Tiny support. This is a sign of things to come.

Tags: , , -m

Server-less Laszlo

Congrats go out to the Laszlo gang, who have now delivered a server-free edition. For many kinds of applications, the resulting Flash files can just be deployed with no special server support. Just the kind of thing I needed to get hacking on it.

Tags: , , -m

EVDB announced

Congrats go out to Brian Dear, and his new company, EVDB which will be announced just down the road from here, in Scottsdale, AZ.

Tags: , -m

New XML-Deviant: Deconstructing Certification

Last week I took the IBM XML certification, apparently one of the last of the 2000 free vouchers. In this week's issue of I write about the experience and figure out what certification is really worth. Have a look.

Tags: , , -m

On a lighter note, sweeperscript

Minesweeper implemented in XSLT (Doesn't work on Safari)

Tags: , -m

Microsoft's Patently shameful behavior

After counting to ten, my thoughts on a particular Microsoft patent.

Only months after the W3C collectively stepped up to help defeat a ridiculous patent claim against Microsoft, the software giant was granted one (though filed years earlier) for an even more ridiculous patent on "Word-processing document stored in a single XML file that may be manipulated by applications that understand XML". Excuse me?

Groklaw has details. Microsoft is full of wonderful people. This isn't about people.

Now, anyone who knows the first thing about XML knows that the whole point of it is to store data and documents, normally in a "single file", in an agreed-upon way. By avoiding re-writing a parser and instead using a common syntax, your files can easily be manipulated with other XML-compatible software. That's why Microsoft's name is on the XML specification, specifically to enable this class of use case.

Technical Measures: (Disclaimer, I'm not a lawyer, don't play one on TV.) Microsoft threatened all kinds of invasive changes to IE in the face of the Eolas patent on plugins. In that same spirit, I offer this:

Depending on the wording of the patent, splitting a wordprocessing document into multiple files may or may not get around it.

Any "single-document" wordprocessing document should include this just before the root element--

<?xmlwf mu?>

In XML terms, this is called a "processing instruction", or PI, which is allowed pretty much anywhere, no matter what DTD or Schema is in force.

This particular PI intentionally violates the specification, specifically that targets starting with 'xml' in any combination of upper or lower case are forbidden. It may be that something a bit stronger is needed for a true well-formedness violation as opposed to stepping on a reserved portion of the spec, but the principle remains the same.

Non-well-formed documents are, by definition, not XML, and so theoretically not covered by the above patent.

For an XML application to process this, it would have to either pre-process to remove the bogus PI, or somehow otherwise bend the rules of conformance. It's ugly, and hopefully we won't be forced into it, but it's still better than the alternative.

I think the W3C did the right thing to speak out against a bogus patent that threatened the web. Let's hope Microsoft does the same.

Tags: , , , -m

MediaWiki pro wanted

If anyone knows how to help configure and tune MediaWiki, drop me a line. I have a neat project lining up.

Tags: , -m

Shameless link request

If you find this blog useful, have read something useful or interesting here, or are merely entertained by my ramblings, drop in a link from your own weblog/web site/blogroll. Thanks!

This has been a message from the Department of Shameless Self-Promotion.

Tags: (use this tag for your own link-mendication) -m

Work on UBL input specifications proceeding

A quick progress update on the project that is "Everything a form author needs to know to become productive with UBL." I've developed a meta-input specification (catchy name, huh) that processes existing UBL reference materials, along with some new info, into what eventually will be a complete set of specifications for all the document types in UBL 1.1. This is roughly symmetrical with G. Ken Holman's work on output specifciations. Read on for some technical details.

I'm using Python, though at the moment the processing isn't anything that XSLT couldn't handle. The Python payoff will come later, when the kinds of processing get more sophisticated.

Right now, a working assumption is that every leaf name (of an attribute or element without further element children) provides a unique enough context within UBL for input-specification-specific things, like datatype and data collection intent (input, select one, etc.).

In some dimensions, UBL is quite comprehensive--no UBL instance would normally have all the elements and attributes defined in the spec. So which parts does a "UBL form" need to implement? To help narrow things down, the input specs are driven off SBS, the Small Business Subset of UBL. Once again thanks to G. Ken Holman, there a number of ways to get at this data. The one I'm using is a plain text file with lists of XPath expressions and cardinalities. At this stage, the processing is little more than a merge operation.

Once input specifications are ready, they will be implementable in any non-trivial forms language, including HTML, PDF, InfoPath, and yes, XForms. At that point, there'll be a great need for implementers, which will no doubt have additional comments directed toward the input specifications themselves. Iteration will ensue, repeatedly. :)

Tags: , , -m

IBM XML Certification

As of yesterday, I am an IBM Certified Developer for XML and Related Technologies. An upcoming XML-Deviant will explore the issue of XML Certification. What is it? Is it valuable? Is it accurate? What is it really testing? Sorry, but no answers will be provided. :)

Tags: , , -m

Tongues in Trees

New XML-Deviant is out. Go forth and read. :) "Tongues in Trees" nicely sums up this week's topic: Unicode in XML.

I love picking these quotes. In fact, I spend hours poring over The Oxford Dictionary of Quotations when I should be doing something productive. But I especially love plopping a quote into a new (and ideally humorous) context. Kind of like 'and the earth was without form...' in chapter 1 of XForms Essentials.

Tags: , , -m

XForms in Japan

Apparently, XForms is getting huge amounts of attention in Japan. Here's a Japanese-language mailing list.

Tags: , -m

Shameless Self-Promotion

Being in business for yourself is kind of a Catch-22. When you're busy, boy, are you ever busy. But just when it's least convenient to do any kind of marketing slash networking, that's when it's most important. So even though I don't have time for it, I nominate this week Shameless Self-Promotion week. Did I mention I'm available for consulting?

I ran into two people in the last two days who weren't even aware that for the last six months, my life has been dominated by self-employment. They should have known better--no, not really. That actually relates to the first law of marketing. I should really write down these laws, when I get time...

Meanwhile, brace yourselves to see more of me on different wavelengths.

Tags: , Comment on this entry with -m

Linking in XHTML 2.0

On IBM developerWorks, an article describing the linking situation in XHTML 2.0. Did we finally get it right? Can we go home now?

I agonized for a long time over the two sidebars on XLink and HLink, respectively. I think you'll agree that they provide a concise description of the historical background in a neutral-enough POV so that participants on "both sides" could still agree.

I plan to update this article at least once, after the (first?) Last Call of XHTML 2.0 comes out. Without spilling the beans, there are some changes in the pipeline. I'll have more to say when the next public draft is out.

Tags: , , -m

Google Wake Up Call -- Continued

My XML-Deviant column got bumped this week, look for it next week. Previously, I wrote that Google prefers a model where people go to create their own web sites, rather than adding comments to existing sites. John Battelle comments on another facet of this strategy.

Tags: , -m

XML Guild

A little reminder slash shameless plug here. Check out the XML Guild if you're looking for some high-caliber XML experts for your projects.

Tags: , -m

Gödel, Escher, Bach, Tolkien

As is typical for me I'm reading (more than) two books in parallel, notably GEB and The Letters of J.R.R. Tolkien.

Both are simply amazing works in their own right. Tolkien writes about his experiences in two world wars, negotiates with and shops around for publishers, meets often with C.S. Lewis and the 'inklings', and writes 20-page responses to curious fans containing tons of details about Hobbits, Middle Earth, Sauron, etc. Such a remarkable person, and still with a familiar insecurity.

GEB, of course, is amazing too. My first time through, my brain got full and I didn't absorb half of it. This time it makes more sense, and even fits in better with some of my professional pursits (like functional programming).

Both amazing compilations. Both books that I'm immensely enjoying. Both testaments to the heights of what people can accomplish. Check 'em out.

Tags: , , -m

Open Source at Adobe

Now this is interesting. I need to look a little closer before offering any opinions. (but frames? Why??)

Tags: , -m


Terms of use

For external use only. I doubt the enforcability of click-through licenses anyway. Copyright 2005 Brain Attic, L.L.C. All rights reserved.


Older stuff here