Archis's Blog

January 12, 2012

More on Windows Phone in light of CES announcements

Filed under: Uncategorized — Tags: , , , , , , , , , , , — archisgore @ 5:54 am

Many think I’m an “Apple Fanboy” – which is sort-of true (I’m a fan of the iPhone, not Apple.) It’s a matter of semantics really – I appreciate and value a good thing when I see it. When you don’t have a good product, fanboy or not, I don’t care a lot.

Always good indicator of Microsoft’s product quality is the employee’s Facebook feeds. Managers at MSFT don’t have to panic – none of my friends leak any information.

For anyone with plenty of time and academic curiosity to test my hypothesis, they should go analyse the Facebook/Twitter timelines of employee posts. One of the things I learnt the hard way in my almost-five years there is that very very few Microsofties are what you might call – true academicians (though those that exist are the ones behind what you see succeeding today.) My respect and admiration for Terry Myerson is a matter of Google’ing my past posts, and I’d dare you to find anyone of the thousands of people to whom I complain about WP to, to quote even a single instance where I have spoken against him.

The trend there is to throw around the word ‘innovation’, ‘synergy’, ‘dynamism’, etc. a lot and quote past examples, and find new process names to try. It’s pretty annoying to hear a softie promote their product at times (there was one blog out of the thousands who really questioned whether all softies speak the way Charlie Kindel does – most do in fact.) I have many analyses as to why most Microsoft people appear to be totally out of touch with reality (heck I worked on Messenger and Hotmail – you don’t even want to go there!) The problem is, for a large part of the last decade, all you had to do was build stuff, and it’d get a cool few million users without any effort and you post-justify success with MBA-speak. Windows was the vehicle. You slap some WPF on there, and it inevitably gets picked up. You never have to convince or sell developers on, how or why, WPF improved the things you could do compared to other alternatives.

Which is why when WP was announced, the first thing they did was to hold an iPhone funeral. My FB feed was practically filled with death-threats. Try and suggest one feature missing in your Windows Phone, and you get attacked with all kinds of straw-men. The same rhetoric over and over distills down to one or more of the following:

1. Whatever you ask for is irrelevant. Yes, it’s only perception that you need a compass in maps. People got along fine before, and people will get along fine without it. Don’t be such a prick and feel entitled to anything. We don’t owe you anything, so don’t suggest features.

2. The iPhone never had it in 2007. (Not sure what they try to say here, but in their world apparently, that’s a defense)

3. Maybe it’s not for you (and this is said with some kind of pride of elitism – we’re the 1% few who appreciate the true value of a magical world-saving device)

4. It’ll be successful in 2015 (this one really confuses you – I could go on and on about how utterly ridiculous it is to expect me to pay $300 bucks for your phone NOW because it’s 3rd model four years from today will leap frog the competitions model then after you’ve paid for a couple of additional $300 upgrades.)

I got sidetracked. My apologies. As I was saying, the academicians – let me clarify here. There is a mistaken belief that Academicians are people without purpose. Heck they know purpose and they know money. What it really means is people who are dedicated to building a good product, just ‘because’! In its day Microsoft did come out with some pretty good stuff just because – COM being the best one I can name right now. Even Windows Mobile was pretty impressive for its time.

I think at this CES finally, there is a Windows Phone device that really makes me “think”. I’m not saying I’ll buy it – because I recently threw out my Focus for a 4S (yeah, if you made me pay $300 bucks for a shitty device, I’m waiting till a WP offers me TWICE as much as my iPhone to make up for the difference. Fool me once, shame on you, fool me twice, shame on me.) But for once, I see a device I would have been genuinely (as opposed to defensively) proud of, if I worked at either Microsoft or Nokia.

Many of you may not know this, and it seems like a pretty childish thing to do, but one way to get softies to shut up about their ‘superior’ OS for the past year, was to carry a few hundred dollars or a couple of blank checks in your pocket. Anytime someone used the word ‘superior’, I would pull out a check for $700 bucks and put my iPhone on the table and ask them to give me their replacement. Don’t argue with me. Don’t debate with me. You know better than me. Here’s my money. I’m waiting to be impressed.

