DHTML LemmingsTM is a faithful recreation of the classic computer game, Lemmings. I remember having lots of fun playing this on my Amiga over a decade ago. This was one of the most innovative games of the '90s.

Too bad clever puzzlers like Lemmings don't seem to be made anymore.


 

The newest version of the MSN Search Toolbar adds tabbed browsing to Internet Explorer. You can check out a screenshot if you're curious to see what its like. Denise from the MSN Search Toolbar team blogged about it in her post Tabbed browsing is here! where she wrote

Tabbed browsing not only makes online shopping easier (and my wallet more broke), it also drastically improves my web search experience! Have you ever gotten annoyed with hitting the back button repeatedly to get back to the original search results?  MSN Search Toolbar gives you the option to open MSN Search results in new background tabs. This is a HUGE time saver because it lets you keep the search results on one tab while links that you click open in the background.

Best of all, Tabbed Browsing with MSN Search Toolbar works in Internet Explorer 5.01 or above! IE7 will also offer tabs but in the meantime this is a great option.

I think it's way cool that the MSN Search Toolbar team has added this functionality to IE. First Trixie and Turnabout, and now tabbed browsing added via the MSN Search Toolbar. It definitely goes to show exactly how extensible IE is as a platform. Of course, I still am interested in seeing what Dean and his merry band have planned for IE7.


 


 

Categories: MSN

About a year ago, the folks at Sun Microsystems came up with a bunch of benchmarks that showed that XML parsing in Java was much faster than on the .NET Framework. On the XML team at Microsoft we took this as a challenge to do much better in the next version of the .NET Framework. To see how much we improved, you can check out A comparison of XML performance on .NET 2.0 Beta2, .NET 1.1, and Sun Java 1.5 Platforms which is available on MSDN.

In the three test cases, Java 1.5 XML APIs are faster than those in the .NET Framework v1.1 both of which are about half as fast as the XML APIs in .NET Framework v2.0. The source code for the various tests is available so individuals can confirm the results for themselves on their own configurations. 

A lot of the improvements in XML parsing on the .NET Framework are due to the excellent work of Helena Kupkova. She is also the author of the excellent XmlBookMarkReader. Great stuff.

For the XML web services geeks there is also a similar comparison of XML Web Services Performance for .NET 2.0 Beta2, .NET 1.1, Sun JWSDP 1.5 and IBM WebSphere 6.0.


 

Categories: XML | XML Web Services

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.

Earlier this week, there was a post to the Greasemonkey mailing list pointing out the existence of Turnabout. Below are some excerpts from the Turnabout website.  

What is Turnabout?

Turnabout is an Internet Explorer plugin that runs user scripts of your choice on any website. User scripts are like plugins for websites. They can enhance your web experience in a lot of ways:

  • Block pop-ups
  • Change text URLs into clickable links
  • Add features, like adding custom search links in your Gmail account
  • Enlarge text fields that are too small
  • …And more!

Essentially, Turnabout does for IE what Greasemonkey does for Firefox .

So where does this leave the other recently announced Greasemonkey for Internet Explorer project, Trixie? Turnabout seems like a better bet for a couple of reasons. First of all, Turnabout doesn't require the .NET Framework like Trixie does. Secondly, Turnabout comes with source code but not with any licensing information which means it is not Open Source. Although Trixie's source code can be easily deciphered with Reflector, that technically is reverse engineering. Finally and most importantly, the developer of Trixie has stopped work on it now that Turnabout exists.

For now I'll be uninstalling Trixe and trying out Turnabout. I'm glad to see that Trixe inspired an even better project to get launched. REMIX the Web. 


 

Categories: Technology

Adam Bosworth has a blog post entitled AJAX reconsidered that hits right at the heart of some questions I've been asking myself about the renewed interest in using DHTML and server callbacks via XMLHttpRequest to build website applications. Adam writes

I've been thinking about why Ajax is taking off these days and creating great excitement when, at the time we originally built it in 1997 (DHTML) and 1997 (the XML over HTTP control) it had almost no take up.
...
First, the applications that are taking off today in Ajax aren't customer support applications per se. They are more personal applications like mail or maps or schedules which often are used daily. Also people are a lot more familiar with the web and so slowly extending the idiom for things like expand/collapse is a lot less threatening than it was then. Google Maps for example uses panning to move around the map and people seem to love it.

Secondly, the physics didn't work in 1997. A lot of Ajax applications have a lot of script (often 10 or 20,000 lines) and without broadband, the download of this can be extremely painful. With broadband and standard tricks for compressing the script, it is a breeze. Even if you could download this much script in 1997, it ran too slowly. Javascript wasn't fast enough to respond in real time to user actions let alone to fetch some related data over HTTP. But Moore's law has come to its rescue and what was sluggish in 1997 is often lightning quick today.

Finally, in 1997 or even in 1999 there wasn't a practical way to write these applications to run on all browsers. Today, with work, this is doable. It would be nice if the same code ran identically on Firefox, IE, Opera, and Safari, and in fact, even when it does, it doesn't run optimally on all of them requiring some custom coding for each one. This isn't ideal, but it is manageable.

