January 2007 Archives

M. David Peterson

AddThis Social Bookmark Button

Update: Simon Phipps has stated that my assertion that Novell is the largest contributor of source code to OpenOffice.org is incorrect, and in fact it is Sun Microsystems who is the largest contributor. My data says otherwise, but I also have a lot of trust in as well as respect for Simon, so I have to assume that my data is incorrect.

I don’t think this changes my assertion that Miguel is someone in whom can be seen as an authority figure when it comes to the technical debate between ODF and EOOXML, as regardless of whether Novell is, in fact, the largest contributor, they are a significant contributor, and therefore his understanding of the technical issues involved are significant. None-the-less, if my assertion is incorrect (and, again, I can only assume that it is) then please take this into consideration in your overall analysis of both this post as well as the follow-up comments.

Thanks for helping to clarify the facts, Simon!

Update: bryan presents a refreshing perspective than what seems to be the standard “I hate Microsoft!” attitude when it comes to why they feel EOOXML is a bad thing.

Basically if someone asked me to work with OOXML for extracting data I would say, sure but it would be cheaper and easier to use Microsoft’s APIs to work with office data, or to convert the document to ODF and extract the data that way.

This is really my only dislike of ooxml. I don’t think it qualifies as FUD, it is just my experience of how it is to work with these technologies.

In follow-up, Miguel de Icaza provides a solution to the stated problem at hand,

This is an article about LINQ and how to extract Word ML document using it:

http://blogs.msdn.com/ericwhite/pages/Retrieving-the-Paragraphs.aspx

Folks have showcased LINQ-like technologies for Ruby and Python, so it cant be that hard to parse.

What I truly admire and appreciate about this exchange is pretty straight forward,

A real-world problem in regards to the usage of EOOXML, and a real-world solution provided in follow-up, or in other words, just like what tends to take place on a daily basis in both the open and closed source camps (though the the community aspect and overall openness, as should be obvious, is much more prevalent, generally speaking, in the OSS camps), two hackers find ways to present real-world problems and real-world solutions to these problems.

This is the way it *NEEDS* to be folks. The FUD, anti-EOOXML smear campaigns accomplish *NOTHING*, where as the exchange that took place below accomplished exactly what needed to be accomplished… Find where the problems exist and then fix them.

Thanks to both of you for providing a picture perfect example of how things both could and should be working as we move forward into the next generation of open xml document formats!

[Original Post]

So I just finished up reading an interesting post from Miguel de Icaza regarding ODF vs. EOOXML, and felt that it was really quite important to share with the rest of you all,

The EU Prosecutors are Wrong. - Miguel de Icaza

… I think that the group is not only shooting themselves in the foot, they are shooting all of our collective open source feet.

Interesting lead in, and something that I can assure you lives up to the promise of showcasing why the ODF vs. EOOXML battle field is doing more harm than it could ever do good, but before I move on, there’s something I’ve been wanting to get off my chest…

Rick Jelliffe

AddThis Social Bookmark Button

Patrick Durusau, editor of ODF, asked me to restate my thoughts on what “contradiction” should mean at ISO. I had mentioned my views in an SC34 meeting last year. This topic is, of course, of interest right at the moment, because the Ecma proposal for OOXML is at the stage in its acceptance process where the process says it should be checked to make sure it doesn’t contradict other standards.

I take a fairly strict view of “contradiction”. Anything else works against fairness of process.

A contradiction is where

  • One standard attempts to redefine another, or is a rival standard for exactly the same named thing but is different in some aspect. The precedent here is the contradictions alleged between two standards for UNIX-derived APIs that arrived at ISO by different routes ISO Linux API and ISO POSIX. The remedy is withdrawal and harmonization.
  • One standard disrupts another. The precedent for this is the IEEE 802 WAPI issue in which the claim was that the changes would make existing conforming implementations non-conforming. The remedy is withdrawal of the contradicting standard and future harmonization. (However, the WAPI issue does not seem to have been resolved; certainly the Chinese approach (compared to the UK body) is that procedural issues should not be used to block standards, in particular that obsoleting old standards for allowing a “contridiction” to block the progress of the standard if the issues have been raised before and not disposed of. But it does suggests that fairness is a more important criterion than contradiction, at the end of the day. Or, at least, that using procedural tactics to block something may not find much favour in the eyes of the ISO Secretariat and many ISO participants. )
  • One standard pretends to be another. The precedent for this at ISO are the UK objections to C++/CLI. The remedy for this is a simple name change, and other associated editorial changes.
  • One standard incorrectly uses another. For example, if a standard said it used ISO SGML but allowed that to be invalid for no intrinsic reason. (I have not found any precedent for this, but it seems the obvious case.)

A contradiction may have negative effects, such as user confusion, but it is not the negative effects that cause that there is a contradiction; a highly technical standard will confuse anyone. It is the direct contradictions int he text of the standards that is involved.

M. David Peterson

AddThis Social Bookmark Button

Update: via a follow-up comment from Mike Champion (to the post linked to below),

M. David was right in his O’Reilly blog … credit the people who ” kick, scream, and cry loud enough” not any particular person in Redmond. For example, we’ve noted how many comments Ralf gets on his LINQ to XSD posts. If you want us to do something new or different in the core XML technology area, you know what to do: comment here, post a private message to http://blogs.msdn.com/xmlteam/contact.aspx, blog about it, or do something else to make your opinion heard.

Or, in other words, if you don’t ask, you’re a lot less likely to get what you think you might want. Kicking, screaming, and crying (if necessary) can be helpful too ;) But unless you’re okay with being referred to as “that punk a$$ hacker with an attitude (who throw’s tempter tantrum’s if/when he doesn’t get his way!)” (which I’m personally okay with, btw…) then I don’t (necessarily) recommend its usage.

That said… Much like the choice of when to use SOAP over REST, or JSON over XML, use the tool that works (best) to get the job at hand done. I’ll leave the decision of which tool to use when as an exercise for the reader. ;)

