This morning, Jeff Atwood wrote a blog post about software piracy entitled My Software Is Being Pirated where he talks about how companies can deal with the fact that the piracy rate among their users could be as high as 90%. He writes

Short of ..

  1. selling custom hardware that is required to run your software, like the Playstation 3 or Wii
  2. writing a completely server-side application like World of Warcraft or Mint

.. you have no recourse. Software piracy is a fact of life, and there's very little you can do about it. The more DRM and anti-piracy devices you pile on, the more likely you are to harm and alienate your paying customers. Use a common third party protection system and it'll probably be cracked along with all the other customers of that system. Nobody wants to leave the front door to their house open, of course, but you should err on the side of simple protection whenever possible. Bear in mind that a certain percentage of the audience simply can't be reached; they'll never pay for your software at any price. Don't penalize the honest people to punish the incorrigible. As my friend Nathan Bowers so aptly noted:

Every time DRM prevents legitimate playback, a pirate gets his wings.

In fact, the most effective anti-piracy software development strategy is the simplest one of all:

  1. Have a great freaking product.
  2. Charge a fair price for it.

(Or, more radically, choose an open source business model where piracy is no longer a problem but a benefit -- the world's most efficient and viral software distribution network. But that's a topic for a very different blog post.)

It is interesting to note that Jeff's recommendation for an effective anti-piracy solution is actually contradicted by the example game from his post; World of Goo. The game is an excellent product and is available for ~$15 yet it is still seeing a 90% piracy rate. In fact, the most effective anti-piracy strategy is simply to route around the problem as Jeff originally stated. Specifically

  • target custom hardware platforms such as the iPhone or XBox 360 which don't have a piracy problem
  • build Web-based software

However if you do decide to go down the shrinkwrapped software route, I'd suggest casting a critical eye on any claims that highlight the benefits of the "Open Source business model" to shrinkwrapped software developers. Open Source software companies have been around for over a decade (e.g. RedHat was founded in 1995) and we now have experience as an industry with regards to what works and what doesn't work as a business model for Open Source software.

There are basically three business models for companies that make money from Open Source software, they are

  1. Selling support, consulting and related services for the "free" software (aka the professional open source business model ) – RedHat
  2. Dual license the code and then sell traditional software licenses to enterprise customers who are scared of the GPL – MySQL AB
  3. Build a proprietary Web application powered by Open Source software – Google

As you scan this list, it should be clear that none of these business models actually involves making money directly from selling only the software. This is problematic for developers of shrinkwrapped, consumer software such as games because none of the aforementioned business models actually works well for them.

For developers of shrinkwrapped software, Open Source only turns piracy from a problem into a benefit if you're willing to forego building consumer software and you have software that is either too complicated to use without handholding OR you can scare a large percentage of your customers into buying traditional software licenses by using the GPL instead of the BSDL.

Either way, the developers of World of Goo are still screwed. Sad

Note Now Playing: The Notorious B.I.G. - Mo Money Mo Problems (feat. Mase & Puff Daddy) Note


 

Categories: Technology

UPDATE: It seems the problem was hardware related. Disc unreadable errors with perfectly good discs is one of the symptoms of an impending red ring of death.


My wife bought me Gears of War 2 for Christmas from Amazon. So far I've been unable to get past the start screen of the game due to a This disc is unreadable error and attempting to install the game to the hard drive fails at 40% complete. This is the only game in my library that exhibits this problem. I also got Grand Theft Auto IV and have been able to play that fine with no problems.

Searching online indicates that this is a widespread problem.

The only consistent thing about all the threads is that I have seen no confirmed solution to the problem. The best suggestion seems to be to return the disk to the retailer and ask for an exchange for a different Gears of War 2 disc. With this option there's still a chance of getting another bum disc and it seems this would be a difficult option to pursue with an online retailer like Amazon.  There's also the option of sending my XBox in for repairs although given that the problem only exists with this one game, it is unclear that this is a problem with my actual hardware.

Before deciding to chalk up the $60 + tax my wife spent on this game to bad luck, I thought I'd throw up this blog post just in case one of my readers has encountered this problem and found a work around.

Merry Xmas!

