If you are a geek, you may have heard of the Firefox extension called GreaseMonkey which lets you to add bits of DHTML ("user scripts") to any web page to change its design or behavior. This basically enables you to remix the Web and either add features to your favorite web sites or fix broken UI design.

Over the Memorial day weekend, I got the hookup on where to obtain a similar application for Internet Explorer named Trixie. Below are some excerpts from the Trixie website

What is a Trixie script?

Any Greasemonkey script is a Trixie script.  Though, due to differences between Firefox and Internet Explorer, not all Greasemonkey scripts can be executed within IE.  Trixie makes no attempt to allow Greasemonkey scripts to run unaltered, since it is best to have the script author account for the differences and have the script run on both browsers if he/she so chooses.

Refer to the excellent Greasemonkey documentation to learn how to write Greasemonkey/Trixie scripts.  Note that some of the information there won't be applicable to Internet Explorer and Trixie.

Installing Trixie

Trixie requires the Microsoft .NET framework to be installed.

To install Trixie, download and run TrixieSetup  (latest version: 0.2.0).  You should ideally close all instances of Internet Explorer before doing this.  By default, TrixieSetup installs Trixie to your Program Files\Bhelpuri\Trixie directory (you can of course change this location).  It also installs a few scripts to the Program Files\Bhelpuri\Trixie\Scripts directory.

Restart IE after installing Trixie.  Once you have restarted, go to the Tools menu.  You should see a menu item called "Trixie Options".  Selecting that will show you the list of scripts installed and which one's are enabled or disabled.

Once you have installed Trixie, you browse the Web just like you always do.  Trixie works in the background executing the scripts on the designated pages and customizing them to your needs.

I've been using Trixie for the past few days and so far it rocks. I also looked at the code via Reflector and it taught me a thing or two about writing browser plugins with C#. So far my favorite Trixie Script is the one that adds site statistics to an MSN Spaces blog when you view your own space.

It looks like I need to spend some time reading Dive Into Greasemonkey so I can write my own user scripts to fix annoyances in web sites I use frequently. Remix the web, indeed.

Update: It took me a few minutes to figure out why the project was called Trixie. If you're a Speed Racer fan, you probably figured it out after reading the second paragraph of this post. :)


 

Over the past week and a half, I've been fixing bugs in the implementation of newsgroups support in RSS Bandit. Yesterday I celebrated getting the last major networking issue being fixed by posting a somewhat empty message to the microsoft.public.xml newsgroup from RSS Bandit. The main thrust of what's left is for Torsten and I to decide how we want newsgroups to be exposed in the user interface.

It is time to start thinking about another item on the roadmap for our next release. This time I want to focus on what we'll do to better support RSS enclosures and podcasting. If you are unfamiliar with either of these concepts, you should read Dave Winer's blog post Payloads for RSS from 2001 which describes the concept of subscribing to digital media content such as songs and videos as opposed to just text as is common today.  

Although I am not interested in any of the amateur talk radio or audioblogging that is typically associated with podcasting I still think this is a very interesting development that should be supported by RSS Bandit. I would love to be able to subscribe to the G-Unit website and get new songs that have been released to the public or subscribe to the various XBox 360 rumor mills to get new videos of game demos.

Below is a list of features I'd like to see in RSS Bandit.

  1. Ability to download RSS enclosures to a folder of my chosing. This folder can be configured per feed so I can have some stuff go to C:\G-Unit and other stuff go to C:\XBox360.
  2. A list of files currently being downloaded or that have been downloaded.
  3. A download meter to indicate how much of a file has been downloaded.
  4. Ability to add files to my Windows Media Player or iTunes playlist of my choosing on successful download. The level of configurability of this feature will depend on how much work is entailed. :)

If you have any ideas that I have left out or comments about the above list, just go ahead and reply to this post.


 

Categories: RSS Bandit

May 27, 2005
@ 03:52 PM

Of the major online service providers, Yahoo! has always been one of my favorites. I may use the Google search engine to find stuff online or MSN Messenger to chat with friends and coworkers, but I utilize more services from Yahoo! than any Web company. In fact, I'm the main reason that all the Windows machines in the computer labs of the College of Computing at Georgia Tech had the Yahoo! Toolbar installed on them when I was in college.

Now that I work at MSN, I get to work on stuff that makes me as excited about software as I used to be in college when I first marvelled at the utility of Yahoo!'s toolbar. Even better is seeing a lot of the stuff I work on either directly or indirectly, influence one of my favorite online services.

In a recent blog post entitled Not Nerdvana, But Maybe The Suburbs, Stowe Boyd writes

