Hungry for knowledge - Scotland JS 2014 talks
Jo Liss: No more
grunt watch: Modern build workflows with Broccoli
Jonathan Martin: The Realtime Web: We're Doing it Wrong.
Even with WebSockets, Server Sent Events, and WebRTC at our disposal, we continue to treat realtime interactions as a selective enhancement we can hack on to a subset of features after product launch. Our antiquated MVP design assumption has been to forgo realtime interactivity. As web apps become the next generation of desktop apps, this assumption is no longer acceptable: we need to take a realtime-from-the-onset approach. However, this mindset brings with it new architectural challenges that remain largely unaddressed. - What type(s) of software components should be realtime? - Could the realtime paradigm be reduced to a simple protocol? - Can we keep authorization code DRY while presenting both HTTP and WebSocket based APIs? - How can we stick with a fat client, but expose an extensive querying API without compromising on DRY or security? Weâ€™ll examine these problems from the client and server-side, consider potential solutions, then code a solution in JS for a concrete app. We've got the tools. We just need to stop monkey patching together one-off solutions.
Zeno Rocha Bueno Netto: A future called Web Components
Discover how this new concept formed by five new specifications (Templates, Decorators, Shadow DOM, Custom Elements, HTML Imports) will revolutionize the way we develop and interact on the web.
Jaume Sanchez Elias: Getting started with three.js and WebGL
An introduction to real-time graphics in the browser using WebGL with three.js. An overview of the structure of a three.js web app, the main elements of the API and some useful examples to get started on the exciting world of 3D graphics, now on desktop and mobile. It's not required to have previous knowledge of 3D graphics, linear algebra or linear transforms.
Mikeal Rogers: Keynote
Jan Monschke: Building a collaborative audio editor based on the Web Audio API
Ever since I saw Stuart Memo talk about the Web Audio API at JSConf.eu I was inspired to work with the API and see what was possible when Audio and Web collide. This resulted in a lot of experiments and demos in the last year. In the end I convinced my professor to let me experiment even more with it in my master's thesis, although he's never heard of that API. So the last months I spent working on a (minimal) web-based collaborative audio editor, similar to Apple's Garageband. In this talk I want to share my experiences, introduce you to the API, the editor and the synchronization algorithm and...if all goes well...record some music on stage ;)
Amanda O'Connell: Let's talk... mental health
At least one in four people will experience a mental health problem in the course of a year. The unwillingness to talk about mental health often makes it difficult for individuals to seek help and obtain the support they need. In this talk, Amanda focuses on the importance of talking about mental health - a subject somewhat different from most of the other conference talks, yet one relevant to many. Amanda also speaks openly about her own lived experience of mental health problems - a story of hope and triumph, which provides her with a unique insight into mental health. This talk will look not just at mental illness, but at mental wellness and some steps which everyone can take to help keep themselves mentally well.
Tero Parviainen: Build Your Own AngularJS
Sugendran Ganess: Refactoring Legacy Code
Jason Frame: Beyond the AST - A Fr**ework for Learnable Programming
Coby Chapple: How design happens at GitHub
Get an insight into the design process at GitHub, some of the more interesting constraints we face, how we make difficult product decisions (without needing managers), and some actionable ideas for how to improve the way design happens in your organization.
Tom Ashworth: ServiceWorker & the offline web
Native platforms hold something over the web: we do not have a meaningful way to ensure that, no matter what the connection of the user is like, we can always deliver an experience. ServiceWorker aims to fix this, allowing developers to take control of all resource requests from their pages before they go to the network, and save assets and content in a durable cache. We'll go through the state of the offline web today, look at the ServiceWorker proposal, discuss UX and technical implications and touch on the polyfill that enables experimentation today. Solving the offline problem moves us a huge leap towards the web being a truly viable application platform.
These days, we're spoiled for choice when it comes to HTML5 game frameworks. But with so many frameworks out there, it's easy to feel like you might be picking the wrong one for your next project. Each framework has their own way of doing things, and it can feel like a big commitment to spend time learning a framework before you know everything it's capable of and if you like its API enough to stick with it. I've tried out a few of the popular HTML5 frameworks over the last few years, and Phaser is my current favorite. It's got everything you're likely to need (sprites, tilemaps, sound, animation, canvas/webgl, etc), a very active community (20 releases in the last 10 months), and an extensive suite of examples (over 160 playable demos). A 20 minute conference talk isn't enough time to show off everything, but my hope is to give you a tour of Phaser's features that you're most likely to care about if you're interested in making games with JS. I want to leave you with enough familiarity that you'll feel comfortable starting your first game, and excited by the possibilities.
Angelina Fabbro: Keynote
Jonathan Lipps: Yield! How ES6 Generators and Monocle-js Can Bring Async Into Line, Literally
While smart practices and async helpers can limit the pain of callback-based control flow, ES6 generators make possible new approaches that result in code which is much easier to read, maintain, and reason about. Monocle-js is one such project. In this talk, we'll look at some of the control flow situations which are particularly ugly in callback-based approaches, then discuss ES6's new generator support and
yield keyword. With a basic understanding of generators in hand, we'll explore how Monocle-js can drag the aforementioned examples out of callback purgatory and set them on the straight and narrow path to Readability and Maintainability.
Matt Field: Don't Go Changin'
James Coglan: Make: the forgotten build tool
Ryan Sandor Richards: High Performance Visualizations with Canvas
Over the last few years there has been a growing demand for web based real-time data visualization. HTML5 Canvas is a natural choice for implementing these types of displays, but the sheer number of shapes that must be animated can quickly turn a laptop into a portable space heater. In this talk we'll dig into the nuts and bolts of canvas and explore techniques for implementing beautiful, smooth, and efficient visualizations.
Dave Kennedy: Foundations for Assemble
You may have used a static site builder in the past, Jekyll, Octopress, Pelican. A new kid on the block is Assemble. It's written in JS, its grunt based, has great features out of the box and is easily extended for your own purpose. In this talk lets have a look at what it does, what it can be used for, how to extend it and most importantly why you should be using it! For a static site generator it sure comes in handy for a myriad of other tasks.
John Sutherland: A Humane Introduction to Functional Programming
Philip Roberts: Help, I'm stuck in an event-loop.