[Original Post]

XmlTeam may not be much to look at,


XmlTeam

But at this moment in time, by golly, I believe he/she is the most *BYOO-T-FULL* person in the world,

Monday, January 29, 2007 2:30 PM by XmlTeam

Microsoft XML Team’s WebLog : XSLT 2.0

Our users have made it very clear that they want an XSLT 2.0 implementation once the Recommendation is complete. A team of XSLT experts is now in place to do this, the same people who have been working on the XSLT enhancements that will be shipped in the forthcoming “Orcas” release of Visual Studio / .NET 3.5. Orcas development work is winding down in advance of Beta releases over the next several months, so there is no possibility of shipping XSLT 2.0 in Orcas. The XSLT team will, however, be putting out Community Technology Previews (CTP) with the XSLT 2 functionality and appropriate tooling as the implementation matures. The eventual release date and ship vehicles (e.g. a future version of .NET or a standalone release over the Web) have not been determined, and depend on technical progress, customer demand, and other currently unknowable factors.

We very much wish to hear from our user community about their requirements that could be met with XSLT 2.0. We can discuss how to address those requirements in this interim period with existing technologies and those that will be released in “Orcas”. Those who urgently need an implementation of that runs in the .NET environment may wish to check out the Saxon open source project or the schema-aware commercial version produced by Saxonica

So what kills me about all of this (the above “event” had been previously known to be in the works, so its of no great shock) is contained in the comment section of the above linked post,

Kurt Cagle

AddThis Social Bookmark Button

The news from the XSLT front of late has been very good, with the release of the XSLT 2.0 standard, XPath 2 and XQuery 1 - and I just found another hopeful sign in this post from Mozilla’s Jonas Sicking:

We now have code checked in to support some parts of EXSLT
These functions will be supported in the upcoming Firefox 3
release (sorry, no chance of backporting to earlier releases)

exsl:node-set
exsl:object-type
regexp:test
regexp:match
regexp:replace
set:difference
set:distinct
set:intersection
set:distinct
set:has-same-node
set:leading
set:trailing
str:tokenize
str:concat
str:split
math:min
math:max
math:highest
math:lowest

AddThis Social Bookmark Button

In a recent blog entry, “The Hardware of Tomorrow Versus the Platform of Tomorrow”, Joe Walker raised some important Ajax issues. He talks about the increasing multiprocessing capabilities of today’s hardware, and web browsers’ inability to take full advantage of it.

He mixes two separate issues, talking about the lack of threading/concurrency support in the Javascript language, and also the lack of multi-threading within web browsers.
It’s this second issue that I want to explore here, particularly this comment:

“The problem is that web-browsers are a step backwards as far as multi-threading goes. In Javascript there is no such thing as a new thread, and worse than that, the entire platform (i.e. a browser) runs a single JavaScript thread. If a script in one window goes into a tight loop, or runs some synchronous Ajax then the browser HTML display freezes.”

Hmmm. That last sentence started gnawing at me. I’ll leave the “tight loop” problem for another day, but is it true that a synchronous XMLHttpRequest call will “freeze” the browser?

M. David Peterson

AddThis Social Bookmark Button

I come across a *TON* of really useful open source software each and every day of my life, much of which I never tell anybody about (at least from a more widespread blog entry perspective) because — well, to be honest, if I took the time to blog about each and every one, http://www.oreillynet.com/xml/blog/, which will usually look like,

Dan Zambonini

AddThis Social Bookmark Button

If, like me, you’re a subscriber to Darwin, Dawkins et al, then you probably assume that there’s only one purpose for your existence: to reproduce.

With that in mind, when you choose a programming language for a task, you shouldn’t be concerned about performance, security, efficiency, documentation or technical support, but rather the ultimate question of; “which language will give me the best chance of procreating?”

M. David Peterson

AddThis Social Bookmark Button

May not be much of a title, but at least it speaks the truth.

What actually is Wikipedia’s Conflict of Interest guideline for professional writers? - O’Reilly XML Blog

But it is interesting that at least on the face of what the Wikipedia guidelines say, the entire premise of all the newspaper articles is actually wrong. We are not talking about a conflict of interest that is banned, we are talking about, at the most, the potential of an appearance of a conflict of interest for which there are non-absolute guidelines.

I wonder if we will see any newspapers or press printing retractions apologizing to me. It is what I would like. They have published my name far and wide in connection with shady allegations. A headline like “Microsoft sounds out guy to improve entries as allowed by Wikipedia rules and says it is no secret and the guy discusses it in a blog but still hasn’t done any edits and hasn’t talked money yet” is not much of a headline is it. If you look at the AP article at CNN when setting up Jimmy Wales’ comments “paying for copy is a no-no.” But they are not paying for copy, they are paying for me to improve technical material on a prospective ISO standard (that they and others would be using.)

DISCLAIMER: None of what I write on this blog or elsewhere can or should in any way be seen as the opinion(s) of O’Reilly Media and/or any of their affiliates. This is stated elsewhere, though it doesn’t hurt to make sure this point is understood.

DISCLAIMER: The opinions expressed here are my own. My employer is me; I’m an independent contractor; I am not paid to write blog entries for O’Reilly, though have signed contracts in the past and plan to sign more contracts in the future to write other material such as books and articles; I write entries here on my O’ReillyNet blog because I,

Rick Jelliffe

AddThis Social Bookmark Button

