Great quote

"Form has always come into being in a dialogue between particular instances and the larger body of work, or tradition"

I love finding stuff like this.

Tags: , , , -m

Successful teams

Spotted on BoingBoing, I like this breakdown of successful teams: "We found that teams that achieved success -- by producing musicals on Broadway or publishing academic papers in good journals -- were fundamentally assembled in the same way, by bringing in some experienced people who had not worked together before. The unsuccessful teams repeated the same collaborations over and over again."

Tags: , , -m

Forming more opinions

I am frankly amazed that last week's column got zero comments. This week's might be different, and next week's definitely will be. :)

As before, I'm just wading through this stuff like anyone else. I realize that more than a few folks are surprised to see me saying good things about Web Forms 2.0, much less an entire column, but I speak only truth. :)

I am sensing some patterns here.

Data location: XForms and FormAttic both collect data in one place. WF2 spreads it out over the document.

Markup: XForms and WF2 extend the markup, and thus require new DTDs in order to Validate. FormAttic uses declarative-ish JavaScript, and thus validates as-is.

Namespaces: XForms uses new ones. WF2 (mostly) and FormAttic don't.

W3C assimilation: XForms and FormAttic fully conform to W3C specifications. WF2 (so far) doesn't.

So what's left for next week? Sections 1 and 3 in WF2 haven't been covered, nor have the W3C Team comments. I think a part 3 will wrap up the review of WF2. After that, I'd like to get out one more thing before XTech...

Tags: , , -m

"Powered by XForms" logo contest

Today someone wondered out loud about a "Powered by XForms" graphic logo. I thought this was such a great idea that I started a contest to design a logo. Entries can be uploaded or linked directly from the wiki page. Let's see what you can come up with! The deadline is May 20.

Tags: , , , -m

XForms running on Minimo (iPaq)

Check out this photographic evidence of XForms in full calculator-demo glory running on an iPaq. All made possible through the Minimo browser, and the ongoing work for a native XForms engine on the Mozilla platform. The directory has several more shots of various test cases.

Tags: , , -m

The Coefficient of Community (why my wiki doesn't require logging in)

My wiki is open--no need to login to edit. Yes, I've had to swat away a few spammers. How does one make a decision whether to have open editing or not? I propose a new metric: the coefficient of community.

Consider how many people wish ill upon your site, multiplied by how badly they wish it. Weigh that against how many people wish well of your site, multiplied by how strongly they wish it. If the latter number is bigger than the former, open editing is probably right for you. This is how Wikipedia and similar sites continue to function in the face of all the jerks in the world.

If the bad-guy number is bigger, you can still operate a site, but then you need to put in place cumbersome measures, like requiring login before editing, that will hinder both the good guys and the bad guys. A large number of the bad guys happen to be extremely lazy, so required logins (or similar measures) shift the balance. Unfortunately, the same measures will also inconvenience legitimate users to the point where several of them won't get around to adding their valuable content to your site.

One common argument is that required logins are better because they will encourage people to take pride in their contributions, and thus produce higher-quality materials. The evidence, however, doesn't support this position. Go to a random page on Wikipedia and look at the edit history. See all those raw IP addresses? Those are all non-logged-in users. Everything I've ever done on Wikipedia, from simple typo fixes to full articles, has been done without ever logging in.

Maybe people who support mandatory logins don't have as much password fatigue as I do. I'm very likely to use a throwaway password or just hit bugmenot. And I'll refuse to use any "federated" login system like Passport or whatnot.

So while it is true that people will take more pride in things with their name on it, it doesn't follow that a required login is better. People can choose to put their name on things even when logging in is optional. For connecting with first-time-wikiers, people making simple spelling/typo fixes, or the password fatigued (a sizable group in sum), simple is the way to go.

In my specific case, I take an intense personal interest in every page on, which alone gives it a high coefficient of community. If I can get others involved, all the better.

Update: within 8 hours of posting this, three separate non-logged-in users have made useful contributions. Two brainstorms and one typo fix.

Tags: , , -m

Brain Attic, BrainStorm

Please have a fresh look at my wiki. It was painfully slow before, but now it's fully rebuilt and quite snappy. You'll see the difference, as a new default skin is in place. I also am starting a new experiment in public Brainstorming. Visit the Brainstorm page and fill in some new ideas under one of the topics, or suggest one of your own.

Tags: , , -m

XForms in Macromedia ColdFusion MX7

Read: "With ColdFusion, we implemented a server-side version that uses the XForms schema definitions for form elements, binding, and the model - with custom extensions instead of recreating the wheel and creating custom XML schema that defines form elements. However, instead of relying on a plug-in to render the form, ColdFusion MX 7 uses standard XSL scripts. If you wanted to use an XForms plug-in, you could use an XSL script to output plug-in"

Tags: , , -m

The amazing CSS3 explainanator

Just enter in any CSS3 selector, and it will tell you what it means in English. Includes a full CSS3 parser in Python.

And here's one in JavaScript.

Tags: , , -m

Ajax: Maybe A, Not J, Not X

Even though I've accepted the term "Ajax", that doesn't mean it has to make sense. The primary definition is actually quite interesting to read. But as an acronym, Ajax misses the mark.

First the J: It's not JavaScript anyway, it's ECMAscript, but "Aeax" isn't as catchy. Even so, script isn't necessary to do all the nifty Ajax things, and even when it is, there is the language called VBScript deployed on 90-some percent of today's clients. Who knows what will be there tomorrow?

Next the X: Non-scripted Ajax might be a theoretical possibility at the moment, but non-XML Ajax is here today. Services like GMail ship around object literal ECMAscript rather than XML, and it works great. Then again, maybe the X stands for XMLHttpRequest, which is itself misnamed.

Last the A, maybe: depending on which parts you need to call asynchronous, pre-computed indexing and pre-loading can enable Ajax applications that do no asynchronous data transfers at all. Like this. (Or to split hairs once more, it's easy to make non-async blocking calls through XMLHttp, though these are still asynchronous with respect to the user experience and full page loads).

The second a is for "and"; that I have no problem with. :)

In any case, the utility of the term Ajax comes not from accuracy but conciseness.

Tags: , -m

WF2 Examples

Dean Edwards read my Part 1 article on Web Forms 2.0 and wrote in to point me at some more examples.

Tags: , -m

UBL on Linux Journal

A nice write-up of UBL is up today on Linux Journal. If you feel a little foggy on the whole UBL thing or why it's important for FOSS, have a read. The wiki page the article links to is here: UBL.

Tags: , , -m

Accepting Ajax

OK, I call Uncle. Henceforth, I give in and agree to use the term|Ajax] for Asynchronous JavaScript and XML, aka XMLHttp. It's just too useful of a term to ignore, and even the New York Times is using it. Wiki entry for my work on Ajax. Yep, still accepting new work in this area.

