December, 2005

  • Cloudy in Seattle

    Secret Weapons and Language Workbenches


    I read a great article titled "Why Windows Presentation Foundation Will Dominate Thick Client Development, XAML Is Microsoft's Underestimated Secret Weapon" by Carl Zetie.  If you have the resources to read such an article, I recommend it as a good read.

    In the article, the author draws a parallel between XAML and Language Workbenches.  The term "Language Workbench" is coined by Martin Fowler in his article titled "Language Workbenches: The Killer-App for Domain Specific Languages?"  As is often the case, one great article points me to another.  Here are a couple of excerpts from that Martin Fowler article that describe some of the terminology:

    I use Language Oriented Programming to mean the general style of development which operates about the idea of building software around a set of domain specific languages. I use Language Workbench as a generic term for this new breed of tools. So a language workbench is one way to do language oriented programming. You may also be unfamiliar with the term Domain Specific Language (usually abbreviated to DSL). It is a limited form of computer language designed for a specific class of problems. Some communities like to use DSL only for problem domain languages, but I'm following the usage that uses DSL for any limited domain.


    GUI builders are a form of DSL, but one where editing experience is quite different from the textual programming languages that we are used to. Hence they are often not thought of as languages by people building them - which some see as part of their problem.

    In Carl Zetie's article, it's suggested that XAML seems like it may be a good fit as the underlying abstract representation of the software where the tools like Sparkle, Cider, the Windows Workflow Foundation designer, the class diagram designer, and the code editor act as DSLs. ("Is XAML the First Coming of Language Workbenches?")

    As someone who isn't qualified to comment on what is or is not a Language Workbench, I am asking myself if XAML can really be the underlying abstract representation of an application given that it is used to represent parts of the application and not the whole application itself?  Is an abstract representation of the application central to the idea of a Language Workbench or is a set of DSL tools used in concert to build an application sufficient?

    What do you think?  XAML makes it easier to create DSLs but is it a Language Workbench?

  • Cloudy in Seattle

    Cider in the December CTP


    For those of you who haven't had time to see the Cider videos or install the December CTP of WinFX along with the VS 2005 Extensions for WinFX, I thought I'd give you a taste of the kind of design time experience Cider provides.  The vector graphics get me every time :)

    Click for a larger view.

  • Cloudy in Seattle

    Moving from San Diego to Seattle...


    As part of taking a job at Microsoft, I left my job with Intuit (great company), sold my house and left San Diego.  It was a really tough decision but a combination of professional and personal factors ultimately made me choose to go and so far it feels like the right decision. 

    What is it like living in Greater Seattle after spending the last 6 years in San Diego?

    Well, the most obvious difference is the weather.  Luckily, I was born and grew up in Vancouver, B.C., Canada, was intimately familiar with the weather in the Pacific Northwest and knew what I was getting into.  Let's look at the weather report from MSN Weather for both San Diego and Kirkland over the next 5 days (december).

    Guess which is which :)  In general, the weather in San Diego is ideal all year round -- warm, and sunny.

    Both San Diego and Greater Seattle are beautiful but I have to give the nod to the Pacific Northwest because it is so green, has big trees and mountain views.  San Diego has a number of rolling hills but it just isn't quite the same as snow capped mountains.

    And speaking of mountains, one of the real benefits of living in the Pacific Northwest is the accessibility of good skiing/snowboarding -- within 45 minutes I can be on the slopes.

    That said, I'll really miss the Southern California experience: theme parks, beaches, lots of shopping, and day tripping to LA, Newport Beach, Long Beach, Huntington Beach, Vegas, Santa Barbara or Mexico. 

    Of course, in Greater Seattle you can day trip it to the San Juan islands, Vancouver BC, Portland, Mt Rainier, Mt St Helens, and the Olympic National Park.  Would you rather drink Pinot Noir in Santa Barbara or have the best Chinese food in the North American in Vancouver?

    One of the bigger surprises for me was that there really wasn't that big of a difference in the cost of living.  The San Diego real estate market has been out of control the last 5 years and prices are really high but the cost of housing in Seattle, especially close to Microsoft (Bellevue, Kirkland, Redmond -- affectionally known as the east side) is not much cheaper, probably only about 10-15% less.  Of course, WA has no state income tax and you can't beat that :)

    In a nutshell, I think both cities are wonderful places to live with different benefits.  You just can't beat the weather or the Southern California experience in San Diego and you can't beat the easy access to the mountains and beautiful scenery in the Pacific Northwest.

  • Cloudy in Seattle

    Cider Resources


    Since joining Microsoft, my blog has mainly been about the experience of joining Microsoft and this has mainly been because I'm still in the process of ramping up on WPF/Avalon and Cider.  Well, I wanted to change that a bit, at least for this post, and point out the main Cider resources we currently have available. 

    I'm sure other team members will start blogging about Cider and I'll be posting links to their blogs, so stay tuned!

    Look for Cider information at the WinFX Developer Center.

    There have also been a couple of presentations:

  • Cloudy in Seattle

    Second Week at Microsoft


    After my second week at Microsoft (first week here), I can say that I'm slowly settling in.  I have my desktop and laptop (cool Toshiba Tecra Tablet/notebook combo) setup and I'm able to build Cider. 

    The scripts the team already had in place to setup up the development environment sure made it easy to get setup and everytime I open a Cider command window, it ensures that I have all the latest versions of it's dependencies and if not, prompts me to automatically update them.

    That said, the week felt really hectic trying to get ramped up at work while being in escrow, dealing with the move (got my car, got the goods I sent to temp housing, and lots of little niggly things), and trying to get ready for Christmas.

    While last week was mainly about getting oriented and getting signed up for everything, this week involved ramping up and training.  This included mandatory training like Standards of Business Conduct, Security, Anti-Harrassment and Online Commitment training (work commitments which directly feed into your performance review) as well as the ramp up training/reading like how to moderate forums, and how to use the IT services (audio conferencing, meeting rooms, live meeting, sharepoint etc). 

    At the same time I was getting all of my remote access and smart card activated.  A cool thing about Microsoft email is that I can access it from any internet connection, not only via the Outlook Web Client (which is typical) but also using my rich Outlook 2003 application.  Microsoft rigs Outlook to use RPC over HTTP -- full Outlook experience, no VPN, RAS or Web client required.

    I've also been able to enjoy getting ramped up on Cider by reading the internal docs as well as really diggning in and learning WPF/Avalon.  In my prior job, I'd have to do make time outside of work to read up on those things, it's very fun to be able to do that as part of my job.

    The thing which I notice the most about the people at Microsoft is how passionate, dedicated and commited everyone is.  People work hard and long because they want to, not because they have to.  It reminds me of this blog post SomaS made on what he looks for in Microsoft hires.  His post rings true to me, working in an environment with passionate people is inspiring.

  • Cloudy in Seattle

    First Week at Microsoft


    Everyone seems to use the same analogy for what it's like to start working at Microsoft - "It's like drinking from a fire hose".  Having completed my first week, I would say that it's an appropriate analogy.  Here are the highlights of my week:

    1. The first day and a half are orientation or New-Employee On Boarding (NEO).  Orientation presents a ton of material on the benefits (awesome medical, PPO with no monthly premium and no copays for pretty much anything), culture, services, resources, security, IT, employee responsibilities, legal, and more.  You leave with a whole laundry list of things to do not only for the rest of the week but for the whole month.
    2. Met the members of the Cider, Smart Client and WinForms teams.  That reminded me of a game of memory where you flip over two pieces and try to find a match except with names with faces. 
    3. Setup my integrated voice mail/email messaging system which let's me get email via phone and get voice mail via email (of course you can still get email via email and voice mail via phone...).  There is also a system that uses voice recognition that allows you to call anyone at Microsoft just by saying their name.
    4. Signed up for a ton of discussion groups.  There are discussions on everything and its a great way to stay on top of what going on in the world, at Microsoft and with our competitors. 
    5. Visited the Microsoft Library site where I can check out books, search journals and magazines and just have a wealth of information at my fingertips.  Oh yeah, they deliver the books to you too.
    6. Saw Anders Hejlsberg at the cafeteria.
    7. Saw a "Free the Mallocs!" T-Shirt
    8. Got my Microsoft Prime discount card -- entitles me to a ton of great discounts around town.
    9. Enjoyed having the ability to install any piece of Microsoft software I wanted from the network.
    10. Joined what's probably the biggest (255,000 sqft) and poshest gym and spa in the US as a Microsoft benefit.
    11. Microsoft Company Store
    12. All the juice and soda you can drink! (burp!)

    One of the common themes is the tremendous wealth of resources that are made available to you as an employee.  I've never worked anywhere that comes close to the amount of information, ways to get your questions answered, infrastructure, and training that Microsoft puts at your fingertips.

    It's been a lot of fun and a lot of work.  I'm really excited about the project, the people I get to work with and just being a part of this company.

  • Cloudy in Seattle

    New City, new house, new job, new blog


    Welcome!  This blog is a continuation of the blog here where I talked about Windows development and software.  As mentioned in my last post on that blog, the last two weeks have been full of a lot of changes both personally and professionally. 

    The short story is that this is my first week at Microsoft as a Program Manager in the Developer Division in the .Net Framework, Client and Web Platform and Tools Team.  I'm really jazzed because after arriving here I found out I landed up on the Cider team. Cider is the project code name for the visual designer for Windows Presentation Foundation (avalon) that is geared towards developers and will run inside of Visual Studio. 

    The other WPF/Avalon designer is Sparkle which is a stand alone application geared towards graphics/UI designers.

    The Cider team is really staffed with great people and I'm really lucky to work and learn from them.  I can tell already that this is going to be an experience to remember.

Page 1 of 1 (7 items)