What exactly are Wikipedia’s guidelines relating to conflict of interest and professional editing? Looking at their policy pages, it actually seems to bear little resemblence to some of the comments floating around. From what I can gather, here is a summary:

  • Defamation can be removed at any time by anyone
  • Being paid to edit is not, of itself, a conflict of interest. That is stated nowhere.
  • Being paid to edit with the sole intention of improving the employer’s image is a conflict of interest.
  • This is because, in Wikipedia terms, the conflict of interest comes not from the payment but from the aspect of self-promotion.
  • Nevertheless, being paid to edit however does give an appearance of a conflict of interest (but not for unrelated material) and so is strongly discouraged.
  • Editors should declare conflicts of interest on their User page, which allows edits to be paid extra attention for neutrality.
  • The guidelines include guidance for how to proceed if you have or appear to have a conflict of interest, with a section on professional editors. The guidance specifically concerns itself with bias for and against the employer company.
  • If you have a conflict of interest, avoid editing, participating in discussions, or even linking from your company to Wikipedia (i.e. using it to market your company.)
  • If the rules prevent you from improving or maintaining Wikipedia, ignore them.

This seems quite reasonable and workable.

So the question for me becomes, has MS asked me to edit material relating to Microsoft? That would be a conflict of interest.

And the answer is, no. The material in question was in relation to Open XML, not Microsoft. Now I can understand if a ban on a company also meant a ban on articles on its products: they are only one step removed. But a file format is two steps removed. And a file format standardized by a formal standards organization (Ecma) including other organizations like Novell and British Library is three steps removed. And by the time it comes to ISO, it is four steps removed.

So I believe that the Wikipedia guidelines mean there is no conflict of interest created by me accepting an editing job from Microsoft to neutrally edit articles that are not about Microsoft, and not about their products, but about technical aspects of an Ecma standard that is before ISO. One a similar vein, an IBM person can edit an article on ODF but not on IBM or Lotus or some particular software. Tim Bray can edit an article on XML but not Sun or their hardware products.

The appearance of a conflict of interest means that disclosure and scrupulous attention to the Neutral Point of View come into play. Now, I certainly welcome correction from Wikipedians on this (chapter and verse from you please, spirit of cooperation from me!)

But it is interesting that at least on the face of what the Wikipedia guidelines say, the entire premise of all the newspaper articles is actually wrong. We are not talking about a conflict of interest that is banned, we are talking about, at the most, the potential of an appearance of a conflict of interest for which there are non-absolute guidelines.

I wonder if we will see any newspapers or press printing retractions apologizing to me. It is what I would like. They have published my name far and wide in connection with shady allegations. A headline like “Microsoft sounds out guy to improve entries as allowed by Wikipedia rules and says it is no secret and the guy discusses it in a blog but still hasn’t done any edits and hasn’t talked money yet” is not much of a headline is it. If you look at the AP article at CNN when setting up Jimmy Wales’ comments “paying for copy is a no-no.” But they are not paying for copy, they are paying for me to improve technical material on a prospective ISO standard (that they and others would be using.)

Rick Jelliffe

AddThis Social Bookmark Button

Tim Bray wrote a post Life is Complicated that is directly addressed to me. Tim was, as usual, thoughtful and exemplary, and emailed his main points for comment before going public. (He had said I was ignoring the elephant in the room, and I had replied that there was more than one elephant, which he put in his post I was glad to see.) I’ll address some of his points in another post, but I wanted to clear up something first:

Kurt Cagle

AddThis Social Bookmark Button

The news is something I’d rather despaired of ever hearing - XSLT 2.0 is now a Recommendation - big, capital R, with XPath right there beside and XQuery making its formal debut. It’s been a long time coming, but I suspect in many ways that the timing couldn’t be more perfect.

