A couple more details of MSN's upcoming announcements of the various APIs we'll be opening up during PDC have come out. The write up with the best overview I've seen so far has been the article Microsoft Web plan takes aim at Google which states

Microsoft will detail its "Web platform" strategy at its Professional Developers Conference in Los Angeles next week, company executives told CNET News.com
...
At the developers conference next week, Microsoft plans to publish the API to its MSN Search service, which can be used by developers through the Simple Object Access Protocol, or SOAP. The noncommercial license will let people produce 10,000 search results per day per Internet address, said Seth Demsey, group program manager for MSN Search. Microsoft will release an API for its desktop search as well.

Also next week, the company will announce a free commercial license to use a JavaScript "control" to display data from its Virtual Earth mapping service. The MSN Messenger group, meanwhile, will allow developers to write Windows applications that make use of the "Activity" window. This would allow a customer service representative, for example, to display customer information in a chat session.
...
Next Thursday, Microsoft executives will discuss a developer program for Start.com, an MSN incubator Web site that consolidates information from RSS feeds and other Web sites onto a single customizable page.

That's right, during the PDC we'll be announcing developer programs for four MSN properties; MSN Virtual Earth, MSN Messenger, Start.com and MSN Search. Unfortunately, MSN Spaces isn't on that list but this is mainly due to logistics reasons and not because we won't be opening it up to as a platform for developers.

Of course, there are more details from the horses mouth.

MSN Messenger
From Leah Pearlmann's post about the MSN Messenger Activity API we learn

The release of the API will be announced at the upcoming Microsoft PDC next week in LA. Along with this announcement will be another for a contest
...
Starting next week, you, yes you, can download the Activity API, build an Activity using the competition guidelines, and submit it. You Activity will be posted in the App Gallery where people around the globe can try it out and vote for it (which they will, because YOURS will be the best).

Activities will be judged based on creativity, usability, inclusion of MSN services/features and number of popular votes. Besides the most valuable reward – unlimited bragging rights— you can also win:

  • Alienware Area 51 laptop with armored case (grand prize)
  • Aurora Desktops (1st runner-up)
  • Oakley Thump sun glasses with built in MP3 player (2nd runner-up)

For more information, go to visit this forum or wait until September 12th and then go to http://www.worldsbestapp.com and http://msdn.microsoft.com/msn/messenger

I've been involved in the discussions on opening up different parts of our IM client and it's great to see some of these efforts begin to bear fruit. Once the contest is live, don't hesitate to post questions to the developer forum. I'll be watching as will several folks on the MSN Messenger team.

By the way, the MSN Messenger PM team is looking for someone with experience to drive their audio and video efforts. If this sounds like your cup of tea, then check out the job description and maybe even respond.

MSN Virtual Earth
The big news here was posted by Chandu Thota in his blog posting Virtual Earth APIs available for commercial use (and they are FREE!) where he wrote

Here is the good news folks: We are now offering the MSN Virtual Earth API for commercial applications free of charge to developers.  This APIs include the JavaScript map control and local search service (exposed via the What/Where search boxes on Virtual Earth site today). 

Here are some important notes about this release:

1. Maps are available in U.S. only and does not include any routing capabilities. In the future we will add European and Asian geographies. 
2. In order to use the API for commercial applications with no charge, your application must use the local search service on the map (the What/Where search boxes)
3. There is no SLA for Virtual Earth enabled applications until January 1, 2006.  Also, if you choose to use Virtual Earth in your production environment before the end of 2005, you must notify the MSN Virtual Earth team first in order to ensure capacity
4. MapPoint Web Service and Virtual Earth platform are not integrated (yet!)

 Now how does the future look like? On January 1, 2006, you will have two additional options to choose from to fit your commercial application needs:

1. You can use the Virtual Earth APIs for free as long as you use the What/Where search boxes on your map. This is also makes sense from a revenue stand point since you will have the opportunity to make money by placing advertisements on your site in a revenue sharing model (more details to be announced at a later date)
2. If you do not want to utilize the What/Where search boxes on your site or advertising, you can use the Virtual Earth API under your current MapPoint Web Service contract. In this scenario you will be charged for transactions through the Virtual Earth API. Note that this option comes with SLAs. 

There you have it - now you have what you are waiting for: the opportunity to integrate maps into your applications at free of cost (as long as you use the What/Where search boxes). I will be writing more about how to integrate maps and the What/Where search boxes into your web applications on this blog in my future posts. In the mean time, don't forget to check out ViaVirtualEarth to learn how to build applications using Virtual Earth Map control (and to win $1000!)

That's right, they have a developer contest going on as well. I'd hoped to have my article on building my Seattle Movie Finder page up by PDC to give folks a place to start when building their first mapping mash-up but I never got enough spare time at work. The article should be done by next week and should hopefully show up online the week after PDC.


 

Categories: MSN

Dion Hinchcliffe wrote a blog entry entitled State of Ajax: Progress, Challenges, and Implications for SOAs  which did a good job of pointing out the [somewhat obvious yet not so obvious] link between web services and AJAX. For those who don't have time to wade through his entire post, the key bit is

Lightweight SOAP and REST services are in and WS-* services may be on the rocks. Since Ajax applications can and will frequently call backend XML web services as the user interacts with the front-end, having lightweight, easy-to-consume, high performance/availability SOAP and REST web services will only become more important. Of course, the implication is that since Ajax applications live in a fairly austere JavaScript sandbox, this means heavy-duty WS-*-style SOAP stacks probably won't play well with the lightweight XML/JSON service interactions that Ajax prefers. This doesn't mean WS-* is broken for Ajax, but at this time there are no Ajax frameworks yet that support more than basic SOAP service interaction.

There's some stuff I agree with here but a lot I don't. Personally I think even lightweight SOAP services are out in the AJAX world. As it stands, lots of AJAX developers are trying to eschew the overhead of XML for the simplicity of JSON let alone the overhead and complexity of SOAP. The fact is that most AJAX applications talk to lightweight REST services with either XML or JSON being the wire format.

This is yet another example of the dichotomy between providing services for the Web and building services for using within an enterprise's intranet.

Surprisingly, it seems some people fail to acknowledge this dichotomy. One of these people is Nick Malik who in his recent post On Atlas/Ajax and SOA stated

I ran across a blog entry that attempts to link Atlas/Ajax to SOA.  What absolute nonsense!
...
So what's wrong with having a browser consume enterprise web services?  The point of providing SOA services is to be able to combine them and use them in a manner that is consistent and abstracted from the source application(s).  SOA operates at the integration level... between apps.  To assume that services should be tied together at the browser assumes that well formed architecturally significant web services are so fine-grained that they would be useful for driving a user interface.  That is nonsense.

For an Atlas/Ajax user interface to use the data made available by a good SOA, the U/I will need to have a series of fine-grained services that access cached or stored data that may be generated from, or will be fed to, an SOA.  This is perfectly appropriate and expected.  However, you cannot pretend that this layer doesn't exist... it is the application itself!

In a nutshell, the distinction is in the kinds of services provided.  An SOA provides coarse-grained services that are self-describing and fully encapsulated.  In this environment, the WS-* standards are absolutely essential.  On the other hand, the kinds of data services that a web application would need in an Atlas/Ajax environment would be optimized to provide displayable information for specific user interactions.  These uses are totally different. 

This is probably one of the most bogus posts I've ever seen written by a Microsoft employee. As Nick points out, the point of providing services is to be able to combine them and use them in a manner that is consistent and abstracted from the source application.

For example, my Seattle Movie Finder web page is powered by a RESTful web service which gives it information about movies currently playing in the Seattle area. The URL http://www.25hoursaday.com/MovieFinder/MovieFinder.aspx?showall=1, gives me an XML list of all the movies currently playing in my neighborhood. The web page is an AJAX application that consumes this service. This information could also be consumed by a smart client on a desktop or another service which augments the data (e.g. merges in the movie critic ratings to the various movies before sending to an end user). Claiming that because this service doesn't use the various WS-* technologies and is being accessed from a web browser somehow makes it illegitimate is just plain ridiculous.

