Categories
Uncategorized

Yes, There WILL be an “Ignite Your Coding” RSS Feed

ignite your coding rss

For those of you who’ve been wondering if we’ll be setting up an RSS feed for recordings of Ignite Your Coding, the answer is “yes”.

Here’s how Ignite Your Coding works:

  • On the actual day of the Ignite Your Coding live event, we do the interview live, as implied by the phrase “live event”. From 2:00 p.m. to 3:00 p.m. (Eastern) on that day, we chat with our guest and you can listen to it as it happens if you’ve got a Windows machine running the Live Meeting client (available for free from the Live Meeting download page). The Live Meeting client also lets you see what visuals we’re putting up – mostly just information about our guest – and you can also use it to type in questions for us to ask our guest.
  • After the live Ignite Your Coding event, we take the recording of the event, do a tiny bit of post-production (adding an intro and outro, checking sound levels and so on) and post the interview in MP3 form, with a link to the recording in an RSS feed so that your favourite podcatching application or system can grab them.

I’ve got my plate full with more than the usual amount of tech evangelism activities, so there’s a team doing all this stuff. Once they tell me where they’re putting the recording and RSS feed, I’ll tell you. I’m told it’ll be soon.

Want to know about the upcoming guests on Ignite Your Coding? Check out the Ignite Your Coding site!

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Cloud Cover, Episode 3: Worker Role Endpoints

Get Microsoft Silverlight
Don’t have Silverlight? Get it here or download the video in
MP4, WMA, WMV, WMV (High) or Zune format.

Here’s the episode 3 of Cloud Cover, the Channel 9 show where hosts Ryan Dunn and Steve Marx show you what’s in the Windows Azure cloud computing platform and how to get the most out of it.

In this episode:

  • How to host other web servers in Worker Roles
  • New tools for working with SQL Azure
  • Find out how to calculate the size of your database and objects in SQL Azure

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Counting Down to Seven: Exploring XNA

exploring xna largeCounting Down to Seven (Mar 15th at MIX 10): A series about ideas for mobile apps

Welcome to another article in the Counting Down to Seven series and the first article in the Exploring XNA series — it’s like the chocolate and peanut butter of mobile development!

If you haven’t read Windows Phone team member Charlie Kindel’s latest blog entry yet, do so now. In explaining what’s different in Windows Phone 7, he also lists some technologies that form it basis:

  • .NET
  • Silverlight
  • XNA
  • Web 2.0 standards
  • Microsoft’s developer tools

That’s right: along with Silverlight, one of the core elements of Windows Phone 7 is XNA, the toolset that makes it quite easy to build games for the PC, Xbox 360 and Zune. Kudos to those of you who ratiocinated that Silverlight and XNA would figure into Windows Phone: both are proven user interface technologies that have also shown that they’re capable of living on different platforms.

I’ll cover each of the core elements of Windows Phone 7 in the fullness of time, but for now, why don’t we start with what I consider to be the really fun one – XNA?

(It’s not only fun – it’s the gateway to customers: according to eMarketer, the number of people who play games on their phone has more than doubled in the past couple of years, from 155 million in 2007 to a predicted 340 million by the end of 2010.)

XNA: A Quick Overview

In the venerable geek tradition of using recursive acronyms to name things, XNA is short for “XNA’s Not Acronymed”. In the Microsoft-y tradition of using one name to represent a smorgasbord of things, XNA is a framework, toolset and runtime that makes it easier to build and deploy games.

XNA provides a great skeleton for building 2-D and 3-D games with a set of game-centric class libraries and a straightforward programming model. Its design frees you from a lot of the “yak shaving” and related drudgery involved in game development, letting you spend more time on programming the gameplay instead. Its “simple but not stupid” quality recently allowed me to walk a workshop of Humber College students from an initial “let’s draw a static sprite on the screen” project to a pretty decent “run around the game field, dodging the flying spinning blades” game, complete with animated sprites, sound effects and soundtrack and scoring, all in about three hours. Better still, we had fun doing it.

