February 3, 2004
@ 05:36 PM

Below is the list of features I want to add over the coming months in order of priority. If you're interested in RSS Bandit's development post a response with the list of features you would like to see in order of priority.

  1. Support synchronizing RSS Bandit state accros multiple machines using SIAM.

  2. Experiment with ways to improve performance like removing dependence on SgmlReader and working on multithreading issues..

  3. Work on getting localized versions of RSS Bandit for various languages. Need to recruit translators.  

  4. Figure out how to locate interesting content. Perhaps via Technorati integration?

  5. Support blog posting using ATOM API.

  6. Support ATOM syndication format.

I'm really running out of ideas of features to add to RSS Bandit. It seems we already have more features than most other Windows desktop aggregators and there is only so much more we can add. Torsten is still looking at doing weird, wild, wonderful stuff like seeing what it would look like to add ThreadArcs to RSS Bandit.


Categories: RSS Bandit

In his post entitled Business Rules, OCL, XML and Schemas Daniel Cazzulino writes

DonXML is proposing extensions to OCL to express business rules that can be used at code-gen time and at run-time. He mentions my Schematron implementation called Schematron.NET, which allows many business rules to be expressed simply in terms of standard XPath expressions. I believe such an XPath-based language is good enough to express almost every business rule.

Udi Dahan commented as an example, a rule "only a bank manager can authorize a loan above X" which he said couldn't be expressed with Don's idea. It could, indeed, with something along these lines (XPath-like):

<assert test="sec:principal-role('BankManager') and po:Loan/@Amount < 1000">
  Only a BankManager can place a loan of more than $1000.

Using rules-based XML validation is a good way to augment the capabilities of the W3C XML Schema language which is traditionally used to describe message structures in SOAP-based XML Web Services. In the post on Daniel's blog Udi Dahan asks

I like the technique. I'm still puzzling over the strategy. From a SOA approach, where does this go ? What makes it different/better than any other rules engine ? You've given me something to think about. Thank you.

In an SOA approach the rules are part of the message contract. A service endpoint can accept certain kinds of messages that satisfy its message contract. Using a rule-based language like Schematron just makes for writing a tighter contract than one could write using a traditional XML schema language like XSD.

In fact, Aaron Skonnard wrote an article on MSDN entitled Extend the ASP.NET WebMethod Framework by Adding XML Schema Validation  that introduced this to some degree which he followed up with two episodes of MSDN TV; Validating Business Rules with XPath Assertions, Pt. 1 and Validating Business Rules with XPath Assertions, Pt. 2


Categories: XML

I've been trying out Orkut some more and I'm now pretty sure I think it is lame. There is the problem I mentioned previously in that it doesn't provide a way to create a hierarchy of friendships (i.e. differentiate friends from acquintances, business partners from co-workers, etc) which by the way Don Park has an interesting solution for called Friendship Circles. The other reason I've decided it rubs me wrong is that it tends to encourage the collapsing of the various facets of a person's s social life as pointed out by Warren Ellis along  with other criticisms which I agree with. Warren Ellis wrote

Right now, it looks pretty much like an iteration of the Tribe.net system, with an eye on Friendster's apparent main function as a dating system. (Which means, oddly, it requests your business profile at the same time as it's asking you where you like to be fingered.) (Okay, maybe not.)...

My current list of friends is mostly folks I know through geeking at work or on the Internet. Some I'd call friends and some I'd call acquaintances. Particularly interesting to me is the stark contrast that would show up if I actually had some of the folks I actually consider my close friends up there next to folks who's primary connection to me is work or being subscribed to the same mailing lists. It would be folks with completely different, contrasting sets of people.

