Got a project and can’t decide on a typeface? This chart is by no means complete, but it might help steer you in the right direction. Click it to see it at full size.
The 5th annual Toronto Code Camp takes place next Saturday, May 1st, in the SEQ building on Seneca College’s York Campus (Seneca@York). If you’re a developer who builds or is thinking of building on the .NET platform, you want to catch this free event!
Last year’s event had over 350 attendees who caught 25 sessions, including the infamous “Data Bondage with Silverlight”, which opened with the equally infamous “assless chaps and accordion performance”. I make no guarantees this year, other than that I’ll be there and that this year’s event will be the biggest and best one yet, with a whopping 40 sessions arranged into 8 tracks.
Code Camp happens because of Chris Dufour, .NET community guy extraordinare, who’s been making it happen for the past few years. It’s a free-as-in-beer event, a labour of love carried out by Chris and a team of dedicated volunteers and funded by generous sponsors including The Empire.
Here’s a run-down of Toronto Code Camp 2010’s agenda:
I’ll be present at the event, making myself useful as an official Microsoft representative and as a Windows Phone 7 Champ and Azure go-to guy.
Toronto Code Camp takes place in the SEQ building at Seneca’s campus at York University, which is at 70 The Pond Road. Click the map below to see a Bing map and get directions:
See you there!
Sometimes, you have to do more than just start from scratch. Sometimes, you have to burn the boats.
“Burning the boats” is an expression that comes from a story – some say legend — about Cortes, the Spanish Conquistador (and yes, the subject of Neil Young’s Cortez the Killer). Wishing to guarantee that his men would stay in Veracruz (which he’d just taken over from the Governor of Cuba) and only move forward into terra incognita without retreat, he ordered them to burn the ships that brought them to the New World. It was an extreme measure, but without the distraction of a way home, they committed themselves completely to business of exploring and conquering.
The Original Mac: No Arrow Keys
Bruce “Tog” Tognazzini, former user interface guy at Apple and the company formerly known as Sun, and now member of the Nielsen/Norman Group, wrote about how Apple burned the boats back when they released the original Macintosh in his 1992 book Tog on Interface and more recently in an article on his blog, AskTog.
In 1984, the Macintosh represented a break from the dominant paradigm at the time: the command-line interface. Back then, you’d issue commands to a program these ways:
- Typing them in
- Using control-key combinations
- Using function keys
- Using the arrow keys to navigate
Software developers at the time had little experience developing for GUIs, which meant that there would be great temptation for them to simply develop apps for the Mac the way they did for other platforms. The software they’d end up writing would be a command-line app that just happened to run on the Mac.
Steve Jobs and Apple’s Macintosh team, an unconventional bunch who were said to have nary a classical computer science degree among them, thought that existing software sucked. I was 16 at the time, and I’d have to agree. In order to prevent straight ports of existing software to the Mac, they decided to “burn the boats” and make it difficult for developers to “go home” and simply rely on the UI techniques from the Old World. The first Mac keyboards didn’t just omit the function keys, they also left out the arrow keys:
Tog writes:
That was a big deal. Almost every application then in existence depended on the arrow keys (then called cursor keys) for navigation. With that one stroke, Steve reduced the number of apps that could be easily ported to the Mac from tens of thousands to zero, ensuring that this new computer would have a long and painful childhood.
It’s counterintuitive to want to have your creation go through a long and painful childhood, but there was a method to their madness. In “burning the boats” by getting rid of the function and arrow keys on which developers relied and taking away their “way home”, they forced developers to redesign and rewrite their applications to fit a mouse-driven graphical interface rather than a keyboard-driven command-line interface.
They eventually brought back the arrow keys about a year and a half later. By that point, developers had grown used to developing GUI apps that took advantage of the UI controls and mouse that we’ve come to know and love. The return of the arrow keys at that point would now be a welcome addition and convenience, rather than a dangerous temptation to return to “the old ways”.
It was a bold move, but when you’re making radical changes to the way things are done, bold moves are often required.
Windows Phone 7: No Copy and Paste
There’s been some talk about Windows Phone 7’s lack of copy and paste. It’s similar to the hue and cry about the original iPhone’s lack of copy and paste, and having been reminded by Tog’s article about the design decisions made for the original Mac, I can see the method to Microsoft’s madness.
“Copy and paste already exists in Windows,” people have said, “why not Windows Phone 7?”
The answer is simple: because Windows Phone 7 apps aren’t supposed to be like Windows apps. For non-enterprise, non-industrial use, the “Windows, but scaled down” approach of previous versions of Windows for phones, which goes under the name Windows Mobile, didn’t catch on (Windows Mobile still rules the roost for compact devices used in enterprises and industries, and will be supported for years to come). Hence Albert Shum’s completely different-from-the-desktop, and even different-from-other-phones Windows Phone 7 interface, which went by the codename “Metro”.
The use of copy and paste implies a keyboard-centric user interface, which isn’t what Windows Phone 7 is about. People often use their smartphones one-handed, with only their thumb to access the touchscreen. Windows Phone 7’s interface takes this usage into account, which is why it’s sensor-centric, and applications, should get their information from touch, gestures, accelerometers, location and other sensors where possible. By not including copy and paste in the first release, the Windows Phone team is “burning the boats” and asking developers “How do you write apps so that they don’t need intricate more-suited-to-the-desktop operations like copy and paste?”
(And yes, copy and paste will eventually find its way into Windows Phone 7, just as the arrow keys, function keys and even right-clicking found their way into the Mac.)
The same could be said for many other things that were purposely excluded from Windows Phone 7, such as the compact edition of SQL Server that was part of Windows Mobile. If you think about it, this design decision forces you to build apps so they store and retrieve data from the network, which makes sense, since phones are devices that network with both cellular and wifi.
Windows Phone 7 represents a radical shift in the way Microsoft stuff works, from a very minimalistic look to its task-centric organization. In order to make sure that people built apps that fit it, the Windows Phone 7 team had to burn the boats. It’s a bold move, but it’s the right one.
When I was young, I used to cringe when adults made clumsy, if well-intentioned, attempts to speak in what they thought was “youthful slang” in order to make a connection with us.
Now that I’m one of those adults, I can’t tell for sure whether the message in this poster (which I saw in the Toronto subway yesterday) comes across to today’s net/text-speaking youth as clever or clumsy. I’m torn – should my reaction be LOL or WTF?
(And is it me, or does the expression on the guy’s face say BRB?)
This article also appears in The Adventures of Accordion Guy in the 21st Century.
Our guest on Ignite Your Coding this week, Jeff Atwood, has certainly made his mark in the programming world with the Coding Horror blog as well as his project with Joel Spolsky, the online developer forum Stack Overflow (which in turn gave rise to the Server Fault and SuperUser forums). Join me and John Bristowe this Thursday as we chat with Jeff about Coding Horror, Stack Overflow, software development, fake plastic rock, P=NP and whatever topics you, the listener, want covered.
We’ll be chatting with Jeff live this Thursday at 2:00 p.m. Eastern (11:00 a.m. Pacific) online.
What’s Ignite Your Coding About?
Ignite Your Coding is a webcast series all about helping you, the software developer. We want to help you find ways to stay on top of the technological, economic and social changes that affect you and your work every day. We contacted 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 hope it informs and inspires you!
How Do I Catch the Live Webcast?
You’ll need:
- A Windows machine
- Live Meeting (you can get a free version of Live Meeting here), which will let you see visuals, hear the audio and type in questions to ask Richard
- To register for the webcast (it’s free), click here; you’ll get the link for the webcast
- To catch the webcast on Thursday at 2:00 p.m. Eastern / 11:00 a.m. Pacific!
How Do I Get the MP3 Recording of the Webcast?
It’ll be posted on this blog in about a week.
Who’s Coming Up on Ignite Your Coding?
- Robert C. “Uncle Bob” Martin on software craftsmanship
Kudos for Kodu
Photo by Rick Macwilliam, The Edmonton Journal.
The Kodu game building system got some coverage in today’s Edmonton Journal. In a piece titled Kudos for Kodu, the Language of Kids, they cover the story of how St. Mary Catholic Elementary School is using Kodu to teach not just programming, but parts of the science curriculum as well. The kids are building a Kodu world that simulates a wetland ecosystem, filled with creatures that explain their roles. It sounds more fun than my grade school science classes and echoes my own philosophy of “don’t learn to build, but build to learn”.
Want to learn more about Kodu? You can get a quick introduction by watching me and Junior on Developer Junior:
…after which, you can look at Hello, Kodu!, my article that walks you through the process of programming Kodu the robot to respond to the gamepad controls. It also provides links to more Kodu tutorials.
EnergizeIT This Week
This week, EnergizeIT heads out to New Brunswick, Saskatchewan and Quebec.
This Week in New Brunswick
Creative Commons photo by Stu Pendousmat. Click here for the original.
On Tuesday, Damir and I fly to Moncton for EnergizeIT, where we’ll be doing the EnergizeIT Community Connection presentation. It’s a non-stop no-slides-till-the-very-end demo in which we build the applications and IT infrastructure of a business right in front of you, giving you a grand tour of Visual Studio 2010, SharePoint 2010, and Office 2010 along the way. We’ll be presenting at the Mapleton Rotary Pavilion on 600 Mapleton Road at 6:00 p.m.; if you’d like to catch this free presentation, you can sign up on the registration page.
Creative Commons photo by Stu Pendousmat. Click here for the original.
On Wednesday, Damir and I will drive from Moncton to Fredericton, where we’ll do the same presentation, this time at University of New Brunswick’s Gillin Hall (540 Windsor Street), once again at 6:00 p.m.. As with Moncton’s event, registration is free; you can sign up here.
This Week in Saskatchewan
These aren’t the only places with EnergizeIT Community Connection presentations. In Saskatchewan, we’ve got John Bristowe and Rodney Buike doing these presentations:
- Regina: Tuesday, April 20th at Casino Regina (1880 Saskatchewan Drive)
in the Telegraph Room (2nd floor mezzanine) - Saskatoon: Thursday, April 22nd at University of Saskatchewan’s Arts and Science Building
(9 Campus Drive), room 143
This Week in Quebec
Meanwhile, in Quebec, Christian Beauclair and Rick Claus will be doing the French edition of the presentations in these cities:
- Quebec City: Tuesday, April 20th at École Nationale d’Administration Publique (555 boulevard Charest E) in the amphitheatre
- Trois-Rivières: Wednesday, April 21st at Musee Quebecois de Culture Populaire (200 rue Laviolette) in the Cogeco Room
Next Week in Mississauga
Creative Commons photo by Ian Muttoo. Click here for the original.
And the final city of the EnergizeIT Community Connection tour is Mississauga, where Damir and I will do the presentation in the MPR room of Microsoft Canada’s headquarters (1950 Meadowvale Boulevard). It takes place at 6:00 p.m. on Tuesday, April 27th.