Hello Again

Well, it sure has been awhile.

After leaving Microsoft in 2010, I have been working on a variety of interesting and normally challenging projects. I’ve been fortunate enough to learn a lot on the way, but I’ve realized I’ve been mostly holding it all in.

I normally work on smaller projects where I am the dev team or there is one or two other people involved in the work. I don’t get out to as many conferences as I used to and all the good meetings are across the lake in Seattle, not east-side where I live.

Devolving to mild hermit status with only tiny tweets and the not often enough lunch/dinner/beers with a dev friend to talk about work. Oh if only I had a blog…

But I do, right here. Sitting and waiting patiently like the dog who believes that anytime I put on socks, it must be walk-time. Why else would he be putting on socks?

Blogging though, it only happens when you have something amazing to say or perhaps a long tutorial or some impressive announcement. Enough of that thinking, that’s why nothing has been posted since February of last year.

I’ve got plenty to say that involves more than 140 characters. I spend a lot of my time learning new stuff, sometimes I still get the chance to work on undocumented stuff. I also have been working as an independent contractor for 3.5 years and have some ideas there.

The final step would be the desire to post these thoughts regularly and not just let them drown in the office. Let’s see if I can get through that and start posting…

My mom won’t care about the Windows 8 Start button

Disclaimer: I am an independent Windows 8 developer who used to work for Microsoft. My family uses Windows PCs and iOS devices. When working on HTML5 projects I sometimes use a Mac to develop. Its crazy, I know.

There has been a lot of talk about the lack of a Start button in Windows 8.  Or more accurately, a statically placed visual icon in the Desktop app which the user can click on to return to the Start screen.

What happens if the user is in the Desktop app and moves there mouse into the same area, perhaps even driven by muscle memory?  A little thumbnail of the Start screen shows up and when clicked takes you to the Start screen.

For even faster travel back to the Start screen, just press the Windows key and you’re there. It’s stunning, really.

I do agree though, it’s not in your face and you have to learn how to do it. Should they put the Start button back in the task bar?  Sure, just use the new Win8 logo and you’re done.


Do I think this is going to be a real issue for my mother, grandparent or my kids? No.  At least I hope not.  If so, something went terribly wrong.

Try this.

Go to one of your non-techie Windows-using friend’s computers and hit the amazing start button.  Take a look at the most commonly used programs.  What do you see?

This is what I found:

  1. Web Browser
  2. Photos, Music, Video, Messaging, Twitter, Facebook, Reader
  3. Windows Explorer, Microsoft Office, Video Chat, Calculator, Snipping Tool
  4. QuickBooks, Family Tree Maker, Minecraft, League of Legends

Those are examples of commonly used Windows Programs. Now how does that compare to the new fandangled Metro style apps which run from the Windows 8 start screen and not the Desktop app?  You know the one missing the Start button.

Web Browser
You can do just about everything in the browser, the web is amazing. You may even be able to build an OS on it.  Is there a Metro-style browser in Windows 8? Yes, its IE10 and hey it has way better support for CSS3.  Are there more coming? Yes, Firefox is confirmed.

Mail, Photos, Music, Video, Messaging, Twitter, Facebook, Reader
There are Metro-style apps already available in the Consumer Preview that perform these functions. Are they awesome? Almost, definitely promising, but I believe they will be better for release. And if not, there will be other options via the Store.

Windows Explorer, Microsoft Office, Video Chat, Calculator, Snipping Tool
These programs are not  yet available as Metro-style apps. If Microsoft does not make them available then they’ve failed here.  And the good news is, as far as the last three are concerned, there will be other options via the Store.

Quickbooks, Family Tree Maker, Minecraft, League of Legends
These are examples of programs that are likely not to be changed (ever or anytime soon) to Metro-style apps, for some reason or another – existing investment, technical philosophy, etc.  This is where it hits the most and we might need that little Start button back. And if you don’t convert or get a hook in the Store somehow, less and less Windows users will adopt your program and instead use one of the other options via the Store.

My mom won’t care about the Windows 8 Start button
Because hopefully she will be too busy hanging it in Metro style land; not breaking her computer rather finally getting to it enjoy it.  One of my first “ah-ha” moments with Windows 8 was looking at the Settings app.  “My family could use this!” I thought.  It’s way friendlier and less intimidating than the Control Panel.  Thanks Metro design language.

…other options via the Store
You may have noticed this phrase come up more than once in this post.  That’s because this is big clincher, the thing that makes everything work.

Quick, guess how many Windows programs my 10-year old daughter has installed? 0

Now how many apps has she installed on her iPod? At least 30 or 40.

