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
  • semantic search for city events
    Dan Wood,
  • 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


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


  • 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.

Damian Conway’s Talk, “The Missing Link”: Monday July 27th in Toronto

Damian Conway

Although I’m not a terribly big fan of the Perl programming language, I am a big fan of one of its best-known contributors and advocates, Damian Conway. There’s nothing quite like a Damian Conway presentation, which is equal parts pop culture, deep science, software engineering and Monty Python’s Flying Circus. I make it a point to see him whenever he comes to Toronto, and that’s happening next Monday, July 27th to the Bahen Centre for Information Technology at University of Toronto to give another amusing, enlightening and most importantly, free talk. This one’s called The Missing Link, and here’s the abstract:

What do:

  • watching trees grow,
  • debugging debuggers,
  • Greek mythology,
  • code that writes code that writes code that writes code,
  • the hazards of LaTeX, successful failures,
  • the treacherous Vorta,
  • objective syntax,
  • anti-stacks,
  • Danish mind-control,
  • active null statements,
  • synthetic standup,
  • and the prospect of certain death

…all have in common?           

Watch as Damian Conway weaves them together into a new and improbably useful module that demonstrates the awesome power and beauty of Perl 5.10.

Even if you’ll never write a line of Perl in your life (which, IMHO, isn’t necessarily a bad thing), you’d do well to catch a Damian Conway presentation. His guided tours of his way-out-in-left-field thinking about life, the universe, programming and everything will turn your brain upside down, give you some good laughs, make you think about coding differently and might even make you a better developer.

Once again, the details:

  • When: Monday, July 27th at 7:00 p.m.
  • Where: Bahen Centre, University of Toronto (40 St. George Street), room 1160 (the major lecture theatre on the ground floor)
  • How much? Free!

Show up early to make sure you get a good seat. I’ll see you there!


Notes from Damian Conway’s Presentation

Damian Conway - July 16, 2008

Here are my notes on Damian Conway’s presentation, Temporally Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…Made Easy, which he gave on Wednesday, July 16th at the University of Toronto’s Bahen Centre. This presentation was a dry run for the presentation he made on Tuesday at the O’Reilly Open Source Conference (OSCON) 2008. The talk ran for about two hours, and the time allotted for it at OSCON 2008 was one hour. He incorporated parts of earlier talks into this one, so I suspect that he condensed those parts.

Damian was in fine form and it was good to catch another one of his funny, off-the-wall presentations; it was a good warm-up for RubyFringe.

- I'd just celebrated my 42nd birthday was doing some reflection
- I thought maybe now it was time to get serious [yeah, right]

- The original title for this presentation was going to be something
  like "The lies we tell ourselves"
- Consider the myths that we in the F/OSS world tell ourselves:
    - Consider ESR's line, "Given enought eyeballs, all bugs are shallow"
    - Speaking from experience, that's not true.
      What *is* true is: "Given eniugh eyeballs, all *bug reports*
      are shallow"
    - Then there's the line "Fast, cheap, good: pick any two."
    - What closer to reality? "Fast, cheap, good: pick at most one."
    - The biggest lie is probably "Information wants to be free"
    - You might as well be saying
        - "Beer wants to be drunk"
        - "Virginity wants to be lost"
        - or...

Slide from Damian Conway\'s presentation: \"An iPhone data plan wants to be vastly more expensive in Canada\"

        - An iPhone data plan wants to be vastly more expensive
          in Canada

- The bad angel on my shoulder has been telling me lies: "Damian, you're not
  just an amazing hacker, you're a deep thinker as well!"
- The truth is that I'm not good at analyzing reality -- I'm good at
  *manipulating reality via language*

- That's a popular lie we tell ourselves: that "Smart is distributive"
- In other words, we think that if we do well in one area, perhaps we
  can do well in others
- Genius is a *vector*, not a *field*
- Convincing ourselves that genius is distributive is a sign of aging

[ Damian launches into funny photo essay showing his hair greying
  after joining the world of Perl programming. He then shows Larry
  Wall over the same time period, noting that he looks pretty much
  the same. He hypothesizes that Larry doesn't age, and as proof,
  shows an amusing series of Photoshopped photos of Larry through
  the ages, ending with ancient Egypt. ]
- You can derive two bits of knowledge from all this:
    - Perl 5 isn't line noise, it's *hieroglyphics*!
    - As for when Perl 6 is coming out, keep in mind that
      Larry has all the time in  the world

\"Larry Wall does not age\" slide from Damian Conway\'s presentation

- Back in 2000, I decided to introduce superpositions (the ones from
  quantum physics) into Perl.
- There's the "any" function, which is not so rigid, which is why
  I call it the "Canadian superposition"
- There's the "all" function, which is quite rigid, which is why
  I call it the "American superposition" (which will come to liberate
  you with its troops!)
