| Comments

looks like the silverlight tour is giving a free ride for a half-day session on silverlight in dallas.  i've sat in on one of the early silverlight tour stops before silverlight even was officially released.  i can only imagine that it has gotten more exciting as time goes by.

the dallas event is limited to 32 attendees, so register asap if you can make it.  this free session looks to discuss:

    • Why should I care about Silverlight
    • What is Silverlight?
    • When should I use Silverlight?
    • What is the Silverlight story on the Server?
    • How do developers and designers work together?

it will be on 18 FEB in the dallas, tx area (las colinas microsoft campus -- details on the registration link).  register if you can make it and get your free ride :-).

| Comments

wow, i find myself every four years having the same thoughts when presidential elections happen.  i think of the same things every type of election (less on very local ones because that is where candidates actually do have some immediate impact i think).

a little over 3 years ago now i remembered listening to the same type of stuff.  i wrote how my campaign for elementary school student president was that i'd put grape soda in the drinking fountains.  as i watch all these debates and the enamoring of the mainstream media airwaves, i begin to laugh again.  i'm not into politics too much, but i know (maybe i'm jaded/cynical) that whatever any candidate says isn't going to happen without the support of the senate/house.  and i know that the 'for the people' attitude has since been long gone in american politics.

i'm a registered democrat but i'm not sure why.  i'm sure at some point i checked something on a registration form.  i don't really claim a party beyond that.  i choose my values/beliefs as a party rather than a political one.  i like things that both parties are passionate about.  with this presidential election, i see massive divisiveness among the candidates and i think that's bad for us all.  you see, i think the election system for presidents is flawed.  the electoral college seems outdated to me.  what's so wrong with a popular vote?  when i hear rumblings of what romney claims happened in west virginia (and huckabee's not denying it), i get sick.  the interest of the people's desires don't count anymore.  it's all about back-door promises.  i laughed when someone suggested an obama-clinton ticket.  you think either one of those don't have their running mate planned based on promises?  c'mon. (did i mention i love conspiracy theories?)

with this years candidates i've decided that i'm not listening to their promises.  maybe a little, but i know that the 'change' so promised by all will not come without the backing of all...and that is not going to happen.  so i rely on a completely lame decision tree -- who do i think is most 'presidential' and can best represent the country to others.  i don't think any candidate is immune from new imitations on saturday night live...that's not what i'm after.  but my decision comes down to 2 of the candidates who i think are most presidential.

first, it isn't clinton.  quite frankly a bush-clinton-bush-clinton 16 year stint disgusts me.  are we a democracy or a dynasty?

my choices: obama or romney.  obama has impressed me as one of the most polished speakers i've ever seen.  barely using prompters or cue cards, he is so incredibly confident.  i swear he is a zig ziglar graduate.  he walks and talks with confidence.  that's impressive.  he's seemingly humble most of the time as well.  romney as well talks like an amazing politician.  and look at the guy...ultra clutch hair and a solid chin.  he looks like a president.  now i don't profess to know anything about either of these two backgrounds so don't flame me there -- i'm admitting my selection process has corrupted to lameness.  i just look at both of these guys and thing they are the most polished representatives behind a lecturn giving the state of the union.  yes, lame.

we'll see what happens when we express our voices and it doesn't matter vote come november.  for me right now it is somewhat exciting to watch all this politicking going on despite the fact that most american's don't even get it.  we're deciding based on accusations we see during commercials, and not doing our homework.  despite all that, i'll vote (so i can still complain if needed), and you should too -- our voting turnouts in this country are sickeningly low -- and that's the reason that politics is politics now -- the people don't voice enough.  we've let others decide what is best for us, and that's wrong.  register to vote.  then vote.  get your damn sticker.

| Comments

miniclip.com now has a silverlight 1.0 puzzle game to their catalog.  this is pretty good to see among the massive catalog of casual games they offer.  this game is built using silverlight 1.0 and is a good use of a lot of the capabilities (and in some cases maxing them out) for the 1.0 platform.

Games at Miniclip.com - Zombomatic
Zombomatic

 

Swap the conductors to connect them into a path for the electricity to flow.

Play this free game now!!

the game, built by terralever, falls into that 'casual gaming' category -- you know, the ones where you decide only to spend a few minutes taking a look and then end up forgetting that meeting so you can complete all the levels?  this one is an addicting game to figure out how to reveal all the levels possible.  check it out.

 

you may remember the terralever name from the zero gravity game.  while that game was a proof to look at the capabilities of silverlight 1.1 at that time, the zombomatic game was built using silverlight 1.0 release technology so that it could go production.  congrats to the terralever team for this release and we look forward to seeing what you can do with silverlight 2 when available for production applications!

the silverlight team will be at MIX08 this year and i'm sure eager to talk to those interested.  i'm trying to ensure they stop by open spaces @ mix where i'll be hanging out most of the time.

| Comments

thanks to all who came out to the denver devdays big event this week.  this was the first time i've traveled in a while since various family ailments and situations.  i had a good few days in denver with some good peeps.  thanks to beth massi for joining our developer crowd in denver.  she was awesome and had a crowd wherever she was.

i attempted to do justice to office development in one of the sessions.  one of the challenges on that topic is that 'office' now encompasses a lot of things...here's my known short list:

    • word, excel, access, outlook, onenote, infopath, powerpoint
    • smart tags
    • sharepoint
    • communicator
    • excel server
    • workflow
    • groove

so when you have an hour for a developer session, which do you pick.  i chose to pick the office client applications and demonstrate how visual studio 2008 enables writing office client applications easier than ever.  i chose this because doing office client development in the past (even with 2005) wasn't really a no-brainer.  there were still a lot of configurations as well as still some things you couldn't do.  with office 2007 and vs2008, it is a no-brainer now.  vs2008 (professional+) now comes with the office tools built-in...no more needing to download a separate client (or pay for a separate tool).

in my session i attempted to cover four key areas (only three of which we got to).  i wanted to demonstrate the UI customization features, outlook form regions, word content controls and task/action pane development.  the slides for my presentation are at the end of this post (PPT 2007 and PDF) and as promised there is an appendix in there with some information we didn't get to.  the two most important links in the slides are the ones to the Office MsoId sheet and the OfficeImageId worksheet (which you need the developer options to be enabled in Excel to see the gallery options).  get these files.  download.  save.  you'll need them.  and when you can't find them you'll need a mt. dew (or scotch or whatever your calming choice is).  don't ask me why the MsoId's are not enabled in the designers of the office components...i've asked and don't know.

the first thing we covered was the office ui customization.  vs2008 provides a new visual designer for the ribbon.  you can still do the RibbonXML if you're insane you want to.  as we demonstrated, almost everything can be accomplished in the ribbon designer.  intercepting commands (such as FileSave) is something you'd need to much with the RibbonXML for and the designer provides an 'export to ribbon xml' feature so you can do most of it visually.  vs2008 provides a great design-time experience as it provides a ribbon as the design-time experience.  most everything after that is choosing which tab (custom or built-in using one of the idMso values from the worksheet), and adding controls.

this capability enables a rapid development timeline of creating customized ui features that are familiar to your users and integrate with your own application.  i demonstrated my flickr add-in which i install on the TabInsert area of office applications:

in outlook development, vs2008 has made this easier now.  we can now extend the default outlook message class UI implementations (i.e., IPM.Contact, IPM.Appointment, etc.) through designers in visual studio.  the tool enables us to choose how we want our customizations to be as well (replacements, adjoining, etc.).  the image below is the adjoining one we created with integrating virtual earth into the contact form to pinpoint in the contact form the address of the selected contact:

when writing outlook form regions (and as we saw in all other areas as well), the development isn't 'office-ish' at all.  once you've decided where/how the form region is going to interact, now you are just writing managed code.  you can integrate with wcf services, use linq, whatever...it is the same .net framework you know and love.  the office api's are now exposed to you to interact with as well.  as an example, anything in the contact item is easily and readily accessible to the developer to use and/or alter.  the same goes for word, excel, etc.

the last area was the task/action panes.  to clarify the terms:

    • task pane: an implementation of a pane that is application-wide -- every document will be able to use the pane
    • actions pane: document-specific panes that are a part of a document/template but not installed as add-in to the global

the distinction between these two is pretty much at that level above.  there are some subtle differences, but for the most part that is the major difference you need to know.  the panes are implemented as user controls for your app/doc add-in now.  so as a developer you now have a user control surface where you can add controls, interact with the document to get values, etc.  to add your custom pane you would write code like this (using excel as an example and a task pane):

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
      CustomTaskPane ctp = this.CustomTaskPanes.Add(new UserControl1(), "Pane Title");
      ctp.Visible = true;
      ctp.Width = 250;
}

the UserControl1 would be whatever your user control representing the task pane you want to display.  remember, that each add-in has that "ThisAddIn" stub generated for you.  there can be multiple task panes for an app/document.  so if you need more you can go nuts.  but i'd be sure you take into account the user experience and ensure that you aren't crowding the main focus of the functionality (the document) for the user.  panes are dockable through the DockPosition property.  if i wanted my pane to be docked on the bottom i could use:

ctp.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionBottom;

but one thing to keep in mind is other properties.  for example, if i added the line above to my initial code and had the width property, i'd get an exception.  i'm trying to set a width when a bottom-docked item fills the user's width -- no can do.  of course i should probably implement better checking and simply handle that scenario.

the action panes are no different (other than how they are added is via a different class instead of CustomTaskPane) and simply are scoped to the document.  both are implemented as user controls and you can put windows controls on there and interact in code however you want.  in fact we demonstrated how we could implement XAML into a task pane.  here's a screen shot of the task pane with a XAML rectangle (which animates, but hey, it's a screenshot) and an embedded media element of a video.  you could think of documents that might be handbooks/trainings and include video with it so as the reader (or form-filler-outer) is looking at the document they might get live help via video:

i didn't get to the word content controls in my session, apologies.  we also didn't talk about sharepoint development, etc.  i think you could spend a whole time on that.  you tell me, what concerns you about sharepoint development?

i mentioned a few developer tips as well that i'll emit here:

    • remember 'Globals'
    • create a stub mail profile (control panel -- Mail) so when writing outlook applications you aren't constantly trying to connect with a real mail system.
    • click the 'office circle' and go to application options, add-ins, manage com add-ins to remove/clean up your developer litter

here are the slide decks: PPT 2007 and PDF

i hope that those who attended learned at least one thing new.  some of my demos weren't cooperating despite me staying up until 3am doing them three times.  such is life.  thanks again to those who came.  be sure to check out beth's post as she used VB XML literals to leverage Office Open XML to write a mail merge in XML code which generate word documents...it was pretty slick.

| Comments

i hadn't been on a plane in a while and the second i stepped on i realized how much i hate it :-).  but denver was going to be a refreshing stop -- cooler weather and seeing some friends on my team.  so rob and i headed out on wednesday.  i didn't even know we were landing until we hit the ground it was that white outside the windows.  needless to say, despite going to school in constant snow, i'm reminded how much i suck at bad weather driving.  i think i made rob flinch a few times on the way from the airport.

Sam's No 3 Heart attack sam

