Commit fa512af9d60d6dce3b4161985069abce1ede07b4
converge all slides into a single file
Michael Williams committed on 7/17/2017, 2:26:11 AMParent: 3cf8ae4369e85d0f1eb03b5bf79e74629a8dd037
Files changed
slides/callback.js | deleted |
slides/continuable.js | deleted |
slides/factory.js | deleted |
slides/function.js | deleted |
slides/history.js | deleted |
slides/index.js | deleted |
slides/intro.js | deleted |
slides/module.js | deleted |
slides/observable.js | deleted |
slides/references.js | deleted |
slides/stream.js | deleted |
slides.js | added |
slides/callback.js | ||
---|---|---|
@@ -1,13 +1,0 @@ | ||
1 | -const Slide = require('shazam/slide') | |
2 | - | |
3 | -module.exports = Slide.md(` | |
4 | -# callback | |
5 | - | |
6 | -- [\`run-series\`](https://github.com/feross/run-series) | |
7 | -- [\`run-parallel\`](https://github.com/feross/run-parallel) | |
8 | -- [\`run-auto\`](https://github.com/feross/run-auto) | |
9 | -- [\`run-waterfall\`](https://github.com/feross/run-waterfall) | |
10 | -`) | |
11 | - | |
12 | -// TODO two ways of handling errors: throw err and cb(err) | |
13 | -// how it's important to throw 'programmer errors' |
slides/continuable.js | ||
---|---|---|
@@ -1,17 +1,0 @@ | ||
1 | -const Slide = require('shazam/slide') | |
2 | - | |
3 | -module.exports = Slide.md(` | |
4 | -# continuable | |
5 | - | |
6 | -a "continuable" is a function that takes a single argument, a node-style (error-1st) callback. | |
7 | - | |
8 | -\`\`\`js | |
9 | -const continuable = (cb) => { | |
10 | - // do stuff... | |
11 | - cb(err, data) | |
12 | -} | |
13 | -\`\`\` | |
14 | - | |
15 | -- [\`continuable\`](https://github.com/Raynos/continuable) | |
16 | -- [\`cont\`](https://github.com/dominictarr/cont) | |
17 | -`) |
slides/factory.js | ||
---|---|---|
@@ -1,10 +1,0 @@ | ||
1 | -const Slide = require('shazam/slide') | |
2 | - | |
3 | -module.exports = Slide.md(` | |
4 | -# factory | |
5 | - | |
6 | -> “The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.” ~ Joe Armstrong | |
7 | - | |
8 | -- [The Two Pillars of JavaScript Part 1: How to Escape the 7th Circle of Hell](https://medium.com/javascript-scene/the-two-pillars-of-javascript-ee6f3281e7f3) | |
9 | -- [\`stampit\`](https://github.com/stampit-org/stampit) | |
10 | -`) |
slides/function.js | ||
---|---|---|
@@ -1,11 +1,0 @@ | ||
1 | -const Slide = require('shazam/slide') | |
2 | - | |
3 | -module.exports = Slide.md(` | |
4 | -## function | |
5 | - | |
6 | -\`\`\`js | |
7 | -function (...args) { | |
8 | - return value | |
9 | -} | |
10 | -\`\`\` | |
11 | -`) |
slides/history.js | ||
---|---|---|
@@ -1,24 +1,0 @@ | ||
1 | -const Slide = require('shazam/slide') | |
2 | - | |
3 | -module.exports = [ | |
4 | - 'first, some simplified history...', | |
5 | - Slide.md(` | |
6 | -# 2009 | |
7 | - | |
8 | -## nobody cares about JavaScript | |
9 | - | |
10 | -> it's a toy language | |
11 | - | |
12 | -## Ryan Dahl (@ry) creates Node.js | |
13 | - | |
14 | -[watch the original presentation](https://www.youtube.com/watch?v=ztspvPYybIY) | |
15 | - | |
16 | -> To provide a *purely evented*, *non-blocking* infrastructure to script *highly concurrent* programs. | |
17 | - | |
18 | -(original website [here](https://web.archive.org/web/20091003131634/http://nodejs.org/)) | |
19 | -`), | |
20 | - Slide.img('https://i.imgur.com/9JVtPV2.png') | |
21 | -] | |
22 | - | |
23 | -// core-less node? https://github.com/nodejs/node/issues/7098 | |
24 | -// https://github.com/nucleus-js/design |
slides/index.js | ||
---|---|---|
@@ -1,12 +1,0 @@ | ||
1 | -module.exports = [ | |
2 | - require('./intro'), | |
3 | - require('./history'), | |
4 | - require('./function'), | |
5 | - require('./module'), | |
6 | - require('./factory'), | |
7 | - require('./callback'), | |
8 | - require('./continuable'), | |
9 | - require('./observable'), | |
10 | - require('./stream'), | |
11 | - require('./references') | |
12 | -] |
slides/intro.js | ||
---|---|---|
@@ -1,22 +1,0 @@ | ||
1 | -const Slide = require('shazam/slide') | |
2 | - | |
3 | -module.exports = [ | |
4 | - Slide.md(` | |
5 | -## hi i'm [Mikey](http://dinosaur.is) | |
6 | - | |
7 | -i'm going to talk about | |
8 | - | |
9 | -# Luddite.js | |
10 | -`), | |
11 | - Slide.md(` | |
12 | -# what? | |
13 | - | |
14 | -this talk is a mashup of a few topics: | |
15 | - | |
16 | -- why you only need simple functions and objects to build complex systems | |
17 | -- why the best modules should not have any added sugar | |
18 | -- how "mad science" led to the success of Node.js and thus JavaScript | |
19 | -- why TC39 (the committee behind ES6+) is bad for JavaScript | |
20 | -- why you should ignore "modern JavaScript" (promises, classes, \`async\` / \`await\`, generators, and beyond). | |
21 | -`) | |
22 | -] |
slides/module.js | ||
---|---|---|
@@ -1,53 +1,0 @@ | ||
1 | -const Slide = require('shazam/slide') | |
2 | - | |
3 | -module.exports = [ | |
4 | - Slide.md(` | |
5 | -## module | |
6 | - | |
7 | -here's the CommonJS module system, as used and popularized by Node.js | |
8 | - | |
9 | -\`\`\`js | |
10 | -// cat.js | |
11 | -module.exports = require('cat-names').random | |
12 | -\`\`\` | |
13 | -\`\`\`js | |
14 | -// cat-loop.js | |
15 | -const cat = require('./cat') | |
16 | - | |
17 | -setInterval(() => { | |
18 | - console.log(cat()) | |
19 | -}) | |
20 | -\`\`\` | |
21 | - `), | |
22 | - Slide.md(` | |
23 | -# [the module wrapper](https://nodejs.org/api/modules.html#modules_the_module_wrapper) | |
24 | - | |
25 | -every module is actually wrapped in a closure | |
26 | - | |
27 | -\`\`\`js | |
28 | -(function (exports, require, module, __filename, __dirname) { | |
29 | - // your module code actually lives in here | |
30 | -}) | |
31 | -\`\`\` | |
32 | - `), | |
33 | - Slide.md(` | |
34 | -# [how require works](https://github.com/maxogden/art-of-node#how-require-works) | |
35 | - | |
36 | -> When you call \`require('some_module')\` in node here is what happens: | |
37 | -> | |
38 | -> 1. if a file called \`some_module.js\` exists in the current folder node will load that, otherwise: | |
39 | -> 2. node looks in the current folder for a \`node_modules\` folder with a \`some_module\` folder in it | |
40 | -> 3. if it doesn't find it, it will go up one folder and repeat step 2 | |
41 | -> | |
42 | -> This cycle repeats until node reaches the root folder of the filesystem, at which point it will then check any global module folders (e.g. \`/usr/local/node_modules\` on Mac OS) and if it still doesn't find \`some_module\` it will throw an exception. | |
43 | - `), | |
44 | - Slide.md(` | |
45 | -# [the Node aesthetic](http://substack.net/node_aesthetic) | |
46 | - | |
47 | -> - Callback austerity: Simplicity, asyncronous nature and nice additions that are included like the event system. | |
48 | -> - Limited surface area: Using modules instead of extending them, NPM, re-usable interfaces and simple, consistent function calls. | |
49 | -> - Batteries not included: Only few modules in the core distribution – reduces clutter, version dependencies and bureaucracy. | |
50 | -> - Radical reusability: Breaking up a problem in small pieces, NPM module locations, great versioning approach | |
51 | - `), | |
52 | - Slide.img('https://i.imgur.com/JaL9kyo.png') | |
53 | -] |
slides/observable.js | ||
---|---|---|
@@ -1,14 +1,0 @@ | ||
1 | -const Slide = require('shazam/slide') | |
2 | - | |
3 | -module.exports = Slide.md(` | |
4 | -# observable | |
5 | - | |
6 | -> - \`thing()\` gets the value | |
7 | -> - \`thing.set(...)\` sets the value | |
8 | -> - \`thing(function (value) { ... })\` listens to the value. | |
9 | - | |
10 | -- [\`observ\`](https://github.com/Raynos/observ) | |
11 | -- [\`observable\`](https://github.com/dominictarr/observable) | |
12 | -- [\`push-stream\`](https://github.com/ahdinosaur/push-stream) | |
13 | -- [\`mutant\`](https://github.com/mmckegg/mutant) | |
14 | -`) |
slides/references.js | ||
---|---|---|
@@ -1,18 +1,0 @@ | ||
1 | -const Slide = require('shazam/slide') | |
2 | - | |
3 | -module.exports = Slide.md(` | |
4 | -# references | |
5 | - | |
6 | -- [es2040](https://github.com/ahdinosaur/es2040) | |
7 | -- [Art of Node](https://github.com/maxogden/art-of-node) | |
8 | -- [Art of I/O](http://ioschool.is/art-of-io/sessions/0/?notes=true) | |
9 | -- [Tiny Guide to Non Fancy Node](https://github.com/yoshuawuyts/tiny-guide-to-non-fancy-node) | |
10 | -`) | |
11 | - | |
12 | -// TODO luddite.js apps: | |
13 | -// - https://webtorrent.io/ | |
14 | -// - http://standardjs.com/ | |
15 | -// - https://peermaps.github.io/ | |
16 | -// - http://loopjs.com/ | |
17 | -// - https://scuttlebot.io/ | |
18 | -// - https://choo.io/ |
slides/stream.js | ||
---|---|---|
@@ -1,9 +1,0 @@ | ||
1 | -const Slide = require('shazam/slide') | |
2 | - | |
3 | -module.exports = Slide.md(` | |
4 | -# stream | |
5 | - | |
6 | -- [\`pull-stream\`](https://pull-stream.github.io) | |
7 | -- [pull streams](http://dominictarr.com/post/149248845122/pull-streams-pull-streams-are-a-very-simple) | |
8 | -- [pull-stream-examples](https://github.com/dominictarr/pull-stream-examples) | |
9 | -`) |
slides.js | ||
---|---|---|
@@ -1,0 +1,184 @@ | ||
1 … | +const Slide = require('shazam/slide') | |
2 … | + | |
3 … | +module.exports = [ | |
4 … | + Slide.md(` | |
5 … | + ## hi i'm [Mikey](http://dinosaur.is) | |
6 … | + | |
7 … | + i'm going to talk about | |
8 … | + | |
9 … | + # Luddite.js | |
10 … | + `), | |
11 … | + | |
12 … | + Slide.md(` | |
13 … | + # what? | |
14 … | + | |
15 … | + this talk is a mashup of a few topics: | |
16 … | + | |
17 … | + - why you only need simple functions and objects to build complex systems | |
18 … | + - why the best modules should not have any added sugar | |
19 … | + - how "mad science" led to the success of Node.js and thus JavaScript | |
20 … | + - why TC39 (the committee behind ES6+) is bad for JavaScript | |
21 … | + - why you should ignore "modern JavaScript" (promises, classes, \`async\` / \`await\`, generators, and beyond). | |
22 … | + `), | |
23 … | + | |
24 … | + 'first, some simplified history...', | |
25 … | + | |
26 … | + Slide.md(` | |
27 … | + # 2009 | |
28 … | + | |
29 … | + ## nobody cares about JavaScript | |
30 … | + | |
31 … | + > it's a toy language | |
32 … | + | |
33 … | + ## Ryan Dahl (@ry) creates Node.js | |
34 … | + | |
35 … | + [watch the original presentation](https://www.youtube.com/watch?v=ztspvPYybIY) | |
36 … | + | |
37 … | + > To provide a *purely evented*, *non-blocking* infrastructure to script *highly concurrent* programs. | |
38 … | + | |
39 … | + (original website [here](https://web.archive.org/web/20091003131634/http://nodejs.org/)) | |
40 … | + `), | |
41 … | + | |
42 … | + Slide.img('https://i.imgur.com/9JVtPV2.png'), | |
43 … | + | |
44 … | + // core-less node? https://github.com/nodejs/node/issues/7098 | |
45 … | + // https://github.com/nucleus-js/design | |
46 … | + | |
47 … | + Slide.md(` | |
48 … | + ## function | |
49 … | + | |
50 … | + \`\`\`js | |
51 … | + function (...args) { | |
52 … | + return value | |
53 … | + } | |
54 … | + \`\`\` | |
55 … | + `), | |
56 … | + | |
57 … | + Slide.md(` | |
58 … | + ## module | |
59 … | + | |
60 … | + here's the CommonJS module system, as used and popularized by Node.js | |
61 … | + | |
62 … | + \`\`\`js | |
63 … | + // cat.js | |
64 … | + require('cat-names').random | |
65 … | + \`\`\` | |
66 … | + \`\`\`js | |
67 … | + // cat-loop.js | |
68 … | + const cat = require('./cat') | |
69 … | + | |
70 … | + setInterval(() => { | |
71 … | + console.log(cat()) | |
72 … | + }) | |
73 … | + \`\`\` | |
74 … | + `), | |
75 … | + | |
76 … | + Slide.md(` | |
77 … | + # [the module wrapper](https://nodejs.org/api/modules.html#modules_the_module_wrapper) | |
78 … | + | |
79 … | + every module is actually wrapped in a closure | |
80 … | + | |
81 … | + \`\`\`js | |
82 … | + (function (exports, require, module, __filename, __dirname) { | |
83 … | + // your module code actually lives in here | |
84 … | + }) | |
85 … | + \`\`\` | |
86 … | + `), | |
87 … | + | |
88 … | + Slide.md(` | |
89 … | + # [how require works](https://github.com/maxogden/art-of-node#how-require-works) | |
90 … | + | |
91 … | + > When you call \`require('some_module')\` in node here is what happens: | |
92 … | + > | |
93 … | + > 1. if a file called \`some_module.js\` exists in the current folder node will load that, otherwise: | |
94 … | + > 2. node looks in the current folder for a \`node_modules\` folder with a \`some_module\` folder in it | |
95 … | + > 3. if it doesn't find it, it will go up one folder and repeat step 2 | |
96 … | + > | |
97 … | + > This cycle repeats until node reaches the root folder of the filesystem, at which point it will then check any global module folders (e.g. \`/usr/local/node_modules\` on Mac OS) and if it still doesn't find \`some_module\` it will throw an exception. | |
98 … | + `), | |
99 … | + | |
100 … | + Slide.md(` | |
101 … | + # [the Node aesthetic](http://substack.net/node_aesthetic) | |
102 … | + | |
103 … | + > - Callback austerity: Simplicity, asyncronous nature and nice additions that are included like the event system. | |
104 … | + > - Limited surface area: Using modules instead of extending them, NPM, re-usable interfaces and simple, consistent function calls. | |
105 … | + > - Batteries not included: Only few modules in the core distribution – reduces clutter, version dependencies and bureaucracy. | |
106 … | + > - Radical reusability: Breaking up a problem in small pieces, NPM module locations, great versioning approach | |
107 … | + `), | |
108 … | + | |
109 … | + Slide.img('https://i.imgur.com/JaL9kyo.png'), | |
110 … | + | |
111 … | + Slide.md(` | |
112 … | + # factory | |
113 … | + | |
114 … | + > “The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.” ~ Joe Armstrong | |
115 … | + | |
116 … | + - [The Two Pillars of JavaScript Part 1: How to Escape the 7th Circle of Hell](https://medium.com/javascript-scene/the-two-pillars-of-javascript-ee6f3281e7f3) | |
117 … | + - [\`stampit\`](https://github.com/stampit-org/stampit) | |
118 … | + `), | |
119 … | + | |
120 … | + // TODO two ways of handling errors: throw err and cb(err) | |
121 … | + // how it's important to throw 'programmer errors' | |
122 … | + Slide.md(` | |
123 … | + # callback | |
124 … | + | |
125 … | + - [\`run-series\`](https://github.com/feross/run-series) | |
126 … | + - [\`run-parallel\`](https://github.com/feross/run-parallel) | |
127 … | + - [\`run-auto\`](https://github.com/feross/run-auto) | |
128 … | + - [\`run-waterfall\`](https://github.com/feross/run-waterfall) | |
129 … | + `), | |
130 … | + | |
131 … | + Slide.md(` | |
132 … | + # continuable | |
133 … | + | |
134 … | + a "continuable" is a function that takes a single argument, a node-style (error-1st) callback. | |
135 … | + | |
136 … | + \`\`\`js | |
137 … | + const continuable = (cb) => { | |
138 … | + // do stuff... | |
139 … | + cb(err, data) | |
140 … | + } | |
141 … | + \`\`\` | |
142 … | + | |
143 … | + - [\`continuable\`](https://github.com/Raynos/continuable) | |
144 … | + - [\`cont\`](https://github.com/dominictarr/cont) | |
145 … | + `), | |
146 … | + | |
147 … | + Slide.md(` | |
148 … | + # observable | |
149 … | + | |
150 … | + > - \`thing()\` gets the value | |
151 … | + > - \`thing.set(...)\` sets the value | |
152 … | + > - \`thing(function (value) { ... })\` listens to the value. | |
153 … | + | |
154 … | + - [\`observ\`](https://github.com/Raynos/observ) | |
155 … | + - [\`observable\`](https://github.com/dominictarr/observable) | |
156 … | + - [\`push-stream\`](https://github.com/ahdinosaur/push-stream) | |
157 … | + - [\`mutant\`](https://github.com/mmckegg/mutant) | |
158 … | + `), | |
159 … | + | |
160 … | + Slide.md(` | |
161 … | + # stream | |
162 … | + | |
163 … | + - [\`pull-stream\`](https://pull-stream.github.io) | |
164 … | + - [pull streams](http://dominictarr.com/post/149248845122/pull-streams-pull-streams-are-a-very-simple) | |
165 … | + - [pull-stream-examples](https://github.com/dominictarr/pull-stream-examples) | |
166 … | + `), | |
167 … | + | |
168 … | + Slide.md(` | |
169 … | + # references | |
170 … | + | |
171 … | + - [es2040](https://github.com/ahdinosaur/es2040) | |
172 … | + - [Art of Node](https://github.com/maxogden/art-of-node) | |
173 … | + - [Art of I/O](http://ioschool.is/art-of-io/sessions/0/?notes=true) | |
174 … | + - [Tiny Guide to Non Fancy Node](https://github.com/yoshuawuyts/tiny-guide-to-non-fancy-node) | |
175 … | + `) | |
176 … | +] | |
177 … | + | |
178 … | +// TODO luddite.js apps: | |
179 … | +// - https://webtorrent.io/ | |
180 … | +// - http://standardjs.com/ | |
181 … | +// - https://peermaps.github.io/ | |
182 … | +// - http://loopjs.com/ | |
183 … | +// - https://scuttlebot.io/ | |
184 … | +// - https://choo.io/ |
Built with git-ssb-web