Furthermore, it is quite likely that the various services that are used to gather this information aren't RESTful. However what works within the intranet isn't necessarily what works on the Web.

An interesting challenge I've faced at work is convincing some of the developers on my team that just because we use SOAP for the services we use internally, this doesn't mean we may not use alternate appproaches for Web facing services. This issue first came up when we decided to go with the MetaWeblog API as the blog editing API for MSN Spaces and I'm sure it will keep coming up.

When you have a hammer, everything looks like a nail. SOAP/WS-* are not the answer to every problem and just because they can't be used in a particular problem space doesn't mean that problem space any less valid than others. The sooner people understand the dichotomy that is intranet vs. internet service development, the better.


 

It looks like I'm going to regret not going to PDC since we'll be unveiling some stuff I've been working with folks on over the past couple of months. Here's a hint, http://msdn.microsoft.com/msn. ;)

If you'll be at PDC, you definitely should check out some of the info first hand by attending some of our conference sessions. Such as

COM301  MSN Messenger: Extending MSN Messenger with Multi-Person Instant Messaging Applications

Day/Time: Wednesday, September 14 1:45 PM- 3:00 PM Room: 406 AB
Speaker(s): Scott Swanson
Session Type(s): Breakout
Session Level(s): 300
Track(s): Communications
This session covers the architecture and design of multi-person IM applications within MSN Messenger using the Messenger Activity API. We show how to use the peer-to-peer capabilities of the Activity API to build multi-user IM applications that can send files, instant messages, data, and integrate with other services. Build your IM applications to work with MSN Messenger, the world's largest instant messaging service with more than 165 million customers worldwide.

DAT322  MSN Search: Building Web and Desktop Search into Your Applications
Day/Time: Thursday, September 15 5:15 PM- 6:30 PM Room: 409 AB
Speaker(s): Seth Demsey, Chris McConnell
Session Type(s): Breakout
Session Level(s): 300
Track(s): Data & Systems
This session shows you how to harness the power of Web and Desktop Search within your applications. We provide an overview of the MSN Search APIs for both searching the Web and your desktop. We then demonstrate how to use these APIs to create applications that harness the power of searching your local data and Web data.

DATL03  Tips, Tricks & Hacks to MSN Search and Desktop Search Platforms
Day/Time: Friday, September 16 12:00 PM- 12:45 PM Room: 403 AB
Speaker(s): Andy Edmonds
Session Type(s): Lunch Session
Track(s): Data & Systems
This session will show you how to get the most of MSN Search and Windows Desktop Search. From advanced syntax to API usage and RSS, you will be equipped to get exactly what you want from these search tools. Learn about the ranking sliders which allow you to emphasize freshness or popularity in the results. We will also be distributing a hack which customizes MSN Search to the needs of a PDC attendee. For Windows Desktop Search you'll learn how to make yourself more productive with advanced query syntax, Deskbar shortcuts, additional locations and customized previews.

DATL05  Case Study: Extending Virtual Earth for Windows Mobile Devices
Day/Time: Thursday, September 15 1:00 PM- 1:45 PM Room: 404 AB
Speaker(s): Steve Lombardi
Session Type(s): Lunch Session
Track(s): Data & Systems
MSN Virtual Earth (www.virtualearth.com) is an evolution of local search technology that gives consumers a deeply immersive search experience where they can easily find, discover, plan, and share what is important to them. Microsoft is now harnessing its extensive search and mapping assets to create an entirely new local search experience for consumers and businesses. In this session, learn how you can programmatically tap into the power of Virtual Earth to location enable your device applications. Learn how the powerful managed code features of Windows Mobile 5.0 enable you to integrate your devices contacts and calendar with Virtual Earth's powerful search and mapping engines.