Note Now Playing: The Notorious B.I.G. - You're Nobody (Til Somebody Kills You) Note


 

Categories: Video Games

December 17, 2008
@ 04:58 PM

Reading depressing layoff related blog posts like George Oates's Not quite what I had in mind and the Valley Wag's Laid-off Yahoos packing heat for Jerry Yang? reminded me that I've been meaning to post about open positions on our team for a while.

The team I work for is responsible for the "social graph", "news feed" and online presence platforms that power various Windows Live experiences. You can see some of our recent efforts in action by downloading Windows Live Essentials (beta) or visiting my profile on Windows Live and browsing around. If you are interested in building world class software that is used by hundreds of millions of people and the following job descriptions interest you then send me your resume 

Software Design Engineer (Developer)

The Windows Live Messenger service is the backbone of one of world’s leading instant messaging services. The service enables hundreds of millions of users to communicate efficiently using text, voice, video and real-time status updates. This high-profile business is growing to accommodate mobile devices, social networking, web applications and other new areas.
We are seeking a developer with a fondness and talent for working on large-scale fault-tolerant distributed systems. The job involves working on the back-end components that maintain user state and route messages and notifications. In addition to improving the systems performance and resiliency, our team will tackle hard new problems such as
- Supporting new ways of addressing users (personas or aliases)
- Extending user state to support offline presence and presence views
- Creating a generic notification service
- implementing effective request throttling and load-balancing across datacenters.

Software Design Engineer/Test (Tester)

Looking for your next big challenge? How about building the next version of the world’s largest IM and social network platform?
We are looking for a great SDET with solid design, problem solving skills and exceptional track record to help build the next version of Windows Live Messenger and Social Network platform. The Messenger network is already one of the largest social networks on the planet, delivering BILLIONS of messages a day for HUNDREDS of MILLIONS of users world-wide.
The SDET role involves working on these next-generation services and proving they can be delivered to the massive scale required, with the quality our users have come to expect. Particular focus areas for this role are scalability, performance and reliability:
Scalability - building software systems to take each piece of hardware to its limits, identifying bottlenecks, removing them and pushing harder; while also, proving the system can grow linearly, as hardware is added. (…think 1,000s of machines).
Performance - ensuring consistently fast response times across the system by smoothly managing peak traffic -- which averages in the 10s of millions of simultaneous online connections.
Reliability - building online services that remain reliable under stress which the operations team is able to easily monitor, troubleshoot, and repair; enabling the aggressive up time requirements we aim for.

Email your resume to dareo@msft.com (replace msft with microsoft) if the above job descriptions sound like they are a good fit for you. If you have any questions about what working here is like, you can send me an email and I'll either follow up via email or my blog to answer any questions of general interest [within reason].

Note Now Playing: Rascal Flatts - Fast Cars and Freedom Note


 

In a post entitled CS Broke Joe Gregorio writes

Computer Science, at a deep and fundamental level, is broken, and that applies not only to software but to hardware. One of the reasons that I have this feeling is that after programming for the past 25 years the field hasn't really changed. The conversations aren't any different. You could substitute 'Windows API' or 'Borland CGI' for 'HTML and CSS' and you'd be having the same exact conversations I had 15 or 20 years ago. We still struggle with leaks, be it memory, or file handles, or threads, or whatever. We still have race conditions. We still struggle with software that grows linearly in features but exponentially in complexity.

Two things came to mind as I read this

  1. If your definition of computer science includes HTML & CSS or Win32 then you're doing it wrong. In the words of Edsger Dijkstra, computer science is no more about computers than astronomy is about telescopes.

  2. Even if you limit the discussion to computer programming, does it also mean that civil engineering is broken because people today still have to discuss and solve the same kinds problems faced by the builders of the great wall of China or the Roman aqueducts?

Note Now Playing: Ice Cube - Go to Church Note


 

Categories: Programming

A few days ago, the top news story on Techmeme was the fact that Google launched Google Friend Connect and Facebook announced the final version of Facebook Connect within minutes of each other. Reading up on both announcements it seems interesting to note how most of the coverage is about who will win the race to dominate the Web as opposed to what end user value is actually being created by these technologies.

It was somewhat depressing until I read Dave Winer's brilliant post Soon it will be time to start over, again which contains the following excerpt

We're now reaching the end of a cycle, we're seeing feature wars. That's what's going on between Facebook and Google, both perfectly timing the rollouts of their developer proposition to coincide with the others' -- on the very same day! I don't even have to look at them and I am sure that they're too complicated. Because I've been around this loop so many times. The solution to the problem these guys are supposedly working on won't come in this generation, it can only come when people start over. They are too mired in the complexities of the past to solve this one. Both companies are getting ready to shrink. It's the last gasp of this generation of technology.  Permalink to this paragraph

But the next one can't be far away now. It will be exhilirating!! Permalink to this paragraph

Remember how great Google was when it first appeared? Permalink to this paragraph

Remember how great Netscape was, and before that Apple, and I know you guys won't like this, but Microsoft offered us some great new places to play. I remember finding out that their OS address space in 1981 was 640K. That was a lot to guy who was spending huge amounts of time trying to cram a 256K app into 48K. Permalink to this paragraph

The trick in each cycle is to fight complexity, so the growth can keep going. But you can't keep it out, engineers like complexity, not just because it provides them job security, also because they really just like it. But once the stack gets too arcane, the next generation throws their hands up and says "We're not going to deal with that mess."  Permalink to this paragraph

We're almost there now. ;-> Permalink to this paragraph

The value of Facebook Connect to Facebook is obvious. They get to become a centralized identity provider for the Web including the benefit of tracking every single time one of their users logs-in on a partner which lets them build an even better advertising profile of their users. Similarly the value to the customers of the sites adopting it seem clear at first. Below are the claimed benefits of Facebook Connect to users from my initial perusal

  1. One login, multiple sites. No need to create a new account on partner sites.
  2. Account information such as profile picture, location and other fields on the partner site can be prepopulated from Facebook
  3. Bring your social graph with you to partner sites. 
  4. Let your friends on Facebook know what you are doing on partner sites. Updates show up on your profile but do not go in your friends' news feeds (they go in their live feed instead). 

Where things get interesting is that none of these benefits require a proprietary and centralized approach like Facebook has done. If Facebook implemented OpenID and OpenID attribute exchange, they could have given their users the benefits of #1 and #2 using widely adopted industry standards.  For #3, there is the burgeoning Portable Contacts effort to define a set of standard APIs for accessing the social graph that supports the key data portability principles around this information. As for broadcasting your updates from one site to another, FriendFeed has shown how that can be done using standard technologies like RSS, Atom and XMPP. 

Ignoring the fact that Facebook Connect is a proprietary and centralized approach instead of being based on open standards, there are still other points worthy of debate. When trying out sites like CitySearch beta with Facebook Connect, the experience is that I am connected with all of my Facebook friends who also use CitySearch. There is the genuine question of whether users really want to use one friends' list across every site regardless of context (e.g. interacting with the exact same people on LinkedIn, MySpace and XBox Live) or whether they want to have universal access to any of their friends lists and bridge them when necessary?

Yesterday on Twitter, I mentioned that Facebook Connect is the wrong direction to go on the Web for the reasons above. I also called Google Friend Connect a misguided "me too" effort for trying to copy Facebook's strategy and glomming an AJAX widget play on top of it. Kevin Marks, an evangelist at Google challenged by statement with the following response

@Carnage4Life the problem for users is re-entering data and restating friends for each app. For developers its becoming social without this

If that is truly the problem, how does the technology in the video below solve the problem any better than the combination of OpenID and Portable Contacts?

As with OpenSocial, Google has fallen in love with its role as a spoiler when it comes to Facebook's platform efforts without stopping to think whether it actually makes sense to be aping Facebook's strategies in the first place. Monkey see, monkey do.

This will be the death of them if they aren't careful. Once you become a follower and define yourself by reacting to others actions, it is hard to step back into a leadership role both in the industry and even within one's corporate culture.

Note Now Playing: Britney Spears - Circus Note


 

One feature that you will not find in Windows Live's What's New list, which shows a feed of a the activities from user's social network, is inline comments. A number of sites that provide users with activity feeds from their social network such as Facebook and Friendfeed allow comments to be made directly on news items in the feed. These comments end up showing up as part of the activity feed that are visible to anyone who can view the feed item.

