According to the current version of the Chris Sells XML DevCon page (don't bother bookmarking it, Chris Sells doesn't believe in permalinks so all the content on that page is transient) I noticed that Chris Anderson is presenting the following

Developers Hate XML

Chris Anderson

While everyone is currently infatuated with XML, developers are constantly doing battle with trying to rationalize and leverage XML in their applications. Ill talk about having to balance correct XML-isms vs. usability in XAML, about the preponderance of XML reader/writer/DOM/serialization APIs, and about how all of this throws you into a horrible programming experience of loosely typed runtime errors. This reveals XML for what it is a data encoding. XML is the ASCII text file of the 2000s. While web services are often called "XML Web Services," the reality is that every web service API abstracts the developer from the XML view.

Nothing says vote of confidence like when the chief architects of one of teams you work closely with says your technology sucks. :)

Seriously though, I am curious as to what his presentation actually will be about. Reading the abstract, it seems like it is another iteration of a data-centric user of XML coming to the realization that for their scenarios XML is just CSV on steroids. People's behavior when they realize this usually follows a pattern similar to the five stages of grief. First there is denial, this usually takes the form of an initial disbelief that after all the hype they've heard about XML it isn't working out fantastically for them. Then there is bargaining, this usually manifests itself as attempts to not use XML but still use it. Often you here phrases like "binary XML", "XML subset" or "XML profile" at this point. Then there is anger at XML for being more complex and verbose than they need. At this point you get to either read a rant-filled email, blog post, conference paper or in this case conference presentation about how badly the technology is suited for its purpose. Then there is either despair or acceptance. One doesn't follow the other. If the next stage is despair in this case the person ends up not using XML to solve that particular problem. On the other hand if it is acceptance, XML is still used but in some cases it is in one of the forms that were mentioned in the bargaining stage such as a binary representation of an XML stream or uing some subset of XML.

Hopefully Chris Anderson will post his slides online.


 

Categories: XML

Anders Norås has an interesting blog entry entitled A JavaScript XmlSerializer where he shows how to build a class equivalent to the .NET Framework's System.Xml.Serialization.XmlSerializer class in Javascript. He writes

In ASP.NET 2.0 it is possible to invoke server events from client side script without posting back the page. This is supported through a new mechanism called script callbacks. For more information on this technology, read Dino Espositio’s excellent “Cutting Edge” article on the subject.

Mostly out-of-band calls have been used with fairly simple return values such as strings and numerals. The “advanced” uses have typically been passing arrays as comma separated lists. This has greatly limited the applicability of the technology and created a wide functionality gap between the object oriented programming environment of the server world and the more primitive environment in the browser...

A JavaScript XmlSerializer

One of the most celebrated classes in the .NET framework is the XmlSerializer class. This class enables you to serialize objects into XML documents and deserialize XML documents into objects. As we all know, XML documents are represented as strings, so it is simple to pass an XML document as either a parameter or a return value on an out-of-band call.

By implementing a client side XML based serialization and deserialization it would be possible to pass an object from a client script to a server method and vice versa. There are of course huge differences between the powerful .NET platform and the simple JavaScript language, but these have little impact on a client to server communications channel as it would only make sense to pass data transfer objects.

Definitely an interesting bit of code. What is also very interesting is that he has a previous article entitled Declarative JavaScript programming where he implements metadata annotations (akin to .NET Framework attributes) for Javascript. Excellent stuff.


 

