Skip to content

Instantly share code, notes, and snippets.

Last active Aug 29, 2015
What would you like to do?
My roadmap for NodeSchool workshops

Bootstrapping workshops and translations

  • Wiki pages / docs / pages on the NodeSchool website that provide a complete, walkthrough guide to contributing translations to a workshop.
  • Same kind of guide to creating a new workshop
  • Single repo with:
    • Boilerplates for both workshopper- and adventure-based workshops
    • A generator of some sort (Yeoman-based? Something else?) to spawn a fresh, customized workshop off either of them (would ask the name, base framework, module deps, early list of exercises, etc.).


New shiny things for existing workshops, new workshops.


A new workshop about anything related to strict mode, linters, code style checkers and general build checks! @tdd should start work on this before Q1 15 is out.

Stream Adventure 2?

Something stream2- / stream3-based? It's too bad most of the workshops still rely on stream1, when we're trying to actively deprecate that with 0.12 and io.js out now…

Workshop fixes

There are a number of confirmed bugs in the workshops that need to be addressed.

Stream Adventure

  • The verifier for HTTP Server incorrectly binds both clients to the solution server; that fucks up only sometimes, too!
  • The verifier for WebSockets is completely broken, usually not keeping the test server up for any length of time, but showing up as pass!

How To npm

So many bugs we need to do full triage first and create/dedup the issues. Fresh paint still, recently released. Massive fail at NodeSchool Paris 1 (Feb 21, 2015), hardly anything worked regardless of platform and experience.

Other workshops

A comprehensive rundown of their opened issues for triage, then for fixes, needs to be done.

(relevant NodeSchool Organizers issue:


Three classes of work:

  • Upgrading workshops to the latest versions of workshopper, workshopper-exercise and (if need be) workshopper-boilerplate, and refactoring the entire codebase structure and exercise code to match the latest workshopper APIs.
  • Backporting the i18n layer and L10n base contents from the workshopper universe to adventure, which is the alternative, API-based substrate for workshoppers.
  • Translating the workshops once their codebase allows it


There are workshopper-based workshops still to be updated:

  • Learn uv
  • Going native
  • Level Me Up, Scotty!
  • Learn You The CouchDB
  • NodeBot Workshop
  • Intro to WebGL

Then there are adventure-based workshops, that need full g11n in adventure before they can be updated:

  • JavaScripting
  • How to npm
  • Bug Clinic
  • Browserify Adventure
  • Test Anything

And there are workshops based on diverging forks or completely distinct systems:

  • Git It (using a fork by @jlord, needs reconcilation with main line)
  • Shader School
  • WebGL Workshop

Finally, there's the original workshop, that doesn't use anything outside of itself, but would need to be refactored entirely, probably based on an upgraded adventure, before it can be translated:

  • Stream Adventure

Almost done

  • Promise It Won't Hurt (pending version bump)
  • Stream Adventure fork (stream-adventure-fr), until there's a refactored, g11n-capable upstream.


  • workshopper 2.3.1 (tweaks/fixes + g11n + multiple L10n's)
  • workshopper-exercise 2.3.0 (same)
  • workshopper-boilerplate 1.1.0 (g11n; doesn't need L10n)
  • Planet Proto (0.6.0)
  • Learn You A Node For Much Win! (2.5.0)
  • Express Works (2.0.4)
  • Async You (1.0.0)
  • Lololodash (0.5.0)
  • Learn Generators (1.3.0)
  • Count To 6 (0.7.0)
  • Make Me Hapi (1.1.0)
  • Kick Off Koa (2.0.0)
  • Functional JavaScript (1.0.0)
  • Bytewiser (2.1.0)

Infrastructure upgrades

Improvements to the infrastructure modules

workshopper ecosystem

  • Better handling of boilerplate file injection, to avoid multiple identical copies (work underway)
  • Simpler default-case exercise boilerplate, probably through require('workshopper-exercise/basic') (work underway)
  • Full test coverage
  • Waaaay better Markdown rendering, which is currently handled by a clusterfuck of modules wrapped up in msee. The main issues are:
    • Lack of formatting inside list items
    • No proper rendering for ordered lists
    • No syntax highlighting for anything but JS, and ES5 at that (no ES6 highlighting, which sucks for the few ES6-specific workshops)
  • More advanced solution translations, avoiding 99%-copies just because one comment in the solution file needs L10n
  • Fix for text alignment in terminal-menu (a nested bug in visual-width, apparently), so any chars work alright and "done" markers are properly aligned.
  • Simple way for verifiers to express constraints on exported single functions (and generally module exports), instead of basic stdout comparison. Lololodash uses a JSDiff-based solution that forces them to skip most of our verifier infrastructure to achieve their desired result (which makes a lot of sense in their context). We need to offer that too.
  • Option for wrapping Markdown rendering at a specific width, which dissociates par width from terminal width (admittedly very low-priority)

adventure ecosystem

  • Backport the i18n stack from workshopper, so translators need not learn entirely different ways when contributing to workshops based on either one.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment