Microsoft Social Bookmarking… sigh

May 27, 2008

Mary J Foley notes that Microsoft are looking to get into social bookmarking. It’s really a bit too late to make a dent in the market and mind share of the incumbents like Yahoo owned And if the tumbleweed rolling through the community content section at MSDN is anything to go by this latest venture could only go badly.

Microsoft seem to be like that uncool kid in school who never got it. And the harder they try to jump on the bandwagon the more they look like they never will.


Features that Suck!

May 21, 2008

Features come in many types: only one type really matters. The rest suck!

The one that matters is the User Requested Feature. Sadly its apparent that this type of feature never crosses the mind of many of the folks that build applications and web sites. And even more sadly these features tend to be complex so get dropped first when projects enter Phase 3.Designed by someone who likes tetris

The first type of feature that does not matter is the Developer Feature. These can range from outright bugs to messy APIs that can only be used if you know what going on behind the scenes. Diabolical UI Crimes also belong in this category. These confusion inducing features come from a lack of User Requested Features.

The second type of feature that does not matter is the generic spec feature. These usually come about due to BAs  guessing what users would like from their application. “Well we have a list of things… so… we’ll definitely need to sort by every column, …bound to be important”

Outlook is a perfect example, you can sort and group (slowly) all your email but what you really want to do is search, which you can’t do. Contrast that with GMail. Give people what they want not what you think they want. Lookout did just that and Microsoft bought them to hide their shame. Again this type of feature comes from a lack of User Requested Features.

When the owners wife adds a feature...The third type of feature that is not important is the old technical expert feature. These come in the form of ropey architectural decisions like “we’ll use technology blah” from technologists that are now above programming so just deal out great wisdom… yawn. If you can’t code it, don’t suggest it.

The fourth (be certainly not final) type of feature that doesn’t matter is the infinite configurability feature. Whenever a decision point comes; you go both ways and then let the user configure which behavior they ‘want’. Let me tell you a secret: users don’t care, and being asked just angers them. Take as many decisions as possible, use intelligent defaults and don’t make users think!

User Requested Features are almost the only type of feature your software should have. The problem is that they can be complex, tricky to implement and usually require some creativity to solve. But they’re so neglected there is always some low hanging fruit.

So… if you’re a developer, try asking your users for a small feature they would like and …just add it. If you work for BigCo you’ll start making powerful friends and if you work on the Internet you’ll drive more traffic!

And who knows you might just enjoy it…

SilverLight 2.0, Parallel FX and ASP.NET MVC

November 30, 2007

Blizzard of great new stuff for today, summarized nicely by ScottGu.

The new Parallel FX stuff is really quite cool. It’s a cliche to say that the number of CPUs in a typical machine is increasing while each individual CPU is not actually faster. But it’s great to see Joe Duffy release Parallel FX and PLINQ to to actually address the challenge.

All very cool can’t wait till next week for ASP.NET MVC.

What next for Microsoft? Bill 2.0?

October 30, 2007

Microsoft seems to be in a quandary at the moment. Vista was late, over budget and the single greatest step forward for Mac OS X and Desktop Linux ever taken. Their various labs are full of brilliant ideas that never get beyond demo.

To be fair to Microsof t they do bare the weight of backward compatibility for the majority of the worlds computers but it still doesn’t explain their lack luster performance. Their stock recently jumped twice, once for (now exMicrosoft) Bungie’s Halo 3 and once again for their purchase of a minoroty stake in Internet hype-Juggernaut Facebook. These are not the kind of things that should be driving their share price.

In contrast all of Apple’s recent gains have been core product related and Google’s dues to their ability to print money.

So the question is; what now for Microsoft? Why not bring back Bill? All great companies are run by one great man (or woman). Why? Because committee’s have no vision. Leaderless least common-denominator thinking saw Apple languishing before Jobs came back. IBM was lost once Tom Watson stepped down. Ellison is Oracle. The list goes on.

Corporations run by ‘good corporate goverance’ alone are doomed to fail.

So I say; bring back Bill. Pull support for everything, scrap backward compability, delete the source to Vista and start again. build products people want, buy BumpTop, bring out Seadragon, sell free calls though Xbox Live and kill everything that doesn make a ton of profit.

It would cetainly make for a more interesting Microsoft… but I guess, when you’re number one; why try harder?

Why are big files a big pain in the …

October 1, 2007

So I’m trying to more the 3.2 GB Orcas IMG file from my desktop to my laptop. Why the application has to be so large is a rant for another day.

So 3.2GB exceeds the size of my key-ring USB stick (portability over size means its only 2GB). So I try copying it over my home network. Which is unacceptable slow (3 hours +) because windows seems to be bouncing it off my wireless router (which is completely stupid) not to mention its not restartable. Unless you use copy /Z at the cmd line, but at this stage I don’t believe Microsoft.

So I try putting it on my iPod (40 GB behemoth) and it fits a treat but I don’t have a Firewire port on my Dell Laptop. Ee Gad! Frustration mounting.

Since I can’t remember the syntax to split a file with the copy command and I don’t feel like installing a warez program on my Trojan free machine to split my big file I decide to set up a point-to-point network connection. However my hopes of Gigabit Ethernet rescue are dashes as my XP Desktop and my Vista Laptop both have apoplexies trying to see each other.

At which point I’ve lost the plot and had to go make myself a cup of tea.

I dunno if its the hype, but somehow I don’t think this kind soul destroying meta-crap happens to Mac users…

Thoughts on Mix:UK

September 18, 2007

I went to Mix:UK last week and have waited a while to let my impressions gel. I find that live blogging this type of thing just makes you a part of the echo chamber.

A number things stick in my mind from Mix:UK

  • ScottGu is a great presenter (slides); he’s super tech-savy, a great speaker and engages the audience brilliantly.
  • WPF is an excellent development platform
  • ASP.NET vNext is looking very crisp
  • Silverlight 1.1 is cool but not ready
  • The DLR is very cool but still not ready
  • Expression Blend is ready and can produce epic results
  • And last but not least: Software Transactional Memory

I must say that Software Transactional Memory (STM) is the thing that sticks in my mind. WPF was very cool, VS2008 had excellent new improvements and the sneak peeks (including a WPF MRI visualizer) were excellent but STM lingers in my mind.

STM has a great appeal because it is a truly revolutionary idea that cuts to the root of a problem. Just as the call stack revolutionised modern programing; I’m sure STM will be the first step into a new concurrent software revolution.

Haskell already has an implementation so I’d love one for the CLR from Simon at MS Cambridge 🙂

Reflexil: a new rusty saw to play with

August 26, 2007

Lutz Roeder points to a new plugin for his venerable Reflector platform which allows the foolhardy to interfere with the IL of compiled Assemblies with Reflexil.


Ye Gods! While understanding the inner workings of IL is valuable, modifying it on the fly can only be a recipe for pain. If you really need to use the C# code injection feature I’d switch to the DLR and IronRuby or IronPython.

The GAC’s strong name support is in fact designed to stop this very kind of tom-foolery so I can imagine that you would  (quite rightly) run into security impediments pretty quickly too.

Having said that; it’s not a powerful/dangerous as softICE and I never go into too much trouble with that… 🙂