An indication of good times though, is clearly from the lack of those outrageous death-threats flying around on FB this time. After CES, they have gotten factual, and that’s a mighty good sign. The N900 actually looks pretty good, and if they can fix the app situation (which is still bad) they just might do well. I was also impressed at HTC adding the 16mp camera. Now don’t you go telling me it may not add quality. We dished it out to them when they defended lack of dual-core, and we must face it. When it comes to specs, a WP has the most powerful camera I’ve heard of in a phone.

The software though really has to deliver fast and has to finish off the remaining ‘magic’ of the equation. Apps, including Facebook’s own, must provide full-fidelity (a concept I learnt is very important, and I learnt it at and from Microsoft.) Skype MUST match the Facetime/iMessage magic. If not none, then at least minimal, signin dialogs, and stuff. Just detect what’s on the other side, and enable video and Messenger IMs without the two users first having added each other as contacts on Messenger or Skype. If they pull that off, and do it fast, and make sure they remain feature-compatible with other phones – they just may expect my few hundred bucks for my next upgrade in 2 years.

I do see a good change in attitude. Instead of speaking of killing things and being the No 1 in 10 years, they are slowly learning the reality that others have pretty decent products too and will probably be here for a while. Making a good product and selling a decent amount of phones in the short-term may not be a bad compromise to dreams of world domination in four years.

After five years of watching shitty products being promoted with zeal, I’m happy to see great products promoted calmly for what they are – simply good products. I’m impressed!

June 9, 2009

Those “silly” helpdesk sheets are useful afterall

Filed under: Uncategorized — Tags: , , — archisgore @ 12:47 pm

We read a lot about how helpdesks have silly instructions they always repeat for users to follow regardless of how smart the user is. You know what I mean, “Is your keyboard plugged in? Are you sure the power is turned on?” So on and so forth.

There isn’t a lack of people to make fun of these instruction sheets and also the people who have to patiently repeat those instructions over and over again. Yesterday however, I gained a new respect for both the instruction sheets and the people who help us out so kindly and politely.

I had to change my corpnet password. My laptop hanged while changing it and I went to work. For a few minutes my old password worked, and then suddenly it stopped working. Windows, being windows, gave a vague and cryptic message saying “Username or password is invalid.” For a few minutes I thought I was fired and this was it – my account no longer exists on corpnet.

I scrambled to call the helpdesk, and I decided to play along with the instructions by following them. The 2nd instruction was, “Lock your screen, then unlock it using your new password.” Viola! It worked! I never would have guessed it. (Add to that the fact that I’ve written some auth code in my life.)

Thanks to all those helpdesk people who have to patiently take abuses from people like me for helping me with something I would never have guessed.

January 1, 2009

Live Mesh nominated for TechCrunch Best Technology Innovation/Achievement award

Filed under: Uncategorized — Tags: , , , — archisgore @ 4:41 am

My first post in the first few hours of the new year starts off with some encouraging news. Live Mesh has been nominated on TechCrunch for the Best Technology Innovation/Achievement award. Always feels good to find what you work on is still relevant out there to a lot of people.

If you feel Mesh is something that deserves this award, please do vote for it on the TechCrunch site. You can vote once per IP every 24 hours.

And here’s wishing you a very happy new year. May the force be strong with you…

May 2, 2008

Live Mesh! – the appeal to a guy like me.

Finally, the long-awaited unique take on what Live Mesh is all about as seen from my eyes. Live Mesh was announced publicly about a week-and-a-half ago with an entry by Amit Mital on the Live Developer’s Blog at 9:00pm PST. I hope everyone has read all there is to know about Mesh, and for any further information point your browsers to http://www.mesh.com/blog. Do ask questions and express comments on the Live Mesh Blog – there’s no such thing as too many questions. After all, when a team has worked for months to ship something so awesome, they are only eager to interact with the community.