XSLT 2 started out as XSLT 1.1, an effort to try to solve some of the nastier, thornier issues of XSLT 1.0. Getting rid of the damned ext:node-set function that was a non-standard hack that became practically de rigour in XSLT processors, because there are many times where you want XML fragments to just act like XML. The introduction of a <xsl:function> tag so that you could call templates from with XPath. Multiple output serialization, support for tokenization and regular expressions. Take a look at EXSLT (http://www.exslt.org) sometimes, and you can see where many of us playing with XSLT 1.0 were seriously hoping XSLT 1.1 would become back in 2002-3.

Rick Jelliffe

AddThis Social Bookmark Button

My blog An interesting offer - get paid to edit Wikipedia made it to the most downloaded page on oreillynet, was Slashdotted, and even made it to CNN.

Here’s the way the script would have gone in a sane world:

Wikipedia: Microsoft eats babies!

Microsoft: No we don’t

Wikipedia person: Tell it to the hand!

MS: Are you interested in correcting this?

Rick: Sure, lets make sure everything is upfront. I know, I’ll publish a blog called “An interesting offer - get paid to edit Wikipedia” to start the conversation.

Microsoft: No problems.

Wikipedia person: oh, we have conflict of interest rules

Rick: Oh, OK. Whats the best way to proceed then?

Wikipedia person: A or B or C. But we have a problem in our procedures here, so maybe D. In this case, E is OK too.

Here’s the way it went instead

Wikipedia: Microsoft eats babies!

Microsoft: No we don’t

Wikiepedia person: Tell it to the hand!

MS: Are you interested in correcting this?

Rick: Sure, lets make sure everything is upfront. I know, I’ll publish a blog called “An interesting offer - get paid to edit Wikipedia” to start the conversation.

Microsoft: No problems.

Journalist 1: BLOGGER REVEALS BRIBE ATTEMPT!

Journalist 2: SCANDAL! ATTEMPT TO SUBVERT WIKIPEDIA DISCOVERED!

Journalist 3: BABY EATERS STRIKE AGAIN!

Journalist 4: WHO IS WORSE: THOSE THAT EAT BABIES OR THOSE THAT SELL THEM HERBS?

Journalist 5: WIKIPEDIA BOSS IN COMA!

Journalist 6: CONSPIRACY BLOGGER TO JOIN CELEBRITY SURVIVOR ISLAND

Wikipedia reader: Oh, I didn’t know that Microsoft eats babies.

Unscrupulous competior: Excellent, Excellent. Relase the flying monkeys and pass another baby (urp)

Rick Jelliffe

AddThis Social Bookmark Button

From the Official Blog of the Open Document Foundation. {Speaking I suppose to Microsoft:]
I have a counter offer that ISO/IEC might consider; Give us the keys to those legacy binaries and the documentation for the new MSXML InfoSet binaries that first appeared in Microsoft Office EXcel 2007, and we’ll give you international standardization for EOOXML. A fair trade i think, because it will break the monopolist’s grip, level the competitive playing field, and restore competition wherever desktop, server and device systems need to interconnect and exchange information.

Wait a minute. I thought OOXML had so many technical flaws it shouldn’t become a standard! Now you are saying that these alleged flaws can be brushed aside by some other horse trade? Err, doesn’t that mean they are not, in fact, showstoppers to you at all? If Microsoft gives you something else, magically they will become features not bugs? Breathtaking cynicism.

M. David Peterson

AddThis Social Bookmark Button

W3C XQuery 1.0 and XSLT 2.0 Become Standards: Tools to Query, Transform, and Access XML and Relational Data

http://www.w3.org/ — 23 January 2007 — Based on widespread implementation experience and extensive feedback from users and vendors, W3C has published eight new standards in the XML Family to support the ability to query, transform, and access XML data and documents. The primary specifications are XQuery 1.0: An XML Query Language, XSL Transformations (XSLT) 2.0, and XML Path Language (XPath) 2.0; see the full list below.

These new Web Standards will play a significant role in enterprise computing by connecting databases with the Web. XQuery allows data mining of everything from memos and Web service messages to multi-terabyte relational databases. XSLT 2.0 adds significant new functionality to the already widely deployed XSLT 1.0, which enables the transformation and styled presentation of XML documents. Both specifications rely on XPath 2.0, also significantly enriched from its previous version.

W3C’s XSL Working Group and XML Query Working Group, who created these specifications, have addressed thousands of comments from implementers and the interested public to ensure that the specifications meet the needs of diverse communities.

SWEET! Congratulations to each and every one of you on the various working groups who can now officially say “We did it!”

So Microsoft — About that support for XSLT 2.0… (Clock’s tickin’… tick, tick, tick, tick, (boom?) ;-)

Antoine Quint

AddThis Social Bookmark Button

Monday next week, MobileMonday NY will host the first event of what I hope will be a long-lasting Rich Mobile Experiences with SVG series. I have pointed out before that I think initiatives promoting Mobile SVG to smaller companies and eager individuals are still somewhat lacking. This is what I hope will be a way to spread the word throughout the world about Mobile SVG. The point of this series of events is to go to all the major cities around the world where a significant mobile community is established, and have a lineup of speakers, putting forward locals, that will give concrete examples of how they make use of Mobile SVG for live mobile services and applications, but also highlight the next evolutions of this technology. I want first and foremost for these events to give attendees pragmatic information that they will be able to put to use straight away.

So for our New York event next week on Monday January 29th at the Samsung Experience, for which you have to register for free, we have put together the following great lineup including browser makers (Opera), SVG viewer vendors (BitFlash and Ikivo), authoring tool makers (Hyperion, Ikivo, QUALCOMM), developer tool providers (Sun), mobile services creators (Ikivo, Hyperion, BitFlash and Vodafone) and a major carrier (Vodafone). The goal here is to show attendees the diversity of the Mobile SVG offering, and the full lineup is as follows below. Hope to see some of you in New York next week, there will even be some free authoring licenses to win at the end of the event, courtesy of Ikivo and Hyperion!

Rick Jelliffe

AddThis Social Bookmark Button

My previous weblog An interesting offer has generated more vitriol than the last time I suggested that torture wasn’t entirely wonderful. One writer even speaks of 30 pieces of silver. I suppose this casts ODF as Jesus, ISO as Pontius Pilate, me as Judas, and MS as Satan in the guise of an angel of light called Ecma. Are OASIS the apostles?

Now, ODF does have kind of biblical connection, I guess: its universally respected editor Patrick Durusau used to work for the Society of Biblical Literature. But I don’t think the virtue goes out of Patrick into ODF (to compare it to the woman with the issue of blood, one of my favourite passages) to the extent of making 30-pieces of silver an analogy that is anything other than offensive. But that is probably the point.

Another writer described OOXML (I think slightly tongue in cheek) as “horribly evil.” I saw that movie Blood Diamond last night: excellent. Child soldiers being hooked on heroin and being forced to kill is horribly evil. I don’t believe file formats reach that standard. That movie suggests that before buying diamonds, we insist on getting proof that they are not from conflict zones, where they fund real wars.

Rick Jelliffe

AddThis Social Bookmark Button

My first computer was a Mac Plus. Loved it. My second computer was an AT&T Unix PC running System V. Loved it long time. My third computer was a Sparc running Solaris or SunOS. Loved it. At work I run Linux, Open Office, Firefox, Eclipse, etc. No drama. For the last six years I have been running a little company making Java programs. Love Java. I do a little open source development, in particular with the Schematron program (quite like it!), but I have also contributed some code to the Flamingo/Substance project over at JavaDesktop, which provides novel looks and feels and more modern GUI components.

The only time I use Microsoft products is on my laptop at home (a present from my dear old Dad), but I need it to run the SynthEdit program for making virtual synthesizers. Oh, I occasionally also use a ten year old Microsoft C++ compiler, to make some DSP filter code: I have released about 80 filters open source this way. I’m not a Microsoft hater at all, its just that I’ve swum in a different stream. Readers of this blog will know that I have differing views on standards to some Microsoft people at least.

As a regular participant at ISO standards, on and off for more than a decade at my own expense, it has always frustrated me that the big companies would not come to the table and make use of ISO’s facilities. So I am a big fan of the Mass. governments push that governments should use standard formats only. I know some of the ODF people, I had some nice emails with the ODF editor over Christmas for example, and Jon Bosak asked me to join the original ODF initiative at OASIS (I couldn’t due to time, unfortunately.)

So I was a little surprised to receive email a couple of days ago from Microsoft saying they wanted to contract someone independent but friendly (me) for a couple of days to provide more balance on Wikipedia concerning ODF/OOXML. I am hardly the poster boy of Microsoft partisanship! Apparently they are frustrated at the amount of spin from some ODF stakeholders on Wikipedia and blogs.

I think I’ll accept it: FUD enrages me and MS certainly are not hiring me to add any pro-MS FUD, just to correct any errors I see. If anyone sees any examples of incorrect statements on Wikipedia or other similar forums in the next few weeks, please let me know: whether anti-OOXML or anti-ODF. In fact, I already had added some material to Wikipedia several months ago, so it is not something new, so I’ll spend a couple of days mythbusting and adding more information.

Rick Jelliffe

AddThis Social Bookmark Button

The Curse of Schematron seems to have lifted: this curse was that who ever worked upgrading the common XSLT implementation of Schematron 1.n to fit the new ISO standard would suffer from serious illness until they stopped work, at which point the illnesses would get cleared up. The curse first struck me, then Ken Holman who stepped up the plate next, then me again when I took up the bat again. I don’t know what combination of garlic and surgery has caused the unnatural oppression to vanish, but it seems to have worked. Thank God.

Which all an overly-dramatic way of announcing that ISO Schematron validation is not longer vaporware but I have this week put out a beta implementation at Schematron.com. (Err, actually even that is too dramatic: Uche Ogbuji beat me in releasing his version, Amaya.)

Rick Jelliffe

AddThis Social Bookmark Button

Good quote from Kurt Cagle on XML-DEV “Simplicity is good - it makes interoperability far easier. However, simplicity in one place usually comes at the expense of complexity somewhere else.

The trick is to move the complexity to areas that only get programmed once: libraries and languages, I suppose. So that day-to-day work is done using the simple technologies.

Rick Jelliffe

AddThis Social Bookmark Button

Elliotte Rusty Harold has a review over at IBM DeveloperWorks XML in 2006 which is worth even a quick skim, because he identifies very clearly the split between grassroots technologies (good in his view) and pointy-haired-boss-imposed technologies (bad.)

The money quote:
Ten years ago, the grunt programmers and network admins were installing Web servers on surplus PCs reformatted with Linux while the CEOs and CTOs played golf with salespeople and mandated corporate-wide Exchange Server deployments. Those same low-level techies made XML a success by throwing out decades of legacy binary gook and replacing it with off-the-shelf, open source parsers. Today, these people are quietly installing REST, Atom, and RELAX NG.

This is a slightly romantic view, of course. C*Os don’t only spend their time arranging pointy-haired golf deals, but they are also the ones pushing for adoption of Open Standards (though, perhaps the push to Open Standards is as a result of golfing with IBM sales people rather than MS sales people!). And low-level techies are sometimes the most conservative of people; they may play the field early in their careers and strive to find the most fabulous technology to best handle a job, but sooner or later they fall in love, settle down, and don’t want a divorce.

M. David Peterson

AddThis Social Bookmark Button

deFuze.org

I finally released a new version of amplee. I’ve moved from 0.3.x to 0.4.x as there are a couple of modification to the API that were worse the bump. I think this version is much more stable and bug free. Mind you it’s a long way before I can claim is entirely unit tested. But it gets there.

The main modifications since 0.3.6 are:

* Added a loader feature. I realized that setting up the store was a recurrent task and I wondered how to help in this task. I came up with the loader feature. Basically you describe your APP store within a config file (pure INI) and calls the loader method. This will construct entirely your store and returns it to you. This is quite handy and makes the creation of a store much easier.
* Handler API introduced. Amplee does the best it can to provide you with an API an tools to handle the dirty work of APP and let you enhance it by a callback system. In previous version those callbacks were attached to the collection which forced to some not very friendly hacks. Now it’s a matter of creating a class that implements a set of methods which will then be called by amplee at the right moment. This class is what I call a handler and associated with a media-type that the collection accepts.
* The loading and reloading of members is more flexible. In the past you could solely reload all members of a store or none. Now you have more granularity upon what should be loaded into a collection’s cache.
* Many notable bugs have been fixed in the handling of Atom within the members and they should be much more reliable now.
* You can now find a small blog example that shows you how to use amplee.

If you think of upgrading you should note that because of the modification on the callback API you may have some work to do. But this should not be too difficult.

Next step is to update the documentation and move my blog to an APP-driven one.

Hope you will enjoy this release.

* Homepage
* Download

I’ve been working a bit with Sylvain over the past couple of days, attempting to both learn about, and begin implementing various AtomFS systems via Amplee, and I have to admit that I’m pretty impressed with how much time, effort, and thought has gone into this project. While generally speaking, Sylvain is passionate about pretty much everything he does, I have to admit that if I were to point at one thing and say “that’s his baby, right there!” and not have it be in reference to one of his his one and only lady friend (phew, that was a close one, huh Sylvain?! ;), Amplee would be that baby, without any question what-so-ever!

KILLER STUFF, without a doubt! :D

Thanks, Sylvain!

M. David Peterson

AddThis Social Bookmark Button

DISCLAIMER: The title? Uh, yeah… sorry ’bout that, but you know me… And this was *WAY TOO GOOD* of an opportunity to just let slide with anything less than the very best I could come up with at 7:45 A.M. MST ;)

