Categories
Uncategorized

The TechDays $299 Deal

For the price of this (an Xbox 360 Elite or $300), you get all this (conference sessions, opportunities to meet people, a supercharged brain, Microsoft TechNet subscription, developer resources, a happy cat)

The Early Bird Price is Going Away Soon

The $299 early bird pricing for TechDays Canada 2009’s Vancouver and Toronto stops will vanish after Monday, August 31st. From September 1st onward, if you want to catch TechDays in Vancouver (Monday, September 14th – Tuesday, September 15th) and Toronto (Tuesday, September 29th – Wednesday, September 30th), you’ll have to pay the full price of $599. Why pay double when you don’t have to?

The TechDays Formula

Continuing with this article’s theme of using pictograms to explain things, here’s TechDays in a nutshell, pictorial-style:

The TechDays Formula -- TechDays = Content from premium conferences far, far away + Delivered by local speakers at venues close to home + Extra events and goodies for you to enjoy We take presentation sessions that cover getting the most out of current and new Microsoft tools and technologies from big conferences like TechEd, which are typically held in a large city in the southern United States, at a large convention centre, near large hotels and will set you back a couple “large” for registration, transportation and accommodation. TechDays 2009 features over 40 sessions split into these tracks:

  • Developing for the Microsoft-Based Platform
  • Developer Fundamentals and Best Practices
  • Windows Client
  • Servers, Security and Management
  • Communications and Collaboration

We update that content where necessary and find local speakers to present it. We pick out speakers who are either well-versed in the session topic or who are simply bright techies with a thirst for knowledge, a knack for presenting and who have been meaning to get well-versed in that topic. Whenever possible, we try to get someone who lives in the area of the conference city, because TechDays isn’t just about spreading knowledge; it’s also about helping developers make connections with their peers nearby.

We also set up extra events and goodies. Attendees get a one-year subscription to TechNet, which alone is worth more than the price of the early bird registration and gets you access to all kinds of goodies including Windows 7. There’s also all the content from the TechEd conference. You also get the learning kit DVD packed with goodies to help you get the most out of Microsoft’s tools and tech. We’re throwing in some discount codes for books. We’ll also be announcing surprise events in your city – watch this space for details!

And last but not least, don’t underestimate the job-and-employee-seeking opportunities that a gathering like TechDays provides. Events like TechDays are where opportunities happen!

All This for $299

3 Canadian 100-dollar bills, minus one loonie

And don’t forget, that’s $299 Canadian, for content from conferences that cost 7 times as much. And with extra goodies such as a TechNet subscription (which costs more than the early bird fee and gets you Windows 7) thrown in. Plus a chance to meet up with your peers as well as us evangelists, whom you should think of as “your people on the inside”. It’s a great deal, and it’s going away after next Monday, so sign up now!

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Science 2.0: Choosing Infrastructure and Testing Tools for Scientific Software Projects

Titus Brown at the podium at MaRSC. Titus Brown delivering his presentation.

Here’s the first of my notes from the Science 2.0 conference, a conference for scientists who want to know how software and the web is changing the way they work. It was held on the afternoon of Wednesday, July 29th at the MaRS Centre in downtown Toronto and attended by 102 people. It was a little different from most of the conferences I attend, where the primary focus is on writing software for its own sake; this one was about writing or using software in the course of doing scientific work.

This entry contains my notes from C. Titus Brown’s presentation, Choosing Infrastructure and Testing Tools for Scientific Software Projects. Here’s the abstract:

The explosion of free and open source development and testing tools offers a wide choice of tools and approaches to scientific programmers.  The increasing diversity of free and fully hosted development sites (providing version control, wiki, issue tracking, etc.) means that most scientific projects no longer need to self-host. I will explore how three different projects (VTK/ITK; Avida; and pygr) have chosen hosting, development, and testing approaches, and discuss the tradeoffs of those choices.  I will particularly focus on issues of reliability and reusability juxtaposed with the mission of the software.

Here’s a quick bio for Titus:

C. Titus Brown studies development biology, bioinformatics and software engineering at Michigan State University, and he has worked in the fields of digital evolution and physical meteorology. A cross-cutting theme of much of his work has been software development for computational science, which has led him to software testing and agile software development practices. He is also a member of Python Software Foundation and the author of several widely-used Python testing toolkits.

  • Should you do open source science?
    • Ideological reason: Reproducibility and open communication are supposed to be at the heart of good science
    • Idealistic reason: It’s harder to change the world when you’re trying to do good science and keep your methods secret
    • Pragmatic reason: Maybe having more eyes on your project will help!
  • When releasing the code for your scientific project to the public, don’t worry about which open source licence to use – the important thing is to release it!
  • If you’re providing a contact address for your code, provide a mailing list address rather than your own
    • It makes it look less “Mickey Mouse” – you don’t seem like one person, but a group
    • It makes it easy to hand off the project
    • Mailing lists are indexed by search engines, making your project more findable
  • Take advantage of free open source project hosting

 

  • Distributed version control
    • “You all use version control, right?” (Lots of hands)
    • For me, distributed version control was awesome and life-changing
    • It decouples the developer from the master repository
    • It’s great when you’re working away from an internet connection, such as if you decide to do some coding on airplanes
    • The distributed nature is a mixed mixed blessing
      • One downside is "code bombs", which are effective forks of the project, created when people don’t check in changes often enough
      • Code bombs lead to complicated merges
      • Personal observation: the more junior the developer, the more they feel that their code isn’t “worthy” and they hoard changes until it’s just right. They end up checking in something that’s very hard to merge
    • Distributed version control frees you from permission decisions – you can simply say to people who check out your code "Do what you want. If I like it, I’ll merge it."

 

  • Open source vs. open development
    • Do you want to simply just release the source code, or do you want participation?
      • I think participation is the better of the two
    • Participation comes at a cost, in both support time and attitude
      • There’s always that feeling of loss of control when you make your code open to use and modification by other people
      • Some professors hate it when someone takes their code and does "something wrong" with it
      • You’ll have to answer “annoying questions” about your design decisions
      • Frank ("insulting") discussion of bugs
      • Dealing with code contributions is time-consuming – it takes  time to review them
    • Participation is one of the hallmarks of a good open source project

 Slide: "The Stunning Realization"

  • Anecdote
  • I used to work on the “Project Earthshine” climatology project
    • The idea behind the project was to determine how much of the sunlight hitting the Earth was being reflected away
    • You can measure this be observing the crescent moon: the bright part is lit directly by the sun; the dark part is also lit – by sunlight reflected from the Earth
    • You can measure the Greenhouse Effect this way
    • It’s cheaper than measuring sunlight reflected by the Earth directly via satellite
  • I did this work at Big Bear Lake in Califronia, where they hung telescopes to measure this effect at solar observatories
  • I went through the the source code of the application they were using, trying to figure out what grad student who worked on it before me did
  • It turned out that to get “smooth numbers” in the data, his code applied a correction several times
  • His attitude was that there’s no such thing as too many corrections
  • "He probably went on to do climate modelling, and we know how that’s going"
  • How do we know that our code works?
    • We generally have no idea that our code works, all we do is gain hints
    • And what does "works" mean anyway, in the context of research programming? Does it means that it gives results that your PI expects?
  • Two effects of that Project Earthshine experience:
  • Nowadays, if I see agreement between 2 sources of data, I think at least one of them must be wrong, if not both
  • I also came to a stunning realization that:
    • We don’t teach young scientists how to think about software
    • We don’t teach them to be suspicious of their code
    • We don’t teach them good thought patterns, techniques or processes
    • (Actually, CS folks don’t teach this to their students either)
  • Fear is not a sufficient motivator: there are many documented cases where things have gone wrong because of bad code, and they will continue to do so. Famous cases include:
  • If you’re throwing out experimental data because of ifs lack of agreement with your software model, that’s not a technical problem, that’s a social problem!

 

  • Automated testing
    • The basic idea behind automated testing is to write test code that runs your main code and verifies that the behaviour is expected
    • Example – regression test
      • Run program with a given set of parameters and record the output
      • At some later time, run the same program with the same parameters and record the output
      • Did the output change in the second run, and if so, do you know why?
      • This is different thing from "is my program correct"
      • If results change unintentionally, you should ask why
    • Example – functional test
      • Read in known data
      • Check that the known data matches your expectations
      • Does you data loading routine work?
      • It works best if you also test with "tricky" data
    • Example – assertions
      • Put "assert parameter >=0" in your code
      • Run it
      • Do I ever pass garbage into this function?
      • You’ll be surprised that things that "should never happen", do happen
      • Follow the classic Cold War motto: “Trust, but verify”
    • Other kinds of automated testing (acceptance testing, GUI testing), but they don’t usually apply to scientists
    • In most cases, you don’t need to use specialized testing tools
    • One exception is a code coverage tool
      • Answers the question “What lines of code are executed?”
      • Helps you discover dead code branches
      • Guide test writing to untested portions of code
    • Continuous integration
      • Have several "build clients" building your software, running tests and reporting back
      • Does my code build and run on Windows?
      • Does my code run under Python 2.4? Debian 3.0? MySQL 4?
      • Answers the question: “Is there a chance in hell that anyone else can use my code?”
    • Automated testing locks down "boring" code (that is, code you understand)
      • Lets you focus on "interesting" code – tricky code or code you don’t understand
      • Freedom to refactor, tinker, modify, for you and others

