Categories
Uncategorized

The Battlestar Galactica “Frakmap”

One of the best sci-fi series on television, the reimagined Battlestar Galactica, comes to an end this Friday night at 9 p.m. on Space here in Canada and the Sci-Fi channel in the States. With only one episode left, it would seem an appropriate time to point you to the Battlestar Galactica Frakmap, a little chart that tells you which characters have been intimate with each other and quick summary of their story.

The screenshot below shows only a part of the Frakmap, but it’s the part with the most promiscuous of the bunch: Kara “Starbuck” Thrace and Gaius “Horndog” Baltar. Click on the image to see the whole Frakmap:

Portion of the Battlestar Galactica "Frakmap"

Categories
Uncategorized

Silverlight 3 and Expression Blend 3 Betas Now Available!

This article originally appeared in Canadian Developer Connection.

Microsoft Silverlight logo

Silverlight 3 Beta

Today at the MIX ‘09 conference, we rolled out the beta for Silverlight 3, the next iteration of our rich internet application platform. Version 3 adds a lot of new features including:

  • Out of Browser Capabilities. Silverlight 3 applications aren’t just confined to the browser. Users can install and run them from their desktops – either Windows or Mac OS – and without having to download any additional runtimes or plugins. Better still, these desktop Sliverlight apps can detect whether the machine is connected to the internet and can also auto-update.
  • Richer Graphics. There’s support for perspective 3-D graphics, pixel shader effects, a bitmap API, bitmap caching of vectors, text and controls, support for themed applications, new animation effects, enhanced control skinning and improved text rendering and font support.
  • HD Video and Audio. Support for H.264/AAC, 720p+ live and on-demand streaming, true HD playback in fullscreen mode and support for third-party codecs.
  • Better application features, including:
    • New GUI controls, including their source code
    • Support for “deep linking”: it’s now possible to bookmark a page contained within a Silverlight app
    • SEO tools: The content of your Silverlight apps can be mirrored into HTML so your app can be indexed by search engines
    • Enhanced data support
    • Improved performance

Expression Blend 3 Preview

Microsoft Expression Blend Also available is the preview version of Expression Blend 3, the “designer/developer workflow tool” for building interfaces for Silverlight and WPF projects. As with Silverlight 3, Expression Blend 3 adds a lot of new features including:

  • Sketchflow: a tool that lets you tool for quickly creating application prototypes, complete with interactivity.
  • Behaviors, which let you add interactivity to an application without having to write code
  • Photoshop and Illustrator file import
  • Improved design and development experience

An Important Note for People Currently Building Silverlight 2 Apps

Do not install Silverlight 3 development tools on a machine that you’re using to build Silverlight 2 apps! Visual Studio doesn’t support targeting multiple versions of Silverlight; if you install Silverlight 3 tools, you won’t be able to build Silverlight 2 apps anymore!

My recommendation is:

  • If you’re going to be working on Silverlight 2 projects, install Silverlight 3 tools on a machine that you’re not using for Silverlight 2 production.
  • If you’re like me and not doing any work on Silverlight apps at the moment and want to get started, go ahead and grab the beta.

Finding Out More About Silverlight 3 Beta and Expression Blend 3

You can find out more about both on the Silverlight 3 Beta page.

Getting Silverlight 3 Beta and Expression Blend 3 Preview

Both are available at the Silverlight 3 Beta download page. You can also follow the links below:

Categories
Uncategorized

Toronto Coffee and Code: Friday March 20th at Linuxcaffe

This article originally appeared in the Coffee and Code blog.

Tigh and Adam from "Battlestar Galactica" drinking a toast: "Here's to Another Frakkin' Coffee and Code!"

I hereby declare a Toronto Coffee and Code for this Friday, March 20th from 11:00 a.m. to 6 p.m. at LinuxCaffe (326 Harbord Street, at the corner of Harbord and Grace, near Bickford Park; nearest subway station is Christie).

Map picture

For those of you not familiar with LinuxCaffe, it’s an independently-owned cafe that also acts as a gathering place for Toronto’s Free Software/Open Source Software communities. It might not be a place you’d expect for an event hosted by a Microsoft Evangelist, which is one of the reasons I picked it. Another reason is that it’s a great cafe with good coffee and food, and I’m more than happy to support a local cafe with techie appeal.

LinuxCaffe deserves a longer post, which I’ll write later – I just want to get the word out about this week’s Coffee and Code. Hope to see you there!

Categories
Uncategorized

Why He Became Darth Vader

called_annie_until_he_snaps
Photo courtesy of Matt Gunn.

Categories
Uncategorized

All Sorts of Goings-On This Week

This article originally appeared in Canadian Developer Connection.

EnergizeIT

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?

Categories
Uncategorized

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

mesh-logo

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.

Categories
Uncategorized

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}"
end

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")
alpha
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")

alpha

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")
alpha
beta

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

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

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.