inicio mail me! sindicaci;ón

About me and .NET, Atom.NET and stuff like that

I decided to write this post just to get things straight and recall some memories of the past.

Since I still get emails about Atom.NET I think it’s time to say it out loud and clear: I don’t care about it anymore but I still think Atom is a good idea, though :-)

I repeat: I don’t have anything, whatsoever, to do with the library anymore. I sold it years ago to ToolButton Inc. so please just ask them for support or if they’re gonna release something anytime soon.

The only reason why I’m still listed in the SourceForge project page is because I can’t remove myself.

Now let’s recall those memories I was talking about.

I started Atom.NET at the end of 2003. At that time I was foolishly hooked up by things like Microsoft .NET and XML. Now I think that’s one of the worst matches ever but let’s not digress…

In 2003 MS .NET was two years old I think and I was on my way to change my desktop operating system from Windows to Debian Linux but one day the hype got me and I gave C# a try and soon after that I postponed my switch.

Maybe I was searching for a reason to stick with Windows (which I didn’t really like anyway) and since the unborn Ubuntu or Apple’s OSX were not on my radar yet, I stopped the clock and gave the new language a try.

I soon became one of the most enthusiastic contributor in the Italian .NET user group jumping from one conference to another, from one workshop to another and post to newsgroups or forums and post and post and learn and post.

I even happened to receive a kind letter from Microsoft Italy for my contribution with a nice book bundled to drain the thirst of knowledge I had.

.NET was all I was searching for to develop applications on Windows. But some things were thankfully going to come in the way: Python, OpenSource and the healthy part of my brain.

In the second quarter of the year 2003 I did find a job as a .NET developer in a Windows oriented Web firm (I said it all) and although I wasn’t really shining as a .NET coder due to the newbieness on the field they hired me right away to create ASP.NET custom controls and something else.

The people there were mostly great and young but I soon realized my way of thinking was miles away theirs. They didn’t really care about cross platform, standards support, Linux, OpenSource, Python and I started feeling bad with myself so I guess my performances at work dropped down and after a while I resigned. It was a summer job anyway so no one complained.

That experience taught me something: never, never ever use only proprietary technology that can lock yourself in somewhere unless you have no other choice. At least this is Lawrence’s opinion.

I know there’s gazillions of people perfectly happy with proprietary stuff and I’m too because I use a Macintosh now and I’m neither a Microsoft zealot nor a FOSS one. I choose technologies according to my personal tastes, technical reasons and adherence to public domain standards.

I didn’t, by the way, stop to code in C# but I had been hired in a FOSS based startup to work with Python, Linux and all the things I technically enjoyed the most. So my language for fun became the one to work with and C# replaced it (with not the same fun ratio) because of what’s going to become the first library to handle Atom in the .NET world.

Atom.NET was already in my mind and on paper but I honestly admit I don’t remember the exact moment when I started coding it.

The reason why I did that was to learn something more from .NET, make use of the many books I had (most of them not purchased by me) and bring Atom to the .NET masses. They were the days of the rising of the Atom syndication format so I joined the bandwagon and created a library to handle Atom 0.3 (1.0 came later in time).

I think the first implementation was based on .NET’s XmlReader, a pull parser, but later I switched to XPath and a little plugin architecture.

I made the first public release in January 2004 with only a feed generator, then after a month I wrote the first parser, then after 20 days I rewrote it basically from scratch introducing a plugin architecture, using XPath and something else I don’t remember. I also enhanced my library with some custom XML stuff made by MS MVPs sending a couple of patches.

The latest public release was in July 2004 (I was already caught up in the Python world).

I really felt better after leaving the dotnetty-we-all-think-xml-is-the-cure world.

A year and a half later a Canadian private company, Toolbutton Inc., offered me money to sell them the library and the intellectual property. Since I had no use of it or .NET anymore I soon agreed and in December 2005 Atom.NET was no longer mine.

I could have sacrificed a couple of lambs to the gods but I thought it was too much :-)

The library before the acquisition ended up in various places: an Xml SDK, FeedJumbler, inside a feed reader and various articles. It was quite a success to be the first project of a .NET newbie. It lasted one year and a half.

One year and half without any kind of community feedback. That was absurd because I had tons of download and usage testimonies. But hey, I didn’t care and I surely do not care now. The MS .NET community didn’t get the OpenSource spirit and it seems they still don’t get it very well.

I’m now happily using other technologies and you all know what I’m talking about.

Adding support for Xml Base to Atom.NET

Before making a new release of the library I wanna try to add the support for Xml Base. The problems are described in the final part of the recommendation:

The XPath [XPath] data model preserves neither base URI information nor the boundaries of external entities and thus is insufficient to support resolution of relative URI references within these entities to be resolved correctly. This includes relative URI references in xml:base attributes.

So, since I heavily use XPath I have to think a way to handle it… maybe I could track xml base attributes manually and add their values to compose the absolute uri… I’ll think :)



UPDATE: xml:base support has been committed into cvs with a lot of bugfixes :) Refer to the changelog for the news.

Limits of XPath in .NET

In those days I was trying to enhance parsing capabilities of Atom .NET and since I based all the API around XPath I tried to gain more advantages from .NET implementation. The only limit I recognized is the lack of the capability to “serialize” the content of a visiting node (something like InnerXml or OuterXml properties in the DOM classes or ReadInnerXml(), ReadOuterXml() in the pull parser classes). So I asked around and Oleg Tkachenko (MS MVP) pointed me out the MVP-Xml library, a MVP’s collaborative project to enhance XML support in .NET. Cool!

W3C new recommendations

Project thoughts

Today I was looking for the best way to write the feed reader and these are my thoughts:

* XmlTextReader seems to be the fastest xml reader and looks nice but I don’t like the pull model very much and since the library isn’t mission critical I’ll consider to use it only if I don’t get anything else working (maybe I could try to implement more than one reader… I don’t know)
* XmlDocument is handier than XmlTextReader cause uses the DOM but it’s slow (not very much to being honest, I can’t imagine a 5+ MBytes Atom feed) and I don’t need editing or inserting any data at all.
* XPathDocument + XPathNavigator is quite reasonably the right direction to go. Fast, readonly and exposes to me all the power of XPath.

So, after re-seeing MSDN-TV’s Don Box episode called “Passing XML Data Inside the CLR” I decided to give XPath a try.

Stay tuned.

Dave Winer’s RSS 2.0 Political FAQ

Dave Winer’s RSS 2.0 Political FAQ

Big Picture of the XML Family

Are you involved in XML development? This is for you all: Big Picture of the XML Family of Specifications by Ken Sall

Playing with RSS and XML

In these days I played with RSS and XML to transform the XML generated by the WebService of ugidotnet.org in a valid RSS 0.91 for integrate it into SharpReader. I’ve just submitted all the stuff to the ugidotnet.org board and if they’ll approve it’ll be published on the web site with the well known and nice orange icon. I like RSS very much, I think that you could appreciate a thing only when you code it ;-)

Ugidotnet.org is our (in Italy) local .NET user group…it seems we’re the biggest user group outta there (I mean Europe land)