So ’twas mid-stream through an email conversation two days ago regarding polishing up the final bits of one of the projects I’d mentioned a while back, when a response came in from Professor Lessig in which I assumed was in regards to some changes I had made to this same mentioned project. Instead, it was something more along the lines of,

“Uh… Wife. Labor. Will pick this up later.”

(not a direct quote, and I’m pretty sure what was said wasn’t in rhymed verse, but the general idea is there, none-the-less ;)

Lawrence Lessig

Willem got a brother yesterday. Mother is amazing. Father is amazed.

Congratulations to each one of you at this exciting moment in time! :D

M. David Peterson

AddThis Social Bookmark Button

via Sylvain (thanks, Sylvain!)

Hit Chaser � Blog Archive � History in the making: Unsigned band reaches UK top 40

This is a fabulous piece of news and a great way to start the week: NME reports that for the first time in history, an unsigned band reaches the UK top 40 chart! This miraculous event is due to a decision made earlier this year to begin and compile online mp3 sales figures (online downloads) into the chart. Soon enough - mark my words - the UK top 40 will be dominated by unsigned indie bands. Record labels will have to work much harder to compete. Everyone benefits. So get used to hearing the name Koopa. I have to admit that this sort of pop punk (I would call it commercial punk, but these guys don’t have a label) isn’t exactly my cup of tea, but right now, Koopa are my champions!