The Technology Preview available on Mesh.com has a limit of 10,000 users which I think has been filled up by now. It has been quite fun to see how fast the word spread and filled up the positions. It is important to note that Mesh is still in a very early preview and as we approach the Professional Developers’ Conference (PDC) in October more details will emerge.

I will try not to re-hash all the stuff that’s been said and re-said about what Mesh is (or isn’t), and offer my own take on what this is all about from a very high-level perspective. One of the interesting things about Mesh in the first few days after announcement, was how it related to everyone in a different way – “It’s software, It’s a service, no….. It’s Mesh!” As Obi-Wan Kenobi rightly said (is there anything the Jedi philosophy doesn’t apply to?), “Many of the truths we cling to, depend greatly on our own point of view.”

Mesh is a piece of software, Mesh is a service (or a bunch of services) running on the cloud, and Mesh is an experience (Sharing of files and folders), and in my personal opinion, Mesh is, above all, a set of design principles or architectural decisions (enter the developer’s take on Mesh). When I joined the team an year ago, what really excited me to come work here was the very clear communication from higher-ups on what we were building.

People have been writing software for many, many years. Services are perhaps new, catching on only after the Internet became widespread, and yet they have been used more than ten years now. The concept of connected software isn’t all that new – Yahoo Messenger being a legend in my circle of friends from high-school days. What differentiates Mesh is the way everyone thinks about it – which is exemplified in Ori Amiga’s developer video.

Let me take a moment to clear up the definition of “Cloud“. The phrase Software + Services is widely misinterpreted as some kind of lame software using sockets to talk to some server. “Big deal!”, right? Well not quite. By cloud we don’t just mean one service running on a Microsoft server. Cloud is “anything that’s not you – but can interact with you”. When we say “Your files come down from the cloud”, we say so because there really is no other way we can phrase it. Sometimes they come from a peer desktop MOE, or from our own web services, or from a Feed Sync provider out there who wants to Mesh with you! When you connect to the Mesh, you literally connect to “the cloud” and not a specific end-point. The Mesh only always adds value, never takes away. It doesn’t “absorb”, it “sync”s – it’s bidirectional. You add value to the Mesh and the Mesh adds value to you – whether you’re a software, a service, or anything else we haven’t imagined yet. As long as you can do a “GET http://[some_url]“, you can talk to the Mesh, and by extension, anyone else that talks to the Mesh – tell me that didn’t just get you clamouring to be on our Developer SDK waiting list.

Look at the Live Folders experience – it wouldn’t be too difficult to write some TCP/HTTP code in Windows Explorer to make it to do all the stuff Mesh allows it to do. Similarly, shouldn’t be too difficult to write an app to share comments on files either. Moving these comments from one machine to another? Sure, how tough can that be? Now how about a list of friends? Pretty easy (I did all that in school). Then comes the interesting part – I have code to read my list of friends, can I use it to read my list of comments as well? Oh sure, all in a day’s work. Then how about allowing it to read any list of unknown data that I want to share? Perhaps slightly annoying, but doable. And finally, how’s about doing it in a format that the entire world understands and uses so often that it is crisply and clearly defined. Then comes a minor twist – even if I’m not connected to the Internet, I want my app to be able to send these lists across – and I want someone else to make sure it reaches the destination safely and securely. Why should every app write the caching/transport logic over and over again?