However this isn't what I found interesting. I noticed that folks could form groups or communities on Orkut about specific topics and one of the ones I found by exploring the various friend-of-a-friend links was the Legalize Marijuana community. Considering that the various links I followed were mostly professional relationships I thought it was particularly bold and mayhap foolhardy for folks to do the equivalent of labelling themselves as drug users or at least “pro-drug”. I find this aspect of social software fascinating. I have already begun to notice how a blog collapses the various facets of one's character as one tries to serve different audiences including from friends & family to co-workers & customers.  Adding to this delicate dance by exposing ones relationships from the mundane & innocent to the illicit & illegal to all and sundry including your boss, co-workers, business partners and any random person with an Orkut account is probably more than I can stomach. That doesn't change the fact that there is somewhat of a voyeuristic thrill navigating some of these relationships. I just wonder how many private and business relationships have been or will be started or ended on the strength of some of the things discovered by navigating the various friend-of-a-friend links between various individuals.

By the way, the rest of Warren Ellis's criticisms of Orkut are also ones I share so I'm including them below instead of repeating them myself in poorer prose

It's coping pretty well as it starts taking the weight of several thousand early explorers. Most of whom, if they follow the accelerating process that's left Friendster a relative wasteland and given Tribe a bit of an echo, will be out of there again in a few weeks. It's faster than Fuckster and Tribe, but it shows that all these friend-of-a-friend things have really hit a wall. I mean, what can you actually do aside from invite all your friends and piss about on a couple of small message boards? Message boards that, unlike Tribe, allow anonymous postings and therefore devalue the message board experience? What happens after that? After you've gotten all your friends in -- whom you send email to or IM regularly in any case, presumably. That's it. All done. Until, I guess, yet another social network system opens and you start all over again. These things want to be a hub for your Internet community experience, but they're just not necessary enough. Tribe gets closest, but it's nothing you're going to leave as an open window on your desktop all day. The first new social network system that builds an IM program into its structure may have a shot...

And that has to be their goal. I mean, who builds a social network system that doesn't want people to use it all the time?

If services like Orkut and Friendster were part of portals I was already using such as Yahoo! or MSN then I'd probably stick around but as standalone sites they just don't make much sense. Maybe part of their goal is to get bought by bigger companies who hopefully can figure out what to do with them [which seems to be the case with Orkut] in which case it looks like the dot bomb era isn't quite dead yet.


Categories: Ramblings

February 3, 2004
@ 06:22 AM

My work machine has a toasted harddrive, my TiVo's hard drive is also toasted which will cost $100 to get replaced under warranty, my cable splitter is busted so I can either watch cable TV or use the Internet but not both, I've had to manage the fact that first feature I designed from scratch for the next version of System.Xml was optimized for the wrong scenarios and should probably be pulled from beta 1 of the .NET Framework, and I just found out the Deli next door simultaneously stopped carrying both Mike's Hard Iced Tea and Bacardi Silver O3 since it looks like I was the primary customer buying either beverage.

I fucking hate Mondays.


Categories: Ramblings

Thanks to Ron Green for pointing out some problems with the recent RSS Bandit installer. Attempting an installation on a machine that didn't have RSS Bandit installed previously failed.  Also an empty docked panel showed up in the UI on successful installs. Both issues have been fixed and the installer has been refreshed.  

As usual you can download RSS Bandit from here.

By the way there was a feature missing from my list yesterday.

FEATURE: Can post to your blog about a specific entry using a plugin that launches w::bloggar (if installed on the machine).

That's it. Hopefully this should now work for everyone.


Categories: RSS Bandit