I was out in California on the 12th, getting briefed by the Yahoo Messenger folks about the newest release of their instant messaging suite
....
Note As I sketched in a recent post (Nerdvana: A Better Tool For Communication (I Can Dream, Can't I?)), I would really like a rich client on my desktop that put the buddy list firmly at the center of the universe, and all other stuff -- email, blog posts, to-dos, appointments, geographical location, whatever -- hanging off the buddy list as a collection of attributes. Because people and social relatedness is the center of the universe, not documents, calendars, email, etc.
...
Note the 'contact card' in the screenshow above, where various elements of Jessica's digital relationship to me are displayed. We see various icons, representing ways I can contact her. But better, much better, we see the music she is playing, and new profile info and blog entry.

The contact card is something we pioneered in the most recent release of MSN Messenger. It's illuminating to compare Stowe's screenshot of the Yahoo! Messenger contact card with a screenshot I took last year of the MSN Messenger 7.0 beta contact card.  I totally agree with Stowe Boyd that software should help people better communicate and interact with each other in social contexts. This is something that lots of folks at MSN are passionate about and it is edifying to see our competition follow our lead in this area.

This morning I saw an article in Infoworld titled The battle for the blogosphere which had some interesting comments about competition between Yahoo! and MSN in the blogging arena. Some of the excerpts from the article are

Introduced in beta form just last December, MSN Spaces now hosts over 10 million blogs, an eye-popping adoption rate that has blown past internal Microsoft expectations. "MSN Spaces is the fastest growing service MSN has ever introduced," said Brooke Richardson, lead product manager at MSN communication services.

The significant thing for the blogging market is that Microsoft is doing it its way, designing MSN Spaces to have a central text-blogging core but complemented by and integrated with a suite of MSN online services, such as instant messaging, e-mail, music playlist posting, and photo sharing. Microsoft also built into the service access control features to let users determine who can view their blogs, although they can make their blogs totally open if they want. MSN Spaces will also notify users when blogs from friends have been updated.

In March, Yahoo introduced in limited beta a service called Yahoo 360 whose concept and design are similar to MSN Spaces. This service comes as no surprise, because Yahoo, like Microsoft's MSN, has a wide variety of online services with which to surround its blogging service. As two leading Web portals, MSN and Yahoo have an amount and variety of online services under one roof that few others can rival, and blogging is something they're weaving into their overall fabric.

Later on the in the article, the author takes issue with the lack of customizability of MSN Spaces in comparison to other online services such as Google's Blogger and even mentions Robert Scoble's post from last year, MSN Spaces isn't the blogging service for me. We've gotten a lot of feedback about customizability and we definitely will be looking into how we can offer more flexibility. 

From my perspective, the competition between Yahoo! and MSN around who can build a better social computing experience for end users is a lot more exciting than the competition around search engines that have garnered all the press. This is definitely a fun time to be working at MSN.


 

Categories: MSN

There have been a number of events over the past week that have gotten me thinking about XML Web Services and how the technologies have been handicapped by the complexities of the W3C's XML Schema Definition Language (XSD) and Microsoft & IBM's Web Service Definition Language (WSDL). The events that brought this issue to mind have been

  • Contributing to Mike Champion's efforts in putting together Microsoft's submission to the W3C Workshop on XML Schema 1.0 User Experiences and having to revisit the various interoperability problems caused by the complexity of XSD.

  • A recent paper by Steve Loughran and Edmund Smith entitled Rethinking the Java SOAP Stack which argues that since the complexity of Object<->XML mapping based on XSD/WSDL is too difficult that Java SOAP toolkits should simply work with XML directly instead of doing data binding of XML to objects.

  • A recent post by Steve Maine, who works on the XML Web Services team at Microsoft, entitled Travelling through hyperspace where in response to the various arguments about the complexities of XSD and WSDL he states "WSDL, XSD, and SOAP are facts of life in the web services world"

  • The W3C's creation of the public-web-http-desc@w3.org mailing list to discuss the creation of a web services description format (i.e. a WSDL replacement) for RESTful web services

These are definitely interesting times for XML Web Services. The complexity of the technologies that form the foundations of SOA is now pretty much acknowledged across the industry. At the same time more and more people are taking the idea of building web services using REST very seriously. I suspect that there might be an opportunity here for Microsoft to miss the boat if we aren't careful. 


 

Categories: XML Web Services

May 24, 2005
@ 05:28 PM

Paul Thurrott has an interesting series of articles about MSN's past, present and future. In some ways it could be called How MSN Got It's Groove. 

    1. Part One: Beginnings
    2. Part Two: Fly, Butterfly
    3. Part Three: Services That Communicate

The article does a good job of capturing a bunch of the changes that have happened in the organization over time as well as offers some hints as to some of our future plans. My favorite part of the article is this excerpt from its conclusion.

When I speak with people from the Windows division at Microsoft about new product releases, there's always an unspoken assumption that I won't see these people again for many months or even years. With MSN, it's sort of a running joke that I'll often be speaking with them just days later. They just have so much going on.

And we have a bunch of stuff planned for this year. The recently announced MSN Virtual Earth is just one of many cool things we'll be shipping this year.


 

Categories: MSN

There is an article on PC World entitled Gates Unveils MSN Virtual Earth which describes upcoming releases from MSN that were recently announced by Bill Gates at a recent event. Excerpts from the article are provided below

Microsoft's MSN division will enhance its search engine in the next couple of weeks by adding a local search index for finding business directory listings. Later, the company will supplement this with MSN Virtual Earth, a free new service that will pinpoint places in maps and satellite images.   Local search is a gaping hole in the MSN search engine. All other major search engine providers, including Google, Yahoo, Ask Jeeves, and America Online, have a local search tab on their search Web sites. As part of its local search service, Google also provides maps and satellite images, offering functionality that is similar to what Microsoft is aiming for with MSN Virtual Earth.
...
In addition to complementing MSN's local search index, MSN Virtual Earth will let users overlay maps and satellite photos in order to create hybrid images that combine the best of both mediums, says Stephen Lawler, general manager of Microsoft's MapPoint unit.

MSN Virtual Earth will also be integrated with users' preferred e-mail application and, with a single click, will place links in e-mail messages to maps and images, says Steve Lombardi, a MapPoint program manager. Users will also be able to post images to their MSN Spaces Weblog from within the MSN Virtual Earth interface, Lombardi says.

Users will be encouraged to provide feedback on business directory listings so that the MSN local search service will be able to give users a sense of what a particular area is like, Lawler says.

MSN Virtual Earth uses technology from MapPoint and from Terra Server, a database of satellite images Microsoft has had for about ten years, the officials say.

I was in a meeting with Steve Lombardi and a couple of other folks from the Virtual Earth team a while ago and they definitely have built a compelling product that they are quite passionate about. As mentioned in the article, there are interesting avenues for integration with other MSN properties such as MSN Search and MSN Spaces.

It's great to see the innovation and competition coming out of the online mapping space. 

Update: There is an interview with the Virtual Earth team complete with demos up on Channel 9.


 

Categories: MSN

May 21, 2005
@ 02:35 AM

From Bob Wyman's post Microsoft to support Atom!

Robert Scoble, a Microsoft employee/insider very familiar with Microsoft's plans for syndication, declares in comments on his blog " we are supporting Atom in any aggregator we produce ." Microsoft's example in supporting Atom should be followed by all other aggregator developers in the future and Microsoft should be commended for supporting the adoption of openly defined standards for syndication.

Given that virtually every aggregator in use today and virtually every blog hosting and syndication platform (expect MSN Spaces) already supports both RSS and Atom, it is clear that the heyday for the historical RSS format has passed. RSS is a historical format, Atom represents the future. We don't need two formats -- or twenty... We should consolidate on that format which incorporates the most learning and experience with the syndication problem. That format is Atom V1.0.

I'm surprised that Bob Wyman is crowing at such a non-issue. Supporting both versions of Atom (Atom 0.3 and Atom 1.0) is a must for any information aggregator that wants to be taken seriously. This is all covered in my post from a year and a half ago (damn, has this debate been going on for that long?) entitled Mr. Safe's Guide to the RSS vs. ATOM debate where I wrote

The Safe Syndication Consumer's Perspective
If you plan to consume feeds from a wide variety of sources then one should endeavor to support as many syndication formats as possible. The more formats a feed consumer supports the more content is available for its users.

Based on their current popularity, degree of support and ease of implementation one should consider supporting the major syndication formats in the following order of priority

  1. RSS 0.91/RSS 2.0
  2. RSS 1.0
  3. Atom

RSS 0.91 support is the simplest to implement and most widely supported by websites while Atom is the most difficult to implement being the most complex and will be least supported by websites in the coming years.

The Safe Syndication Producer's Perspective
...
The average user of a news aggregator will not be able to tell the difference between an Atom or RSS feed from their aggregator if it supports both. However users of aggregators that don't support Atom will not be able to subscribe to feeds in that format. In a few years, the differences between RSS and Atom will most likely be the same as those that are different between RSS 1.0 and RSS 0.91/RSS 2.0; only of interest to a handful of XML syndication geeks. Even then the simplest and safest bet would still be to use RSS as a syndication format. This is the same as the fact that even though the W3C has published XHTML 1.0 & XHTML 1.1 and is working on XHTML 2.0, the safest bet to get the widest reach with the least problems is to publish a website in HTML 3.2 or HTML 4.01.

So far this thinking has aligned with the thinking around RSS I have seen at MSN, so it is extremely unlikely that MSN Spaces will do something as disruptive as switching its RSS feeds to Atom feeds or as confusing to end users as providing multiple feeds in different formats.


 

From the RSS feed for the post MSN: RSS Everywhere


 

MSDN just published my article, Fun with IXMLHttpRequest and RSS. The article attempts to illuminate two growing trends; using DHTML & IXMLHttpRequest to build dynamic web applications and the building of interesting applications layered on top of RSS.

In my recent post Ideas for my next Extreme XML column on MSDN, I asked what people would like to see me write about next. Although this topic came second, I felt that it highlighted some interesting disruptive trends that warranted writing about sooner rather than later.

Coincidentally, I checked my favorite RSS reader this morning and find out that our CEO decided to downplay the importance of RSS this morning in favor of XML Web Services in a Q&A on the RSS weblog. I find it interesting that his core argument against RSS is that it is not as complex as XML Web Service technologies. On the flip side, we have Mark Lucovsky who in his post Don Box and Hailstorm argues that the simple technologies and techniques of RSS may succeed in building an ecosystem of applications built on open data access where his attempt with Hailstorm at Microsoft failed. Combining this with the thinking in Adam Bosworth's Web of Data, it seems clear that key people at Google are beginning to understand the power of REST in combination with the flexible nature of RSS.

This all seems like classic Innovator's Dilemma stuff. Thankfully, in this case even though there are lots of people who want us [Microsoft] to bury our heads in the sand when it comes to recognizing these emerging trends, there are also annoying people like me at work who keep preaching this stuff to anybody who is willing to listen.

Will RSS change the world? That's a silly question, it already has.


 

Chris Anderson has been learning Python via Jim Hugunin's excellent IronPython and came to the conclusion that Microsoft has been missing the boat in programming language trends. In his post The Hobbyist and the Script  he writes

Scripting is great for glue code - the same thing that VB1 and 2 used to be great at. VB3 started to get into the serious app development with rich data integration, and VB4 brought us into the 32-bit era, and in a way back to glue code. VB4's embracing ActiveX controls gave VB developers an entirely new place to play. I remember working on an application using a beta of VB5 and writing my "hard core code" in MFC ActiveX controls. After a while I started writing more and more of the code in VB, because it worked and wasn't the bottle neck in anyway for the application.

I think that scripting and many dynamic languages are in the same camp. They are great for small applications and writing glue code. Look at Google Maps, the real processing is on the server, and the client side AJAX is just the glue between the user, the browser, and the backend server. I would argue that something more beefy like Outlook Web Access (a Microsoft AJAX application, writen before AJAX was the name) demonstrates more of the limitations of writing the majority of your client interface in script.

Regardless of the limitations, our singular focus on strongly typed compiled languages has blinded us to the amazing productivity and approachability of dynamic scripting langauges like Python and Ruby. I'm super excited that we are changing this. Hiring Jim Hugunin is a great start. I hope we continue this, and really look to add a strong dynamic language and scripting story to our developer portfolio.

I've actually been quite upset by how many programming language camps Microsoft has neglected in its blind pursuit of competition with Java and the JVM. Besides the scripting language camps, there are significant customer camps we have neglected as well. We have neglected Visual Basic developers, we gave them a poor replacement in Visual Basic.NET which the market has rejected which can be gleaned by posts such as Chris Sells's pointing out that publishers don't want to VB.NET books and the Classic VB petition. We have neglected DHTML developers who have been building web sites and web applications against Internet Explorer, we don't even have a Javascript IDE let alone a story for people trying to build complex AJAX/DHTML applications like GMail or Google Maps.

The main problem is that Microsoft is good at competing but not good at caring for customers. The focus of the developer division at Microsoft is the .NET Framework and related technologies which is primarily a competitor to Java/JVM and related technologies. However when it comes to areas where there isn't a strong, single competitor that can be focused on (e.g. RAD development, scripting languages, web application development) we tend to flounder and stagnate. Eventually I'm sure customer pressure will get us of our butts, it's just unfortunate that we have to be forced to do these things instead of doing them right the first time around.

On a similar note, thank God for Firefox.