-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.html
570 lines (560 loc) · 56 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
<!doctype html>
<html itemscope itemtype="http://schema.org/Event" xmlns:fb="http://ogp.me/ns/fb#">
<head>
<title itemprop="name">Empire Conf - New York City, October 11-13, 2017</title>
<meta charset="utf-8"/>
<meta name="author" content="Empire Conf"/>
<meta name="description" content="Empire Conf is a 2 day conference is bringing the best of the Node and JavaScript worlds to NYC on October 12-13, 2017."/>
<meta name="viewport" content="initial-scale=1"/>
<meta name="robots" content="index, follow" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://www.empireconf.org/" />
<meta property="og:title" content="Empire Conf - New York City, October 12-13, 2017" />
<meta property="og:description" content="Empire Conf is a 2 day conference is bringing the best of the Node and JavaScript worlds to NYC on October 12-13, 2017." />
<meta property="og:site_name" content="Empire Conf 2017" />
<meta property="og:image" content="http://2017.empireconf.org/img/facebook_preview_meta.png?201708" />
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:site" content="@empireconf" />
<meta name="twitter:creator" content="@empireconf">
<meta name="twitter:title" content="Empire Conf - New York City, October 12-13, 2017" />
<meta name="twitter:description" content="Empire Conf is a 2 day conference is bringing the best of the Node and JavaScript worlds to NYC on October 12-13, 2017." />
<meta name="twitter:url" content="http://www.empireconf.org/" />
<link rel="stylesheet" href="/styles/site.min.css">
<link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700|Open+Sans' rel='stylesheet' type='text/css'>
</head>
<body class="l-homepage">
<div class="page-frame">
<div class="content-frame">
<nav class="off-canvas">
<ul class="nav nav--block nav--stacked">
<li><a href="#schedule">Schedule</a></li>
<li><a href="#about">About</a></li>
<li><a href="#sponsors">Sponsors</a></li>
<li><a href="mailto:[email protected]">Contact</a></li>
</ul>
</nav>
<nav class="nav-main z-structural">
<div class="grid grid--split grid--middle">
<div class="grid__cell">
<a href="/"><img src="/img/logo.svg" alt="Empire Conf 2017" class="nav-logo"></a>
</div>
<div class="grid__cell grid__cell--three-quarters palm-grid__cell--one-half text--right">
<div class="nav-toggle">
<button type="button" class="navbar-toggle">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<ul class="nav nav--block">
<li><a href="#schedule">Schedule</a></li>
<li><a href="#about">About</a></li>
<li><a href="#sponsors">Sponsors</a></li>
<li><a href="mailto:[email protected]">Contact</a></li>
</ul>
</div>
</div>
</nav>
<header class="l-header">
<div class="l-header-overlay">
<div class="container grid grid--gutters">
<div class="grid__cell grid__cell--half palm-grid__cell--full lap-grid__cell--full"><a href="/"><img src="/img/taxi.png"></a></div>
<div class="grid__cell palm-grid__cell--full lap-grid__cell--full">
<h1 class="h-header h-header--alpha h-header--condensed">Empire Conf</h2>
<h2 class="h-header h-header--trimmed">Oct 12 - 13, 2017</h2>
<h3 class="h-header">New York, NY</h3>
</div>
</div>
</div>
</header>
<section class="l-section">
<div class="container">
<h1 class="h-section">Venue info</h1>
<p>
At the New York Academy of Medicine, the <strong>wi-fi network is <code>ecc</code>, password is <code>ecc45678</code>.</strong> Mens and women's bathrooms are on the 1st floor, and a gender-neutral bathroom is on the second floor.
</p>
</div>
</section>
<section class="l-section">
<div class="container">
<h1 class="h-section" id="schedule">Schedule</h1>
<ul class="nav nav--block schedule-day-list">
<li>
<a href="#" class="schedule-day-item" data-target-panel="schedule-pre-conf">
<h2 class="h-header schedule-day-list__title">Pre-Conference</h2>
<span class="schedule-day-list__date">Wednesday Oct. 11th</span>
</a>
</li>
<li>
<a href="#" class="schedule-day-item" data-target-panel="schedule-javascript-day">
<h2 class="h-header schedule-day-list__title">JavaScript Day</h2>
<span class="schedule-day-list__date">Thursday Oct. 12th</span>
</a>
</li>
<li>
<a href="#" class="schedule-day-item schedule-day-item--active" data-target-panel="schedule-node-day">
<h2 class="h-header schedule-day-list__title">Node.js Day</h2>
<span class="schedule-day-list__date">Friday Oct. 13th</span>
</a>
</li>
</ul>
<div class="schedule" id="schedule-pre-conf">
<div class="schedule-time">6:30pm - 9:00pm</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">EmpireConf Icebreakers at Microsoft Terrace</h3>
<h4 class="h-header h-trimmed"><a href="https://www.google.com/maps/place/Microsoft+Technology+Center/@40.7566806,-73.9896489,15z/data=!4m5!3m4!1s0x0:0xcb6b70d1bb597301!8m2!3d40.7566806!4d-73.9896489">Microsoft Technology Center, 11 Times Square (8th Ave. at 41st St.).</a> 7th Floor.</h4>
<p>
Opening chill night where folks from across communities and the globe come together to make a few new friends, play games, talk shop, and have a swell view of the city.
</p>
</div>
</div>
<div class="schedule" id="schedule-javascript-day">
<div class="schedule-time">8:00am - 9:15am</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Registration Opens</h3>
<h4 class="h-header h-trimmed"><a href="https://www.google.com/maps/place/New+York+Academy+of+Medicine/@40.7919081,-73.9542709,17z/data=!4m5!3m4!1s0x0:0xde3b0235d36d2ba7!8m2!3d40.7921!4d-73.9523826">New York Academy of Medicine, 1216 5th Ave (at 103rd St.)</a></h4>
</div>
<div class="schedule-time">9:15am - 9:30am</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Welcome to Empire Conf</h3>
</div>
<div class="schedule-time">9:35am - 9:55am</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Bauhaus in the Browser</h3>
<img src="https://speak.empireconf.org/uploads/sKIYYkNWCJCxcikwmv7h58nTCpaZGjAzN0jERoiv.jpeg" alt="Justin McDowell" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Justin McDowell</h5>
<div class="schedule-session__body">
<p>Until recently, design on the web has been limited to fragile, horizontal, and boxy layouts. Today there are new tools in CSS that can help us breathe new life into stale projects. Some of them are cutting edge, while others are quite mature yet still under-used. This talk is centered around the use of five emerging CSS tools: grid, shapes, transforms, viewport units, and blending modes. By the end, attendees will see practical examples of how to mix these tools together and turn them into novel, eye-catching compositions.</p>
<p>Attendees will get a showcase of how these new digital techniques can be applied to the web by journeying back to the past—nearly 100 years—to one of the most notable periods in the history of design: Bauhaus modernism. During this period, design was highly influential yet gleefully experimental, with strict geometry, overlapping elements, and rotated text. Attendees will see works by artist Piet Mondrian, typographer Jan Tschichold, metal-worker Marianne Brandt, and more recreated or redesigned on screen, and optimized for the new medium of mobile devices.</p>
</div>
</li>
</ul>
<div class="schedule-time">10:00am - 10:25am</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Developing for Localization</h3>
<img src="https://speak.empireconf.org/uploads/KXffhjEczohJoMhEJOKOr8hZTfza3KZWldvMICkU.jpeg" alt="Katie Kurkoski" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Katie Kurkoski</h5>
<div class="schedule-session__body">
<p>Having worked on a dynamic site translated into more than 20 languages, I am all to familiar with the layout havoc caused by localized content: English content translated into German can be twice as long as the original, and Japanese can be half as long. In this talk, I will demonstrate CSS techniques to build pages flexible enough to handle copy columns with differing heights, strange centering, and grid-breaking content boxes. The secret here is that these enterprise CSS techniques apply to large differences in content sizes; such as from database-driven sites, user-generated content, or unknown viewport sizes.</p>
</div>
</li>
</ul>
<div class="schedule-time">10:30am - 10:50am</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Let's go on a databender!</h3>
<img src="https://speak.empireconf.org/uploads/brPS6bMhmTMcGPFq2OAD1IG9PxDH5kJmhMB8y2tx.jpeg" alt="Mike Vattuone" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Mike Vattuone</h5>
<div class="schedule-session__body">
<p>Databending, also known as "the artistic misuse of digital information", is a largely unexplored and highly creative domain in glitch art and new media. In the context of programming, databending is a fun way to dive into a number of interesting concepts, such as audio processing, buffers, and media streaming, not normally covered in the day to day of web development.</p>
<p>This talk consists of two parts: a high level overview of various databending techniques, and a demonstration of databending with Javascript in the browser, specifically focused on running images and video through audio processes to create new experiences in real time.</p>
<p>There is value in exploring uncharted territories and going against what the documentation states. I want you to leave this talk with a newfound appreciation for occasionally bending the rules. We normally want to follow the rules because it makes things simpler, but in this case ignoring them allows us to discover things that we may never have otherwise imagined.</p>
</div>
</li>
</ul>
<div class="schedule-time">10:50am - 11:15am</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Coffee/Snack Break</h3>
</div>
<div class="schedule-time">11:20am - 11:40am</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">From Barely Ready to Total Betty: How JS Picked Out My Outfit</h3>
<img src="https://pbs.twimg.com/profile_images/809063411027939328/rLHaSvr0_400x400.jpg" alt="Justin Falcone" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Justin Falcone</h5>
<div class="schedule-session__body">
<p>Star Trek's communicators and tricorders are often cited as the inspirations for the modern smartphone, but no science fiction has inspired me as deeply as <a href="https://www.youtube.com/watch?v=XNDubWJU0aU">Cher's closet in Clueless</a>. In this talk, we'll build a web app to put together cute, coordinated outfits, and along the way we'll learn a little bit about constraint solvers, relational databases, and the history of artificial intelligence.</p>
</div>
</li>
</ul>
<div class="schedule-time">11:45am - 12:05pm</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Network Not Included</h3>
<img src="https://speak.empireconf.org/uploads/K4JSRUpDPUd0GuJA2r0dKvRmkX7jKshuesy1vMEE.jpeg" alt="Carmen Bourlon" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Carmen Bourlon</h5>
<div class="schedule-session__body">
<p>Constant internet access has become ingrained in our society. Consistent connectivity has been a blessing for learning, and will undoubtedly continue to drive innovation. However, with 12 percent of the United States without internet at home, many cannot access their important financial and health data, look for employment, or even keep up with current events. Many are forced to rely on cellular data or even public spaces offering internet access.</p>
<p>In short, internet connectivity places users into silos, with the connected silo being easy to fall out of, but difficult to break into.</p>
<p>What can developers do to bridge this gap? Is there anything short of free, universal internet that will solve this problem? The answer is yes. Using new technologies like Electron, Ionic, and React Native this talk will focus on using freely available tech to build on the work we’ve already done, while improving access to our products.</p>
</div>
</li>
</ul>
<div class="schedule-time">12:10pm - 12:30pm</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Vue.js in Practice: Hybridizing Objects and Functions</h3>
<img src="https://speak.empireconf.org/uploads/HJKW2CsUScZuQuAXVQhKYlf1V2mSDg7BuI9Otutj.jpeg" alt="Betsy Haibel" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Betsy Haibel</h5>
<div class="schedule-session__body">
<p>Reactive data structures are intuitive and flexible. But they’re not always enough structure for complex client applications. How can we scale understandability? This talk presents three Vue.js techniques: partially applied utility functions, unmounted data-store components, and a hybrid technique that can give us the benefits of each. You’ll learn what each technique is good for — and where each can trip you up. Whether you use Vue or React or even JQuery day-to-day, you’ll come away with a better understanding of how to leverage reactivity for understandability when understandability gets hard.</p>
</div>
</li>
</ul>
<div class="schedule-time">12:35pm - 2:10pm</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Lunch</h3>
</div>
<div class="schedule-time">2:15pm - 3:35pm (Workshops - bring a laptop)</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Offline Sync for Progressive Web Apps (sponsored by IBM)</h3>
<img src="https://speak.empireconf.org/uploads/gudFfXBbpQR8zefKVqtEurF3LoWujCIHfYOld3gk.jpeg" alt="Bradley Holt" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Bradley Holt</h5>
<div class="schedule-session__body">
<p><a href="https://github.com/ibm-watson-data-lab/shopping-list-polymer-pouchdb#tutorial">Tutorial</a></p>
<p>With the introduction of Progressive Web Apps and browser APIs such as persistent storage, payments, geolocation, and push notifications, it is now possible to build fully-featured mobile apps on the web platform. One important aspect of Progressive Web Apps is the concept of building your app to be Offline First. With an Offline First approach, you design your app for the most resource-constrained environment first. This approach provides a consistent user experience whether the user's device has no connectivity, limited connectivity, or great connectivity. One of the biggest benefits of Offline First apps is that they can be very fast, as they provide zero-latency access to content and data stored directly on the device.</p>
<p>The Service Worker API can do most of the heavy lifting when it comes to storing URL-addressable content and assets for Offline First Progressive Web Apps. A bigger challenge can be storing and sync'ing your app's data. One of the best answers today for offline sync for Progressive Web Apps is a combination of Apache CouchDB (an open source document database), Hoodie (an open source Node.js backend for Offline First apps), and PouchDB (an open source JavaScript database that syncs). This stack can provide you with the starting point for your own Progressive Web App mobile backend and frontend, and it's entirely open source! You'll leave this workshop having built a fully-functional Offline First Progressive Web Apps using Service Workers, Apache CouchDB, Hoodie, and PouchDB. Some prerequisite knowledge of building web apps with JavaScript will be helpful for participants.</p>
</div>
</li>
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">What to expect() when you're expect()ing</h3>
<img src="https://speak.empireconf.org/uploads/QBdn5bUCpEp8GYP7HgiWT1pk0ZdVX2FIlH8oARo0.jpeg" alt="Justin Searls" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Justin Searls</h5>
<div class="schedule-session__body">
<p><a href="https://github.com/testdouble/test-smells">Materials</a></p>
<p>Every day, brilliant programmers around the world write awful tests.</p>
<p>These days, most developers (finally!) test their JavaScript. In fact, many of us write so many tests we often feel overwhelmed by massive suites of erratic, inconsistent, and redundant tests. Worse, because tests play second-fiddle to production code, it can be hard to make the time to identify & address root cause problems before they metastasize throughout our projects.</p>
<p>I've been helping teams test their JavaScript for nearly a decade, and I've distilled what I've learned into <a href="https://github.com/testdouble/test-smells">30 "smells"</a>— indicators of potential test design problems, each paired with an example exercise. Attendees are encouraged to come to the workshop with their most painful test in hand and to share them with the group. Together, we'll collectively identify each test's root cause problems and how to address them in a systematic, repeatable way.</p>
<p>Please bring your testing horror stories and particular tests you hate maintaining.</p>
</div>
</li>
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Going Front-end to Full-stack with Glitch</h3>
<img src="img/speakers/Jenn-Schiffer.jpg" alt="Jenn Schiffer" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Jenn Schiffer</h5>
<div class="schedule-session__body">
<p><a href="https://empireconf-workshop.glitch.me/">Materials</a></p>
<p>In this workshop for front-end devs and designers who want to get started with Node apps, attendees will learn how websites and web apps get onto the web, and how they can use Glitch to do that with ease. They will learn how to take a static website and get it online and then convert it into a Node app so they can harness the power of APIs to make it do great things!</p>
</div>
</li>
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Hack for Good</h3>
<div class="schedule-session__body">
<p><a href="https://docs.google.com/document/d/1tk584tWJ8JrIo7bP8zFR9zeg_4GDKhNLZlgcNglDtQI/edit#heading=h.6jimvy4gok2s">Projects</a></p>
<p>Want to help some awesome social good organizations, and contribute to open source at the same time? Join us for our Hack for Good session, where you'll find out about cool projects that you can make a difference on. Some example projects are <a href="https://www.if-me.org/" target="_blank">If Me</a>, an online community for mental health support, and <a href="https://www.quill.org/" target="_blank">Quill</a>, a set of tools to help students wth writing. All levels of experience welcome.</p>
</div>
</li>
</ul>
<div class="schedule-time">3:40pm - 3:55pm</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Snack/Stretch/Breather Break</h3>
</div>
<div class="schedule-time">4:00pm - 5:30pm</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Workshops Continue</h3>
</div>
<div class="schedule-time">6:30pm - 9:30pm</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Computer Science Theatre 2000</h3>
<h4 class="h-header h-trimmed"><a href="https://www.google.com/maps/place/AMC+Loews+Orpheum+7/@40.779406,-73.954065,15z/data=!4m5!3m4!1s0x0:0x85c0a7c8f7b151aa!8m2!3d40.779406!4d-73.954065">AMC Loews Orpheum 7, 1538 Third Ave (at 86th St.)</a></h4>
<p>
Empire tackles MST3K with a few good heckler hosts. Grab your popcorn, some treats, a few props, and heckle along with the rest of the crowd as we watch a coder movie favorite. Chatting encouraged.
</p>
</div>
</div>
<div class="schedule schedule--active" id="schedule-node-day">
<div class="schedule-time">8:00am - 9:15am</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Breakfast Served</h3>
<h4 class="h-header h-trimmed"><a href="https://www.google.com/maps/place/New+York+Academy+of+Medicine/@40.7919081,-73.9542709,17z/data=!4m5!3m4!1s0x0:0xde3b0235d36d2ba7!8m2!3d40.7921!4d-73.9523826">New York Academy of Medicine, 1216 5th Ave (at 103rd St.)</a></h4>
</div>
<div class="schedule-time">9:15am - 9:30am</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Welcome Back</h3>
</div>
<div class="schedule-time">9:35am - 9:55am</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">The rise of HTTP/2</h3>
<img src="https://speak.empireconf.org/uploads/zpmzWy1dOjpk9BnoFUqxf1ANoEwWIAjEtC4nYpst.jpeg" alt="Daniela Matos de Carvalho" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Daniela Matos de Carvalho</h5>
<div class="schedule-session__body">
<p>This talk aims to explain how HTTP/2 works: understand the new features the protocol has in comparison with HTTP/1.x, and what developers will need to take into consideration when using it. We will take a quick look into the pitfalls of the protocol and how Service Workers may help to get the maximum of it and help to decrease latency. We're also going to play a bit with the new NodeJS implementation.</p>
</div>
</li>
</ul>
<div class="schedule-time">10:00am - 10:25am</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">A Brief History of Prototypes</h3>
<img src="https://speak.empireconf.org/uploads/IVZwtWSIJnl9LJeTN5SVYo8G8U62TIxaUax2pWhA.jpeg" alt="Kat Marchán" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Kat Marchán</h5>
<div class="schedule-session__body">
<p>JavaScript is probably the most famous example of a prototype-based language. But what is prototype-based programming? Where did it all come from? What's the big deal? Why is JavaScript's version of it the way it is?</p>
<p>Prototype-oriented programming has been around for over 30 years now. From its earliest days as a series of language extensions for various languages, to the release of Self and the compiler technology it developed that's used by Chrome and Node.js, to the rise of JavaScript and beyond -- it has been an incredibly influential take on the concept of object-orientation, and withstood the test of time against its class-based counterparts.</p>
<p>A Brief History of Prototypes will tell the story of this programming paradigm, the decisions and mistakes, the technological breakthroughs it led, its explosive rise in popularity on the back of ECMAScript, and puts it all in context with the way we use prototype-based languages today.</p>
</div>
</li>
</ul>
<div class="schedule-time">10:30am - 10:50am</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Why Static Typing Matters (or How to Solve All Your Runtime Errors With This One Neat Trick)</h3>
<img src="https://speak.empireconf.org/uploads/n3rfPlzw0vFixd7z6yTaWnEwPhfcsQfxzClKSq3q.png" alt="Eli Perkins" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Eli Perkins</h5>
<div class="schedule-session__body">
<p>Over the years, I've shipped applications to hundreds upon thousands upon millions of users devices. When a crash or a runtime error occurs, the problem is often due to a bug that stems from a simple developer error, such as passing an array where a method expects a string, or trying to access a property on a null object.</p>
<p>These problems were huge when writing apps in Objective-C, due to the dynamic nature of the language. This all changed in 2014 when Apple announced Swift, a static, strongly typed language. At Venmo, we reduced our crash rate drastically whenever we introduced more Swift code, because it forced developers to make the appropriate decisions when typing our code. Gone were the days of null pointer exceptions and trying to add 2to "username".</p>
<p>When moving over to using React Native, I yearned for static types in JavaScript. Two big open source projects exist to help JavaScript developers with static typing, Flow from Facebook and Typescript from Microsoft. These two projects not only prevent engineers from writing bugs that would blow up at runtime, they both come with a vast set of developer tooling to help them be more efficient, instead of slow them down.</p>
<p>This talk will look at the state of static typing in JavaScript, looking at what kinds of bugs that Flow and Typescript prevent, as well as take a look at the future of static typing in JavaScript, exploring projects such as ReasonML. We'll look at how these tools can assist developers in creating awesome, scaleable, future-proof JavaScript apps.</p>
</div>
</li>
</ul>
<div class="schedule-time">10:50am - 11:15am</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Coffee/Snack Break</h3>
</div>
<div class="schedule-time">11:20am - 11:40am</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Bad Performance is the Root of All Evil</h3>
<img src="https://speak.empireconf.org/uploads/QpBIBPH2XZUQn4gCWLZyra9oAWiyoT32jEvU6wws.png" alt="Dave Thompson" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Dave Thompson</h5>
<div class="schedule-session__body">
<p>Your application’s load and interaction response times are crucial for delivering an experience that will keep users coming back again and again. JavaScript application performance is a complicated web of interacting components: user actions, network requests, DOM rendering, and code execution. This talk will delve into what users will expect from your app, the corresponding metrics you need to measure, how to measure them, and the tools used to fix performance defects.</p>
</div>
</li>
</ul>
<div class="schedule-time">11:45am - 12:05pm</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Programming 101: Learn English</h3>
<img src="https://speak.empireconf.org/uploads/jOOw2LFEMPlC40Zg2PKzX0i2no8JVf9xJ8ev81BY.jpeg" alt="Vanessa Yuen" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Vanessa Yuen</h5>
<div class="schedule-session__body">
<p>Should English continue to be the lingua franca of programming? Think about if, else, for, while, break – to most of you, these keywords have obvious meanings; but to any non-English speaker who is learning to code, these are merely symbols that must be memorized. We have talked a lot about internationalization and localization for the products we're building, so why aren't we applying the same concepts to our industry? Today, English is still a barrier of entry to tech. Many people still regard fluency of English as a sign of competency. Inferiority complex is still common among the developers who speak English as a second language.</p>
<p>In this talk, you will get a glimpse of what it's like to code in a foreign language. Together, we will explore the advantages of being able to collaborate in one language, the dangerous implications of accepting that as the default, and how we can do better as a community.</p>
</div>
</li>
</ul>
<div class="schedule-time">12:10pm - 12:30pm</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Architecture as Text: Setup AWS Lambda, API Gateway, SNS, and DynamoDB on Easy Mode</h3>
<img src="https://speak.empireconf.org/uploads/C7TLIg1FzraCYbN9La8pDnaYZHGQHe290mVcKVpn.jpeg" alt="Angelina Fabbro" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Angelina Fabbro</h5>
<div class="schedule-session__body">
<p>Functions-as-a-service reject the metaphor of a server and free developers to design smaller, simpler services. On the surface, it is a beautifully simple idea. But, because building serverless-y apps is very new, so are the tools to navigate it. This path can be fraught with complexity and often requires a high degree of domain-specific knowledge about proprietary systems. In this talk, Angelina will teach you a new approach to architecting applications with plain text using https://arc.codes to create apps in minutes and deploy within seconds, taking advantage of all the benefits of functions-as-a-service: a high degree of isolation, the ability to deploy systems in seconds with zero downtime, and consistent availability regardless of load.</p>
</div>
</li>
</ul>
<div class="schedule-time">12:35pm - 2:10pm</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">JS Family Photo AND Lunch</h3>
</div>
<div class="schedule-time">2:15pm - 3:35pm (Workshops - bring a laptop)</div>
<ul class="nav nav--stacked schedule-slot">
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Data Heist: a Machine Learning Mystery (sponsored by Microsoft)</h3>
<h5 class="h-header schedule-speaker__name">Andy Reitano, Rachel Weil, Rachel White, and Suz Hinton</h5>
<div class="schedule-session__body">
<p><a href="https://github.com/hxlnt/dataheist">Materials</a></p>
<p>Machine learning is a really hyped topic at the moment within the tech community. It’s really cool as a concept but seems difficult to learn. The good news is there are ready made machine learning APIs that take a lot of complexity out of the equation. There are some really exciting models you can use - such as computer vision, content moderation, speech recognition, face detection, gesture understanding; the list goes on.</p>
<p>But what are the potential uses of these services? And how hard are they to use?</p>
<p>Join us on a data breach mystery and solve the case with machine learning. You’ll be briefed as detectives and given top secret evidence to analyze with various Cognitive Services – Microsoft’s machine learning APIs. The goal is to find clues, get answers, and infiltrate the enemy’s base! Your NodeJS skills will come in handy to piece the puzzle together, as well as your curiosity and determination!</p>
</div>
</li>
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">'Pizza' Bot Fun Time Spectacular: Let's Make a Slack Bot</h3>
<img src="https://speak.empireconf.org/uploads/4KzxWTna8JNL9OgC7twimfAyfqXwfpKuoa2RuiQU.jpeg" alt="Aydrian Howard" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Aydrian Howard</h5>
<div class="schedule-session__body">
<p><a href="https://github.com/SparkPost/pizza-bot">Slack</a>, <a href="https://github.com/SparkPost/pizza-bot">materials</a></p>
<p>Do you like pizza? How about bots? In this workshop we'll go through the process of breaking down a problem into bit-size chunks, how to work with (sometimes messy) APIs, and create a quality user experience in a chat app. Written in Node.js, we’ll also cover the ins and outs of the language and best practices for writing maintainable code. This 8 part workshop is organized to be self-paced, where each step is an self-contained accomplishment. Our goal is to send off the participants with a working Slack bot and the knowledge to continue fleshing out their bot to a fully shippable Slack App.</p>
</div>
</li>
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Deploying modern Node.js architectures on AWS</h3>
<img src="https://speak.empireconf.org/uploads/TrALGNz7KXMCOXHObJweXF9APjzqM0pQ42lme1N8.jpeg" alt="Nathan Peck" class="schedule-speaker__photo">
<h5 class="h-header schedule-speaker__name">Nathan Peck</h5>
<div class="schedule-session__body">
<p><a href="https://github.com/nathanpeck/empirejs-workshop-nodejs-aws">Materials</a></p>
<p>This workshop shows how to deploy a basic Node.js application on Amazon Web Services using three different techniques:</p>
<ol>
<li>Using Amazon Elastic Beanstalk to deploy monolithic Node.js code and run it directly on EC2 instances, behind an Application Load Balancer</li>
<li>Using Serverless framework to deploy Node.js functions to Amazon Lambda, behind an API Gateway</li>
<li>Using Amazon ECS to deploy containerized Node.js microservices to a cluster of Docker hosts behind an Application Load Balancer</li>
</ol>
<p>The workshop will cover the differences between these different architectural approaches, and their advantages and disadvantages in different scenarios. The goal is that developers gain a basic hands on understanding of how to setup all three deployment approaches, and learn how to determine which one best serves the needs of their specific application.</p>
<p><strong>Prerequisites:</strong> An AWS account with a credit/debit card attached. Note the workshop will cost up to $5 in AWS resources.</p>
</div>
</li>
<li class="schedule-session">
<h3 class="h-header h-trimmed h-schedule-session">Hack for Good</h3>
<div class="schedule-session__body">
<p><a href="https://docs.google.com/document/d/1tk584tWJ8JrIo7bP8zFR9zeg_4GDKhNLZlgcNglDtQI/edit#heading=h.6jimvy4gok2s">Projects</a></p>
<p>Want to help some awesome social good organizations, and contribute to open source at the same time? Join us for our Hack for Good session, where you'll find out about cool projects that you can make a difference on. Some example projects are <a href="https://www.if-me.org/" target="_blank">If Me</a>, an online community for mental health support, and <a href="https://www.quill.org/" target="_blank">Quill</a>, a set of tools to help students wth writing. All levels of experience welcome.</p>
<p>You are welcome at this regardless of whether you the previous day or not.</p>
</div>
</li>
</ul>
<div class="schedule-time">3:40pm - 3:55pm</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Snack/Stretch/Breather Break</h3>
</div>
<div class="schedule-time">4:00pm - 5:00pm</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Workshops Continue</h3>
</div>
<div class="schedule-time">6:15pm - 10pm</div>
<div class="schedule-announcement">
<h3 class="h-header h-trimmed">Empire Jazz Lounge Cruise</h3>
<h4 class="h-header h-trimmed"><a href="https://www.google.com/maps/place/Pier+36+New+York/@40.709932,-73.9846017,15z/data=!4m5!3m4!1s0x0:0xb4126708a3bf79f0!8m2!3d40.709932!4d-73.9846017">Pier 36, 299 South Street (at Montgomery St.)</a></h4>
<p>
Join your new conference friends at the closing party, where we embrace the New York jazz scene of the 1940s with a jazz lounge theme and a beautiful ride on the water. Dinner and drinks are included.
</p>
</div>
</div>
</div>
</section>
<section class="l-section">
<div class="container">
<h1 class="h-section" id="about">Empire Conf 2017</h1>
<p>
Every year the Empire team ramps up, we try to highlight one of the things that makes New York City an amazing place to live, work, visit, and git push origin master in.
</p>
<p>
This year we return to showcase the little language you know and love at the <a href="https://nyam.org/about/visit/">Academy of Medicine on museum mile</a>, this October 12 and 13.
</p>
<p>
We're so excited that we're able to feature New York at its finest, and we're really looking forward to pushing Empire, JS, and Node.js towards another incredible year.
</p>
</div>
</section>
<section class="l-section l-cta">
<div class="container">
<h1 class="h-section h-section--light">Stay up to date with Empire Conf 2017</h1>
<form action="//empirejs.us8.list-manage.com/subscribe/post" method="post" target="_blank" novalidate>
<input type="hidden" name="u" value="db101865a07c31c476599405e">
<input type="hidden" name="id" value="55b168ea27">
<div class="grid grid--center">
<div class="grid__cell grid__cell--two-thirds palm-grid__cell--full">
<input type="email" name="MERGE0" placeholder="Enter Email Address" class="text-input text-input--full">
</div>
<div class="grid__cell grid__cell--one-quarter palm-grid__cell--full">
<button type="submit" class="btn btn-input">Subscribe</button>
</div>
</div>
</form>
</div>
</section>
<div class="l-map" id="map"></div>
<section class="l-section">
<div class="container">
<h1 class="h-section" id="code-conduct">Code of Conduct</h1>
<p>We are an inclusive, kind community that is constantly growing. We ask that you make our fellow Empire friends feel welcome! Diversity of voices is important to our community, and we are serious when we say EVERYONE AND ANYONE should attend and participate. We are committed to ensuring the conference is a place where ideas are exchanged, old friends get together, new friends meet and harassment is not tolerated. We expect speakers, attendees, organizers, and sponsor representatives to be professional and courteous to each other. We reserve the right to remove, without refund, ANY attendee (speaker or otherwise) who is unable to adhere to this policy. See our project repo for all of the details on our CoC and reporting guidelines.</p>
<p>If at any point you need help or to report a Code of Conduct violation we have multiple ways to contact us: Find an organizer in person, text (267) 606-0603, send a DM to <a href="http://twitter.com/empirejs">@empirejs</a> on Twitter, and/or email <a href="mailto:[email protected]">[email protected]</a> (however this email account may not be checked frequently during the event).</p>
</div>
</section>
<section class="l-section">
<div class="container">
<h1 class="h-section" id="sponsors">Sponsors</h1>
<div class="sponsor-title">
<h2 class="sponsor-title__body">JavaScript Day</h2>
</div>
<div class="sponsor-list grid grid--grow">
<a href="https://technology.condenast.com" class="sponsor-item" title="Condé Nast">
<img src="/img/sponsors/conde-nast.png" alt="Condé Nast">
</a>
</div>
<div class="sponsor-title">
<h2 class="sponsor-title__body">Node.js Day</h2>
</div>
<div class="sponsor-list grid grid--grow">
<a href="https://www.ibm.com/us-en/" class="sponsor-item" title="IBM">
<img src="/img/sponsors/ibm.png" alt="IBM">
</a>
</div>
<div class="sponsor-title">
<h2 class="sponsor-title__body">Diversity Initiative</h2>
</div>
<div class="sponsor-list grid grid--grow">
<a href="https://www.mongodb.com/" class="sponsor-item" title="MongoDB">
<img src="/img/sponsors/mongodb.png" alt="MongoDB">
</a>
</div>
<div class="sponsor-title">
<h2 class="sponsor-title__body">Gold</h2>
</div>
<div class="sponsor-list grid grid--grow">
<a href="http://microsoft.com" class="sponsor-item" title="Microsoft">
<img src="/img/sponsors/microsoft.png" alt="Microsoft">
</a>
<a href="http://www.viacomcareers.com/" class="sponsor-item" title="Viacom">
<img src="/img/sponsors/viacom.png" alt="Viacom">
</a>
<a href="https://www.capitalone.com/" class="sponsor-item" title="Capital One">
<img src="/img/sponsors/capital-one.png" alt="Capital One">
</a>
</div>
<div class="sponsor-title">
<h2 class="sponsor-title__body">Silver</h2>
</div>
<div class="sponsor-list grid grid--grow">
<a href="https://saucelabs.com/" class="sponsor-item" title="Sauce Labs">
<img src="/img/sponsors/sauce-labs.png" alt="Sauce Labs">
</a>
<a href="https://casper.com/" class="sponsor-item" title="Casper">
<img src="/img/sponsors/casper.png" alt="Casper">
</a>
<a href="https://www.bloomberg.com/" class="sponsor-item" title="Bloomberg">
<img src="/img/sponsors/bloomberg.png" alt="Bloomberg">
</a>
</div>
<div class="sponsor-title">
<h2 class="sponsor-title__body">Startup</h2>
</div>
<div class="sponsor-list grid grid--grow">
<a href="https://js.foundation/" class="sponsor-item" title="JavaScript Foundation">
<img src="/img/sponsors/jsfoundation.png" alt="JavaScript Foundation">
</a>
<a href="https://github.com/" class="sponsor-item" title="GitHub">
<img src="/img/sponsors/github.png" alt="GitHub">
</a>
<a href="https://www.yld.io/" class="sponsor-item" title="YLD">
<img src="/img/sponsors/yld.png" alt="YLD">
</a>
</div>
</div>
</section>
<footer class="l-footer l-section">
<div class="container grid grid--gutters">
<div class="grid__cell copyright">
Copyright © 2012–2017 Empire Conf – All Rights Reserved
</div>
</div>
</footer>
</div>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(function() {
$('.schedule-day-item').on('click', function (e) {
var $tab = $(this);
e.preventDefault();
$('.schedule-day-item--active').removeClass('schedule-day-item--active');
$tab.addClass('schedule-day-item--active');
$('.schedule--active').removeClass('schedule--active');
$('#' + $tab.data('target-panel')).addClass('schedule--active');
});
$('.navbar-toggle').on('click', function (e) {
$('.page-frame').toggleClass('active');
e.stopPropagation();
e.preventDefault();
});
$('.off-canvas').on('click', '.nav a', function(e) {
$('.page-frame').removeClass('active');
});
$('body').on('click', '.active .content-frame', function(e) {
$('.page-frame').removeClass('active');
});
});
</script>
<script type="text/javascript" src="/js/map.js"></script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB2tgQiSOli6RGV60I9tZyw-hH2nDtwbFQ&callback=initMap" type="text/javascript"></script>
</body>
</html>