PNL09  APIs in the Sky: Developing Public Web Services
Day/Time: Friday, September 16 10:30 AM- 12:00 PM Room: 152/153 (Hall F)
Speaker(s): Don Box, Seth Demsey, Omri Gazitt, Alan Geller, David Nielsen, Doug Purdy
Session Type(s): Panel
Track(s): Communications
Want to know how Amazon, Paypal and MSN design, build, and maintain their Web services? Interested in learning best practices and key insights from the architects of Windows Communication Foundation ("Indigo")? If so, this is the panel for you. Join Don Box and other industry luminaries as they discuss the practical trade-offs involved when building Web services today and what you can expect to see in the near and long-term future.
 
I was supposed to be one of the speakers on the panel on developing public web services, however since I bowed out Seth will be bringing the MSN perspective to the panel. The combination of my workload and the fact that I'll be attending the Web 2.0 conference next month me decline. I'll definitely be doing some blogging about the announcements next week.

 

Categories: MSN

As promised in the RSS Bandit roadmap, the preview of the next version of RSS Bandit is now available for general download. You can now download it at RssBandit.1.3.0.35.Nightcrawler.Alpha.zipRssBandit.1.3.0.36.Nightcrawler.Alpha.zip.

NEW FEATURES THAT WORK

  • NNTP Newsgroups support: Users can specify a public NNTP server such as news.microsoft.com and subscribe to newsgroups on that server. Permalinks in a newsgroup post point to the post on Google Groups.

  • Item Manipulation from Newspaper Views:  Items can be marked as read or unread and flagged or unflagged directly from the newspaper view. This improves end user work flow as one no longer has to leave the newspaper view and right-click on the list view to either flag or mark a post as unread. 

  • Subscription Wizard: The process for subscribing to newsgroups, search results and web feeds has been greatly simplified. For example, users no longer need to know the web feed of a particular web site to subscribe to it but can instead specify the web page URL and discovery of its web feed is done automatically. 

  • Synchronization with Newsgator Online: Users can synchronize the state of their subscribed feeds (read/unread posts, new/deleted feeds, etc) between RSS Bandit and their account on Newsgator Online. This allows the best of both worlds where one can use both a rich desktop client (RSS Bandit) and a web-based RSS reader (Newsgator Online) without having to worry about marking things as read in both places.

  • Atom 1.0 support: The Atom 1.0 syndication format is now supported. 

  • Threaded Posts Now Optional: The feature where items that link to each other are shown as connected items reminiscent of threaded discussions can now be disabled and is off by default. This feature is very processor intensive and can slow down the average computer to the point that is unusable if one is subscribed to a large number of feeds.

  • UI Improvements: Icons in the tree view have been improved to make them more distinctive and also visually separate newsgroups from web feeds.

NEW FEATURES THAT DON'T WORK

  • Downloading of Enclosures/Podcasts
  • Comment Watch - Notifications of new comments on "watched" posts
  • Tip of the Day on Startup
  • Extensibility Framework to Enable Richer Plugins

 

Categories: RSS Bandit

For all you OneNote freaks out there, Torsten has written a plugin for sending an item from RSS Bandit to OneNote. From his post "Send to OneNote..." plugin for RSS Bandit 

You can download it here. Just expand the zip to your RSS Bandit installation sub-folder named plugins. Within the config file you can change the default note page used and some templates to format the posted item link and content.

The plugin uses the IBlogExtension interface so it should also work with other RSS readers written using the .NET Framework such as SharpReader.


 

Categories: RSS Bandit

September 6, 2005
@ 03:13 PM

I picked up The Incredible Hulk: Ultimate Destruction for the XBox this weekend and I've been hooked on it. The IGN review says it all

