Our implementation of the MetaWeblog API for MSN Spaces is now publicly available. You can use the API to create, edit and delete blog posts on your space. The following blogging applications either currently work with our implementation of the MetaWeblog API or will in their next release

  1. W.Bloggar
  2. Blogjet
  3. Ecto
  4. Zoundry
  5. Qumana
  6. Onfolio
  7. Elicit
  8. PostXING
  9. Pocket Blogger
  10. Diarist - PocketPC

I have also provided a pair of tutorials for managing your MSN Spaces blog using desktop blogging tools, one on using Blogjet to manage your MSN Spaces blog and the other on using W.Bloggar to manage your blog on MSN Spaces.

The following information is for developers who would like to build applications that programmatically interact with MSN Spaces.

Supported Blogger and MetaWeblog API methods:

  • metaWeblog.newPost (blogid, username, password, struct, publish) returns string
  • metaWeblog.editPost (postid, username, password, struct, publish) returns boolean
  • metaWeblog.getPost (postid, username, password) returns struct
  • metaWeblog.getCategories (blogid, username, password) returns array of structs
  • metaWeblog.getRecentPosts (blogid, username, password, numberOfPosts) returns array of structs
  • blogger.deletePost(appkey, postid, username, password, publish) returns boolean
  • blogger.getUsersBlogs(appkey, username, password) returns array of structs
  • blogger.getUserInfo(appkey, username, password) returns struct

Unsupported MetaWeblog API methods:

  • metaWeblog.newMediaObject (blogid, username, password, struct) returns struct

NOTE: The appKey parameter used by the deletePost, getUsersBlogs and getUserInfo method is ignored. MSN Spaces will not require an application key to utilize its APIs.

Expect to see more information about the MetaWeblog API for MSN Spaces on http://msdn.microsoft.com/msn shortly. We also will be providing a forum to discuss the APIs for MSN Spaces at http://forums.microsoft.com/msdn in the next few days. If you have questions about using the API or suggestions about other APIs you would like to see, either respond to this blog entry or send me mail at dareo AT microsoft DOT com. 


 

Categories: Windows Live

The following is a tutorial on posting to your blog on MSN Spaces using the W.Bloggar desktop blogging application.

  1. Create a Space on http://spaces.msn.com if you don't have one

  2. Go to 'Edit Your Space->Settings->Email Publishing'

  3. Turn on Email Publishing (screenshot below)

  4. Choose a secret word (screenshot below)

  5. Download and install the latest version of W.Bloggar from http://www.wbloggar.com

  6. Go to File->Add Account

  7. On the next screen, answer "Yes, I want to add it as a new account" when asked whether you already have a blog

  8. Select 'Custom' as your blog tool and choose an alias for this account (screenshot below)

  9. Select your Custom Blog Tool Settings as shown (screenshot below)

  10. Specify your provider information as follows; Host=storage.msn.com, Page=/storageservice/MetaWeblog.rpc, Port=443, HTTPS=checked (screenshot below)

  11. Enter your username and password. Your username is the name of your space (e.g. I use 'carnage4life' because the URL of my space is http://spaces.msn.com/members/carnage4life). The password is the secret word you selected when you turned on Email-Publishing on your space. (screenshot below)

  12. Click Finish.

  13. Go ahead and create, edit or delete blog posts on your blog using W.Bloggar


 

Categories: Windows Live

The following is a tutorial on posting to your blog on MSN Spaces using the Blogjet desktop blogging application.

  1. Create a Space on http://spaces.msn.com if you don't have one

  2. Go to 'Edit Your Space->Settings->Email Publishing'

  3. Turn on Email Publishing (screenshot below)

  4. Choose a secret word (screenshot below)

  5. Download and install the latest version of Blogjet from http://www.blogjet.com

  6. Go to Tools->Manage Accounts

  7. Create a new account where the user name is the name of your space (e.g. I use 'carnage4life' because the URL of my space is http://spaces.msn.com/members/carnage4life). The password is the secret word you selected when you turned on Email Publishing on your space.

  8. On the next screen select "I already have a blog"

  9. Specify your provider information as shown below. Host=storage.msn.com, Page=/storageservice/MetaWeblog.rpc, Port=443, Use SSL=checked (screenshot below)

  10. Keep clicking Next until you are done

  11. Go ahead and create, edit or delete blog posts on your space using Blogjet


 

Categories: Windows Live

The number one problem that faces developers of feed readers is how to identify posts. How does a feed reader tell a new post from an old one whose title or permalink changed? In general how you do this is to pick a unique identifier from the metadata of the feed item to use to tell it apart from others. If you are using the Atom 0.3 & 1.0 syndication formats the identifier is the <atom:id> element, for RSS 1.0 it is the rdf:about attribute and for RSS 0.9x & RSS 2.0 it is the <guid> element.

The problem is that many RSS 0.9x & 2.0 feeds do not have a <guid> element which usually means a feed reader has to come up with its own custom mechanism for identifying items. In many cases, using the <link> element is enough because most items in a feed map to a single web resource with a permalink URL. In some pathological cases, a feed may not have <guid> or <link> OR even worse may use the same value in the <link> element for each item in the feed. In such cases, feed readers usually resort to heuristics which are guaranteed to be wrong at least some of the time.

So what does this have to do with the Newsgator API? Users of recent versions of RSS Bandit can synchronize the state of their RSS feeds with Newsgator Online using the Newsgator API. Where things get tricky is that this means that both the RSS Bandit and Newsgator Online either need to use the same techniques for identifying posts OR have a common way to map between their identification mechanisms. When I first used the API, I noticed that Newsgator has it's own notion of a "Newsgator ID" which it expects clients to use. In fact, it's worse than that. Newsgator Online assumes that clients that synchronize with it actually just fetch all their data from Newsgator Online including feed content. This is a pretty big assumption to make but I'm sure it made it easier to solve a bunch of tricky development problems for their various products. Instead of worrying about keeping data and algorithms on the clients in sync with the server, they just replace all the data on the client with the server data as part of the 'synchronization' process.

Now that I've built an application that deviates from this fundamental assumption I've been having all sorts of interesting problems. The most recent being that some users complained that read/unread state wasn't being synced via the Newsgator API. When I investigated it turned out that this is because I use <guid> elements to identify posts in RSS Bandit while the Newsgator API uses the "Newsgator ID". Even worse is that they don't even expose the original <guid> element in the returned feed items. So now it looks like fixing the read/unread not being synced bug involves bigger and more fundamental changes than I expected. More than likely I'll have to switch to using <link> elements as unique identifiers since it looks like the Newsgator API doesn't throw those away.

Frustrating.


 

Tim Ewald has an astute post entitled PaulD's new XSD data binding WG where he discusses a recently chartered W3C working group. He writes

Paul responded to yesterday's post to explain the need for the new W3C XML Schema Patterns for Databinding Working Group, which he chairs. He points out that the move by the WS-I to deprecate encoding in favor of literal schema was based on a reasonable argument (that there is no spec for how to translate an XSD in a WSDL - which describes a tree of named structural types - into an input to SOAP encoding - which acts on a graph of unnamed structural types) but that the end result made interop harder because it opened up the door to using all of XSD. I disagree. The WSDL spec opened the door to using all of XSD for both encoded and literal bindings. The work that SOAPbuilders did provided a set of test cases for mapping common types and structures. It did not, however, address questions like “how do you map substitution groups to code using an encoded binding”, something that is completely legal according to WSDL. In other words, the shift from encoding to literal in no way widened the number of databinding cases we had to be concerned about. That's a red herring. The real problem has been the lack of SOAPbuilders-style test suites to cover more of XSD or the lack of a formal specification that narrows XSD to a more easily supported subset (an option that the WS-I discarded).

This is one of those issues which that which I use to blame on the complexity of XSD but have adjusted to also blaming vendors of XML Web services toolkits as well. The core problem is that every vendor of XML Web Services toolkits pretends they are selling a toolkit for programming with distributed objects and tries their best to make their tool hide the XML-ness of the wire protocols (SOAP), interface description language (WSDL) and data types (XSD). Of course, these toolkits are all leaky abstractions made even leakier than usual by the impedance mismatch between XSD and the typical statically typed, object oriented programming language that is popular with the enterprise Web services crowd (i.e. Java or C#).

The W3C forming a working group to standardize the collection of hacks and kludges that various toolkits use when mapping XSD<->objects is an attempt to standardize the wrongheaded thinking of the majority of platform vendors selling XML Web Services toolkits.  

Reading the charter of the working group is even more disturbing because not only do they want to legitimize bad practices but they also plan to solve problems like how to version classes across programming languages and coming up with XML representations of common data structures for use across different programming languages. Thus the working group plans to invent as well as standardize common practice. Sounds like the kind of conflicting goals which brought us XSD in the first place. I wish them luck.


 

Categories: XML Web Services

December 11, 2005
@ 05:45 PM

I've been following a series of posts on Oleg Tkachenko's blog with some bemusement. In his post A business case for XSLT 2.0? he writes

If you are using XSLT and you think that XSLT 2.0 would provide you some real benefits, please drop a line of comment with a short explanation pleeeease. I'm collecting some arguments for XSLT 2.0, some real world scenarios that are hard with XSLT 1.0, some business cases when XSLT 2.0 would provide an additional value. That's really important if we want to have more than a single XSLT 2.0 implementation...

PS. Of course I've read Kurt's "The Business Case for XSLT 2.0" already.

Update: I failed to stress it enough that it's not me who needs such kind of arguments. We have sort of unique chance to persuade one of software giants (guess which one) to support XSLT 2.0 now.

In a follow up post entitled XSLT 2.0 and Microsoft Unofficial Survey he reveals which of the software giants he is trying to convince to implement XSLT 2.0 where he writes

Moving along business cases Microsoft seeks to implement XSLT 2.0 I'm trying to gather some opinion statistics amongs developers working with XML and XSLT. So I'm holding this survey at the XML Lab site:

Would you like to have XSLT 2.0 implementation in the .NET Framework?

The possible answers are:

  • Yes, I need XSLT 2.0
  • Yes, that would be nice to have
  • No, continue improving XSLT 1.0 impl instead
  • No, XSLT 1.0 is enough for me

...

Take your chance to influence Microsoft's decision on XSLT 2.0 and win XSLT 2.0 book!

My advice to Oleg, if you want to see XSLT 2.0 in the .NET Framework then gather some like minded souls and build it yourself. Efforts like the MVP.XML library for the .NET Framework shows that there are a bunch of talented developers building cool enhancements to the basic XML story Microsoft provides in the .NET Framework.

I'm not sure how an informal survey in a blog would convince Microsoft one way or the other about implementing a technology. A business case to convince a product team to do something usually involves showing them that they will lose or gain significant marketshare or revenue by making a technology choice. A handful of XML geeks who want to see the latest and greatest XML specs implemented by Microsoft does not a business case make. Unfortunately, this means that Microsoft will tend to be a follower and not a leader in such cases because customer demand and competitive pressure don't occur until other people have implemented and are using the technology. Thus if you want Microsoft to implement XSLT 2.0, you're best bet is to actually have people using it on other platforms or on Microsoft platforms who will clamor for better support instead of relying on informal surveys and comments in your blog.

Just my $0.02 as someone who used to work on the XML team at Microsoft.


 

Categories: XML

December 9, 2005
@ 08:22 PM

Yahoo! continues to make all the right moves. From the post y.ah.oo! on the del.icio.us weblog we learn

We're proud to announce that del.icio.us has joined the Yahoo! family.  Together we'll continue to improve how people discover, remember and share on the Internet, with a big emphasis on the power of community.  We're excited to be working with the Yahoo! Search team - they definitely get social systems and their potential to change the web. (We're also excited to be joining our fraternal twin Flickr!)

We want to thank everyone who has helped us along the way - our employees, our great investors and advisors, and especially our users.  We still want to get your feedback, and we look forward to bringing you new features and more servers in the future.

I look forward to continuing my vision of social and community memory, and taking it to the next level with the del.icio.us community and Yahoo!

Congrats to Joshua Schachter and the Yahoo! folks. This is definitely a great match.

 

Categories: Social Software

Thanks to Miguel De Icaza, I found an interesting speech by Harold Pinter which is reprinted in the article Art, Truth and Politics. Parts of the speech ramble at times but there is a particularly potent message which has been excerpted below

The tragedy of Nicaragua was a highly significant case. I choose to offer it here as a potent example of America's view of its role in the world, both then and now.

I was present at a meeting at the US embassy in London in the late 1980s.

The United States Congress was about to decide whether to give more money to the Contras in their campaign against the state of Nicaragua. I was a member of a delegation speaking on behalf of Nicaragua but the most important member of this delegation was a Father John Metcalf. The leader of the US body was Raymond Seitz (then number two to the ambassador, later ambassador himself). Father Metcalf said: 'Sir, I am in charge of a parish in the north of Nicaragua. My parishioners built a school, a health centre, a cultural centre. We have lived in peace. A few months ago a Contra force attacked the parish. They destroyed everything: the school, the health centre, the cultural centre. They raped nurses and teachers, slaughtered doctors, in the most brutal manner. They behaved like savages. Please demand that the US government withdraw its support from this shocking terrorist activity.'

Raymond Seitz had a very good reputation as a rational, responsible and highly sophisticated man. He was greatly respected in diplomatic circles. He listened, paused and then spoke with some gravity. 'Father,' he said, 'let me tell you something. In war, innocent people always suffer.' There was a frozen silence. We stared at him. He did not flinch.

Innocent people, indeed, always suffer.

Finally somebody said: 'But in this case "innocent people" were the victims of a gruesome atrocity subsidised by your government, one among many. If Congress allows the Contras more money further atrocities of this kind will take place. Is this not the case? Is your government not therefore guilty of supporting acts of murder and destruction upon the citizens of a sovereign state?'

Seitz was imperturbable. 'I don't agree that the facts as presented support your assertions,' he said.

As we were leaving the Embassy a US aide told me that he enjoyed my plays. I did not reply.

I should remind you that at the time President Reagan made the following statement: 'The Contras are the moral equivalent of our Founding Fathers.'

The United States supported the brutal Somoza dictatorship in Nicaragua for over 40 years. The Nicaraguan people, led by the Sandinistas, overthrew this regime in 1979, a breathtaking popular revolution.

The Sandinistas weren't perfect. They possessed their fair share of arrogance and their political philosophy contained a number of contradictory elements. But they were intelligent, rational and civilised. They set out to establish a stable, decent, pluralistic society. The death penalty was abolished. Hundreds of thousands of poverty-stricken peasants were brought back from the dead. Over 100,000 families were given title to land. Two thousand schools were built. A quite remarkable literacy campaign reduced illiteracy in the country to less than one seventh. Free education was established and a free health service. Infant mortality was reduced by a third. Polio was eradicated.

The United States denounced these achievements as Marxist/Leninist subversion. In the view of the US government, a dangerous example was being set. If Nicaragua was allowed to establish basic norms of social and economic justice, if it was allowed to raise the standards of health care and education and achieve social unity and national self respect, neighbouring countries would ask the same questions and do the same things. There was of course at the time fierce resistance to the status quo in El Salvador.

I spoke earlier about 'a tapestry of lies' which surrounds us. President Reagan commonly described Nicaragua as a 'totalitarian dungeon'. This was taken generally by the media, and certainly by the British government, as accurate and fair comment. But there was in fact no record of death squads under the Sandinista government. There was no record of torture. There was no record of systematic or official military brutality. No priests were ever murdered in Nicaragua. There were in fact three priests in the government, two Jesuits and a Maryknoll missionary. The totalitarian dungeons were actually next door, in El Salvador and Guatemala. The United States had brought down the democratically elected government of Guatemala in 1954 and it is estimated that over 200,000 people had been victims of successive military dictatorships.

Six of the most distinguished Jesuits in the world were viciously murdered at the Central American University in San Salvador in 1989 by a battalion of the Alcatl regiment trained at Fort Benning, Georgia, USA. That extremely brave man Archbishop Romero was assassinated while saying mass. It is estimated that 75,000 people died. Why were they killed? They were killed because they believed a better life was possible and should be achieved. That belief immediately qualified them as communists. They died because they dared to question the status quo, the endless plateau of poverty, disease, degradation and oppression, which had been their birthright.

The United States finally brought down the Sandinista government. It took some years and considerable resistance but relentless economic persecution and 30,000 dead finally undermined the spirit of the Nicaraguan people. They were exhausted and poverty stricken once again. The casinos moved back into the country. Free health and free education were over. Big business returned with a vengeance. 'Democracy' had prevailed.

But this 'policy' was by no means restricted to Central America. It was conducted throughout the world. It was never-ending. And it is as if it never happened.

The United States supported and in many cases engendered every right wing military dictatorship in the world after the end of the Second World War. I refer to Indonesia, Greece, Uruguay, Brazil, Paraguay, Haiti, Turkey, the Philippines, Guatemala, El Salvador, and, of course, Chile. The horror the United States inflicted upon Chile in 1973 can never be purged and can never be forgiven.

Hundreds of thousands of deaths took place throughout these countries. Did they take place? And are they in all cases attributable to US foreign policy? The answer is yes they did take place and they are attributable to American foreign policy. But you wouldn't know it.

It never happened. Nothing ever happened. Even while it was happening it wasn't happening. It didn't matter. It was of no interest. The crimes of the United States have been systematic, constant, vicious, remorseless, but very few people have actually talked about them. You have to hand it to America. It has exercised a quite clinical manipulation of power worldwide while masquerading as a force for universal good. It's a brilliant, even witty, highly successful act of hypnosis.

I put to you that the United States is without doubt the greatest show on the road. Brutal, indifferent, scornful and ruthless it may be but it is also very clever. As a salesman it is out on its own and its most saleable commodity is self love. It's a winner. Listen to all American presidents on television say the words, 'the American people', as in the sentence, 'I say to the American people it is time to pray and to defend the rights of the American people and I ask the American people to trust their president in the action he is about to take on behalf of the American people.'

It's a scintillating stratagem. Language is actually employed to keep thought at bay. The words 'the American people' provide a truly voluptuous cushion of reassurance. You don't need to think. Just lie back on the cushion. The cushion may be suffocating your intelligence and your critical faculties but it's very comfortable. This does not apply of course to the 40 million people living below the poverty line and the 2 million men and women imprisoned in the vast gulag of prisons, which extends across the US.

The United States no longer bothers about low intensity conflict. It no longer sees any point in being reticent or even devious. It puts its cards on the table without fear or favour. It quite simply doesn't give a damn about the United Nations, international law or critical dissent, which it regards as impotent and irrelevant.

The winners get to write the history books. I wonder what they'll say about this era in a hundred or a thousand years from now.


 

Categories: Current Affairs

It seems I missed that we launched the Windows Live Favorites for MSN Search Toolbar plugin earlier this week. I was harrassing some members of the Live Favorites team about shipping a toolbar plugin only to find out that they already had. Below is an excerpt from the download page

With Windows Live Favorites for MSN Search Toolbar (Beta) you'll be able to access your favorites from any PC, add new sites easily, find your favorites quickly, and manage them even when you are away from your home PC.

What you can do with it:    

  • Easily import your current favorites from Internet Explorer and MSN Explorer to Windows Live Favorites and use them right away
  • Find favorites quickly based on name, address, or keyword - so finding what you've already discovered on the Web is simple 
  • Add new sites to your Windows Live Favorites with a single click, and access them from anywhere
  • Collect and save new links even when you're away from your home computer

Another Windows Live product marches down the beta path on the road to going gold.


 

Categories: Windows Live

December 8, 2005
@ 11:17 PM

I just spent some time browsing the questions on the Yahoo! Answers site and as usual Yahoo! shows that they get it. They may build unspectacular user interfaces but they know how to build useful software for users of the World Wide Web.

I find this to be an interesting experiment in providing alternatives to traditional search engines for answering people's questions. Unlike Google Answers, there is no payment required from the person whose question is answered. This raises the question of why anyone would want to answer questions on the site. Whuffie?


 

Categories: Social Software