Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Slide decks of JSConf 2014

Jake Archibald (@jaffathecake): The ServiceWorker is coming; look busy
https://speakerdeck.com/jaffathecake/the-serviceworker-is-coming-look-busy https://github.com/jakearchibald/trained-to-thrill/
https://www.youtube.com/watch?v=SmZ9XcTpMS4

Hunter Loftis (@hunterloftis): We Will All Be Game Progmrammers
http://wwabgp.herokuapp.com/s
http://youtu.be/QX0eauXBKwc

CarterRabasa (@carterrabasa): A Community of People; Not Projects
https://github.com/crabasa/community-toolkit
http://youtu.be/guC2guiPGRc

Cristoph Martens (@martensms): JavaScript Level 9000
https://github.com/martensms/jsconf2014-slides
http://youtu.be/v34CEyqVEuM

Michael Poltorak Nielsen (@michaelpoltorak): Alternative Smartphone Interactions based on Sensor Data
http://www.slideshare.net/michaelpoltorak/slides-alternative-smartphone-interactions-39642568
http://youtu.be/q20W5dWHTas

Mathias Bynens (@mathias): JavaScript Unicode
https://mathiasbynens.be/notes/javascript-unicode
http://youtu.be/zi0w7J7MCrk

Drew Petersen (@kirbysayshi): Developing Games Using Data not Trees
https://speakerdeck.com/kirbysayshi/developing-games-using-data-not-trees
http://youtu.be/uNVP5jDOVAY

Jaswanth Sreeram (@jsreeram): Parallel JavaScript
<slides missing>
http://youtu.be/Ls27mCiYsQo

Michele Guido (@sheley): It Takes a Village to Make a Programmer
https://twitter.com/sheley/status/510758480928854016
http://youtu.be/FHNrw7aiKOE

Sara Robinson (@srobtweets): What Harry Potter Can Teach Us About JavaScript
https://sarajrobinson.com/jsconfeu/
http://youtu.be/osQbwqq7ZR4

Tim Messerschmidt (@seraandroid): Supercharging Node with Kraken
http://www.slideshare.net/paypal
http://youtu.be/gKebfQH8aXU

Federico Musto: Linino.IO - A Whole New Take
<slides missing>
http://youtu.be/eipW64BGoOE

Frederik Braun (@freddyb): We're struggling to keep up (A brief history of Browser Security Features)
<slides missing>
http://youtu.be/mj-U9FlbAl0

Rik Arends (@rikarends): Beyond HTML and CSS: Fusing Javascript and shaders for live graphics and UI programming
http://hello.onejs.io/
https://github.com/onejs/onejs
http://youtu.be/X8xxz-YeWtk

Ray McDermott (@raymcdermott): How Toyota Motor Europe use Heroku to manufacture web sites on the web
http://www.slideshare.net/mondraymond/heroku-toyota-motor-europe-platform-as-a-factory-as-a-service
http://youtu.be/JlRHyg60vvI

James Coglan (@jcoglan): Practical functional programming: pick two
http://slides.jcoglan.com/functional-jsconf
http://youtu.be/XcS-LdEBUkE

William Lewis & Pavel Dovbush; Badoo (@netproteus & @dppsu): Building a maintainable bi-directional cross platform protocol
http://techblog.badoo.com/files/building-a-maintainable-bi-directional-cross-platform-protocol/JSON_RPC.pdf
http://youtu.be/Wkw4TOBEKUY

Raul Fraile (@raulfraile): How GZIP compression works
http://www.slideshare.net/raulfraile/how-gzip-compression-works-js-conf-eu-2014
http://youtu.be/wLx5OGxOYUc

Tim Taubert (@ttaubert): Keeping secrets with JavaScript: An Introduction to the WebCrypto API
http://timtaubert.de/blog/2014/09/keeping-secrets-with-javascript/
http://youtu.be/yf4m9LdO1zI

Matthew Podwysocki (@mattpodwysocki): Async and Streaming JS - Are we doing it wrong?
https://github.com/mattpodwysocki/jsconfeu-2014
http://youtu.be/-vPFP-2Mkl8

Michael Donohoe (@donohoe): Deep-link to Anything on the Web
https://docs.google.com/presentation/d/1N6cbH0LOHRGiZY4FPlS5bho9cK7UMtM7Ho_XN8yP1T0/
https://www.youtube.com/watch?v=ybaVRa5AZ5c

Mathieu 'p01' Henri (@p01): Monster Audio-Visual demos in a TCP packet
<slides missing>
http://youtu.be/8aYVH2j0kAU

Arne Martin Aurlien (@arnemart): Implement an Esoteric Programming Language for Fun and... Well, Fun
https://github.com/arnemart/jsconf2k14
http://befungius.aurlien.net/
http://youtu.be/oCPT3L33848

Brad Bouse (@bradbouse): Usefulness of Uselessness
http://www.wholepixel.com/jsconf/index.html
http://youtu.be/K7C7iUYntNs

Dave Cridland (@dwddave): Air Crashes
https://www.surevine.com/air-disasters-and-software-not-such-a-tenuous-link/
http://youtu.be/Oxz23A9_Mc4

Stephan Seidt (@evilhackerdude): The Meaning of Words
<slides missing>
http://youtu.be/d1HM-9reFAE

Tim Pietrusky (@timpietrusky): Nerd Disco
http://slides.com/timpietrusky/nerd-disco/
http://youtu.be/tia6iP85Zuk

Vyacheslav Egorov (@mraleph): invokedynamic.js
http://mrale.ph/talks/jsconfeu2014/
https://github.com/mraleph/mraleph.github.com/tree/master/talks/jsconfeu2014/code
http://youtu.be/YOHBZactXus

Mathias Buus Madsen (@mafintosh): Javascript... Torrents... and Mad Science!
https://github.com/mafintosh/jsconf-eu-2014 http://youtu.be/BTCsSwCpGP8

Adrian Perez de Castro (@aperezdc): JavaScript in JavaScript: Inception
http://perezdecastro.org/jsinception/
http://youtu.be/F2cL4EOAztk

Mark Knichel (@m_knichel): JavaScript Tools at Scale Using Type Information
https://docs.google.com/presentation/d/1-bXaZUjGdg9KIwPj2v3jRY4ak4CjmwIDWBVDlEknj6c/present#slide=id.p
http://youtu.be/oXZaqHWq6cM

Rob Ashton (@robashton): Got Make?
http://slides.com/robashton/got-make
https://github.com/robashton/jsconfeu2014
http://linkis.com/codeofrob.com/entrie/kqnsq
http://youtu.be/sS5EByZm1EI

Dan Mané (@danmane): Why are there so many Javascript charting libraries?!?
<slides missing>
http://youtu.be/_A_FdbTkp9c

Marcy Sutton (@marcysutton): JavaScript for Everybody
http://marcysutton.github.io/accessibility-of-mvcs/
http://youtu.be/04DOp1F9Od4

Sergii Iefremov (@iefserge): Runtime.JS: V8 JavaScript Kernel
http://runtimejs.org/jsconf/
http://youtu.be/nPl0zlAI3MY

Lena Reinhard (@ffffux): This is bigger than us: Building a future for Open Source
https://speakerdeck.com/ffffux/this-is-bigger-than-us-building-a-future-for-open-source
http://youtu.be/-thLNvxFUu4

Raquel Vélez (@rockbot): Evolution of a Developer
https://speakerdeck.com/rockbot/evolution-of-a-developer
http://youtu.be/rP1q6oIVco4

Sebastien Cevey (@theefer): Server-less applications powered by Web Components
http://slides.com/theefer/serverless-web-components-jsconf
http://youtu.be/MdcD1rNkNLE

Jan Monschke (@thedeftone): Using the web for music production and for live performances
http://janmonschke.com/JSConf2014/
http://youtu.be/cqtBpCqgOgM

Shirmung Bielefeld (@shirmung): == ? === ??? ...#@^%
<slides missing>
http://youtu.be/qGyqzN0bjhc

Rosie Campbell (@rosiecampbell): Designing for displays that don't exist yet
<slides missing>
http://youtu.be/QAha1prc_pU

Sebastian Markbåge (@sebmarkbage): Minimal API Surface Area - Learning patterns instead of frameworks
http://youtu.be/4anAwXYqLG8
<slides missing>

Nikita Vasilyev (@elv1s): Future of Web Tooling
<slides missing>
http://youtu.be/U0_IrPqvwn4

Dominikus Baur (@dominikus): Web-based data visualization on mobile devices
http://dominikus.github.io/jsconfeu_2014/
http://youtu.be/X2ZlDrx6dAw

Brennan Novak (@brennannovak): Secure Crypto for Browser Based Apps
<slides missing>
http://youtu.be/xSIt6h_yjH0

Philip Roberts (@philip_roberts): What the heck is the event loop anyway?
http://youtu.be/8aGhZQkoFbQ

Amy Palamountain (@ammeep): Enemy of the State
http://amy.palamounta.in/blog/2014/04/13/enemy-of-the-state/
http://youtu.be/fAoSidif1gs

Jenna Zeigen (@zeigenvector): The Linguistic Relativity of Programming Languages
http://jennazeigen.com/jsconfeu-2014.pdf
http://youtu.be/tNylHHf2uJk

Iliyan Peychev (@ipeychev): HTTP 2.0 and QUIC - protocols of the (near) future
https://speakerdeck.com/ipeychev/http-2-dot-0-and-quic-protocols-of-the-near-future
http://youtu.be/qyexqwG6fGI

Jan Jongboom (@janjongboom): Abusing phones to make the internet of things
http://www.slideshare.net/janjongboom/jsconf-eu-2014-abusing-phones-to-make-the-internet-of-things
http://youtu.be/Uy062kp-LM4

Lloyd Watkin (@lloydwatkin): You've played with realtime, let's do it properly...
http://talks.evilprofessor.co.uk/jsconfeu-2014/
http://youtu.be/DRz5T3kcygM

Glen Maddern (@glenmaddern): GIFs vs Web Components
https://github.com/geelen/gifs-vs-web-components
http://youtu.be/i7mrZ_JsA8A

Lindsay Eyink (@leyink): Know Your /'s
<slides missing>
http://youtu.be/65YYMLQ1jkU

// Use this script to parse the Markdown contents into JSON
// Distributed under the Works On My Computer, You're Entirely On Your Own License
// WTFPL (http://www.wtfpl.net/) also applies
var doParse = module.exports.doParse = function (sources, cb) {
require("./reader").readFirstExisting(sources, function (err, data) {
if (err) {
return console.error("Error reading source", err.stack || err.message);
}
cb(require("./parser").parse(data));
});
};
function stdoutWrite(data) {
process.stdout.write(JSON.stringify(data), "utf-8");
}
if (require.main === module) doParse(require("./sources.json"), stdoutWrite);
var rRowSeparator = /\r?\n/;
var rProbablyUrl = /^https?:/;
var rProbablyVideoUrl = /vimeo|youtu\.?be/;
var rEmptyRow = /^(\s+)?$/;
var rLeadingTrailingWS = /^\s+|\s+$/g;
function trim(str) {
return str.replace(rLeadingTrailingWS, "");
}
function not(fn) {
return function () {
return ! fn.apply(undefined, arguments);
};
}
function regex(r) {
return function (val) {
return r.test(val);
};
}
function createChunk() {
return [];
}
function chunkify(chunks, row) {
if (rEmptyRow.test(row)) {
chunks.push(createChunk());
} else {
chunks[chunks.length - 1].push(row);
}
return chunks;
}
function parseChunk(chunk) {
var desc = chunk[0].match(/^(.*?)(?:\s\((@[^)]+)\))?:\s(.*)$/);
if (desc == null) {
throw new Error("Chunk contains malformed title line");
}
var presenter = desc[1];
var twitter = desc[2] || undefined;
var title = desc[3];
var urls = chunk.slice(1).filter(regex(rProbablyUrl));
var slides = urls.length > 0 ? urls.shift() : undefined;
var videos = urls.length > 0 ? urls.filter(regex(rProbablyVideoUrl)) : undefined;
var related = urls.length > 0 ? urls.filter(not(regex(rProbablyVideoUrl))) : undefined;
return {
title: title,
presenter: presenter,
twitter: twitter,
slides: slides,
videos: videos,
related: related
};
}
function nonEmptyChunk(chunk) {
return chunk.length > 0;
}
function parseData(data) {
return data.
split(rRowSeparator).
map(trim).
reduce(chunkify, [createChunk()]).
filter(nonEmptyChunk).
map(parseChunk);
}
module.exports.parse = parseData;
var rIsRemote = /^https?:/;
var rIsSecure = /^https:/;
var readRemoteSource = module.exports.readRemoteSource = function readRemoteSource(source, cb) {
var httpModule = rIsSecure.test(source) ? "https" : "http";
var req = require(httpModule).get(source, function (res) {
var payload = "";
if (res.statusCode > 200) {
return req.abort(), cb(new Error("HTTP Error " + res.statusCode));
}
res.on("data", function (chunk) {
payload += String(chunk);
});
res.on("end", function () {
try {
cb(undefined, payload);
} catch (err) {
cb(err);
}
});
}).on("error", function (err) {
cb(err, undefined);
});
};
var readLocalSource = module.exports.readLocalSource = function readLocalSource(source, cb) {
if (! cb) {
throw new Error("A callback is required");
}
function _actuallyRead() {
require("fs").readFile(source, "utf-8", function (err, data) {
if (err) {
return cb(err);
}
try {
cb(undefined, data);
} catch (ex) {
cb(ex);
}
});
}
require("fs").exists(source, function (exists) {
if (! exists) {
return cb(new Error("File doesn't exist: " + source));
}
_actuallyRead(cb);
});
};
var readFirstExisting = module.exports.readFirstExisting = function readFirstExisting(sources, cb) {
var mostRecentErr;
asyncIterate(sources, function (source, next) {
function localCallback(err, data) {
if (data) {
return cb(undefined, data);
}
if (err) {
mostRecentErr = err;
}
try {
next();
} catch (e) {
cb(mostRecentErr || e);
}
}
if (rIsRemote.test(source)) {
readRemoteSource(source, localCallback);
} else {
readLocalSource(source, localCallback);
}
});
};
function asyncIterate(collection, iterator) {
var items = collection.slice(0);
var cursor = -1;
var current;
function adv() {
cursor += 1;
if (cursor >= items.length) {
return false;
}
current = items[cursor];
return true;
}
function next() {
if (! adv()) {
throw new Error("No next item");
}
iterator(current, next);
}
next();
}
[
"berlin-jsconf-2014.md",
"https://gist.githubusercontent.com/nikcorg/1fe60d2da6e22653806c/raw/ee0762d05650df1bdede4cb4f80e2ca8cfb2becb/berlin-jsconf-2014.md"
]
@nikcorg

This comment has been minimized.

Copy link
Owner Author

@nikcorg nikcorg commented Sep 18, 2014

Updated, thank you.

@lewiscowper

This comment has been minimized.

@nikcorg

This comment has been minimized.

Copy link
Owner Author

@nikcorg nikcorg commented Sep 19, 2014

Updated, thank you.

@doolittle

This comment has been minimized.

Copy link

@doolittle doolittle commented Sep 19, 2014

Usefulness of Uselessness (brad bouse): http://wholepixel.com/jsconf

(sorry, totally didn't optimize for file size)

@nikcorg

This comment has been minimized.

Copy link
Owner Author

@nikcorg nikcorg commented Sep 20, 2014

Updated, thank you.

@7Ds7

This comment has been minimized.

Copy link

@7Ds7 7Ds7 commented Sep 21, 2014

@nikcorg

This comment has been minimized.

Copy link
Owner Author

@nikcorg nikcorg commented Sep 21, 2014

Thanks, updated.

@necccc

This comment has been minimized.

Copy link

@necccc necccc commented Sep 21, 2014

Rik Arends (@rikarends): Beyond HTML and CSS: Fusing Javascript and shaders for live graphics and UI programming
http://hello.onejs.io/

fork here
https://gist.github.com/necccc/7726f34f0f386d26b036

@nikcorg

This comment has been minimized.

Copy link
Owner Author

@nikcorg nikcorg commented Sep 21, 2014

Thanks, updated.

@abiyasa

This comment has been minimized.

Copy link

@abiyasa abiyasa commented Oct 1, 2014

For "Hunter Loftis (@hunterloftis): We Will All Be Game Programmers", the slide is at http://wwabgp.herokuapp.com/ (from his Twitter status)

@nikcorg

This comment has been minimized.

Copy link
Owner Author

@nikcorg nikcorg commented Oct 15, 2014

Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.