•  

Polyglot 2012 schedule

Friday 25th May 2012

  • Pre-Conference Tutorials

    There are a variety of paid, pre-conference tutorials taking place on the Friday before the conference.

    Full details at http://www.polyglotconf.com/tuto..., and all registration can be done through the main Eventbrite page at https://polyglotconf2012.eventbr...

    See the specific tutorial for venue information - either at SFU or UBC Robson Square.

    At 8:30am to 6:00pm, Friday 25th May

  • Advanced JavaScript

    by Allen Pike

    JavaScript is one of the most exciting programming languages right now, and it’s easy to get started with jQuery, Node, and other interesting JavaScript tools. Before long, however, developers usually find the more unusual aspects of the language to be a challenge. Something as fundamental as understanding what “this” points to in JavaScript can be confusing.

    In this tutorial we’ll explore functions, scope, inheritance, instantiation, closures, the Chrome developer tools, automatic semicolon insertion, and other advanced topics that make JavaScript a unique language. After completing this tutorial, you should be prepared to graduate from mixing JavaScript into web pages to writing full-fledged applications with the language.

    Prerequisites

    • Comfort writing basic JavaScript and ideally one other programming language
    • A laptop with Chrome and a text editor

    Bio

    Allen Pike is the co-founder of Steam Clock Software. He has written apps in JavaScript for many years, including two years at Apple and projects for HP and Time. He is the curator of VanJS, one of the largest JavaScript meetups in the world, and has presented on JavaScript at conferences such as JSConf and Wordcamp: Developers. He has taught JavaScript and web technologies at Simon Fraser University.

    Buy tickets on Eventbrite: http://polyglotconf2012.eventbri...

    At 9:00am to 12:30pm, Friday 25th May

    In UBC Robson Square

  • Git Foundations Workshop by Github

    by Matthew J McCullough and Adam Dymitruk

    Register for this tutorial via Eventbrite: https://polyglotconf2012.eventbr...

    Distributed version control is all the rage these days, but is it worth it? It
    has been transformative for the dozens of organizations and thousands of
    developers that I've mentored on the unique implementation called Git. But don't
    take my word for it. Discover the joy of a version control system that works for
    you, not against you, in a hands-on workshop.

    Bring a Windows, Mac, or Linux laptop and we'll install, set up, use and bend
    Git into workflows that weren't even possible with the version control systems
    of yesteryear. Be prepared to rethink how lightweight, fast, and refreshing
    source code control can be. After completing this workshop you'll be able to do
    practical work with Git for your day job or weekend OSS hobby.

    Highlights of this workshop include:

    * Creating local repositories.
    * Seeing Git as a content tracker (not just file tracker ).
    * Understanding Git network operations, including cloning, remotes, pushing &
    pulling.
    * Branching for experiments, stories, and features.
    * Merging branches, tags, and arbitrary hashes with recursive and fast-forward
    outcomes.
    * Rebasing for code change clarity, unification, and history linearity.

    ### Bio

    Matthew McCullough is an energetic 15 year veteran of enterprise software
    development, world-traveling open source educator, and co-founder of Ambient
    Ideas, LLC, a US consultancy. Matthew is the trainer for all things Git at
    GitHub.com, author of the Git Master Class series for O'Reilly, speaker on
    the No Fluff Just Stuff tour, author of three of the top 10 DZone RefCards,
    including the Git RefCard, and President of the Denver Open Source Users
    Group.

    Register for this tutorial via Eventbrite: https://polyglotconf2012.eventbr...

    At 9:00am to 4:00pm, Friday 25th May

    In UBC Robson Square

  • Intro to Erlang by Spawngrid

    by Yurii Rashkovskii

    Register for this tutorial via Eventbrite: https://polyglotconf2012.eventbr...

    New is well forgotten old. You may have noticed that in these days of a higher demand for concurrent, fault-tolerant applications, people talk more and more about Erlang. Some try to copy its most prominent features to other languages. Erlang has been around for about 20 years now and is a solid piece of a battlefield-proven technology.

    What's all this buzz about? Learn it first hand.

    This hands on tutorial will give you an introduction to the Erlang programming language. You will learn the basics of how to read, write and structure Erlang programs. We start with an insight into the theory and concepts behind sequential and concurrent Erlang, allowing you to get acquainted with the Erlang syntax and semantics. We conclude with an overview of the error handling mechanisms used to build fault tolerant systems with five nines availability.

    In order to get the most out of this tutorial, you must have a good grasp of other programming languages. This will be a hands on tutorial. Make sure you come with your laptop having installed Erlang (https://github.com/spawngrid/kerl) and your favourite editor.

    Attendees will also get a discount for a three day Erlang Express course that will follow shortly after.

    Bio

    Yurii Rashkovskii is a software enthusiast with over 10 years professional experience holding a true passion for how software is created, throughout the whole lifecycle from designing, implementing to testing, deployment and maintenance. Yurii has been using Erlang on and off since 2001 for commercial and open source projects, always returning to it from his endeavours with other platforms. Among other things, his open source Erlang work includes erlzmq2, beam.js, htoad, seqbind & exportie, proper_stdlib, evfs, socket.io-erlang, agner, epitest and EEP 39 implementation.

    He is a public speaker at international Erlang conferences (Erlang Factory & EUC), co-organizer of the Vancouver Erlang Meetup, and co-founder of Spawngrid.

    Register for this tutorial via Eventbrite: https://polyglotconf2012.eventbr...

    At 9:00am to 5:00pm, Friday 25th May

    In SFU Harbour Centre

  • De-mystify the web: Build a dynamic HTTP server from scratch

    by Brian Dorsey

    We will cover just enough networking and HTTP to build a simple working server. You will finish this tutorial with a 100 line HTTP server and completely understand it. We’ll be working in Python, but this content transcends language and is useful in nearly every language and OS. This will be a hands-on tutorial with three labs.

    Modern web frameworks hide most of the messy details of web programming and present a powerful abstration for us to work with. Unfortunately, they often hide the simplicity of HTTP itself. If you’re new to web programming, or have only used frameworks, it is hard to see exactly what an HTTP header is, or how an HTTP verb is specified on the wire. In this tutorial, we’re going to start at the bottom, and work our way up to the HTTP fundamentals common to all web frameworks. As complex as web programming can be, we’ll see that HTTP is clear and simple.

    We will look at basic TCP/IP, the socket abstraction, request/response protocols, HTTP verbs, and HTTP headers. Each of these is a topic worthy of in depth study itself… but we’re going to skim them all, taking just what we need to build a working HTTP server.

    Prerequisites:
    Comfortability with some programming language: variables, string manipulation, for loops and function calls.
    You will need a laptop with Python 2.x installed. (2.7 recommended).
    It will be convenient to have either GIT or SVN installed.

    Register via the Eventbrite page: https://polyglotconf2012.eventbr...

    At 1:00pm to 5:00pm, Friday 25th May

    In UBC Robson Square

Saturday 26th May 2012

  • Registration

    by Evelyn Kislig, Boris Mann and Tea Nicola

    At 8:30am to 9:00am, Saturday 26th May

  • Opening

    by Chris Nicola and Stefan Moser

    Opening introductions and openspace / unconference review.

    At 9:00am to 9:15am, Saturday 26th May

    In Colligo Theater, SFU Harbour Centre

  • Topic Selection

    by Chris Nicola, Boris Mann and Stefan Moser

    • Review of selected topics from the website
    • Open up to proposal of additional topics from attendees
    • Voting
    • Organize tracks (I'd suggest the organizers do this initially, facilitators can tweak it collectively later as needed). The most popular should probably go in the largest rooms.
    • Organize the smaller sessions on the "break-out" board to be held in small groups in one of the two open areas.

    Session Schedule: Each is 40 minutes of time, with 20 minutes "break-out" time.

    At 9:15am to 9:45am, Saturday 26th May

    In Colligo Theater, SFU Harbour Centre

  • DevOps

    by John Boxall

    - Teams not individuals are responsible for keeping services running. This forces teams to be accountable for the full stack.

    - Virtuous cycle of DevOps: http://www.hightechinthehub.com/...

    At 10:00am to 10:40am, Saturday 26th May

    In McCarthy Tetrault Lecture Room, SFU Harbour Centre

  • Fast, beautiful maps

    by Tylor Sherman

    At 10:00am to 10:40am, Saturday 26th May

    In Labatt Hall, SFU Harbour Centre

    Coverage write-up

  • Go: A Language for Building Servers

    by grahamking

    At 10:00am to 10:40am, Saturday 26th May

    In Earl and Jennie Lohn Policy Room, SFU Harbour Centre

  • Javascript GUI Framework: Stop the Insanity!

    by Allen Pike and Chris Nicola

    There is a plethora of javascript frameworks today. Why are there so many, what's good and bad and "how's that working for ya?"

    Frameworks Discussed:
    - Backbone
    - Spine
    - Ember
    - Meteor
    - Derby
    - Knockout
    - Batman
    - Knockback
    - ExtJS
    - YUI
    - Google Web Toolkit
    - Sproutcore
    - Sencha
    - Mulberry
    - More...? (add them)

    Conclusions:

    People are generally unhappy with their framework of choice, but unsure what they would use if they were starting a new project now. Most used framework was easily Backbone, the most popular for something new seemed to be Knockout and Ember.

    At 10:00am to 10:40am, Saturday 26th May

    In Colligo Theater, SFU Harbour Centre

  • JavaScript GUI Frameworks

    Too many frameworks!

    At 10:00am to 10:40am, Saturday 26th May

    In Colligo Theater, SFU Harbour Centre

  • From consulting services work to product building

    by Boris Mann

    A group discussion on some of the ins and outs of individual freelancer / small development agency. How do you move from consulting service to building a product?

    At 11:00am to 11:40am, Saturday 26th May

    In Labatt Hall, SFU Harbour Centre

  • Intro to CoffeeScript

    by Greg Bell

    At 11:00am to 11:40am, Saturday 26th May

  • Modern Concurrency

    This is the S2 session in the Colligo Theater. Please edit it to fill out the actual session that gets organized into this slot.

    At 11:00am to 11:40am, Saturday 26th May

    In Colligo Theater, SFU Harbour Centre

  • S2: Attracting developers

    At 11:00am to 11:40am, Saturday 26th May

    In McCarthy Tetrault Lecture Room, SFU Harbour Centre

  • Lunch Break

    Leave the building and grab lunch somewhere in downtown Vancouver. Check out the blog post for some of the suggestions we've made already (http://bit.ly/KlcJ8c) or add links here to great local eats.

    At 11:40am to 1:00pm, Saturday 26th May

  • S3: Colligo Theater

    This is the S3 session in the Colligo Theater. Please edit it to fill out the actual session that gets organized into this slot.

    At 1:00pm to 1:40pm, Saturday 26th May

    In Colligo Theater, SFU Harbour Centre

  • S3: Labatt Theater

    At 1:00pm to 1:40pm, Saturday 26th May

  • S3: Terasen Cinema

    At 1:00pm to 1:40pm, Saturday 26th May

  • Advanced JavaScript

    by Allen Pike

    At 2:00pm to 2:40pm, Saturday 26th May

    In Labatt Hall, SFU Harbour Centre

  • Effective testing practices

    by Richard Beier

    Here's a summary of what we discussed. Feel free to edit this and update it with more details:

    1. Almost everyone is doing automated unit testing. Maybe a third of the group is doing acceptance testing; and about a third (mostly the same people) are doing GUI automation. A couple people are doing acceptance testing mostly below the GUI, rather than through the GUI.

    2. People suggested the following topics - sorry we didn't get to discuss these:
    - Where to draw the line between integration testing and unit testing
    - Can we get rid of the QA role?
    - GUI automation technologies, e.g. Selenium WebDriver

    3. Acceptance testing in a business-readable language (e.g. Cucumber, SpecFlow) vs. using a full programming language.
    - Some people have had success using context/specification-style testing (e.g. RSpec, MSpec) in a full programming language, and automatically extracting English text from the method names. Then non-technical stakeholders can read the extracted text. So a separate language for testing may not be necessary.
    - Other people have had success using Cucumber, SpecFlow, and similar tools. Most people using these tools have developers or testers writing the specs, and businesspeople reading them. One person talked about working successfully on a team where businesspeople also write specs.

    4. GUI automation vs. testing below the GUI. The test automation pyramid: http://blog.jonasbandi.net/2011/...

    5. Code coverage. High coverage does not indicate quality; you can have high coverage by executing a lot of code without actually doing any assertions. Most coverage tools measure statement-level coverage, which is limited. Path coverage is better, but many environments and platforms don't have path coverage tools.

    6. Maintainability as a key benefit of unit testing. One person mentioned throwing away unit tests after writing them - you would still get the maintainability benefits from splitting up your code and making it easier to test.

    7. Big-picture philosophy of testing. Why are we testing? Quality as a key goal of testing (at any level - unit, integration, acceptance). If you throw away tests, those tests are no longer available to catch regressions. So quality will probably be lower.

    8. Is anyone just not bothering with automated testing, or doing very little of it? A couple people mentioned successes with this approach - e.g. deploying to a small subset of users, monitoring for errors caused by the deployment, and rolling back the deployment if there is a problem. There were strong objections to this idea. But one person said users who saw bugs and then saw them fixed were happier than those who never saw bugs at all.

    At 2:00pm to 2:40pm, Saturday 26th May

    In McCarthy Tetrault Lecture Room, SFU Harbour Centre

  • S4: Terasen Cinema

    At 2:00pm to 2:40pm, Saturday 26th May

  • S4: Colligo Theater

    This is the S4 session in the Colligo Theater. Please edit it to fill out the actual session that gets organized into this slot.

    At 2:00pm to 2:40pm, Saturday 26th May

    In Colligo Theater, SFU Harbour Centre

  • Let's Write Cool Ruby / Intro to Ruby / Ruby Tips Sharing

    At 3:00pm to 3:40pm, Saturday 26th May

    In Labatt Hall, SFU Harbour Centre

    Coverage note

  • S5: Colligo Theater

    This is the S5 session in the Colligo Theater. Please edit it to fill out the actual session that gets organized into this slot.

    At 3:00pm to 3:40pm, Saturday 26th May

    In Colligo Theater, SFU Harbour Centre

  • S5: Terasen Cinema

    At 3:00pm to 3:40pm, Saturday 26th May

  • Hi-fidelity prototype without (much) CSS and HTML

    by Tea Nicola

    We got together to define a toolbox or the best process to satisfy prototyping requirements without getting vested into too much code. We discussed two possible ways:

    Keynote as a prototyping tool
    Photoshop with JS hotspots

    It turns out that functionality of a look/feel prototype is not nearly as often a deal breaker as is the wrong color scheme or the wrong design of a logo.

    It was concluded that an 'interior design' approach should be taken and that the prototypes should take color/style tiles to the client to actually visually tell them that things are easily changeable.

    A woman named Samantha Warren has started a website styletil.es and she illustrates how the above can be done.

    At 4:00pm to 4:30pm, Saturday 26th May

    In Teck Gallery Lounge, SFU Harbour Centre

  • Intro to node.js

    by Matthew Smillie and Brock Whitten

    Quick/dirty introduction to node.js

    I've got links and expanded notes from the session here:
    https://gist.github.com/gists/28...

    It's a gist, so comments and questions are welcome.

    At 4:00pm to 4:30pm, Saturday 26th May

    In McCarthy Tetrault Lecture Room, SFU Harbour Centre

    Coverage note