Why He Became Darth Vader

Photo courtesy of Matt Gunn.


All Sorts of Goings-On This Week

This article originally appeared in Canadian Developer Connection.


EnergizeIT: Anything is PossibleOur cross-Canada tour where we showcase some up-and-coming-really-soon stuff like Windows 7 and Windows Server 2008 R2 starts today in Montreal! The events for the next couple of days are…

For more about EnergizeIT, see this earlier post or visit the EnergizeIT site.

Ignite Your Career

Ignite Your Career webcast series -- In partnership with CIPS Today at noon (Eastern), we’ll be presenting the third webcast in the Ignite Your Career series, titled How to Establish and Maintain a Healthy Work/Life Balance. You can find out more about this particular episode here, and you can sign up here – remember, it’s free! – with your Windows Live ID.

The two previous webcasts have been posted online for you to listen to anytime, and we’ve got three more webcasts as well. For more details, check out the Ignite Your Career site.

Coffee and Code

We had Coffee and Code sessions in Calgary and Toronto on Friday, one in Montreal yesterday, and more are on the way! As we evangelists go across the country for the EnergizeIT tours, we’ll also be holding Coffee and Code events in those cities. Keep an eye on this blog or the Coffee and Code blog for a Coffee and Code near you!

Remember, Coffee and Code is one way we’re making ourselves more accessible to you. If you’ve got a question or comment about Microsoft, our tools and tech, programming, systems administration, the tech industry or anything else, please drop by to chat face-to-face and join us for a cup of your favourite hot beverage!

And yes, there’s a Coffee and Code this Friday in Toronto, with a location to be announced. Stay tuned!

Mix 09

Mix 09: The Next Web Now -- March 18 - 20, The Venetian Las Vegas Keep an eye out for announcements from the Mix 09 conference taking place in Las Vegas from Wednesday to Friday. It’s devoted to the intersection of technology, design and the web, and it’s likely that you might hear some interesting bits of news coming from there…

Mesh and MeshU

Mesh, Canada’s “Web 2.0 and Social Media/Marketing” conference and MeshU, the workshop day associated with the Mesh conference, posted their schedules yesterday. If you want to go to a conference feeaturing a Canadian perspective on the web and its business and tech opportunities, Mesh is the conference to catch.

You can find out more at the Mesh and MeshU sites or read my posting on Mesh and MeshU on my tech blog, Global Nerdy.

…and One More Thing…

Happy St. Patrick’s Day! I’d tell you to drink responsibly, but you already do that, right? Uh, right?


Mesh Conference (April 7 – 8) and MeshU (April 6)


The schedule for the 2009 Mesh Conference, “the little Canadian web conference that could”, has been posted. Mesh takes place on April 7th and 8th at the MaRS Collaboration Centre in downtown Toronto and is preceded by MeshU workshop event on April 6th.

Friends of mine who’ll be presenting at MeshU include:

There are a number of presentations by other folks at MeshU – go look at the schedule to see which ones appeal to you.

As for Mesh itself, there will be keynotes over its two days by the following people:

A few people I know will be doing presentations at Mesh:

For more details, see the Mesh schedule.

Registration for Mesh costs CAD$492.50; registration for MeshU costs CAD$289.00.


Named Parameters in Method Calls: Python Si, Ruby No

"Hello My Name Is" sticker In an earlier article, Default and Named Parameters in C# 4.0 / Sith Lord in Training, I wrote about how C# 4.0 – that’s the version coming out with the next release of Visual Studio, known as Visual Studio 2010 – is going to provide support for named parameters.

In that article, I also incorrectly stated that Ruby supported named parameters. Luckily, Jörg W Mittag spotted my mistake an corrected me in a comment. I’ve since corrected the article and thought I’d show you how I got it wrong in the first place.

Ruby and My Named Parameter Goof

I had a vague recollection of Ruby accepting named parameters. I figured I’d be empirical and fired up irb – the Ruby REPL shell – and put together a quick little method to see if the recollection was correct:

# Ruby 1.8.6
def test_named_params(first, second)
    puts "#{first}\n#{second}"

Once put together, I made some test calls to the method:

# irb session (Ruby 1.8.6) irb(main):> test_named_params("alpha", "beta") alpha beta

=> nil irb(main):> test_named_params(first = "alpha", second = "beta") alpha beta

=> nil

Seeing that the interpreter didn’t choke on that named parameter call, I thought to myself “Vague recollection confirmed, Ruby supports named parameters!” and wrote the blog article.

Had my brain actually been firing on all cylinders, I would’ve given the method a proper test by providing the named parameters out of the order in which they appear in the method signature. Here’s what I would’ve seen:

# irb session (Ruby 1.8.6)
irb(main):> test_named_params(second = "alpha", first = "beta")

=> nil

Uh-oh. If named parameters worked, the first output line would be “beta” and the second would be “alpha”. Clearly something’s wrong with my recollection.

Let’s try some non-existent named parameters – say, ones involving current entertainemtn news headlines — just to see what happens:

# irb session (Ruby 1.8.6)
irb(main):> test_named_params(lindsay_lohan_dui = "alpha",
jim_cramer_smackdown = "beta")



=> nil

Even with nonsensical named parameters, the method is still accepting the values in order. Why is that?

Just about everything in Ruby has a return value (which can be anything, including nil). You can see for yourself in irb – here’s a quick do-nothing method definition:

irb(main)> def doNothing
irb(main)> end
=> nil

As you can see. defining a method returns a value of nil.

As Jorg pointed out, Ruby assignment statements return a value: the value used in the assigment. Once again, for proof, I’ll use an example from an irb session. In the example below, assigning the string "alpha" to the variable first also returns the string "alpha":

# irb session (Ruby 1.8.6)
irb(main):> first = "alpha"
=> "alpha"

In the call to test_named_params, the Ruby interpreter was interpreting my “named parameters” as assignment statements. first = "alpha" evaluates to plain old "alpha", but so does second = "alpha" (and for that matter, so does lindsay_lohan_dui = "alpha"). Each assignment statement in my parameter list was evaluated, and then those values were passed to method in positional order.

Python Supports Named Parameters

After getting the comment from Jorg and correcting my article, I wondered why I thought Ruby supported named parameters. Then it hit me – it’s Python.

So I fired up the Python REPL and put together this quick little method:

# Python 3.0
def test_named_params(first, second):
    print("%s\n%s" % (first, second))

And this time, I decided to be a little more thorough in my testing:

# Python 3.0 REPL
>>> test_named_params("alpha", "beta")

>>> test_named_params(first = "alpha", second = "beta")

>>> test_named_params(second = "alpha", first = "beta")

And some additional searching on the web confirmed that yes, Python method calling does in fact support named parameters.

So in conclusion, when it comes to named parameters, it’s Python si, Ruby no…and C# pronto.


Ignite Your Career #3: “How to Establish and Maintain a Healthy Work/Life Balance”

This article originally appeared in Canadian Developer Connection.

A balancing rock in the desert

This Week’s Topic

This week’s topic for Ignite Your Career – our webcast series featuring experts from the Canadian tech industry and aimed at supporting your career development – is one that’s on a lot of people’s minds: How to Establish and Maintain a Healthy Work/Life Balance. Here’s the abstract:

With mobile technologies and our always-on culture, it’s imperative to establish and maintain a balance between work and life. If your only time to manage change in your environment is after hours, how can you maintain a healthy balance without burning out? How do you manage change so that you can develop your career and spend time with loved ones? This panel discussion will connect you to individuals who strive to establish and maintain this balance.

This webcast’s panelists are:

Mack Male

Mack Male
Mack is a software developer, entrepreneur, and social media guy. During the day he works for Questionmark Computing. Most of the rest of the time, he’s keeping up-to-date on the latest trends and technologies, and loves sharing what he learns with others. Mack is particularly passionate about his hometown, Edmonton, and does his best to expose everything it has to offer.

Cameron McKay

Cameron McKay
Cameron works for McKesson Canada, one of the largest Healthcare companies in the world as the Team Leader of the Infrastructure and Support Services Group in Toronto. An expert in Virtualization and Green IT, Cameron enjoys sharing his knowledge with the IT community through speaking engagements, blogs, and webcasts.

Paul Gossen

Paul Gossen
After 30 years as a successful serial entrepreneur and business leadership innovator Paul Gossen is well known for his credibility and high impact results in corporate coaching, team productivity and organizational transformation


Mark Blevis

Mark Blevis
Mark Blevis is an energetic public speaker, social media strategist, community leader, independent media producer and self-proclaimed Content Paleontologist. He is considered a thought-leader on social media and its potential and is regularly interviewed on radio and television.

Catching This Webcast

This webcast will first be broadcast this Tuesday, March 17th at 12:00 p.m. Eastern time (9:00 a.m. Pacific) and will be an hour long. It costs nothing to catch an Ignite Your Career webcast – all you have to do is register online with your Windows Live ID (which is also free).

Ignite Your Career is about maximizing your potential at work and helping you come up with a career plan in these difficult economic times. It’s not tied to any technology or vendor, so no matter what platform or tools you work with, we’re sure that you’ll find this webcast series informative and helpful.

Previous Ignite Your Career Webcasts

In case your missed the other two webcasts in this series, worry not – we’ve got them archived! Once again, they’re free to listen to – all you have to do is register online with your Windows Live ID.