C. Titus Brown delivering his presentation at MaRS 

  • If you want to suck people into your open source project:
    • Choose your technology appropriately
    • Write correct software
    • Automated testing can help
  • Closed source science is not science
    • If you can’t see the code, it’s not falsifiable, and if it’s not falsifiable, it’s not science!
Categories
Uncategorized

Open Source Language Roundtable Webcast: Wednesday, July 22nd

oscon_language_roundtable

O’Reilly’s conference on Open Source, OSCON, takes place this week in San Jose, California. One of the events taking place at OSCON is the Open Source Language Roundtable, the abstract for which appears below:

We all have our favorite languages in our tool-belt, but is there a ‘best’ overall language? If anyone can hash that out, it will be the members of this roundtable discussion, some of the stars of the open source language space. This wide-ranging session, hosted and moderated by the O’Reilly Media editorial staff, and broadcast live on the web, will try to identify the best and worst features of each language, and which are best for various types of application development.

The roundtable will me moderated by O’Reilly Media’s James Turner and will cover the following languages, listed below with the corresponding panelist:

  • Java: Rod Johnson (SpringSource)
  • Perl: Jim Brandt (Perl Foundation)
  • PHP: Laura Thomason (Mozilla)
  • Python: Alex Martelli (Google)
  • Ruby: Brian Ford (Engine Yard)

You can catch this roundtable even if you’re not going to be at OSCON because O’Reilly is webcasting the event. It takes place this Wednesday, July 22nd at 10pm EDT (7 pm Pacific) and is expected to run 90 minutes. It costs nothing to catch the webcast and you’ll even be able to ask the panelists questions via chat, but you’ll need to register.

Categories
Uncategorized

TechDays 2009

Microsoft TechDays Canada 2009Summer may just be starting, but we’re already working on on Microsoft’s big conference for the fall, TechDays 2009. It’s our cross-Canada conference for Developers and IT Pros that covers Microsoft tools and technologies that are available right now.

I was a presenter at TechDays 2008, and this year, I’m in charge the Developing for the Windows Platform track, responsible for choosing the sessions and training their speakers.

When and Where

TechDays 2009 takes place in September, November and December. We start with Vancouver and Toronto, the cities with the two largest venues. We leave October open for the AlignIT conferences. Things pick up again in November, when we hit these cities: Halifax, Calgary, Montreal, Ottawa and Winnipeg.

Here’s are TechDays 2009’s cities and dates:

TechDays 2009 City Conference Dates
Vancouver September 14th and 15th
Toronto September 29th and 30th
Halifax November 2nd and 3rd
Calgary November 17th and 18th
Montreal December 2nd and 3rd
Ottawa December 9th and 10th
Winnipeg December 15th and 16th

As a track owner, I will be at all the cities for the week around those dates. My plan is to try to hold a “Coffee and Code” event in each TechDays city during that week, so watch this blog for those announcements.

TechDays 2009 Tracks

TechDays 2009 will have five tracks:

  • Developing for the Microsoft Platform (mine!)
  • Developer Fundamentals and Best Practices
  • Windows Client
  • Servers, Security and Management
  • Communications and Collaboration

We’re currently in the process of choosing the sessions for each track, which spans the two days of the conference, four 75-minutes sessions per day.

Here are the details for each track:

Developing for the Microsoft Platform (This one’s mine!)

Key Technology Areas Covered:

  • Silverlight
  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • Windows Mobile Development
  • Developing applications for Windows 7
  • Internet Explorer 8
  • ASP.NET

That’s right, I’m in charge of choosing the content and training the speakers for this track. If you have suggestions for particular topics you’d like to see in this track, email me or leave a comment!

Learning key skills to develop rich client and web-based applications on the Microsoft platform is what this track is all about. In this track you will learn how to develop and enhance your web-based applications both locally and for the Cloud. You will also learn how to leverage Visual Studio 2008 to develop applications for Windows 7 and the unique opportunities offered by this exciting new operating system. You will also learn how you can take your applications on the road with Windows Mobile.

Developer Fundamentals and Best Practices

Key Technology Areas Covered:

  • Application Lifecycle Management
  • Visual Studio Team Suite
  • Visual Studio Team Foundation Server
  • SQL Server 2008
  • Interoperating with Java, PHP, and MySQL
  • VB6 to .NET migration
This track is all about taking your skills up a notch while at the same time ensuring effective and efficient interaction with all members of the development team from architect, to developer, to tester. You will learn about the importance of Application Lifecycle Management (ALM) and how to leverage the Visual Studio development platform to streamline your efforts. Transitioning to new technologies is never easy so we will provide some best practices on how to transition from technologies like Visual Basic 6, Java, and others to Microsoft .NET and the Windows Platform including SQL Server.
Windows Client

Key Technology Areas Covered:

  • Windows 7
  • Application Compatibility Tools
  • XP Mode
  • Microsoft Enterprise Desktop Virtualization (MED-V)
  • Microsoft Desktop Optimization Pack (MDOP)
  • System Center Configuration Manager
  • Forefront Client Security
  • DirectAccess
  • BranchCache
As a new version of the Windows client operating system gets released you find yourself thinking about a number of issues – Will it run on my hardware? How can I deploy it efficiently across my organization? Will all of the applications we need work with the new Windows version? What are my options to ensure key applications will function properly? How can I secure our organization’s desktops? How can I provide my users with easier and secure access to our network? In the Windows Client track you will learn the skills to allow you to answer all of these questions and more. You will learn how to implement key technologies like DirectAccess and BranchCache providing a richer user experience, as well as easier administration, with the combination of Windows 7 and Windows Server 2008 R2.

Servers, Security, and Management

Key Technology Areas Covered:

  • Windows Server 2008 and Windows Server 2008 R2
  • Hyper-V
  • System Center Suite of Products
  • Forefront Suite of Products
  • SQL Server 2008
In these tough economic times organizations are looking to you to help them implement technologies that will streamline operations and reduce costs. In this track you will learn how to migrate to and implement a virtualized infrastructure while also increasing availability. You will see how Windows Server 2008, Hyper-V, and the System Center suite of products provide a robust solution to deploy and manage your datacenter. You will learn how to take advantage of new enhancements in Windows Server 2008 R2 to enhance scalability and availability, as well as how to secure your organization from external and internal threats with the Forefront suite of security products. Automating administration allows you to focus more on key issues for the business, and we will show you how to leverage the System Center suite of products to reduce your workload while increasing your effectiveness. As well, you will learn how to take advantage of these and to use best practices to ensure your SQL Server and other server components are operating efficiently and securely.

