forked from nodeschool/nodeschool.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
436 lines (417 loc) · 26 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
<!DOCTYPE html>
<html class="index">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="/mapbox.css">
<link rel="stylesheet" href="/style.css">
<link rel="shortcut icon" href="/favicon.ico">
<link href="http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700|Source+Code+Pro" rel="stylesheet" type="text/css">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NodeSchool</title>
</head>
<body>
<script type="text/javascript">
(function (doc, nav, ls) {
if (!ls || ls.getItem('firstRedirect')) return
ls.setItem('firstRedirect', true)
function getLinks() {
var nodes = doc.querySelectorAll('link[rel=alternate][hreflang]')
, langLinks = {}
for (var i=0; i < nodes.length; i++) {
var attrs = nodes[i].attributes
langLinks[attrs.hreflang.nodeValue] = attrs.href.nodeValue
}
return langLinks
}
var lang = (
ls.getItem('lang')
|| (nav.languages && nav.languages[0])
|| nav.userLanguage
|| nav.language
|| 'en-US'
).toLowerCase()
, docLang = doc.querySelector("html").attributes.lang.nodeValue
, langLinks = getLinks()
var langLink = langLinks[lang] || langLinks[lang.substr(0,2)] || langLinks['en']
if (langLink)
doc.location.href = langLink
})(document, navigator, localStorage)
</script>
<header>
<div class="container">
<div class="full">
<img src="/images/schoolhouse.svg" alt="nodeschool logo">
<h1 class="name">nodeschool</h1>
<p class="subtitle" data-i18n="index-header-top">Open source workshops that teach web software skills. Do them on your own or at a workshop nearby.</p>
<nav role="navigation">
<ul class="nav">
<li><a href="#workshoppers" data-i18n="menu-tutorials">Tutorials</a></li>
<li><a href="events.html" data-i18n="menu-events">Events</a></li>
<li><a href="chapters.html" data-i18n="menu-chapters">Chapters</a></li>
<li><a href="about.html" data-i18n="menu-about">About</a></li>
<li><a href="building-workshops.html" data-i18n="menu-building-workshops">Build</a></li>
<li><a href="host.html" data-i18n="menu-host">Host</a></li>
</ul>
</nav>
<p><span data-i18n="index-header-bottom">Get started by installing one of our</span> <a class="big-link" href="#workshopper-list">core workshops</a> <span data-i18n="index-header-bottomA">or subscribe to our free </span><a data-i18n="index-header-bottomB" class="big-link" href="https://tinyletter.com/nodeschool" target="_blank">email newsletter</a>.</p>
</div>
</div>
</header>
<div id="main" name="main" role="main">
<section>
<div class="container workshop-header" style="background-color: #fff;">
<div class="full">
<h2 class="big-heading" data-i18n="index-workshop-header">Workshops</h2>
<p data-i18n="index-workshop-info">These are in-person hosted workshops, usually free, in which workshoppers are used as curriculum and mentors help attendees work through the challenges.</p>
<nav>
<ul class="inner-nav">
<li><a href="host.html" data-i18n="index-workshop-links-host">Host Your Own</a></li>
<li><a href="events.html" data-i18n="index-workshop-links-events">See All Events</a></li>
<li><a href="host.html#writeups" data-i18n="index-workshop-links-writeups">Writeups of Past Events</a></li>
</ul>
</nav>
</div>
</div>
<div class="container workshops" style="background-color: #fff;">
<div class="third" aria-hidden="true">
<div id="map"></div>
</div>
<div class="third upcoming-workshoppers">
<h4 data-i18n="index-upcoming-header">Upcoming Workshops</h4>
<div id="upcoming-workshops">
<div class="loading" data-i18n="index-upcoming-loading">
Loading...
</div>
<div class="empty">
<span data-i18n="index-upcoming-no-events">No upcoming events. Check out</span> <a href="events.html" data-i18n="index-upcoming-past-events">past events</a><span data-i18n="index-upcoming-past-events2">!</span>
</div>
<div class="success">
<ul></ul>
<p><a href="events.html" class="all-events" data-i18n="index-upcoming-all-events">See all events</a>.</p>
</div>
<div class="error" data-i18n="index-upcoming-error">
Could not load events, sorry!
</div>
</div>
</div>
<div class="third anyone-can-host">
<h4 data-i18n="index-host-header">Anyone can host</h4>
<p id="event-count"><span data-i18n="index-host-past">There have been a total of</span> <strong class="cnt">?</strong> <span data-i18n="index-host-past2">events!</span></p>
<p><span data-i18n="index-host-want-to-host">NodeSchool is decentralized, open source and volunteer run. Want to host an event?</span> <a href="host.html" data-i18n="index-host-want-to-host2">Resources and tips</a> <span data-i18n="index-host-want-to-host3">for how.</span></p>
</div>
</div>
</section>
<section>
<div id="workshoppers">
<div class="container">
<div class="full">
<h2 class="big-heading" data-i18n="index-workshopper-header">Workshoppers</h2>
<p data-i18n="index-workshopper-info">Workshopper is the name used for the open source lesson modules associated with NodeSchool. All are self guided (you don't need to attend a workshop to do one) and most work offline.</p>
<nav>
<ul class="inner-nav">
<li><a href="#workshopper-list" data-i18n="index-workshopper-list-view">View Workshopper List</a></li>
<li><a href="https://github.com/nodeschool/discussions/issues/new" data-i18n="index-workshopper-list-problem">Ask Questions if Stuck</a></li>
<li><a href="https://github.com/nodeschool/discussions" data-i18n="index-workshopper-list-faq">Answer Questions</a></li>
<li><a href="building-workshops.html" data-i18n="index-workshopper-list-host">Build a Workshop</a></li>
</ul>
</nav>
</div>
</div>
<div class="container">
<div class="third">
<div class="term">
<div class="chrome">
<span class="btn btn-term close"></span>
<span class="btn btn-term min"></span>
<span class="btn btn-term max"></span>
</div>
<div class="shell">
<code>npm install -g learnyounode</code>
<code>learnyounode</code>
</div>
</div>
</div>
<div class="third">
<div class="term">
<div class="chrome">
<span class="btn btn-term close"></span>
<span class="btn btn-term min"></span>
<span class="btn btn-term max"></span>
</div>
<div class="shell">
<div class="workshopper">
<code>» HELLO WORLD</code>
<code>» BABY STEPS</code>
<code>» MY FIRST I/O!</code>
</div>
</div>
</div>
</div>
<div class="third">
<div id="get-going">
<h3 data-i18n="index-get-going-header">Get Going —</h3>
<p><span data-i18n="index-get-going-info">You’ll need</span> <a href="http://nodejs.org">Node.js</a> <span data-i18n="index-get-going-info2">on your computer to get started
with each of these. Then use</span> <a href="http://npmjs.org">npm</a> <span data-i18n="index-get-going-info3">(it comes with Node) to install each
module with the command below it. Once installed,
simply type the workshopper’s name to launch.</span></p>
<p><span data-i18n="index-get-going-editor">You will also need a</span> <strong data-i18n="index-get-going-editor2">Text Editor</strong><span data-i18n="index-get-going-editor3">, if you don't have one already, you may want one for editing code. A few options:</span> <a href="http://www.atom.io">Atom</a><span data-i18n="index-get-going-editor4">,</span> <a href="http://www.sublimetext.com/3">Sublime Text</a><span data-i18n="index-get-going-editor5">,</span> <a href="http://macromates.com/download">Textmate</a><span data-i18n="index-get-going-editor6">,</span> <a href="http://brackets.io/">Brackets</a><span data-i18n="index-get-going-editor7">.</span></p>
</div>
</div>
</div>
</section>
<div class="window-pane"><span class="caption">NodeConf, 2014</span></div>
<div id="workshopper-list" class="container core-workshoppers" style="background-color: #fff;">
<div class="third">
<h3 data-i18n="index-workshoppers-core-header">Core</h3>
<p data-i18n="index-workshoppers-core-info">These workshoppers focus on essential skills for working with Node.js.</p>
<p><span data-i18n="index-workshoppers-core-link-pre">Stuck? Ask a question in the</span> <a href="https://github.com/nodeschool/discussions/issues/new" target="_blank" data-i18n="index-workshoppers-core-link-text">discussion</a><span data-i18n="index-workshoppers-core-link-post">.</span></p>
</div>
<div class="third">
<div id="javascripting" class="workshopper">
<h4><a class="js-workshop-link" href="https://www.github.com/sethvincent/javascripting" target="_blank">javascripting</a></h4>
<p data-i18n="workshopper-javascripting">Learn the basics of JavaScript. No previous programming experience required.</p>
<code>npm install -g javascripting</code>
</div>
<div id="gitit" class="workshopper">
<h4><a class="js-workshop-link" href="https://www.github.com/jlord/git-it" target="_blank">git-it</a></h4>
<p data-i18n="workshopper-gitit">Learn Git and GitHub basics.</p>
<code>npm install -g git-it</code>
</div>
<div id="scope-chains-closures" class="workshopper">
<h4><a href="https://www.github.com/jesstelford/scope-chains-closures" target="_blank">Scope Chains & Closures</a></h4>
<p data-i18n="workshopper-scope-chains-closures">Learn the details of Scope, Scope Chains, Closures, and Garbage Collection.</p>
<code>npm install -g scope-chains-closures</code>
</div>
</div>
<div class="third">
<div id="learnyounode" class="workshopper">
<h4><a class="js-workshop-link" href="https://www.github.com/workshopper/learnyounode" target="_blank">learnyounode</a></h4>
<p data-i18n="workshopper-learnyounode">Learn the basics of node: asynchronous i/o, http.</p>
<code data-i18n="workshopper-learnyounode-command">npm install -g learnyounode</code>
</div>
<div id="how-to-npm" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/npm/how-to-npm" target="_blank">How to npm</a></h4>
<p data-i18n="workshopper-how-to-npm">Learn how to use and create npm modules.</p>
<code>npm install -g how-to-npm</code>
</div>
<div id="streamadventure" class="workshopper">
<h4><a class="js-workshop-link" href="https://www.github.com/substack/stream-adventure" target="_blank">stream-adventure</a></h4>
<p><span data-i18n="workshopper-streamadventure">Learn to compose streaming interfaces with </span><code>.pipe()</code><span data-i18n="workshopper-streamadventure2">.</span></p>
<code>npm install -g stream-adventure</code>
</div>
</div>
</div>
<div class="container elective-workshoppers" style="background-color: #fff;">
<div class="third">
<h3 data-i18n="index-workshoppers-elective-header">Electives</h3>
<p data-i18n="index-workshoppers-elective-info">Workshoppers on popular libraries or styles of writing Node.js.</p>
<p><span data-i18n="index-workshoppers-elective-link-pre">Stuck? Ask a question in the </span> <a href="https://github.com/nodeschool/discussions/issues/new" target="_blank" data-i18n="index-workshoppers-elective-link-text">discussion</a><span data-i18n="index-workshoppers-elective-link-post">.</span></p>
</div>
<div class="third">
<div id="functionaljavascript" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/timoxley/functional-javascript-workshop" target="_blank">Functional Javascript</a></h4>
<p data-i18n="workshopper-functionaljavascript">Learn fundamental functional programming features of JavaScript in vanilla ES5.</p>
<code>npm install -g functional-javascript-workshop</code>
</div>
<div id="levelmeup" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/workshopper/levelmeup" target="_blank">Level Me Up Scotty!</a></h4>
<p data-i18n="workshopper-levelmeup">Learn to use leveldb, a simple key/value store with a vibrant package.</p>
<code>npm install -g levelmeup</code>
</div>
<div id="expressworks" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/azat-co/expressworks" target="_blank">ExpressWorks</a></h4>
<p data-i18n="workshopper-expressworks">Learn the basics of the Express.js framework.</p>
<code>npm install -g expressworks</code>
</div>
<div id="makemehapi" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/hapijs/makemehapi" target="_blank">Make Me Hapi</a></h4>
<p data-i18n="workshopper-makemehapi">Learn all about hapi through a series of challenges.</p>
<code>npm install -g makemehapi</code>
</div>
<div id="promise-it-wont-hurt" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/stevekane/promise-it-wont-hurt" target="_blank">Promise It Won't Hurt</a></h4>
<p data-i18n="workshopper-promise-it-wont-hurt">Learn to use promises in JavaScript to handle async operations.</p>
<code>npm install -g promise-it-wont-hurt</code>
</div>
<div id="async-you" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/bulkan/async-you" target="_blank">Async You</a></h4>
<p data-i18n="workshopper-async-you">Learn to use the async package.</p>
<code>npm install -g async-you</code>
</div>
<div id="nodebot-workshop" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/tableflip/nodebot-workshop" target="_blank">NodeBot Workshop</a></h4>
<p data-i18n="workshopper-nodebot-workshop">Make robots with the johnny-five api.</p>
<code>npm install -g nodebot-workshop</code>
</div>
<div id="goingnative" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/workshopper/goingnative" target="_blank">Going Native</a></h4>
<p data-i18n="workshopper-goingnative">An exploration of Node.js from the underside: native C++ add-ons.</p>
<code>npm install -g goingnative</code>
</div>
<div id="planetproto" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/sporto/planetproto" target="_blank">Planet Proto</a></h4>
<p data-i18n="workshopper-planetproto">Understanding JavaScript Prototypes</p>
<code>npm install -g planetproto</code>
</div>
<div id="webgl-workshop" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/stackgl/webgl-workshop" target="_blank">WebGL Workshop</a></h4>
<p data-i18n="workshopper-webgl-workshop">Learn the basics of WebGL in small, manageable chunks.</p>
<code>npm install -g webgl-workshop</code>
</div>
<div id="esnext-generation" class="workshopper">
<h4><a href="https://github.com/jesstelford/esnext-generation" target="_blank">ESNext Generation</a></h4>
<p data-i18n="workshopper-esnext-generation">Intro to ES6 Iterators, their use, and how they relate to Generators.</p>
<code>npm install -g esnext-generation</code>
</div>
<div id="test-anything" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/finnp/test-anything" target="_blank">Test Anything</a></h4>
<p data-i18n="workshopper-test-anything">Learn to test your code</p>
<code>npm install -g test-anything</code>
</div>
<div id="tower-of-babel" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/yosuke-furukawa/tower-of-babel" target="_blank">Tower of babel</a></h4>
<p data-i18n="workshopper-tower-of-babel">Show you through a series of exercises that introduce you to ES6 features.</p>
<code>npm install tower-of-babel -g</code>
</div>
<div id="learnyoumongo" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/evanlucas/learnyoumongo" target="_blank">learnyoumongo</a></h4>
<p data-i18n="workshopper-learnyoumongo">Getting started with MongoDB and Node.js</p>
<code>npm install learnyoumongo -g</code>
</div>
<div id="regex-adventure" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/substack/regex-adventure" target="_blank">regex-adventure</a></h4>
<p data-i18n="workshopper-regex-adventure">Parse text with regular expressions</p>
<code>npm install regex-adventure -g</code>
</div>
<div id="learn-sass" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/claudiopro/learn-sass" target="_blank">learn-sass</a></h4>
<p data-i18n="workshopper-learn-sass">Learn the basics of SASS</p>
<code>npm install learn-sass -g</code>
</div>
</div>
<div class="third">
<div id="shader-school" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/gl-modules/shader-school" target="_blank">Shader School</a></h4>
<p data-i18n="workshopper-shader-school">Learn the fundamentals of graphics programming using GLSL shaders.</p>
<code>npm install -g shader-school</code>
</div>
<div id="bytewiser" class="workshopper">
<h4><a class="js-workshop-link" href="https://www.github.com/maxogden/bytewiser" target="_blank">Bytewiser</a></h4>
<p data-i18n="workshopper-bytewiser">Learn how to manipulate binary data in node.js and HTML5 browsers.</p>
<code>npm install -g bytewiser</code>
</div>
<div id="bug-clinic" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/othiym23/bug-clinic" target="_blank">Bug Clinic</a></h4>
<p data-i18n="workshopper-bug-clinic">Learn some new tools and techniques as you improve your debugging skills.</p>
<code>npm install -g bug-clinic</code>
</div>
<div id="browserify-adventure" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/substack/browserify-adventure" target="_blank">Browserify Adventure</a></h4>
<p data-i18n="workshopper-browserify-adventure">Use npm modules and node-style require() in the browser with browserify.</p>
<code>npm install -g browserify-adventure</code>
</div>
<div id="introtowebgl" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/alexmackey/IntroToWebGLWithThreeJS" target="_blank">Intro to WebGL</a></h4>
<p data-i18n="workshopper-introtowebgl">Get started with three.js and WebGL.</p>
<code>npm install -g introtowebgl</code>
</div>
<div id="count-to-6" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/domenic/count-to-6" target="_blank">Count to 6</a></h4>
<p data-i18n="workshopper-count-to-6">Learn how to use some features from ES6, the next version of JavaScript.</p>
<code>npm install -g count-to-6</code>
</div>
<div id="kick-off-koa" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/koajs/kick-off-koa" target="_blank">Kick off Koa</a></h4>
<p data-i18n="workshopper-kick-off-koa">Getting started with Koa, the next generation web framework for Node.js.</p>
<code>npm install -g kick-off-koa</code>
</div>
<div id="lololodash" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/mdunisch/lololodash" target="_blank">LololoDash</a></h4>
<p data-i18n="workshopper-lololodash">Learn Lo-Dash (fork of underscore) to handle your arrays and objects simple!</p>
<code>npm install -g lololodash</code>
</div>
<div id="learnyoucouchdb" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/robertkowalski/learnyoucouchdb" target="_blank">learnyoucouchdb</a></h4>
<p data-i18n="workshopper-learnyoucouchdb">Learn about CouchDB - the database that completely embraces the web</p>
<code>npm install -g learnyoucouchdb</code>
</div>
<div id="learnuv" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/thlorenz/learnuv" target="_blank">learnuv</a></h4>
<p data-i18n="workshopper-learnuv">Learn uv for fun and profit, a self guided workshop to the library that powers Node.js.</p>
<code>git clone https://github.com/thlorenz/learnuv.git && cd learnuv && npm install</code>
</div>
<div id="learn-generators" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/isRuslan/learn-generators" target="_blank">Learn Generators</a></h4>
<p data-i18n="workshopper-learn-generators">An Intro to JavaScript ES6 Generators.</p>
<code>npm install -g learn-generators</code>
</div>
<div id="learnyoureact" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/tako-black/learnyoureact" target="_blank">learnyoureact</a></h4>
<p data-i18n="workshopper-learnyoureact">Let's learn React.js and server side rendering!</p>
<code>npm install -g learnyoureact</code>
</div>
<div id="perfschool" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/bevacqua/perfschool" target="_blank">perfschool</a></h4>
<p data-i18n="workshopper-perfschool">Find your way through the web performance optimization maze!</p>
<code>npm install -g perfschool</code>
</div>
<div id="web-audio-school" class="workshopper">
<h4><a href="https://github.com/mmckegg/web-audio-school" target="_blank">Web Audio School</a></h4>
<p data-i18n="workshopper-web-audio-school">Learn the Web Audio API by completing a series of interactive lessons with a focus on music.</p>
<code>npm install -g web-audio-school</code>
</div>
<div id="torrential" class="workshopper">
<h4><a class="js-workshop-link" href="https://github.com/No9/torrential" target="_blank">torrential</a></h4>
<p data-i18n="workshopper-torrential">A set of lessons to show you how to create a simple p2p bittorrent network</p>
<code>npm install torrential -g</code>
</div>
</div>
</div>
</section>
<div class="container" style="background-color: #fff;">
<footer>
<div class="third">
<p><strong>nodeschool.io</strong></p>
<small><span>Photos by</span> <a href="https://www.flickr.com/photos/matthewbergman" target="_blank">Matthew Bergman</a><span></span></small>
</div>
<div class="two-thirds">
<ul>
<li><strong data-i18n="footer-contact-header">Contact</strong></li>
<li><a href="https://twitter.com/nodeschool" target="_blank">t/@nodeschool</a></li>
<li><a href="https://github.com/nodeschool" target="_blank">gh/nodeschool</a></li>
</ul>
<ul>
<li><strong data-i18n="footer-contribute-header">Contribute</strong></li>
<li><a href="https://github.com/nodeschool/discussions/issues/new" target="_blank" data-i18n="footer-contribute-question">Open an Issue</a></li>
<li><a href="https://github.com/nodeschool/discussions/issues" target="_blank" data-i18n="footer-contribute-answer">Answer a Question</a></li>
</ul>
<ul>
<li><strong data-i18n="footer-about-header">About</strong></li>
<li><a href="building-workshops.html" data-i18n="footer-about-build">Build a workshopper</a></li>
<li><a href="host.html" data-i18n="footer-about-host">Host a workshop</a></li>
</ul>
</div>
</footer>
</div>
<script id="events" type="text/html">
{{#rows}}
<li>{{startdate}} <a href="{{website}}">{{name}}</a></li>
{{/rows}}
</script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script type="text/javascript" src="/js/tabletop.js"></script>
<script type="text/javascript" src="/js/sheetsee.js"></script>
<script type="text/javascript" src="/js/table.js"></script>
<script type="text/javascript" src="/js/main.js"></script>
<script type="text/javascript" src="/js/index.js"></script>
<script type="text/javascript" src="/js/dependencies.js"></script>
<script>
!function(s,c,h,O,o,l){s.GoogleAnalyticsObject=h;s[h]||(s[h]=function(){
(s[h].q=s[h].q||[]).push(arguments)});s[h].l=+new Date;o=c.createElement(O);
l=c.getElementsByTagName(O)[0];o.src='//www.google-analytics.com/analytics.js';
l.parentNode.insertBefore(o,l)}(window,document,'ga','script');
ga('create', 'UA-49267600-1', 'nodeschool.io');
ga('send', 'pageview');
</script>
</body>
</html>