Angle brackets are a way of life
The title about says it; both kinds of purple are flowers.
The little ones are a ground-cover recommended by a professional gardener for our front yard; since the kids play out back, we don’t want to be defending a grass lawn from moss and creeping buttercup and dandelions and all the other enemies. This stuff just spreads out and covers up and you can walk on it a bit while you’re gardening. Don’t know what it’s called.
Don’t know what the larger purple flowers are either.
Posted at 23:13
We’re working on a fairly substantial revision of the Sun Cloud API, motivated by this problem: In a RESTful context, how do you handle state-changing operations (POST, PUT, DELETE) which have substantial and unpredictable latency?
What we’ve learned, from work with our own back-end based on the Q-layer technology and with some other back-ends, is that Cloud operations are by and large not very fast; and that the latencies show up in weird places. Here’s an example: in our own implementation, creating a Virtual Machine from a template or by copying another VM instance is very snappy. But weirdly, connecting a network (public or private) to a VM can sometimes be extremely slow. Go check out other implementations like EC2 and you see a similar unpredictable-latency narrative.
The idiom we’d been using so far was along these lines:
As with both AtomPub and Rails, when you want to create something new you POST it to a collection of some sort and the server comes back with “201 Created” and the URI of the new object.
When you POST to some controller (for example “boot a machine”) or do a DELETE, the server comes back with “204 No content” to signal success.
This is all very well and good; but what happens when some of these operations take a handful of milliseconds and others (e.g. “boot all the VMs in this cluster”) could easily go away for several minutes.
The current thinking is evolving in the Project Kenai forums, and was started up by Craig McLanahan in PROPOSAL: Handling Asynchronous Operation Requests. Check it out, and put your oar in if you have something better in mind.
To summarize: For any and all PUT/POST/DELETE operations, we
return “202 In progress” and a new “Status” resource,
which contains a 0-to-100 progress indicator, a
target_uri for whatever’s being operated on, an
op to identify the operation, and, when
progress reaches 100, status and
message fields to tell how the operation came out. The
idea is that this is designed to give a hook that implementors can
make cheap to poll.
We also thought about a Comet style implementation where we keep the HTTP channel open, and that can be made clean but support for it in popular libraries is less than ubiquitous. My personal favorite idea was to use “Web hooks”, i.e. the client sends a URI along with the request and the server POSTs back to it when the operation is complete. But every time I started talking about it I ran into a brick wall because it probably doesn’t work for a client behind a firewall, which is where most of them will be. Sigh.
There are a few points that are still troubling me, listed here in no particular order:
When an operation is finished and you want to provide a Status code, we’re re-using HTTP status codes. Which on the one hand seems a bit outside their design space, but on the other hand maybe it’s a wheel we don’t have to re-invent.
Instead of having the “op” field, we could have a different media-type for each imaginable kind of Status resource. That might be a bit more RESTful but seems a less convenient to use for client implementors.
This whole notion of the target_uri makes me wonder
if we’re missing a generalization. The most obvious role is when
the Status is that of a create operation, for example Create New
VM; then the target_uri is the new resource’s URI,
what would come back in the Location HTTP header in a synchronous
world.
And in a few cases you might want more than one target, for example when you’re attaching an IP address to a VM.
Hmmm.
Speaking of generalization, I wonder if this whole “Slow REST” thingie is a pattern that’s going to pop up again often enough in the future that we should be thinking of a standardized recipe for approaching it; the kind of thing that has arisen for CRUD operations in the context of AtomPub and Rails.
What do you think?
Posted at 22:58
The complete program for "Balisage: The Markup Conference 2009", including late-breaking news, has just been posted. See:
Balisage 2009 is the place to come to think about XML, and about markup. The Balisage program varies from the practical to the theoretical, with a little heresy mixed in:
Posted at 18:57
I was editing some pictures (which I organize per-month) and realized that there were a ton in the June folder that I’d been meaning to run, and now it’s not June. So let’s populate the first few days of July with some of ’em. First, musical faces of Car-Free Vancouver Day.
The first is self-explanatory.
The second is a few blocks north; DRMHLLR, a spacey sort of jam band, was playing really loud. I was pushing my little toddlergirl and she’s usually pretty sensitive, always telling me to turn down the rock & roll in the car. But as we rolled up she seemed fascinated, so I bashed a couple of bystanders with the stroller to get a front-row spot. She just leaned back and went with the groove; I have high hopes for the girl.
That Car-Free day, it’s OK by me. This is on Main and there were thousands and thousands of people there; interesting shopping, good eats, cool beats, and fun people to look at.
The glass on that parchment had broken in transit, so I’d dropped it off at a framing shop on Main for repairs. I wheeled my ice-cream-stained daughter out of the crowd into the shop, and he told me he’d done a huge amount of walk-in business and spent the rest of the day enjoying the show. What’s not to like? Can we do this every month in the summer?
Posted at 08:10
2009-07-02: The SPARQL Working Group has published the First Public Working Draft of SPARQL New Features and Rationale. This document provides an overview of the main new features of SPARQL and their rationale. This is an update to SPARQL adding several new features that have been agreed by the SPARQL WG. These language features were determined based on real applications and user and tool-developer experience. Learn more about the Semantic Web Activity. (Permalink)
Posted at 00:00
2009-07-02: Today the Director announces that when the XHTML 2 Working Group charter expires as scheduled at the end of 2009, the charter will not be renewed. By doing so, and by increasing resources in the Working Group, W3C hopes to accelerate the progress of HTML 5 and clarify W3C's position regarding the future of HTML. A FAQ answers questions about the future of deliverables of the XHTML 2 Working Group, and the status of various discussions related to HTML. Learn more about the HTML Activity. (Permalink)
Posted at 00:00
2009-07-02: W3C has published a summary and full minutes of the Workshop on Speaker biometrics and VoiceXML 3.0, that took place in Menlo Park, California on 5-6 March. Participants from 15 organizations focused discussion on Speaker Identification and Verification (SIV) functionality within VoiceXML 3.0, and identifying and prioritizing directions for the functionality. The major "takeaway" from the Workshop was confirmation that SIV fits into the VoiceXML space and generating the "Menlo Park Model", a SIV available VoiceXML architecture. The Working Group will continue to discuss how to include the requirements expressed at the Workshop into VoiceXML 3.0 and improve the specification. Learn more about the Voice Browser Activity. (Permalink)
Posted at 00:00
Recently, Vancouver’s City Council passed an “Open Data, Open Source” motion. I was too busy at the time to pay much attention, which I’ve regretted. Now I’ve started poking around a bit, and turned up an interesting person and an outstanding example.
No, I’m not kidding. This idea was recently floated by David Eaves in How Open Data even makes Garbage collection sexier, easier and cheaper. Seriously; take a moment and read it. If there’s low-hanging fruit in garbage collection [Watch those metaphors. -Ed.] it’s hard not to get excited over what you could build on the raw data about housing and zoning and licensing and traffic and all the other intensely-local things a city has its hands on.
I’ve always liked opening up data resources and have spent my career building technology to support this, but for me this is a powerful abstraction-free “Hello World” example of why.
By an odd coincidence, I already had a date to meet David Eaves, the guy who wrote that piece. He’d come across my radar as one of the people doing work on that Open Everything resolution and then he published a blog piece saying “Who are the people that read this?” and I’d dropped him a note saying “I’m an Internet guy who likes what the city’s doing, wondering if I can help”, so we had coffee.
David Eaves in an appropriately urban setting at Cambie and Broadway.
He doesn’t actually work for the City, but he’s an activist with Vision Vancouver, the municipal sort-of-political-party that currently holds a majority on council. They’re not perfect, but they seem, on balance, level-headed and smart.
David has lots of ideas about other good things that could be accomplished by opening up this data source or that, and it all seems affordable. I was pleasantly surprised to discover that there’s not much in the way of organized opposition. I imagine the city’s IT department is grumbling about unasked-for extra work, which is fair, but it shouldn’t be that painful.
The thinking seems to be along these lines:
Publish the data in a usable form.
License it in a way that turns people loose to do whatever they want, but doesn’t create unreasonable liability risk for the city.
See what happens. Nobody’s smart enough to predict what combination of private-business and community-activist players will use it, or what they’ll use it for. If nobody does, well, it didn’t cost much to try.
Vancouver’s not alone; apparently Washington DC, of all places, is the world leader in doing this; also some West Coast cities including San Francisco are making good progress.
Me, I’ve spent the last few decades starting businesses and trying to improve the Internet. I’ve been well-rewarded for doing it and I have few regrets. But I’m increasingly getting an urge to pitch in and give back at a local level, if I can find somewhere I’d be useful.
I’m not sure where that is. But as a first step, I’m joining Vision Vancouver; the first political party I’ve been a member of since the early Eighties.
Posted at 21:46
So, I've just finished my slides for the American Association of
Law Librarians conference coming up in D.C. end of
July.
This is the first AALL conference I have attended and I'm really
looking forward to it. If you are around the D.C. area 25-28 July
and interested in meeting up, let me know.
I'll be talking at AALL about the challenges involved in preserving
law and other legislative artifacts. How XML doesn't necessarily
help unless you approach it exactly right[1].
[1] In this case, "exactly right" is at odds with the standard XML
orthodoxy. Hint: the wrong place to start is with a logical model
of legal texts as "structured" artifacts.
Posted at 21:25
I still moderate all the comments here, but the setup is idiosyncratic enough that hardly any spam gets through. Today, I’m pondering one particular comment, wondering whether to approve.
The comment is to Kindle Yourself, about how you can buy the contents of this blog for $1.99 a month on your Kindle. It says:
From: Wendy
As much as I love to read - especially blogs - I don't think it would be feasible for most people to subscribe to 5 or 6 blogs for that price. Not in this economy. But it's a great idea and I would gladly do it for some of the top daily newspapers.
Sensible enough. As I often do, since I care who reads this, I clicked on the “Wendy” link and it took me to wendycarlisle.com. While at first glance this is a vanilla blog, something about it bothered me; also, I was pretty sure I’d seen this movie before; comments from other blogs that somehow, in some intangible way I couldn’t put a finger on, felt like this one.
A bit of poking around increased my discomfort. First, there’s the blog’s “Disclosure Policy”, a graphic of some text (?!) from which I excerpt:
This blog is a personal blog written and edited by me. For questions about this blog, please contact <gmail address elided>.
This blog accepts forms of cash advertising, sponsorship, paid insertions or other forms of compensation... the owner(s) of this blog is compensated to provide opinion on products, services, websites, and various other topics. Even though the owner(s) of this blog receives compensation for or posts or advertisements, we always give our honest opinions, findings, beliefs, or experiences on those topics or products...
Hmm, well, OK, I guess.
Then I glanced at the blogroll. All linked by first name, all hosted at URLs of the form FirstnameLastname.com. All sounding like they were written by real people living in real places, but theme-free and passion-free. All with what looked like bits of product placement. All WordPress. Most but not all of the domain names registered by AC Merchandising LLC.
So, yep, I’m pretty sure this is a new (to me) form of, uh... what? Spam? I’m not sure. It seems there are some real people in the system writing these blogs? Innocent folk looking to make a few extra bucks? A small staff each emulating a bunch of these people?
Anyhow, I don’t think I’m going to approve the comment. Wendy, if you’re a real person, I apologize.
Posted at 20:29
Roger Ebert review (”a horrible experience of unbearable length”)
Fake Shia LaBeouf blog (”no no no no!”)
Smashing box office records (200 mil in 5 days, “The per theater average, by the way, was astonishing: $26,453.”)
-m
Posted at 07:18
2009-07-01: Browse W3C presentations and events also available as an RSS channel. (Permalink)
Posted at 00:00
Worldcon 2009, Anticipation, will be in Montreal from August 6 to 10, 2009. Right before Balisage.
Stretch your mind at Anticipation for a week, then come to Balisage and stretch in a different direction. The Balisage crowd may, on average, be a bit less colorful than participants in the Anticipation Masquerade, but I wouldn't be totally surprised to see a little color mixed in with the usual geek costumes at Balisage 2009.
Come for one, enjoy them both.
Posted at 23:56
Check out the really large (titanic, in fact),
you-can-walk-around-in-and-descend-the-grand-staircase,
really really cool (they include an iceberg!)
Titanic Artifact Expo that will be in Montréal at
the same time as the conference.
http://www.expotitanic.ca/homeen.php
Posted at 22:38
Mark Logic has released version 4.1 of their namesake XML database for Linux, Solaris, and Windows. New features in 4.1 include: More...
Posted at 15:09
Most people that work with XML have at least heard of DTDs and
XML Schemas. Both are widely used to provide a validation model for
the XML document. XML Schema has also been tried to be used as a
general purpose modeling language and used within data binding
frameworks for code generation. However, XML Schema and DTDs do not
necessarily work or are the best fit for all document designs. XML
Schema can be very heavy weight, overly wordy, and in general a
pain to work with at times. DTDs do not allow data typing, and
personally I hate the DTD syntax.
So, if you need the power that XML Schema can provide, but want an
easier for humans to read language what are your alternatives.
RelaxNG.
Bug
281529 has been opened to help bring a RelaxNG set of tools and
frameworks over to the Web Tools Platform Incubator. RelaxNG
provides both an XML syntax and a more human friendly Compact
Syntax:
Sample Compact Syntax:
element addressBook {
element card {
attribute name { text },
attribute email { text }
}*
}
In some ways I think the RelaxNG might be a good place for XText and its DSL editor
generation abilities. The RelaxNG language is a doman specific
language for XML validation. It's compact syntax would seem to fit
well into the range that XText can support.
RelaxNG is very popular in the Document centric industries. The
Open Document set of grammars are written entirely in RelaxNG. A
good set of open source tooling and integration within eclipse is
missing for RelaxNG. OxygenXML does contain RelaxNG
support but this isn't an open source solution that others can use
and contribute to build their own implementations. It would be
ideal if we could get all interested players together to work off a
common framework to meet the 80% that everybody needs, and then
extend where necessary the additional 20%.
Posted at 14:24
2009-06-30: The Service Modeling Language Working Group has published two Working Group Notes: The SML XLink Reference Scheme and Framework for SML EPR-Based Reference Schemes. The Service Modeling Language specification extends the Extensible Mark-up Language and XML Schema with a mechanism for incorporating into XML documents references to other documents or document fragments. The first note addresses the construction of an SML reference scheme based on the XML Linking Language. The second addresses the construction of SML reference schemes for document or document fragment references that employ WS-Addressing endpoint references (EPRs). Learn more about the Extensible Markup Language (XML) Activity. (Permalink)
Posted at 00:00
2009-06-30: The Cascading Style Sheets (CSS) Working Group has published a Last Call Working Draft of CSS3 module: Multi-column layout. This module describes multi-column layout in CSS. It builds on the CSS3 Box model module and adds functionality to flow the content of an element into multiple columns. Comments are welcome through 01 October. Learn more about the Style Activity. (Permalink)
Posted at 00:00
…so are the Carbs of Our Lives. (No? How about As the Pancreas Turns? Maybe not.)
Today’s carbgrrl musings are a little less overtly scientific than at times in the past, and a little more speculative and personal. You see, a friend loaned me a diet book that wasn’t actually 100-percent horrible, and it offered an insight that resonated with me in a big way.
The book was Michel Montignac’s Eat & Lose Weight For Good: The Montignac Weight-Loss Plan, in a UK edition. (This is probably the US equivalent.) My friend and I had discovered a mutual appreciation of GCBC, and she thought I’d like this book too.
Montignac has a wonderfully blunt style, and he seems to enjoy shocking his audience. Very French! He’s written quite a few books, focusing on what I’d call a hybrid low-glycemic/”French girls don’t get fat” approach. This book has a couple of scientific boo-boos, for example extolling the virtues of fructose (?!?). But he has a good handle on the sheer variability of people’s responses to carbs. (Atkins had the same, with his emphasis on finding your personal Critical Carbohydrate Level for Losing.)
This passage reached out and grabbed me:
Some people have been able to remain slim all their life, although they have bad eating habits. This is because they were blessed with a very healthy pancreas that has not lapsed into hyperinsulinism, despite the heavy glycaemia inflicted on it over a long period of time.
Others — and these are the majority — also started off with a healthy pancreas that enabled them to stay slim for many years despite their bad eating habits. And then, when they were about 30 or 35, and certainly by the time were 40, they started to put on weight. In later years, some even became obese and diabetic. Their pancreas held out for several decades, but in the end it succumbed to the abuse it had suffered.
And then there are those, like me, who arrived on earth with a sub-standard pancreas that was inherited. The chances of having a frail pancreas, if your parents were obese and therefore hyperinsulinic, is high. It is almost certain in any case, if the diet from an early age is hyperglycaemic. [p. 47]
I suspect he’s just described my pancreas: feeble, rickety, frail, sub-standard. Some of my friends (probably with brawny he-man pancreata) seem incredulous at the crazy lengths I go to even to avoid gaining weight at this point, having to cut out just about any slightly scary carb and some nominally okay ones (mmm, oatmeal). It’s like I’ve used up my lifetime allotment of normal insulin response.
Notice that Montignac suggests two factors to consider: heredity and environment. (With risk factors on both sides of my family, and with a history of dieting in the idiotic 70’s and 80’s, I bet I’ve got both.) One or both might explain one of the outcomes of an exercise in occupational medicine, done at DuPont in the late 1940’s to help executives lose weight and avoid the new epidemic of heart disease in America. Taubes recounts the tale:
In June 1949, [Alfred] Pennington published an account of the DuPont experience… All of this seemed paradoxical: the DuPont executives lost weight on a diet that did not restrict calories. Carbohydrates were restricted in their diet — no more than eighty calories at each meal. “In a few cases,” Pennington reported, “even this much carbohydrate prevented weight loss, though an ad-libitum [unrestricted] intake of protein and fat, more exclusively, was successful.” …. If [one executive] ate any carbohydrates, “even an apple,” Pennington wrote, his weight would climb upward. [GCBC p. 330, Ch. 20; bold added]
Heredity and environment are the filters through which I now view all women’s magazine articles, studies, and public-health pronouncements about obesity, diabetes, heart disease, and metabolic syndrome. Maybe low-fat does work — for the young, or the pancreatically strong. Maybe it works now but it contributes to later yo-yo effects. If we had an easy way of testing both axes, maybe we’d have a shot at predicting who will lose weight on which diet at which juncture in their lives without lasting damage.
Speaking for myself, I just can’t take the chance anymore.
Posted at 04:16
Ever since I came across Damien Rice I've been watching out
for evidence of his backing vocalist Lisa Hannigan branching out on
her own. She is waaay to good to be a second fiddle.
And now she has. I hope she plays more dates in the US soon.
If you have not come across her before thing of a mashup between
Norah Jones, Leonard Cohen with a touch of Mary Margaret
O'Hara.
Posted at 14:05
The Steorn 300 program is underway, and yes, I am one of the 300 looking at their information which is coming out in once-a-week bursts in the form of educational modules. So far, nothing interesting. Some basic physics lessons, and somewhat more interesting forum activity.
But all signs seem to be pointing in the wrong direction for a miraculous breakthrough. A jury of members selected by Steorn recently unanimously stated:
The unanimous verdict of the Jury is that Steorn’s attempts to demonstrate the claim have not shown the production of energy. The jury is therefore ceasing work.
Even this announcement raises more questions, and at this point in the game, more questions is not a good thing. Of the 22 original jury members, apparently only 16 were left at the end. Those 16 were unanimous, but what did the other 6 think? Were they booted as dissenters? Also allegedly the jury was never presented with actual hardware, which seems completely crazy and counterproductive from the standpoint of the company that convened the jury.
This kind of story has unfolded many times before, and it doesn’t end well. I’ve spent many hours debunking energy claims and perpetual motion devices. But hey, the company says they are proceeding with plans to commercialize the technology by the end of 2009. No matter what happens, it will be interesting to watch. -m
Previously: How Orbo works, When the experimenter wants to believe, and The downside of free energy.
Posted at 04:40
IKVM (in version 0.40) now has much more complete coverage of the Java class library, but an unfortunate consequence of this is that the libraries have become rather large. To cut down the size of the library, we need to understand the dependencies between its parts. Read on to find how I'm doing this using the streaming facilities of the new Saxon 9.2 release...
Posted at 17:01
Norm Walsh has posted version 0.9.12 of Calabash, an open source XProc implementation written in Java. This release fixes bugs and adds a non-standard “general values extension”. Java 5 or later is required. Calabash is published under the GNU General Public License Version 2.0.
Posted at 14:09
I’m thrilled to announce MarkLogic 4.1 and with it my project App Services, is here. Top-of-the-post props go out to Colleen, David, and Ryan who made it happen.
You might already know that MarkLogic Server is a super-powerful database slash search engine powering projects like MarkMail. (But did you know there’s a free-as-in-beer edition?) The next step is to make it easier to use and build your own apps on top of the server.
The first big piece is the Search API, which lets you do “Google-style” searches over your content like this:
search:search(”MP3 OR iPod AND color:black -Zune”)
The built-in grammar includes AND, OR, parens for grouping, - for negation, quotations for phrases, and easy ways to define facets like date:today or author:”Bill Shakespeare” or GPA:3.95. By passing in additional options, you can redefine the grammar and control all aspects of the search and how the results are returned. Numerous grass-roots efforts at doing someting like this had begun to spring up, so the time was right to come out with an officially-sanctioned API. For those developers who haven’t seen the light yet and don’t fancy XQuery, an API like this is a huge benefit.
The next piece builds on the Search API to offer a graphical App Builder tool that produces a simplified MarkMail-type app around your content. It looks like this:

The App Builder itself is based on XForms via the excellent XSLTForms library and REST, making it a full-blown XRX application.
Lots more info, videos, screencasts, articles, and more are coming soon.
You can start playing with this now by visiting the download page. Under the Community License, you can put 10 gigs of content into it for noncommercial production free-as-in-beer.
Enjoy! I’ll be catching my breath for the next two months*. -m
* Not really
Posted at 02:09
2009-06-26: W3C announces the French Authorized Translation of Web Content Accessibility Guidelines (WCAG) 2.0, Règles pour l'accessibilité des contenus Web (WCAG) 2.0. It is the first of several planned WCAG 2.0 Translations: Brazilian Portuguese, Catalan, Chinese, Czech, Danish, Dutch, German, Hindi, Hungarian, Italian, Japanese, Korean, Portuguese, Russian, Spanish, Swedish, and other languages. Translations are listed on the WCAG 2.0 Translations page and announced via the WAI Interest Group mailing list and WAI RSS feed. Learn more about translating W3C documents, Policy for Authorized W3C Translations, WCAG 2.0, and the Web Accessibility Initiative (WAI). (Permalink)
Posted at 00:00
2009-06-26: As of 30 June, Steven R. Bratt will step down from his role as W3C CEO in order to pursue full-time the role of CEO of the World Wide Web Foundation. The Web Foundation was announced in September 2008 with a mission to advance the Web, connect humanity, and empower people. Steve has been part-time CEO of the Web Foundation since then.
Posted at 00:00

2001: "Thousands of new sites premiere every day. Most of them are built to support bad browsers intead of standards. It’s an epidemic. Enough already. We finally have good browsers. Let’s use them."

2008:"One accommodates Microsoft as one’s ancestors accommodated Imperial Rome. As a wiser man than me said, 'Render unto Caesar.'"
Posted at 21:24
Registration has just opened for this year’s XML Summer School, held in Oxford on 20-25th September. I’m teaching a couple of sessions and helping with a workshop on the “XSLT, XSL-FO and XQuery” track along with Bob DuCharme, Michael Kay and Priscilla Walmsley. It’s one of my favourite events, for three reasons:
I know a lot of beginners go to the XML Summer School for the introduction course, but to me the real value is for people who are actually using XML on a day to day basis and want to keep on top of the latest tools and technologies that will actually help them do their jobs. I learn something new every year.
Anyway, I wanted to blog about it because there’s a discount on registration up until 30th June. Grab ‘em while you can!
Posted at 21:03
At first I was afraid, I was petrified
Posted at 17:55
Oracle has released the final version of Java Specification Request (JSR) 225, XQuery API for Java™ (XQJ). There's also a reference implementation and technical compatibility kit. As JDBC is to SQL, XQJ is to XQuery. More...
Posted at 16:09