When Rob and I were deciding upon the key functionality of the What's New feed for the current release of Windows Live, we voted against inline comments for two reasons.

The key reason is that we want the feed to be about what your people in your network are doing and not what people you don't know are doing or saying. However with the Facebook feed I often have lengthy threads from people I don't know in my feed taking up valuable space above the fold. For example,

 

In the above screenshot, I find it rather awkward that a huge chunk of my feed is being taken up by comments from people I don't know who are from Randy's network. Besides the social awkwardness it creates there is another issue with the above screenshot. Given that there is limited real estate for showing your feed it seems counter productive for it to be dominated by comments from people you don't know which are never as interesting as actual feed items.

For the second reason, let's look at a screenshot of an activity feed from FriendFeed

in the above screenshot there are 24 comments on the feed item representing Robert Scoble's blog post. These are 24 comments that could have been posted on his blog but aren't. The more sites Robert imports his blog feed into, the more it fractures and steals away the conversation from his blog post. This is in addition to the fact that there is some confusion as to where people should leave comments on his blog post. I've had people get confused about whether to respond to my posts as a comment on my blog, in Friendfeed or on Facebook and it didn't seem helpful for us to add yet another decision point to the mix.

For these reasons, we don't have inline commenting in the What's New list in Windows Live. This isn't to say this is an irreversible decision. It has been pointed out that for feed items that don't have their own comment threads (e.g. status messages) it might be useful to have inline commenting. In addition, I'm sure there are some people who believe that the benefits of inline commenting outweigh the drawbacks that we've mentioned above. I'd love to hear what users of Windows Live think about the above decision and thought process behind it. Let me know in the comments. 

PS: If you are interested in more behind the scenes looks at some of the big and small decisions around the What's New feature in Windows Live, you should read Rob Dolin's ongoing series of posts entitled Series: What New in Windows Live “What’s New” and Why.

Note Now Playing: Guns N' Roses - Chinese Democracy Note


 

Categories: Social Software | Windows Live

The place to find the most recent comments on your photos, blog posts, profile, files and shared favorites is http://profile.live.com/recentcomments.

If you are like me and prefer to navigate from a central place like http://home.live.com, the screenshot below shows where to find the link to recent comments on that page

Note Now Playing: Rihanna - Rehab (Album Version) Note


 

Categories: Windows Live

Giving users complete control of their online experience has always been a core tenet of Windows Live and this hasn't changed with the What's New list feature in Windows Live. This feature enables users to view an activity feed of what members of their social network are doing AND to provide an activity feed of what the user has done recently. You can see an example of the latter on my Windows Live profile.

Listed below are the various ways we keep users in control of their online experience related to this feature.

In Control of What You See

By default a user sees activities from members of their network and from groups they are in. However users can opt out of getting activities from any member of their network or from any group they are in without breaking their relationship with that user or group. In addition, users can also opt out of getting activities of a specific type (e.g. friend additions or Twitter updates) from members of their network.

We provide two entry points for managing what updates you get from your network. First of all, users can manage updates from a particular user or update type by hovering over the item in the dashboard and clicking on the gear icon. The users, groups and applications that are currently blocked can be viewed on the What's New settings page at http://profile.live.com/whatsnewsettings. This is what that page looks like for me at the current time. 

As you can see from the above screenshot, I haven't hidden any update types from my What's New list. I did add the "Paintballers" group to my list of hidden groups though. Although I like getting paintballing events in my calendar, I'm not interested in discussions or photos about paintball on a regular basis. Smile

In Control of What Others See About You

Some times, users may want to retract updates that have gone out to their social network. For example, a reference to inappropriate content that may offend people in their social network or pictures of streaking or similar nude pranks which inadvertently go out to the wrong people. For this reason, we give users the ability to delete such items from their profile which immediately deletes it from the what's new lists of their friends as shown below

It should also be noted that each update type typically has a permission associated with it. This means that a user can control who has access to a particular photo album, their shared favorites or even their Twitter stream (as shown below). That way you can still broadcast updates to your friends on Windows Live without worrying that you are accidentally sharing inappropriate content with your boss or coworkers. Wink

