More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  2 hands and 1 brainProfileFriendsBlogMore Tools Explore the Spaces community

Blog

    February 10

    The wild west

    I've decided to leave Microsoft, and found a startup with a partner.
    My new stint is http://www.moonshoot.com.

    I'll be freely blogging now, since I'm now in the wild west :)

    July 23

    Why I don't blog

    The reason I haven't blogged a lot, is because I find it difficult to disambiguate things that will give away corporate confidential information vs just random thoughts ... Many of my internet friends have recommended I blog about something that is not project/technology specific but generic. The first is this specific topic - the challenges of blogging.
     
    I've seen employee colleagues who got into trouble through blogs by giving away roadmap information.
    I've seen other employee colleagues who established themselves well in the industry and got rewarded by the company for tipping hands occasionally.
    The balance and line between getting rewarded, and punished seem rather gray.
    I'm curious how many bloggers who work for large companies feel the same way as I do.
     
    This topic does eventually bubble up to the point of data ownership and moonlighting. Are personal blogs corporate content, or personal content? What is to become of this now popular form of content?
     
    March 06

    Community HOL project "Live in a Box" (pronounced \'liv\ in a box) aka livebox published

    An all out hands on lab for Windows Live has been published on codeplex at http://www.codeplex.com/liveinabox.

    If you're an enthusiast and would like to contribute more sample code etc. please let us know on codeplex.

    !!Posted from Lat:47.678608220772595 Lon:-122.131022360348 Address:'redmond'!!

    January 18

    Windows Live Contacts control tile view launched!!

    Together with Danny Thorpe (red circle on the right) and Gabriel Corvera Ortiz (my partners in crime),

    we finally have the presence view of the Windows Live Contacts control out - it's taken much more time than we originally anticipated due to people going on vacations :P, server configuration issues, and SSL problems. Either way, sorry for being dark recently - we're busy coding/testing/localizing/and releasing.

    The tile view is essentially a 'share this' feature which makes it super easy for you to share the current context (the web page you are viewing) with your friends either thru IM or email. Note the IM capability only works if you

    1. are logged into Windows Live Messenger
    2. browsing in Internet Explorer

    As the publisher of content (the web page), you benefit from getting more traffic thru 'word-of-mouth' viral advertising by your viewers.

    This capability is a reuse of much of the infrastructure that the spaces team built up. Yes we're all about leveraging what's available. 

    August 21

    Finally, articles I put together are out too :) - search, and contacts

    These articles have been brewing for a month or 2 by this time.
    We will aspire to become better, stronger, and faster

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlive/html/mashupWLContacts.asp

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlive/html/BuildSearch.asp

    Windows Live Contacts gadget!!

    Now, the users and contact list in Windows Live (aka your Messenger buddies) is available for developers to use.
    http://dev.live.com/blogs/devlive/archive/2006/08/18/46.aspx branches off to relevant material.

    http://dev.live.com/mashups/partystart/ is my favorite.

    Note you can download and start tweaking this sample application from
    http://www.microsoft.com/downloads/details.aspx?FamilyId=F44F9AC4-EBF5-4CB1-A696-352FA5D5B5A3&displaylang=en

    This sample can be placed on any web server, and provides a great experience in IE and Firefox.
    August 07

    Pretty live.com explanation sites

     
    Did you know these sites? They're pretty good at providing a perspective on Windows Live.
    Interested to hear your thoughts on this kind of stuff.

    Spaces & Gadgets

    Spaces has started supporting gadgets :)
     
    There aren't a lot of space enabled gadgets just yet on the internet, so it's a great time to get in at ground 0 and perhaps elevate yourself to stardom owning the most popular spaces gadget in the world :)
     
    My penny contribution is by demonstrating how the gadgte I used at the europe roadshow is now hosted on my space.
     
    Enjoy!
    May 25

    Europe Roadshow of Windows Live developers


     
    I had the fortune of traveling to London, Munich, and Paris last week to meet awesome customers.
    I created 4 demo scenarios on the flight there (well had some things working prior to taking off, but didn't have the talking points or goals refined so continued tweaking & coding on the flight). Screen shots of these demos are in the photo album.
     

    Gadgets

    The first gadget sample just had 2 files, t.xml & t.js with the following content. Note the simplicity - that's pretty much all it's good for ; a very very simple gadget to get people started. Note I'm using the MIX sandbox.
    You can add this to your live.com page by going to www.live.com, click add stuff at the top, click advanced options in the expanded div (I think), paste the URL to t.xml below (http://mixer3005 .... t.xml) into the middle textbox, and click the button next to it. That should show you 'Test Gadget' in your my stuff list box. Drag the Test Gadget onto your live.com page below - walla you have your test gadget running.
     

    http://live.com">
       
                 
          This gadget is a mere container waiting for creativity
          en-us
          Mon, 7 Nov 2005 01:00:00 GMT
          Koji.MyFame
          Mon, 7 Nov 2005 01:00:00 GMT
         
             Script
             http://mixer3005.mixsandbox.com/gadget/myfame/t.js
         
      
     

    registerNamespace("Koji");

    Koji.MyFame = function(p_elSource, p_args, p_namespace)
    {
     // 1. declare a local variable for the instance of an input box
     var elSearch;
     
     Koji.MyFame.initializeBase(this, arguments);

     this.initialize = function(p_objScope)
     {
        Koji.MyFame.getBaseMethod(this, "initialize", "Web.Bindings.Base").call(this, p_objScope);

        // 2. document.createElement an input and assign to elSearch
        elSearch = document.createElement("input");

        // 3. attachEvent onkeypress to a function
        elSearch.attachEvent("onkeypress", doPress);

        // 4. appendChild the created element as a child to p_elSource
        p_elSource.appendChild(elSearch);
     }

     Koji.MyFame.registerBaseMethod(this, "initialize");

     this.dispose = function(p_objScope)
     {
        Koji.MyFame.getBaseMethod(this, "dispose", "Web.Bindings.Base").call(this, p_objScope);
        // 5. detachEvent from the element
        elSearch.detachEvent("onkeypress");
     }
     Koji.MyFame.registerBaseMethod(this, "dispose");

        // 6. declare a funtion to respond to the event
     function doPress()
     {
        alert("do something");
     }
    }
    Koji.MyFame.registerClass("Koji.MyFame", "Web.Bindings.Base");

     

    Messenger

    The messenger demo just had the following code. First there was the msgrp2p.xml which you need to place in \program files\msn messenger\ to get the activities to be picked up for development purpose. Just place the following into this folder and you should see a new menu item in a !!conversation!! window (note the emphasis on conversation). A screen to show this is in the photo album.
     
    ---- msgrp2p.xml ----

     
      7
     
      en-us
      1
      1
      50
      10
      My Custom Activity
      The activity that you are currently developing
      http://mixer3005.mixsandbox.com/activity/simple/default.htm
      http://mixer3005.mixsandbox.com/activity/tictactoe/default.htm
      http://mixer3005.mixsandbox.com/activity/MSNInkSearch/default.aspx
     
      0
      App
      500
      500
      side
      2
      2
      0
      False
      True
      False
      False
      False
      False
      False
      120
      False 
      6.0
      0 
      false
     
    Note I had 3 activities, which I was switching between by modifying the URL element.
     
    http://mixer3005.mixsandbox.com/activity/simple/default.htm is the simplest activity which just raises an alert based on various events that are received in the activity window - this is essentially a scripting host with additional objects (if you're acquainted with this, you should also try extending MCE2005 - they have a similar extensibility model; my example is shown in the photo album - it's a 10 foot file explorer ).
     
    http://mixer3005.mixsandbox.com/activity/tictactoe/default.htm is the tictactoe activity sample deployed on a web site. This is the sample that comes with the activity sdk off of msdn.com/live. It's missing a few graphics files though so I just quickly patched that up to get it functioning.
     
    http://mixer3005.mixsandbox.com/activity/MSNInkSearch/Default.aspx was something I was working on, but never finished. I showed it anyways as an example of hosting a binary object (in this case a Windows Form User Control) inside of an activity window. You can apply this to put an ActiveX control inside of an activity window to do zippy things like 3D shooter games. The only interesting thing in this sample (which you can freely view source) was the object tag.
     
    http://216.55.183.13/pdc2005/slides/COM301_Swanson.ppt is an excellent deeper intro into activities - there's a lot you can do with these.
     

    Virtual Earth

    What I did to demo VE was to get a PC with the following setup:

    * Visual Web Developer Express Edition from http://msdn.microsoft.com/vstudio/express/vwd/

    * SQL Server Express Edition from http://msdn.microsoft.com/vstudio/express/sql/

    * SQL Server Express Edition Starter Kit from http://msdn.microsoft.com/vstudio/express/sql/starterkit/default.aspx

     

    Now after getting all these installed and running, I just created a new Personal Web Site (you have to have an IIS box somewhere).

    Then nuking a lot of the unncessary text in default.aspx, and adding the following code snippets in after the ObjectDataSource which we hi-jacked for our purpose.

     

    ---- code snippet for default.aspx ----

    // this is for getting the VE map control into the page

    <link href="http://dev.virtualearth.net/standard/v2/MapControl.css" rel="stylesheet"

    type="text/css" />

    <script src="http://dev.virtualearth.net/standard/v2/MapControl.js" type="text/javascript"></< font>script>

    <div id="map" style="overflow: hidden; width: 430px; height: 320px; position: absolute;

    left: 400px; top: 325px;">

    </< font>div>

     

    // this is to boot strap the VE map control

    <script language="javascript" type="text/javascript">

    var map = null;

    var params = new Object();

    params.latitude = 47.64;

    params.longitude = -122.13;

    params.zoomlevel = 4;

    params.mapstyle = 'h';

    params.showScaleBar = true;

    params.showDashboard = true;

    params.dashboardSize = "small";

    params.dashboardX = 3;

    params.dashboardY = 3;

    map = new Msn.VE.MapControl(document.getElementById("map"), params);

    map.Init();

    </< font>script>

     

    // this is to style the pushpins used to show the photos in the SQL database

    <style media="screen" type="text/css">

    --

    .pin

    {

    width: 100px;

    height: 75px;

    font-family: Arial,sans-serif;

    font-weight: bold;

    font-size: 8pt;

    color: white;

    overflow: hidden;

    cursor: pointer;

    text-decoration: none;

    text-align: center;

    background: #00F;

    border: 1px solid #F00;

    z-index: 5;

    }

    -->

    </< font>style>

     

    // this was the actual meat where we created pushpins from every photo record - note the geo encoding was done in the caption of the photo as a hack for the demo purpose - the proper way to do this is to add a column in the SQL database and modify the photo upload form ... i might do a proper version and then post somewhere ...

    <script language="javascript" type="text/javascript">

    var pattern = "(\\w+[^\\sLat]+)\\sLat+([^\\sLong]+)\\sLong+([^\\s]+)\\s";

    var target;

    var result;

    id="rep"

    runat="server"

    datasourceid="ObjectDataSource1">

    target = "";

    result = target.match(pattern);

    if (result)

    {

    map.AddPushpin('',

    result[2],

    result[3],

    198,

    100,

    'pin',

    '&Page=\'>' +

    '

    May 18

    Giving in ... blogging

    I finally give up - I've been compelled to start a blog.
    Hope nobody notices this blog for a while - I like to be in the shadows.
     
    Previously I was somewhat adding things to the blog here http://blogs.technet.com/tabletpc/ , but I've come to the point where I need to start expressing myself as an individual.
     
    We'll see how this goes ...

     

    !!Posted from Lat:48.14048249097205 Lon:11.575788383638297 Address:'munich'!!