What does the mean?  She loves her iPod way more. I believe that once she sets up her Win8 PC in the same manner as well she’ll be hooked. When my wife customizes her Win8 PC she’ll be happier and more productive. When my mom customizes her Win8 PC (or I do it for her) she won’t be lost anymore.

As for those of us power users
I need my Visual Studio and Photoshop to pay for all of these apps and Windows 8 PCs, so I need to learn to be comfortable moving between the Start screen and the Desktop app. The good news is it’s not that hard. You really just need to know Win, Win+X and Win+C.

Try it out. Besides, your other hand needs something to do while you’re mousing around.

I’m doing the BUILD HIVE 2011 conference combo

I’ve been looking forward to the BUILD conference since it was announced.  Seeing the Windows 8 demo, with its fancy new Metro evolved look and the fact that new development technologies are on the horizon, makes me feel giddy at the idea of once again a new technology to explore, hate and love.

I had all my plans in place and everything was set until Friday night I caught wind of the HIVE conference happening right here in the Seattle area.

A design and tech conference happening right here, with all the cool kids in the neighborhood?  How could I miss it?

Well, I almost could have because it happens to be on September 16th the last day of the BUILD conference.  Hmm, the last day of a 4-day conference, that’s where the conference organizers tend to place the sessions that they should run, but are not the most excited about.  I bet if I catch those online later, I won’t miss too much.

So the decision is made. Fly down to Anaheim for BUILD, soak up Windows 8 and HTML5 goodness then come home a day early to attend HIVE and ruminate over design and developer workflow and be inspired to do greater work.

Anyone else doing the BUILD HIVE combo?

Building a Windows Phone 7 game at the Kinect Code Camp

This week I had the unique opportunity to take part in the Kinect Code Camp, a quiet event starting 24 hours before the public launch of the Kinect SDK.

From the beginning there was a great vibe going on provided by the Channel 9 and Coding 4 Fun folks. Everyone was excited about the possibilities of Kinect and we were all ready to see what we could build in 24 hours.

Start of the Day
The Badge
The Snacks
A space blanket for hyper naps
Lining up the shoot for G4

Here’s a brief run through of how the event went down:

0900 – An overview of the new Kinect SDK is presented by Dan Fernandez and Clint Rutkas.

1015 – Team Chupacabras consisting of Rick Barraza, Dennis Delimarsky and myself begin coming up with an idea for our project.

1205 – We knew we wanted to do something with the Joints API and we’d been working with Windows Phone lately – thus Bunny Hop was born. A multiplayer co-op game where one player uses a Windows Phone as the birds-eye view navigator and the other hops through the maze with a first-person view using the Kinect.

1400 – At this point, Dennis and I had gotten through the mystery of connecting the two clients (Phone and WPF app) to the service.  Rick had a WPF 3D world up and running from scratch. With the mysteries out of the way it was time to write app-specific code.

2100 – Correct data is now flowing from Phone to server and on to WPF app, as well as from WPF app to server to Phone App. Direction of the player comes from the phone using accelerometers, hopping (moving forward) and grabbing and dropping objects comes from the WPF app using the Joints API.  Rick begins integrating the Kinect-enabled WPF app with the networked WPF app.

0530 – After hours of debugging, fine-tuning, eating snacks and hiding under space blankets, we decide to try and grab some sleep before the big live show.

0815 – Arrive back at Code Camp (showered, somewhat refreshed) we still need to clean up graphics on both Phone and WPF app.

0845 – Bus shows up to take us to Studio 20 for the Live event, finishing up graphics in the Lobby.

1000 – We head into the studio to demo our brand new Phone/Kinect game on Channel 9 Live. You can see our demo by viewing this video and fast forwarding to minute 40.

1030 – Back to the Code Camp to talk to the press about our experience:

Here’s a screenshot of the Bunny Hop game in the bird’s eye view on the Phone, followed by the first person view in the Kinect-enabled WPF app.

Bunny Hop - bird's eye view

Bunny Hop - first person view

In Conclusion..
It was a great experience and the Kinect SDK is really well put together, its very easy to get started with. Although our game was hastily put together, I am very happy with the results.  The big win though was taking time out to go through the process of building a Kinect-enabled app and thinking through the new dimension the Kinect adds to software development.

And thanks to Jessica Chobot for enhancing the name. It is no longer just “Bunny Hop”, it has been renamed “Super Hyper-Cute Bunny Hop”. Hop along now.

Grid by Example – WP7 design

I opened a PSD file today which contained a WP7 panorama design and this is what I saw:

intense grid lines for a WP7 app

Metro, the design language for Windows Phone 7 is all about the grid.  At least that’s where you start; then you break the rules to help enforce brand and the intent of your app.