we made it safely and met up with jd for dinner.  i have to tell this story because it cracked me up.  jd decided he was in the mood for fried chicken.  okay.  good.  all i need.  i've lost 20 pounds since the beginning of december and was dreading this trip for the food (i eat like crap on expense accounts).  jd had picked this place that he said was famous for their fried chicken.  off we went to sam's no. 3 in aurora.  in the snow.  we saved the donut driving until the parking lot though.  we got their fine.  needless to say the fried chicken was not the featured item on the menu.  jd opted for the papa's...whatever...#21 the waitress said.  i asked her if i never came back here again what should i try.  she opted to order me the sourdough meatloaf sandwich with ranch, cheddar, and bbq sauce.  yeah, it sounds nasty but it actually worked.  rob got the fried chicken :-)...he said it wasn't that great.  jd's breakfast burrito was about the size of 2 axe handles.  i'm not sure it is even in the classification of a burrito to be honest.  jd took that down like he was going to lose a contest to kobayashi.  impressive. 

the next day we were all doing an event for microsoft so we hit it early.  well at least went to our rooms early.  i stayed up until about 3am still prepping and triple checking my demos (needless to say 2 still failed).  we had the event and i think it was a great success despite my session.

that night we were beat (and i was beaten up).  we sat in the lobby and watched 2 hours of lost and the season premiere of a show i can't even remember the name of (it wasn't too bad though).  good solid 3 hours of 'team building' -- lost was awesome.

anyhow, good to see the snow.  good to be out of the snow.  stay classy denver.  see you in march.