And that is what Mesh is at heart – the few guiding principles around which software and services were built. Rather than focus on “What will this service do to keep it extensible?”, the Mesh team focused on “How can we represent anything and everything so that anyone can read it anywhere in the world?”. The subtle difference here is the pivot point – for some, the pivot is the service, it is the hard absolute that cannot change. Everything else must be written around it to accommodate it somehow. Mesh has universally-readable data representation as it’s pivot – services and software were written around it. To put it another way, the software+services implementations are a natural consequence of the design, rather than interoperability being the consequence of the implementations. Enough abstract philosophy, let’s look at how these principles rendered themselves in practice:

  1. Everything works over HTTPS. Since almost any conceivable device that can do anything data-related can talk HTTP, this means all devices can talk to each other – across NAT‘s, Firewalls, etc. The S at the end of HTTP guarantees encryption – and I mean good-enough-for-my-bank-to-use kinda encryption. Hundreds of millions of dollars in online transactions are protected by HTTPS every single day.
  2. Anything and everything is a feed. List of users? Feed! List of Devices? Feed! List of friends? Feed! List of all these feeds? Feed! Now at the core, all you need is a Feed reader, and you can read anything, anywhere. You might have seen Amit Mital or Ori Amiga demoing the cool Data Model Browser – it’s a feed reader on steroids and it can read anything in Mesh.
  3. What kind of formats are these feeds in? You name it! RSS? Yup! Atom? Yup. Something easy to use in my cool AJAX app? JSON! No more glue logic on the server to pull data from a SQL database, convert to JSON, send to AJAX client, and render it (I’ve developed many a website that did this in the past.) Now just point your RSS reader at the comments feed on the file you’re interested in, and voila – what was a software, became a service!
  4. Always use, what I like to call, Wikipedia Formats – due to Amit Mital’s inspiring description, “Formats that are not only standardized, but also can be described in a page or two and a large number of developers know how to use.” The Mesh team could have gone with some cryptic ISO/xxxx and then people would have spent a while reading about it, and then we’d have general chaos on how to resolve the boundary cases which the spec failed to anticipate. Instead, Atom‘s been used and reused and talked about and discussed and spec’d the hell out of so much that you have ready answers on Wikipedia, hundreds of articles, tutorials, blogs, friends, etc.
  5. RESTful model – REST stands for “Representational State Transfer“. Think of browsing the Mesh using the data model browser as moving through a Turing Machine. Each state is represented in the URL you are currently at. What’s cool in this model is that you can now get to a specific location in the Mesh Data Model, and just copy that URL to a friend to allow them to view it too (so long as they have permissions, of course). This way “discovery” of data becomes easier. Imagine telling them to execute a few RPC commands to get to the same data.
  6. And thanks to the platform background of Microsoft – this one came quite naturally to all involved – never ask developers to compromise on their native environment. This is the real killer design principle that made .Net a success and will hopefully do so for the Mesh. There have been legendary historic debates around Editors (vi vs. emacs reached galactic levels in the 80′s), IDEs, Programming Languages, styles, paradigms, and API libraries. Each developer LOVES his specific environment – try and separate it from him and you’d sooner choose to steal candy from a baby. Yes, we developers, are opinionated and stubborn – and that’s what makes us so effective. If I run on a Mac, I want the full immersive Mac experience – using Mac metaphors. When I use a phone I want a full phone-like experience. Wouldn’t be much of a “Mesh” if it all looked and behaved the same everywhere, would it?

Now for stuff I’ve been dying to tell people – my personal favourite scenarios which Live Mesh simplifies (I’m sure everyone can think of hundreds of cool things to do once you’ve watched Ori’s video). Just look at how simple it is to develop rudimentary apps:

  1. My personal favourite: Mesh Mail. Mesh is much like e-mail already – MOE’s acting as SMTP agents forwarding data/feeds to other MOE’s. A rudimentary messaging platform would involve creating a Mesh Object between each contact of mine (yes it would lead to a Cartesian product of objects – but look at the simplicity). To “send a message” all I do is post a data entry to it’s “Message Feed” on my local MOE. Through Mesh Magic, the peer app on his machine gets the entry and he receives a message. Just like that! He isn’t on any physical machine? The same thing is available on the Live Desktop.
  2. Instant Messaging: The mail scenario extends to IM even more beautifully. Create a feed for a two-way chat. All you do is post data entries to a feed, and in your chat window, display updated feeds whenever you receive notifications. That’s it! IM across the web, across rich WPF experiences, low-end phone experiences, you name it!
  3. How about boasting about your AOE scores between friends? Just create a feed, post your scores!

