├── asset
├── img
│ ├── .gitignore
│ ├── ie.png
│ ├── map.png
│ ├── adobe.png
│ ├── azure.png
│ ├── bobby.png
│ ├── dshaw.png
│ ├── glenn.png
│ ├── jden.png
│ ├── logo.png
│ ├── tree.png
│ ├── adron.jpeg
│ ├── cloudant.png
│ ├── domenic.jpg
│ ├── github.png
│ ├── hubsea.png
│ ├── ie-small.png
│ ├── ineeman.png
│ ├── jdalton.jpeg
│ ├── jdalton.png
│ ├── mandrill.png
│ ├── merrick.jpg
│ ├── secret1.png
│ ├── secret10.png
│ ├── secret2.png
│ ├── secret3.png
│ ├── secret4.png
│ ├── secret5.png
│ ├── secret6.png
│ ├── secret7.png
│ ├── secret8.png
│ ├── secret9.png
│ ├── sendgrid.png
│ ├── sintaxi.jpg
│ ├── twilio.png
│ ├── twitter.png
│ ├── alexlande.png
│ ├── dgreenspan.jpg
│ ├── emilyrose.jpeg
│ ├── saucelabs.png
│ ├── syntacticx.jpg
│ ├── thoward37.jpg
│ ├── topfunky.jpeg
│ ├── azure-small.png
│ ├── carterrabasa.png
│ ├── cheezburger.png
│ ├── chriswilliams.jpg
│ ├── dominictarr.png
│ ├── jerrysievert.png
│ ├── kitcambridge.png
│ ├── markcowlishaw.png
│ ├── rickwaldron.jpg
│ ├── subtle_dots.png
│ ├── twilio-small.png
│ ├── whereisciao.jpg
│ ├── angelinafabbro.jpg
│ ├── mattpodwysocki.png
│ ├── cheezburger-small.png
│ ├── subtle_dots_blue.png
│ ├── subtle_dots_green.png
│ └── speaker-placeholder.png
├── css
│ ├── scss
│ │ ├── _state.scss
│ │ ├── _variables.scss
│ │ ├── _breakpoint1.scss
│ │ ├── _hidpi.scss
│ │ ├── site.scss
│ │ ├── _layout.scss
│ │ ├── _print.scss
│ │ ├── _base.scss
│ │ ├── _helpers.scss
│ │ ├── _modules.scss
│ │ └── _normalize.scss
│ └── site.css
├── pdf
│ └── sponsor_brochure.pdf
├── js
│ ├── site
│ │ ├── site.min.js
│ │ └── site.js
│ ├── compiled
│ │ ├── site.min.js
│ │ └── site.js
│ ├── main.js
│ └── vendor
│ │ └── modernizr-2.6.2.min.js
└── grunt
│ ├── include
│ └── reloadClient.js
│ ├── compass.js
│ ├── img.js
│ └── reload.js
├── CNAME
├── .gitignore
├── proposal
├── images
│ ├── jden.png
│ ├── chustar.png
│ ├── dshaw.png
│ ├── ineeman.png
│ ├── janedoe.png
│ ├── jdalton.png
│ ├── molant.png
│ ├── ozten.jpg
│ ├── raynos.png
│ ├── revin.png
│ ├── rwldrn.jpg
│ ├── sintaxi.jpg
│ ├── skoon.jpg
│ ├── airportyh.png
│ ├── coderoshi.jpg
│ ├── crcastle.png
│ ├── dgreensp.jpg
│ ├── joeeames.png
│ ├── lorenwest.png
│ ├── mdarnall.jpg
│ ├── pconerly.png
│ ├── topfunky.jpg
│ ├── chewbranca.png
│ ├── delvarworld.png
│ ├── dominictarr.jpg
│ ├── dustyjewett.jpg
│ ├── fivetanley.jpg
│ ├── howardabrams.png
│ ├── iammerrick.png
│ ├── kitcambridge.png
│ ├── troythewolfe.jpg
│ ├── halffullheart.png
│ ├── mattpodwysocki.png
│ └── matthew_bergman.jpg
├── making-robots-walk_rwldrn.md
├── proposal-template_janedoe.md
├── sailing-at-midnight-kitcambridge.md
├── add-lightness_revin.md
├── survey-of-backbone-plugin-ecosystem.md
├── cheap-design-into_chustar.md
├── stream-all-things_raynos.md
├── make-nodjs-your-framework-agnostic-worker_pconerly.md
├── js-in-your-chrome-extension_pconerly.md
├── persona-login-that-just-works_ozten.md
├── the-tyranny-of-choice.md
├── observable-nodejs_dshaw.md
├── optimize-your-tdd_airportyh.md
├── promises-for-profit_delvarworld.md
├── excel-in-the-browser_halffullheart.md
├── distributed-programming-for-kids_dominictarr.md
├── model-view-rockstar_dustyjewett.md
├── big-data-real-time_ineeman.md
├── rethinking-distributed-systems-with-nodejs_sintaxi.md
├── understanding-asynchronous_coderoshi.md
├── app-scale-all-the-things-typescript_jden.md
├── whirlwind-tour-couchapps-and-viz-with-d3-and-friends_chewbranca.md
├── are-we-there-yet_jden.md
├── testing-like-a-boss_mdarnall.md
├── lodash-for-a-better-utility-belt_jdalton.md
├── does_size_matter__microjs_fx_vs_macrojs_fx_skoon.md
├── learn-from-the-masters_topfunky.md
├── realtime-monitoring-with-nodejs_lorenwest.md
├── tdd-with-angularjs_joeeames.md
├── easy-dynamic-websites-using-fuzzytoast_howardabrams.md
├── requirejs-to-tame-your-javascript_iammerrick.md
├── dark-secrets-of-dirty-projects_molant.md
├── windows-8-apps-in-javascript-the-good-the-bad-and-the-ugly.md
├── tdd-in-javascript_joeeames.md
├── async-javascript_johnkpaul.md
├── reactive-html-with-meteor_dgreensp.md
├── the-real-bad-parts_johnkpaul.md
├── curiosity-killed_fivetanley.md
├── keg.io_crcastle.md
├── dont_cross_the_streams-mattpodwysocki.md
└── README.md
├── README.md
├── grunt.js
└── index.html
/asset/img/.gitignore:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/CNAME:
--------------------------------------------------------------------------------
1 | cascadiajs.com
2 |
--------------------------------------------------------------------------------
/asset/css/scss/_state.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
--------------------------------------------------------------------------------
/asset/css/scss/_variables.scss:
--------------------------------------------------------------------------------
1 | $accent: rgb(50, 163, 90);
2 | $background: lighten(#268bd2, 45%);
--------------------------------------------------------------------------------
/asset/img/ie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/ie.png
--------------------------------------------------------------------------------
/asset/img/map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/map.png
--------------------------------------------------------------------------------
/asset/img/adobe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/adobe.png
--------------------------------------------------------------------------------
/asset/img/azure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/azure.png
--------------------------------------------------------------------------------
/asset/img/bobby.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/bobby.png
--------------------------------------------------------------------------------
/asset/img/dshaw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/dshaw.png
--------------------------------------------------------------------------------
/asset/img/glenn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/glenn.png
--------------------------------------------------------------------------------
/asset/img/jden.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/jden.png
--------------------------------------------------------------------------------
/asset/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/logo.png
--------------------------------------------------------------------------------
/asset/img/tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/tree.png
--------------------------------------------------------------------------------
/asset/img/adron.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/adron.jpeg
--------------------------------------------------------------------------------
/asset/img/cloudant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/cloudant.png
--------------------------------------------------------------------------------
/asset/img/domenic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/domenic.jpg
--------------------------------------------------------------------------------
/asset/img/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/github.png
--------------------------------------------------------------------------------
/asset/img/hubsea.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/hubsea.png
--------------------------------------------------------------------------------
/asset/img/ie-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/ie-small.png
--------------------------------------------------------------------------------
/asset/img/ineeman.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/ineeman.png
--------------------------------------------------------------------------------
/asset/img/jdalton.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/jdalton.jpeg
--------------------------------------------------------------------------------
/asset/img/jdalton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/jdalton.png
--------------------------------------------------------------------------------
/asset/img/mandrill.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/mandrill.png
--------------------------------------------------------------------------------
/asset/img/merrick.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/merrick.jpg
--------------------------------------------------------------------------------
/asset/img/secret1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/secret1.png
--------------------------------------------------------------------------------
/asset/img/secret10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/secret10.png
--------------------------------------------------------------------------------
/asset/img/secret2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/secret2.png
--------------------------------------------------------------------------------
/asset/img/secret3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/secret3.png
--------------------------------------------------------------------------------
/asset/img/secret4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/secret4.png
--------------------------------------------------------------------------------
/asset/img/secret5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/secret5.png
--------------------------------------------------------------------------------
/asset/img/secret6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/secret6.png
--------------------------------------------------------------------------------
/asset/img/secret7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/secret7.png
--------------------------------------------------------------------------------
/asset/img/secret8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/secret8.png
--------------------------------------------------------------------------------
/asset/img/secret9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/secret9.png
--------------------------------------------------------------------------------
/asset/img/sendgrid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/sendgrid.png
--------------------------------------------------------------------------------
/asset/img/sintaxi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/sintaxi.jpg
--------------------------------------------------------------------------------
/asset/img/twilio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/twilio.png
--------------------------------------------------------------------------------
/asset/img/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/twitter.png
--------------------------------------------------------------------------------
/asset/img/alexlande.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/alexlande.png
--------------------------------------------------------------------------------
/asset/img/dgreenspan.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/dgreenspan.jpg
--------------------------------------------------------------------------------
/asset/img/emilyrose.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/emilyrose.jpeg
--------------------------------------------------------------------------------
/asset/img/saucelabs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/saucelabs.png
--------------------------------------------------------------------------------
/asset/img/syntacticx.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/syntacticx.jpg
--------------------------------------------------------------------------------
/asset/img/thoward37.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/thoward37.jpg
--------------------------------------------------------------------------------
/asset/img/topfunky.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/topfunky.jpeg
--------------------------------------------------------------------------------
/proposal/images/jden.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/jden.png
--------------------------------------------------------------------------------
/asset/img/azure-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/azure-small.png
--------------------------------------------------------------------------------
/asset/img/carterrabasa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/carterrabasa.png
--------------------------------------------------------------------------------
/asset/img/cheezburger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/cheezburger.png
--------------------------------------------------------------------------------
/asset/img/chriswilliams.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/chriswilliams.jpg
--------------------------------------------------------------------------------
/asset/img/dominictarr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/dominictarr.png
--------------------------------------------------------------------------------
/asset/img/jerrysievert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/jerrysievert.png
--------------------------------------------------------------------------------
/asset/img/kitcambridge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/kitcambridge.png
--------------------------------------------------------------------------------
/asset/img/markcowlishaw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/markcowlishaw.png
--------------------------------------------------------------------------------
/asset/img/rickwaldron.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/rickwaldron.jpg
--------------------------------------------------------------------------------
/asset/img/subtle_dots.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/subtle_dots.png
--------------------------------------------------------------------------------
/asset/img/twilio-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/twilio-small.png
--------------------------------------------------------------------------------
/asset/img/whereisciao.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/whereisciao.jpg
--------------------------------------------------------------------------------
/proposal/images/chustar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/chustar.png
--------------------------------------------------------------------------------
/proposal/images/dshaw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/dshaw.png
--------------------------------------------------------------------------------
/proposal/images/ineeman.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/ineeman.png
--------------------------------------------------------------------------------
/proposal/images/janedoe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/janedoe.png
--------------------------------------------------------------------------------
/proposal/images/jdalton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/jdalton.png
--------------------------------------------------------------------------------
/proposal/images/molant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/molant.png
--------------------------------------------------------------------------------
/proposal/images/ozten.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/ozten.jpg
--------------------------------------------------------------------------------
/proposal/images/raynos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/raynos.png
--------------------------------------------------------------------------------
/proposal/images/revin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/revin.png
--------------------------------------------------------------------------------
/proposal/images/rwldrn.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/rwldrn.jpg
--------------------------------------------------------------------------------
/proposal/images/sintaxi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/sintaxi.jpg
--------------------------------------------------------------------------------
/proposal/images/skoon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/skoon.jpg
--------------------------------------------------------------------------------
/asset/img/angelinafabbro.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/angelinafabbro.jpg
--------------------------------------------------------------------------------
/asset/img/mattpodwysocki.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/mattpodwysocki.png
--------------------------------------------------------------------------------
/proposal/images/airportyh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/airportyh.png
--------------------------------------------------------------------------------
/proposal/images/coderoshi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/coderoshi.jpg
--------------------------------------------------------------------------------
/proposal/images/crcastle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/crcastle.png
--------------------------------------------------------------------------------
/proposal/images/dgreensp.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/dgreensp.jpg
--------------------------------------------------------------------------------
/proposal/images/joeeames.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/joeeames.png
--------------------------------------------------------------------------------
/proposal/images/lorenwest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/lorenwest.png
--------------------------------------------------------------------------------
/proposal/images/mdarnall.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/mdarnall.jpg
--------------------------------------------------------------------------------
/proposal/images/pconerly.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/pconerly.png
--------------------------------------------------------------------------------
/proposal/images/topfunky.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/topfunky.jpg
--------------------------------------------------------------------------------
/asset/img/cheezburger-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/cheezburger-small.png
--------------------------------------------------------------------------------
/asset/img/subtle_dots_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/subtle_dots_blue.png
--------------------------------------------------------------------------------
/asset/img/subtle_dots_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/subtle_dots_green.png
--------------------------------------------------------------------------------
/asset/pdf/sponsor_brochure.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/pdf/sponsor_brochure.pdf
--------------------------------------------------------------------------------
/proposal/images/chewbranca.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/chewbranca.png
--------------------------------------------------------------------------------
/proposal/images/delvarworld.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/delvarworld.png
--------------------------------------------------------------------------------
/proposal/images/dominictarr.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/dominictarr.jpg
--------------------------------------------------------------------------------
/proposal/images/dustyjewett.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/dustyjewett.jpg
--------------------------------------------------------------------------------
/proposal/images/fivetanley.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/fivetanley.jpg
--------------------------------------------------------------------------------
/proposal/images/howardabrams.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/howardabrams.png
--------------------------------------------------------------------------------
/proposal/images/iammerrick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/iammerrick.png
--------------------------------------------------------------------------------
/proposal/images/kitcambridge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/kitcambridge.png
--------------------------------------------------------------------------------
/proposal/images/troythewolfe.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/troythewolfe.jpg
--------------------------------------------------------------------------------
/asset/img/speaker-placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/asset/img/speaker-placeholder.png
--------------------------------------------------------------------------------
/proposal/images/halffullheart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/halffullheart.png
--------------------------------------------------------------------------------
/proposal/images/mattpodwysocki.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/mattpodwysocki.png
--------------------------------------------------------------------------------
/proposal/images/matthew_bergman.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lorenwest/cascadiajs.github.com/master/proposal/images/matthew_bergman.jpg
--------------------------------------------------------------------------------
/asset/css/scss/_breakpoint1.scss:
--------------------------------------------------------------------------------
1 | @media only screen and (min-width: 35em) {
2 | /* Style adjustments for viewports that meet the condition */
3 | }
--------------------------------------------------------------------------------
/asset/css/scss/_hidpi.scss:
--------------------------------------------------------------------------------
1 | @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
2 | only screen and (min-resolution: 144dpi) {
3 | /* Style adjustments for high resolution devices */
4 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Website for cascadia.js conference.
2 |
3 | Run grunt during development for continuous Compass and JS compilation and LiveReload support (browser extension required).
4 |
5 | Run grunt build before deployment to do all of that stuff again and compress images.
--------------------------------------------------------------------------------
/asset/css/scss/site.scss:
--------------------------------------------------------------------------------
1 | @import 'variables';
2 | @import 'compass/css3/transform';
3 | @import 'normalize';
4 | @import 'helpers';
5 | @import 'base';
6 | @import 'layout';
7 | @import 'modules';
8 | @import 'state';
9 | @import 'breakpoint1';
10 | @import 'hidpi';
11 | @import 'print';
--------------------------------------------------------------------------------
/asset/js/site/site.min.js:
--------------------------------------------------------------------------------
1 | /*! CascadisJS - v0.1.0 - 2012-10-02
2 | * http://cascadiajs.com/
3 | * Copyright (c) 2012 Alex Lande; Licensed MIT */
4 | console.log("Testing one two"),function(){var e=function(){},t=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],n=t.length,r=window.console||{};while(n--)r[t[n]]=r[t[n]]||e}();
--------------------------------------------------------------------------------
/asset/css/scss/_layout.scss:
--------------------------------------------------------------------------------
1 | $block: 280px;
2 |
3 | .l-constrained {
4 | width: $block * 3;
5 | margin: 0 auto;
6 | padding: 0 24px;
7 | }
8 |
9 | .l-column {
10 | padding-left: 0;
11 | margin: 3em 0 0 -1.5em;
12 | list-style: none;
13 | }
14 |
15 | .l-single {
16 | width: $block - 24px;
17 | float: left;
18 | margin-left: 1.5em;
19 | }
20 |
21 | .l-double {
22 | width: $block * 2 - 24px;
23 | float: left;
24 | margin-left: 1.5em;
25 | }
26 |
27 | .first {
28 | margin-left: 0;
29 | clear: both;
30 | }
--------------------------------------------------------------------------------
/asset/js/compiled/site.min.js:
--------------------------------------------------------------------------------
1 | /*! CascadisJS - v0.1.0 - 2012-10-17
2 | * http://cascadiajs.com/
3 | * Copyright (c) 2012 CascadiaJS; Licensed MIT */
4 | $(function(){$(".information-nav a").click(function(e){var t=$(this).attr("href");$(".information-tab, .information-nav a").removeClass("active"),$(t).addClass("active"),$(this).addClass("active"),e.preventDefault()}),Array.prototype.slice.call(document.querySelectorAll("h2[id]")).forEach(function(e){var t=document.createElement("a");t.href="#"+e.id,t.className="sct-anchor",e.appendChild(t)})});
--------------------------------------------------------------------------------
/asset/js/main.js:
--------------------------------------------------------------------------------
1 | $(function() {
2 |
3 | // information section tabs
4 |
5 | $('.information-nav a').click(function(e) {
6 | var target = $(this).attr('href');
7 |
8 | $('.information-tab, .information-nav a').removeClass('active');
9 | $(target).addClass('active');
10 | $(this).addClass('active');
11 |
12 | e.preventDefault();
13 | });
14 |
15 | // add anchor links for all section headers
16 |
17 | Array.prototype.slice.call(document.querySelectorAll('h2[id]')).forEach(function(h2) {
18 | var a = document.createElement('a');
19 | a.href = '#' + h2.id;
20 | a.className = 'sct-anchor';
21 | h2.appendChild(a);
22 | });
23 |
24 | });
--------------------------------------------------------------------------------
/asset/js/compiled/site.js:
--------------------------------------------------------------------------------
1 | $(function() {
2 |
3 | // information section tabs
4 |
5 | $('.information-nav a').click(function(e) {
6 | var target = $(this).attr('href');
7 |
8 | $('.information-tab, .information-nav a').removeClass('active');
9 | $(target).addClass('active');
10 | $(this).addClass('active');
11 |
12 | e.preventDefault();
13 | });
14 |
15 | // add anchor links for all section headers
16 |
17 | Array.prototype.slice.call(document.querySelectorAll('h2[id]')).forEach(function(h2) {
18 | var a = document.createElement('a');
19 | a.href = '#' + h2.id;
20 | a.className = 'sct-anchor';
21 | h2.appendChild(a);
22 | });
23 |
24 | });
--------------------------------------------------------------------------------
/asset/js/site/site.js:
--------------------------------------------------------------------------------
1 | console.log('Testing one two');
2 |
3 | // Avoid `console` errors in browsers that lack a console.
4 | (function() {
5 | var noop = function noop() {};
6 | var methods = [
7 | 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
8 | 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
9 | 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
10 | 'timeStamp', 'trace', 'warn'
11 | ];
12 | var length = methods.length;
13 | var console = window.console || {};
14 |
15 | while (length--) {
16 | // Only stub undefined methods.
17 | console[methods[length]] = console[methods[length]] || noop;
18 | }
19 | }());
20 |
21 | // Place any jQuery/helper plugins in here.
22 |
--------------------------------------------------------------------------------
/proposal/making-robots-walk_rwldrn.md:
--------------------------------------------------------------------------------
1 | Making Robots Walk
2 | ========================
3 |
4 | * Speaker : Rick Waldron
5 | * Available : 11/8 - 11/9, 2012
6 | * Duration : 30 mins
7 |
8 | Description
9 | -----------
10 |
11 | Johnny-Five is a framework for programming Arduino robots on Node.js. Making Robots Walk entails sequential execution complexities that could only be solved by just letting Node be Node.
12 |
13 | Speaker Bio
14 | -----------
15 |
16 | 
17 |
18 |
19 | I make things with JavaScript.
20 |
21 |
22 |
23 | Links
24 | -----
25 |
26 | * Blog: [Rick Waldron](http://weblog.bocoup.com/author/rick-waldron/)
27 | * Company: [Bocoup](http://bocoup.com)
28 | * Github: [rwldrn](http://github.com/rwldrn)
29 | * Twitter: [@rwaldron](http://twitter.com/rwaldron)
30 |
--------------------------------------------------------------------------------
/proposal/proposal-template_janedoe.md:
--------------------------------------------------------------------------------
1 | [Proposal Title]
2 | ========================
3 |
4 | * Speaker : [Your Name, eg: *Jane Doe*]
5 | * Available : [Dates/Times Available, eg: *Feb 11th, 9am-12pm*]
6 | * Duration : [Length of Presentation, eg: *45 mins*]
7 |
8 | Description
9 | -----------
10 |
11 | [Presentation description goes here. Try to keep it under say, 500 words, but more than 140 characters]
12 |
13 | Speaker Bio
14 | -----------
15 |
16 | 
17 |
18 | I'm a big furry mammal that likes to run through the forest and splash in the stream and I write code sometimes.
19 |
20 |
21 | Links
22 | -----
23 |
24 | * Blog: http://bloggityblogblog.com/jane-doe-does-code
25 | * Company: http://companitycompanycomp.com/jane-doe-makes-cool-products
26 | * Github: http://github.com/jane-doe
27 | * Twitter: http://twitter.com/janedoe
28 |
--------------------------------------------------------------------------------
/proposal/sailing-at-midnight-kitcambridge.md:
--------------------------------------------------------------------------------
1 | # Sailing at Midnight
2 |
3 | * Speaker: Kit Cambridge
4 | * Available: 11/8 - 11/9, 2012
5 | * Duration: 30 minutes
6 |
7 | # Description
8 |
9 | Sail is a collection of low-level functions to help make DOM APIs more palatable. I'll be speaking about the lessons I learned while working on Sail — cross-browser consistency, custom builds, and adventures in spec interpretation.
10 |
11 | # Speaker Bio
12 |
13 | 
14 |
15 | I'm a [rookie engineer](http://jeremyckahn.github.com/blog/2012/09/23/developers-vs-engineers-vs-scientists/) who loves JavaScript, Ruby, running, tea, and literature.
16 |
17 | # Links
18 |
19 | * [Web](http://kitcambridge.github.com)
20 | * [Voxer](http://voxer.com)
21 | * [GitHub](https://github.com/kitcambridge)
22 | * [Twitter](http://twitter.com/kitcambridge)
--------------------------------------------------------------------------------
/proposal/add-lightness_revin.md:
--------------------------------------------------------------------------------
1 | Add Lightness
2 | ========================
3 |
4 | * Speaker : Revin Guillen
5 | * Available : 8–9 Nov 2012
6 | * Duration : 30 mins
7 |
8 | Description
9 | -----------
10 |
11 | We often talk about simplicity as something we achieve through subtraction, but Colin Chapman's philosphy of "adding lightness" helps us re-frame the idea so we can be deliberate about designing software that stays simple throughout its life. We'll discuss how this engineer and car designer's ideas can make our software better.
12 |
13 | Speaker Bio
14 | -----------
15 |
16 | 
17 |
18 | I'm a freelance front end developer, open standards nut, and Dojo committer. I JavaScript all the things, but only when appropriate. When I grow up I want to be a rocket powered sky crane.
19 |
20 | Links
21 | -----
22 |
23 | * Github: [/revin](http://github.com/revin)
24 | * Twitter: [@revin](http://twitter.com/revin)
25 |
26 |
--------------------------------------------------------------------------------
/proposal/survey-of-backbone-plugin-ecosystem.md:
--------------------------------------------------------------------------------
1 | #Survey of Backbone Plugin Ecosystem#
2 |
3 | Backbone is quickly becoming one of the most popular client side MVC (MVV?) frameworks, and along with it an entire ecosystem of plugins are starting to emerge.
4 |
5 | In this presentation, we will cover the backbone plugin landscape, including a look at the breadth of available plugins, a look at the advantages of different approaches to backbone plugin development (extension vs injection, etc) as well as deeper dive into some of the most popular/useful plugins out in the wild.
6 |
7 | ##Speaker Bio##
8 |
9 | troythewolfe
10 |
11 | 
12 |
13 | Troy Wolfe is a software engineer who loves all things UI, and has a visceral reaction to information design and rich interactivity.
14 |
15 | * [Github](http://github.com/troythewolfe)
16 | * [Website](http://www.troythewolfe.com)
17 | * [Twitter](http://twitter.com/wolfetr)
--------------------------------------------------------------------------------
/proposal/cheap-design-into_chustar.md:
--------------------------------------------------------------------------------
1 | [Cheap Introduction to Design]
2 | ========================
3 |
4 | * Speaker : [Chuma Nnaji]
5 | * Available : [Anytime(?)]
6 | * Duration : [15-20 minutes]
7 |
8 | Description
9 | -----------
10 |
11 | "Launch now, deal with the design later."
12 | Right?
13 | Wrong!
14 | The first impression that users get of your new project could very well be their
15 | last if you don't do some work to get a clean and uncluttered interface.
16 | Even when you're building a prototpe, it helps to build a well laid out interface
17 | right from the begining to avoid getting used to the "localhost" design.
18 |
19 | Speaker Bio
20 | -----------
21 |
22 | 
23 |
24 | SDET at Microsoft by day, web developer by night. Currently working on chrome extensions and mobile apps.
25 |
26 | Links
27 | -----
28 |
29 | * Website: http://chumannaji.com
30 | * Github: https://github.com/chustar
31 | * Twitter: https://twitter.com/chustar
32 |
--------------------------------------------------------------------------------
/proposal/stream-all-things_raynos.md:
--------------------------------------------------------------------------------
1 | Stream all the things
2 | ========================
3 |
4 | * Speaker : Jake Verbaten
5 | * Available : 11/8 - 11/9, 2012
6 | * Duration : 30 mins
7 |
8 | Description
9 | -----------
10 |
11 | Witness why streams are awesome and what happens when you use them everywhere for everything.
12 |
13 | We will walk through what the new 0.9 streams look like. We then look at how functional programming with streams plays nicely. Once we have functional programming we can just pile on the abstractions until we have a fully working streaming web application, with all the usual features (reactive, real-time, distributed, peer to peer, etc)
14 |
15 | Speaker Bio
16 | -----------
17 |
18 | 
19 |
20 | I have a NPM addiction. I also make mad science JavaScript experiments.
21 |
22 | Links
23 | -----
24 |
25 | * [npm](https://npmjs.org/~raynos)
26 | * [github](https://github.com/Raynos)
27 | * [company](http://www.colingo.com/)
28 | * [twitter](https://twitter.com/Raynos2)
--------------------------------------------------------------------------------
/proposal/make-nodjs-your-framework-agnostic-worker_pconerly.md:
--------------------------------------------------------------------------------
1 | [Make node.js your framework-agnostic worker!]
2 | ========================
3 |
4 | * Speaker : [Peter Conerly]
5 | * Available : [Either Day]
6 | * Duration : [5min / lightning talk]
7 |
8 | Description
9 | -----------
10 |
11 | I needed to use nodejs as a worker for a js-specific package, but I had already written the website in Django! The lightning talk will present my trivial redis queueing system to send tasks from Django (or any framework that can access redis) to nodejs.
12 |
13 | Speaker Bio
14 | -----------
15 |
16 | 
17 |
18 | Peter lives & codes in Seattle. While he has a B.S. in Biochemistry, he has left the world of biotech to be a web developer. His mothertongue is python, Django is his favorite web framework and phantomjs is his favorite JS project.
19 |
20 | Links
21 | -----
22 |
23 | * Blog: http://peterconerly.com/blog/
24 | * Company: Freelance/Self/None
25 | * Github: https://github.com/pconerly/
26 | * Twitter: https://twitter.com/pete_thedevguy
--------------------------------------------------------------------------------
/proposal/js-in-your-chrome-extension_pconerly.md:
--------------------------------------------------------------------------------
1 | [JS in your chrome extension]
2 | ========================
3 |
4 | * Speaker : [Peter Conerly]
5 | * Available : [Either Day]
6 | * Duration : [~30min]
7 |
8 | Description
9 | -----------
10 |
11 | Not sure when or where to call the chrome api in your chrome extension? What does your background.js do, and why is it different from js files listed in content_scripts['js']? This talk will address common pitfalls and structure of chrome extensions, through the lens of a chrome extension the speaker wrote.
12 |
13 | Speaker Bio
14 | -----------
15 |
16 | 
17 |
18 | Peter lives & codes in Seattle. While he has a B.S. in Biochemistry, he has left the world of biotech to be a web developer. His mothertongue is python, Django is his favorite web framework and phantomjs is his favorite JS project.
19 |
20 | Links
21 | -----
22 |
23 | * Blog: http://peterconerly.com/blog/
24 | * Company: Freelance/Self/None
25 | * Github: https://github.com/pconerly/
26 | * Twitter: https://twitter.com/pete_thedevguy
--------------------------------------------------------------------------------
/proposal/persona-login-that-just-works_ozten.md:
--------------------------------------------------------------------------------
1 | Persona - Log In that Just Works
2 | ================================
3 |
4 | * Speaker : Austin King aka *ozten*
5 | * Available : Nov - Feb
6 | * Duration : 30 minutes - Can make shorter or longer
7 |
8 | Description
9 | -----------
10 |
11 | Persona is a new decentralized authentication system for the web. It's powered by JavaScript and gets
12 | annihilates per-site passwords, making your users happier and your backend more secure.
13 |
14 | In this talk we'll BrowserID enable a website and learn about all the cool aspects of this Upgrade for
15 | The Web Platform.
16 |
17 | Speaker Bio
18 | -----------
19 |
20 | 
21 |
22 | I'm a Developer on the Mozilla Identity team. I've been hack with the web for many moons and love
23 | learning new tricks. Spell check is for the week!
24 |
25 |
26 | Links
27 | -----
28 |
29 | * Blog: http://ozten.com/
30 | * Company: http://mozilla.org
31 | * Github: http://github.com/ozten
32 | * Twitter: http://twitter.com/ozten
33 | * Project: https://login.persona.org
34 |
--------------------------------------------------------------------------------
/proposal/the-tyranny-of-choice.md:
--------------------------------------------------------------------------------
1 | [The Tyranny of Choice]
2 | ========================
3 |
4 | * Speaker : [Matthew Bergman]
5 | * Available : [November]
6 | * Duration : [15-20 minutes]
7 |
8 | Description
9 | -----------
10 | JS is blowing up exponentially. NPM has over 15,000 packages, 20-30 JS frameworks, myraid of flow controll libraries and 10s of JS conferences daily. More is better right. Not always. I want to explore some or the problems that having so many choices in JS is creating for us and the next generation of programmers and some ways we can go about dealing with this continuing to grow our options.
11 |
12 |
13 | Speaker Bio
14 | -----------
15 |
16 | fotoverite aka Matthew Bergman
17 |
18 | 
19 |
20 | I'm an expat from the ruby world trying to make it in great city of node and JS! I'm the senior engineer at novafabrica where I work on rail applications and spend my spare time tinkering with other frameworks.
21 |
22 | Links
23 | -----
24 |
25 | * Company: https://www.novafabrica.com
26 | * Github: https://github.com/FotoVerite
27 | * Twitter: https://twitter.com/fotoverite
28 |
--------------------------------------------------------------------------------
/proposal/observable-nodejs_dshaw.md:
--------------------------------------------------------------------------------
1 | # Observable Node.js
2 |
3 | Production considerations for running and maintaining realtime Node.js apps.
4 |
5 | ## Talk
6 |
7 | **Name:** Daniel Shaw (@dshaw)
8 |
9 | **Title:** Observable Node.js
10 |
11 | **Description:** Building realtime apps with Node.js is easy. The real fun begins when you start to scale (and by "fun", we mean unholy pain and agony). Unfortunely, it's extremely hard to fabricate scale. You can try to simulate it, but the pressure placed on a system is likely to be different from real pressures placed on your system at scale. dshaw will share his experience scaling realtime apps and will present some techniques that will help better prepare for scale when it happens.
12 |
13 | **Duration:** 20 mins (can accomodate up to 50 mins, especially if there's Q/A)
14 |
15 | **Photo:** [dshaw_256x256.png](http://dshaw.me/SIzJyM)
16 |
17 | ## Bio
18 |
19 | Daniel Shaw is a Node.js Engineer on the Voxer platform team and co-founder of The Node Firm. He is a regular seat and organizer of the NodeUp podcast. He is Socket.io contributor, startup advisor and developer mentor. @dshaw is passionate about helping startups be successful with Node.js and exploring the scalability potential of Node.js.
20 |
--------------------------------------------------------------------------------
/asset/grunt/include/reloadClient.js:
--------------------------------------------------------------------------------
1 | /*
2 | * grunt-reload
3 | * https://github.com/webxl/grunt-reload
4 | *
5 | * Copyright (c) 2012 webxl
6 | * Licensed under the MIT license.
7 | */
8 |
9 | (function(window) {
10 |
11 | 'use strict';
12 |
13 | var reloader = (function Reloader() {
14 |
15 | var l = window.location, url;
16 |
17 | if (window.__reloadServerUrl) {
18 | url = window.__reloadServerUrl;
19 | } else {
20 | url = 'ws://' + l.host;
21 | }
22 |
23 | return {
24 | isSocketConnected:function () {
25 | return this.socket && this.socket.readyState === WebSocket.OPEN;
26 | },
27 | connect:function () {
28 | if (this.isSocketConnected()) {
29 | return;
30 | }
31 | if (this.connectTimeout) {
32 | clearTimeout(this.connectTimeout);
33 | }
34 | this.socket = new WebSocket(url);
35 |
36 | this.socket.onmessage = function (msg) {
37 | this.close();
38 | console.log(msg.data);
39 | window.document.location.reload();
40 | };
41 |
42 | // Todo: reconnect support
43 | }
44 | };
45 |
46 | }());
47 |
48 | setTimeout(function() { reloader.connect(); }, 3000);
49 |
50 | }(this));
--------------------------------------------------------------------------------
/proposal/optimize-your-tdd_airportyh.md:
--------------------------------------------------------------------------------
1 | Optimize Your TDD
2 | =================
3 |
4 | * Speaker : Toby Ho
5 | * Available : Anytime
6 | * Duration : 30 minutes (but flexible)
7 |
8 | Description
9 | -----------
10 |
11 | Test-Driven Development has become increasingly important for web developers as Javascript-based web applications become more and more complex. However, TDD is not an easy discipline to master, and doing it well takes a lot of practice and learning. I will first explore and motivate the *one reason* why we do TDD after all: to be able to *code faster*. Then, I will present a set of principles, guidelines, tips and tools to help you optimize for your coding speed when TDD'ing.
12 |
13 | Speaker
14 | -------
15 |
16 | 
17 |
18 | Toby Ho is a Javascript hacker in Atlanta. He teaches a Javascript class monthly and is passionate about helping others learn. He is a practical practitioner of TDD, and also wrote a test runner called Testem - designed to streamline the TDD workflow.
19 |
20 | Links
21 | -----
22 |
23 | * Blog : http://tobyho.com
24 | * Github: http://github.com/airportyh
25 | * Twitter: http://twitter.com/airportyh
26 | * Testem: https://github.com/airportyh/testem
--------------------------------------------------------------------------------
/proposal/promises-for-profit_delvarworld.md:
--------------------------------------------------------------------------------
1 | [Promises for Profit]
2 | ========================
3 |
4 | * Speaker : [Andrew Ray]
5 | * Available : [Uhhh, when is cascadia? And where / what is cascadia?]
6 | * Duration : [15-20 minutes]
7 |
8 | Description
9 | -----------
10 |
11 | What are javascript promises? When should you use them? Do they make your code
12 | cleaner (probably)? What are their benefits? What are their downsides? Where do
13 | promises show true power? How do you use them in jQuery? How do you use them in
14 | NodeJS? How do we use them at Crowdtilt? In what version of jQuery should you
15 | ignore promises because they are terrible and broken? All these questions
16 | anwered and nothing else if you accept Andrew Ray's "Promises for Profit" talk!
17 |
18 | Speaker Bio
19 | -----------
20 |
21 | 
22 |
23 | I'm a JS and VIM loving developer from San Francisco. I've worked at
24 | Atlassian (don't blame me for JIRA) and currently and rocking the amazing
25 | startup Crowdtilt.
26 |
27 | Links
28 | -----
29 |
30 | * Blog: http://delvarworld.github.com
31 | * Company: https://www.crowdtilt.com
32 | * Github: https://github.com/DelvarWorld
33 | * Twitter: https://twitter.com/andrewray
34 |
--------------------------------------------------------------------------------
/proposal/excel-in-the-browser_halffullheart.md:
--------------------------------------------------------------------------------
1 | Excel in the Browser
2 | ====================
3 |
4 | * Speaker : Daniel Worthington
5 | * Available : Nov 8-9th, 10am-6pm
6 | * Duration : 30min
7 |
8 | Description
9 | -----------
10 |
11 | A little over a year ago we started a very ambitious project at Simply
12 | Measured. We built an Excel spreadsheet viewer in JavaScript. We took
13 | the Excel reports we already had and added them to our web app. I’ll
14 | talk about:
15 |
16 | * How to approach building and maintaining a large front-end JavaScript library
17 | * How functional programming and JSON will save you time and stress
18 | * What happens when your UI Designers work in Excel and your Analysts become programmers
19 |
20 |
21 | Speaker Bio
22 | -----------
23 |
24 | 
25 |
26 | I’m a web developer. I love Ruby and JavaScript. I’m also a UI/UX Designer. I’m currently working on product design and development at Simply Measured. I’m also in the early stages of building a new product for professional photographers, Photo Pages.
27 |
28 | Links
29 | -----
30 |
31 | * Company: http://simplymeasured.com/
32 | * Company: http://www.photopagesapp.com/
33 | * Twitter: http://twitter.com/halffullheart
34 |
--------------------------------------------------------------------------------
/proposal/distributed-programming-for-kids_dominictarr.md:
--------------------------------------------------------------------------------
1 | Distributed Systems for Kids.
2 | ========================
3 |
4 | * Speaker : Dominic Tarr
5 | * Available : November 8-9, 2012
6 | * Duration : ~30 minutes
7 |
8 | Description
9 | -----------
10 |
11 | Games are fun. Friends are fun. Playing games with friends are fun.
12 | Programming is fun, especially if you are making games.
13 |
14 | However, Distributed Systems (aka, multiplayer games) are hard, right?
15 |
16 | ...at least, that is what adults will tell you.
17 |
18 | The way adults have learned to think about programming local
19 | systems doesn't work well when distributed systems. But kids don't know that!
20 | so there is nothing stopping them from writing fun distributed systems!
21 |
22 | If you grown-ups can refactor your thinking, they can get in on the fun too!
23 |
24 | Speaker Bio
25 | -----------
26 |
27 | 
28 |
29 | A Mad Scientist experimenting with distributed realtime systems and real-time streaming in node.
30 | I love soup, orange juice, javascript and node.js streams.
31 |
32 | Links
33 | -----
34 |
35 | * Blog: http://dominictarr.com
36 | * Company: http://fybe.com
37 | * Github: http://github.com/dominictarr
38 | * Twitter: http://twitter.com/dominictarr
39 |
40 |
--------------------------------------------------------------------------------
/proposal/model-view-rockstar_dustyjewett.md:
--------------------------------------------------------------------------------
1 | MV* - Model View (Rock)*
2 | ========================
3 |
4 | * Speaker : Dusty Jewett
5 | * Available : Any
6 | * Duration : 45-60 mins
7 |
8 | Description
9 | -----------
10 |
11 | Backbone, Knockout, Angular, Ember... all of these frameworks impose an Architecture on your application... but before you choose, you should know more about the concepts and patterns underlying and driving the frameworks. Come learn about MVC, MVP and MVVM, without any frameworks getting in the way! Understand the pros and cons of each Arch, and how to choose based on your product, team and client. This talk is a deep-dive into generic UI Architectures, prepare to be inundated with JavaScript code.
12 |
13 | Speaker Bio
14 | -----------
15 |
16 | 
17 |
18 | Dusty Jewett is a Software Engineer based in Seattle. He loves dynamic languages and compile-time error checking. He has served as the manager of the Web App Developers meetup for 5 years and Lead/Dev Manager for several companies, but finds the "Individual Contributor" role the most rewarding.
19 |
20 | Links
21 | -----
22 |
23 | * Website: http://dustyjewett.com/
24 | * Github: http://github.com/dustyjewett
25 | * Twitter: http://twitter.com/dustyjewett
26 |
--------------------------------------------------------------------------------
/proposal/big-data-real-time_ineeman.md:
--------------------------------------------------------------------------------
1 | Realtime Big Data makes real data big time
2 | ========================
3 |
4 | * Speaker : Itay Neeman
5 | * Available : [Anytime?]
6 | * Duration : 45 minutes
7 |
8 | Description
9 | -----------
10 |
11 | Interested in keeping your data real-time? What if your data is big, as in Big Data? Every website click, device-to-device communication and social media interaction creates valuable data. Lots of it. All the time. Big Data is raw, detailed, and happening all the time. We'll talk about ingesting, searching and visualizing this real-time data using the power of JavaScript. From inline scripting in HTML to Backbone.js to Node.js, JavaScript has the power to tame your Big Data and I'll show you how.
12 |
13 | Speaker Bio
14 | -----------
15 |
16 | 
17 |
18 | Itay works at Splunk, where he is trying to make it easier for developers to handle
19 | big data, whether it is real time or not. He wrote the Splunk JavaScript SDK, as well
20 | as the code coverage tool for Node.js Cover. He has two cats who are confused about
21 | who exactly owns who.
22 |
23 |
24 | Links
25 | -----
26 |
27 | * Company: http://dev.splunk.com
28 | * Github: http://github.com/itay
29 | * Github (Splunk): http://github.com/splunk
30 | * Twitter: http://twitter.com/itayneeman
31 |
--------------------------------------------------------------------------------
/proposal/rethinking-distributed-systems-with-nodejs_sintaxi.md:
--------------------------------------------------------------------------------
1 | Rethinking Distributed Systems with NodeJS
2 | ==========================================
3 |
4 | * Speaker : Brock Whitten
5 | * Available : Nov 8-10th
6 | * Duration : 30 mins
7 |
8 | Description
9 | -----------
10 |
11 | I love REST APIs but over the years I have seen a common anti-pattern emerge where we are poorly reimplementing libraries over HTTP APIs. We tend to call these SDKs. The root of the problem is with how the design our our data models is at odds with the design of our interfaces.
12 |
13 | Recently, with the creation of the Harp Platform, I have been rethinking this paradigm and I will share with you how we are using tools such as Dnode, Axon, and Thug to keep our system fast, maintainable, and easy to use.
14 |
15 | Speaker Bio
16 | -----------
17 |
18 | !
19 |
20 | Brock Whitten co-founded Chloi where he is currently working on the Harp Platform, a WebFWD project that gives you zero-configuration app publishing within Dropbox. Previously, Brock co-created the PhoneGap project and later became an engineer at Joyent where he first developed their public cloud API. NodeJS, Redis, and HAProxy are among his favourite tools.
21 |
22 | Links
23 | -----
24 |
25 | * Blog: http://sintaxi.com
26 | * Company: http://chloi.io
27 | * Github: https://github.com/sintaxi
28 | * Twitter: https://twitter.com/sintaxi
29 |
--------------------------------------------------------------------------------
/proposal/understanding-asynchronous_coderoshi.md:
--------------------------------------------------------------------------------
1 | Understanding Asynchronous
2 | ========================
3 |
4 | * Speaker : Eric Redmond
5 | * Available : Any
6 | * Duration : 30 mins
7 |
8 | Description
9 | -----------
10 |
11 | Asynchronous development is both the core power, and major frustration of working in javascript. We'll begin with the fundamental issues people face when confronted writing async code for the first time, moving onto the more insidious problems you'll encounter without a firm grasp of how the callback loop actually functions. We'll end with several classes of solutions to the problems of callbacks and waits, from promises/defers and await queues, up to code generating languages with flow control, like icedcoffeescript.
12 |
13 | Speaker Bio
14 | -----------
15 |
16 | 
17 |
18 | Eric's been a longtime advocate of full-stack javascript (before it was cool #hipster), has authored several nodejs projects, is a coffeescript advocate, and technical reviewer of the new Pragmatic Node.js book. He's co-author of Seven Databases in Seven Weeks, international speaker on NoSQL, and an Engineer at Basho (makers of the Riak database).
19 |
20 | Links
21 | -----
22 |
23 | * [npm](https://npmjs.org/~coderoshi)
24 | * [basho](http://basho.com/)
25 | * [github](http://github.com/coderoshi)
26 | * [twitter](http://twitter.com/coderoshi)
27 |
--------------------------------------------------------------------------------
/proposal/app-scale-all-the-things-typescript_jden.md:
--------------------------------------------------------------------------------
1 | # App Scale All The Things - What's Up With TypeScript?
2 |
3 | Microsoft's newly announced TypeScript is the latest in the list of languages
4 | which compile to JavaScript. But unlike CoffeeScript or other alternatives,
5 | it's really just a thin veneer on top of plain old JS. So, TypeScript or
6 | HypeScript? Let's find out. For bonus fun, we'll look at the TypeScript
7 | compiler API and look at unobtrusive uses of TypeScript to make your libraries
8 | easier to consume.
9 |
10 | Runtime: 30ish minutes (I'm flexible)
11 |
12 | ## By whom?
13 |
14 | jden aka Jason Denizac
15 |
16 | ![a smiling photo of jden][1]
17 |
18 | After declaring an Art History major and graduating with a degree in Political
19 | Science, Jason decided to become a javascript hacker bent on fixing health
20 | technology. When asked to list examples of software software he likes, he once
21 | responsed "text editors, mostly. And web browsers."
22 |
23 | - [blog](http://blog.denizac.org)
24 | - [twitter](https://twitter.com/leJDen)
25 | - [lanyrd](http://lanyrd.com/profile/lejden/)
26 | - [ADN](https://alpha.app.net/jden)
27 | - [geekli.st](https://geekli.st/leJDen)
28 | - [coderwall](http://coderwall.com/denizac)
29 | - [company](http://www.agilediagnosis.com/)
30 |
31 | Availability: 11/8 - 11/9, 2012.
32 |
33 | [1]: https://raw.github.com/cascadiajs/cascadiajs.github.com/master/proposal/images/jden.png
--------------------------------------------------------------------------------
/proposal/whirlwind-tour-couchapps-and-viz-with-d3-and-friends_chewbranca.md:
--------------------------------------------------------------------------------
1 | [Whirlwind Tour of CouchApp Visualizations with D3 and Friends]
2 | ========================
3 |
4 | * Speaker : [Russell Branca]
5 | * Available : [Nov 8th and 9th]
6 | * Duration : [45-60 mins]
7 |
8 | Description
9 | -----------
10 |
11 | CouchApps are an interesting way of attaching self contained
12 | applications together with data in a CouchDB database. This talk will
13 | demonstrate how to leverage modern visualization tools such as D3,
14 | Cubism and Crossfilter to do client side data processing and
15 | visualization on top of server side distributed MapReduce processing
16 | with CouchDB.
17 |
18 | You'll see how you can create powerful, two tier applications on top of
19 | a distributed database, allowing you to deploy on hosting providers
20 | with no server installs.
21 |
22 | If you have a local CouchDB install on your laptop, you will be able
23 | to replicate the application and play along as we go.
24 |
25 |
26 | Speaker Bio
27 | -----------
28 |
29 | 
30 |
31 | I'm a front end developer at [Cloudant](http://cloudant.com)
32 | specializing in data driven javascript applications and visualizations.
33 |
34 |
35 | Links
36 | -----
37 |
38 | * Company: http://cloudant.com
39 | * Github: http://github.com/chewbranca
40 | * Twitter: http://twitter.com/chewbranca
41 |
--------------------------------------------------------------------------------
/proposal/are-we-there-yet_jden.md:
--------------------------------------------------------------------------------
1 | # "Are we there yet?"
2 | _and other stuff you shouldn't have to care about_
3 |
4 | By now you've heard a bit about promises (and if you haven't you probably
5 | should check them out). They're about more than cleaning up "callback soup" and
6 | making pretty APIs - they provide a great way to maintain clear separation of
7 | concerns in your asynchronous code. Logging, timing, "loading" status
8 | indicators - promises make it easy to keep your application DRY.
9 | Cross listed under `PROM 201 - Intermediate Applications of Promises`.
10 | Warning: contains code.
11 |
12 | Runtime: 30 - 60 minutes (as time allows)
13 |
14 | ## By whom?
15 |
16 | jden aka Jason Denizac
17 |
18 | ![a smiling photo of jden][1]
19 |
20 | After declaring an Art History major and graduating with a degree in Political
21 | Science, Jason decided to become a javascript hacker bent on fixing health
22 | technology. When asked to list examples of software software he likes, he once
23 | responsed "text editors, mostly. And web browsers."
24 |
25 | - [blog](http://blog.denizac.org)
26 | - [twitter](https://twitter.com/leJDen)
27 | - [lanyrd](http://lanyrd.com/profile/lejden/)
28 | - [ADN](https://alpha.app.net/jden)
29 | - [geekli.st](https://geekli.st/leJDen)
30 | - [coderwall](http://coderwall.com/denizac)
31 | - [company](http://www.agilediagnosis.com/)
32 |
33 | Availability: 11/8 - 11/9, 2012.
34 |
35 | [1]: https://raw.github.com/cascadiajs/cascadiajs.github.com/master/proposal/images/jden.png
--------------------------------------------------------------------------------
/proposal/testing-like-a-boss_mdarnall.md:
--------------------------------------------------------------------------------
1 | Testing Like A Boss
2 | =================================
3 | * Speaker : Matt Darnall
4 | * Available : Either Day
5 | * Duration : 30 minutes
6 |
7 | Description
8 | ---------------------------------
9 |
10 | You're code base is growing, and you need to know your code will run on all the browsers and potentially on multiple devices. You have a suite of tests, and you are aware of the various tools to write tests, but when it comes to actually running them you may not be doing all that you can to ensure realistic results and useful feedback.
11 |
12 | From quick headless test runners to cloud-based services that can target all the browsers we'll cover how you can incorporate a set of modern tools and approaches to your daily routine to continuously test your code base in a quick and efficient manner.
13 |
14 | Speaker Bio
15 | ---------------------------------
16 | 
17 |
18 | I'm a developer living in sunny Portlandia. I'm all over the internets
19 | and love to build enjoyable applications for people to use. When I'm not
20 | telling computers what to do I'm probably into a tasty beverage or making funny meme pics of my friends in comprising situations.
21 |
22 | Links
23 | ---------------------------------
24 | * Website : http://mdarnall.com
25 | * Blog : http://blog.mdarnall.com
26 | * Github : http://github.com/mdarnall
27 | * Twitter : http://twitter.com/mdarnall
28 |
29 |
--------------------------------------------------------------------------------
/proposal/lodash-for-a-better-utility-belt_jdalton.md:
--------------------------------------------------------------------------------
1 | Lo-Dash for a better utility belt.
2 | ========================
3 |
4 | * Speaker : John-David Dalton
5 | * Available : 11/8 - 11/9, 2012
6 | * Duration : 45 mins (with Q/A)
7 |
8 | Description
9 | -----------
10 |
11 | Lo-Dash is a drop-in replacement[*](https://github.com/bestiejs/lodash/wiki/Drop-in-Disclaimer) for Underscore.js
12 | delivering [performance](http://lodash.com/benchmarks), [bug fixes](https://github.com/bestiejs/lodash#resolved-underscorejs-issues),
13 | and [additional features](https://github.com/bestiejs/lodash#features). I will discuss the unconventional way in which Lo-Dash gets
14 | its performance gains, dive into its features, and explore some of the extra geeky JS things I learned or implemented while developing Lo-Dash.
15 |
16 | Speaker Bio
17 | -----------
18 |
19 | 
20 |
21 | I'm a Chakra performance program mananger at [Microsoft](http://blogs.msdn.com/b/ie/archive/2012/06/13/advances-in-javascript-performance-in-ie10-and-windows-8.aspx), co-maintainer of [jsPerf.com](http://jsperf.com), contributor to [Benchmark.js](http://benchmarkjs.com),
22 | advocate of spec compliant polyfills, library/framework enthusiast, tinkerer, bug fixer, and overall JS fanboy.
23 |
24 | Links
25 | -----
26 |
27 | * Blog: [allyoucanleet.com](http://allyoucanleet.com)
28 | * GitHub: [/jdalton](http://github.com/jdalton)
29 | * Twitter: [@jdalton](http://twitter.com/jdalton)
30 | * Project: [lodash.com](http://lodash.com)
31 |
--------------------------------------------------------------------------------
/proposal/does_size_matter__microjs_fx_vs_macrojs_fx_skoon.md:
--------------------------------------------------------------------------------
1 | Does Size Matter? MicroJS Frameworks versus MacroJS Frameworks
2 | ========================
3 |
4 | * Speaker : Scott Koon
5 | * Available : November 8-9, 2012
6 | * Duration : 30 minutes
7 |
8 | Description
9 | -----------
10 | When you are starting a new project, you can pick any JS frameworks you want.
11 | What are the pros and cons of picking a large JS framework like ExtJS versus smaller JS frameworks like EnderJS. How does it affect future development? Features?
12 | At what point do you say, "Hey, I don't really need all of the stuff that this framework offers. I really just need to wire up events."
13 | In this talk, I will talk about what a microJS framework is and I'll give a quick survey of the currently available microjs frameworks. I'll also cover what picking a lot of smaller frameworks versus one big framework means in terms of page load, features, and maintainability.
14 |
15 |
16 | Speaker Bio
17 | ------------
18 |
19 | 
20 |
21 |
22 | I've been working with JavaScript for a long time. I co-authored a book called "Professional JavaScript Frameworks" published by Wrox press. I've been a web developer for over 17 years.
23 |
24 |
25 | Links
26 | -----
27 | * Blog : http://lazycoder.com/
28 | * Twitter : @lazycoder
29 | @LazycoderLinks
30 | * GitHub : http://github.com/skoon
31 | * BitBucket : http://bitbucket.org/scott_koon
32 | * podcast : http://herdingcode.com
33 |
34 |
--------------------------------------------------------------------------------
/asset/css/scss/_print.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Print styles.
3 | Inlined to avoid required HTTP connection: h5bp.com/r
4 | ========================================================================== */
5 |
6 | @media print {
7 | * {
8 | background: transparent !important;
9 | color: #000 !important; /* Black prints faster: h5bp.com/s */
10 | box-shadow: none !important;
11 | text-shadow: none !important;
12 | }
13 |
14 | a,
15 | a:visited {
16 | text-decoration: underline;
17 | }
18 |
19 | a[href]:after {
20 | content: " (" attr(href) ")";
21 | }
22 |
23 | abbr[title]:after {
24 | content: " (" attr(title) ")";
25 | }
26 |
27 | /*
28 | * Don't show links for images, or javascript/internal links
29 | */
30 |
31 | .ir a:after,
32 | a[href^="javascript:"]:after,
33 | a[href^="#"]:after {
34 | content: "";
35 | }
36 |
37 | pre,
38 | blockquote {
39 | border: 1px solid #999;
40 | page-break-inside: avoid;
41 | }
42 |
43 | thead {
44 | display: table-header-group; /* h5bp.com/t */
45 | }
46 |
47 | tr,
48 | img {
49 | page-break-inside: avoid;
50 | }
51 |
52 | img {
53 | max-width: 100% !important;
54 | }
55 |
56 | @page {
57 | margin: 0.5cm;
58 | }
59 |
60 | p,
61 | h2,
62 | h3 {
63 | orphans: 3;
64 | widows: 3;
65 | }
66 |
67 | h2,
68 | h3 {
69 | page-break-after: avoid;
70 | }
71 | }
--------------------------------------------------------------------------------
/proposal/learn-from-the-masters_topfunky.md:
--------------------------------------------------------------------------------
1 | Learn from the Masters
2 | ========================
3 |
4 | * Speaker : Geoffrey Grosenbach
5 | * Available : All dates open
6 | * Duration : 30 mins
7 |
8 | Description
9 | -----------
10 |
11 | Over the last two years, I've traveled the world to pair with expert designers and developers on short projects to learn their day to day secrets and understand their philosophies. I've condensed these live sessions into a 30 minute multimedia audio/video extravaganza of tricks, insights, opinions, and old-fashioned rants from Tim Caswell (Node.js), Ryan Singer (37signals), Kyle Neath (GitHub), Neven Mrgan (Panic), Zed Shaw, Gary Bernhardt (Destroy All Software), and others.
12 |
13 | As open source developers, we can read each others' code, but we rarely see developers working as they write that code. This is a rare peek into the way top developers think through coding problems!
14 |
15 |
16 | Speaker Bio
17 | -----------
18 |
19 | !
20 |
21 | Geoffrey Grosenbach is the founder of PeepCode screencasts, cutting edge tutorials for web developers and alpha geeks. PeepCode's growing staff published on Node.js, Backbone and CoffeeScript years before they appeared in books. He spends his time documenting undocumented Open Source software and producing mini documentaries with innovative developers and designers across the whole range of Open Source languages and software.
22 |
23 | Links
24 | -----
25 |
26 | * Blog: https://peepcode.com/blog
27 | * Company: https://peepcode.com
28 | * Github: http://github.com/topfunky
29 | * Twitter: http://twitter.com/topfunky
30 |
--------------------------------------------------------------------------------
/proposal/realtime-monitoring-with-nodejs_lorenwest.md:
--------------------------------------------------------------------------------
1 | Real Time Monitoring with Node.js
2 | =================================
3 |
4 | * Speaker : *Loren West*
5 | * Available : *All conference Nov. 8-9 2012*
6 | * Duration : *30 mins. 45 with QA*
7 |
8 | Description
9 | -----------
10 |
11 | Stuff happens, and you need to see it. In this interactive session we'll use
12 | Node.js and open source to build a real time dashboard for monitoring your most
13 | important systems.
14 |
15 | Come play with your favorite stars: Node.js, Socket.IO, Backbone, jQuery, and
16 | discover some new talent. Bring your laptops, your wifi, and your favorite
17 | caffiene for this fast paced interactive session.
18 |
19 | Then strap on your retro goggles. REPL may make an appearance, and word is she's
20 | back - and lookin' good.
21 |
22 | Speaker Bio
23 | -----------
24 |
25 | Loren rides the Sounder train into Seattle, and uses that time writing open source
26 | software. You may have seen him surfing the streets on an [electric skateboard](http://xkcd.com/139/).
27 | The other stuff is public - see the links below.
28 |
29 | Links
30 | -----
31 |
32 | * Company: [A.R.O.](http://aro.com)
33 | * LinkedIn: [http://www.linkedin.com/in/lorenwest](http://www.linkedin.com/in/lorenwest)
34 | * Github: [http://github.com/lorenwest](http://github.com/lorenwest)
35 | * Twitter: [http://twitter.com/lorenwest](http://twitter.com/lorenwest)
36 | * Email: [CascadiaJS@lorenwest.com](mailto:cascadiajs@lorenwest.com)
37 | * Facebook: You don't want to see that. Some things can't be un-seen.
38 |
39 | Special Request
40 | ---------------
41 | This session will be even more fun with two screens. I'll bring two laptops if necessary.
42 |
--------------------------------------------------------------------------------
/asset/css/scss/_base.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Base styles: opinionated defaults
3 | ========================================================================== */
4 |
5 | html,
6 | button,
7 | input,
8 | select,
9 | textarea {
10 | color: #495555;
11 | }
12 |
13 | body {
14 | font-size: 1em;
15 | line-height: 1.4;
16 | }
17 |
18 | html, body {
19 | overflow-x: hidden;
20 | }
21 |
22 | a {
23 | color: $accent;
24 | text-decoration: none;
25 |
26 | &:hover, &:focus {
27 | text-decoration: underline;
28 | }
29 | }
30 |
31 | nav ol, nav ul {
32 | padding: 0;
33 | }
34 |
35 | /*
36 | * Remove text-shadow in selection highlight: h5bp.com/i
37 | * These selection declarations have to be separate.
38 | * Customize the background color to match your design.
39 | */
40 |
41 | ::-moz-selection {
42 | background: #b3d4fc;
43 | text-shadow: none;
44 | }
45 |
46 | ::selection {
47 | background: #b3d4fc;
48 | text-shadow: none;
49 | }
50 |
51 | /*
52 | * A better looking default horizontal rule
53 | */
54 |
55 | hr {
56 | display: block;
57 | height: 1px;
58 | border: 0;
59 | border-top: 1px solid #ccc;
60 | margin: 1em 0;
61 | padding: 0;
62 | }
63 |
64 | /*
65 | * Remove the gap between images and the bottom of their containers: h5bp.com/i/440
66 | */
67 |
68 | img {
69 | vertical-align: middle;
70 | max-width: 100%;
71 | }
72 |
73 | /*
74 | * Remove default fieldset styles.
75 | */
76 |
77 | fieldset {
78 | border: 0;
79 | margin: 0;
80 | padding: 0;
81 | }
82 |
83 | /*
84 | * Allow only vertical resizing of textareas.
85 | */
86 |
87 | textarea {
88 | resize: vertical;
89 | }
--------------------------------------------------------------------------------
/proposal/tdd-with-angularjs_joeeames.md:
--------------------------------------------------------------------------------
1 | TDD with AngularJS
2 | ========================
3 |
4 | * Speaker : Joe Eames
5 | * Available : Nov 8 and 9
6 | * Duration : 30-60 mins based on need
7 |
8 | Description
9 | -----------
10 |
11 | Are you struggling to do TDD in JavaScript? AngularJS is a fantastic MV* framework from the brains at Google, built from the ground up with Unit Testing in mind. It is quickly becoming the framework of choice for many JavaScript devs. It has a unique dependency injection implementation that not only supports but actually embraces building applications using Test Driven Development. Although no prior experience is assumed, this is NOT an introduction to AngularJS. We will be writing code and enhancing a real-world application. In doing so we will learn how AngularJS supports using TDD to write well structured and maintainable code. Please come prepared to code.
12 |
13 | Speaker Bio
14 | -----------
15 |
16 | 
17 |
18 | Joe began his love of programming on an Apple III in BASIC. Although his preferred language is javascript, he has worked professionally with just about every major Microsoft language. He is currently a front end developer for Domo Inc. Joe has always had a strong interest in education, and has worked both full and part time as a technical teacher for over ten years. He is a frequent blogger and speaker, the curator of testdrivenjs.com, and a panelist on the JavaScript Jabber podcast (http://javascriptjabber.com/) He can be found at @josepheames
19 |
20 |
21 | Links
22 | -----
23 |
24 | * Blog: http://geekswithblogs.net/joeeames
25 | * Passion: http://testdrivenjs.com
26 | * Company: http://www.domo.com/
27 | * Github: http://github.com/joeeames
28 | * Twitter: http://twitter.com/josepheames
29 |
--------------------------------------------------------------------------------
/proposal/easy-dynamic-websites-using-fuzzytoast_howardabrams.md:
--------------------------------------------------------------------------------
1 | [Easy dynamic websites using FuzzyToast]
2 | ========================================
3 |
4 | * Speaker : [Howard Abrams]
5 | * Available : [Anytime]
6 | * Duration : [30 minutes (but flexible)]
7 |
8 | Description
9 | -----------
10 |
11 | Create dynamic web applications by combining data grabbed from REST
12 | services with templates from your website... all with a single line of
13 | JavaScript. The FuzzyToast plugin for jQuery, let's you build small to
14 | medium-sized active websites with minimal effort. This session will
15 | show you the framework, how to use it, and how it can be used with
16 | other jQuery plugins and frameworks.
17 |
18 | Clearly, build clunky, inefficient web applications by having servers
19 | create HTML pages is so twentieth century. However, for many
20 | situations, setting up a Backbone may be more effort than needed. In
21 | this session, I'll build a complete web application that dynamic
22 | retrieves its data from a server that delivers JSON through a REST
23 | interface to show how easy FuzzyToast is to make panels that update
24 | themselves.
25 |
26 | This target audience for this session is those familiar with jQuery,
27 | but not experts and building complete web applications.
28 |
29 |
30 | Speaker Bio
31 | -----------
32 |
33 | 
34 |
35 | I built my first web app in 1993 when I traded in my Tk GUIs for Perl
36 | CGIs running on CERN's first implementation of `httpd`. After building
37 | many web apps in Java and icky JSPs (even creating my own framework
38 | to solve the problem), I started the FuzzyToast project to allow a
39 | browser to do the work of rendering dynamic web pages.
40 |
41 | Links
42 | -----
43 |
44 | * Blog: http://www.howardism.org
45 | * Project: http://www.fuzzytoast.com
46 | * Github: http://github.com/howardabrams
47 | * Twitter: http://twitter.com/howardabrams
48 |
--------------------------------------------------------------------------------
/proposal/requirejs-to-tame-your-javascript_iammerrick.md:
--------------------------------------------------------------------------------
1 | Require.js To Tame Your JavaScript
2 | ==================================
3 |
4 | * Speaker : Merrick Christensen
5 | * Available : Anytime
6 | * Duration : 30 - 45 minutes (Flexible)
7 |
8 | Description
9 | -----------
10 |
11 | The AMD specification and [Require.js](http://requirejs.org) go a long way towards helping you write more maintainable JavaScript. We'll look at leveraging Require.js and AMD modules to tame your JavaScript. This talk will offer a brief introduction to the AMD specification APIs, then dive into the most powerful features of Require.js.
12 |
13 | Here is a list of things we will explore:
14 |
15 | 1. Errbacks, catching errors and responding gracefully. Examples: Restarting a feature. Fallback loading when a CDN goes down.
16 |
17 | 2. Using plugins as middleware to preprocess your JavaScripts. Examples: CoffeeScript. Non-AMD Scripts.
18 |
19 | 3. Using plugins to load different types of dependencies like CSS and templates.
20 |
21 | 4. The Require.js plugin API, writing a plugin.
22 |
23 | 5. Require.js at build time, using r.js to optimize your project. Dead code removal & preprocessing with plugins.
24 |
25 | After this presentation, you will be better equipped to write and maintain large scale JavaScript applications for the browser.
26 |
27 |
28 | Speaker Bio
29 | -----------
30 |
31 | 
32 |
33 | I am a JavaScript developer at Domo reinventing the way people do business. I am a strong proponent for open source software and have been obsessively interested in writing maintainable rich clients for the browser since I was in diapers (not entirely true).
34 |
35 | Concerned about my qualification? [Check it son](http://merrickchristensen.com/work.html)... you're welcome.
36 |
37 |
38 | Links
39 | -----
40 |
41 | * Blog: http://merrickchristensen.com
42 | * Company: http://domo.com
43 | * Github: http://github.com/iammerrick
44 | * Twitter: http://twitter.com/iammerrick
--------------------------------------------------------------------------------
/proposal/dark-secrets-of-dirty-projects_molant.md:
--------------------------------------------------------------------------------
1 | Dark Secrets of Dirty Projects
2 | ======
3 |
4 | * Speaker: Anton Molleda
5 | * Available: any time
6 | * Duration: around 45 minutes although it could be a bit more or less depending on the number of dirty secrets I can share and Q&A :)
7 | * Ideal audience: Anyone insterested in knowing more about HTML5 experiences/experiments and the problems they can find (and hopefully some solutions)
8 |
9 | Description
10 | -------------
11 |
12 | Microsoft's IE team has partnered with several companies to create new HTML5 experiences. Plain Concepts is one of these companies and we have participated in several of these experiences (more or less involved). During this session we will review this experience not from a marketing point of view but from a developer's side. We will talk about the issues we had, the problems with the code, differences accross browsers that maybe you don't know and how to solve them (or at least keep them in mind!).
13 |
14 | Some of the projects that will be covered are:
15 | * The Hunger Games: http://thecapitoltour.pn
16 | * Prometheus Training Center: http://www.projectprometheus.com/trainingcenter
17 | * The XX - Coexist: http://coexist.thexx.info/
18 | And some others not publicly available yet (but that hopefully will be then)!
19 |
20 | Personal Bio
21 | ------------
22 |
23 | 
24 |
25 | Anton Molleda, Spanish born, decided he wanted to visit the world and move to Lyon (France) to get a Computer’s Science degree. After finishing his studies and realizing how much he missed the tapas and jamón, he went back to Spain where he started developing with Microsoft Technologies. How he ended up working in Plain Concepts and be the manager of the US branch is still a mystery, but an even greater is how he ended up being a JS developer too. In any case he seems to be enjoying it so far.
26 |
27 | Links
28 | -----
29 |
30 | * Company: http://www.plainconcepts.com
31 | * Twitter: http://twitter.com/molant
32 | * GitHub: https://github.com/molant
--------------------------------------------------------------------------------
/proposal/windows-8-apps-in-javascript-the-good-the-bad-and-the-ugly.md:
--------------------------------------------------------------------------------
1 | # Windows 8 Apps in JavaScript: The Good, the Bad, and the Ugly
2 |
3 | * Speaker: Domenic Denicola
4 | * Duration: 30 or 60 minutes
5 |
6 | Anders Hejlsberg would have you believe that you cannot build large applications in JavaScript. My team has been proving him false for over two years now, building desktop e-reader software in HTML5, JavaScript, and CSS. Lately we've turned our efforts toward a Windows 8 application, built, yet again, in these technologies.
7 |
8 | This is the story of how we did that, with a focus on the many gaps we filled in the rudimentary framework provided. When creating a serious app, you need to go far beyond the techniques shown in the Microsoft demos. Come learn how we integrated a Node.js build process and module system, used Knockout's two-way databinding, built our own custom unit test harness, and worked around a number of flat-out bugs in the provided libraries.
9 |
10 |
11 | ## Speaker Bio
12 |
13 |
14 |
15 | I develop software and servers for the Nook at [Barnes & Noble.com](http://www.barnesandnoble.com). This includes desktop apps written in HTML5 and JavaScript, both for traditional OS's and for Windows 8, as well as Node.js services for those applications. Outside of work, I enjoy taking part in the New York tech scene and contributing to the growing open-source ecosystem surrounding Node.js. Some topics I am passionate about include [promises][], [unit testing][], and the future of the JavaScript language.
16 |
17 | [promises]: http://www.slideshare.net/domenicdenicola/callbacks-promises-and-coroutines-oh-my-the-evolution-of-asynchronicity-in-javascript
18 | [unit testing]: http://www.slideshare.net/domenicdenicola/unit-testing-for-great-justice
19 |
20 |
21 | ## Links
22 |
23 | * Website: http://domenicdenicola.com
24 | * Company: http://www.barnesandnoble.com
25 | * GitHub: https://github.com/domenic
26 | * Twitter: https://twitter.com/domenic
27 |
--------------------------------------------------------------------------------
/proposal/tdd-in-javascript_joeeames.md:
--------------------------------------------------------------------------------
1 | TDD in JavaScript
2 | ========================
3 |
4 | * Speaker : Joe Eames
5 | * Available : Nov 8 and 9
6 | * Duration : 30-60 mins based on need, or two 30 minute presentations, part 1 and 2
7 |
8 | Description
9 | -----------
10 |
11 | Test Driven Development has been around for a long time, but rarely do we see it practiced by JavaScript programmers. A large number of developers think that the only benefit of TDD is the unit tests, but that is simply not true. Test Driven Development is widely recognized as one of the most effective ways to build code that works and is well factored. Unfortunately bringing this practice to JavaScript, and especially to client-side JavaScript, offers a wide range of unique challenges. In this session we won't just discuss TDD as an abstract concept but we will actually learn by doing and build a sample application using Test Driven Development. In addition, we will learn about many of the tools that enable TDD, and how to overcome JavaScript-specific challenges with TDD. Please come prepared to code.
12 |
13 | Note to organizers:
14 | This will be an evolution of a session I gave at the Utah Open Source 2012 conference which you can view here:
15 | http://www.youtube.com/watch?v=qsCm4j0aWaU
16 |
17 | Speaker Bio
18 | -----------
19 |
20 | 
21 |
22 | Joe began his love of programming on an Apple III in BASIC. Although his preferred language is javascript, he has worked professionally with just about every major Microsoft language. He is currently a front end developer for Domo Inc. Joe has always had a strong interest in education, and has worked both full and part time as a technical teacher for over ten years. He is a frequent blogger and speaker, the curator of testdrivenjs.com, and a panelist on the JavaScript Jabber podcast (http://javascriptjabber.com/) He can be found at @josepheames
23 |
24 |
25 | Links
26 | -----
27 |
28 | * Blog: http://geekswithblogs.net/joeeames
29 | * Passion: http://testdrivenjs.com
30 | * Company: http://www.domo.com/
31 | * Github: http://github.com/joeeames
32 | * Twitter: http://twitter.com/josepheames
33 |
--------------------------------------------------------------------------------
/grunt.js:
--------------------------------------------------------------------------------
1 | /*global module:false*/
2 | module.exports = function(grunt) {
3 |
4 | // Project configuration.
5 | grunt.initConfig({
6 | meta: {
7 | version: '0.1.0',
8 | banner: '/*! CascadisJS - v<%= meta.version %> - ' +
9 | '<%= grunt.template.today("yyyy-mm-dd") %>\n' +
10 | '* http://cascadiajs.com/\n' +
11 | '* Copyright (c) <%= grunt.template.today("yyyy") %> ' +
12 | 'CascadiaJS; Licensed MIT */'
13 | },
14 | lint: {
15 | files: ['asset/js/*.js']
16 | },
17 | concat: {
18 | dist: {
19 | src: ['asset/js/*.js'],
20 | dest: 'asset/js/compiled/site.js'
21 | }
22 | },
23 | min: {
24 | dist: {
25 | src: ['', ''],
26 | dest: 'asset/js/compiled/site.min.js'
27 | }
28 | },
29 | watch: {
30 | files: ['', 'asset/css/scss/*.scss', 'index.html'],
31 | tasks: 'compass:build lint concat min reload'
32 | },
33 | compass: {
34 | build: {
35 | src: 'asset/css/scss',
36 | dest: 'asset/css',
37 | outputstyle: 'compressed',
38 | linecomments: false,
39 | forcecompile: true
40 | }
41 | },
42 | reload: {
43 | port: 35729,
44 | liveReload: {},
45 | proxy: {
46 | host: 'localhost',
47 | port: 8000
48 | }
49 | },
50 | img: {
51 | png: {
52 | src: ['asset/img/*.png']
53 | }
54 | },
55 | jshint: {
56 | options: {
57 | curly: true,
58 | eqeqeq: true,
59 | immed: true,
60 | latedef: true,
61 | newcap: true,
62 | noarg: true,
63 | sub: true,
64 | undef: true,
65 | boss: true,
66 | eqnull: true,
67 | browser: true,
68 | devel: true
69 | },
70 | globals: {
71 | jQuery: true,
72 | $: true
73 | }
74 | },
75 | uglify: {}
76 | });
77 |
78 | // Default task.
79 | grunt.registerTask('default', 'server open-browser reload watch');
80 | grunt.registerTask('build', 'compass lint concat min img');
81 | grunt.registerTask('open-browser', function() {
82 | var open = require('open');
83 | open( 'http://localhost:8000' );
84 | });
85 |
86 | // Extra Tasks
87 |
88 | grunt.loadTasks('asset/grunt');
89 |
90 | };
91 |
--------------------------------------------------------------------------------
/asset/css/scss/_helpers.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Helper classes
3 | ========================================================================== */
4 |
5 | /*
6 | * Image replacement
7 | */
8 |
9 | .ir {
10 | background-color: transparent;
11 | border: 0;
12 | overflow: hidden;
13 | /* IE 6/7 fallback */
14 | *text-indent: -9999px;
15 | }
16 |
17 | .ir:before {
18 | content: "";
19 | display: block;
20 | width: 0;
21 | height: 100%;
22 | }
23 |
24 | /*
25 | * Hide from both screenreaders and browsers: h5bp.com/u
26 | */
27 |
28 | .hidden {
29 | display: none !important;
30 | visibility: hidden;
31 | }
32 |
33 | /*
34 | * Hide only visually, but have it available for screenreaders: h5bp.com/v
35 | */
36 |
37 | .visuallyhidden {
38 | border: 0;
39 | clip: rect(0 0 0 0);
40 | height: 1px;
41 | margin: -1px;
42 | overflow: hidden;
43 | padding: 0;
44 | position: absolute;
45 | width: 1px;
46 | }
47 |
48 | /*
49 | * Extends the .visuallyhidden class to allow the element to be focusable
50 | * when navigated to via the keyboard: h5bp.com/p
51 | */
52 |
53 | .visuallyhidden.focusable:active,
54 | .visuallyhidden.focusable:focus {
55 | clip: auto;
56 | height: auto;
57 | margin: 0;
58 | overflow: visible;
59 | position: static;
60 | width: auto;
61 | }
62 |
63 | /*
64 | * Hide visually and from screenreaders, but maintain layout
65 | */
66 |
67 | .invisible {
68 | visibility: hidden;
69 | }
70 |
71 | /*
72 | * Clearfix: contain floats
73 | *
74 | * For modern browsers
75 | * 1. The space content is one way to avoid an Opera bug when the
76 | * `contenteditable` attribute is included anywhere else in the document.
77 | * Otherwise it causes space to appear at the top and bottom of elements
78 | * that receive the `clearfix` class.
79 | * 2. The use of `table` rather than `block` is only necessary if using
80 | * `:before` to contain the top-margins of child elements.
81 | */
82 |
83 | .clearfix:before,
84 | .clearfix:after {
85 | content: " "; /* 1 */
86 | display: table; /* 2 */
87 | }
88 |
89 | .clearfix:after {
90 | clear: both;
91 | }
92 |
93 | /*
94 | * For IE 6/7 only
95 | * Include this rule to trigger hasLayout and contain floats.
96 | */
97 |
98 | .clearfix {
99 | *zoom: 1;
100 | }
--------------------------------------------------------------------------------
/proposal/async-javascript_johnkpaul.md:
--------------------------------------------------------------------------------
1 | Asynchronous Javascript - callbacks are so old school
2 | ========================
3 |
4 | * Speaker : John K. Paul
5 | * Available : Nov 8 and 9
6 | * Duration : 45-60 mins based on need
7 |
8 | Description
9 | -----------
10 |
11 | Javascript developers can't get enough of callbacks. It's been our tried and true workhorse when dealing with asynchronous code since the dawn of ajax. With the advent of nodejs, we've taken things to the extreme. Now, if we want to make a database query, respond to a web server request, or make a rest call to a web service, we need deeply nested callbacks in order to achieve what we need. In time, this phenomenon becomes the pyramid of doom, where we need 500 character of horizontal screen width to read all of our code.
12 |
13 | The issue here isn't that we are using asynchronous code, but rather that we aren't using the best design pattern for the job. I'd like to talk through a relatively new paradigm for control flow in javascript, the promise. Using this technique, you can develop an much more straightforward asynchronous javascript application. Not only is it a way to remove the need for callbacks, but it opens a door to new design possibilities, without the complexity of continuation passing style. Rather than passing all of our callbacks as arguments, we will take a higher level, and more functional approach, by creating a system that expects promise objects to eventually produce data, and we manipulate that data expecting that it will exist in the future.
14 |
15 | Note to organizers:
16 | This will be an evolution of a talk at the 2012 Pittsburgh Tech Fest which you can view here:
17 | https://vimeo.com/49946885
18 |
19 | Speaker Bio
20 | -----------
21 |
22 | 
23 |
24 | John K. Paul is the VP of Engineering at Avagen Ventures and former lead front end software engineer at TheLadders.com. He is a contributor to numerous open source projects including learn.jquery.com. He has spoken to various startups around NYC about front end development, and scalable engineering practices, in particular, unit testing javascript. Additionally, he has taught Javascript and jQuery fundamentals to teams throughout the NYC area.
25 |
26 | Links
27 | -----
28 |
29 | * Blog: http://johnkpaul.tumblr.com
30 | * Github: http://github.com/johnkpaul
31 | * Twitter: http://twitter.com/johnkpaul
32 | * Vimeo: http://vimeo.com/johnkpaul
33 | * SpeakerRate: http://speakerrate.com/speakers/110621-john-k-paul
34 |
--------------------------------------------------------------------------------
/proposal/reactive-html-with-meteor_dgreensp.md:
--------------------------------------------------------------------------------
1 | Reactive HTML with Meteor
2 | ========================
3 |
4 | * Speaker : David Greenspan
5 | * Available : All
6 | * Duration : 30 mins
7 |
8 | Description
9 | -----------
10 |
11 | Meteor is a full-stack web framework that brings new principles to
12 | application development. Using pure JavaScript on the client and
13 | server, apps define both a rich client and a server-side data endpoint
14 | that work together so that database updates stream in realtime all the
15 | way from the backend to the DOM. Meanwhile, client-side database
16 | mutations are simulated locally but are still securely validated on
17 | the server. Unlike previous reactive web frameworks, Meteor lets you
18 | use your favorite database, template language, and JS/CSS
19 | preprocessors, while making it all realtime.
20 |
21 | Spark is Meteor's library for live-updating HTML. Normally, web apps
22 | must both *declare* their views and then *update* them with separate
23 | logic. For example, a chat view is rendered to HTML as a series of
24 | DIVs, and then, when a new chat message comes in, there is update code
25 | to append a new DIV. Or, a button might have certain properties, like
26 | its class and whether it's disabled, that depend on some local state
27 | or even database state. This button must both occur in some original
28 | form in HTML and be updated from JavaScript. To make matters worse,
29 | often the original HTML is declared on the server, while the update
30 | logic happens on the client!
31 |
32 | Spark gets rid of the update step by automatically re-rendering parts
33 | of the DOM when their HTML needs to change. It can even "match and
34 | patch" your templates to apply arbitrary changes to the HTML without
35 | disturbing form fields and other sensitive elements. Spark supports
36 | browsers going back to IE 7 and takes care of the browser hacks for
37 | you. Code that uses Spark can also run in a server environment with
38 | no DOM to generate static HTML.
39 |
40 | Speaker Bio
41 | -----------
42 |
43 | 
44 |
45 | Before coming to Meteor, David Greenspan created EtherPad, a web-based
46 | collaborative document editor, which was acquired by Google and
47 | open-sourced in 2009. Before that he founded AppJet, an early
48 | server-side JavaScript platform. David holds two SBs from MIT in
49 | Computer Science and Physics.
50 |
51 |
52 | Links
53 | -----
54 |
55 | * Company: http://meteor.com/
56 | * Github: http://github.com/meteor/meteor
57 |
--------------------------------------------------------------------------------
/proposal/the-real-bad-parts_johnkpaul.md:
--------------------------------------------------------------------------------
1 | Javascript - The Real Bad Parts
2 | ========================
3 |
4 | * Speaker : John K. Paul
5 | * Available : Nov 8 and 9
6 | * Duration : 45-60 mins based on need
7 |
8 | Description
9 | -----------
10 |
11 | Douglas Crockford's book "Javascript: The Good Parts," is one of the best selling javascript books of all time and is only 176 pages long. For most developers, there's an tacit belief that the rest of Javascript falls under "bad," especially when comparing that to the 900 pages of "Javascript: The Definitive Guide" There are websites dedicated to these list of language mis-features and anti-patterns, and dozens of blog posts about how to avoid the "bad" in your own code.
12 |
13 | I don't think that these most of these things are actually "bad". In their day to day, developers don't need to worry about all of these smaller issues. Chances are, a javascript developer has encountered these difficult issues, learned the solution, and then immediately absorbed the concepts.
14 |
15 | I'm going to explain to you, the real "bad" parts of the language. These are at least three javascript language features that are the most likely to trip up a javascript developer. Once you innately understand these three issues, you will become significantly more productive in javascript, and will be a lot less confused when reading through large javascript code bases.
16 |
17 | I'll be walking you through at least three concepts within javascript language semantics:
18 | 1. What on earth does "this" mean, and in what context does its meaning change?
19 | 2. How does prototypical inheritance work?
20 | 3. What is hosting? Why do I care what a function expression or function declaration is?
21 |
22 | [Blog post that I wrote about the subject](http://johnkpaul.tumblr.com/post/20720951024/javascript-only-three-bad-parts)
23 |
24 | Speaker Bio
25 | -----------
26 |
27 | 
28 |
29 | John K. Paul is the VP of Engineering at Avagen Ventures and former lead front end software engineer at TheLadders.com. He is a contributor to numerous open source projects including learn.jquery.com. He has spoken to various startups around NYC about front end development, and scalable engineering practices, in particular, unit testing javascript. Additionally, he has taught Javascript and jQuery fundamentals to teams throughout the NYC area.
30 |
31 | Links
32 | -----
33 |
34 | * Blog: http://johnkpaul.tumblr.com
35 | * Github: http://github.com/johnkpaul
36 | * Twitter: http://twitter.com/johnkpaul
37 | * Vimeo: http://vimeo.com/johnkpaul
38 | * SpeakerRate: http://speakerrate.com/speakers/110621-john-k-paul
39 |
--------------------------------------------------------------------------------
/proposal/curiosity-killed_fivetanley.md:
--------------------------------------------------------------------------------
1 | Curiosity Killed: Embracing Failure Without Burning Alive
2 | ========================
3 |
4 | * Speaker : Stanley Stuart
5 | * Available : Any time
6 | * Duration : 30 minutes
7 |
8 | Description
9 | -----------
10 |
11 | Warning: Unconference material ahead! But it does involve JavaScript.
12 |
13 | I'm honestly afraid of missing everything cool.
14 |
15 | Our brains initially start with a blank state when we are born. As we mature,
16 | we become pre-dispositioned to avoid people we think are different than us.
17 | We often shoot new ideas down without thought, or because we don't have
18 | the perspective to tackle problems in a different way. Our mental shortcuts,
19 | or 'heuristics', are incredibly useful for some sets of problems. **Too often,
20 | I think we, or at least I personally, arrive at the conclusion of "I can't do this".**
21 |
22 | I'm wrong. You and I **can** do it. We don't have to tell each other lies that we can't.
23 |
24 | I hear lots of sentiments like this on the internet:
25 |
26 | * "I don't want to be around this person, they're *stupid*."
27 | * "Why would anybody do such an idiotic thing?"
28 | * "Not Invented Here! Not Invented Here! Look who's rewriting the wheel!"
29 | * "**JavaScript**? Why the hell would you write your app in JavaScript?"
30 |
31 | This year I was diagnosed with ADHD, and have been learning how to dispell
32 | the myths of worthlessness others told about me and that I unfortunately
33 | believed. I want to help JavaScript dismiss myths that experts,
34 | both from within the JavaScript community and outside it, have perpetuated.
35 |
36 | In this talk is a sort of coming-of-age story about learning to embrace failure
37 | as a tool to constantly improve ourselves and be happier. Logic, pride, and doing
38 | things The Right Way will take a backseat to honesty, emotions, communication,
39 | and self-improvement. It's about embracing your style, because somebody else
40 | probably has that style too. It's about finding what works for you, and
41 | working with others. It's about putting others up instead of dragging them down.
42 |
43 | I'm hoping to dispel some JavaScript dogma as well.
44 |
45 | I'll use my own experiences and the life experiences and stories from Walter
46 | Kirn, Friedrich Nietzche, Bonnie Raitt, John J. Ratey, Edward Hallowell,
47 | Kent Greenfield, and Captain Planet to open ourselves up to new ideas and new people, and most
48 | importantly, change our expectations about ourselves.
49 |
50 | Also, I'm sorry this is past the deadline.
51 |
52 | Speaker Bio
53 | -----------
54 |
55 | 
56 |
57 | I wwebsite on the Internet.
58 |
59 | A male human being who loves watching terrible movies. I also listen to music
60 | from time to time. And there's this programming thing I keep hearing about
61 | that I apparently do?
62 |
63 | Links
64 | -----
65 |
66 | * Blog: http://fivetanley.com | work in progress
67 | * Github: http://github.com/fivetanley
68 | * Twitter: http://twitter.com/fivetanley
69 |
--------------------------------------------------------------------------------
/proposal/keg.io_crcastle.md:
--------------------------------------------------------------------------------
1 | keg.io
2 | ======
3 | _arduino- and node.js-enabled kegerator_
4 |
5 | * Speaker: Chris Castle
6 | * Available: any time 11/8-11/9, 2012
7 | * Duration: 30 or 60 minutes
8 | * Ideal audience: node.js practitioners, arduino/hardware hobbyists, beer drinkers
9 |
10 | keg.io is a technology-laden kegerator project originally developed by Vivaki Nerve Center employees to satisfy their nerdiest beer-drinking needs. It's built on node.js and utilizes an arduino microcontroller to interface with the keg's hardware and sensors.
11 |
12 | Come learn how we built it -- from learning about hardware (never soldered _anything_ before this project), to learning Arduino, to the trials and tribulations of debugging hardware and software… at the same time (fml). Also I'll talk about how you can get one in your office!
13 |
14 | Check out [http://keg.io](http://keg.io) for more details.
15 |
16 | Talk Outline
17 | -------------
18 | 1. What is it
19 | - Picture of system, diagram of components
20 | 2. Why we built it
21 | - wanted to learn node, wanted to tinker with hardware, like to play with data, and like drinking beer
22 | 3. How we built it
23 | - v1: node.js talks serial
24 | - node.js runs on server beside kegerator, serial connection to arduino (i.e. kegerator)
25 | - v2: node.js goes to the cloud! (persistent, grey Seattle-style)
26 | - node.js server is an HTTP endpoint at AWS that arduino (i.e. kegerator) talks to
27 | - server also provides public web-based dashbaord ([keg.io](http://keg.io)) and beer consumption stats API
28 | 4. Demo!
29 | - Hopefully I can bring a built-out kegerator with me. If not, I can shoot a video for the demo, but it won't be as exciting. If I do bring one, I can have it setup throughout the conference for people to pour themselves a tasty beer.
30 | 5. What's next?
31 | - Post-pour hooks? (node.js server makes a POST request to custom endpoint when you do a pour)
32 | - More stats and data visualization
33 | - Too many ideas! Really we just want to get to the point where anyone can contribute a small piece to the project. AND get one setup in every nerdy, developer-filled office we can.
34 | - We also realize there could be a business opportunity here but haven't explored that too much.
35 | 6. Audience Q&A
36 |
37 | _Talk length is flexible. I could use 60 minutes (including Q&A) or 30 minutes or, less ideally, could squeeze the talk in to a 10-minute lightning session._
38 |
39 |
40 | Personal Bio
41 | ------------
42 | Crude and cynical observer of the world. Incurable optimist day-to-day. Tinkers with APIs while consuming IPAs.
43 |
44 | 
45 |
46 | * I'm Chris Castle [crcastle@gmail.com](mailto:crcastle@gmail.com)
47 | * I twitter [@crc](http://twitter.com/crc)
48 | * I'm [crcastle](https://github.com/crcastle) on the githubs
49 | * I dwell in the [Central District](http://en.wikipedia.org/wiki/Central_District,_Seattle) of Seattle
50 | * Most of my waking hours I'm thinking about code and keeping the [amazing group of people](http://simplymeasured.com/about/our-team/) at [Simply Measured](http://simplymeasured.com) happy and making an awesome product (p.s. [we're hiring](http://simplymeasured.com/about/careers/))
51 |
--------------------------------------------------------------------------------
/proposal/dont_cross_the_streams-mattpodwysocki.md:
--------------------------------------------------------------------------------
1 | Don't Cross the Streams
2 | ========================
3 |
4 | * Speaker : Matthew Podwysocki
5 | * Available : November 8-9, 2012
6 | * Duration : 45 minutes
7 |
8 | Description
9 | -----------
10 |
11 | In today’s world, streams are everywhere, whether it is social media feeds, binary data, GPS data or any other type of real-time data. Node.js and library approaches for client and server such as socket.io have made stream programming even easier and accessible to more people. But with the ease also comes complication and a number of questions arise. How do we start composing streams together? How do we filter them? How do we express that we listen to this stream until another stream fires? Pretty quickly the code can becomes strewn with nested callbacks and global state, which makes you lose the essence of what you’re trying to accomplish. Luckily, there are patterns which can help alleviate some of these problems. The Node.js community has also created a number of libraries which focus on democratizing stream programming including async, as well as more ambitious approaches such as custom languages such as IcedCoffeeScript. We’ll look at a number of these libraries and also cover the Reactive Extensions for JavaScript, a library for democratizing stream and asynchronous callback programming to unify the two concepts and allow for queries to be written over them.
12 |
13 | We’ll go from:
14 |
15 | - **Dr. Egon Spengler:** There's something very important I forgot to tell you.
16 | - **Dr. Peter Venkman:** What?
17 | - **Dr. Egon Spengler:** Don't cross the streams.
18 | - **Dr. Peter Venkman:** Why?
19 | - **Dr. Egon Spengler:** It would be bad.
20 | - **Dr. Peter Venkman:** I'm fuzzy on the whole good/bad thing. What do you mean, "bad"?
21 | - **Dr. Egon Spengler:** Try to imagine all life as you know it stopping instantaneously and every molecule in your body exploding at the speed of light.
22 | - **Dr Ray Stantz:** Total protonic reversal.
23 | - **Dr. Peter Venkman:** Right. That's bad. Okay. All right. Important safety tip. Thanks, Egon.
24 |
25 | To:
26 |
27 | - **Dr. Egon Spengler:** I have a radical idea. The door swings both ways, we could reverse the polarity flow through the gate.
28 | - **Dr. Peter Venkman:** How?
29 | - **Dr. Egon Spengler:** We'll cross the streams.
30 | - **Dr. Peter Venkman:** 'Scuse me Egon? You said crossing the streams was bad!
31 | - **Dr Ray Stantz:** Cross the streams...
32 | - **Dr. Peter Venkman:** You're gonna endanger us, you're gonna endanger our client - the nice lady, *who paid us in advance*, before she became a dog...
33 | - **Dr. Egon Spengler:** Not necessarily. There's definitely a *very slim* chance we'll survive.
34 | - **Dr. Peter Venkman:** I love this plan! I'm excited it could work! LET'S DO IT!
35 |
36 | Speaker Bio
37 | -----------
38 |
39 | 
40 |
41 | Matthew Podwysocki is a software developer at Microsoft working with such teams as the Cloud Programmability Team on all things JavaScript. He is the author and maintainer of the Reactive Extensions for JavaScript and loves just hacking on JavaScript...
42 |
43 |
44 | Links
45 | -----
46 |
47 | * Blogs:
48 | - http://codebetter.com/matthewpodwysocki/
49 | - http://blogs.msdn.com/b/rxteam/
50 | * Company: Microsoft
51 | * Github:
52 | - http://github.com/mattpodwysocki
53 | - https://github.com/reactive-extensions
54 | * Twitter: http://twitter.com/mattpodwysocki
55 |
--------------------------------------------------------------------------------
/proposal/README.md:
--------------------------------------------------------------------------------
1 | # TALK SUBMISSIONS FOR 2012 ARE CLOSED!!
2 | # THE DEADLINE HAS PASSED. THANK YOU, EVERYONE WHO SUBMITTED. THIS COMMUNITY IS AMAZING.
3 |
4 |
5 |
6 | How To Submit A Proposal
7 | ========================
8 |
9 | First and foremost, make sure you're available on both 11/8 and 11/9. Once we have settled on the talks, we will be curating an agenda that groups like topics together. More information at [cascadiajs.com](http://cascadiajs.com).
10 |
11 | * Create a **Github account** if you don't have one already
12 | * **Fork this repository**
13 | * **Create and commit a .MD file** in this directory named after the talk title and your Github ID.
14 |
15 | For example, if your talk is called "Intro To Node.js" and your Github ID is **janedoe**, name the file ```~/proposal/intro-to-nodejs_janedoe.md``` ([example template](https://github.com/cascadiajs/cascadiajs.github.com/blob/master/proposal/proposal-template_janedoe.md))
16 | * **Commit an image of yourself** in the images subdirectory, named after your Github id.
17 |
18 | Format should be PNG, 256x256 Eg: ```~/proposal/images/janedoe.png```
19 | * When you're ready, **submit a pull request**
20 | * **Send an email** to [carter.rabasa@gmail.com](mailto:carter.rabasa@gmail.com) to introduce yourself and so that we have a way to contact you if your talk is accepted.
21 | * **Wait patiently** (and *nicely*) for us to get back to you. We will respond to everyone who submits a proposal even if it's just to say "Thanks but no thanks".
22 |
23 |
24 | What should be in the proposal?
25 | -------------------------------
26 |
27 | Every proposal should have, at minimum, the following information:
28 |
29 | * Your Full Name
30 | * Presentation Title
31 | * Presentation Description
32 | * Presentation Duration (in minutes/hours/days)
33 | * Your preferred photo for the website (256x256)
34 |
35 | If would be great if you could add in a short **personal bio** (50 words or less) and other details like links to your **blog**, **twitter account**, **open source projects**, **company**, or what have you, that's completely up to you. Whatever floats your boat. Bios are nice! :)
36 |
37 | To make this easier, we've created a template you can copy and modify. See ```proposal-template_jane-doe.md``` in this directory.
38 |
39 | If you have any other artifacts that relate to your presentation, like slide decks, code samples, videos, etc, make a directory named the same as the .MD file from above, and put related files in there. For example, if my proposal was saved in ```intro-to-nodejs_janedoe.md```, I would place the example code in ```~/cascadiajs.github.com/proposal/intro-to-nodejs_janedoe/example-code.js```
40 |
41 |
42 | What are we looking for?
43 | ------------------------
44 |
45 | We're looking for anything related to JS technology, which includes: browser, Node.js, Windows 8, Firefox OS, you name it. We're still working out the final format of the conference, but most of the talks will need to be ~30 minutes.
46 |
47 | We're also open to suggestions for unconference topics. For example, suppose you really want to talk about MongoDB in Node.js but don't have a presentation, maybe just some questions or experiences to share? We will likely set aside time for lightening talks, so get your ideas ready.
48 |
49 | Other Stuff
50 | -----------
51 |
52 | If you have any questions about this process, need more information or need assistance with travel and/or lodging, don't hesitate to reach out to us at [carter.rabasa@gmail.com](mailto:carter.rabasa@gmail.com).
53 |
54 |
55 | Thanks,
56 | Troy and Carter
57 |
--------------------------------------------------------------------------------
/asset/grunt/compass.js:
--------------------------------------------------------------------------------
1 | module.exports = function( grunt ) {
2 |
3 | // Create a new multi task.
4 | grunt.registerMultiTask( 'compass', 'This triggers the `compass compile` command.', function() {
5 |
6 | // Tell grunt this task is asynchronous.
7 | var done = this.async(),
8 | exec = require('child_process').exec,
9 | command = "compass compile",
10 | src = undefined,
11 | dest = undefined,
12 | config = this.data.config,
13 | images = this.data.images,
14 | fonts = this.data.fonts,
15 | outputstyle = this.data.outputstyle,
16 | linecomments = this.data.linecomments,
17 | forcecompile = this.data.forcecompile,
18 | debugsass = this.data.debugsass,
19 | relativeassets = this.data.relativeassets,
20 | libRequire = this.data.require,
21 | bundleExec = this.data.bundleExec;
22 | environment = this.data.environment;
23 |
24 | if ( this.data.src !== undefined ) {
25 | src = grunt.template.process(this.data.src);
26 | }
27 |
28 | if ( this.data.dest !== undefined ) {
29 | dest = grunt.template.process(this.data.dest);
30 | }
31 |
32 | if ( bundleExec ) {
33 | command = 'bundle exec ' + command;
34 | }
35 |
36 | if ( src !== undefined && dest !== undefined ) {
37 | command += ' --sass-dir="' + src + '" --css-dir="' + dest + '"';
38 | }
39 |
40 | if ( config !== undefined ) {
41 | command += ' --config="' + config + '"';
42 | }
43 |
44 | if ( images !== undefined ) {
45 | command += ' --images-dir="' + images + '"';
46 | }
47 |
48 | if ( fonts !== undefined ) {
49 | command += ' --fonts-dir="' + fonts + '"';
50 | }
51 |
52 | if ( debugsass !== undefined ) {
53 | if ( debugsass === true ) {
54 | command += ' --debug-info';
55 | }
56 | }
57 |
58 | if ( relativeassets !== undefined ) {
59 | if ( relativeassets === true ) {
60 | command += ' --relative-assets';
61 | }
62 | }
63 |
64 | if ( outputstyle !== undefined ) {
65 | command += ' --output-style ' + outputstyle;
66 | }
67 |
68 | if ( linecomments === false ) {
69 | command += ' --no-line-comments';
70 | }
71 |
72 | if ( libRequire !== undefined ) {
73 | command += ' --require '+ libRequire;
74 | }
75 |
76 | if ( forcecompile === true ) {
77 | command += ' --force';
78 | }
79 |
80 | if ( environment !== undefined ) {
81 | command += ' -e ' + environment;
82 | }
83 |
84 | function puts( error, stdout, stderr ) {
85 |
86 | grunt.log.write( '\n\nCOMPASS output:\n' );
87 | grunt.log.write( stdout );
88 | /* grunt.log.error( stderr );
89 | * compass sends falsy error message to stderr... real sass/compass errors come in through the "error" variable.
90 | */
91 |
92 | if ( error !== null ) {
93 | grunt.log.error( error );
94 | done(false);
95 | }
96 | else {
97 | done(true);
98 | }
99 | }
100 |
101 | exec( command, puts );
102 | grunt.log.write( '`' + command + '` was initiated.' );
103 | });
104 | };
--------------------------------------------------------------------------------
/asset/grunt/img.js:
--------------------------------------------------------------------------------
1 |
2 | var fs = require('fs'),
3 | path = require('path'),
4 | which = require('which');
5 |
6 | //
7 | // This task takes care of img optimizations by running a set of `.png`
8 | // or `.jpg` files through optipng and jpegtran.
9 | //
10 | // grunt img:
11 | //
12 | // Gruntfile config:
13 | //
14 | // ...
15 | // img: {
16 | // src: ['img/**/*'],
17 | // options: {
18 | // ...
19 | // }
20 | // }
21 | //
22 |
23 | var win32 = process.platform === 'win32';
24 |
25 | module.exports = function(grunt) {
26 |
27 | var png = ['.png'],
28 | jpegs = ['.jpg', 'jpeg'];
29 |
30 | // rev task - reving is done in the `output/` directory
31 | grunt.registerMultiTask('img', 'Optimizes .png/.jpg images using optipng/jpegtran', function() {
32 | var cb = this.async(),
33 | files = grunt.file.expandFiles(this.file.src);
34 |
35 | var pngfiles = files.filter(function( file ) {
36 | return png.indexOf( path.extname( file ).toLowerCase() ) !== -1;
37 | });
38 |
39 | var jpgfiles = files.filter(function( file ) {
40 | return jpegs.indexOf( path.extname( file ).toLowerCase() ) !== -1;
41 | });
42 |
43 | grunt.helper('optipng', pngfiles, grunt.config('optipng'), function(err) {
44 | if(err) {
45 | grunt.log.error(err);
46 | return cb(false);
47 | }
48 |
49 | grunt.helper('jpegtran', jpgfiles, grunt.config('jpegtran'), function(err) {
50 | if(err) {
51 | grunt.log.error(err);
52 | return cb(false);
53 | }
54 | cb();
55 | });
56 | });
57 | });
58 |
59 | grunt.registerHelper('optipng', function(files, opts, cb) {
60 | opts = opts || {};
61 | cb = cb || function() {};
62 |
63 | grunt.helper('which', 'optipng', function(err, cmdpath) {
64 | if ( err ) {
65 | return grunt.helper( 'not installed', 'optipng', cb );
66 | }
67 |
68 | var args = opts.args ? opts.args : [];
69 | args = args.concat(files);
70 |
71 | if ( !files.length ) {
72 | return cb();
73 | }
74 |
75 | grunt.log.writeln('Running optipng... ' + grunt.log.wordlist(files));
76 | var optipng = grunt.utils.spawn({
77 | cmd: cmdpath,
78 | args: args
79 | }, function() {});
80 |
81 | optipng.stdout.pipe(process.stdout);
82 | optipng.stderr.pipe(process.stderr);
83 | optipng.on('exit', function(code) {
84 | if ( code ) {
85 | grunt.warn( 'optipng exited unexpectedly with exit code ' + code + '.', code );
86 | }
87 | cb();
88 | });
89 | });
90 | });
91 |
92 | grunt.registerHelper('jpegtran', function(files, opts, cb) {
93 | opts = opts || {};
94 | cb = cb || function() {};
95 | opts.args = opts.args ? opts.args : ['-copy', 'none', '-optimize', '-outfile', 'jpgtmp.jpg'];
96 |
97 | grunt.helper('which', 'jpegtran', function(err, cmdpath) {
98 | if ( err ) {
99 | return grunt.helper( 'not installed', 'jpegtran', cb );
100 | }
101 |
102 | (function run(file) {
103 | if ( !file ) {
104 | return cb();
105 | }
106 |
107 | grunt.log.subhead('** Processing: ' + file);
108 | var jpegtran = grunt.utils.spawn({
109 | cmd: cmdpath,
110 | args: opts.args.concat(file)
111 | }, function() {});
112 |
113 | jpegtran.stdout.pipe(process.stdout);
114 | jpegtran.stderr.pipe(process.stderr);
115 |
116 | jpegtran.on('exit', function(code) {
117 | if ( code ) {
118 | return grunt.warn( 'jpgtran exited unexpectedly with exit code ' + code + '.', code );
119 | }
120 | // output some size info about the file
121 | grunt.helper('min_max_stat', 'jpgtmp.jpg', file);
122 | // copy the temporary optimized jpg to original file
123 | fs.createReadStream('jpgtmp.jpg')
124 | .pipe(fs.createWriteStream(file)).on('close', function() {
125 | run(files.shift());
126 | });
127 | });
128 | }(files.shift()));
129 | });
130 |
131 | });
132 |
133 | grunt.registerHelper('not installed', function(cmd, cb) {
134 | grunt.verbose.or.writeln();
135 | grunt.log.write('Running ' + cmd + '...').error();
136 | grunt.log.errorlns([
137 | 'In order for this task to work properly, :cmd must be',
138 | 'installed and in the system PATH (if you can run ":cmd" at',
139 | 'the command line, this task should work)'
140 | ].join(' ').replace(/:cmd/g, cmd));
141 | grunt.log.subhead('Skiping ' + cmd + ' task');
142 |
143 | if ( cb ) {
144 | cb();
145 | }
146 | });
147 |
148 | // **which** helper, wrapper to isaacs/which package plus some fallback logic
149 | // specifically for the win32 binaries in vendor/ (optipng.exe, jpegtran.exe)
150 | grunt.registerHelper('which', function(cmd, cb) {
151 | if ( !win32 || !/optipng|jpegtran/.test( cmd ) ) {
152 | return which( cmd, cb );
153 | }
154 |
155 | var cmdpath = cmd === 'optipng' ? '../vendor/optipng-0.7.1-win32/optipng.exe' :
156 | '../vendor/jpegtran-8d/jpegtran.exe';
157 |
158 | cb(null, path.join(__dirname, cmdpath));
159 | });
160 | };
161 |
--------------------------------------------------------------------------------
/asset/css/scss/_modules.scss:
--------------------------------------------------------------------------------
1 | @import 'compass/css3';
2 |
3 | .wf-active .sct-head {
4 | text-transform: uppercase;
5 | }
6 |
7 | .logo {
8 | margin-top: 1em;
9 | }
10 |
11 | .logotype {
12 | margin-bottom: 0;
13 |
14 | text-align: center;
15 | }
16 |
17 | .logotype-accent {
18 | margin-left: 6px;
19 |
20 | color: $accent;
21 | }
22 |
23 | .tagline {
24 | margin-top: 0;
25 | margin-bottom: 0.33em;
26 |
27 | text-align: center;
28 | }
29 |
30 | .buttons {
31 | text-align: center;
32 | }
33 |
34 | .btn {
35 | padding: 0.5em;
36 | position: relative;
37 | top: 0;
38 |
39 | border: 1px solid rgba(0,0,0,0.2);
40 |
41 | background-color: $accent;
42 | background-image: url('../img/subtle_dots_green.png');
43 |
44 | color: #FFF;
45 | text-shadow: 0px -1px 0px rgba(0,0,0,0.4);
46 |
47 | -webkit-user-select: none;
48 | -moz-user-select: -moz-none;
49 | user-select: none;
50 |
51 | -webkit-user-drag: none;
52 | -moz-user-drag: -moz-none;
53 | user-drag: none;
54 |
55 | @include border-radius(4px);
56 | @include box-shadow(inset 0 1px 1px rgba(255,255,255,0.3), 0 1px 1px rgba(0,0,0,0.2));
57 | @include transition(0.1s ease top);
58 |
59 | &:hover {
60 | background-color: #FFF;
61 | background-image: url('../img/subtle_dots.png');
62 |
63 | border: 1px solid #999;
64 |
65 | color: $accent;
66 | text-decoration: none;
67 | text-shadow: none;
68 | }
69 |
70 | &:active {
71 | top: 2px;
72 | }
73 | }
74 |
75 | .twitter {
76 | background-image: url('../img/twitter.png');
77 | height: 38px;
78 | width: 38px;
79 | display: inline-block;
80 | margin-left: 1em;
81 | position: relative;
82 | top: 12px;
83 |
84 | &:hover {
85 | background-position: 0 40px;
86 | }
87 | }
88 |
89 | .sct-break {
90 | margin: 1.5em 0;
91 | clear: both;
92 |
93 | border: 1px solid #666;
94 | border: 1px solid rgba(0,0,0,0.2);
95 | border-left: none;
96 | border-right: none;
97 |
98 | background-color: $accent;
99 | background-image: url('../img/subtle_dots_green.png');
100 | }
101 |
102 | .sct-head {
103 | color: #FFF;
104 | text-shadow: -1px -1px 1px rgba(0,0,0,0.3);
105 | font-size: 1.75em;
106 | }
107 |
108 | .sct-head:hover .sct-anchor {
109 | opacity: .6;
110 | }
111 |
112 | .sct-anchor {
113 | position: relative;
114 | top: -3px;
115 | left: 8px;
116 |
117 | font-size: 24px;
118 | text-decoration: none;
119 |
120 | opacity: 0;
121 | color: #fff;
122 |
123 | @include transition(0.5s);
124 |
125 | &:before {
126 | content: "\00B6";
127 | }
128 |
129 | &:hover {
130 | text-decoration: none;
131 | }
132 | }
133 |
134 | .lineup-block {
135 | margin-left: 1.5em;
136 | margin-bottom: 0.75em;
137 | width: 148px;
138 | height: 14.375em;
139 | float: left;
140 |
141 | text-align: center;
142 | }
143 |
144 | .csstransitions .lineup-block {
145 | @include transition(all 0.3s ease);
146 |
147 | &:hover .lineup-img {
148 | top: -1.5em;
149 | }
150 | }
151 |
152 | .lineup-img {
153 | width: 100%;
154 | position: relative;
155 | top: 0;
156 |
157 | border-radius: 100px;
158 |
159 | @include box-shadow(0px 0px 1px rgba(0,0,0,0.3));
160 | @include transition(top 0.3s ease);
161 | }
162 |
163 | .lineup-name {
164 | margin: 0.75em 0 0;
165 |
166 | font-size: 0.875em;
167 | font-family: proxima-nova, Helvetica Neue, Helvetica, Arial, sans-serif;
168 | font-weight: bold;
169 | color: #333;
170 | }
171 |
172 | .lineup-text {
173 | font-size: 0.875em;
174 | margin: 0 0 0.75em;
175 |
176 | color: $accent;
177 | }
178 |
179 | .agenda {
180 | margin-top: 1.5em;
181 | margin-bottom: 1.5em;
182 |
183 | tr {
184 | border: 1px solid #ccc;
185 | border-left: none;
186 | border-right: none;
187 |
188 | &:first-child {
189 | border: none;
190 | }
191 |
192 | &:last-child {
193 | border: none;
194 | }
195 |
196 | &:hover {
197 | color: $accent;
198 | }
199 | }
200 |
201 | td {
202 | padding: 0.5em 4em;
203 | padding-left: 1em;
204 | }
205 | }
206 |
207 | .agenda-time {
208 | width: 120px;
209 |
210 | font-size: 0.875em;
211 | text-transform: uppercase;
212 | }
213 |
214 | .agenda-sponsor {
215 | display: block;
216 | margin-top: 1em;
217 |
218 | font-family: proxima-nova, Helvetica Neue, Helvetica, Arial, sans-serif;
219 | font-weight: normal;
220 | font-size: .667em;
221 | }
222 |
223 | .contacts-img {
224 | width: 100px;
225 | margin: 1.5em;
226 | margin-left: 0;
227 | margin-top: 0;
228 | float: left;
229 | }
230 |
231 | .header {
232 | width: 100%;
233 | height: 375px;
234 | margin-bottom: -1.5em;
235 |
236 | background: lighten(rgb(93, 170, 241), 30%) url('../img/subtle_dots_blue.png');
237 |
238 | text-shadow: 0 1px 0 #FFF;
239 | }
240 |
241 | .scroller {
242 | background: #FFF url('../img/subtle_dots.png');
243 | }
244 |
245 | .no-touch {
246 |
247 | .header {
248 | position: fixed;
249 | }
250 |
251 | .scroller {
252 | margin-top: 375px;
253 | position: relative;
254 | z-index: 2;
255 | }
256 |
257 | }
258 |
259 | .sponsors {
260 | margin: 0 0 3em -1.5em;
261 | text-align: center;
262 | }
263 |
264 | .sponsors li {
265 | margin: 0 0.75em;
266 | display: inline-block;
267 | list-style: none;
268 | }
269 |
270 | .lt-ie8 .sponsors li {
271 | margin-bottom: 1.5em;
272 | }
273 |
274 | .sponsors-small, .sponsors-large {
275 | padding: 0;
276 | margin-bottom: 1em;
277 | }
278 |
279 | .sponsors-large {
280 |
281 | li {
282 | width: 300px;
283 | }
284 |
285 | img {
286 | width: 275px;
287 | }
288 | }
289 |
290 | .sponsors-small li {
291 | width: 175px;
292 | margin-bottom: 1.5em;
293 | }
294 |
295 | .sponsors-cta {
296 | font-weight: bold;
297 | font-size: 0.875em;
298 | text-decoration: underline;
299 |
300 | &:hover {
301 | color: #333;
302 | }
303 |
304 | span {
305 | color: #333;
306 |
307 | &:hover {
308 | color: $accent;
309 | }
310 | }
311 | }
312 |
313 | .inset {
314 | @include border-radius(10px);
315 | @include box-shadow(0 0 1px rgba(0,0,0,0.3),0px -1px 0px rgba(0,0,0,0.3));
316 | }
317 |
318 | .map {
319 | height: 450px;
320 | margin: -1.5em 0;
321 |
322 | border: 1px solid #999;
323 | border-bottom: none;
324 | border-top: none;
325 | }
326 |
327 | .information-nav {
328 | margin: 1em 0;
329 |
330 | a {
331 | text-decoration: underline;
332 |
333 | &:hover, &.active {
334 | color: #495555;
335 |
336 | .information-head {
337 | color: $accent;
338 | }
339 | }
340 |
341 | }
342 |
343 | }
344 |
345 | .information-head {
346 | margin: 0.667em 0;
347 | color: #495555;
348 | }
349 |
350 | .information-tab {
351 | display: none;
352 |
353 | &.active {
354 | display: block;
355 | }
356 | }
357 |
358 | .no-js .information-tab:active {
359 | display: block;
360 | }
361 |
362 | .hotels {
363 | padding: 0 0 0 16px;
364 |
365 | li {
366 | margin: 1em 0;
367 |
368 | font-size: 0.875em;
369 | font-weight: normal;
370 | }
371 |
372 | }
373 |
374 | .hotels-name {
375 | font-weight: bold;
376 | color: #333;
377 | }
378 |
379 | .kicker {
380 | margin: 0.3125em 0;
381 |
382 | font-size: 2em;
383 | font-family: futura-pt, Helvetica Neue, Helvetica, Arial, sans-serif;
384 | font-weight: bold;
385 | line-height: 1.2;
386 | }
--------------------------------------------------------------------------------
/asset/css/site.css:
--------------------------------------------------------------------------------
1 | /* normalize.css v1.0.1 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html,button,input,select,textarea{font-family:proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1,h2,h3,h4,h5,h6{font-family:futura-pt,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700}h1{font-size:6em;margin:0.67em 0}h2{font-size:2em;margin:0.83em 0}h3{font-size:1.5em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:0.83em;margin:1.67em 0}h6{font-size:0.75em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:1em 40px}dfn{font-style:italic}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace, serif;_font-family:'courier new', monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}dl,menu,ol,ul{margin:1.5em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.ir{background-color:transparent;border:0;overflow:hidden;*text-indent:-9999px}.ir:before{content:"";display:block;width:0;height:100%}.hidden{display:none !important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.clearfix{*zoom:1}html,button,input,select,textarea{color:#495555}body{font-size:1em;line-height:1.4}html,body{overflow-x:hidden}a{color:#32a35a;text-decoration:none}a:hover,a:focus{text-decoration:underline}nav ol,nav ul{padding:0}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}img{vertical-align:middle;max-width:100%}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}.l-constrained{width:840px;margin:0 auto;padding:0 24px}.l-column{padding-left:0;margin:3em 0 0 -1.5em;list-style:none}.l-single{width:256px;float:left;margin-left:1.5em}.l-double{width:536px;float:left;margin-left:1.5em}.first{margin-left:0;clear:both}.wf-active .sct-head{text-transform:uppercase}.logo{margin-top:1em}.logotype{margin-bottom:0;text-align:center}.logotype-accent{margin-left:6px;color:#32a35a}.tagline{margin-top:0;margin-bottom:0.33em;text-align:center}.buttons{text-align:center}.btn{padding:0.5em;position:relative;top:0;border:1px solid rgba(0,0,0,0.2);background-color:#32a35a;background-image:url("../img/subtle_dots_green.png");color:#FFF;text-shadow:0px -1px 0px rgba(0,0,0,0.4);-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none;-webkit-user-drag:none;-moz-user-drag:-moz-none;user-drag:none;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(255,255,255,0.3),0 1px 1px rgba(0,0,0,0.2);-moz-box-shadow:inset 0 1px 1px rgba(255,255,255,0.3),0 1px 1px rgba(0,0,0,0.2);box-shadow:inset 0 1px 1px rgba(255,255,255,0.3),0 1px 1px rgba(0,0,0,0.2);-webkit-transition:0.1s ease top;-moz-transition:0.1s ease top;-o-transition:0.1s ease top;transition:0.1s ease top}.btn:hover{background-color:#FFF;background-image:url("../img/subtle_dots.png");border:1px solid #999;color:#32a35a;text-decoration:none;text-shadow:none}.btn:active{top:2px}.twitter{background-image:url("../img/twitter.png");height:38px;width:38px;display:inline-block;margin-left:1em;position:relative;top:12px}.twitter:hover{background-position:0 40px}.sct-break{margin:1.5em 0;clear:both;border:1px solid #666;border:1px solid rgba(0,0,0,0.2);border-left:none;border-right:none;background-color:#32a35a;background-image:url("../img/subtle_dots_green.png")}.sct-head{color:#FFF;text-shadow:-1px -1px 1px rgba(0,0,0,0.3);font-size:1.75em}.sct-head:hover .sct-anchor{opacity:.6}.sct-anchor{position:relative;top:-3px;left:8px;font-size:24px;text-decoration:none;opacity:0;color:#fff;-webkit-transition:0.5s;-moz-transition:0.5s;-o-transition:0.5s;transition:0.5s}.sct-anchor:before{content:"\00B6"}.sct-anchor:hover{text-decoration:none}.lineup-block{margin-left:1.5em;margin-bottom:0.75em;width:148px;height:14.375em;float:left;text-align:center}.csstransitions .lineup-block{-webkit-transition:all 0.3s ease;-moz-transition:all 0.3s ease;-o-transition:all 0.3s ease;transition:all 0.3s ease}.csstransitions .lineup-block:hover .lineup-img{top:-1.5em}.lineup-img{width:100%;position:relative;top:0;border-radius:100px;-webkit-box-shadow:0px 0px 1px rgba(0,0,0,0.3);-moz-box-shadow:0px 0px 1px rgba(0,0,0,0.3);box-shadow:0px 0px 1px rgba(0,0,0,0.3);-webkit-transition:top 0.3s ease;-moz-transition:top 0.3s ease;-o-transition:top 0.3s ease;transition:top 0.3s ease}.lineup-name{margin:0.75em 0 0;font-size:0.875em;font-family:proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#333}.lineup-text{font-size:0.875em;margin:0 0 0.75em;color:#32a35a}.agenda{margin-top:1.5em;margin-bottom:1.5em}.agenda tr{border:1px solid #ccc;border-left:none;border-right:none}.agenda tr:first-child{border:none}.agenda tr:last-child{border:none}.agenda tr:hover{color:#32a35a}.agenda td{padding:0.5em 4em;padding-left:1em}.agenda-time{width:120px;font-size:0.875em;text-transform:uppercase}.agenda-sponsor{display:block;margin-top:1em;font-family:proxima-nova,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:normal;font-size:.667em}.contacts-img{width:100px;margin:1.5em;margin-left:0;margin-top:0;float:left}.header{width:100%;height:375px;margin-bottom:-1.5em;background:#eaf4fd url("../img/subtle_dots_blue.png");text-shadow:0 1px 0 #FFF}.scroller{background:#fff url("../img/subtle_dots.png")}.no-touch .header{position:fixed}.no-touch .scroller{margin-top:375px;position:relative;z-index:2}.sponsors{margin:0 0 3em -1.5em;text-align:center}.sponsors li{margin:0 0.75em;display:inline-block;list-style:none}.lt-ie8 .sponsors li{margin-bottom:1.5em}.sponsors-small,.sponsors-large{padding:0;margin-bottom:1em}.sponsors-large li{width:300px}.sponsors-large img{width:275px}.sponsors-small li{width:175px;margin-bottom:1.5em}.sponsors-cta{font-weight:bold;font-size:0.875em;text-decoration:underline}.sponsors-cta:hover{color:#333}.sponsors-cta span{color:#333}.sponsors-cta span:hover{color:#32a35a}.inset{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px;-webkit-box-shadow:0 0 1px rgba(0,0,0,0.3),0px -1px 0px rgba(0,0,0,0.3);-moz-box-shadow:0 0 1px rgba(0,0,0,0.3),0px -1px 0px rgba(0,0,0,0.3);box-shadow:0 0 1px rgba(0,0,0,0.3),0px -1px 0px rgba(0,0,0,0.3)}.map{height:450px;margin:-1.5em 0;border:1px solid #999;border-bottom:none;border-top:none}.information-nav{margin:1em 0}.information-nav a{text-decoration:underline}.information-nav a:hover,.information-nav a.active{color:#495555}.information-nav a:hover .information-head,.information-nav a.active .information-head{color:#32a35a}.information-head{margin:0.667em 0;color:#495555}.information-tab{display:none}.information-tab.active{display:block}.no-js .information-tab:active{display:block}.hotels{padding:0 0 0 16px}.hotels li{margin:1em 0;font-size:0.875em;font-weight:normal}.hotels-name{font-weight:bold;color:#333}.kicker{margin:0.3125em 0;font-size:2em;font-family:futura-pt,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;line-height:1.2}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}
2 |
--------------------------------------------------------------------------------
/asset/grunt/reload.js:
--------------------------------------------------------------------------------
1 | /*
2 | * grunt-reload
3 | * https://github.com/webxl/grunt-reload
4 | *
5 | * Copyright (c) 2012 webxl
6 | * Licensed under the MIT license.
7 | */
8 |
9 | 'use strict';
10 |
11 | module.exports = function (grunt) {
12 |
13 | // node libs
14 | var path = require('path');
15 | var fs = require("fs");
16 | var taskEvent = new (require("events")).EventEmitter();
17 |
18 | // external libs
19 | var connect = require('connect');
20 | var buffers = require('buffers');
21 | var httpProxy = require('http-proxy');
22 | var WebSocketServer = require("websocket").server;
23 |
24 | var throttle = false;
25 | // support for multiple reload servers
26 | var servers = {};
27 |
28 | function handleReload(wsServer, target) {
29 | var connections = wsServer.connections;
30 | var path = grunt.file.watchFiles ? grunt.file.watchFiles.changed[0] : 'index.html';
31 |
32 | // apply_js_live
33 | var msg = '["refresh", {"path": "' + path + '", "target": "' + target + '"}]';
34 |
35 | for (var i = 0; i < connections.length; i++) {
36 | connections[i].sendUTF(msg);
37 | }
38 | }
39 |
40 | // simple router
41 | function route(method, path, cb) {
42 | return function (req, res, next) {
43 | if (req.method !== method) {
44 | return next();
45 | }
46 |
47 | if (path instanceof RegExp && req.url.match(path) === null || typeof path === 'string' && req.url !== path) {
48 | return next();
49 | }
50 |
51 | cb(req, res, next);
52 | };
53 | }
54 |
55 | grunt.registerTask('reload', "Reload connected clients when a file has changed.", function (target) {
56 |
57 | var server = servers[target ? target:'default'];
58 |
59 | if (server) {
60 | var errorcount = grunt.fail.errorcount;
61 | // throttle was needed early in development because of rapid triggering by the watch task. Not sure if it's still necessary
62 | if (!throttle) {
63 | if (target) {
64 | taskEvent.emit('reload:' + target);
65 | } else {
66 | taskEvent.emit('reload');
67 | }
68 |
69 | throttle = true;
70 | setTimeout(function () {
71 | throttle = false;
72 | }, 2000);
73 | grunt.log.writeln("File updated. Reload triggered.");
74 | } else {
75 | return;
76 | }
77 | // Fail task if there were errors.
78 | if (grunt.fail.errorcount > errorcount) {
79 | return false;
80 | }
81 | } else {
82 | // start a server that can send a reload command over a websocket connection.
83 |
84 | var middleware = [];
85 |
86 | this.requiresConfig('reload');
87 |
88 | // Get values from config, or use defaults.
89 | var config = target ? grunt.config(['reload', target]) : grunt.config('reload');
90 | var port = config.port || 8001;
91 | var base = path.resolve(grunt.config('server.base') || '.');
92 | var reloadClientMarkup = '';
93 |
94 | if (!target) {
95 | target = 'default';
96 | }
97 |
98 | if (config.proxy) {
99 | var proxyConfig = config.proxy;
100 | var options = {
101 | target:{
102 | host:proxyConfig.host || 'localhost',
103 | port:proxyConfig.port || grunt.config('server.port') || 80,
104 | path:proxyConfig.path || '/' // not yet supported by http-proxy: https://github.com/nodejitsu/node-http-proxy/pull/172
105 | }
106 | };
107 | var proxy = new httpProxy.HttpProxy(options);
108 | var targetUrl = 'http://' + options.target.host + ':' + options.target.port + options.target.path;
109 |
110 | // modify any proxied HTML requests to include the client script
111 | middleware.unshift(connect(
112 | function (req, res) {
113 |
114 | if (proxyConfig.includeReloadScript !== false) {
115 | // monkey patch response, postpone header
116 | var _write = res.write, _writeHead = res.writeHead, _end = res.end, _statusCode, _headers, tmpBuffer;
117 |
118 | res.write = function (data) {
119 | if (tmpBuffer) {
120 | tmpBuffer.push(data);
121 | } else {
122 | _write.call(res, data);
123 | }
124 | };
125 |
126 | res.writeHead = function (statusCode, headers) {
127 | _statusCode = statusCode;
128 | _headers = headers;
129 | if (/html/.test(_headers["content-type"])) {
130 | // defer html & headers
131 | tmpBuffer = buffers();
132 | } else {
133 | _writeHead.call(res, _statusCode, _headers);
134 | }
135 | };
136 |
137 | res.end = function () {
138 | if (tmpBuffer) {
139 | var html = tmpBuffer.toString();
140 |
141 | html = html.replace('
' +
165 | reloadClientMarkup + '