Categories
Uncategorized

Drupal Camp Toronto 2010

drupal camp toronto 2010

Drupal Camp Toronto 2010 is happening in Toronto today and tomorrow! It’s a gathering to discuss all things Drupal, featuring keynote speakers such as ones: Dries Buytaert, Jeff Eaton, and Mark Brown. It’s at a nice, central, easy-to-get-to location, the Toronto Reference Library (a few steps north of the corner of Yonge and Bloor). And here’s something you might not expect – Microsoft Canada is a Platinum Sponsor.

port 25 canadaFor more about Drupal Camp Toronto 2010, I refer you to Microsoft Canada’s open source community blog, Port25.ca, which is run by the Open Source/Interoperability team of Nik Garkusha, Julia Stowell and Jenna Hoffman (whom you might remember from Make Web Not War earlier this year in Montreal). They’ve got some articles on Drupal and Drupal Camp Toronto, including:

This article also appears in Global Nerdy.

Categories
Uncategorized

My Photos from Make Web Not War 2010

I’ll post a more detailed write-up of the Make Web Not War conference later, but I thought that those of you who were there (or wished they were there) would like to see some photos as soon as possible. I’ve posted my photos at full resolution to my Make Web Not War Flickr photoset, which you can view either on Flickr or the slideshow above. The photos all have titles, and I promise I’ll finished the remainder of the descriptions over the next couple of days.

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Make Web Not War / MonDev (Open Source Week) in Montréal / $50 Round Trip Train to Montreal

make web not war banner

Make Web Not War is a cross-platform conference focusing on web development in mixed open source and commercial environments. Make Web Not War is jointly sponsored by Microsoft, our friends at PHP Quebec and open source communities across Canada. We’re proud to be a part of MonDev, Montréal’s Open Source Week, which takes place from May 24th through 28th, 2010.

mondev open source week in montreal

About Make Web Not War

Make Web Not War is a free-as-in-beer event taking place on Thursday, May 27th featuring free-as-in-speech software development. Among other things, you’ll get to:

  • Mingle with some of the best web developers in the country
  • Listen and learn from industry experts and leaders
  • Play with some of the new and exciting toys being offered by Microsoft
  • See who gets crowned as Canada’s top developer at the FTW! Coding Competition
  • Attend the VIP party held in the heart of beautiful Montréal

Make Web Not War’s schedule has two tracks:

  • The Main Track, which covers new opportunities and the business impact of interoperability on the web. Its sessions will be short presentations followed by roundtable discussion with the panelists and Q&A.
  • The Developer Track, which are hands-on sessions covering interoperable tools and technologies.

Make Web Not War will take place at Reunion, located at 6600 Hutchison:

Map picture

 

Want to Attend Make Web Not War?

Registration is free – just visit the registration page and sign up!

About MonDev

MonDev logo

MonDev, Montréal’s Open Source Week, runs from Monday, May 24th through Friday, May 28th. It’s a celebration of Open Source technology and community throughout the Montréal area and features many events, including:

  • Demo Ignite Camp
  • Startup Drinks
  • WebCamp
  • Make Web Not War

From MonDev’s “About” Page:

By encouraging local and international partnerships, Open Source developers are creating free software that can be continuously updated and shared. For many software innovators, Open Source represents the future transformation of software development.

Through Open Source, communities, cities and nations around the world are presented with the opportunity to promote and actively nurture an environment of learning, collaboration and innovation.

Montréal is an important centre of global Open Source activity and home to many software developers, projects and companies. Open Source Week will bring together industry leaders, teachers and students from around the world for a full week of activities that will include workshops, seminars and presentations.

Take the DEVTrain to Montreal — $50 Round Trip!

devtrain

Microsoft Canada’s Technical Evangelism team – Yours Truly included – will be taking the train to Montreal, and we want you to ride with us! We’ve booked an entire car, and we’re bringing the Xbox, Rock Band (and hopefully Red Dead Redemption) and other goodies, and since it’s VIA Rail, there’ll be wifi and power aplenty, and good company and conversation, of course! Best of all, we’re subsidizing the trip – you can travel from Toronto to Montreal on Tuesday morning, depart Montreal for Toronto on Friday, and it’ll cost you only $50!

