For my last post via w::bloggar I used the configuration settings described in the dasBlog documentation on the Blogger API. Weirdly enough, my post showed up without a title. Torsten Rendelmann comes to the rescue with the alternate instructions for posting to your dasBlog weblog with w::bloggar that supports titles and categories. Hope this works.

Categories: Das Blog

I'm in the process of tweaking the RSS Bandit installer and implementing a stop gap measure for supporting posting to one's blog from RSS Bandit while waiting for a SOAP version of the ATOM API. The next release of RSS Bandit will ship with a plugin for posting about a particular blog entry to your via w.bloggar plugin for SharpReader

RSS Bandit already supports Luke's plugin but most people don't know about it so I decided to implement a similar plugin [as opposed to redistributing Luke's since I didn't see anything in the license allowing free redistribution] and add during the install process. PS: This is my first post from w::bloggar. Hope it works.


Categories: RSS Bandit

January 16, 2004
@ 02:37 AM

From Yahoo! News we learn Outsourcing Contributes To IT Salaries' Downward Spiral  

Overall, the premium paid for IT workers with specific skills was 23 percent lower in 2003 than in 2001, and the pay for certification in particular skills dropped 11 percent, Foote Partners LLC said.
In a yearlong study of 400 Fortune 1000 companies, researchers found that by 2006, the organizations expected from 35 percent to 45 percent of their current full-time IT jobs to go to workers overseas, David Foote, president and chief research officer for Foote Partners, said.

"That showed a definite declining onshore workforce--fewer jobs for IT people in this country," Foote said.

Perhaps it is time to go back to school and get started on my backup plan of being lawyer specializing in intellectual property law.


Categories: Ramblings

January 15, 2004
@ 08:24 AM

A Newsgator press release from last week reads

Subscription Synchronization

Users who subscribe to NewsGator Online Services can now synchronize their subscriptions across multiple machines. This is an industry first - NewsGator 2.0 for Outlook and NewsGator Online Services are the first commercially available tools to provide this capability in such a flexible manner. This sophisticated system ensures that subscriptions follow users wherever they go, users never have to read the same content twice (unless they choose to), and even supports multiple subscription lists so users can have separate, but overlapping, subscription lists at home and at the office.

Interesting. Synchronizing subscriptions for a news reader across multiple machines doesn't strike me as unprecedented functionality that Newsgator pioneered let alone an industry first. The first pass I've seen at doing this in public was Dave Winer's subscription harmonizer which seemed more of a prototype than an actual product expected to be used by regular users. I implemented and shipped the ability to synchronize subscriptions across multiple machines with RSS Bandit about 2 months ago. As for providing an aggregator that supports this feature and a commercial site that would host feeds synchronization information I believe Shrook has Newsgator beat by about a month if the website is to be believed (I don't have a Mac to test whether it actually works as advertised).

I find it unfortunate that it seems that we are headed for a world where multiple proprietary solutions and non-interoperable solutions exist for providing basic functionality that uses take for granted when it comes to other technologies like email. This was the impetus for starting work on Synchronization of Information Aggregators using Markup (SIAM) . Unfortunately between my day job, the girlfriend and trying to get another release of RSS Bandit out the door I haven't had time to brush up the spec and actually work on an implementation. It'll be a few weeks before I can truly focus on SIAM, hopefully it'll be worth waiting for and it'll gain some traction amongst aggregator developers.


Categories: RSS Bandit | XML

Just saw the following headline at Disgruntled Asian Tattoo Artist Inks His Revenge  

Pitt junior Brandon Smith wanted a tattoo that proclaimed his manliness, so he decided to get the Chinese characters for “strength” and “honor” on his chest. After 20 minutes under the needle of local tattoo artist Andy Sakai, he emerged with the symbol for “small penis” embedded in his flesh.

“I had it for months before I knew what it really meant,” Smith said. “Then I went jogging through the Carnegie Mellon campus and a group of Asian kids started laughing and calling me ‘Shorty.’ That’s when I knew something was up.”

     Sakai, an award-winning tattoo artist, was tired of seeing sacred Japanese words, symbols of his heritage, inked on random white people. So he used their blissful ignorance to make an everlasting statement. Any time acustomer came to Sakai’s home studio wanting Japanese tattooed on them, he modified it into a profane word or phrase.

     “All these preppy sorority girls and suburban rich boys think they’re so cool ‘cause they have a tattoo with Japanese characters. But it doesn’t mean shit to them!” Sakai said. “The dumbasses don’t even realize that I’ve written ‘slut’ or ‘pervert’ on their skin!”

I'm surprised that reports of actions like this are not more widespread. I keep waiting for someone to start the Japanese version of that makes fun of all the folks in the USA who have misspelled Japanese characters on their T-shirts or tattoed on their skin the same way does for misspelled, grammatically incorrect English that shows up in Japan all over the place.

I've always thought it was really ghetto (i.e. ignorant) to have characters in a language you can't freaking understand tatooed on your skin. Anyone who's ever done this needs to be awarded 100 ghettofabulous points when they pass Go! and should also collect a free copy of Kardinall Offishall's UR Ghetto. Dang!