February 3rd, 1959 was a sad day in the history of music.

Something tells me that January 14th, 2007** won’t be thought of in quite the same way. ;)

Koopa-31-Top40-UK.png

SWEET!!! :D

** This currently links to the “The Official UK Singles Chart : 14.01.2007″, starting at #ThirtyOne, which is currently held by Koopa — an unsigned band from the UK. However, this is the permalink for the chart itself, not the actually historical archive for this week. I am not immediately finding the historical charts, which would obviously be the proper place to link to. Anybody know where I can find the BBC Top40 historical archives?

Kurt Cagle

AddThis Social Bookmark Button

A couple of months ago, I began the first steps in launching an XForms industry portal, but personal events - my wife’s illness and work related issues - intervened. Both having been resolved, it seems like a good time to revitalize the site and push to do what I’d hoped to do then - build a central clearinghouse and community forum for the XForms community. To that end, I recently made the following announcement on the XForms.org site:

M. David Peterson

AddThis Social Bookmark Button

Update: Some keen words-of-wisdom from “critic“,

It’s still an immutable law of economics that high margins can only be supported by monopolies. As the monopolies erode (as they are now doing because of lowered economic barriers to entry in everything from recording and post-production to distribution), consumers have more choice, and they don’t choose restrictions without benefits.

Nicely stated!

[Original Post]

Close to the end of the third episode of The Matrix, Agent Smith, after “defeating” Neo, suddenly realizes that “this isn’t how it ends.” to then realize that what he has actually done is defeated himself.

Okay, so there’s obviously more to the story than this, but if there are lessons to be learned by this exchange, at least one of them is this,

You don’t *HAVE* to defeat evil. Evil will defeat itself.

That’s not to say that we shouldn’t continue to fight all of that in which is evil. Without a fight, “Evil” transforms itself into the status quo, or, in other words, without a fight, what was once considered evil becomes so ingrained into society that it is no longer seen as being evil, and instead, normal.

Dare Obasanjo aka Carnage4Life - Article in NY Times on Why DRM is Evil

Rick Jelliffe

AddThis Social Bookmark Button

A speech from Jon Bosak is always scintillating. This year he gave the closing keynote at the XML 2006 conference, to commemorate the 10th anniversary of when Jon present XML initially at the same conference; this first half of the talk looks back at the development and history of XML, the second half fills in the gap concerning recent developments of UBL and the current state of play. Most heartening for me is that the emotional nub of the second part of Jon’s talk is actually a challenge to, or chastisement of, software vendors for not supporting Schematron.

Jon seems to feel his experience with Schematron is emblematic of a broader unresponsiveness by software vendors: they are interested in getting ROI on their platform not on enabling users to solve their problems. And not listening to users.

M. David Peterson

AddThis Social Bookmark Button

So my most favorite .NET OSS XMPP library recently released v0.92, and to add to the excitement, via a recent follow-up post to a thread Sylvain started a few weeks back on the LLUP development list, we discover,

M. David Peterson

AddThis Social Bookmark Button

You know, at first I was pretty skeptical about your overall intentions. But I am truly beginning to believe that beyond the all mighty dollar, you truly do have a passion for making the world of computing a better place.

That said, I still think you need to really put some consideration into providing a more human interface into your customer service department, and it would be nice if you would follow the lead of Microsoft, Sun, IBM, and others who have embraced the notion of employee blogging. But overall, I’d say you’re doing pretty well being all of 7+years old, and all. So for what its worth,

Thanks for being a cool company, and building cool products, and *ESPECIALLY* for your efforts in the Open Source Software space. Your efforts are truly admirable: Google Summer of Code, Google Code and all of the loveliness that it provides. Truly remarkable stuff!

Take, for example,

Keith Fahlgren

AddThis Social Bookmark Button

Jon Bosak’s closing keynote from XML Conference 2006 has just been posted. It’s worth reading for anyone interested in XML history (or XML for that matter). It’s also worth noting as a member of that rare breed of documents that manages to combine the phrases “very famous seventeenth-century poem”, “ingrained in SGML consciousness”, “the Kantian distinction between noumena and phenomena”, and “DSSSL.”

via: David Megginson.

Hari K. Gottipati

AddThis Social Bookmark Button

Much rumored Apple iPhone was finally unveiled by Steve Jobs at MacWorld yesterday. It impressed lot of people and Wall street too. But slowly the buzz is fading out and people(including me) are talking about the disadvantages of it. Since their announcement, I have been talking to my friend Kiran Mudiam on the pros and cons of the iPhone. Here are the excerpts from our conversation:

First lets talk about advantages:
* Seamless integration of a PDA,Phone and Internet device.
* Gives the user seamless integration for all the content they have already acquired from the iTunes store.
* They own all the pieces of the puzzle now. Server, PC/Mac, handheld device and DRM
* 720p HD Quality TV in your palm.
* Perhaps will make a comeback of the so much hated “touch screen phone” back to the US Market.
* Perhaps provide good and healthy competition to big 4 phone manufacturers.

Here are disadvantages that I can see in iPhone:

Its too expensive
I don’t think, $599 with 2 year contract is a cheaper price. I guess the carrier is baring at least $200 in the cost of the iPhone, so if you want to get the phone without the carrier(initially it may not be possible) you will end up paying around $800, which is as expensive as laptop. Ofcourse this is going to be initial price and it will come down once it reaches the mass(if it can). I don’t think its the price for mass. Though it provides iPod+Phone+Internet communicator, the mass is not going to use all the features that iPhone has, hence mass cannot afford $599 for the features that they actually use.