If you’re involved with Windows Phone 7 app design and you haven’t already watched Megan Donahue’s MIX11 talk Advanced Application Design, watch it now. It takes a step beyond, “what is Metro” and moves to “how do I apply it and make something memorable”.

Then once you’ve watched that, check out Ward Bell’s talk All Thumbs: Redesigning an Existing UI to Suit Windows Phone 7.  Ward takes the concepts and inspiration designs from Metro and applies a business application perspective.  Its all about “Jetro” and its more about experience design than i think Ward even knows.

Throwing Stars – a new HTML5 game

Throwing Stars Sampler

Throwing Stars is a new HTML5 game where the goal is to throw a star across the sky and collect all of the sparkling tokens before you run out of stars. Of course it’d be too easy if there were just tokens out there – watch out for walls, planets that will try and get in your way or black holes looking to swallow your star .

We, at Pixel Lab, were given the chance to work together with Ze Frank’s star.me team to build this game as a way for people to win an invite to the new star.me site. It was a fast and furious project, but we were inspired by the site’s whimsical feel and we had a hard deadline to make it to the star.me and IE9 launch at SxSW.

Throwing Stars Instructions
Throwing Stars Instructions pg 2
Throwing Stars blackhole hint

Here’s a few of the tools that helped us out:

  • Google Closure Tools – not only does it provide wonderful compression and compilation, but the inheritance and dependency feature are great
  • box2D physics engine (PixelLab edition) – a cleaned up compiled version of the original JavaScript version of box2D
  • EaselJS – a great sprite library from gskinner for working with Canvas, similar to Flash movieclips
  • Zoë – a tool for exporting swf animations as EaselJS sprite sheets, ended being a really nice workflow

One more thing to point out, we also enjoyed the much acclaimed openess of it being another HTML5 game. We were able to use Mac or Windows for development, with everything safely stored on github.  And the game runs on multiple browsers, OSs and devices. Of course its not perfect across the board yet, but its exciting to see the potential.

I’m looking forward to our next HTML5 project, which I believe starts right now…

See you at MIX11, and hopefully the Windows Phone 7 Boot Camp, too

Less than a month to go for the big MIX11 conference and the buffet of sessions and events looks tasty and they haven’t even released the official sessions yet.  Presently you can peruse the site and find the Boot Camps, UX Lightning Talks (hooray!), R&D sessions, Open Source Fest and the Open Call talks.

This will be my first time attending MIX not as a Microsoft employee and I’m looking forward to waiting in the registration line, avoiding the glare form Ward’s shirt, huddling in awe after Robby’s talk and getting my MIX11 grocery bag.

For more tips on attending MIX, I’d forward you to @TommyLee‘s Field Guide to MIX but it appears to be a 404 now.  If you’re interested keep an eye on his twitter account.  I’m sure once SxSW is over he’ll start talking about MIX again.

Another good source of the haps at MIX is the official Countdown to MIX11 show.

Now on to this Boot Camp business…

app logo sketch

The above sketch is a preview of the app the Grant Hinkson and I are working on for the Windows Phone 7 Boot Camp for MIX11.

Here’s the official blurb:

In this workshop you’ll see a complete Windows Phone app built from the ground up. We’ll walk from File > New Project all the way through app submission in the marketplace. You’ll learn all the tips and tricks required to make your app feel like a native app, from smooth page transitions to highly performant progress bars. You’ll leave with a fully functional app that you can start customizing with your own data and submit to the marketplace for instant global reach.

Grant and I are both programmer nerds who are also nerdy about design, so we’ll be presenting a pragmatic and design attentive way to build an app for Windows Phone 7.

– How easy is it to build a Windows Phone 7 app?

– How do you make an app feel native, but stand out enough to be memorable?

– What kind of development decisions are needed to work well with the environment?

– What is the submission and update process like?

We’re really looking forward to the Boot Camp and we hope to see you there.  If you haven’t registered already for MIX, do it now, before its too late- MIX11 Registration.

I hope to see you there, if not in the Boot Camp, at least in a hallway or two.

And now a parting gift…

Microsoft Class of 2010

Since putting in my notice at Microsoft this year, I’ve been paying attention to others who have left the company as well. This is not a “canary in a coal mine” list; rather its just a reflection on the inevitable changes in a large company and the lives of individuals.

It’s a pleasure to have been in the (self-appointed) class of 2010 with these folk and a reminder of the amazing talented people flowing in and out of Microsoft.  Cheers to new directions in careers and for the company.

I’m looking forward to Windows8, Windows Phone 8, IE9, Surface 2, Xbox 720, Silverlight 5 and Yet to be Named Product 1 and 2*.

The list is organized alphabetically by name which links to their farewell post or a related article. Following the name are highlighted areas of work and the last few words from their link.

