Categories
Uncategorized

Toronto Coffee and Code: Friday, July 31st at the Dark Horse Cafe (215 Spadina)

coffee_and_code_3

If it’s Friday, it must be time for another Toronto Coffee and Code! This one will take place at the usual location – the Dark Horse Cafe, 215 Spadina – and will run from 1 p.m. to 6 p.m..

coffee_and_code_1

Coffee and Code is my Friday afternoon ritual (a phrase that my classmates at Crazy Go Nuts University will find hauntingly familiar) in which I work out of a cafe and announce that I’ll be there. I’m making myself available as both a Developer Evangelist working for Microsoft Canada and a member of the Toronto Tech Community to answer your questions, take your comments, bounce ideas off or just chat with. Come on down, have a coffee (or tea, or juice) and say hi!

coffee_and_code_2

Categories
Uncategorized

My Statement on IE6

Yes, I know that cats live longer, but I think the quip I made at DemoCamp 21 still makes a good point:

Picture of "Bill the Cat" from "Bloom County" captioned with "If you got a cat when IE6 came out, it's dead now."

Let’s upgrade to compliant up-to-date browsers, shall we? IE8, or even that hippie browser, if you must.

Credit where credit is due: The “cat’s dead now” line is my remix of a line from a review of the Guns ‘N’ Roses concert that took place here in Toronto a couple of years back. The original line went something like “If you got a cat when Appetite for Destruction came out, it’s dead now.”

Categories
Uncategorized

The “Race to Market Challenge” for Windows Mobile

This article also appears in Canadian Developer Connection.

The Race to Market Challenge

Here’s a quick little video that explains what the just-announced Race to Market challenge is all about:

If you’ve been thinking about developing for Windows Mobile, now’s the time! We’re now accepting submissions of applications for Windows Marketplace for Mobile, the on-phone store where people with Windows Mobile phones can buy and install mobile applications easily. Better still, we’re making it a contest – submit your Windows Mobile app between now and 11:59 p.m. on December 31st and you’ll automatically be entered in the Race to Market Challenge where you’ll have a chance to win one of 4 Surface tables (developer edition, of course) like the one pictured below with the dashing Developer Evangelist…

surface_pdc

…along with a lot of online marketing and promotion for your application and a really cool trophy.

Winning applications will fall into one of these categories:

  • Most downloaded
  • Most valuable (where “value” is the number of downloads multiplied by the price)
  • Most useful, as judged by a Microsoft panel
  • Most playful, as judged by a Microsoft panel

The Race to Market Challenge runs from now until December 31st, and the sooner you get started, the more likely you shot at one of the grand prized. For full details about the contest, visit mobilethisdeveloper.com.

Getting Started with Windows Mobile Development

Between now and the end of the contest, I’ll be posting articles on Windows Mobile development and the Race to Market Challenge. In the meantime, here are some tips that should help you get started.

What You Need

Here’s a snippet from an earlier article of mine that shows you what you need in order to get started with Windows Mobile development. In order to build an application for Windows Mobile 6, you’ll need the following things:

Visual Studio 2008, Professional Edition or higher
visual_studio_2008_pro
This is the development environment. It’s not the only one that you can use to develop Windows Mobile apps, but it’s the one we’re using.

You can also use Visual Studio 2005 – if you do so, Standard Edition or higher will do. If you don’t have Visual Studio, you can download a trial version of Visual Studio 2008.
 

The Windows Mobile 6 SDKs
gear_icon
 
The Windows Mobile 6 SDKs contain the templates for building Windows Mobile 6 projects and emulators for various Windows mobile phones.

There are two such SDKs to choose from:

  • The Standard SDK. The general rule is that if the device doesn’t have a touch screen, its OS is Windows Mobile 6 Standard, and this is the SDK for developing for it.
  • The Professional SDK. The general rule is that if the device has a touch screen, its OS is Windows Mobile 6 Professional, and this is the SDK for developing for it.

    I recommend downloading both SDKs. You never know where you’ll deploy! 

  • .NET Compact Framework 3.5 Redistributable
    dotnet_logo
     
    The .NET Compact Framework 3.5 Redistributable is the version of the .NET framework for mobile devices. It only needs to be sent to the device once.
    A Windows Mobile 6 Device
    palm_treo_pro
     
    You can get by in the beginning with just the emulators, but you’ll eventually want to try out your app on a real phone. I’m using my phone, a Palm Treo Pro.

    As the saying goes, “In theory, there is no difference between theory and practice; in practice, there is.”

    The mobile device syncing utility that works with your operating system
    windows_mobile_device_center_icon
    If you’ve got a Windows Mobile 6 device, you’ll need the application that connects your mobile phone to your OS:

  • For Windows 7 and Vista, use Windows Mobile Device Center.
  • For Windows XP and Server 2003, use ActiveSync.
  • Previous Articles on Windows Mobile Development

    Here are links to my earlier articles on Windows Mobile development:

    I’ll be posting more soon, but these should help you get up and running in the meantime.

    If you’ve got any questions or comments about Windows Mobile development or the Race to Market Challenge, feel free to drop me a line or leave a note in the comments!

    Categories
    Uncategorized

    A Busy Week

    This article also appears in Canadian Developer Connection.

    It’s gonna be a busy week for me — there’s a lot going on!

    Damian Conway

    Monday: Damian Conway and The Missing Link

    On Monday evening, I’ll be catching Damian Conway’s presentation, The Missing Link. There’s nothing quite like a Damian Conway presentation – they’re equal parts computer science, mathematical digression, history lesson, physics lecture, pop-culture observation, Perl module code walkthrough and stand-up comedy routine.

    If you’re up for an entertaining and enlightening presentation by one of the bright lights of the open source world and you’re going to be in Toronto tonight, you should catch this one. There’s no charge for admission and no registration process – just show up at University of Toronto’s Bahen Centre for Information Technology (40 St. George Street, west side, just north of College) at 7:00 p.m. and head to room 1160 (the big lecture theatre near the back of the first floor).

    Map picture

    Tuesday: DemoCamp 21 with Special Guest John Udell

    DemoCamp Toronto 21: Tuesday, July 28th Tuesday evening brings the 21st edition of DemoCamp, which I like to describe as “show and tell for the bright lights of the Toronto-area tech community”. It’s a chance for people, from hobbyists working on a pet project to enterprise software developers building something globe-spanning to show their peers their projects in action or share an idea. It’s put together by my fellow Microsoftie David Crow (who’s also in Microsoft Canada’s Developer and Platform Evangelism group); I cost-host the event with Jay Goldman.

    This one’s going to be a special one for a couple of reasons. Firstly, this will be the first DemoCamp held at the Rogers Theatre. Second, Jon Udell, Microsoft Tech Evangelist extraordinaire, will be there.

    The presentations on the schedule are:

    • You can’t pick your neighbours, but you can pick your neighbourhood!
      Saul Colt, Zoocasa
    • ArtAnywhere : Where Lost artwork meets Empty walls
      Christine Renaud, ArtAnywhere
    • Bringing Social Media to Contractors
      Brian Sharwood, HomeStars
    • Create a BlackBerry/iPhone Mobile App in 5 Minutes
      Alan Lysne, Cascada Mobile
    • Stories Told Together – Introducing Social Cards
      Shaun, MacDonald, MashupArts
    • WeGoWeGo.com: semantic search for city events
      Dan Wood, WeGoWeGo.com
    • Guestlist – online event management
      Ben Vinegar, Guestlist
    • guiGoog: Advanced Visual Power Search
      Jason Roks, GuiGoog

    Alas, this event is sold out. I’ll take notes and post them on this blog.

    Wednesday: Science 2.0

    what_we_need_more_of_is_science

    The Science 2.0 conference takes place on Wednesday afternoon. Its topic: how the web and computers can radically change and improve science. It takes place at the MaRS Centre and the presentations are:

    • Choosing Infrastructure and Testing Tools for Scientific Software Projects
      Titus Brown
    • A Web Native Research Record: Applying the Best of the Web to the Lab Notebook
      Cameron Neylon
    • Doing Science in the Open: How Online Tools are Changing Scientific Discovery
      Michael Nielsen
    • Using “Desktop” Languages for Big Problems
      David Rich
    • How Computational Science is Changing the Scientific Method
      Victoria Stodden
    • Collaborative Curation of Public Events
      Jon Udell

    As with DemoCamp, this event is a popular one and is sold out. I’ll take notes and blog the conference.

    Thursday: Windows 7 Blogger Event

    I’ll be helping out at a gathering of Toronto bloggers on Thursday, where we’ll be showing them Windows 7.

    Friday: Coffee and Code

    coffee-and-code-2 If it’s Friday, it must be time for Toronto Coffee and Code! It’s the day when I set up shop at a cafe – usually the Dark Horse – and work from there, making myself available to answer questions, hear your opinions and comments and chat. I’ll talk about Microsoft, our tools and tech, the industry in general, whatever!

    This Friday’s Toronto Coffee and Code will take place at the Dark Horse Cafe (215 Spadina) from 1 p.m. to 6 p.m.. Feel free to drop by!

    Map picture

    Other Stuff Going On This Week

    techdays_canada_2009_logo

    • Along with the other people on the team, I’m helping out with the preparatory work on the TechDays conference, which will be taking place in seven cities across Canada this fall.
    • I’m also working on ongoing series of articles covering stuff like coding fundamentals, ASP.NET MVC, mobile and some other stuff that I have to keep on the down-low for the time being.
    • And it’s not too late for me to start working on the ASP.NET MVC presentation that I’m doing with ObjectSharp’s Barry Gervin at the Toronto edition of Stack Overflow’s DevDays conference in October.
    Categories
    Uncategorized

    The Sub-$1000 Opportunity?

    U.S. $1000 bill

    Here’s a thought experiment for you Windows developers out there: the fact that Apple pretty much owns the $1000+ computer market is in fact an opportunity. Discuss.

    (This article appears with slightly different wording – to try things from a different perspective – on the official Microsoft Canada developer blog, Canadian Developer Connection.)

    Categories
    Uncategorized

    The “CSS Is Awesome” Mug

    If you’ve worked with CSS and multiple browsers long enough, this mug will make you laugh (or cry):

    Mug with a square containing the text "CSS IS AWESOME", with the "AWESOME" extending beyond the boundary of the square.

    At US$12.95 (available at Zazzle.com), it’s a pretty good “Secret Santa” gift for the web developer or designer on your team.

    Categories
    Uncategorized

    TechDays, Blogs and the Fundamentals

    This article also appears in Canadian Developer Connection.

    The Open Letter

    duty_calls

    Justice Gray is concerned about TechDays, Microsoft Canada’s touring conference that will hit seven cities this fall. So he wrote an open letter, in which he stated:

    I’m a big "fundamentals" guy, and TechDays hasn’t traditionally focused on any sort of development fundamentals. It’s been more focused on specific Microsoft technology demos.

    He’s right – one of the key goals of TechDays is to showcase current Microsoft tools and technologies, show you how to make use of them and give you an idea of what’s possible. As the “owner” of one of the conference tracks – I’m in charge of the Developing for the Windows Platform track – I’ve taken great care to choose sessions that cover tools and technologies that are currently available but are things that you might not be using…yet. Many people’s day-to-day work keeps them focused on their particular department’s or project’s technologies and doesn’t give them any opportunities to see what else is out there. One of the goals of TechDays is to provide such an opportunity.

    Because he is “Justice” by nature as well as name, he’s quite understanding:

    I hasten to add that this is completely within Microsoft’s right and totally makes sense.  Microsoft is first and foremost a business and this is a good place to promote itself!

    What he’d like to see is a greater emphasis on developer fundamentals:

    However, I’m a little less excited about "let’s look at another spinning animal demo" vs. "let’s teach common design patterns" or even "let’s actually show developers how to use half of the relevant Application Blocks in a legitimate application that isn’t a Northwind demo".

    SOLID Inspiration

    aerialbots_as_solid

    Justice’s concern about TechDays stems from my recent article on the SOLID principles, which I posted here on Global Nerdy as well as on Microsoft Canada’s developer blog, Canadian Developer Connection. What really got him was a question and answer I included in the article:

    Will There be a Presentation on SOLID at TechDays Canada 2009?
    Mmmmmmmaybe…

    He interpreted the “Mmmmmmmaybe…” as “no”. Based on that interpretation, he made what might be considered to be a logical assumption: that I wrote the post as a quick way to compensate for the fact that SOLID wouldn’t be a topic at TechDays.

    Fitting in Fundamentals

    "ABC" toy wooden blocks

    In fact, SOLID will be the topic of a session in the Developing for the Windows Platform track. The session’s working title is SOLIDify Your ASP.NET MVC Applications, and it covers the SOLID principles by way of refactoring an ASP.NET MVC application.

    There’s a perception that Microsoft developers care less about things like good design and coding practices than those in the Java and open source worlds do. Whether that perception is true or not, I figured that I’d try to address both the perception and the reality by filling the “back end” day of my track – that’s day 2; day 1 is all about developing for the “front end” – with sessions that covered technique as well as tooling:

    • There’s the SOLID session…
    • Prior to the SOLID session is the “Introduction to ASP.NET MVC” session, which covers the concepts of the Model-View-Controller pattern, DRY, convention over configuration, the Repository pattern and REST.
    • REST is covered in even greater detail in a session that covers building RESTful services with WCF. It seemed to me that while many parts of the open source world have embraced REST, it’s been largely ignored in the Microsoft world until recently.
    • There’s also a session in which we look at SharePoint as a provider of web services and architectures in which an “application” is actually two or more applications interacting by producing and consuming services.

    Choosing the sessions that would go into TechDays was a juggling act, what with:

    • Selecting sessions from the ones at the TechEd conference (which took place earlier this year),
    • Satisfying the needs of the various tool and product groups who are TechDays’ “sponsors”,
    • Choosing topics that are interesting and relevant to the audience
    • Ensuring that sessions are at the appropriate skill level
    • Trying to go beyond “how you use feature X of tool Y”, and
    • Covering topics that will help keep the audience’s “skills portfolio” up to date.

    Each track owner had to balance these factors when choosing sessions for this track. I believe that the end result (which will be online soon) is a pretty good one.

    Blogging the Fundamentals

    Volumes 1-3 of Donald Knuth's "The Art of Computer Programming"

    I wrote an article about SOLID not because it had been excluded from the Developing for the Windows Platform track, but because it was included. That post was meant to be an “appetizer” for the session> I wanted everyone attending the SOLID session to have at least a passing familiarity with the SOLID principles. Learning takes repetition and retaining that learning takes continual exposure, so I thought I’d get a head start by posting an article and hinting (which is what my “Mmmmmmmmaybe” was about) that it would be a topic at TechDays. I also thought that  articles on SOLID might generate interest in the session.

    There will be more articles looking more closely at each of the SOLID principles. The article was the first step toward posting more articles on technique and best practices. I think that it’s an area that Canadian Developer Connection can and should cover, because there’s more to building software than knowing your way around Visual Studio and Expression or being able to list the functionalities offered by a given class library. There’s the accumulated wisdom of developers in the form of things like design patterns, fundamentals like coupling and cohesion, concepts like DRY, convention over configuration and the Law of Demeter, practices like secure, agile and test-driven development and so on. I want to help make better developers, because better developers make for a better industry — and a better Microsoft as well.

    While TechDays sessions provide an interactive and up-close-and-personal learning experience that a blog can’t, there are good reasons to use blogs to cover the fundamentals. We can point TechDays attendees to blog posts to reinforce the material covered in the sessions, and people who weren’t able to make it to TechDays can also benefit. We can cover topics in greater depth in a blog article than we can in a presentation, with more detailed explanations and diagrams as well as more code and examples. There’s also the reach and permanence of a blog article: they’re accessible by anyone, anytime, and more importantly, they can be indexed by search engines.

    Your Suggestions, Please!

    the-room[1]

    In the end, we want to help developers become the best they can be. That means making sure that they know how to get the most out of our tools and technology, but it also means helping out in areas not directly related to selling our wares, such as helping build developer communities and covering topics like good software design and best practices, both online and in real life.

    What would work best for you? Would you like to see more fundamentals-oriented sessions in future versions of TechDays or other conferences? More presentations on the fundamentals at local workshops or user groups? More articles? More screencasts? Let us know, either in the comments or drop me a line directly. A lot of our planning is based on your input, so the more you tell us, the better.