As you can see, each “App” is a separate app and is also the same app. AOE scores are still data entries in a feed. But they are also a distinct app – displaying them as email is doing injustice to all the cool 3D desktop capabilities you paid for. This is where the “Software” from Software+Services comes into play. Today, we leverage the same old software for multiple applications due to the sheer start up overhead of writing connected software. We use e-mail for forwarding favourites, discussing movies, debating philosophy, sharing files, and boasting about our AOE scores. With Mesh its just the opposite – you may have the same feed storing all this data, but the experiences are customized based on the content – Movies might get you a complex and powerful mashup for commenting, rating, sharing, etc. AOE scores will give you rankings, statistics, etc. Sharing files – you’ve already seen.

That’s concludes my take on why the Mesh is so important and what turns me on about it. With all that Mesh can do, it still can’t use butterflies to focus cosmic rays to write code.

Technorati tags:

April 23, 2008

I met Ray Ozzie!!!

A few hours ago, just while Live Mesh was going public, I chanced to be in a meeting with Ray Ozzie. He is in India today at the IDC (India Development Center), and he was reviewing lots of stuff that’s being built here. Live Mesh is the first manifestation of Ray’s personal as well as the company’s vision for how computing will progress into the 202′nd decade (in computing, 21st century wouldn’t work).

It was a rushed meeting due to his tight schedule, but it was definately fun to get his perspective on the things we are building. It gave us reinforcement for what we were doing right, and a good opportunity to set straight, what we were doing wrong. It also gave me a chance to personally come back up out of the depths of hundreds of lines to code and take a look at our stuff with a high-level perspective which I haven’t done ever since I joined the project an year ago. The last 8 months have really been tremendously intense and it is important to ensure that as a developer, one maintains his perspective of the overall vision of the project.

I really didn’t know who Ray Ozzie was until fairly late in my career – after I turned 20 (he still isn’t one of my core icons – incidentally, one of them – Peter Norton read my blog last week and actually mailed me – which was just way too cool!) Lotus 1 2 3 was the thing everyone had to know if you wanted to claim you could use computers back in the late-80′s or early-90′s, I being one of them. The relevance of a spreadsheet never really clicked to me back then – and hence my most admired child-hood software doesn’t include it (QuickBasic tops the list).

However, when I came onboard this project and when I read the designs, and architecture – it was some kind of a revelation of what we really need in the world today. And by that, I don’t mean nice to have, I mean need. We all feel these minor nice-to-have’s and then I see someone actually executing the grand vision to unify all of them. What I really admire about Ray is the fact that he took the bet for doing something nobody had ever done before – on this scale, magnitude and with such efficiency.

What’s cooler is that it actually has executed well and you’re seeing the results in action for the past few hours already. Moreover, unlike Lotus 1 2 3, or Lotus Notes and Groove, this will be VERY relevant to the pre-teens out there. In fact, in my opinion, the usage scenarios that teenagers will work out will far surpass anything we use it for today. So the next gen teenagers are going to grow up with Ray as their idol from the very beginning!

Working with this team has been an adventure – and always a positive experience. Not once have I faced issues around politics or personal fights. Being a fresh-out-of-college guy in a team of superstars generally has that advantage – you get all the benefits of the doubt. On the other hand, everyone has been just so very responsive and helpful. Not once was I ever blocked because information was unavailable on time or an issue wasn’t getting attention from the senior folk. Every issue of mine was of P0 importance for the whole team.

I’ve never been more philosophical in my life – if this ain’t fate, I don’t know what is. Two years ago, I was struggling to get passing grades in college and was being harassed by the University. An year ago, I was wondering where my life was heading. And today, I have some kind of guardian angel looking over me. I don’t have the words to express just how glad I am to be a part of this team. It’s not just the product – even without the product, when I look at the whole thing retrospectively, in the future, I will choose such a team even on the seemingly most insignificant of products.

Right now, I’m just tired and relaxed. The whole team has been monitoring the high-level feedback and we’re just relaxing and planning for parties and planning 10-day-long vacations. It’s been a great one year but the component I work on isn’t out yet – so I still have a major code-cycle before I will be at parity with the rest of the team who has already shipped.

Theme: Silver is the New Black. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 122 other followers