What’s on the train?

  • Power and wifi
  • We’re sponsoring a meal and a drink
  • A chance to mingle with Toronto’s web developer community (you’ve got about 6 hours to make friendships and even collaborate)
  • A chance to meet Microsoft Canada’s Technical Evangelism team – a fine bunch
  • The cheapest, most comfortable round trip to Montreal you’re going to find!

Want to travel on the cheap in in high geeky style? Take the train with us – email cdnsol@microsoft.com to get the invitation to ride.

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Interview on ASP.NET MVC and Open Source at Microsoft

I’m looking a tad sleep-deprived in this interview – I was quite busy around the end of February and the start of March — but I managed to stay conscious long enough at the Confoo conference to do an interview with CT Moore (back in early march) and talk about my presentation, which covered both ASP.NET MVC and Microsoft’s relationship with open source:

Should you not have two minutes free to watch the video, the take-away points from the interview are:

  • I really like ASP.NET MVC. It’s the way I choose to build web applications in .NET and it’s similar to other MVC frameworks like Ruby on Rails and Django.
  • Microsoft’s attitude to open source is that’s it’s not a threat, but an opportunity. We compete with other companies, not software movements.
  • Sleep is good.

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Microsoft’s Open Source Party in Montreal

Here’s a little hint: if you ever get an invitation to a Microsoft party from High Road Communications – they’re Microsoft Canada’s PR firm – accept it. They’re always in great places, have great tapas and drinks and they always invite interesting people. You’re guaranteed to have fun, and that guarantee is doubled if I’m there.

The W’s “Extreme Wow” Suite

On Thursday, right after the end of Day 2 of TechDays Montreal, my fellow developer evangelist Christian Beauclair and I made our way from Centre Mont-Royal (the TechDays Montreal venue) to the W Hotel. That’s where we were holding a little party to which we invited a number of local open source developers, some of who were at the previous night’s Career Demo Camp Montreal.

w hotel montreal

Montreal’s W hotel is a building that has undergone a radical personality change. It used to be the Banque du Canada building, the home of one of our federal government’s most stuffy, buttoned-down organizations. W hotels tend to be the exact opposite: everything about them suggests that they were designed by people who usually design nightclubs, what with DJ booths in their lobbies, electronica and funk music piped into every nook and cranny, dimly-lit hallways with lighting straight out of Blade Runner and other little touches that make it seem as if you’ve somehow managed to get into one of those secret clubs in New York City’s Meat Packing District. Simply put, it’s a pretty good place to hold a swanky cocktail party,

Christian and I followed the directions to the “Extreme Wow” suite that High Road had booked for the party. Here’s what we saw when we entered the room:

01 empty suite 1

The suite was located on the top floor of the W. It was one large room with a 20 foot-high ceiling and an equally high set of windows revealing a balcony looking out onto Square Victoria and a good chunk of Montreal’s skyline. I had a sense of deja vu and soon realized that the place reminded me a little bit of Tony Prince’s swanky condo in the videogame The Ballad of Gay Tony, minus the mobsters to whom Tony owed money and wanted him dead.

02 empty suite 2

Near the back of the suite was the bathroom, which in the spirit of open source, was itself open concept and had nothing to hide. Rather than being tucked into a separate room, the shower, tub and sinks were poised on a split level four or five steps above the rest of the room, with the shower stall being a glass-and-brick enclosure in the middle of it all, looking like the monolith from 2001. The tub was recessed into the floor beside it and covered with a sheet of plywood for the party, either in order to prevent people from falling into it or to prevent me from attempting to start a party hot tub:

03 shower

(Thankfully, the toilet had its own separate “water closet” room, just off to the side.)

The room had been rearranged to better suite a party than overnight guests. The bed had been removed and replaced with a hybrid couch/chaise lounge:

04 shower and chaise

Just about everything in the room could be commanded via the master remote control, which Christian found. It controlled lights, the TV, sound system and even the curtains and skylight blinds (which could be opened and closed via remote-controlled servos):

05 christian and remote