Communications and Collaboration

Key Technology Areas Covered:

  • Microsoft Exchange 2007 and 2010
  • Windows SharePoint Services 3.0
  • Microsoft Office SharePoint Server 2007
  • Microsoft Office SharePoint Designer 2007
  • Visual Studio 2008 for SharePoint Development
  • Microsoft Business Productivity Online Suite
  • SQL Server 2008
When it comes to ensuring your users are happy, two things might be top of mind – make sure that users can always get to their email no matter where they are; and, provide them with access to files and documents they need to work with when they need them. This track is all about teaching you the skills to keep your users happy. You will learn how to migrate to the most recent versions of Exchange and SharePoint to take advantage of the many new enhancements to safeguard your users’ data including integrated archiving in Exchange 2010, version and content management in SharePoint, and much more. You will learn how to develop enhancements to SharePoint using SharePoint Designer, and Visual Studio. You will also learn how to manage both your SharePoint and Exchange infrastructure more efficiently and ensure higher availability. Finally, you will learn how the Microsoft Business Productivity Online Suite (BPOS) can be used to reduce costs and increase availability, while also integrating it with your existing Active Directory and Exchange environments.

Who’s Presenting

Photo: Microphone in foreground, auidence in background. TechDays isn’t just about technology presentations; it’s also about building up local developer communities. We provide the session topic and presentation materials, but we want you, the developer community, to do the presentations. Whenever possible, we want people from the region to speak: developers and IT pros from Vancouver, Victoria and parts surrounding speaking at TechDays Vancouver, developers and IT pros from in and around Toronto speaking at TechDays Toronto, and so on.

As I write this, we’re contacting developers and IT pros across Canada, asking them if they’d like to present at session at the TechDays conference nearest to them. If you’ve got the presentation skills (and yes, we’ll help you sharpen them, too!) and think you might do a great job presenting at TechDays 2009, drop me a line and we’ll talk.

How Much?

It’s very, very reasonable: the early bird rate is CAD$299 – and that’s for the full two days, five tracks and breakfast and lunch and an opportunity to network with both Microsofties and your local developer community, Even if you’re in a startup living on ramen noodles, TechDays 2009 won’t break your budget.

Find Out More

You can get the full scoop on TechDays 2009 at the TechDays site, techdays.ca.

Categories
Uncategorized

Videos from the 2009 RSA Conference

This article also appears in Canadian Developer Connection.

rsa_conference

The 2009 edition of the RSA Conference, the biggest and best-known cryptography and information security conference, took place last month in San Francisco. Each year, the conference has a theme based on or relevant to crypto or infosec, and this year’s theme was Edgar Allen Poe (previous themes include the Navajo Code Talkers of World War II, the secrets of the Mayans, Mary Queen of Scots and Alan Turing).

Adam Savage and Jamie Hyneman at their keynote at the 2009 RSA Conference

The people behind the conference were kind enough to post video of the keynotes, which I found thanks to a pointer from TechNet’s Jeff Jones, author of the Jeff Jones Security Blog. You can click on the links below to watch the videos. Jeff strongly recommends that you do not miss the opening ceremony segment of the “Day 1 Keynotes” video, and I don’t have to tell you that you should catch the closing keynote, featuring Adam Savage and Jamie Hyneman of the popular nerd television series Mythbusters:

Categories
Uncategorized

The Empire’s Coming to WordCamp Toronto 2009!

Darth Vader in the lineup for Wordcamp 2009

WordCamp Toronto 2009, the Accordion City-based conference dedicated to the WordPress blogging platform (which this blog runs on), takes place next weekend, May 8th through 10th. It’s a three-day, three-track conference with offerings for WordPress users of all types, from those just getting started with blogging to hardcore developers and designers plumbing deep into WordPress’ internals.

This year, a couple of guys from The Empire – whom you might know as Microsoft — will be presenting at WordCamp Toronto. We’ll be giving away all sorts of prizes, too!

Paul Laberge