the development team has axed the structured, linear levels of its last Hulk adventure and opened things up into an expansive free-roaming world. While not based on any real-life city like Grand Theft Auto: San Andreas or Spider-Man 2, Ultimate Destruction still maintains an authentic urban feel to it -- with bridges, hospitals, moving traffic, and pedestrians that all have one thing in common: they're certain unavoidable targets for the basketball-sized fists of Ol' Greenskin.

What makes attacking these targets so fun, though, is that just about everything you encounter is completely deformable: Various types of autos break and smash into pieces, trees and lampposts are uprooted from their bases, explosions go off in just about every direction, and sometimes even buildings themselves crack and crumble to the ground. "Ultimate Destruction" is exactly what this experience offers and as the Incredible Hulk himself, there's little you can't do to make the game live up to its title.

But if all you could do was run around the city smashing things up with a small repertoire of moves, then the Incredible Hulk would grow old pretty quickly...There are a number of combos, weapon strikes, grabs, throws, and chains that you can perform because of this, as well, and just about every single one of them are incredibly cool.

Want to smash a bus into flattened metal and then use it as a shield? Go right ahead! Would you prefer to shatter a radio tower and use the leftover antenna as a javelin? You can do that too! You can even crush boulders into near-perfect circles and play oversized bowling or clang two cars together to form makeshift boxing gloves that inflict additional damage. And just when you though you've seen it all, a new mission comes along that requires you to hop onto a harrier jet and wrestle it to the ground or bash a cargo truck over your head for use as a Metal Gear Solid-inspired cardboard box disguise for sneaking into military bases. Needless to say, the move progression system here is perfect (using a traditional purchase system not unlike Onimusha or Devil May Cry) and steadily transforms you from a mindless oversized pugilist into an unstoppable engine of destruction. I love it.

This game is fantastic and I'm surprised that it hasn't been rated higher in the various reviews I've seen. It's definitely the best game I've seen for the XBox this year.


 

Categories: Video Games

Like everyone else I have been stunned by what I'vee seen on the various news channels about the aftermath of hurricane Katrina in New Orleans. I don't really have the words to express myself so I'll point to the words of others that express how I feel

  1. From Shelley Powers's post Stopping the World

    However, I’m finding that the contention and anger surrounding this event is becoming increasingly difficult to absorb. I can’t seem to maintain enough detachment to keep from being pulled completely in, and by the end of the day, I’m feeling emotionally drained and physically sick. Some of this is coming from the worries, frustrations, and the sense of loss–of people, of history–because of Katrina. But not all.

    Debate should energize, not drain. When it doesn’t, you need to step away. When I read the headline, Condi returns to DC after Bloggers expose vacation about how wrong it was for Rice to buy expensive shoes while people are suffering in New Orleans, it was enough. And I find I don’t have the words to explain why.

    While I’m taking a breather, some folks with good thoughts:

    Joseph Duemer: Small Town Accountability

    Jeneane Sessum: President Bush Declares War on Weather

    Dave Rogers: What can I say and Unbelievable

    A question and answer that Dave Winer had about the future impact of Katrina–beyond the South. In particular, check out the comments associated with the question.

    Loren Webster: Two Worlds Apart

    Frank Paynter: Down on our Luck

    Scott Reynen: Fear Kills

    Sheila Lennon provides a continuously updated round of news.

    Norm Jenson: Incompetence

    Charles Eicher: Outrage Overload

    Karl: We would have fought or died

    Lauren points to Culture of Life

    There are others, but this is a good start.

  2. From Doc Searls's post Prophecies 

    This event won't have ripple effects. The consequences will be tidal: on transportation, on agriculture, on lumber and other supplies, on retailing, on churches and on citizens across the country who will need to take on the burden of caring for refugees and helping others start new lives.

    Katrina also force us to face a subject even Demoncrats[sic] have stopped talking about, although it lurks beneath everything: class. When the dead are counted, most of them will have been poor. Count on it.

  3. From Paul Graham's essay Inequality and Risk

    Like many startup founders, I did it to get rich. But not because I wanted to buy expensive things. What I wanted was security.


 

Categories: Current Affairs