Categories: Ramblings

A recent spate of discussions about well-formed XML in the context of the ATOM syndication format kicked of by There are no exceptions to Postel's Law post has reminded me that besides using an implementation of the W3C DOM most developers do not have a general means of generating well-formed, correct XML in their applications. In the .NET Framework we provide the XmlWriter class for generating XML in a streaming manner but it is not without it's issues. In a recent blog post entitled Well-Formed XML in .NET, and Postel's Rebuttal Kirk Allen Evans writes

At any rate, Tim successfully convinced me that aggregators should not have the dubious task of “correcting“ feeds or displaying feeds that are not well-formed. 

Yet I still have a concern about Tim's post, concerning XmlWriter and well-formedness:

PostScript: I just did the first proof on the first draft of this article. It had a mismatched tag and wasn’t well-formed. The publication script runs an XML parser over the draft and it told me the problem and I fixed it. It took less time than writing this postscript.

PPS: Putting My Money Where My Mouth Is - If you’re programming in .NET, there’s a decent-looking XmlWriter class.

The problem is that it is quite possible to emit content using the XmlWriter that is not well-formed. From MSDN online's “Customized XML Writer Creation“ topic:

  • The XmlTextWriter does not verify that element or attribute names are valid.
  • The XmlTextWriter writes Unicode characters in the range 0x0 to 0x20, and the characters 0xFFFE and 0xFFFF, which are not XML characters.
  • The XmlTextWriter does not detect duplicate attributes. It will write duplicate attributes without throwing an exception.

Even using the custom XmlWriter implementation that is mentioned in the MSDN article does not remove the possibility of a developer circumventing the writing process:

Kirk provides a code sample that shows that even with an XmlWriter implementation that performs the well-formedness checks that are missing from the XmlTextWriter provided in v1.0 & v1.1 of the .NET Framework, a developer could still inadvertently write out malformed XML if they hand out the XML stream without closing the XmlTextWriter and thus closing all the unclosed tags.

In the next version of the .NET Framework we plan to provide an XmlWriter implementation that performs all the conformance checks required by the W3C XML 1.0 recommendation when generating XML [except for duplicate attribute checking].

Sam Ruby posted an RSS feed that was malformed XML which can be subscribed to from RSS Bandit without any complaints. I mentioned in a response to the post on Sam Ruby's blog that this is because RSS Bandit uses the XmlTextReader class in the .NET Framework which by default doesn't perform character range checking for numeric entities to ensure that the XML document does not contain invalid XML characters. To get conformant behavior from the XmlTextReader one needs to set its Normalization property to true. In retrospect this was an unfortunate design decision and we should have chosen the default to be conformant behavior but allowed users have the option to change it to unconformant behavior if it suited their needs not the other way around.

In the next version of the .NET Framework we plan to provide an implementation of the XmlReader which is fully conformant to the W3C XML 1.0 recommendation by default.


Categories: XML

January 15, 2004
@ 07:00 AM

My boss, Mark Fussell, just purchased a Smart Watch with MSN Direct and I got to see one of them up close. In his post entitled Not an iPod Sheep [which is a reference to the fact that more and more folks on our team are geeking out Apple's lil' marvel] he writes

Today I picked up my rash and purely impulsive Christmas buy, a Fossil Wrist.NET Smart watch. It was probably sub-consciously induced by the new kid who came to our school (around 1977) with a calculator on his watch. No matter that it was impossible to press any of the buttons to do even the most simple sums and that this was tremendously useless, the fact that it was on a watch with a calculator built in made it ultra cool and an instant friend maker.

Now that I have my smart watch up and running (I had to leave the building and drive halfway home before it picked up a signal) I will say that it has some value. The #1 killer feature has to be the syncing with your Outlook calender appointments.... Of course having a wireless PC to look at the news and weather pretty much makes the other features on Smart watch useless, but “hey” I've just been told that George Bush wants to build a moon base by my watch - Wow! Now I can tell everyone all sorts of useless information. The #2 killer feature has to be the atomic clock accuracy, not that this is that necessary, but timing between meetings is everything. The #3 feature is the ability to send short (15 word?) instance messages to it.

Having a handy device that syncs to my Outlook calendar is something I definitely like but I consider a watch a fashion accessory not something that is primarily a gadget. The geek appeal of the watch is definitely high but I suspect I'll end up getting a SmartPhone instead. The main problem is that I'd like to be able to sync with Outlook when away from my work machine which may turn out to be quite expensive based on current cellular plans compared to having something like a SmartWatch.


Categories: Ramblings | Technology

January 13, 2004
@ 04:06 PM

Mark Pilgrim's recent post entitled There are no exceptions to Postel's Law among other things implies that news aggregators should process ill-formed XML feeds given that it is better for end users since they don't care about esoteric rules defined in the XML 1.0 recommendation but they do care if they can't read the news from their favorite sites.

