Speaking
I speak occasionally on subjects which I find fascinating — I have a bit of a theme around HTTP and JavaScript forming, but sometimes I like to kick the trend. Get in touch if you’d like to hear me speak at your next event.
I speak occasionally on subjects which I find fascinating — I have a bit of a theme around HTTP and JavaScript forming, but sometimes I like to kick the trend. Get in touch if you’d like to hear me speak at your next event.
Do you want Tweets or your latest Instagram food picture to display nicely in your site? Just load this third-party script into your site — never mind what it does! … err, what’s the difference between third-party scripts and a cross-site scripting attack again? Can’t third-party scripts steal user credentials, track users without their consent, and hijack your site for advertising purposes? In this talk, we’ll discuss different ways of sandboxing these scripts to increase your site’s security, stability, and protect the privacy of your users. You’ll leave with an understanding of the latest browser features designed to protect you and your users.
For web applications, why does our testing stack change when moving from language to language, when our users are using the same browsers to access them? The Chrome team has done quite a bit of work to make testing in a real browser within reach — and this talk covers how to use it for stable and fast end-to-end tests, executable in any environment.
The Chromecast, an underpowered computer running the Chrome browser, is often underutilized as a gaming device. This talk will teach you to write a party game, leveraging your guests’ phones as game controllers and your TV as a game board, using only the HTML, JavaScript, and CSS. No app required.
Keeping JavaScript from interfering across tabs is great, but what about when a web application wants to share state without a server? You’ll leave this talk with enough knowledge to get started with SharedWorkers, ServiceWorkers, and other techniques and enough wisdom to know when to use them.
Your website is unresponsive, your cookie size is through the roof. Your competitors have come out with native apps which are flashy and zippy, and they’re eating into your market share. Is it time to drop your website for a native application? Instead of abandoning the web, wouldn’t it be great if you could just spawn a background thread to increase responsiveness, delete some of those cookies and store preferences on the filesystem, and access the accelerometer to get that nifty parallax motion effect — all from the browser? In this talk, you’ll learn to do just that — to spawn threads, save local settings, store your site’s code locally, access a camera and microphone, read accelerometer data, and more! You’ll not only see code samples, but you’ll see working examples designed to get your site off the ground.
You’ve seen Chrome extensions in the wild, maybe even installed a few into your browser — but what about writing your own? In this talk, you’ll learn the basics of Chrome extension development (from git init to publishing in the Web Store), how to avoid having your extension automatically disabled when performing upgrades, and some unexpected parts of Chrome you can hook into to take your extension to the next level.
Ever wonder exactly what combination of Cache-Control, Last-Modified, Expires, ETag, Vary, and Pragma headers will keep your content cached by browsers just long enough? And what exactly is a HTTP 304 anyway? In this talk, you’ll learn the history behind the available HTTP caching headers, what their values mean, and how browsers and proxies react. You’ll learn the best practices on client cache invalidation, the benefits of sending a Not Modified response, and briefly talk about the changes in HTTP 2.0 (SPDY) around caching — and then you’ll put your new-found header skills to the test!
connect-assets is a transparent asset management package for node.js: it compiles, concatenates, minifies, and fingerprints your JavaScript, CSS, fonts, images, and the like to ensure that your site always looks its best, even when you deploy updates to cached files. As the maintainer of the package, I’ll give a bit of history on the module and talk about why you’d want to use connect-assets in your next web application. We’ll go through the basics of properly serving assets, write (live-code?!) an Express application using connect-assets, and make sure you leave with your questions answered.
So you’ve heard this buzzword “user experience” before, probably out of some hipster’s beard-mouth. But what does it actually mean? We’ll cover the basics of what it means to design software for user experience, including human factors in design, the user-centered design process, and a focus on human-computer interactions. Spoiler alert: it has very little to do with flashy graphics.
My first public talk (and without a formal abstract), this talk presents an introduction to KnockoutJS.