Here’s a view of Square Victoria from the balcony:

06 view from balcony

Christian also found a table centrepiece that reminded him of an M.C. Escher image that I had used in my slide presentation at Career Demo Camp Montreal:

07a christian

For reference, here’s that M.C. Escher piece:

07b escher

Having checked out the place and taken my first set of photos, I did what I always do in such a setting: I got got a drink from the bar and made myself comfortable.

The Presentations

It wasn’t just cocktails and conversations at the party. We had some presentations as well, starting with Nik Garkusha, part of Microsoft Canada’s Open Source Strategy team. He talked about how Microsoft views open source, as well as the work we’re doing in order to make Microsoft and open source work better together.

I split his presentation into two videos. Here’s the first…

…and here’s the second:

Brendan “Digibomb” Sera-Shriar, developer with Optimal Payments, WordPress evangelist, founder of PHP Toronto and WordCamp Toronto and organizer of WordCamp Montreal, talked about his experience working with The Empire: “They’re actually doing open source!”, his use of Windows and the Windows Platform Installer and how open source and Windows can work together:

Yann Larrivee, developer, founder of PHP Quebec, FooLab and the upcoming ConFoo conference, spoke next. He talked about how he enjoyed Make Web Not War 2009, the importance of “playing well with others” both inside and outside the world of open source and how Microsoft is participating in ConFoo:

Marc Laporte, developer of TikiWiki, and among other things, talked about PHP running under IIS. It’s in French, and if anyone would like to give me a hand translating, I would appreciate it greatly!

The Party

As nice as the photos of the suite above are, the place looks far better when it’s filled with guests:

08 full suite 1

09 full suite 2

10 full suite 3

11 full suite 4

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Career Demo Camp Montreal

career demo camp montreal

On Wednesday, a mere hour or so after the end of Day 1 of TechDays Montreal, came Career Demo Camp Montreal, a community event that combined presentations on job-hunting and career-building with demos of projects by Montreal-area developers.

What’s With All These “Demo” and “Camp” Events and Techdays?

techdays canada For this year’s edition of TechDays, we decided to try something new. TechDays is a two-day cross-Canada conference taking place in seven cities – Vancouver, Toronto, Halifax, Calgary, Montreal, Ottawa and Winnipeg – and all the conference events take place during the day. There are no events scheduled for after 5 p.m., which means that on the evening of Day 1, the venues are ours – and unused. Since they’re already set up for presentations and it costs relatively nothing to hire an A/V tech for a few extra hours, we decided to make our venues open to local developer community events. We even lent a hand in helping put the events together.

This year, we opened our space to four such community events:

The Career Portion

People started milling in at around 6:00 p.m.:

02 audience

The evening began with Alex Kovalenko, Director of Operations at the tech recruiting company Kovasys. His presentation was all about what smart job hunters do, how to write a good tech resume, and the elements of a successful tech interview.

01 alex kovalenko

Alex was joined by a couple of his coworkers at Kovasys for the Q&A session, which included the question “What kind of salary can a PHP developer command in Montreal and Toronto? If I recall correctly, their answer what that in Montreal, they’ve seen a range of CDN$55k for starters to CDN $90k for leads. Salaries are 15% higher in Toronto, but with that comes a commensurate increase in the cost of living.

03 kovasys

Next came my presentation, Better Living Through Blogging, in which I talked about how having a blog has improved my life in a number of way, not the least of which was to help land me the last four of my jobs.

04 yann and joey

Blogs, I argued, were probably the most effective way for you to have control of your online identity and therefore to put your best foot forward to potential employers and customers. Among that stats and opinions I cited in the presentation were:

  • 77% of recruiters surveyed by ExecuNet said that they use search engines to check out job candidates.
  • According to CareerBuilder.com, 1 in 4 hiring managers say that they use search engines to research potential employees.
  • SearchEngineWatch.com reports that there may have been up to 50 million proper-name searches in 2006.
  • Tim Bray, Director of Web Technologies at Sun: “If someone came looking for a senior-level job and had left no mark on the Internet, I’d see that as a big negative.”

goku and vegeta