Download it from here. Differences between v1.2.0.61 and v1.2.0.89 below

  • FEATURE: Support for customizing position of Reading Pane to give Outlook 2003 style reading pane layout. This is located under the View menu.
  • FEATURE: One can search downloaded feeds using full text, regular expression, XPath or date based searches. Searches can be saved in persistent "Search Folders". By default, an "Unread" items search folder is created on installation.
  • FEATURE: Multiple options and custom folders for flagging items (e.g. Review, Follow Up, Read, etc). 
  • FEATURE: Visual indication provided when downloading feeds and when errors occur when processing a feed.
  • FEATURE: Popup (Toast) windows displayed when new items received for a feed. By default this feature is off but can be enabled on a per feed basis.
  • FEATURE: Enhanced the Web-Search-Engines dialog, to support Web search engines that produce an RSS feed such as Feedster. Issuing such a search will result in a temporary search folder, that display the items return in the listview.
  • FEATURE: All links to RSS feeds found on visited web pages are provided in a drop down list on the toolbar to enable easy subscribing.
  • FEATURE:  Support for uploading/downloading feed subscription list as OPML to and from a dasBlog 1.5 weblog.
  • FEATURE: Support for importing feeds from an OPML file given a URL.
  • FEATURE: drag/drop of a feed link to the tree view now tries to gather all information  required to subscribe to the feed (no dialog on success, displ. the new feed dialog on errors e.g. feed needds authentication)
  • FEATURE: double-clicking on a node now opens the feed's home page.
  • FEATURE: Added Copy to context menu of items in list view and feeds in tree view. 
  • FIXED: Can't type a space character in the name of a feed or category during a rename.
  • FIXED: Ftp remote storage not always working (passive/active connection mode is now auto-detected)
  • FIXED: information about GUI layout not always saved.
  • FIXED: Carriage return and linefeeds are now stripped from item titles
  • FIXED : Sometimes old items are no longer displayed for some feeds if you hit [Update All Feeds] on startup
  • FIXED: Clicking [Locate Feed] for some URIs results in an exception about the "incorrect child node being inserted"
  • FIXED: Exception if adding a new feed via the [New Feed] dialog and specifying a feed URL without the preceding URL scheme (e.g. www.example.org/rss.xml instead of http://www.example.org/rss.xml)
  • FIXED: Save/Restore of the GUI window on dual monitor machines should now work as expected
  • FIXED: Reading pane now displays the local time as in the listview instead of GMT.



Categories: RSS Bandit

January 28, 2004
@ 10:50 PM

From eBay, we have the  Mike Rowe Official WIPO Book As Seen On TV for sale.The current price is $1,075.0 and you get

This is your chance to own a piece of Internet history. This is the book shown on TV, Internet, magazines and talked about on the radio and seen by millions of people world-wide. I am selling the WIPO book with the 25-page letter I received from Microsoft's lawyers on January 14/2004. I have two copies of these and I will be keeping one for my own personal memoirs. This inch-thick book contains copies of web pages, registrations, trade marks, other WIPO cases, emails between me and Microsoft's lawyers and much more. There are 27 annexes filled with information. This package also comes with the 25-page complaint transmittal coversheet that was sent with the inch-thick book. In this letter you can find policies, rules, supplemental rules, model responses, copy of complaint and much more.

I wonder how high the bidding is going to go for this piece of Internet history.


James Robertson writes

Microsoft wants to move beyond objects:

Box said technologies such as Java's Remote Method Invocation (RMI) and CORBA (Common Object Request Broker Architecture) all suffered similar problems. "The metaphor of objects as a primary distribution media is flawed. CORBA started out with wonderful intentions, but by the time they were done, they fell into the same object pit as COM."

The problem with most distributed object technologies, Box said, is that programs require particular class files or .jar files (referring to Java), or .dll files (Microsoft's own dynamic linked libraries). "We didn't have (a) true arms-length relationship between programs," Box said. "We were putting on an appearance that we did, but the programs had far more intimacy with each other than anyone felt comfortable with."

"How do we discourage unwanted intimacy?" he asked. "The metaphor we're going to use for integrating programs (on Indigo) is service orientation. I can only interact by sending and receiving messages. Message-based (communications) gives more flexibility

I guess Don didn't get the memo - OO is all about the messages between the objects, and less about the actual objects themselves. Look at that last sentence - "Message based communications" gives more flexibility? What does he think a OO is about? You know, CORBA can be simple - in VisualWorks, it's amazingly, astoundingly simple. It takes a curly brace language like Java or C# to make it complex (at the developer level - I'm not talking implementation layer here).

James Robertson completely misses the point of Don's comments on distributed computing with objects versus using message passing. An example of a service oriented architecture that uses message passing is HTTP on the World Wide Web. It is flexible, scalable and loosely coupled. No one can say with a straight face that using CORBA, Java RMI or DCOM is as scalable or as loosely coupled unless they're trying to sell you something. What Don and the folks on the Indigo team are trying to do is apply the lessons learned from the Web solving problems traditionally tackled by distributed object systems.

It is just an unfortunate naming collision that some object oriented languages use the term “message passing” to describe invoking methods on objects which I'm sure is what's confused James Robertson given that he is a Smalltalk fan.


Categories: Technology

Robert Scoble, my favorite and most prolific pro-Microsoft blogger is at it again. His latest rant that's drawing a bunch of eyeballs online is his recent post where he tries to argue that iPods are a poorer choice than portable music players that use Microsoft's music formats. Specifically he writes  

OK media consumers, let's look forward to 2006. It's always good to look at where you'll end up when you consider buying into a platform of any kind -- and both Apple and Microsoft want you to look at their offerings as just a piece of their platform offerings. It's sort of like picking a football team -- if you're gonna be locked into a team for a few years, wouldn't you rather pick a Superbowl winner than someone who'll go 1-18?

Over the next three years, it won't be uncommon for many of you to buy 500 songs if you want to buy legitimate music from legitimate sources (translate: official services approved by the recording industry like Napster or iTunes). That'll cost you $300 to $500. It's pretty clear that the world will come down to two or three major "systems." Disclaimer: MSN is rumored to be working on such a system. See, when you buy music from a service like Apple's iTunes or Napster (or MSN), it comes with DRM attached.

When you hear DRM think "lockin." So, when you buy music off of Napster or Apple's iTunes, you're locked into the DRM systems that those applications decided on. Really you are choosing between two competing lockin schemes.

But, not all lockin schemes are alike, I learned on Friday. First, there are two major systems. The first is Apple's AAC/Fairtunes based DRM. The second is Microsoft's WMA

Let's say it's 2006. You have 500 songs you've bought on iTunes for your iPod. But, you are about to buy a car with a digital music player built into it. Oh, but wait, Apple doesn't make a system that plays its AAC format in a car stereo. So, now you can't buy a real digital music player in your car. Why's that? Because if you buy songs off of Apple's iTunes system, they are protected by the AAC/Fairtunes DRM system, and can't be moved to other devices that don't recognize AAC/Fairtunes. Apple has you locked into their system and their devices. (And, vice versa is true, as any Apple fan will gladly point out to you). What does that mean if you buy into Apple's system? You've gotta buy an FM transmitter that transmits songs from your iPod to your car stereo. What does that do? Greatly reduces the quality. How do I know that? Cause the Microsoft side of the fence has FM transmitters too. I saw a few on Friday. But, what we have on our side is a format (WMA) that's already being adopted by car stereo manufacturers. So, now when you buy a new song on Napster, it can play on your car stereo, or on your portable music player. Is the choice to do that important to you? If not, then you can buy an iPod and music off of iTunes.

I'm not going to be too critical about Scoble's post since he's basically doing his job as an evangelist and the last thing I want is yet more hate mail from folks in the B0rg cube who believe that every personal blog by a Microsoft employee should be a mini-pep rally for Microsoft products. But I do want to point out some counter arguments that I believe people on both sides of the debate [especially in the B0rg cube] should pay attention to. The first is Cory Doctorow's rant Protect your investment: buy open . He writes

Well, says Scoble, all of the music that we buy from these legit services is going to have DRM use-restriction technology ("See, when you buy music from a service like Apple's iTunes or Napster (or MSN), it comes with DRM attached."). So the issue becomes "choosing between two competing lockin schemes."

And in that choice, says Scoble, Microsoft wins, because it has more licensees of its proprietary, lock-in format. That means that when you want to play your music in your car, it's more likely that you'll find a car-stereo manufacturer that has paid Microsoft to play Microsoft music than that you'll find one that has coughed up to Apple to play Apple music.

And this is the problem with Scoble's reasoning. We have a world today where we can buy CDs, we can download DRM-music, we can download non-DRM music from legit services, we can download "pirate" music from various services, and we can sometimes defeat DRM using off-the-shelf apps for Linux (which has a CD recovery tool that handily defeats CD DRM), the Mac (with tools like AudioHijack that make it easy to convert DRM music to MP3s or other open formats) and Windows (I assume, since I don't use Windows, but as Scoble points out, there's lots of Windows software out there.).

In this world where we have consumer choices to make, Scoble argues that our best buy is to pick the lock-in company that will have the largest number of licensees

That's just about the worst choice you can make.

If I'm going to protect my investment in digital music, my best choice is clearly to invest in buying music in a format that anyone can make a player for.

I have an iPod and I have to agree with Cory. I don't buy DRMed music but I do buy CDs and sometimes look for remixes of singles not available in stores anymore on Kazaa. I use a tape deck connector to plug my iPod into my car stereo and it often sounds better than CDs. An argument about how many devices can play Microsoft's file formats versus Apple's sounds silly to me given that I'll only ever use one player at a time. Scoble's argument [which I hope isn't a marketing strategy that Microsoft is seriously going to pursue] is that folks will transfer music between multiple players during regular usage which in practice just isn't likely. And even if it was, the best bet for people in such cases would be to use the most widely supported format in which case it would be the MP3 format. Either way an iPod still seems like an attractive buy. Arguing about music file formats for portable music players is like arguing about formats for address books in cell phones and trying to make the fact that you can move your address book easily between two cell phones that run the same OS than others is some sort of selling point that is of interest to regular people.

The saddest part of all this is watching Scoble describe feedback from people pointing out the obvious holes in his sales pitch as hate mail. It isn't his fault, we all act that way once we've been assimilated. :) I just don't see this "more choice" argument convincing many people. Scoble is better off focusing on price points and design aesthetics of competing media players to the iPod than the artificial differences he's trying to construct. I was particularly fond of his statement

