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