On Day 1 at 11:00 a.m. – that’s Friday, May 8th – my coworker Paul Laberge will make his presentation, titled Customizing Your Blog on Your Local Windows Box, in which he talks about using Microsoft tools like the Web Platform Installer and Expression Web on your home computer to make the most of your WordPress blog. Here’s his abstract:

Your blog represents your online personality and as such you spend a lot of time making sure the look and feel reflects who you are. While the blog platforms available (such as WordPress) provide you with much of the plumbing for your blog, you still need to tweak it until it looks just right for you. In this session, we’ll show you how you can customize your blog on Windows using the Web Platform Installer and Microsoft’s web design tool called Expression Web, all from your local machine. Oh, and we have giveaways, too.

Day 2 – that’s Saturday, May 9th – Yours Truly will be on at 2:00 p.m. giving my presentation, Better Living Through Blogging, where I suggest that blogging is more than just personal publishing or self-expression; it’s a means to a better life. Here’s my abstract:

I took up blogging at the suggestion of my friend Cory Doctorow when my job responsibilities had been whittled down to five minutes of actual work per day. What started as a way to break out of boredom turned out to be a life-changer: I made many new friends, got a couple of TV appearances, landed a couple of jobs, met my wife and even dodged a bullet. In this presentation, I’ll regale you with stories about how I made my life better through blogging, share what I’ve learned over the past seven years and give you some tips and tricks that I’ve found useful. And yes, there will be prizes and a rock and roll accordion performance, too!

WordCamp Toronto 2009 will be held at The Oasi Restaurant, which bills itself as “Toronto’s new centre of creative gravity.” It’s located at 99 Sudbury Street, a hop skip and a jump away from the Queen/Beaconsfield neighbourhood of the Gladstone and Drake Hotels. Registration is pretty cheap: just CDN$50 for the whole conference; it’s CDN$35 if you’re a student. For more details about WordCamp Toronto 2009, visit their site. I hope to see you there!

Categories
Uncategorized

The 2009 Lang.NET Symposium / 2009 DSL DevCon

I know it’s incredibly short notice, but I just found about these myself. If:

  • the design and implementation of programming languages, virtual machines and compilers, multi-language libraries and IDEs is your cup of tea, and…
  • you’re going to be in or near Redmond this week

…then you might want to check out these conferences:

Lang.NET Symposium

First, there’s the 2009 Lang.NET Symposium, which takes place in building 99, Room 1919 of the Microsoft Corporate Headquarters from Tuesday, April 14th through Thursday, April 16th. There is no charge to register – that’s right, this is a “free as in beer” event. Who says The Empire isn’t generous?

Here’s a quick description of the event:

Overview

Lang .NET 2009 Symposium is a forum for discussion on programming languages, managed execution environments, compilers, multi-language libraries, and integrated development environments.

This conference provides an excellent opportunity for Programming Language Implementers and Researchers from both industry and academia to meet and share their knowledge, experience, and suggestions for future research and development in the area of programming languages.

Why Attend

If you are a language designer, compiler writer, or tool builder in industry or academia, Lang.NET 2009 is a unique opportunity to directly interact with the architects of Microsoft language platforms.

Microsoft language technologists will be very active participants in the conference while at least 50% of the program is reserved for presentations by non-Microsoft employees.

The Lang.NET Symposium will be followed immediately by…

Fill Your Head: DSL DevCon, April 16 - 17

…the Domain-Specific Languages Developers Conference, which runs from Thursday, April 16th through Friday April 17th in the same room, Building 99, Room 1919 of the Microsoft Corporate Headquarters. Here’s a quick description of the conference:

The goal of the DSL Developer’s Conference is to cut away all the unessential conference baggage and concentrate on why we’re spending time at a conference in the first place — the talks by industry experts and experienced practitioners. By doing so, we can keep your wasted time to a minimum. In fact, if you don’t go away with your head hurting from all the new ideas you’ve heard, we’ve haven’t done our job!

As with the Lang.NET Symposium, DSL DevCon doesn’t cost anything. If you want to attend, just register!