Tags: -m

Web Forms 2.0 on

It was bound to happen eventually (and the opening sentence signals my trepedation!) My 8th installment of XML-Deviant talks about Web Forms 2.0, which was recently submitted as promised to the W3C. Several folks I've talked to have assumed that since I had a stake in a "competing" technology, that I'd be against WF2. Not necessarily. The title of the column is "forming opinons", which is an accurate description of my approach. Due to various circumstances, I had basically zero involvement in getting WF2 to where it is today, so this really is a first-look situation for me.

Things I say about WF2, good or bad, stand on the technology merits within the overall context of things, nothing more. Next week, I will focus on aspects that I really like. After that, it's less clear how the series will wrap up, though I do have something special in mind. In any case, this topic will wrap-up just before XTech on the week of May 23.

Watch this space and for future installments. Use the tag xmldeviant to comment from your own blog.

Tags: , , -m

FormFaces goes FOSS

FormFaces, an excellent piece of JavaScript+XML=XForms technology, is now available on Sourceforge under a GPL license. Like my sf projects (sigh) all the files are available through CVS only; no formal releases so far.

Tags: , , -m

Copyright infringement blues

No link, but somebody over on MSN spaces has copied an entire article of mine as a weblog entry. I'm happy to have such passionate fans, but still, I'd prefer that they not copy verbatim like that, and instead link--after all, that's what the web is for. The weblog has no contact information, so I used the reporting tool on the site. If only it were that easy...

I got back a response that basically says 'go visit this page to report copyright infringement'. If you look at that page, it's all about "designated agents" and saying things "under penalty of perjury". Sheesh. I don't want to drop a DMCA-bomb on the poor kid. A simple conversation would do.

Conversation: good. Lawyers: bad. Something inherent in becoming a mega-corporation rots away the conversation nerve centers and replaces them with legal staff. That's probably a significant portion of the "copyright problem" right there. On one powerful side, nobody's conversing. Maybe if they would, they'd find reasonable solutions. Can't we all just get along, etc.?

If anyone has suggestions on how to deal with situations like this, let me know, or write your own blog entry with the tag infringee.

Tags: , , , -m

Call for implementations: UBL input specifications

Attention all form authors, BPM specialists, workflow architects, and UBL geeks. A developer's preview of the UBL input specifications is now available. Go visit the site, or read on for some technical details.

If you're the kind of person that finds data modeling interestsing, you'll like this. It provides a unique point-of-view to the eight document types of UBL 1.0, in a manner that a form author can readily understand.

Note: the final version of the input specifications will not be a wiki, but rather a set of conventional html pages that will be included in a future UBL specification as an informative annex. The wiki format gives the fluidity needed during these early stages. It will also look somewhat nicer.

As I've written about before, the program to generate the output is implemented in Python, using text files with one XPath on each line as input. New in this version is a separate configuration file, also in Python, that initializes three things: 1) The list of "data collection intents", things like stringinput, dateinput, group, or select1-from-this-codelist; 2) a mapping from XML elements to data collection intents, and 3) a list of groups that should be inlined instead of split out into a separate section.

Point 2 really shows how internally-consistent the UBL vocabularies are. There are 169 separate elements/attributes in total, but the full mapping (including substring matching) can be expressed in only 29 rules. If I didn't use paranoid error-checking-but-technically-duplicative rules, it could be done in only 10 rules (though fully hooking in the codelists will complicate things).

Point 3 isn't strictly necessary, but makes the spec much more readable. There are 37 different "common aggregate component" groups. By inlining the small, trivial, and infrequently-used ones, the number of global groups to worry about goes down to maybe 15, depending on how deep you cut.

The wiki contains a general UBL page where I'm keeping track of implementers. Lots of empty slots remain! Get in touch with me at micah -at- to coordinate getting UBL forms up on as many platforms as possible.

Tags: , , , , -m

Things are moving at DevMo

Some MediaWiki goodness going on in Mozilla-land. They have obtained all the old DevEdge content, and are working on sorting through it all.

Tags: , -m

DENG 2.0

I'm happy to see some news and a progress report for DENG 2.0, a Flash implementation of XForms, XHTML, CSS, and other useful things. Contact claus at if you'd like to help out.

Tags: , , , -m

Announcing FormAttic

FormAttic is a simple JavaScript framework for classic HTML forms. I'm working on this for a client, but it will also appear in an upcoming article on as part of a review of Web Forms 2.0. The library is available under a Creative Commons license. Feedback welcome.

Tags: , , , -m

Is OS X 10.3.9 more stable for network connections?

I notice today that my Messenger client hasn't been pinballing all day, as has been the usual. The only thing I've changed is updating to 10.3.9 through Software Update. Hmm.

Tags: , , -m

Why flying cars won't work

Found this curious tidbit on CNet. But there's an even simpler reason why flying cars will never, uh, take off: come to Phoenix, and spend 15 minutes observing how poorly people drive in a 2-D space and you'll see.

Speaking of Phoenix, check this out.

Tags: , , -m

Database dependence

My working theory is that a great many applications, particularly in the personal info space, overuse databases. Google has shown us that quite a bit can be done with native text-like formats. Databases (including XML native) have become something of a crutch. It's easy to fill out a job req that says "SQL experience required". It's harder to figure out what you actually need.

That's my story, and I'm sticking to it. :)

Tags: , , -m

Major Safari update

According to Hyatt's weblog, the 10.3.9 update to OS X includes Safari 1.3, which includes lots of goodies and is close to what will ship with Tiger, including client-side XSLT. Even more exciting, though, is an actual JavaScript console. Hooray!

Tags: , -m

Fedora Core 3

I'm fairly conservative when it comes to OS upgrades. Well, non-Apple upgrades. :) I recently installed Fedora Core 3 and am writing up my experience for the record.

Downloading through BitTorrent is really, really slick. Load up a single .torrent file and the whole package gets pulled down in a directory: 4 main ISO files, plus a recovery ISO and a MD5SUM file. Burn these on to CDs and boot off the first one.

The former-Windows98 machine had some latent partitioning problems, apparently, for the Fedora installer kept reporting "Assertion (heads < 256) at disk_dos.c:486 in function probe_partition_for_geom() failed". Kind of scary, especially if a linux newbie were to see it, but since I was blowing away the partition anyway, no ill effects.

The installer is slick as well, except that it offered me a set of resolutions to pick from (why not just auto-configure?). I picked the highest one, which my monitor couldn't cope with at all. A newbie here would have been totally stuck, even though the first hit on Google held a detailed description of the solution. (on a virtual console edit /etc/X11/xorg.conf and remove the offending resolution).

During the initial uptodate run I had one of those need-to-reboot-the-cable-modem moments, and it couldn't cope at all. I had to forcibly kill it and restart. Fortunately, it kept good track of what was already downloaded, and didn't have to repeat.

Core 4 is already underway, and will probably address these issues. Overall, this is a solid system, and it would be hard to offer a compelling reason to choose between it and, say, SUSE or Mandrake (oops, make that Mandriva).

Tags: , , -m

Six Months

It has now been a full six months since I left the world of Fortune 500 and became independently employed. What will the next six months bring? Stay tuned. Whatever it is, it'll be big.

Tags: -m

Namespace URI Rant

I was going to respond to David Orchard's message on our favorite topic of XML namespaces when Michael Day's article came out. Oh, well, I'll respond anyway. :) ...

The first thing to consider in technical writing is your audience. The same can be said for a broad range of "technical writing" as well, including specification writing. To everyday in-the-trenches developers, URLs are something used as a, well, Locator. (URIs don't even come up in polite conversation.) A UR[L|I] can have a port number in it for crying out loud!

So Dave's article has actually been helpful to me, in helping me understand a viewpoint that seems counterintuitive on the surface, and hasn't been well-explained before. He begins: "The first argument, that http: uris are "locations", is based upon incomplete understanding of the use of URIs." At least 99 out of a hundred web developers will have an incomplete understanding of the URI rat's nest. A fair number of standards geeks have an incomplete understanding. When a standard says X and nearly everyone thinks Y, you've got a problem.

In regards to taking these wonderful namespace URIs and being driven by curiosity to visit the address for more information, does anyone actually do this? If so, I haven't seen it. More typically developers will plug some unique term (say the vocabulary name) into Google and have no problem finding all the information the web has to offer. Human-dereferencablility is a poor choice of a motivating use case.

On decentralization: obviously necessary, but not fully necessary. For example, look at the reserved xml prefix. There's now around half a dozen "centralized" attributes in use there. And it is very useful. For the half-dozen or so most commonly used vocabularies (let's say 'xml', 'xhtml', 'xslt', 'xsd', 'svg', and one other up for grabs) it would be great to have enough built-in namespace smarts to at least properly handle disambiguation.

Rant, rant, rant. Is there anything we can actually do about it at this point? One thing I'm considering is writing a series of 'what if' style articles on the path XML and related specifications might have taken without getting into the URI disaster area. Such a path might use java-style identifiers (like java.lang.String) much like what Michael Day wrote about. Have you ever heard anyone complain about namespaces in Java? I don't think so. This can be done in a way fully consistent with XML 1.x (but not XML Namespaces 1.x).

If you think this would be worth reading, send me feedback to xmlns -at-

Tags: , , -m

The wisdom of Fools

Another article out on This is one of the most strikingly oddly-toned pieces I've ever had published. (Don't even ask about unpublished stuff!) XML-Deviant is a pretty serious column, almost with an academic feel. I couldn't see it ever, for example, running a full-on gag for April 1. But this one's an easy read--using recent silliness on xml-dev as an excuse to opine about current XML events.

So, it's a lighthearted serious look at the silliness of seriousness, and it all begins with an excellent twisted out-of-context partial quote from T. S. Eliot.

Proofreader's note: The original quote uses "cruellest" with a double-l, not the more modern single-l.

Tags: , , -m

Intention Distortion Fields

I like David Temkin's post on "The Ajax Reality Distortion Field". In addition to his good points, I'd add that a useful metric is to what extent the script-based add-ons enhance the intent given by the markup, as opposed to purely expressing the intent through script.

I still refuse to use the term "Ajax" except in quoting others, but I'll say that a common problem is favoring script over markup. The Laszlo situation, though, requires a slightly different analysis, since the markup gets compiled before the end-user even sees it.

Tags: , -m

Omar Tazi of Orbeon fame joins the blogranks

Have a look at Omar Tazi's weblog. He's off to a good start, with lots of thoughtful commentary on a variety of subjects.

Tags: , -m

My RSS reader wishlist

Why in 2005 doesn't my RSS reader (NNW) have these features? A "back" button, for when I click "Next Unread" too fast. A search function. Atom support.

Tags: , , -m

Web Forms 2.0 submitted to W3C

At The W3C Team Comments summarized at the top are dead on. Significantly, almost all the comments are on process issues, not fundamental ideas.

Looks like I'll be writing more on this soon.

Tags: , -m

How to write an article

1) Spend several days avoiding thinking about what to write about next. 2) Finally decide on a topic; spend a few more days fretting about the idea. 3) Wonder how you'll ever manage to write an entire column on this subject. (continued)