This has unleashed some feedback from XML standards folks such as Tim Bray's On Postel, Again and Norman Walsh's On Atom and Postel's Law who argue that if an feed isn't well-formed XML then it is a fatal error. Aggregator authors have also gotten in the mix. Brent Simmons has a posted a number, of, entries on the topic where he mentions that NetNewsWire currently doesn't error on RSS feeds that are ill-formed XML if it work around the error but plans to change this for ATOM so that it errors on ill-formed feeds. Nick Bradbury has posted similar thoughts with regards to how FeedDemon has behaved in the past and will behave in future. On the other end of the spectrum is Greg Reinacker, the author of NewsGator, who has stated that NewsGator will process ill-formed RSS or ATOM feeds because he feels this is the best choice for his customers.

My thoughts on this matter are the same as Dave Winer's in his post Postel's Law has two parts 

Personally I disagree with the first half of the law when applied to XML -- the idea that aggregators should bend over backwards to accept poorly formed XML. I always understood that XML was trying to do something different, as a response to the awful mess that HTML became because browser vendors adopted the first half of Postel's philosophy.

When I adopted XML, in 1997, as I understood it -- I signed onto the idea of rejecting invalid XML. It was considered a bug if you accepted invalid XML, not a bug if you didn't.

Brent Simmons, an early player in this market, says users are better served if he reads bad feeds, but when he does that, he's raising the barrier to entry, in undocumented ways that are hard to reproduce.

His interests are served by high barriers to entry, but the users do better if they have more choice.

Now, the users are happy as long as Brent is around to keep updating his aggregator to work around feed bugs, but he might move on, it happens for all kinds of reasons. It's better to insist on tight standards, so users can switch if they want to, for any reason; so that next year's feed will likely work with this year's aggregator, even if it doesn't dominate the market.

I yearn for just one market with low barriers to entry, so that products are differentiated by features, performance and price; not compatibility.

I work on the XML team at Microsoft and one of the things I have to do is coordinate with all the other teams using XML at Microsoft. The ability to consume and produce XML is or will be baked into a wide range of products including BizTalk, SQL Server, Word, Excel, InfoPath, Windows, and Visual Studio. This besides the number of developer technologies for processing XML from XQuery and XSLT to databinding XML documents to GUI components. In a previous post I mentioned my XML Litmus Test for deciding whether XML would beneifit your project

Using XML for a software development project buys you two things (a) the ability to interoperate better with others and (b) a number of off-the-shelf tools for dealing with format.

Encouraging the production and consumption of ill-formed XML damages both these benefits of using XML since interoperability is lost when different tools treat the same XML document differently and off-the-shelf tools can no longer be reliably used to process the documents of that format. This poisons the well for the entire community of developers and users.

Developers and users of RSS or ATOM can't reap the benefits of the various Microsoft technologies and products (i.e querying feeds using XQuery or storing feeds in SQL Server) if there is a proliferation of ill-formed feeds. So far this is not the case (ill-formed feeds are a minority) but every time an aggregator vendor decides to encourage content producers to generate ill-formed XML by working aroound it and displaying the feed to the user with no visible problems that is one more drop of cyanide in the well.


Categories: XML

Robert Scoble writes

 I was just over at Slashdot and found that a Microsoft general manager is not happy that HP has partnered with Apple on its iPod and iTunes service.

You know, I've been darn supportive of Microsoft's strategies lately. But, not this time. This strategy of "whine about lack of choice" isn't a winning one.

When someone is beating you in the marketplace, the thing to do isn't to whine about choice (and, if anyone says Apple isn't winning in the marketplace with its iPod then they are drinking far better Merlot than the $5.49 Columbia Crest stuff I can afford). A winning strategy, instead, would be to give consumers a better product and if you believe you have one, tell its story and don't knock the competition!

Shortly after joining Microsoft I attended a class on interacting with customers and competitiveness, where the presenter emphatically pointed out that Microsoft has zero credibility when it tries to attack other companies for being the 800 lb. gorilla in a particular market. At the time I thought this was mind-numbingly obvious and wondered why she was wasting our time telling us what everyone should know. After two years at Microsoft I now realize I was mistaken and many worker drones in the B0rg cube have no idea what the external perception of the company is actually like.

If it wasn't so sad given that I work here I'd find it hilarious that a Microsoft executive is actually trying to pull a “freedom of choice” argument given the company's history. Of course, the folks on Slashdot had a field day with that one.


Categories: Life in the B0rg Cube

January 13, 2004
@ 03:02 PM

The MiddleWare Company  announces 

TMC today launched TheServerSide.NET, an enterprise .NET architecture and development community. The launch is part of a vision aimed at building communities (online sites, conferences, user groups, etc) to serve all technology practitioners in the middleware industry. TSS.NET will be similar to in style and quality, but both communities will be operated independently.

It looks like Ted Neward will be the editor-in-chief of the site. It looks like the site will be top heavy on it's focus on XML Web Services so I doubt I'll be subscribing to their RSS feed but if that's your bag it looks like a good site to check out. I've been reading for about two years and I've found it useful for getting insight into what's going on in the Java world.

Speaking of the Java world, which community blog site has better signal to noise ratio between Weblogs @ and Java.Blogs? I've been considering subscribing to one of them but I'm already swamped with lots of content of dubious quality from Weblogs @ ASP.NET and don't want to repeat the experience.