It's interesting the religiousness of the debates. Brings me back to when I was a Macintosh fanatic back in the late 1980s. Oh, if only religious support won markets. Course if that were the case, I'd be working for Steve Jobs now in Cupertino, huh?

When last I looked iPod sales had surpassed two million. Looks like religious support does win some markets, huh? ;)


Categories: Ramblings

January 28, 2004
@ 05:34 AM

In a post entitled .NET Reality Check Jon Udell writes

3. Programming language neutrality. Here's a statement, from an early Jeff Richter article about .NET, that provoked oohs and ahhs at the time: "It is possible to create a class in C++ that derives from a class implemented in Visual Basic." Well, does anybody do this now? Is it useful? Meanwhile, the dynamic language support we were going to get, for the likes of Perl and Python, hasn't arrived. Why not?

The primary benefit of programming language neutrality is that library designers can build a library in one language and developers using other languages can use them without having to worry about language differences. The biggest example of this is the .NET Framework's Base Class Library, it is mainly written in C# but this doesn't stop VB.NET developers from writing .NET applications, implementing interfaces or subclassing types from the various System.* namespaces.

Examples closer to home for me are in RSS Bandit which depends on a couple of third party libraries such as Chris Lovett's SgmlReader and Tim Dawson's SandBar. I've personally never had to worry about what language they were written in nor do I care. All I need to know is that they are targetted at the .NET Framework.

On the other hand, when the .NET Framework was first being hyped there were a lot of over enthusiastic evangelists and marketters who tried to sell the programming language neutrality as something that would also allow you to have developers working on a single project use different languages. Although theoretically possible, that always seemed like an idea that would be unwise to implement in practice. I can imagine how problematic it would be if Torsten wrote managed C++ code and I wrote VB.NET code for the different parts of RSS Bandit we worked on. Fixing each others bugs would be a painful experience.


Categories: Technology