For enterprise people, but missing enterprise functionality
Looking at the price and the Internet communicator features, they are targeting only the enterprise people. But it doesn’t provide connectivity to enterprise data. Majority of the enterprises uses either Microsoft Exchange or Lotus notes and iPhone cannot be used with these. It provides Yahoo IMAP push, its great. But I don’t think enterprise people are going to store their data on Yahoo servers. So for them Yahoo IMAP push is useless.

Full flexed Web browser support, not really
Based on the presentation, it doesn’t seem to be the regular browser. If it is like a regular desktop browser, then it should support all the features like audio, video etc. May be it is. But Jobs just demonstrated only text/image based Newyork Times site. If it is a regular browser, then Goggle maps should work in it. But why he demonstrated separate Google maps application? Some may argue that its a separate app optimized for iPhone, so that people can call the phone numbers from Google local results directly. May be, they are right! Lets assume that it supports all feature like desktop browsers, do you think we are going to really use Web2.0 apps on iPhone through Cingular EDGE network(since its not 3G complaint), which provides the data speed ranging from 80 kbps to 110 kbps? Nope!. So the only option in this case is, using it via WiFi.

Exclusive for Cingular, what about the others?
They announced the exclusive partnership with Cingular until 2008. That means no body else can carry iPhone until 2008 in US. How many of Cingular 58 million users will buy this phone and what about the users like me who like the iPhone but can’t switch from the carrier because of the contracts and other things?

Other disadvantages
Already people(including O’Reilly mac devcenter bloggers) talking about these, some of them are:
* No 3G, it works on Cingular EDGE platform, not on Cingular 3G network HSDPA.
* No OTA.
* Cannot isntall third party software.
* No expandable memory. I think 8GB is enough memory, but for iPod video lovers, its a disadvantage.
* No removable battery. If the battery is broken, you send the phone to Apple instead of they sending you the battery. So no problem. Its definitely a disadvantage for the people who use a phone lot and rely on the extra battery. But how many people are using extra batteries for their mobile phones? Its very small amount. So I don’t think its a big deal.

What do you think? I know most of you disagree with me. If you are, please prove me that I am wrong. I am more happy to hear that I am wrong, cause I love this phone.

Rick Jelliffe

AddThis Social Bookmark Button

The simple overlapping Venn-like diagrams that people use to express the relative power of schema languages can mislead as well as inform. Instead, here’s a kind of diagram with shaded edges: light grey represent capabilities that are possible but inconvenient, and darker grey represent capabilities that are possible but only if you organize your schema in a certain way. XSD extensibility is an example of the darker grey capability: unless you organize your (base) schemas properly, you may easily find extensibility is not possible.

Venn diagram of power and capabilities of schema languages for XML, with capabilities only available in some arrangements shaded

Rick Jelliffe

AddThis Social Bookmark Button

Ken Holman sent me copy of the latest draft of the OASIS/UBL Methodology for Code-list and Value Validation, which is a pretty good use of Schematron. It looks like a neat and workable solution to a problem that is somewhere between baroque and a hard place using XSD.

Imagine you are a trading company: you have documents which various fields for countries: countries you can send from, countries you can send to, countries the US won’t allow you to export to, countries you can use as hubs, countries with regional offices, etc. And you also have lots of other documents with similar or different sets of countries. And countries are only the start: you also have product codes where different fields can have different sets of codes, and so on. And this may vary according to where the document came from (the Libyan branch office may have different rules from the Alaskan branch office). And, of course, the values of codes may have interdependencies, such as “the source must be different from the destination.”

So lots of uses of a standard vocabulary, but lots of local and changing subsets that are much closer to “business rules” than “datatypes”.

If you used XML Schemas, you could theoretically derive by restriction all the different subset codes, then use “redefine” on every top-level element that used the subsets. (You’d have to do this redefine on base types where possible, so that subsequent derived types would inherit the restriction, perhaps, except then you’d have to check that any subsequent derived types that themselves define restrictions are indeed subsets. Have a breakdown and a good cup of tea.)

With the Schematron approach, you select the items from the code list you want, and some magic tool provided by the methodology generates the Schematron code, which just uses simple XPaths (i.e. what processing software probably uses.) You could still use an XML Schema, just to constrain the lexical space very broadly, but the Schematron constraints would check the values against the list.

M. David Peterson

AddThis Social Bookmark Button

Update: Ric (who links to JSON.com, which seems to be a new blog about JSON-related items… SUBSCRIBED!) provides a nice summary in a comment below,

XML is
1) DOCUMENT centric
2) Well known with lots of tools
3) FAT (SOAP is)

JSON is
1) SERIALIZATION of a structure
2) Less known and not so many tools
3) Thin (No client side libraries needed)

JSON is also a form of remote scripting (no XmlHttp request)

Xml is much more mature: quite a LOT of thought on namespaces, unicode, schemas, external file inclusions, and binary attachments (I am working on Base64 encoding in JSON, so that should be not an issue.)

Sounds about right to me. Thanks, Ric!

[Original Post]
… and then it hit me…

ongoing � JSON and XML

The Arguments Are Over � There used to be an argument about whether platform-neutral, language-neutral data formats were important, or whether distributed objects were the right answer. That’s over: HTML, XML, JSON. �

There used to be people who argued that network interchange formats shouldn’t be text-based, but use binary where possible, for efficiency. That’s over: HTML, XML, JSON.

When SOAP is overkill, is JSON the lightweight answer? Seems to me it’s at very least a possibility, and if I were an Anti-SOAP kind of guy (which I’m not, by-the-way… SOAP has its place. If you need it, use it, if you don’t, don’t.) the “war” I would be waging would not be JSON vs. XML, and instead JSON vs. SOAP.