In addition there is an options page where users can completely opt out of broadcasting updates from Windows Live to members of their social network.  For example, I know someone who'd rather not have it broadcasted whenever he changes his status message in Messenger since he believes they should ephemeral thoughts and not captured for posterity. This options page also allows configuring updates from other web sites that are being aggregated on the user's profile. The What's New with you settings page can be found at http://profile.live.com/WhatsNewWithYouSettings.

A screenshot of the settings page is shown below

Conclusion

So you can see when it comes to activity feeds in Windows Live, our mantra is to keep users in control. Let me know what you think of our approach in the comments.

Note Now Playing: Kanye West - See You In My Nightmares (feat. Lil Wayne) Note


 

Categories: Windows Live

December 3, 2008
@ 04:54 AM

So I've been constantly refreshing Twitter search for "Windows Live" and so far the comments on our latest release have been super positive. Here is a sampling of tweets from the last two hours

slaguzman: @WindowsLiveWire I really like the new version of Windows Live! Keep up the good work.

paulsterling: new windows live looks really good - nice!

Bashmohandes: Windows Live Wave 3 is AWESOME !!!

benriga: New Windows Live is looking pretty sweet. It's come a long way with the new wave.

niceguyscott: The new windows live experience is doap.

MikeGalos: OK. After an hour. Windows Live Wave 3 is very, very cool.

Anchelspain: Loving the new and improved version of the Windows Live services. Mail, social network, blogging, picture uploading... everything's great!

sharepointing: I am liking the "Social Networking" refresh at Windows Live

Elepsis: The new Windows Live services are starting to roll out. They're looking pretty awesome. :)

joshpowell: The new Windows Live services are pretty cool. I'm adding in web services such as Twitter, Flickr, etc. to a central feed.

baxiabhishek: Sweet! Windows Live Wave 3 is rolled out for my account. Awesome!

Ingdawg: @majornelson Windows Live Home is awesome. Love how everything is in one place.

ScottTrepanier: Uploading photos to the new Windows Live...I love it.

Excited and proud doesn't even begin to cover what it feels like to get this release out there.

 Note Now Playing: Amy Winehouse - Love Is A Losing Game Note


 

Categories: Windows Live

As some of you know, last year I worked on the platform behind the What's New page on Windows Live Spaces which provides the similar functionality to the News Feed on Facebook.  That was just our first run at the feature and almost immediately after our release there was some great feedback from various corners. The most complete feedback I found online came from Jamie Thomson who wrote about the Spaces home page and gave the following suggestions

There's a lot of potential for this activity list given that it could capture any activity people commit using their Live ID. Every live property has the potential for being able to post activity on here so one day we may see notifications of:

  • change of messenger status
  • posting of photos on Live Space
  • addition of gadgets to Live Space
  • items placed for sale on Expo
  • questions asked or answered on QnA
  • collection shared from Live Maps
  • video posted on MSN video
  • changes to XBox gamer card
  • changes to Zune Social (after it launches)
  • items posted to the Live Gallery
  • an event being planned
  • purchased a song from Zune marketplace
  • posts in MSN groups (soon to be Live Groups)
  • posts to online forums (forums.microsoft.com)
  • downloads of public files from Skydrive

Its all pretty good but let's be honest, this is basically a clone of of what Facebook already have. Given Facebook's popularity though Microsoft didn't really have a choice but to copy them. If Microsoft really want to differentiate themselves in this arena then one option would be to provide avenues for interacting with other online services such as Flickr, Twitter, Jaiku, Pownce,  etc... This list could then become an aggregator for all online activity and that's a pretty compelling scenario. One really quick win in this area would be to capture any blog entry that is posted from Live Writer, regardless of whether it is posted to Live Spaces or not.

Turning the idea on its head...it would be cool to be able to publish the activity list on other sites such as MySpace, Bebo and (them again) Facebook.

It isn’t often that you can get such complete feedback from one of your customers and then turn around and say you implemented every feature they asked for. From the list of 15 suggested activities to add to the feed above, I’d say about half either now show up in the feed today or will soon show up. The rest won’t either because the service is being deprecated (e.g. Live Expo being wound down) or we explicitly decided that notifications on that change didn’t seem particularly relevant (e.g. notifications when someone you know downloads a file off of SkyDrive).

