From the blog post on the Windows Live Search team's blog entitled Three new features in Live Search Images we learn

We know you love searching for people with our image search enginewe’ve worked hard to make it easy and fun. Now we’ve made it even better. Today we shipped three new features that help you find faces, portraits and black and white images. Try these links to see them in action: 

  1. without the new features – jimi hendrix
  2. with new face filtering on – jimi hendrix filter:face
  3. with new portrait filtering on – jimi hendrix filter:portrait
  4. with new black and white filtering on – jimi hendrix filter:bw

The feature works pretty well as long as you enclose the name of the person in quotes and use the image search tab. For example, check out the queries

Very Impressive. The addition of side panel showing "Related People" is also a very nice touch. This is one of the coolest additions to a search engine I've seen this year. I actually lost track of time while browsing faces when I first tried out the feature. Kudos to the Live Search folks.

PS: It seems I've been totally spoiled by Google's Universal Search because I originally performed my searches on the "Web" tab and thought it was a bug when I didn't get any results. I've already forgotten that there was a time when you had to go to each topic specific tab and search for what you want instead of typing your results in a single box and having the search engine figure out if it was a web search, image search, video search or whatever. I can't wait until every search engine has an equivalent feature.


 

Categories: Windows Live

There have been a number of updates to Windows Live Spaces over the past few months that have moved to emphasize using the site to communicate and connect with people as opposed to personal publishing. When Windows Live Spaces was launched about three years ago, it's sweet spot was as a way for users to publish blog posts, photos, lists of their favorite music or books and other forms of personal expression. Over the past few years, experience has thought us as an industry that providing a platform for our users to communicate and connect with each other is more valuable to them than simply providing a personal publishing platform. With that in mind, the product team has been working at a rapid clip to add more features to the site that enable people to connect and communicate with each other.

From the blog post entitled Stay in touch with friends and meet new people with Guestbook and Messaging on Spaces on the Windows Live Spaces team blog we learn

Spaces has always been a great place to express yourself and share the stuff you care about with your friends or the world at large, but there haven’t been that many options to communicate with people through your space. There are lots of ways to passively connect you’re your friends –Windows Live Messenger gleam integration, the Friends feature, and the What’s New feature which has now been incorporated into the Spaces Home, but in this release we really focused on giving you active ways to communicate with your friends and the people who visit your space through our new Guestbook and Messaging features. We know you’ve been asking for these features for a long time (particularly the Guestbook!), and we’re glad that we can finally deliver them
...
Guestbook
The Guestbook is a brand new module that you can add to your Space through the Customize menu or by clicking the “+” sign on a Guestbook in someone else’s space...Once you add the Guestbook module to your space (new spaces have it by default) you can add a custom greeting, which can include formatting, images, and even videos:..Visitors to your space can then leave and view comments in your guestbook (they can use images, video, and formatting too):

...
Messaging
Where the Guestbook is a great place for public communication the new Messaging feature is a great way to meet people on spaces or use it to stay in touch with your Spaces Friends. With Spaces messaging you can send private messages to your spaces friends or other spaces users without revealing you email address to others or having to using an outside e-mail service...You can access your messaging inbox from the Spaces Home by clicking on the “Messages” link:

On your messages page you can view and delete messages you’ve received and sent, and you can reply to these messages:

clip_image008

There are lots of ways you can initiate a new conversation through Spaces messaging. If you are visiting a cool space you can click send a message from the visitor tools on that person’s space:

clip_image010

You can also click the “Send a message” link at the bottom of a blog post to send that person a message referring to the post:

That was from two months ago. Last week there were fresh updates to the service which was announced in the post entitled Just released: Three months of new updates to Windows Live Spaces that stated

As of this evening, we finished rolling out the latest version of Spaces. Whether you or your friends are checking out what your Messenger contacts have been up to, organizing your lists, navigating around your space, or setting up a space, the latest Spaces release has a lot of new features.
...
Spaces home page updates 
We've made some slight changes to the design of your Spaces home page so it's even easier to see what your Messenger contacts are doing with their spaces.   We've also added birthday reminders!

image  

To see birthday notifications, first share your contact information and then subscribe to a contact's information.  You can subscribe to contact information through Spaces, Messenger, or Hotmail.

  • Spaces:  Roll over a person's profile picture and in the preview window, click on the “Receive contact updates” link
  • Messenger:  Right-click a contact, click “Edit contact”, and check “Subscribe to updates for this contact”
  • Hotmail:  Click Contacts in the lower lefthand corner, “Edit contact”, and check “Receive contact updates from this person”

