Steve Rider's profileSteve's WebPhotosBlogListsMore Tools Help

Blog


    November 23

    Recent gadget changes on live.com

    Hi folks,
     
    We've made some changes recently to live.com that may affect some of the gadgets you are writing.  These changes were made in part to help alleviate some concerns around having 3rd party gadget code hosted in the live.com domain.  What you'll find is that your external gadgets are now each housed in their own IFRAME (more on the implications of this later) in a separate domain (gadgets.start.com).  We considered the idea of hosting all gadgets in a single frame and providing a tab at the top of the page that lets you switch between internal and external modules, but we felt that this solution with individual iframes gives the best balance since gadgets of all types can still be intermingled on the page.  We do have plans to add tabs to let you organize more content on your page, and we didn't feel that adding a one-off tab for this particular scenario was the right solution.
     
    Most utility methods will continue to work, such as the parsing routines and utility functions like ObjectToString.  Your gadget will also receive all the same constructor arguments as before, such as p_args.onDashboard, p_args.module, and any gadget-specific parameters that were serialized out using the gadget-level storage method described in an earlier post (here).  The gadgets.start.com domain is cnamed to www.live.com, so all network requests and back-end calls will continue to work as before.  If you are using the Start.Const variables for making network requests, you won't need to change any code for this, as these have all been updated to point to the correct location depending on the domain.  The session id in the live.com cookie is also automatically written to the gadgets.start.com domain before your gadget is instantiated, so you don't need to worry about network requests not having the correct session id.  In general, we've done a lot of work to make sure your gadgets operate in almost the same environment they were operating in before, and for the most part they should continue to work without any changes.
     
    With that said, here are some issues you may experience:
     - GetPreference and SetPreference will no longer be supported
     - sizing issues
     - scroll bars in Firefox
     - internal APIs may stop working
     
    GetPreference / SetPreference
    We've decided to discontinue supporting GetPreference and SetPreference for gadgets due to the performance issues it has now that they are hosted in iframes.  To understand why this is an issue, it helps to understand the iframe approach.  Every 3rd party gadget that is hosted in an iframe is essentially running in a scaled-down version of the live.com framework.  To get the preferences into that frame, a round-trip to the server would need to be made to fetch the preferences for each gadget this is instantiated.  Since the iframe url is on a separate domain, the iframe instance can't interact with the parent application so none of this data can be shared.  The only other alternative would be to parameterize the data on the iframe source URL, which isn't really feasible in this case.  We will continue to support gadget-level storage using the method that was posted earlier.  Note that there is a bug in our ObjectToString code that may cause Out of Memory errors or Stack Overflow errors as the code ends up going into an infinite loop.  Unfortunately, the solution we posted for gadget-level serialization may very well cause this to occur, and we've posted a fix on that thread to resolve it.  If you are seeing this error, please check to see if you are using the updated version.
     
    Resize issues
    Obviously, with any iframe solution, there may potentially be annoying resize issues.  We've done our best to make this as small of an issue as possible by automatically resizing the iframe to the correct size whenever the gadget content changes.  However, from some of your gadgets that I've been testing, we know there are some corner cases that will need some polishing, so we've added a Resize() method on the p_args.module object to let you force a resize.  If you are experiencing truncation issues, we recommend that you call this Resize() method any time the gadget content changes.  For example, as the result of an network request or user interaction.  Again, this shouldn't be necessary in most cases, but we've provided the method just in case.  Note that we don't currently have a solution for this in Firefox, as explained in the next section.
     
    Scroll bars in Firefox
    Resizing an iframe from within the iframe content is not currently possible in Firefox, so you will see scroll bars and a fixed gadget height on your gadgets there.  We're looking at ways to make this better, such as including a custom height in the manifest xml that would allow you to specify the preferred height, or adding a drag grip or +/- buttons on the gadget that would allow the user to resize the iframe manually.  We're not thrilled with the scroll bars either, and we're definitely pursuing a better experience.  Please bear with us for now.
     
    Internal APIs
    Internal APIs, such as DisplayReaderPage, will no longer work since these will no longer have the right context (e.g. there is no reader page in the stand-alone gadget iframe).  We're looking into possible solutions for those of you using methods such as these.
     
    One upside to the iframe approach is that gadgets can be tested in a stand-alone environment by visiting the iframe url.  For example, visiting http://gadgets.start.com/gadget.aspx?manifestUrl=url will instantiate only the gadget contents without chrome.  This is helpful for testing memory leaks and for doing other debugging.  We have some cool debugger tools in the works that will let you take more advantage of this as well, such as call stack windows and trace output windows, so stay tuned.

    Thanks!
    steve
    November 07

    Start.com goes "live"!

    Last week we officially announced Windows Live, and boy, has there been a lot of hubbub on this.  I've seen a lot of people asking "well, ok cool, but what the heck is it really? Is it just another portal, cuz like, dude, portals are so 1996".  Folks who have been keeping up with us on start.com have also been asking good questions, such as: "is start.com the same as live.com?  are you guys the same team building this?  is start.com going away?  should I use live.com or should i use start.com?  do gadgets work between both?"  Tho nobody has asked the question, "how the hell did a company of 50,000+ employees keep the live.com domain a secret?" (seriously, this amazed me).  Of course, my buddies who knew I was working on it were like, "hey man, is it really going to be on live.com?  cuz, um, i see some other dude's content up there and you guys are supposed to ship in like 2 weeks."  Yes, it's been that crazy.
     
    As far as the live.com *portal* part of it goes (I'm the technical lead on live.com, so that probably answers a couple of the questions above), fellow Microsoftie Lawrence Liu nails it with this comment in an internal email to employees:
     
    Yes, Live.com is basically a (personal) Web aggregator, but the primary difference between it vs. Bloglines and MyYahoo is that the gadgets hosted on Live can be developed by anyone. So, Live.com is indeed very much an online version of Windows in that it is a platform for hosting multiple apps that you use frequently to do or view things that you care about. And ultimately, you can use Live.com on any device from just about anywhere. Therefore, Live.com becomes an “attention aggregator” for me.
     
    Expect to see other parts of the Windows Live experience made available as gadgets, little mini-applications that can be pulled into the live.com homepage.  Expect to see a whole damn *buffet* of these gadgets, some written by us, most written by the community.  And expect to be able to view and *use* these gadgets on various devices whenever you want (while *any* device is a nice goal, it has a little bit too much of a marketing ring to it for me.  We'll try to make it available on as many devices as makes sense :) ).
     
    For folks asking about start.com, here are some answers:
     
    1) Live.com *is* the same technology as start.com.  In fact, we pushed pretty hard to keep live.com fairly similar to start.com, since we've been baking start.com for a while now and we know what's been working and what hasn't.  It's easy to get carried away when you have a blank slate to build something new, and there were a lot of ideas coming from all over for what live.com *might* have been, and some of them were pretty good and some were downright horrible.  I'm a big believer in keeping it simple, sticking with what works, getting back to basics, giving people what they really want, and avoiding all the flashiness and pretty stuff that looks good in demos but sucks in practice.  Basically we're just keepin' it real yo, if you know what I mean.
     
    2) Yes, the same team that build start.com also built live.com.  Of course there were a *ton* of other great folks that helped really pull it together, like our buddies from the search team, our friends in hotmail, all the international testers and operations folks, Jeff Sandquist's team for making a huge update to the microsoftgadgets.com site to support communities and forums at the 11th freakin' hour, and various other folks in MSN like the design team and our friends in marketing.  Our main focus right now, besides fixing all the bugs and keeping it stable, is to start the process of really scaling out our team, because man, we have a hell of a lot of stuff in the pipeline.  It's time to scale, baby, scale.
     
    3) No, start.com is not going away.  While you may not see as *much* activity on start.com in the near future, we made damn sure that start.com would stay around as a place where we could keep pushing the envelope.  Think of start.com as the little incubation arm of live.com.
     
    4) Should you use live.com or start.com?  Well that's up to you.  Live.com is only 4 characters to type compared to the oh-so-much-longer 5 characters (tho start can be typed on one hand, hmm).  Besides that, Start.com will always be a little more experimental.  Expect to see weird and wacky stuff, out of which come good ideas that make you go "damn that's cool", and the inevitable bad ideas that make you think "man this sucks, what the hell were they thinking?".
     
    5) Gadgets should work on live.com and start.com.  There may be some differences from time to time as we open up new APIs on start.com, but in general it's the same code running on both.
     
    I think that's it for now.  Besides scaling out the team, we are working on a bunch of bugs and stability issues fpr the very short future, like finishing supoprt for Firefox (I hate that we always leave this until last), better back button support when paging through search results and returning to live.com, and other various things that we didn't have time to fix before we shipped.  Bear with us, we hate having these bugs too and we're working on them as fast as we can.  Keep the feedback coming!
     
    steve
     
    September 16

    Start.com at the PDC

    Lots of great stuff to post about from the PDC.  We've been up to our eyeballs the last 3 days talking to customers, writing and shipping code, meeting with folks from various teams, giving our talk on start.com and generally just getting involved with the community.  And of course partying and schmoozing with folks from companies like Newsgator, Google, and Technorati during the downtime.  The rooftop lounge/bar on the top of the Standard hotel is a great retreat :)
     
    We shipped our developer platform at http://www.start.com/pdc this week, with details on how to write your own Gadgets at http://www.start.com/developer.  Thanks goes to Jeff Sandquist, who secured a quiet room for us where we were able to hole up for a few hours and build and release the developer site.  Thanks Jeff!
     
    Sanaz has been busy meeting with other teams, folks in the community and with other companies on how we can make this all work better together.  She'll be on the "Future of RSS: Beyond Blogging" panel at 8:30am tomorrow, along with folks from Amazon and Yahoo.  Come by the panel if you're at the PDC.  Scott has posted a great set of articles about the developer platform, how to build Gadgets, and his thoughts on how all this is shaping the wave of web development for the future.  The other half of the team back in Redmond (hey guys!) are working on some really cool stuff that we'll be releasing very shortly. 
     
    Build a gadget.  Seriously, try it out.  Then send us your gadget and your feedback.  Here's a screenshot of a flickr photo album gadget that an attendee whipped up in a few minutes immediately following our session.  Way cool!
     
    September 07

    All start, all the time

    While we've been busy getting ready for the PDC, we shipped start.com to the web last week with no slashes, which basically means that we've stopped getting emails from frustrated folks who tried start.com after hearing it from a friend and only finding our teaser page, since their friend was kind enough *not* to tell them they needed to put a /1, /2 or /3 after it. :)
     
    But this last release was by far the most fun.  George, Noor and Venkat are now on board *officially*, which effectively doubled the size of the core team.  All have been involved in some way or the other on start over the last several months, or almost a year in Noor and Venkat's case.  Our group operates a bit differently from other groups at Microsoft and some of them still have obligations to other products that they need to attend to.  So around 5 or 6 pm each day, we trickle over into my office and set up camp for the evening.  All the email for the day is finished, all the meetings have been attended to, and we hunker down over glowing LCD panels and laptops working on features, writing code and fixing bugs for the next few hours, sometimes late into the night, whatever folks can afford.  It's awesome!  If you've ever been in that kind of working environment you know the satisfaction that comes from working that closely with your peers, finishing a feature, showing it off, getting feedback, tweaking it, and then being able to cross the feature off the big whiteboard, all monster-garage style.  We have an office move coming up and we're tempted to just knock out a few walls and hang whiteboards all the way around, and throw in a few more LCD panels to boot so folks can tap into them with their laptops.  I can't wait :)
     
    August 15

    Scott Isaacs about "next-gen" apps

    Scott Isaacs from MSN Spaces is working on a series of posts about the "next-gen" development pattern and how the framework is enabling us to write deep, rich interactive apps that are both scalable and highly performant.  He kicks off the series of posts here, and I just noticed he wrote part ii a few hours ago.  This is secret saucy kind of stuff guys, it includes some of our core tenets and philosophies which are driving the way we are building these things, so you should definitely check it out :)  He totally nails it by the way.
     
    By the way, we'll be hosting a talk about start.com and the framework at the Microsoft Professional Developers Conference (PDC) in Los Angeles next month, which is going to be awesome.  I can't wait to chat with other folks about what we're doing and what's going on in the industry, and get people interested in helping us out too :)
     

    Spaces, Hotmail and Start (oh my!)

    I've been really quiet on the start.com front lately, but *man*, have we been busy behind the scenes.  There are a couple of cool things happening that I wanted to mention briefly.
     
    But first a *tiny* bit of background: When we first started writing prototypes for start.com we would toss around ideas like "wouldn't it be cool if this little module we wrote could be added to my space on MSN Spaces?" or "what if Hotmail wrote some neat modules and we could just drop it onto our Start page?"
     
    Fast forward to the present and look at where we are now.  Scott Isaacs, along with the Spaces team, Hotmail, and folks from the MSN portal team have done a ton of work in forging out a shared client framework.  On the start.com side we've been doing our part largely by being guinea pigs to all this and making it all work under the hood (it's humming nicely) to power our start.com experience.  Now check out the following posts from Omar Shahine and Scott Isaacs.  Omar talks about the new mail client they are building (it just totally rocks by the way, plain and simple) and how they leveraged the client framework.  Scott talks about the new homepages for the Malaysian and Swiss markets that were just released on the new framework, talks about the new HTML Power Toys for MSN Spaces, and also about writing the MSN Bloggers Map startlet for Start.com.
     
    The point is that there are some very real benefits to the framework.  For example, we can "scale out" these javascript apps in a much more linear way than we could before.  We can write "big-iron" apps that are well-engineered.  Another benefit is that we can control and fine-tune when the actual code itself is downloaded and executed.  For example, many parts of start.com run without all the javascript code in place.  It's dynamically downloaded as needed to give you, the user, the fastest experience possible.  Not interested in stocks?  Don't add it to your page and you won't even download the code for it on your next visit.  Finally, another big (big) benefit is how it standardizes the platform.
     
    Now I'm excited about all of these things.  Each one is huge and offers a ton of benefits.  But this last one, the one about standardizing the platform, is really really huge.  Remember those little "what-if" scenarios I mentioned earlier?  Yep.  Bingo :)  Seriously, we are just about to really get started on a lot of cool stuff in this space.
     
     
    June 09

    It's like this zig-zag pattern thing, see?

    Sanaz, a kick-ass program manager on the start.com team posts about some of the changes we just shipped tonight.  By the way Sanaz is out of control awesome, like seriously.  In a good way.  You know how some people are so enthusiastic that they can just inspire the hell out of other people to get stuff done?  Yeah.  It's like that.  I mean, I'm sitting here at 1am thinking about some of the code I'll be writing for a new feature we want to ship in the next few days and I'm hella inspired.

    Some of the changes we shipped tonight are fixes that have been bugging us for the last few days.  You know how the modules would rearrange themselves when you dragged them around the page?  Well, I thought it was a really good idea.  But wow, I haven't been given that much flack about a feature I wrote in, well, well in a long time!  People who tried to figure out how to get the modules in the right place would send feedback saying it was like the towers of hanoi puzzle, or it was like solving a rubik's cube, or they assumed it was some kind of chinese puzzle.  My god people were frustrated.  But it did make some sense in theory.  See, there's this zig-zag pattern, and when you dragged the module you were really just rearranging the order so that we could keep the relevant modules on top when the columns automatically resized, and, um, well yeah.  I guess it was crap.  Anyway, this was one of those things that makes sense in theory but totally sucks in practice.  And we tried it, got your feedback, figured out a better solution and shipped a more usable version just a few days later.  Whew!

    Things are moving fast.  We are just getting geared up for some new stuff.  Stay tuned.  Oh, and by the way we're in the process of getting a forum set up for general discussion which is why we haven't done much with the startcom blog.  I'll post a few updates to it anyway since some of you have it on your aggregators.

    Back at ya.

    April 26

    The PSP again (and this time it relates to start.com)

    Oh yeah.  I almost forgot.  I did have a point in why I wanted to ramble on about the PSP.  The reason is that we just received a bunch of new screenshots from Darwin, an awesome designer who works on the search team who is helping us in his spare time.  He's been giving us ideas for start.com and trying out this and that and generally just doing amazing Photoshop wizardry.  His latest mock-ups just happen to show a recent Engadget article with the PSP prominently displayed front and center, and his RSS reader element which is hosting the article containing this particular PSP just looks absolutely *gorgeous*.  It's just one of those *click* moments where you see it all come into focus.  It's really good.  So I promptly warmed up the color printer in the building and printed out a bunch of copies and posted them all over the wall outside my office.  I've been watching people oogle at them all day.

     

    I also wanted to let folks know that we've been a little quiet lately, but we haven't forgotten about you!  We've been busy creating road-maps of where this thing may be headed long-term and have been prioritizing future versions based on your feedback.  We've also been working like crazy to put the current version together so that we can ship it and get more feedback, and then get back in the business of making very fast iterations again.  It's not quite ready yet, but it's very much locked down and significant chunks of code are in place.  It's unlikely we'll have anything to ship before I head off to Palm Springs next week (I'm bringing the oh-so-tiny Sony Vaio T250 with me and might even get in some time working by the pool under the sun), but expect something soon after that.

     

    That is all.

     

    March 20

    Start.com

    It's been just over a week since http://start.com/1 was discovered and the feedback has been fantastic.  We've been responding to a ton of your email (apologies for those who haven't received a response yet) and are working "like hamsters", as my old boss put it, to roll out new features as fast as we can.  Our goal is to get you guys included in the development process as much as possible as we'll be making changes directly based on your feedback.  We're a very small team (2-3 people) consisting mainly of developers, so you won't have to go very far to find someone who's interested in your feedback and will probably be the one actually writing the code for it.   Sound good?  ok let's go.

     

    You guys have been asking for a ton of things, and some of the common themes are: Firefox support, OPML import support, being able to view more headlines on each feed, roaming the page to multiple computers, and getting status on the number of unread posts.  We're also hearing that you guys *love* the fact that this thing is clean, snappy and responsive and, well, we love all those things too! 

     

    Some of you have been asking just what the heck it is we're building here.  Here's what I told Mike Torres, a buddy of mine on the Spaces team who asked that very same question:

    "We want the page to be as simple or as full as you want.  If you want a minimal experience with only a search box, you can have that.  If you want a kick-ass RSS aggregator, you can have that as well.  If you want to throw stocks, weather and sports scores into the mix, well heck, you can have that too.  What we are building will appeal to *every* web user, minimal for Google fanatics, a deep news source for news junkies, etc.  And at the same time we won't do the things that drive people away.  We've got a ton of ideas that we just can't wait to prototype, so stay tuned and keep the great feedback coming.  We are definitely listening."

     

    As soon as I finish this post I'll be digging in my heels for the afternoon and working on OPML import support and increasing the number of headlines per feed.  Hey, what are rainy Sunday afternoons for?

     

    Here are some of the improvements we've made since we were "discovered" a week and a half ago:

    Start.com/1

    • Full Firefox support
    • Migrated from cookie-based solution to back-end store for feeds and preferences
    • Removed the restriction on the number of feeds that can be added
    • Added ability to delete items from My Feeds and Recent Searches
    • Title of module is now hyperlinked (oops) and also gets updated if the title in the RSS feed is different
    • Show search history in correct order
    • Lots of fit and finish and minor cosmetic changes

    Start.com/2

    • Fixed a few problems with the ActiveX control that were causing boomarks not to be imported (there are still a couple of issues affecting some users)
    • Added OPML import support
    • Increased performance when fetching from server by making more async calls

     

    We've been focusing a lot of our attention on making improvements to start.com/1 based on your feedback.  We're also working on the next iteration, soon to be released at start.com/3 so stay tuned for that.

    See what folks are saying:

    http://www.technorati.com/cosmos/search.html?rank=&url=http://start.com/1/

    http://www.google.com/search?num=20&hl=en&lr=lang_en&q=%22start.%2Bcom/1%22

    [Update]: http://www.bloglines.com/citations?url=http://www.start.com

     

    Disclaimer: Everything here is solely my personal opinion and is not read or approved by anyone (except me) before it is posted. This blog is provided "AS IS" with no warranties, and confers no rights.