I find the last point particularly interesting. If Web browsers such as Firefox had not cloned Microsoft's proprietary APIs in a way made it easy to write what were formerly IE specific applications in a cross-browser manner then AJAX wouldn't be the hip buzzword du jour. This brings me to Microsoft's next generation of technologies for building rich internet applications; Avalon and XAML.

A few months ago, C|Net ran an article entitled Will AJAX help Google Clean Up? In the article the following statement was attributed to a Microsoft representative

"It's a little depressing that developers are just now wrapping their heads around these things we shipped in the late 20th century," said Charles Fitzgerald, Microsoft's general manager for platform technologies. "But XAML is in a whole other class. This other stuff is very kludgy, very hard to debug. We've seen some pretty impressive hacks, but if you look at what XAML starts to solve, it's a major, major step up."

Based on how adoption of DHTML/AJAX occured over the past few years I suspect that Avalon/XAML will follow a similar path since the initial conditions are similar. If I am correct then even if Avalon/XAML is a superior technology to DHTML/AJAX (which I believe to be the case) it will likely be shunned on the Web due to lack of cross-browser interoperability but may flourish within homogenous intranets. This shunning will continue until suitable clones for the functionality of Avalon/XAML appears for other browsers. In which case as soon as some highly visible pragmatist adopts the technology then it will become acceptable. However it is unclear to me that cloning XAML/Avalon is really feasible especially if the technology is evolved at a regular pace as opposed to being let languish as Microsoft's DHTML/AJAX technologies have been. This would mean that Avalon/XAML would primarily be an intranet technology used by internal businesses applications and some early adopter websites as was the case with DHTML/AJAX. The $64,000 question for me is whether this is a desirable state of affairs for Microsoft and if not what should be done differently to prevent it?

Of course, this is all idle speculation on my part as I procrastinate instead of working on a whitepaper for work. 

Disclaimer: The aforementioned statements are my opinions and do not represent the intentions, thoughts, plans or strategies of my employer.  


 

Categories: Technology

June 6, 2005
@ 12:43 AM

A few years ago I decided to relocate to Seattle and take a job with Microsoft. One of the things I knew I was going to miss was the Atlanta night life and all the various clubs that played crunk music. As luck would have it, I moved here around the same time that music from the Dirty South started to gain national prominence. I'm still taken aback sometimes when I hear Lil Jon played at the average yuppie infested club or bar in downtown Seattle when back in my college days you had to go to clubs outside downtown Atlanta if you wanted to hear Oomp Camp, Lil Jon, Pastor Troy, Ying Yang Twins or any other crunk local acts.

Of course, not all the good crunk stuff gets radio airplay despite how much Lil Jon is being played these days. Below are some of the songs that have been getting regular play as part of my daily routine. Depending on where you live some of it is mainstream while some of it isn't. Enjoy.

  1. Give Me That - Lil Boosie & Webbie (Featuring Bun B)
  2. I Smoke I Drank (remix) - Body Head Bangerz (Featuring Youngbloodz)
  3. Still Tippin' - Mike Jones (Featuring Slim Thug And Paul Wall)
  4. Girlfight - Brooke Valentine (Featuring Lil Jon & Big Boi)
  5. Some Cut - Trillville (Featuring Cutty)

If you have some suggestions for new tracks I should check out, post a comment below.


 

Categories: Ramblings

Since the recent announcement that the next version of Microsoft Office would move to open XML formats as the default file format in the next version, I've seen some questions raised about why the OpenOffice.org XML formats which were standardized with OASIS weren't used. This point is addressed in a comment by Jean Paoli in the article Microsoft to 'Open' Office File Formats which is excerpted below

"We have legacy here," Jean Paoli, Senior Microsoft XML Architect, told BetaNews. "It is our responsibility to our users to provide a full fidelity format. We didn't see any alternative; believe me we thought about it. Without backward compatibility we would have other problems."

"Yes this is proprietary and not defined by a standards body, but it can be used by and interoperable with others. They don't need Microsoft software to read and write. It is not an open standard but an open format," Paoli explained.

When asked why Microsoft did not use the OASIS (Organization for the Advancement of Structured Information Standards) OpenOffice.org XML file format, Paoli answered, "Sun standardized their own. We could have used a format from others and shoehorned in functionality, but our design needs to be different because we have 400 million legacy users. Moving 400 million users to XML is a complex problem."

There is also somewhat of a double standard at play here. The fact that we are Microsoft means that we will get beaten up by detractors no matter what we do. When Sun announced Java 1.5 5.0 with a feature set that looked a lot like those in C#, I don't remember anyone asking why they continued to invest in their proprietary programming language and platform instead of just using C# and the CLI which have been standardized by both ECMA and the ISO. If Microsoft had modified the OpenOffice.org XML file format so that it was 100% backwards compatible with the previous versions of Microsoft Office it is likely that same people would be yelling "embrace and extend". I'm glad the Office guys went the route they chose instead. Use the right tool for the job instead of trying to turn a screwdriver into a hammer.