One important lesson I've learned about designing software is that sometimes it pays to smother one's perfectionist engineer instincts and be less ambitious about the problems one is trying to solve. Put more succintly, a technology doesn't have to solve every problem just enough problems to be useful. Two examples come to mind which hammered this home to me; Tim Berners-Lee's World Wide Web and collaborative filtering which sites like Amazon use.

  1. The World Wide Web: Almost every history of the World Wide Web you find online mentions how Tim Berners-Lee was inspired by Ted Nelson's Xanadu. The current Web is a pale imitation of the what Ted Nelson described over forty years ago of what a rich hypertext system should be capable of doing. However you're reading these words of mine over Tim Berners-Lee's Web not Ted Nelson's. Why is this?

    If you read the descriptions of the Xandadu model you'll notice it has certain lofty goals. Some of these include the ability to create bi-directional links, links that do not break, and built-in version management. To me it doesn't seem feasible to implement all these features without ending up building a closed system. It seems Tim Berners-Lee came to a similar conclusion and greatly simplified Ted Nelson's dream thus making it feasible to implement and adopt on a global scale. Tim Berners-Lee's Web punts on all the hard problems. How does the system ensure that documents once placed on the Web are always retrievable? It doesn't. Instead you get 404 pages and broken links. How does the Web ensure that I can find all the pages that link to another page? It doesn't. Does the Web enable me to view old versions of a Web page and compare revisions of it side by side? Nope.

    Despite these limitations Tim Berners-Lee's Web sparked a global information revolution. Even more interestingly over time various services have shown up online that have attempted to add the missing functionality of the Web such as The Internet Archive, Technorati and the Google Cache.

  2. Collaborative Filtering on Amazon: The first place I ever bought CDs online was CDNow.com (now owned by Amazon). One feature of the site that blew my mind was the fact the ability to get a list of recommended CDs to buy based on your purchase history and the ratings you gave various albums. The suggestions were always quite accurate and many times it suggested CDs I already owned and liked a lot.

    This feature always seemed like magic to me. I imagined how difficult it must have been to come up with a categorization and ranking systems for music CDs that could accurately match people up with music based on their tastes. It wasn't until Amazon debuted this feature that I realize the magic algorithms were simply 'people who purchased X aldo purchased Y'. My magic algorithms were just a bunch of not very interesting SQL queries.  

    There are limitations to this approach ,you need a large enough user base and enough purchases of certain albums to make them statistically significant, but the system works for the most part.

Every once in a while I am part of endless discussions about how we need to complicate a technology to satisfy every use case when in truth we don't have to solve every problem. Edge cases should not dictate a software systems design but too often they do.  


 

Categories: Technology

August 12, 2004
@ 03:27 AM

From the post entitled XP Lite. Seriously... they cannot be serious....  on Gerry Steele's weblog

BBC News Xp Lite
Forbes.com XP Lite System
From the horse's mouth

Perhaps I'm a little late on picking this up, but at our last weekly meeting a colleague mentioned "XP Lite". My immediate reaction was: "Oh Dear, what have they schemed up now?!" Well, I sound like a Microsoft cynic I know, but I'd love to convince you that this is not because of a hate of Microsoft... I'm just a technology enthusiast who feels insulted an pained by pretty much every executive descision the company makes. Which I feel is a shame. A lot of smart people work there, but the mandate of their work is to create products which tie people to more of their expensive (in some way or other) products. Thus work that could go towards the creation of better software for everyone and for the benefit of all customers is lost. The recent "truce" between Sun & MS has bred a new submission to a standards body on web delivery services I cannot help but fear is just a token gesture to repreave the closed-shop image of Microsoft.

Anyway. XP Lite. Now I feared this would be bad. But no. It is much worse than i thought. A cut down version of XP aimed at the Asian market where Linux and ripped off copies of Windows abound. what's different I hear you ask? Well here's a few:

  • Cut down Networking capabilities
  • You won't be allowed To switch to higher resolutions (800x600 maximum!)
  • You may only run three programs at once, with each program opening only three windows at a time
  • No multiple user accounts

On the up side you get a locale specific patriotic desktop background included. Super duper eh? At the end of the press release is a list of positive quotes from distinguished Asian representatives (PhDs first! mortals, kids get in queue) who seems to have very little clue about anything to do with technology (indicated by their positive comments)

Perhaps the clearest indication that Microsoft are worried about the superior alternative open & free Linux products thus far. But unfortunately they will convince OEMs to ship this alleged software with the hardware (the OEM route is the key to printing money if the past is anything to go by). I don't see why Microsoft don't just go the whole hog and force hardware manufacturers to insert a coin slot on every box and have a trained monkey vist us each and collect the money (we would be so distracted by the cute ickle monkey visiting to notice the daylight robbery)