That was followed by a quick presentation by my coworker at Microsoft, Open Source Strategy guy Arun Kirupananthan, who used Dragon Ball Z as a metaphor for Microsoft (as Vegeta) and Open Source (as Goku) and how they can work together and talked about the Make Web Not War conference, which will take place in Montreal in May 2010.

The Demo Portion

The first demo was by Brendan “DigiBomb” Sera-Shriar, who presented WPTouch.

05 brendan 01

“With a single click,” he said, “WPTouch transforms your WordPress blog into an iPhone application-style theme, complete with Ajax-based article loading and effects when viewed from an iPhone, iPod Touch, Android or Blackberry.”

06 brendan 02

Next up: Patrick Lafontaine, MySQL developer and DBA:

07 christian and patrick

His presentation was on how to back up your MySQL databases effectively and for free-as-in-beer.

(I have to give Christian Beauclair kudos for volunteering to be his mic stand. It’s not easy holding a mic in a single position for ten minutes!)

08 patrick

Then came Sylvain Carle of Praized:

09 sylvain 1

Sylvain talked about the Praized API, which lets you harness their “white label” local search platform fro finding people and services in your local community.

10 sylvain 2

After Sylvain came Marc Laporte demoing TikiWiki, a Full-featured open source multilingual all-in-one wiki with content management and groupware features, written in PHP. It’s our plan to make TikiWiki one of the apps included in Microsoft’s Web Platform Installer:

11 marc

Bruno of DokDok did the next demo. DokDok is a way to share, track and version files of any size, and it’s done using an interface that everyone understands: email.

12 bruno

Then came Marc-André Cournoyer and Gary Haran of Talker. I liked the Ruby pseudocode that they displayed on the big screen:

13 talker

Talker is a group chat application that is particularly good for collaborative work. I may have to give it a try soon.

14 marc-andre and gary 1

Testatoo – I think it’s a pun on “tests à tout”, or “tests for everything” – was the next presentation, which was given by David Avenante.

16 david

Here’s a closer look at Testatoo in action:

17 testatoo

The final demo was Pierre-Luc Beaudoin’s L’Agenda du Libre du Quebec:

18 pierre-luc

L’Agenda du Libre is an online calendar of Free Software events in Quebec and was implemented in Django in under 30 hours:

19 agenda du libre

The Aftermath

stewie griffin

This was the first DemoCamp-style event where the presentations were some presentations were done in English while others were done in French. I felt like a Family Guy character listening to Stewie Griffin during the French presentations: I got the general gist, but missed out on the subtleties. Guess I’m going to have to work on my French!

With the demos done, all that was left to do was to award an XBox 360 Arcade to the presentation that the audience liked most, based on their applause. Marc-Andre and Gary of Talker won, and in a very generous move, decided to donate it to the Salvation Army so that some kids who’d otherwise never get the chance would get a video game console this Christmas. Nicely done, gentlemen!

No DemoCamp-style event is complete without a trip to the pub afterwards, so about 35 of us moseyed down to the 3 Brasseurs on Avenue McGill College and St-Catherine, where Microsoft bought the first round of pitchers.

21 3 brasseurs 2

A few brave souls, Arun and I kept the party going at Benelux where we continued to chat and drink until 2 in the morning, after which I had to scurry back to the hotel in order to get some shut-eye for Day 2 of TechDays Montreal.

I’d like to thank the following people for Career Demo Camp Montreal a success:

  • All the presenters, for putting in the time and giving great presentations. It’s not possible without you!
  • Jean-Luc San Cartier and Yann Larrivee for helping us put it together on the Montreal community end.
  • Christian Beauclair for his invaluable assistance with the A/V setup.
  • Matthew the TelAV A/V guy for his work and for staying late.
  • TechDays head honcho Damir Bersinic for giving me the latitude to use TechDays’ space for community events.
  • Microsoft’s Open Source Strategy team of Nik Garkusha and Arun Kirupananthan for helping to put this thing together on the Microsoft end.

(By the way, if you’ve got an open source project and are wondering what Microsoft can do for you, you’d do well to get in touch with Nik and Arun, shown below!)

20 3 brasseurs 1

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!