A number of people at work have asked me why in a previous post I stated that I have concluded that MSFT isn't the kind of place I see myself working at in 5 years. The main reason for this is that I don't think the Microsoft culture and the direction from its executive leadership lends itself to building great consumer-centric software.

A good example of this is taking a look at Windows from the consumer perspective. The decisions that Microsoft has made over the past couple of years from abandoning feature work in Internet Explorer until Firefox became popular to a lot of the original intentions around the 3 pillars of Longhorn (Avalon, WinFS & Indigo) are the actions of a company that is more interested in protecting its market share than one that is trying to improve the lives of its customers by building great software.  Of course, it's not only customers that get the short end of the stick. Employees also have the consequences of this kind of thinking to deal with as well. The primary way this manifests itself is integrated innovation, a buzzword that translates to more dependencies among shipping products, less control of one's product destiny and longer ship cycles. A lot of the frustration you see in the comments in places like the Mini-Microsoft blog are a direct consequence of this focus by our executive leadership.

For now, MSN doesn't suffer from the same kind of culture that I have described but I can see signs that this is just temporary while we face off against competitors like Google [and Yahoo! to a lesser extent]. Since I don't see any reason why the corporate culture will change since the members of our executive leadership who are pushing this kind of thinking are well entrenched, it's just a matter of time before we start thinking that way at MSN as well. 

I give it 5 years, tops. In the meantime, I get to work with really cool people building really cool software that is changing people's lives. I can't ask for much more than that.


 

Categories: Life in the B0rg Cube

September 1, 2005
@ 07:49 PM

In his post The saga of RSS (dis)continuity Jon Udell writes

It's been almost three years since I first wrote about the problem of RSS feed redirection. From time to time I'm reminded that it's still a problem, and today I noticed that two of the blogs I read were affected by it. I was subscribed to John Ludwig at www.theludwigs.com/index.rdf, and today's entry says "Feed moved -- pls check out www.theludwigs.com/index.xml." In fact he's got an index.xml and an atom.xml, and the latter seems to correspond to what's actually published on the blog, but either way the issue is that we've still yet to agree on a standard way for newsreaders to follow relocated feeds.

Jon Udell is incorrect. There is a standard way to redirect feeds that is supported by a large number of RSS readers and it is called "just use HTTP". Many RSS readers including RSS Bandit support the various status codes for indicating that the location of a resource has changed temporarily or permanently as well as when the resource is no longer available.

Instead of constantly reinventing the wheel and looking for solutions to problems that have already been solved, a better use of our energy should be evangelizing how to properly use the existing technology.

Jon Udell does point out

So far as I know, that's where things stand today. If you control your server, you can of course do an HTTP-level redirect. But your blog is hosted, you probably can't, in which case you need to use the feed itself to signal the redirect.

This part just boggles my mind. If the user's blog is hosted (e.g. they are a LiveJournal, MSN Spaces or BlogSpot user) then not only can't they control the HTTP headers emitted by the server but they don't control their web feed either. So what exactly is the alternate solution that works in that case? If anything, this points to the fact that blog hosting services should give users the ability to redirect their RSS feed when they leave the service. This is a feature request for the various blog hosting services not an indication that a new technical solution is needed.

 


 

September 1, 2005
@ 06:34 PM

I have a LazyWeb request. I plan to write an article about my Seattle Movie Finder hack which is built on the MSN Virtual Earth APIs next week. Currently the application works in Internet Explorer but not in Firefox. This isn't due to any issues with VE but has to do with the fact that I don't know what the Firefox alternatives to innerHTML and some other properties of the DOM in IE actually are nor do I have time to brush up on writing Firefox-specific Javascript.

If any kind soul can do a view source on the Seattle Movie Finder and modify it to also work in Firefox, I'd appreciate it. Thanks in advance.

Update:  Julien Couvreur just swung by my office and fixed the page so it works in Firefox & IE. The new version of the site should be up in a few hours.


 

Categories: Web Development