Adam Kinney – Channel9, Silverlight, Expression Blend
“…so I won’t be going too far.”

Anand Iyer – Evangelism, Windows Phone
“Stay tuned…”

August de los Reyes – Surface, Design Research
“I’m done! 🙂 ”

Brad Abrams – .NET Framework, ASP.Net, Silverlight
“I’d love to stay in touch:”

Chris Burrows – C#

Chris Smith – F#
“You can reach me via my new blog”

Chris Wilson – Internet Explorer
“*** sheesh.  Seriously, just kidding.”

David Crow – Evangelism
“make sure you follow up with John.”

Gary Flake – Live Labs
“I have resigned from Microsoft.”

Ian Ellison-Taylor – Visual Studio, WPF, Silverlight

J Allard – Father of the Xbox
“Decide. Change. Reinvent.”

Jean-Luc David – Evangelism
“Thanks everyone!”

Jim Hugunin – IronPython, DLR
“So long and thanks for all the fish”

Jimmy Schementi – IronRuby, DLR
“Stay tuned, and thanks for all the support thus far.”

Noah Coad – Visual Studio

Lauren Cooney – Web Platform
“Happy Holidays!”

Michael Lehman – Evangelism
“More details to come at the beginning of the new year!”

Phillip Su – 12 Years of Randomness
“Individuals are the sole cause of anything that’s ever happened.”

Ray Ozzie – Chief Software Architect (transitioning)
“… clearing a path to the extraordinary opportunity that lies ahead for us, for the industry, and for our customers.”

Robby Bach – President of Entertainment & Devices Division
“my decision is about things I want to do, not about opportunities for the company”

Sara Ford – Power Toys, CodePlex
“Or to quote Lost, ‘See you in another life, brotha!'”

Simon Guest – Architect Evangelist
“Time to think of something new, perhaps”

I’m sure I missed others who have left the company this year.
Who else should I add to the list?

*All of the product names are completely made up and hold no real weight with the exception of IE9 and Silverlight 5 which have been announced.

**UPDATE: added Anand Iyer, Chris Smith, Gary Flake and Simon Guest

I’ll be that guy – future directions and so on and so forth

Today during a call with Mr. Ingebretsen discussing a project, we had plotted who would be the dev lead, who would be the design lead and who would be the dev/design/wireframe/glue lead.  I said “I’ll be that guy”, the “glue” guy.

In the past, as a small startup style guy I’ve often played the role of the “every man”. Code, design, project planning, pm, mascot, evangelist, interface, media, graphics, lead, tech writer, trainer, booth babe, conference goer and other miscellaneous jobs.

Its been certainly an interesting, educational and entertaining time.

Since recently leaving Microsoft, I’ve been reevaluating my professional life.  This includes technology, project and work focus as well as usage of social media and my blog.  My last job at Microsoft as a Technical Evangelist had a strong influence on all of these aspects and now that I’ve moved on, I have the opportunity to start fresh.

Here’s my current thinking:

Technology – Part of the fun of becoming “independent” is you get to choose the best tool for the job.  At this point I want to be proficient in all of the major UI technologies in order to use the right tool for the project. I also feel this helps open my mind more when I can step in and out of different ways of thinking.

Projects – I’ve always been more of a “web guy” and that isn’t going away. Silverlight and Flash are great, and with the onset of HTML5 (and the tech surrounding it) I see that continuing to be a place of interest when focusing on projects that need “reach”. Otherwise, I’m enjoying native WPF or iOS applications for projects aiming for the richest experience, including mobile projects.

Work – I most enjoy working right in the middle of development and design. “Design whatever you want, and I’ll make it work.”  “Get the services and data in place, and I’ll send them to the user.”  Those are phrases I’d like to say on every project with abandon. I am planning to hone my skills more, though, on interface design and visual communication.

Recently after reading Clive Thompson’s on the Power of Visual Thinking, I was reminded of my  interest in “visual thinking” and the ideas spread by the likes of Dan Roam.  I love to draw and the power of an illustration, why am I not spending more time doing this?

Social Media and Blogging – my past behaviors in this area were very tailored by my previous position.  Am I posting or tweeting at the most effective time of the day?  Am I posting a tutorial that enough people will find helpful?

I still enjoy being helpful and learning from others, but I’m hoping to add a bit more personality, creative recklessness and randomness into what I do online.

I like the idea of not caring so much about numbers and “geek-fame”.

I like the idea of sharing ideas and ways of thinking and not just tutorials.

I like the idea of trying to do something different.

So to begin my plan, I opened up and wrote this post, which does not fit into previous recent posts.  I’ve also included a related sketch.  The sketch is not inked, left unfinished and barely touched up in Photoshop. But it is different, fun and its not being posted during the most effective time of the day.