I could write all day about why XP Lite or XP starter or whatever it's called is bad for you, me, your children, the economy, free speech and liberty, but unlike Microsoft I'm hoping that your smart enough to know why this software is bad and why Microsoft should feel ashamed for their manipulation of the markets. I'm off to go and find my skin which has crawled off somewhere else in anger. I hope it hasn't hurt anyone

If you are unfamiliar with the phrase "two minute hate", see the Newspeak Dictionary


 

August 11, 2004
@ 06:26 PM

Working at a software company (i.e. around geeks with disposable income) and living in the yuppie part of downtown (i.e. around yuppies with disposable income) I see a lot of people driving around in expensive cars that have a popular brand name but not the quality associated with that brand. Such people would have gotten more value for their money by buying equivalently priced cars from other manufacturers but decided that riding around in a big name brand was better. Examples of such vehicles include the

  1. Jaguar X-Type

  2. Hummer H2

Some others come to mind but I won't mention so as not to risk offending people I know. I always shake my head when I see people driving around in these cars.


 

Categories: Ramblings

I have been remiss about talking about the ongoing and upcoming content on the MSDN XML Developer Center. The most interesting recent article has been Priya's Generating XML Documents from XML Schemas. In this article she provides a tool that allows you to generate sample documents that validate against a particular schema. This is very useful if you have a schema document but would like to see what a valid instance of that schema looks like. This is one of those tools I'd love to see added to the XML editor in Visual Studio. The one caveat is that her tool requires .NET Framework v2.0 beta 1 or higher to run.

The next couple of articles we have scheduled include an overview of how to use EXSLT to make one more productive as an XSLT developer by Oleg Tkachenko, an implementation of XPathNavigator over the ADO.NET DataSet by Arpan Desai, and an introduction Daniel Cazzulino's implementation of Schematron for the .NET Framework by myself.

I'm currently working on the content plan for the next quarter of the year and would like to know what articles people have liked and would like to see in the future. Also if you are interested in writing for MSDN about XML technologies on Microsoft platfortms go ahead and send me an email at my work address.


 

Categories: XML

According to the RSS Bandit Product Roadmap there should is a service pack for the current version of RSS Bandit scheduled for release at the end of the summer. The primary issues that  will be fixed by the service pack are

  1. There is a memory corruption bug that manifests itself by RSS Bandit crashing with the following error message, StartMainGui() exiting main event loop on exception.
  2. When RSS Bandit is configured to use proxy settings from Internet Explorer sometimes downloading certain feeds fails with the error (407) Proxy authentication required even though one can access these feeds directly using a web browser with no problem

There are also a number of smaller bug fixes such as better mouse wheel support and no longer producing duplicate entries when the title of an entry changes in the RSS feed. If any of these problems have affected you then download RssBandit1.2.0.114SP1_RC1.zip and give us feedback on whether these issues have been fixed or not.

I've started working on the Wolverine release more. The first thing I'll be implementing is NNTP support. So far I've figured out how to list newsgroups on a server, fetch posts, post responses aand the like. One of the questions I'm interested in users answering is whether newsgroups should be put in a seperate category from feeds in the tree view or whether we shouldn't differentiate between newsgroups and feeds in the tree view so one could have a category that contained both feeds and news groups. I'm also interested in finding public NNTP servers so I don't end up coding against just the pecularities of the news.microsoft.com server.


 

Categories: RSS Bandit

August 4, 2004
@ 04:13 PM

I've always been under the impression that there were SEC rules that prevented senior executives of companies from making declarations that could affect the share price of their companies or their competitors without certain disclaimers in place. So I was very surprised to see Jonathan Schwartz's post entitled IBM is in a Pickle (Again) which seemed to imply that IBM had some strategic weaknesses that could be exploited by some entity acquiring Novell. This posting in combination with some statements Schwartz made to ZDNet fueled a bunch of speculation online including a jump in Novell's stock price.

Anyone who looks at his statements critically should realize they are divorced from reality. I was going to write up some criticisms of his arguments but others have beaten me to the punch. Read the Business Week article Don't Quote My Blog on That . The article is subtitled 

A Web musing by Sun's president fueled rumors of a possible Novell acquisition. Nice idea, but no panacea for his struggling outfit.