It's a really powerful thing that the most popular Office productivity suite on the planet is wholeheartedly embracing open formats and XML. It's unfortunate that some want to mar this announcement with partisan slings and arrows instead of recognizing the goodness that will come from ending the era of closed binary document formats on the desktop.


 

Categories: XML

The next version of MSN's experimental RSS reader is available at http://www.start.com/3. You have to solve the questions before getting access to the next version of the site but once that's done you get access to the juicy goodness.

This version of the site does a better job of letting you read posts inline. Another neat addition is the ability to drag and drop modules to arrange them on the page. Kudos to the the Steve Rider, Scott Isaacs and the rest of the folks who've worked on this.


 

Categories: MSN

June 2, 2005
@ 03:10 PM

Todd Bishop is a reporter on the Seattle Post Intelligencer who has a blog where he posts stories about Microsoft that didn't make it into the paper. In a recent post entitled, Microsoft eyes podcasts he writes

During the revival of the Gillmor Gang audio program over the weekend, podcasting pioneer Adam Curry said he had been trying for some time to persuade Microsoft and Apple to pay attention to the trend and build podcatching features inside Windows Media Player or the iTunes software. He said things changed when Steve Jobs demonstrated the new iTunes podcatching feature last week at the Wall Street Journal's "D: All Things Digital" conference. On the Gillmor Gang, Curry explained what happened next:

"It was like 15 minutes after it showed up in the Wall Street Journal when Microsoft called, saying, 'Hey, how do we get in this?' I don't know a lot about Microsoft. I do see they're a lot hungrier company than they used to be. But every single time you talk to them about anything that's new, or in this case iPodder functionality inside Windows Media Player, the almost standard answer is, 'Yeah we're going to have a lot of that in Longhorn.' That to me means there is this huge steamboat that is very difficult to steer left or right, and it's just harder to get stuff done at Microsoft."

That's just a snippet of an interesting discussion of the topic. You can download the full program via the Gillmor Gang link above.

I had lunch with someone from main campus yesterday and it seems that Adam Curry's perception is also being felt by the folks who work on the product teams. To repeat myself, I hope it doesn't take the stock hitting $10 before some action is taken.


 

Categories: Life in the B0rg Cube

I was supposed to post this a month and a half ago but somehow never got around to it. Jon Pincus who organized the session put up his notes on the 20% time session at CFP 2005. It was a pretty interesting discussion, some of which is excerpted below

Some examples that started as 20% projects at Google include GMail, Google Suggests , Firefox prefetching, and various technology pieces that are used throughout Google's code base. At Microsoft, many of the Windows Power Toys had a similar genesis, and attendees thought that Apple's iPod may have had similar origins in a "part-time, on-the-side" project.

One question that came up repeatedly (in various forms) is "how does the company know that people aren't just goofing off?" The short-term answer comes down to trust (that is, the assumption is that most employees will do their best to use this time in ways that give value to the company); in the longer term, contributions from 20% time projects are considered as part of reviews, and so if you've wasted the time, it will come out at that point. [It was pointed out that trust in general reduces "transaction costs", and so can increase efficiency -- so that even if (say) 10% of employees are accomplishing absolutely nothing with this time, it still could be a big win not to have any monitoring overhead which would slow down the other 90%.]

Another question that came up a couple of times was how to manage the impact on schedules -- does this mean that all dates wind up 20% further out than they would otherwise? I don't think there was an explicit answer to this in the meeting, but several people pointed out that a large chunk of many engineers' days at a lot of companies goes to various kinds of not-specifically-product-related tasks (e.g., reading Slashdot); if that "breakage" is diverted into time on a 20% project, then the actual hit is much smaller.

Most of the discussion was devoted to discussing the reasons that this approach appears to work well at Google.

I personally think that creating a framework that encourages developers at a company to work on side projects is very rewarding for both the employees and the company. I don't know how I'd have dealt with some of the issues I had with being a cog in a [relatively] slowly moving corporate wheel if I didn't have RSS Bandit to work on in my previous job.  Now that it is a mature project that has seen hundreds of thousands of downloads since it started, I often end up talking to product teams working with RSS at Microsoft in an adviser role. I got something out of it and Microsoft got something out of it.

One of the questions that kept coming up during the session was how one measured 20% time and made sure employees weren't goofing off. The answer was that it isn't really about taking a day off every week, its more about factoring in the time that the person will spend on their side project into their work schedule. After all, no one has 20% of their time free just before shipping and then there are times when weeks go by with not a lot of work to do. 20% time is more about allowing developer employees to reclaim some of that slack in ways that may or may not benefit the company but would make them more satisfied with their day jobs.

Joe Beda mentioned that the fact that Google was a web application built around web services enabled people to quickly write interesting applications utilizing the data and processing power of their back end. Now that I work on the back end of various services at MSN I can see his point. It would be very interesting to see the kind of applications built if we encouraged people to go wild with the APIs behind applications like MSN Search, MSN Spaces, MSN Messenger, Hotmail, MSN Groups, Start.com, MyMSN and see what they could build in their spare time.  In fact, I've already seen one cool hack built on top of MSN Virtual Earth by some internal folks and it isn't even out yet. This is one of those things I'll definitely be evangelizing at work. Wish me luck. :)