Mike Swanson

  • Mike Swanson's Blog

    PDC 2008 Conference Scheduling Using a Genetic Algorithm


    If you read my What Do I Do post, you'll know that I'm the Content Owner for this year's PDC 2008 in Los Angeles. MIX08 is behind us, and I've just recently transitioned away from my Web GO role. This means that I can now focus 100% of my time and attention on our October event. It's going to be fantastic!

    One of the many responsibilities I have as Content Owner is to create the master schedule for the event. This is the schedule that tells you which session is in which room and at what time. For PDC 2005, we delivered over 200 sessions at the conference, not including repeats (we run repeats of popular sessions that are filled to capacity).

    Because PDC is where we talk about the future of Microsoft's platform, all of the content relates in some way to our overall strategy (which is typically delivered during big keynotes and general sessions). This means that some sessions need to be scheduled ahead of others to provide foundational and prerequisite knowledge. For example, a 200-level (intermediate) session covering a specific topic should precede a 300-level (advanced) or 400-level deep-dive. The following diagram is a simplification, but it illustrates my point.

    Here are some additional constraints that must be considered when creating a master schedule:

    • Only one session can be presented per room during any given time slot.
    • A speaker can only present one session during any given time slot (i.e. can't be in two places at the same time).
    • A speaker may only be available on specific days.
    • A session may require audio/video equipment that is only present in specific rooms.
    • Popular sessions should be scheduled in larger rooms.

    To tackle the scheduling problem, sessions are typically grouped into tracks. These tracks are then scheduled in parallel, almost like mini-conferences running alongside each other. While this can be effective, many studies show that conference attendees don't attend tracks; they attend sessions. In other words, it's relatively rare for someone to sit through all of the sessions in a single track. An attendee is much more likely to hop from track to track to attend the sessions they're interested in.

    Because of this track-hopping behavior, post-event surveys often reflect the inability of people to attend all of their favorite sessions. This is almost always due to a conflict where two or more desired sessions share the same time slot, and an attendee is forced to pick only one. For our MIX07 and MIX08 events, we tried to mitigate this undesirable outcome by publishing the session recordings within 24 hours of their completion (we actually averaged under 12 hours in both cases). This helps, but it's not a panacea.

    In an ideal world, conference participants would be able to attend all of their favorite sessions. We almost always do a pre-event survey asking people to pick the sessions they'd like to attend, and we use that data to extrapolate expected room capacities for scheduling. For PDC, where we announce many brand new technologies, we have the additional challenge of making educated guesses about how many people will want to attend sessions that aren't revealed until the first day of the conference. It's an inexact science, to be sure.

    For PDC 2008, we're going to try something brand new. In my spare time, I've been working on a genetic algorithm (you may want to review this article to understand some upcoming terms) that takes all of the above factors into account, including a couple more:

    • The total walking distance required for a participant to attend all of their favorite sessions. This distance can be significant in the Los Angeles Convention Center. The algorithm prefers shorter routes.
    • The degree to which room capacities are "balanced." This means that—on average—the algorithm prefers schedules that leave relatively equal space in each room. Otherwise, one room may be near 100% capacity while another is only at 25%.

    In my version of the algorithm, each solution in the population represents a conference schedule. The fitness function takes all of the aforementioned factors into account, and penalizes solutions with undesirable attributes. At the end of each generation, an elite group of solutions is retained, and the remainder are subject to both crossover and mutation. Generally speaking, optimal solutions are discovered in under 500 total generations.

    The end result is that most conference attendees should be able to attend most of their desired sessions, all without a rigid track structure.

    Update: Channel 9 has published a 32-minute video interview of me discussing this technique.

  • Mike Swanson's Blog

    Internet Sharing with the Samsung BlackJack and Windows Vista


    I was waiting for a flight out of Orange County Airport earlier this week, and after I fired up my laptop, I couldn't find any publicly available wireless networks. So, I decided to try using my Samsung BlackJack (SGH-i607) for internet connectivity, because I had remembered reading about the feature awhile back. I tried to get things working for about 10 minutes before I had to give up. I'm not a cell phone expert, but I can usually mind meld with devices and figure them out within a short period of time. Not this time.

    So last night, I dug in. After a few hours following forum threads across hundreds of posts, reading technical support notes, downloading drivers, and playing with configurations, I finally figured out how to properly set up and use the internet sharing feature with Windows Vista via Bluetooth. I thought I'd document the procedure here so that others don't have to go through the same painful process.

    As mentioned, I have a Samsung BlackJack (SGH-i607) phone that I upgraded to Windows Mobile 6.0 a month or so ago, and I'm running Windows Vista SP1 on a Dell XPS M1330 laptop. My service is AT&T (formerly Cingular), and I have an unlimited data plan (update: Blake Handler notes in the feedback to this post that an unlimited data plan may not cover the "tethering" feature I describe here, so it's worth checking the details of your account to avoid any surprises). The following instructions are based on these devices and software versions, so your mileage may vary if you're using something slightly different.

    1. Update Your Connection Profile
      On your BlackJack, go to Start/Settings/Connections/GPRS/AT&T IMS. It should say Connects to: The Internet, and most likely, Access Point: ims.cingular. Change Access Point to be isp.cingular (all lower case). Both User name and Password should be blank. Change the Authentication Type to be CHAP. Both Primary DNS and Secondary DNS should be and IP address should be blank. Press Done two times to return to the Connections screen.
    2. Activate Bluetooth and Make Your Device Visible
      Choose Bluetooth, then Bluetooth again. Click Menu, then Turn On Visibility. Choosing this option will automatically enable Bluetooth and make the device visible. Exit the menu and click Done four times to return to the startup screen.
    3. Establish a Connection Between the Phone and Your PC
      In Vista, choose Start/Control Panel/Network and Internet/Network and Sharing Center/Setup a connection or network. Choose Connect to a Bluetooth personal area network (PAN), then click Next. Click the Add... button to launch the Add Bluetooth Device Wizard. Check the box next to My device is set up and ready to be found, then click Next. After a few moments of searching, your device should show up, likely titled SGH-i607 (unless you've changed its name). Select the new device, then click Next. When asked about a passkey, choose Use the passkey found in the documentation and enter 0000 (four zeros), then click Next. On your BlackJack, you will be asked to confirm the connection, so select Yes. When asked for the passcode, enter 0000 (four zeros), then select Next. You should receive an Info screen stating that Your Smartphone has connected with your machine name. Click OK. Then, enter a display name for your device (or simply leave it as its default), and click Next. On the Services screen, click Done. On the PC, you should see a Completing the Add Bluetooth Device Wizard. Click Finish.
    4. Configure Internet Sharing
      On your BlackJack, select Start/Applications/File Explorer. From the My Documents folder, select Up, then scroll down and select the Windows folder, then scroll way down and select Internet Sharing (follow the steps later on to create a handy shortcut for Internet Sharing). Change PC Connection to Bluetooth PAN, and ensure that Network Connection is set to AT&T IMS. Select Connect.
    5. Connect to the Internet
      On the PC, make sure the SGH-i607 is selected, and click Connect. If everything goes according to plan, the status on your BlackJack should say Connected, and you should have internet access on your laptop. To disconnect, simply select Disconnect on your phone. Or, on the PC, right-click the small Bluetooth icon in the notification area, select Join a Personal Area Network, select the SGH-i607 device and choose Disconnect.

    I'm sure Bluetooth uses up more battery power, so it's probably a good idea to disable Bluetooth when you're not using it. Select Start/Settings/Connections/Wireless Manager, then select the Bluetooth option.

    To create a shortcut for Internet Sharing and make life easier the next time you want to use the internet, connect your Blackjack to the PC using the USB cable. I don't know of any way to do this without involving the PC. On your PC, click Start/Computer, then look for your SGH-i607 device, and double-click it. Double-click the root folder (indicated by a backslash), and look for a folder called Windows. If you can't see the folder, select the Organize menu, then Folder and Search Options. Click the View tab, and uncheck the option that says Hide protected operating system filed (Recommended). You'll receive a warning; select Yes, then click OK. When you can see the Windows folder, double-click it, then scroll down and right-click on Internet Sharing.lnk. Choose Copy from the drop-down menu. Find the Start Menu folder (probably by scrolling up) and double-click it. Right-click anywhere on a blank area, and choose Paste from the drop-down menu. On my phone, I had to turn it off and restart before I could find the new Internet Sharing icon under the Start menu.

    Whew! Hope you made it through all of that! Fortunately, after you've gone through these steps once, you only need to perform steps 4 and 5 to connect to the internet. If you find any problems with these steps, or if you have any recommendations that have worked well, please leave feedback.

  • Mike Swanson's Blog

    Over One Million Wallpaper Visitors


    I watched the stats for my wallpaper page tick past one million a few days ago. Wow! If you'd have told me when I posted my first macro photo years ago that it'd be the most popular page on my blog (by a long shot), I wouldn't have believed it. I haven't actually added up the individual downloads, but it would easily exceed one million, since I get a lot of direct links from other sites. I average a little over 4GB downloaded each day. Interestingly, more people download the widescreen versions of my wallpaper than the standard ones. I wouldn't have expected that.

    I receive a request almost every other day from someone who wants to use one or more of my photos for a project. I almost always say "yes," because I really enjoy seeing how the photos are featured. All I ask for is credit for the photo, a link back to my wallpaper page, and a sample or photo of the finished project. Over the years, my photos have been used: as wallpaper for Windows Vista, as a backdrop for a concert, in car brochures, in magazines, as large glass panels in a Japanese architecture firm, as a background for plasma displays in universities, in annual reports, and many others. It's quite inspiring.

    So, to commemorate the occasion, I've just added 10 new photos for your enjoyment. Most of them should feel like spring, except maybe the deep blue image. It's the only photo I liked from a series that involved food coloring.

    On to the next million!

  • Mike Swanson's Blog

    Donkey Kong at MIX08: Behind the Scenes


    In the two weeks since our MIX08 event in Las Vegas, I've been asked many times about Steve Wiebe's attempt to re-claim the Donkey Kong world record at our TAO attendee party on March 5th, 2008. So, I thought I'd document what happened "behind the scenes" for those of you who may be curious.

    The story really began back in September, 2007 when a few of us at Microsoft had dinner with Steve at a local restaurant here in Washington. We're all fans of The King of Kong: A Fistful of Quarters, and our only motives were to eat some good food and meet Steve Wiebe. It honestly didn't go any deeper than that.

    Some time passed, and as we started to think about entertainment for our MIX08 event, Steve's name came up again. I was a member of our MIX08 core team (the group of people who organized and ran MIX08), and we reasoned that our audience—which consists of a lot of people who grew up playing classic arcade games—would love the opportunity to play some classic games and meet a true master. Due to space constraints at TAO, we eventually dropped the idea of renting a club-full of games but stuck with the record-breaking attempt.

    I asked Steve if he'd be interested in participating, and after coordinating the time off with his school district (he's a teacher), he said yes. Steve then put me in touch with Ed Cunningham (leftmost in the photo), the producer of The King of Kong. In addition to being an all around great guy, Ed knew a lot about what it would take to make this an official world record attempt...more on that later. Ed also suggested that we screen the movie at MIX08 so that anyone who hadn't seen the film would understand who Steve was and what he was trying to do. He offered to help us coordinate and also put me in touch with Walter Day, the founder of Twin Galaxies.

    I love Walter. The first time I talked to him on the phone, I had a smile on my face from ear-to-ear. When I started to explain what a Microsoft Technical Evangelist does, Walter actually gave me one of the best descriptions I'd ever heard! And most people have no idea what we do as Evangelists at Microsoft...even after I try to explain it to them. He's poetic in his phrasing and articulate in his speech. For our event, though, he was not only the official referee, but he helped me coordinate the intricate process of staging an official world record Donkey Kong attempt.

    According to Walter (and Ed and Steve), the release of the movie and its ever-increasing popularity has raised the bar for what it takes to stage a record-breaking attempt for Donkey Kong. To start with, I needed to find a Donkey Kong printed circuit board (PCB) that I could have validated as authentic and unmodified. As luck would have it, we have a vintage Donkey Kong arcade machine in our building on the Microsoft campus. Unfortunately, the cabinet is locked, and despite my many attempts, I could never find the owner of the machine.

    Walter put me in touch with Jeff Kulczycki (maker of D2K: Jumpman Returns) as one of two people who are trusted by Twin Galaxies to validate Donkey Kong boards. Thankfully, Jeff had an extra PCB he was willing to rent to us for Steve's attempt. To mitigate the risk of the board being damaged during shipment, Jeff also located and purchased a second PCB. Both of the boards were tested and validated by Jeff before being sealed and shipped directly to Walter Day at The Venetian Hotel (where they were kept sealed in The Venetian's secure area until Walter's arrival in Las Vegas).

    To maintain a chain of custody, around 11:00am on the morning of March 5th, we had a camera crew film Walter as he signed for and accepted the two packages from The Venetian. The crew kept filming as he carried the packages to TAO and unsealed the first of the two PCBs. We had coordinated with a local arcade rental company to deliver an original Donkey Kong cabinet (along with two other related machines for attendees). Walter observed as one of the technicians removed the PCB from the original Donkey Kong cabinet and replaced it with the validated board.

    After verifying that the machine worked properly, it was sealed and guarded by security personnel as the lighting and audio/video equipment were set up. A professional-quality video camera was mounted on a tripod behind and to the right of where Steve would sit. This camera would not only be used to record every moment of Steve's record-breaking attempt, but it would also send a live feed to the large monitors positioned in the club so that everyone could watch him play.

    Steve arrived early in the afternoon to go through a technical check. We needed to make sure that the game was performing correctly, that the joystick and buttons were operating properly, and that the video and audio feeds were functioning. After playing some warm-up games, Steve left the club to put on a darker shirt (his white t-shirt was reflecting off the glass and interfering with the video image). Throughout the technical check, Steve's wife, Nicole, and their two kids came to visit too.

    When Steve returned around 5:00pm, he started his first game. We wanted to give him as many opportunities as possible to beat the high score, and since the official party was from 6:00pm - 10:00pm, starting at 5:00pm gave him an additional hour. According to Steve, he had scored over one million points the prior weekend while practicing in his garage. Walter sat next to Steve and tracked his pace against prior attempts.

    Though I didn't note the actual scores myself, Twin Galaxies reports that Steve reached 929,800 points on his first attempt. While not enough to re-claim the world record, this was the sixth time that someone has reached the kill screen at an event like this. It was great to see in person. After a short break, Steve played a second game and scored 579,300 points. I played a lot of Donkey Kong when I was young, and I have to tell you...it was amazing to watch Steve do what he does. I almost couldn't look at the screen, because my instincts were telling me that there was no way to get out of many of the situations he found himself in (or rather, put himself in). Perhaps most impressive of all, he looked just as calm, cool, and collected in the loud nightclub as he did in the movie. He is truly a professional.

    Overall, Steve put on a very impressive performance. We had a huge crowd, and everyone seemed to have fun. If Steve would have beaten the record, we would have filmed the removal of the PCB and shipped it back to Jeff Kulczycki for re-validation (according to the rules). As it turned out, however, we didn't have to do that. As an additional "thanks" to Steve for participating in our event, we gave the second validated Donkey Kong PCB to him for his own use.

    I've published some photos from the party. Some were taken by our MIX08 event photographer, some were taken by Robert Hess, a 20+ year Microsoft employee, and the third set was taken by Andrew Laidlaw who was gracious enough to let me host his images. There's also a video of the Q&A session that followed the movie screening and a short video interview with Steve and Walter.

    There are three other questions that I've heard, and I'll respond to them here for completeness:

    1. Why are you playing a Nintendo game at a Microsoft event? Honestly, this thought never crossed my mind until someone asked it at MIX08. It's simple, really. We grew up on classic arcade games too, and we figured that our attendees would love it.
    2. What about Billy Mitchell's hot sauce? Yes, it's true that Billy Mitchell sent a case of his hot sauce to the event (you can see the bottles in some of the photos). The bottles have a limited edition label titled "Steve Wiebe Attempts Donkey Kong World Record March 5, 2008" along with various Billy quotes. Depending on who you talk to, this is either 1) a way to honor Steve's attempt, or 2) the "long arm" that is talked about in the movie. Regardless, even Billy would agree that this was Steve's event, so we didn't make mention of the sauce that evening.
    3. What affect will the new rules have on the Donkey Kong world record? Well, I can tell you that it took more effort to pull this off than I had originally anticipated. If it takes this level of effort each time someone thinks they may break the current Donkey Kong world record, I can tell you that the opportunities for this to happen will be greatly diminished.

    In closing, I'd like to thank Steve and Nicole Wiebe (and their two kids), Ed Cunningham, Walter Day, Jeff Kulczycki, and New Line Cinema for helping to make this event a success.

  • Mike Swanson's Blog

    MIX08 Show Off Winners


    It's hard to believe that MIX08 is over. I was involved in so many aspects of the event that it seems like I attended in some parallel universe! At least I got to see many of you there.

    Thanks to everyone who submitted an entry for Show Off. Thomas and I weeded out the less inspiring entries and ended up with the 16 videos we showed on Thursday night. The room wasn't completely packed, but we had strong attendance, and our audience was pumped-up and supportive. It was great to hear applause after each video.

    We tallied up the results, and here are the top five submissions (as voted by the audience):

    1. Crayon Physics Deluxe - like many of the comments on the voting forms, I want this game now!
    2. Real Time Physics in Silverlight - a very cool open source physics library for Silverlight hosted on CodePlex
    3. Wii Data Visualization and Multipoint Nonsense - using the Wii for some Minority Report fun
    4. 40 - My Life in Silverlight 2 - probably the only computer application that's ever caused me to have this kind of emotional reaction
    5. Social Retailing - how we'll shop for clothes in the future

    The top three will each receive a $500 gift card to spend on whatever they'd like. Congratulations to all three of them!

    If you missed Show Off at MIX08, don't worry. We're planning another Show Off event at PDC08 this October. There's plenty of time to think about what you might submit.

Page 9 of 74 (369 items) «7891011»