The webcasts we’ve had so far in this series are:

  • Industry Insights and Trends
    The nature of technology is one of continual change; a fact of life for professionals in the ICT industry. As a result, you need to be on top of what is happening in the industry in order to position yourself and your organization to benefit from these trends. This panel discussion will arm you with the information you need from experts in the ICT industry in order to stay on top of your game.
    Speakers: Joel Semeniuk, Jeff Kempiners, Jay Payette and Paul Swinwood.
  • Discovering Your Trusted Resources
    Building a set of information sources and connecting with the community at-large are critical to your success in the ICT industry. This session brings successful community, technology, and information leaders together to share their experiences in discovering these resources. Our experts will help you learn how to identify credible sources and find the right tools, links and techniques to keep you up to date in a world of constant change.
    Speakers: Michael J. Sikorsky, Richard Campbell, and John Bristowe.

[Creative Commons photo by "Cpt. Spock".]


Montreal Coffee and Code: Monday March 16th at Cafe Depot

This article originally appeared in the Coffee and Code blog.

Montreal skyline


Montreal is the home to some amazing cafe culture, so it’s only fitting that we hold a Coffee and Code there. As part of Microsoft’s cross-Canada EnergizeIT tour,  we’ll be holding the first Montreal Coffee and Code at the Cafe Depot at 550 Sherbrooke on Monday, March 16th from 1 p.m. to 4 p.m..

Christian and Pierre

This is your chance to meet up with the guys I like to call “les bons gars”: Microsoft Developer Advisor Christian Beauclair and IT Pro Advisor Pierre Roman in a relaxed setting where you can talk to them about Microsoft, EnergizeIT, Windows 7, the tech industry in general or anything else (be sure to ask Christian about the new DLC for Grand Theft Auto IV, The Lost and Damned).

They’re a friendly bunch, speak both official languages – English/French and C#/VB –  and they’ll even offer to buy you some coffee!


Coffee and Code Today in Calgary and Toronto

This article originally appeared in the Coffee and Code blog.

We’re Not Slackers, We’re Coffee Achievers

In response to John Bristowe’s announcement of the first Calgary Coffee and Code, we got this comment from a reader named Cameron:

How do all of you people have the day off. 9am to 4pm on a weekday? Gen-Y is in full effect.

Gen Y? Technically, we’re Gen Xers, since we were both born between 1960 and  1980. If I’m not mistaken, John is a “Nintendo Wave” Xer, since he was born in the 70s and I’m an “Atari Wave” Xer, having been born in 1967.

In response to Cameron’s comment, I couldn’t resist doctoring a graphic from the website for the animated series Slacker Cats:

Slacker Cats, starring John Bristowe and Joey deVilla

(Come to think of, they sort of look like us. The hair colour’s the same.)

But seriously: John and I (as well as a number of other people in Microsoft Canada’s Developer & Platform Evangelism team) are officially classified by Microsoft as mobile workers. All the computers assigned to us are laptops, our internet and mobile phones are subsidized and our workplaces are wherever we happen to be working at the time: our home offices, Microsoft or on the road. It’s not for everyone, but if you have the discipline to handle the freedom, it can be a pretty nice way to work.

Coffee and Code was created to make us more accessible and give Microsoft a more human “face” by taking advantage of our flexible working arrangements. By working out of places like cafes, we’re making it quite easy for you to find us and join us in a conversation about whatever interests you, whether it’s Microsoft tools and technologies, the state of the industry or any other topic. It also makes for the perfect setting for us to help build local tech communities by gathering developers, IT pros, architects and other techies together. And finally, we’re patronizing “third place” businesses – those essential social places that are neither home nor the office – that are vital to the general community.

If a Coffee and Code attracts a large enough crowd, I find that I don’t get much programming, writing or administrative work done. That’s okay, because I’m getting another kind of work done: talking with local software developers, answering their questions, making note of their needs and suggestions and exchanging ideas. In short, I’m making connections with them, and that’s a major pillar of the Developer Evangelist position. If I’m not doing that, I’m not doing my job.

Where We’ll Be

If you’re in Calgary, you’ll want to head to Kawa Espresso Bar, where John Bristowe will be hosting the event from 9 a.m. to 4 p.m.. You’ll find more details about his Coffee and Code event in this entry.

If you’re in Toronto, your Coffee and Code event will be hosted by Yours Truly at the spacious upstairs “Red Velvet Lounge” of the Starbucks at Yonge and Davisville from 11 a.m. to 6 p.m.. You’ll find more details about it in this entry.

Since both events overlap perfectly, both locations are wifi equipped and both John and I have laptops with integrated cameras, I’m going to try videoconferencing with him, making this another Coffee and Code first. If you’re in eithe rof our neighbourhoods, please drop by!