Think of it this way,

JSON: Java Script Object Notation

SOAP: Simple Object Access Protocol

Now before I get myself in any trouble, I’m not advocating that a war be waged against SOAP (please see note from above regarding my feelings on this topic, as well as this three part article on my personal blog for more info.) What I am suggesting, however, is that if you are going to wage a war of any type, shouldn’t you at very least be comparing apples to apples?

Just food for thought…

M. David Peterson

AddThis Social Bookmark Button

You *ROCK*!!!

Lawrence Lessig

Details to follow later today, but when you add our offline campaign to the online campaign (and assuming we solidify some pledges made in the final week), we will have bested our goal of $300,000 by some $200,000 — raising over $500,000 in total. Stay tuned for some interesting surprises (and feel free to give some more in the meantime.)

Hari K. Gottipati

AddThis Social Bookmark Button

First, Happy 2007 to all.

For GMail team, 2007 started with an exploit and they fixed it immediately. Googlified first discovered this serious exploit in GMail which lets your contact list to be stolen.

Using a form of cross scripting, it becomes easy to steal a GMail user’s contact list if they visit a certain type of website. The only condition is you have to be logged in to GMail at the time of the attack. GMail is setup to store your contact list in javascript files, which is the core problem. If you log into your GMail account and visiting a malicious website can steal your contact list, and all their details.

You can find the explanation of the flaw here.

Basically, Google docs has a script that run a callback function, passing it your contact list as an object. The script presumably checks a cookie to ensure you are logged into a Google account before handing over the list.

Unfortunately, it doesn’t check what page is making the request. So, if you are logged in on window 1, window 2 (an evil site) can make the function call and get the contact list as an object. Since you are logged in somewhere, your cookie is valid and the request goes through.

Also, if you check the object that is returned, you see fields for the contact’s name, email and “affinity”. Presumably, a higher affinity means a more-emailed contact, so it may be possible to know the relative importance of your contacts.

Apparently, this is a CSRF/XSRF(Cross Site Request Forgery) atatck.

CSRF is a relatively unknown type of attack on a website, because it can be tricky to pull off. But this obscurity means that far more sites are vulnerable. In addition CSRF has all the potential of XSS so it is a powerful foe.

Joe Walker@DWR has written a detailed explanation on CSRF attacks and how to protect your applications from such attacks.

M. David Peterson

AddThis Social Bookmark Button

It was January 1st 2006 that I made the initial announcement regarding the nuXleus project. Over the last three months I have been on both a personal and professional push to release the initial public bits before the clock struck midnight on January 1st, 2007.

While there is still plenty of work to do before things are ready for PrimeTime, things are FINALLY in a state where I feel comfortable pushing out a preview release, and as you will see by the time-stamp on this entry, not a moment too soon!

In fact, while I am going to push the publish button here in a second to ensure I make the 11:59 cut-off, the bits themselves are still being uploaded, and if the estimated time of completion is even close to how long it actually takes, they won’t be ready for download until a few minutes after midnight. None-the-less… I’m pushing play, and will update this post when things are ready to go.

Back in a bit :)

Update: The first of several planned formats is now accessible [Download Size: ~54megs]. This is a raw hard disk image that can be written to the desired media using `dd` and then launched inside of your favorite virtualization engine.

More details to follow, including a complete feature list of all that is available [You might be shocked to discover just how much power and functionality can fit inside of 54megs of compressed hard disk space. In fact, currently things are a bit bloated — there is still more that can be stripped out, though to do so means extensive testing to ensure that nothing breaks, so for the time being somewhere around 50 megs will be the size of the various file formats.]

Update: A bz2 archive of the root file system can now be accessed [Download Size: ~47megs].

Update: A QEMU-ready, QCOW-optimized image file which will run equally well on both Windows, GNU/Linux variants, and Mac OSX (via the Q: project) is now accessible.

At the moment, I am putting the finishing touches on a batch file for Windows installations that I am wrapping together into a package download that includes QEMU and a script for accessing, downloading, installing, and starting the KQEMU accelerator module. It then creates a system overlay (which leaves the original image untouched) and starts up QEMU with a second data.img file that is mounted as your /home directory (which allows nicely for data portability and ease of backup.) It also redirects requests to port 80 of http://localhost to the onboard instance of Apache/XSP (via mod_mono) as well as requests for the standard BitTorrent ports (yes, there’s built in support for BitTorrent :) All other web requests (e.g. http://www.oreillynet.com/ ) go through the standard route (in other words, this will only catch and redirect requests to http://localhost), whatever that might be.

Just putting the finishing touches on this and will update when complete, at which point I will go into greater depth as to what all is a part of this release and how you can start to use nuXleus as both a personal and application messaging tool as well as a way of super charging your web browsing experience like none-other.

Back in a bit…

Update: As promised.

Directions,

Rick Jelliffe

AddThis Social Bookmark Button

First, Happy New Year to friends and readers!

David Orchard has an article up at XML.COM entitled A Theory of Compatible Versions. It looks at versioning of XML Schemas as a sets-and-subsets issue. The punchline is Languages can be compatibly versioned successfully if the first version of a language defines an Accept Text Set that is a superset of the Defined Text Set, as well as a substitution rule for transforming texts in the Accept Text Set into the Defined Text Set.

And the more that partial understanding is used, the more changes will be compatible rather than incompatible. I agree with the idea of partial understandings, but the substitution rules seem to me to be, in part or in whole, ways of reconciling artificial constraints imposed by the limited expressive power of grammars, rather than necessarily being real. When you only have a hammer, every thumb looks like a sore thumb.

It is an interesting example of the kind of hoops that you have to jump through to make grammars work outside the most trivial examples. Grammars encourage or perhaps force you to build in decisions about positions that are not sourced from any business requirements. (There is a theory that this is a good thing, because every time you force a decision on position you may save a bit for compressibility, believe it or not; but that is slim pickings.)

Advertisement