4) Write lots of text, then throw most of it out. 5) Have a sudden flash of insight. 6) At the last minute, rewrite half the article to make it semi-coherent. 7) (optional) spell-check. :)

OK, so it's not actually that bad. My plain-text todo list contains a list of potential future topics. It's still mildly trickly to find something that fits in with the current events and flow of the mailing list and And it does get easier as you go.

Tags: -m

Changes to Daylight Saving?

So, the US Congress is proposing a two-month extension to daylight saving-time, which will supposedly reduce America's energy consumption by 0.05% (10K daily barrels of oil out of 20M) I have a better idea: extend it by 6 months.

In other words, get rid of it. I live in Arizona which doesn't observe DST and everything seems to work out fine. (During the summer, after about 8am it's too hot to do anything outside; Arizonians are generally early-risers) All the complexities arise in differences in when DST is observed across different regions, like Europe.

It it just meddling? "The more daylight we have, the less electricity we use," said Rep. Ed Markey, D-Massachusetts, one of the co-sponsors of the measure. Wow, so Congress is actually going to legislate more hours of daylight! I'd love to see the global warming studies on that.

Seriously though, if you're going to change it at all, 1) get rid of it, and 2) failing that, harmonize it beyond your own borders.

P.S. The term is properly singular, not "daylight savings".

Tags: , , -m

Practicalists and Elegantists

New column out on, go have a read. This one went through a number of stages in writing. Read on for details.

My initial thoughts were something along the lines of wholism and reductionism, a la GEB. Next it tried out "integrators" and "differentiators", specifically in reference to electronic circuits. An integrator smooths out a waveform, and a differentiator amplifies the rate of change in a waveform. Still, I had trouble, because I could swap the two terms, and the article still made about the same sense! Clearly a warning sign.

When I sketch out these things, I draw a huge "mind map"--lots of circles nodes with interconnected lines. Eventually, I looked over the whole web and decided what I was really trying to say, then I crafted new (to me) words to exactly express it. The result turned into something I'm pretty happy with.

The only remnant left is that the introductory quote and paragraph don't exactly align with the rest of the article. Hopefully, that's something you only notice if you're looking for it.

Tags: , , -m

Ideas for XForms Institute

What should I do next with the XForms Institute (which I just noticed has a PageRank of 7/10)? Have a look around the site and let me know what you think should be there.

Tags: , -m

UBL Input Specification update

Some good work done this week. My Python scripts are now able to take in the Small Business Subset description files, which in my case are lists of XPaths, and produce a first-level report of what's needed in a form that would produce each of the 8 UBL document types. Next step: handling the breadth-first recursion. If you are a form designer and want to take an early peek, get in touch with me.

One other nifty thing is a set of rules that maps, for each of the terminal nodes in the union of all UBL document types, from the node name to a node "data collection intent". It sounds complicated, but basically it means that UBL 1.0 is well-designed and consistently-named, which can be leveraged for this additional work.

Tags: , -m

Safari bug with text-transform: uppercase

If you attend my XTech tutorial, you might get to see this. In my S5 stylesheet, the first letter of each word slide titles is capitalized. But when the word is what's, it comes out as What'S. Same with a fancy curly apostrophe. Oops.

Tags: , , -m

Microsoft acquires the assets of Brain Attic, L.L.C.; hires Micah Dubinko

I am happy to announce that effective April 1, I have been acquired by Microsoft to assist the IE team in implementing modern form technologies. I will report directly to Arlo Lipof, development manager for IE 7.

This surprise announcement follows other recent moves by Microsoft to renew their browser and XML technology base through a series of high-profile hires.

Terms of the agreement were not disclosed.

On a personal note, within a week, this blog will move over to I will still be able to attend and give my tutorial at XTech, as well as write my regular column on

Tags: , , , , -m

Arlo Lipofs!

The best of these kinds of gags always have an air of plausibility to them. I've gotten an alarming number of "congratulations" messages, so time to come clean. It was a joke. Brain Attic still exists with all its assets intact, and I'm still taking on new consulting work.

As a nice touch, note that "Arlo Lipof" is an anagram rather than a person. Also I changed all my "currently reading" list to Microsoft-related titles. For reference the list contained:

Business @ the Speed of Thought

Bill Gates: Sultan of Software

The Microsoft Way

Hard Drive : Bill Gates and the Making of the Microsoft Empire

The Microsoft Edge : Insider Strategies for Building Success

Microsoft Secrets: How the World's Most Powerful Software Compmany Creates Technology, Shapes Markets, and Manages People

Google Prefetch (repost)

Article here -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