git ssb

0+

dinoworm 🐛 / campjs-viii-ludditejs



Commit fa512af9d60d6dce3b4161985069abce1ede07b4

converge all slides into a single file

Michael Williams committed on 7/17/2017, 2:26:11 AM
Parent: 3cf8ae4369e85d0f1eb03b5bf79e74629a8dd037

Files changed

slides/callback.jsdeleted
slides/continuable.jsdeleted
slides/factory.jsdeleted
slides/function.jsdeleted
slides/history.jsdeleted
slides/index.jsdeleted
slides/intro.jsdeleted
slides/module.jsdeleted
slides/observable.jsdeleted
slides/references.jsdeleted
slides/stream.jsdeleted
slides.jsadded
slides/callback.jsView
@@ -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.jsView
@@ -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.jsView
@@ -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.jsView
@@ -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.jsView
@@ -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.jsView
@@ -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.jsView
@@ -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.jsView
@@ -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.jsView
@@ -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.jsView
@@ -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.jsView
@@ -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.jsView
@@ -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