That summarizes the situation nicely. Jonathan Schwartz's post seems like a lot of wishful thinking as opposed to musings rooted in reality. I also like the verbal upraiding that James Robertson provided to Schwartz's ideas in his post Still Whistling. I was going to post an excerpt but his post is worth reading in its entirety. It is definitely amusing to see Sun scramble to stay relevant as they realize that their hard ware is overpriced and they can't figure out how to make money from Java's popularity. If not for the billions they have stashed this would definitely be a company in its death throes.


 

Categories: Ramblings

I was reading USA Today at lunch today and noticed that for the first time in decades a presidential candidate hasn't received a rise in the polls after a national convention. In fact, in some polls Kerry is actually doing worse now than he was 2 weeks ago. I flipped to the back of the magazine to read the weather section and something else caught my eye. Besides listing the temperature and possibility of rain the USA Today weather section also displays the Air Quality Index (AQI) of 36 cities. I noticed that only 2 cities had a rating of unhealthy, Houston and Dallas-Forth Worth. The description of the unhealthy rating advised avoiding strenous excercise in the open air and the like. Then I thought to myself, “Wasn't GW the governor of Texas just a few years ago?”.

Part of me is confused and dismayed by the fact that here's a president whose administration started a war under false pretences that has left thousands dead, under whom severe disrespect to the rule of law and the US constitution have been perpetrated,  and significant leeway has been given to corporations to abuse the environment and the American  people but yet it looks like he has a good chance of being re-elected. Then I talk to a couple of people who plan to vote for Bush this year and things become clearer. Like Doug Purdy mentions in his post U.S. Presidential Election II , many people in my field who make as much as I do care more about tax breaks and the like than any of the things Bush has done wrong or failed to do correctly. I even have a friend who's going to vote for Bush because he doesn't like Kerry's stance on gun control.

I'm curious about the various reasons people have for deciding to vote for Bush instead of Kerry in the coming election. I've listed two reasons above but imagine there are lots more that I can't see. Help me see things from your perspective.


 

Categories: Ramblings

August 3, 2004
@ 08:17 AM

I was reading Hugh Macleod's post on How To Be Creative which currently has 13 items on the list and was struck by some of what he wrote on point number 7, don't quit your day job, where he explains the The Sex & Cash theory

7. Keep your day job.

I’m not just saying that for the usual reason i.e. because I think your idea will fail. I’m saying it because to suddenly quit one’s job in a big ol' creative drama-queen moment is always, always, always in direct conflict with what I call "The Sex & Cash Theory".

THE SEX & CASH THEORY: "The creative person basically has two kinds of jobs: One is the sexy, creative kind. Second is the kind that pays the bills. Sometimes the task in hand covers both bases, but not often. This tense duality will always play center stage. It will never be transcended."
...
A good example is Phil, a NY photographer friend of mine. He does really wild stuff for the indie magazines- it pays nothing, but it allows him to build his portfolio. Then he'll go off and shoot some catalogues for a while. Nothing too exciting, but it pays the bills.
...
Or geeks. You spend you weekdays writing code for a faceless corporation ("Cash"), then you spend your evening and weekends writing anarchic, weird computer games to amuse your techie friends with ("Sex")
...
I'm thinking about the young writer who has to wait tables to pay the bills, in spite of her writing appearing in all the cool and hip magazines.... who dreams of one day of not having her life divided so harshly. Well, over time the 'harshly' bit might go away, but not the 'divided'.

"This tense duality will always play center stage. It will never be transcended." As soon as you accept this, I mean really accept this, for some reason your career starts moving ahead faster. I don't know why this happens. It's the people who refuse to cleave their lives this way- who just want to start Day One by quitting their current crappy day job and moving straight on over to best-selling author... Well, they never make it.

That blog post sums up a lot of my thinking recently. Designing the classes in System.Xml is a decent day job but I only really light up in front of a computer when I'm fixing bugs or adding features in RSS Bandit. One pays the bills, the other allows me to express myself without artificial limitation in my medium of choice.

If you have time you should read Hugh's entire list, its actually quite insightful.


 

Categories: Ramblings