Besides the features Jamie asked for we added one more that seems obvious in hindsight; an Atom feed of the updates from your social network so you can keep up to date with your social network from your favorite feed reader. Thanks to this feature we satisfied another recent request from Jamie and there is now a Vista gadget that can be used to consume your What's New feed directly from your desktop. Both the gadget and Atom feed feature were the results of dev work by our 2008 summer interns. As I mentioned on Twitter a few months ago I suspect many of my readers will appreciate their output.

We also enable our users to aggregate their online activity in a single place and then share it with their friends. For example, if you go to my Windows Live profile you’ll see that I’ve aggregated my activities from Twitter, Pandora, StumbleUpon,and my personal weblog onto my Windows Live profile which will then show up on the What’s New page of my friends in Windows Live. Activities can be aggregated from a number of other sites including Flickr, Flixster, PhotoBucket, Yelp, iLike, blogs hosted on Wordpress.com and a bunch of other sites with more to come in the future. Of course, you can just import a regular old RSS or Atom feed as well. 

Although this functionality started out as a feature of Windows Live Spaces, it soon became clear that this feature really should be a “Windows Live” feature. This means it is deeply integrated into all of the major Windows Live products including desktop applications like Windows Live Messenger and the Windows Live Toolbar. Also there are a ton of revamped Windows Live web experiences that pivot around the What's New list such as the Home, Photos, Groups and the Profile pages.

Now for the back story.

At the end of last year, the main problem it seemed we had to tackle was making it easier for other Windows Live and/or Microsoft product teams to plug into the What's New feed on Windows Live Spaces. However the list of teams interested in the feed continued to grow as did the number of feature requests we got the more we talked to people about it. Once we saw all the new requirements for the feature at the beginning of this year and started doing the math on what it would take to support on the order of hundreds of millions people using this feature and handling billions of transactions a day it quickly became clear we had to redesign from scratch. In the words of Frederick Brooks, build one to throw away – you will anyway. It has been a grueling but fun year getting the platform out and it feels great to see millions of people enjoying our handiwork. This should explain my interest in Twitter’s scaling problems earlier this year since a micro blogging service with a model of followers and an open API is in the same problem space as providing a news feed that supports activity aggregation on a social networking site. Building a system to support over 280 million Hotmail users, 260 million Messenger users and around 120 million Spaces users from scratch has been a helluva thing. We've definitely pulled all of the scaling tricks out of the bag including my favorite trio of Dark Launches, Gradual Ramps and Isolation.

Much love to everyone who made this happen; Hammad, Brad B, Austin, Derrick, Peter, Paul, Badriddine, John, and Kyle. You guys were a killer dev & test team (the interns included). We also had great support from our leads Mike P, Inder & Diego. Our ops folks were incredible, I owe you all a big hug; Srdjan, Curtis, David G (deserter!!! *smile* ),  Scott R, Keith, William, Eric, Ziad, Teri, Michael, and Edet. Props to Kerstin, Sharad, Suresh, Alpesh and everyone else who made the aggregation experience shine on the platform end. Thanks to all the UX folks who touched or were touched by this feature including Miriam, David L, Jeff, Lavinder, Douc, Hua, Stacey, Vlad, Alton, Chad, Edgar, Colin, Jennifer, Omar, Mike, Shu, Michelle, Chris, Jason, Scott S, Chuck, Ben, Khalid, Deepa, Rob (my partner in crime – we worked on this so closely I have him on speed dial on my cell phone) and a ton of other folks on the Windows Live Experience team,  you guys rock. And finally thanks to all the management folks that were super supportive; Ramesh, Russ, Chris, Tread, Ben and Debra. Without you guys none of this would have happened.

Damn, I love working here. Open-mouthed

PS: Brandon, I hope you like this release. 

PPS: By the way, we're hiring and are looking for a few good operations folks, developers and testers who wouldn't mind spending their days building services that are used by tens of millions of people every single day.  Send me your resume if interested.

Note Now Playing: Ice Cube - Gangsta Rap Made Me Do It Note


 

Categories: Windows Live