If your contacts have entered their birthday information, you'll see their upcoming birthdays on your Spaces home-page, and you'll be able to send them an electronic greeting card from MSN Greetings powered by American Greetings  (currently only available in the US market).

The What’s New feature is what I've been spending my time on recently and I'm glad to see it getting more visibility in the user experience especially since as Mike Torres said, there is some more goodness coming soon to this feature. :) 
 

Categories: Social Software | Windows Live

Yesterday I got offered an opportunity to interview Vint Cerf just before he gave his talk entitled Tracking the Internet into the 21st Century (link is to video of the talk) at Google's Kirkland offices. I got to ask the questions I blogged about yesterday and also learned about some of Vint Cerf's interests in Nigeria. Below are the questions I asked and his paraphrased answers to my questions.

Yesterday I got offered an opportunity to interview Vint Cerf just before he gave his talk entitled Tracking the Internet into the 21st Century (link is to video of the talk) at Google's Kirkland offices. I got to ask the questions I blogged about yesterday and also learned about some of Vint Cerf's interests in Nigeria. Below are the questions I asked and his paraphrased answers to my questions.

Q: Why did he decide to leave MCI, a company steeped in networking technology, to join Google, an advertising and search engine company, as Chief Internet Evangelist

A: The job title was not his doing. Larry, Sergey and Eric told him they wanted him to continue his efforts in encouraging the growth of the Internet around the world and thought the title "Chief Internet Evangelist" best fit this position. There are 6.5 billion people on the planet today yet there are only 1 billion people on the Internet. Google would like to see the other 5 billion people on the Internet because the more people there are using the Internet, the better it is for Google. This is why the company needed a "Chief Internet Evangelist".

Vint Cerf spends a significant portion of his time encouraging implementations of the Internet. He travels all over the world meeting with senior government officials (presidents, ministers of information, etc) to recommend Internet friendly policies, discourage the rise of monopolistic or closed networks and encourage domestic/foreign investments in fledgling markets where Internet usage hasn't taken off. For example, he is working with some charitable entities to donate solar powered Internet cafes to businesses in Nigeria to encourage the usage of the Internet in remote or underprivileged parts of the country.

One aspect of the Internet's growth which he didn't pay much attention to at first but does now is Internet enabled mobile phones. It is estimated that there will be 3 billion people with mobile phones by the end of the year. That is 3 billion people who could all be connected to the Internet, if Internet connectivity became ubiqitous on mobile devices within a few years.

Looking back at the past few years, it is clear that adding more users to the Internet increases the quantity and diversity of information on the Web. This trend has been hastened by the rise of the consumer as producer. We now have people who would be traditionally considered to be consumers producing content on blogs, video sharing sites like YouTube, and creating social networks on sites like Orkut and Facebook. Another interesting trend is the rise of virtual worlds like World of Warcraft and Second Life. In these worlds users are creating interesting economic and sociological experiments with fascinating consequences (e.g. gold farming in China). In fact, some college professors are encouraging their students to join these sites to test out economic and sociological theories in ways that simply weren't feasible in the past. An interesting idea would be to see if we could create virtual objects which were associated with and could influence objects in the real world. For example, a virtual university where the electron microscopes and telescope actually displayed image data from electron microscopes and telescopes in the real world. Maybe as an optimization we could cache large amounts of the astronomical data so multiple instances of the virtual telescope could be used at once but only rarely would the physical telescope have to be used so there wasn't resource contention. Given that Google already has already started partnering with NASA to store and process large amounts of astronomical data this may be something that the company could be interested in trying out in the future.

Q: He has spoken out on Google's behalf in favor of net neutrality. However there seem to be many different definitions of Net Neutrality, some of which imply that having different tiers for Quality of Service is OK and some of which don't, which definition is Google in favor of and why?

A: Google didn't start the network neutrality debate, AT&T's CEO Ed Whitacre did when he claimed that companies like Google are getting a "free ride" on his network. This seems backwards to Vint Cerf since AT&T's customers pay broadband fees so they can access any site on the Internet. Expecting companies to pay AT&T's for access to its paying customers who are already paying for access to the Internet is old school "Telephone Think" that harkens back to the monopoly days of Ma Bell.

The philosophy of the Internet comes from a completely different roots. The philosophy was pretty much "Here are the specs, if you can figure out how to implement our protocols and can connect to our network then it's all good". This open philosophy is what enabled the growth of the Internet and eventually led to commercial entities [including telcos like AT&T] to become part of the network.