- Superposition functions are constant-time operations
- You can ue them now with "use Quantum::Superpositions"
- They're part of Perl 6
- Other junction functions:
    - none
    - one

[ He goes into a discussion about relativity, light cones, quantum
  physics and the whole "Brief History of Time" ball of wax,
  a condensed version of his "Time::Space::Continuum talk.
  I now look at gravitational lensing in a different way! ]

- I'm always chasing after new mental models of programming
- While doing that, I keep this motto in mind: Progressio defectum postulat
  ("Progress requires failure")

- There's something I call Rod Logic: that's computation via levers,
  gears and cams
- Doesn't "Rod Logic" sound like a 1950's science fiction hero
  written for boys?

\"Rod Logic book covers\" slide from Damian Conway\'s presentation

- Think of Babbage's engines
- Eric Drexler has shrunk rod logic: using carbon nanotubes as
  nano-sized levers, he's made mechanical logic gates
- Can't I use rod logic for Perl?
- I created a straight line language that could charitably be described
  as "Readability suboptimal"

[ He demonstrates a language that's made of nothing but straight-line
  characters -- _, -, [, ], <, >, \, |, /. It makes Perl look like
  a storybook for first grade readers in comparison. ]

[ Discussion of positrons -- electrons with positive charge -- and
  Feynman diagrams. One of the consequences of drawing the release
  of a positron on a Feynman diagram is that they are travelling
  leftwards on the "time" axis. They are going backwards in time!

  He then showed an application that takes the idea of particles
  travelling backwards in time and applied them to variables.
  The end result? Positronic variables! ]

- use Positronic::Variables
- They come into existence at end of block, and travel backwards
  in runtime
- With a positronic variable, you can declare a variable that
  holds values you'll need later, and they'll travel back in time
  where your program "catches up" with them later
- Makes the square root finding algorithm so much easier!
- The trick is that positronic variable programs get run through
  a preprocessor that repeatedly runs through the app
- This will works only on programs with convergent algorithms
- "I will eventually develop a positronic debugger,
  and I have been using it."

- And finally, if you look at everything I talked about this evening,
  you have the title of this talk explained: "Temporally Quaquaversal
  Virtual Nanomachine Programming in Multiple Topologically Connected
  Quantum-Relativistic Parallel Timespaces…Made Easy.


Q & A

- Earlier at lunch with Richard Dice, I told him: "There's no crowd like
  a Toronto crowd." You're wonderful, thank you!

- What's up with Perl 6?
    - For the past few years, there have been on average hundreds
      of doc changes committed
    - This year, there are fewer than 100
    - What does it mean? That we got it right
    - And yes, Larry's implementing
    - Which means that we are in a new phase in the development
      of Perl 6: the end phase"
    - This is going to be an awesome language
    - I've been working with early releases of Perl 6, and I've noticed
      how irritating it is to go back to Perl 5

- Now let me talk about Perl 5.10
    - There are many improvements that are largely about making life easier
      and programming less annoying.
    - Consider the say function -- simple, but not having to add a newline
        and the end of print strings makes a lot of difference
    - That's the whole point -- they looked at the really basic stuff
      that we do all the time and made it simpler
    - Another example, the "//" operator, called "defined or". It
      returns the left argument if it's defined, otherwise
      it returns the returns the right argument
    - At long last, Perl has a switch statement!

- Does any of this stuff lend itself to multicore?
    - Junctions and superpositions are a natural fit for multiprocessors
    - With languages that have junctions, it should at least be possible
      to automatically farm junction operations to parallel processors

- How hard was it to write your modules based on quantum physics?
    - Easier than you think
    - What helped what that I had the quantum physics metaphor to guide me
    - The trick is to understand the metaphor,
      and implement it consistently
    - Remember: quantum mechanics is one of the most rigorously
      tested systems we've ever conceived

- Are positronic variables another way of implementing
  constraint-based programming?
    - YES!
    - In fact, this is a good time to explain why I do all this
      odd stuff, taking concepts from quantum physics and then applying
      them to Perl
    - I use odd metaphors to think up new programming paradigms

Damian Conway Tonight!

Damian Conway - July 16, 2008

Damian Conway, Perl expert extraordinaire, Open Source luminary and long-time friend of the Toronto Perl Mongers, will deliver — free and to the public — one of his signature tour-de-force completely insane talks that is…

  • 1/3 high-end IT,
  • 1/3 showmanship,
  • and 1/3 peyote-fuelled hallucination.

Tonight will be the world premiere of a new talk, which goes under the title of Temporally Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…Made Easy.

As with the fanciful titles of his other talks, it’s hard to tell what it’ll actually be about, but having seen a couple of his presentations, I can guarantee that it will be a slightly-askew look at technology done in an engaging and hilarious fashion. Better still, you’ll be the first to see this presentation, which is a dress rehearsal for the O’Reilly Open Source Conference taking place later this month in Portland, Oregon.