Required and Optional Tools for XNA Development

Here’s what you need (and some nice-to-haves) to get started with XNA development:

Required

  • Windows 7, Vista or XP, with the latest service packs installed.
  • Visual Studio 2008, which costs money, or Visual C# 2008 Express Edition, which is free-as-in-beer. Don’t let its being free throw you off; it’s a complete IDE and more than enough for developing games. As of this writing, the 2010 editions of Visual Studio, which have not yet hit the “Release to Manufacturing” stage, don’t support XNA game development yet.
  • XNA Game Studio 3.1. This is a set of Visual Studio add-ons and tools for developing games for Windows, Xbox 360 and Zune using XNA. This is also free-as-in-beer.

Optional

Platformer: XNA’s “Right Out of the Box” Game

If you’re the sort who wants to play a game before doing some game development, you’re in luck. XNA provides Platformer, a fully-functional “platform jumper” game as one of its project templates. You can simply treat is as a game, but that would be a waste – its true value is that in its source code are a lot of lessons in building 2-D games with XNA. I’m going to show you how to build a Platformer project.

(In the screenshots below, I opted to use free Visual C# 2008 Express. If you have one of the full version of Visual Studio, the experience will be similar.)

Start up Visual C# 2008 Express or Visual Studio. From the File menu, select New Project… You should see a dialog box like the one shown below appear.

image

In the Project types: list on the left-hand side of the dialog box, select Visual C# and the select XNA Game Studio 3.1 from its sub-menu. In the Templates list on the right-hand side of the dialog box, you should see a number of game application templates. Select Platformer Starter Kit. Fell free to the edit the contents of the Name: textbox if you want to give your project a different from the default and click the OK button.

Visual Studio will generate a new project. You’ll know because the Solution Explorer pane will be filled with projects and their files:

image

Press F5 to run the game. In moments, you’ll be greeted by the screen below:

image

Platformer looks like an homage to both platform games as well as Raiders of the Lost Ark. You’re represented by an Indiana Jones-esque sprite and must reach the “Exit” sign before time runs out. You have the option of collecting gems to increase your score.

You move to the next level if your reach the exit sign before time runs out:

image

Here’s level two, which features more platforms, more gems and a shambling mummy who can kill you with a touch:

image

Here’s level three, which is filled with platforms that you can jump through:

image

Make sure you check out the code for Platformer. Reading it is a great way to learn XNA game development techniques and tricks.

Hello, XNA!

Once you’re done playing Platformer, you might want to try your hand at XNA development. I’m not going to show you how to write anything resembling a game in this article (I’ll do that over the next few articles in this series), but I thought I’d quickly show you how to get the world’s simplest XNA application – in the best “Hello, World!” tradition – up and running.

Just as you did with Platformer, click on the File menu, select New Project… This time, when the New Project dialog box appears, select Windows Game (3.1), give the project a name in the Name text box (I chose HelloXNA) and click OK:

image

Visual Studio (or Visual C# Express) will then generate your game project.

A newly-created XNA game project has all its code living in a single class, which is given the name Game1, which in turn is stored in the file Game1.cs. I want to rename that class to HelloXNA. That’s easily done by moving the cursor over Game1 at the start of the class declaration, right-clicking on it, selecting Refactor from the menu that appears, and then Rename… from the submenu:

image

I could use good ol’ search-and-replace, but it blindly taking the search term and changing it into the replacement term, no matter where it is. Refactor –> Rename… is smarter; it does a true renaming of the identifier without mangling other identifiers that happen to contain the search term. It also allows you to specify whether you want to do the renaming in comments and string literals, which old-school search-and-replace doesn’t do.

When the Rename dialog box appears, enter the new name for the Game1 class, HelloXNA, into the New name: text box. Make sure that the Preview reference changes checkbox is checked before clicking OK:

image

If you checked the Preview reference changes checkbox in the previous dialog box, you’ll see a preview of the changes that will result if you apply Refactor –> Rename…. Click Apply to finalize the renaming:

image

You’ll see that the Game1 class and any references to it in the code have been changed to HelloXNA. For consistency’s sake, we’ll rename the Game1.cs file in which the class formerly known as Game1 to HelloXNA.cs in the Solution Explorer:

image

By default, a brand-new XNA game project without any code added to it does a very simple thing: it draws a blank screen with a cornflower blue background. If you hit F5 to run the application right now, you’ll see this:

image

Now “all you have to do” is write some game code! I’ll walk you through that process over the next few articles in this series.

Next Steps

Cover of O'Reilly's book "Learning XNA 3.0"

You could wait for the next article in this series, but if you’re rarin’ to learn how to develop games with XNA, let me recommend Learning XNA 3.0, written by Aaron Reed and published by O’Reilly. It has a 4.5-star rating at Amazon.com, which it’s earned – it’s a great introduction to XNA development. The first half of the book is devoted to 2-D game development, starting with drawing a sprite on the screen and finishing with a pretty complete game. The second half of the book adds the third dimension and works towards building a 3-D game.

image

You should also get a look at XNA Creators Club, the online community for XNA developers. It features:

  • Links to all the downloads you need to get started developing games with XNA
  • Starter kinds for various game genres – you get Platformer with XNA; you can download starter kits for other game genres, including:
    • Marblets: a marble colour-matching puzzle game.
    • Spacewar: the classic “spaceship vs. spaceship” game that comes in two flavours – retro and evolved.
    • Role-Playing Game: A tile-based RPG engine with support for character classes, multiple party members, items and quests.
    • Racing Game: A 3-D auto racing game featuring advanced graphics, audio and input processing, where you race against the ghost car for the best time.
    • Ship Game: 3-D spaceship combat in a tunnel system with advanced lighting and textures, a full GPU particle system and an advanced physics engine.
    • Net Rumble: A 2-D shooter showcasing XNA’s new multiplayer features in an arena with asteroids, power-ups and up to 16 players.
  • Forums to discuss ideas and ask questions with your fellow XNA game developers
  • A catalog of games created by members of the XNA game developer community. You can try out their games, submit games and vote for games to be included in the Xbox Indie Games catalog, whose games can be purchased through Xbox Live.

If you want to be a rock star on Windows Phone 7, you’re going to want to sharpen your XNA chops. Get a head start and take it out for a spin!

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Ignite Your Coding Begins Today – 2 p.m. Eastern with Andy “Pragmatic Thinking and Learning” Hunt!

igniteGratuitious flaming wok shot courtesy of Ricardo Liberato. Yay Creative Commons!
Click the photo to see the original.

Ignite Your CodingToday’s the big day! John Bristowe and I kick off the live Ignite Your Coding webcast this afternoon at 2:00 p.m. Eastern/11:00 a.m. Pacific with an interview with Andy Hunt, co-founder of the Pragmatic Bookshelf, co-author of The Pragmatic Programmer and many other books, and author of Pragmatic Thinking and Learning, which I dubbed my favourite geek book of 2008.

If You Want to Catch the Live Webcast and/or Ask Andy Questions…

You’ll need:

If You Want to Listen to a Recording of the Webcast Later…

We’ll make it available in MP3 format soon. Watch this site for details!

What’s Ignite Your Coding All About, Anyway?

It’s all about helping you, the software developer, find ways to stay on top of the technological, economic and social changes that affect you and your work every day. We got our hands on some of the biggest thinkers and doers in our field and asked them if they’d like to chat about the industry, how they got started, where they see the opportunities are, how they deal with change and how to be generally awesome. We got some big names from the Microsoft/.NET world, but we also went farther afield and got some people from beyond that world as well, because a different perspective is often helpful.

Who Else is Going to Appear on Ignite Your Coding?

These distinguished individuals:

For a full description of our upcoming shows, take a look at the Ignite Your Coding site.

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Counting Down to Seven: The Most Active Mobile Social Networkers Are…

Welcome to another installment of Counting Down to Seven, a series of articles about mobile app development that I’m writing as we count down the days to MIX10, when we reveal more about the up-and-coming Windows Phone 7 Series.

"Counting Down to Seven" badgeA report from Nielsen – as in the ratings company that got their start with television – says that women use mobile devices for social networking more than men do and that the lion’s share of mobile social networking isn’t done by Millennials (see the previous article in this series).

First, the women: 55% of the people in their study who said that they use social networking software and sites on their mobile phone were women, while the remaining 45% were men:

men-women-mobile-social

Second, age: according to Nielsen’s study, the age group who used their mobile devices to social network the most were between the ages of 35 and 54, closely followed by the 25 – 34 group.

social-mobile-by-age

More stuff to consider as you think of applications to build for Windows Phone 7: what are you writing for women between the ages of 25 to 54?

This article appears in Canadian Developer Connection.

Categories
Uncategorized

Ignite Your Coding: This Thursday at 2pm Eastern!

Catch the Interview with Andy Hunt This Thursday!

Ignite Your CodingThe Ignite Your Coding live webcast series starts this Thursday, March 4th at 2:00 p.m. Eastern (11:00 a.m. Pacific) with me and John Bristowe interviewing Andy “Pragmatic Programmer” Hunt! Join us as we talk with Andy about how he got into software development, how he became a writer and publisher, his book Pragmatic Thinking and Learning and much more. After we’re done asking our questions, we’ll turn over the interview to you, and you can ask Andy your questions!

If you’d like to catch the live webcast, you’ll need Live Meeting, which you can download here. We’ll also record the webcast and make it available in MP3 form.

Who Else Will Appear on Ignite Your Coding?

Here’s a complete schedule of the Ignite Your Coding webcasts we’ve set up so far. You can find full descriptions of each of the upcoming shows at the Ignite Your Coding site.

Andy Hunt
Pragmatic Programming, Thinking and Learning

Thursday, March 4, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

Glenn Block
Composable Applications FTW

Thursday, March 11, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

Jeremy Miller
Essence versus Ceremony

Thursday, March 18, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

David Laribee
Agile Techniques for Paying Back Technical Debt

Thursday, March 25, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

Richard Campbell
Scalability and Performance

Thursday, April 8, 2:00 p.m. – 3:00 p.m. EST, (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

Scott Hanselman
State of the .NET Developer Nation

Thursday, April 15, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

Jeff Atwood
Horrors, Overflows and Fake Plastic Rock

Thursday, April 22, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

Robert C. Martin
A Chat with “Uncle Bob”

Thursday, April 29, 2:00 p.m. – 3:00 p.m. EST (11:00 a.m. – 12:00 a.m. PST)
Register for this webcast (it’s free!)

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Counting Down to Seven: Millennials and Mobile

Welcome to another installment of Counting Down to Seven, a series of articles about mobile app development that I’m writing as we count down the days to MIX10, when we reveal more about the up-and-coming Windows Phone 7 Series.

"Counting Down to Seven" badge

Who are the Millennials?

In Andy Hunt’s book, Pragmatic Thinking and Learning (which we’re covering in Ignite Your Coding in a couple of days!), there’s a chapter devoted to recognizing and compensating for your cognitive biases. In that chapter, there’s a section titled Recognize Your Generational Affinity, and it begins with this quote from Douglas Adams:

Anything that is in the world when you’re born is normal and ordinary and just a natural part of the way the world works.

Anything that is invented between when you’re fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it.

Anything invented after you’re thirty-five is against the natural order of things.

It’s an interesting quote to keep in mind when discussing that demographic known as “Millennials” or “Generation Y”. While there aren’t any hard and fast rules for defining the boundaries of a generation, it’s generally accepted that when we’re talking about Millennials, we’re referring to a group of people born after 1982.

Here’s a quick video introduction to the Millennial Generation from Futurist.com [length 8:04]:

By Douglas Adams’ maxim above, even the oldest members of this generation, who were 15 in 1997, would consider the web and mobile phones that actually fit in your pocket as normal and ordinary and just a natural part of the way the world works. Members of this generation who are in university or just about to enter the job market probably can’t even remember a world where the internet and mobile phones weren’t household items.

How Millennial are You?

I followed a tweet from my friend, co-worker and fellow Generation Xer David Crow which lead me to the Pew Research Center’s How Millennial Are You? Quiz. David scored 51/100, which suggests that his tendencies fall somewhere between Generation X and Millennial. Here are my results:

Results from "How Millennial Are You" quiz: 77/100
I don’t know how I should feel about that score (I was born in 1967). Millennial tendencies or not, I don’t think you’re going to hear me blasting any Justin Bieber tunes out of my car anytime soon.

(Go ahead, take the quiz. If you feel like sharing, tell me your score in the comments!)

Millennials: Under the Microscope and With Mobile Phones

The quiz led me to the Pew Research Center’s study titled Millennials: A Portrait of Generation Next [1.25 MB PDF]. It’s subtitled with “Confident. Connected. Open to Change.”, and it’s a pretty interesting read if you’re the sort of person who likes to know what makes people tick (and if you know me, I’m just that sort of person). It’s also worth reading – at least parts of it are – if you’re planning to get into developing for Windows Phone 7 (and yes, any other vendor’s smartphone platform, but those don’t pay my bills).

Millennials grew up in the networked world and spent at least part of their adolescent years in the era of what Microsoft Research’s danah boyd calls “networked publics”. They’re the first “always connected” generation, having grown up with broadband, wifi and mobile devices. They’re more technophilic than previous generations, as the chart below shows:

image

(Note the use of the phrase “cell phone” – clearly an Xer or Boomer wrote the study.)

The stats about mobile phones are worth repeating:

  • 88% of Millennials use their mobile phone to send text messages
  • 80% have texted in the past 24 hours
  • 64% have texted while driving (how you do this, I don’t even know)
  • Of those who’ve texted in the past 24 hours, the median number of texts they have sent and received is 20.

Here’s another observation: 83% of Millennials sleep with their mobile phones nearby, according to the chart below:

Most Millennials have a mobile phone, and many of them have the mobile as their only phone (as opposed to having a land line at home):

image

Millennials are also big on wireless ‘net access:

image

In the past 24 hours, Millennials are more likely to have watched an online video, posted a message to an online profile and played a video game than the other generations. Here’s a chart showing “Past 24 Hours” activities for various generations:

image

Motorola on Millennials

Given the Millennials’ technophilic tendencies, it’s not surprising that a number of high-tech companies have researched this generation. Here are a couple of videos posted by Motorola Media Center:

Microsoft on Millennials and Money

The Empire has also done some studies on Millennials. One of the most recent was on the difference between the way Boomers and Millennials deal with banks:

  • Millennials are much more likely than Boomers to use web banking (49% versus 35%)
  • See online service capabilities as important when researching a bank (54% versus 42%)
  • Care less about doing transactions in person at a bank branch (32% versus 44%)

Summary

Keep the Millennials in mind when you’re thinking about apps to write for Windows Phone 7. Think of the sorts of application that would appeal to people who:

  • Don’t think of mobile phones as just phones that fit in your pocket, but as remote controls for the world.
  • Send a lot of text messages, sometimes at inadvisable times.
  • Always have their phones close by, even when they’re asleep.
  • Are bigger videogame players than any previous generation.
  • Are more likely to have their mobile phone as their primary and sole phone.

What needs would they have? What goals would arise from those needs? What user contexts would they have, and how would you use them to filter what your apps would present to them?

This article also appears in Canadian Developer Connection.