Vint Cerf and Google's definition of network neutrality has these five basic pillars

  1. users should be able to reach any service connected to the network
  2. users should be able to run any application and connect to the network (of course, this doesn't apply to applications that violate the law)
  3. it is OK to charge for higher speed connections to the network.
  4. operators should not discriminate against services a user is trying to access by varying the user's QoS or access charges when accessing that service.
  5. Discrimination against a type of service (e.g. all video traffic has different QoS) is OK but singling out specific sites is not.

A number of ISPs already break these rules yet are not upfront with users that they are not getting a full Internet experience. Some claim that these rules limit the ability of ISPs to prevent denial of service attacks, fight spam and perform other activities that protect their networks. Google believes that such protections can still be enforced but should be done at the application layer and not by discriminating against packets. As for ISPs that believe this limits their ability to provide value added services [such as video sharing] the response is that competition should be based on providing innovative services instead of by artificially limiting the capabilities of your competitors because you control the network pipes.

Google wants the Internet to be an open environment which allows for innovation. They believe this is important to the Internet's growth.

Q: Google just pledged to spending up to $4.6 billion to license the 700MHz wireless spectrum in what the company has described as the most significant auction of wireless spectrum in history by the U.S. federal government. Why is this auction so significant and what kind of services can we expect from Google if it wins the auction?

A: [Editor's Note: Why this auction is significant is summarized quite well in David Stone's post Vint Cerf and the 700MHz Spectrum]
Google's primary goal is to increase the openness of Internet-connected networks around the world. This is why they've committed at least $4.6 billion to licensing the 700MHz wireless spectrum.

It isn't quite clear what business model Google will use the 700MHz spectrum for if they win the auction. Whatever they end up deciding, it will honor the four principles of open platforms they have espoused with regards to wireless networks. It is quite likely that leasing out this capacity is one of the business models Google will try out. However due to the propagation characteristics of the 700MHz band, it is likely that different business models will have to apply in rural versus urban environments.

Q: Net neutrality gets a lot of press, however there are other issues facing the Internet as well. What keeps him up at night besides net neutrality? Botnets? Government censorship of the Internet? Concerns that we’ll never upgrade from the current version of the Internet since it is already so entrenched around the world?

A: The rise of botnets, domain name security and the problems related to handling internationalized domain names (IDNs) are at the top of the list of problems facing the Internet that concern Vint Cerf. The IDN problem is particularly pernicious because not only did we have to figure out how to support non-ASCII characters in a system that was never designed to support them but once a way was found, the IDN homograph attack was born which promptly reverse most of the gains.

Switching to IPv6 is also an issue facing the Internet that we will have to deal with sooner than most people expect. Some have predicted that at the current rate of allocation by ICAAN we will run out of IPv4 addresses by 2011. At that point, it will start to look a lot more attractive to switch to IPv6. There may be workarounds such as people leasing some of the blocks they've been allocated to other parties but this leads to interesting problems for routers since the routing tables will be screwed up and will have to be tampered with to adjust to these shenanigans. Given that pretty much all the major operating systems (Vista, Mac OS X, *nix, etc) and networking equipment manufacturers (e.g. Juniper, Cisco) support IPv6, it's really up to the ISPs and they likely won't make any moves without customer demand. Unfortunately for them, things are liably to get ugly in the next five years or so and they may have to change their minds.


 

Mary Hodder has a post entitled Email Has Evaporated As a Social Tool where she pointed out that she no longer uses email as a "social" tool. Specifically, she doesn't talk to friends and family over email, instead email is for mailing lists, business and spam. Instead she talks to friends and family on Facebook and over IM.

I'm in the same boat. Most of the email I get at my personal email address falls into three categories (a) spam, (b) bills and (c) stuff related to my blog. There is the occassional “social” email exchange with a friend but that happens maybe once every month or two. On the other hand, I’ve been connecting with lots of people who I haven’t talked to in several years from elementary & high school buddies from my time in Nigeria to relatives of friends who live in New York via Facebook.  I’m now a regular user of the site and there seem to be a number of places where the user experience tends to be frustrating which could be fixed with a minor tweak or two. The problems and potential solutions below

  1. Liberate the Status Updates from the Tyranny of the Web Page (APIs, APIs, and Even More APIs): A number of online services have found that opening up their services by providing APIs that enable users to access their stuff from other sites, desktop apps or on their mobile phones is goodness. However a lot of the Facebook API seems geared towards building apps that are hosted in Facebook, than in enabling more ways for users to interact with their data outside of the Facebook user experience. One example of a place where Facebook could add more value to its users via an API is status updates. If I want to view the status updates from my friends, I have to use the status update page on Facebook. I can’t use a desktop application that can just sit in my system tray like Twitterific does for Twitter nor can I write a Windows Live Messenger add-in which syncs my Facebook status message with my IM status message. I’d use the feature a whole lot more if it didn’t involve so many clicks and navigating to the Website every time I wanted to see what was going on with my friends or change my status.

  2. Allow me to Segregate my Friends by Network: Like most people outside college who use Facebook, I now have two broad classes of people on my friends list in Facebook; people I know professionally and people I know personally. I don't think only beauty queens like Miss New Jersey will have problems once they leave school and have all these embarassing pics from college frat parties now available to people who they meet professionally who "friend" them on Facebook. Currently people can decide to create a new account or delete those parts of their lives they feel will be embarassing in a different social context. Being able to create an album that is only visible to my college “friends” or wall posts that are only visible to my work “friends” mirrors reality and is something that Facebook if they don’t want their user base to outgrow the site when they make life transitions.

  3. Fix “How do you know this person?”: Upon adding someone as a friend, Facebook asks “How do you know this person?” then presents a fixed list of options that seem geared towards college students. There’s are lots of people on my list that I leave blank because there are no options for “attended a conference together”, “works in the same industry”, “fan of his blog”, “is my realtor”, “is my doctor”, “is my accountant”, etc. Instead there are options like “we hooked up” and “took a summer course together”. I can understand that they may not want to allow free form entries but they least they could do is update the list to account for their broadening user base. See the following posts for more on this topic; How do I know this person? Through the Web! by Jon Udell, Social networks as “friend” Nazi (design flaws in Facebook, Jaiku, Twitter) by Robert Scoble and It's time to open up networking, again by Dave Winer.

  4. Put Actual Content in Email Notifications: This is another issue that comes up a lot. Facebook will send you a notification that you’ve gotten a message from another user but not the actual content of the message. The purpose of this seems to be to increase the number of page views generated by users which seems to be working given that the site averages over 50 page views a day per user according to ComScore. Unfortunately, it is also rather irritating. Maybe a healthy balance is to put the content of the message in the email and provide links that take you to the response page directly in the email.   

Speaking of feedback on the Facebook user experience, I wonder if anyone from Facebook will be at the Facebook Developer Garage- Seattle next week? It should be an interesting opportunity to get to hear the perspectives of a broad collection of developer minded people who've been taking the site for a spin.

Now playing: Three 6 Mafia - Stay Fly (feat. Young Buck, EightBall & MJG)


 

Categories:

July 23, 2007
@ 05:44 PM

I just found out that Vint Cerf, one of the founding fathers of the Internet and current Google employee, will be giving a talk in the Seattle area later today. I’ll be attending the talk and have a list of questions I’d like to ask during the Q&A session. However I suspect that a number of my readers likely have better questions than those I can come up with. Here are my questions, let me know what you think of them and suggest better ones if you don’t like mine

As usual, I’ll blog the proceedings as a Trip Report

Now playing: Twista - Do Wrong (feat. Lil Kim)


 

Categories: Technology

One of my favorite quotes about the art of software development is

You cannot eliminate complexity, all you can do is move it around

This is very true when it comes to designing systems. You should always look with skepticism when someone tells you that some development tool or technology eliminates complexity. Usually this means the complexity has been hidden but lurks just below the surface waiting to ensnare unwary programmers. However on certain rare occassions, the complex part of the problem is actually solved by the tool or technology effectively eliminating from the worries of the application developer. This is very rare.

A good example of a technology which eliminated complexity for application developers by moving it into the purvey of runtime frameworks is garbage collection. The complexity of memory management was eliminated as a concern of application developers and moved into the domain of application framework developers. This was a win for the industry since the complexity could be relegated to realm of language runtime gurus.

There are lots of examples of technologies that claim to "eliminate complexity" but actually just move it around in a way that makes the complexity less obvious. This is often because, the person claiming to be eliminating the complexity fails to acknowledge where the complexity lies in the first place. For example, when the .NET Framework was first shipped by Microsoft there were lots of claims that DLL Hell would now be a thing of the past. You can still find blog posts and articles like Simplifying Deployment and Solving DLL Hell with the .NET Framework from that era claiming that "DLL Hell" is solved. The problem with that thinking was that versioning and keeping libraries backwards compatible is a fundamentally hard problem that often has no good solution. At the end of the day, you only have two real choices when it comes to preserving backwards compatibility; never change the existing functionality of a library or always ensure that applications always run against the original library they were compiled against so that if the new one changes behavior, they are unaffected. Both choices are untenable which means there will always be complexity when it comes to how one handles versioning and system libraries.

It’s been about six years since the first versions of the .NET Framework were shipped and such hyperbole has died down. Today you can find posts like What A Difference A Revision Makes - IConfigMapPath Is Inaccessible Due To Its Protection Level and Microsoft .NET Patch May Make PCs Go "Haywire" which indicate that DLL Hell is still alive and well when it comes to programming against the .NET Framework.

This brings me to my point. Recently Shawn Steele of Microsoft wrote a blog post entitled Security patch MS07-040 for .Net 2.0 breaks some culture names for .Net 2.0 on Windows XP/2003/2000 where he writes

The .Net patch of July 10th, ms07-049, changes culture names to use the new names on Windows XP/2003/2000 as well as Vista...Unfortunately this change can break applications that expect the old names.  If that happens, the workaround of creating custom cultures might work for your application.

Potential problems experienced by applications could be:

  • client/server communication because one used the old names and one used the new names.  A workaround is to create custom cultures with the old names and choose a parent fallback for them.
  • Visual Studio projects probably need migrated to use the new names for the resources, otherwise there could be confusion compiling and loading resources.
  • If this is your system locale there could be problems loading resources using the old name, depending on the behavior.  In this case creating custom cultures for the old names and replacements for the new names with the old names as the parent culture may solve the problem.

This problem affects the following cultures supported by RSS Bandit; zh-CHT->Chinese (Traditional), zh-CHS->Chinese (Simplified), sr-SP-Cyrl->Serbian (Cyril), and sr-SP-Latn (Latin).

The blog post is unclear but it sounds like RSS Bandit may for our Chinese and Serbian users who have updated their versions of the .NET Framework. However I’m not 100% sure this is the case. If you are an RSS Bandit user whose environment is set to Chinese or Serbian and have applied the recent .NET Framework security patch, please respond to this comment with information about any problems you are facing or let me know if there are no problems.

Thanks for your continued support.

Now playing: T.I. - Big Things Poppin (Do It)


 

Categories: Programming | RSS Bandit

I'm continuing along with my plan to build an application on the Facebook platform. So far I've made a couple of decisions about the technology I'll use. So far I’ve decided

  • The application will be built on Amazon's Simple Storage Service (S3) and Elastic Compute Cloud (EC2) services for two reasons. The first is that it seems to be the cheapest solution out there for application hosting which can deal with large swings of traffic (if necessary). The second is that I’d like to learn about Amazon’s hosting platform and there’s no better way to learn than actually writing code.

  • The application will be built on the LAMP stack because it seems there are a lot more high quality,  cheap or free tools for building online services available for that platform than the WISC platform. 

  • It will use a Web application development framework that enables rapid Web development which is designed for the Web as opposed to having some HTTP related features being bolted on.

  • I will also use this opportunity to meet my new year's resolution of learning a dynamic programming language which is significantly different from the languages I'm most familiar with (i.e. C#, Java, Javascript).

From looking around the Web, it seems there are two language/web framework combinations that can fit the bill; Django which uses the Python programming language and Rails which uses the Ruby programming language. I haven’t done much investigation yet but so far it seems I’m leaning towards Python/Django for a number of reason

  1. There doesn’t seem to be a tutorial as comprehensive as Dive Into Python for Ruby.
  2. It’ll be easier to transfer Python programming skills to development with the .NET Framework since IronPython is now quite mature while IronRuby doesn’t seem to have gotten out of the prototype phase.
  3. I've read a lot of rants on the Web that indicate that Rails treats referential integrity within the database (i.e. foreign keys) as a second class citizen. See posts like I gave up on referential integrity, Are Foreign Keys Worth Your Time? and Rails' Ridiculous Restrictions, a Rant. On the other hand, Django seems to have built-in support for foreign keys.

I understand these aren’t the only criteria one should use when comparing Web application frameworks and there is a good rundown in Sam Newman's A comparison of Django with Rails. However these are the criteria that are important to me and it looks like it’s Python and Django for me. Unless someone out there has any other points I failed to consider?

Now playing: Shop Boyz - Party Like A Rockstar


 

Categories: Web Development

One of the side effects of working for a large, successful, multinational corporation is that you tend to lose your sense of perspective. For example, take this post from the Official Google blog entitled Cookies: expiring sooner to improve privacy which states

We are committed to an ongoing process to improve our privacy practices, and have recently taken a closer look at the question of cookie privacy. How long should a web site "remember" cookie information in its logs after a user's visit? And when should a cookie expire on your computer? Cookie privacy is both a server and a client issue.

On the server side, we recently announced that we will anonymize our search server logs — including IP addresses and cookie ID numbers — after 18 months.
...
In the coming months, Google will start issuing our users cookies that will be set to auto-expire after 2 years, while auto-renewing the cookies of active users during this time period. In other words, users who do not return to Google will have their cookies auto-expire after 2 years. Regular Google users will have their cookies auto-renew, so that their preferences are not lost. And, as always, all users will still be able to control their cookies at any time via their browsers.

What’s is interesting in this post is that Google has sidestepped the actual privacy issue that has many people concerned about the amount of knowledge the company has about Internet users. Numerous bloggers such as Nelson MinarShelley Powers and John Dowdell have already pointed how this change doesn't actually change the status quo. In today’s world, Google knows more about most Internet users than their spouse. Thanks to the magic of HTTP cookies Google knows remembers...

You pretty much can't use the Web without running into a Google cookie. So it seems somewhat facetious for Google to claim that if you can avoid using the Internet for two years then they'll forget everything they are storing about you. Oops, actually they don't even claim that. They simply claim that they’ll stop associating your old data with your current usage, if you manage to avoid hitting a Google cookie for two years. 

If Google really wanted to address people's privacy concerns they’d blog about how they plan to use and protect all the data they are collecting about Internet users from all of their services instead of making ineffective token gestures that are specific to one service.      

Now playing: Lil Boosie & Webbie - Wipe Me Down (feat. Foxx)


 

Disclaimer: This may sound like a rant but it isn't meant to be. In the wise words of Raymond Chen this is meant to highlight problems that are harming the productivity of developers and knowledge workers in today's world. No companies or programs will be named because the intent is not to mock or ridicule. 

This morning I had to rush into work early instead of going to the gym because of two limitations in the software around us.

Problem #1: Collaborative Document Editing

So a bunch are working on a document that is due today. Yesterday I wanted to edit the document but found out I could not because the software claimed someone else was currently editing the document. So I opened it in read-only mode, copied out some data, edited it and then sent my changes in an email to the person who was in charge of the document. As if that wasn’t bad enough…

This morning, as I'm driving to the gym for my morning work out, I glance at my phone to see that I've received mail from several co-workers because it I've "locked" the document and no one can make their changes. When I get to work, I find out that I didn’t close the document within the application and this was the reason none of my co-workers could edit it. Wow.

The notion that only one person at a time can edit a document or that if one is viewing a document, it cannot be edited seems archaic in today’s globally networked world. Why is software taking so long to catch up?

Problem #2: Loosely Coupled XML Web Services

While I was driving to the office I noticed another email from one of the services that integrates with ours via a SOAP-based XML Web Service. As part of the design to handle a news scenario we added a new type that was going to be returned by one of our methods (e.g. imagine that there was a GetFruit() method which used to return apples and oranges which now returns apples, oranges and bananas) . This change was crashing the applications that were invoking our service because they weren’t expecting us to return bananas.

However, the insidious thing is that the failure wasn’t because their application was improperly coded to fail if it saw a fruit it didn’t know, it was because the platform they built on was statically typed. Specifically, the Web Services platform automatically converted the XML to objects by looking at our WSDL file (i.e. the interface definition language which stated up front which types are returned by our service) . So this meant that any time new types were added to our service, our WSDL file would be updated and any application invoking our service which was built on a Web services platform that performed such XML<->object mapping and was statically typed would need to be recompiled. Yes, recompiled.

Now, consider how many potentially different applications that could be accessing our service. What are our choices? Come up with GetFruitEx() or GetFruit2() methods so we don’t break old clients? Go over our web server logs and try to track down every application that has accessed our service? Never introduce new types? 

It’s sad that as an industry we built a technology on an eXtensible Markup Language (XML) and our first instinct was to make it as inflexible as technology that is two decades old which was never meant to scale to a global network like the World Wide Web. 

Software should solve problems, not create new ones which require more technology to fix.

Now playing: Young Jeezy - Bang (feat. T.I. & Lil Scrappy)


 

Categories: Technology | XML | XML Web Services