Best of all, unlike the people at the Open Source Conference who’ll have to shell out something in the neighbourhood of $2000, admission to this event is absolutely free. (They will be taking up a collection for Damian in order to provide him some sort of honorarium for his doing the presentation, and some of the DemoCamp money is also going to Damian).

If you’d like to catch this event (I’ll be there), it’s tonight at the Bahen Centre for Information Technology, which is on 40 St. George Street (just north of College), right in the middle of the University of Toronto campus.

As I like to say for this sort of event: be there and be square!


This Week in Toronto Tech

Toronto Tech People
Just a small sample of the people that make Toronto’s tech community great.

This week is going to be a week unlike any other in the Toronto technology scene: a week of events created not by municipal groups, large techno-conglomerates or industry think tanks, but by small groups of passionate individuals who enjoys working with both people and technology.

These events don’t have the benefit of major sponsorship or media coverage, nor will they be lining their organizers’ wallets. They’re events put together by amateurs in the original sense of the word: people who do it not for profit, but for their love of their craft, in the hope that both the attendees and even the field itself will be advanced from insights, understanding and knowledge gained by gathering together and exchanging ideas.

It’ll be a busy week for me. I’ll not only be attending these events, but I’ll also be MCing two of them as well. I’ll be posting reports from these gatherings here — keep watching this blog!

DemoCamp 18: Tuesday July 15th, 5:30 p.m. – 9:30 p.m. at Supermarket

DemoCamp Toronto 18: Tuesday, July 15th @ Supermarket

DemoCamp 18 is the eighteenth gathering of the bright lights in Toronto’s software development community where we show each other our projects in action. DemoCamp has grown from a gathering of a couple dozen in late 2005 to a meetup of hundreds at locations like the MaRS Centre and the Toronto Board of Trade and was voted “Toronto’s Best Unconference” earlier this year by BlogTO. It’s given many local software people the chance to showcase their work, meet other people in their field, make connections, get jobs and even get venture capitalist funding (that’s what happened to b5media, for whom I work).

I’m one of DemoCamp’s stewards and will be co-MCing DemoCamp.

You can see the schedule of events for DemoCamp 18 at the site. This event’s tickets — a good number of which were free, the remainder going for five or ten dollars — got snapped up within hours of becoming available.

Damian Conway: Wednesday, July 16th, 6:30 p.m. – 9:30 p.m. at the Bahen Centre, U of T

Damian Conway - July 16, 2008

The Perl programming language has been given the nickname “the duct tape of the internet” because of its importance in the development of the early web. Damian Conway is its most eloquent spokesperson and a speaker who can turn the dryest of academic lectures into a brain-tickling comic monologue that delivers both laughs and technical insight.

On Wednesday, Toronto will play host to the world premiere of his new talk, titled Temporally Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces… Made Easy. The event will be held at the Bahen Centre at the University of Toronto and it will be free of charge. For more details, see its Upcoming page.

FAILCamp: Friday July 18th, 4:00 p.m. – 7:00 p.m. at The Rhino


I’ll let the FAILCamp creators, Amy Hoy and Thomas Fuchs do the talking:

“My reputation grows with every failure,” wrote George Bernard Shaw in a letter to fellow author Frank Harris. A healthy attitude towards the natural state of humanity, if you ask us.

We all know failure: public, private, large, small, free or costly, embarrassing or funny or poignant (or all of the above). We have all experienced what our friend Patrick has called “the beautiful rainbow of Fail.” And we tend to stuff it in the closet, keep it under wraps, don’t-ask-don’t-tell or any other number of hidey clichés that poor, beautiful rainbows should not be subject to. We believe that it’s time to give our personal fail some tough love and talk it out over beer!

Join us for a brief, rousing introduction followed by comraderie, beer, and Show and Tell. We’ll present a little about failure through the ages, mining your personal suck, maybe some science, pithy quotes from people you may or may not respect, and share some failure stories of our own.

Then it’ll be your turn. If all goes to plan, you may even win in our friendly “race to the bottom” for the most public, most expensive, or most ridiculous Story of Fail.

Also, did we mention beer?

For more details, see FAILCamp’s event page on Facebook.

RubyFringe: Friday July 18th – Sunday July 20th at the Metropolitan Toronto Hotel


Finally, the upcoming weekend belongs to RubyFringe, the “deep nerd tech with punk rock spirit conference”.

“RubyFringe,” says its site, “RubyFringe is an avant-garde conference for developers that are excited about emerging Ruby projects and technologies. We’re mounting a unique and eccentric gathering of the people and projects that are driving things forward in our community.”

I’ll be MCing the opening night’s events at the Amsterdam Brewery. Alas, tickets are sold out!