object(WP_Query)#557 (51) {
["query"]=>
array(1) {
["tag"]=>
string(10) "javascript"
}
["query_vars"]=>
array(64) {
["tag"]=>
string(10) "javascript"
["error"]=>
string(0) ""
["m"]=>
string(0) ""
["p"]=>
int(0)
["post_parent"]=>
string(0) ""
["subpost"]=>
string(0) ""
["subpost_id"]=>
string(0) ""
["attachment"]=>
string(0) ""
["attachment_id"]=>
int(0)
["name"]=>
string(0) ""
["static"]=>
string(0) ""
["pagename"]=>
string(0) ""
["page_id"]=>
int(0)
["second"]=>
string(0) ""
["minute"]=>
string(0) ""
["hour"]=>
string(0) ""
["day"]=>
int(0)
["monthnum"]=>
int(0)
["year"]=>
int(0)
["w"]=>
int(0)
["category_name"]=>
string(0) ""
["cat"]=>
string(0) ""
["tag_id"]=>
int(29)
["author"]=>
string(0) ""
["author_name"]=>
string(0) ""
["feed"]=>
string(0) ""
["tb"]=>
string(0) ""
["paged"]=>
int(0)
["meta_key"]=>
string(0) ""
["meta_value"]=>
string(0) ""
["preview"]=>
string(0) ""
["s"]=>
string(0) ""
["sentence"]=>
string(0) ""
["title"]=>
string(0) ""
["fields"]=>
string(0) ""
["menu_order"]=>
string(0) ""
["embed"]=>
string(0) ""
["category__in"]=>
array(0) {
}
["category__not_in"]=>
array(0) {
}
["category__and"]=>
array(0) {
}
["post__in"]=>
array(0) {
}
["post__not_in"]=>
array(0) {
}
["post_name__in"]=>
array(0) {
}
["tag__in"]=>
array(0) {
}
["tag__not_in"]=>
array(0) {
}
["tag__and"]=>
array(0) {
}
["tag_slug__in"]=>
array(1) {
[0]=>
string(10) "javascript"
}
["tag_slug__and"]=>
array(0) {
}
["post_parent__in"]=>
array(0) {
}
["post_parent__not_in"]=>
array(0) {
}
["author__in"]=>
array(0) {
}
["author__not_in"]=>
array(0) {
}
["ignore_sticky_posts"]=>
bool(false)
["suppress_filters"]=>
bool(false)
["cache_results"]=>
bool(true)
["update_post_term_cache"]=>
bool(true)
["lazy_load_term_meta"]=>
bool(true)
["update_post_meta_cache"]=>
bool(true)
["post_type"]=>
string(0) ""
["posts_per_page"]=>
int(15)
["nopaging"]=>
bool(false)
["comments_per_page"]=>
string(2) "50"
["no_found_rows"]=>
bool(false)
["order"]=>
string(4) "DESC"
}
["tax_query"]=>
object(WP_Tax_Query)#986 (6) {
["queries"]=>
array(1) {
[0]=>
array(5) {
["taxonomy"]=>
string(8) "post_tag"
["terms"]=>
array(1) {
[0]=>
string(10) "javascript"
}
["field"]=>
string(4) "slug"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(true)
}
}
["relation"]=>
string(3) "AND"
["table_aliases":protected]=>
array(1) {
[0]=>
string(21) "wp_term_relationships"
}
["queried_terms"]=>
array(1) {
["post_tag"]=>
array(2) {
["terms"]=>
array(1) {
[0]=>
string(10) "javascript"
}
["field"]=>
string(4) "slug"
}
}
["primary_table"]=>
string(8) "wp_posts"
["primary_id_column"]=>
string(2) "ID"
}
["meta_query"]=>
object(WP_Meta_Query)#985 (9) {
["queries"]=>
array(0) {
}
["relation"]=>
NULL
["meta_table"]=>
NULL
["meta_id_column"]=>
NULL
["primary_table"]=>
NULL
["primary_id_column"]=>
NULL
["table_aliases":protected]=>
array(0) {
}
["clauses":protected]=>
array(0) {
}
["has_or_relation":protected]=>
bool(false)
}
["date_query"]=>
bool(false)
["queried_object"]=>
object(WP_Term)#1335 (11) {
["term_id"]=>
int(29)
["name"]=>
string(10) "javascript"
["slug"]=>
string(10) "javascript"
["term_group"]=>
int(0)
["term_taxonomy_id"]=>
int(29)
["taxonomy"]=>
string(8) "post_tag"
["description"]=>
string(0) ""
["parent"]=>
int(0)
["count"]=>
int(59)
["filter"]=>
string(3) "raw"
["term_order"]=>
string(1) "0"
}
["queried_object_id"]=>
int(29)
["request"]=>
string(343) "SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1 AND (
wp_term_relationships.term_taxonomy_id IN (29)
) AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 15"
["posts"]=>
&array(15) {
[0]=>
object(WP_Post)#989 (25) {
["ID"]=>
int(7277)
["post_author"]=>
string(1) "3"
["post_date"]=>
string(19) "2017-09-02 10:00:34"
["post_date_gmt"]=>
string(19) "2017-09-02 00:00:34"
["post_content"]=>
string(7762) "Sadly, I don't get the chance to work with JavaScript extensively day to day much anymore, but from time to time I do get the chance to explore a new idea and build something hopefully useful and interesting.
In an age of single page app architectures, it's surprising what new, novel and interesting things you can build with a relatively small amount of plain old JavaScript, HTML, CSS, and little else. As terribly out of fashion as that might sound.
But one downside of not working with the technologies every day is you forget ... well, just about everything. Exploring something at the weekend, I loaded a video element and there were no controls - before recalling dimly you need to set a boolean attribute
controls
for a video element to display controls.
But that's not really the point of this piece.
So, where do you go when you can't remember simple things like "How can I be sure that this element is currently visible in the user's window"?
The internet!
Which leads directly to the fountain of all programming wisdom, Stack Overflow.
Yes, the parody is essentially real.

But answer after answer to this and similar questions about basic DOM APIs and common patterns lead to the response "well, in jQuery you …". And of course the questions end up being closed off at some point by moderators.
The thing is, a few years ago, jQuery was such a ubiquitous part of a developer's toolkit that this seemed a perfectly reasonable approach. Who didn't use jQuery?
And since it smoothed off so many bumpy surfaces in terms of browser differences, answers using jQuery could be more succinct and more immediately practically useful. A plain old vanilla JavaScript and DOM API answer might have required a bunch of additional code for edge cases, different browsers, and so on.
But now? jQuery is a far less central technology, as much as it's still widely used. Its core value propositions, smoothing over the pain of browser inconsistencies, and providing higher order functionality, have largely gone away (browsers have become more consistent, the DOM API now supports features 'inspired' by jQuery like
classList
and
querySelector
).
And so, for all but those using jQuery in ongoing application development, these answers (which due to StackOverflow's high pagerank dominate search results for related topics) are doubly useless. They are no longer cut and paste code that "just works", nor do they help us understand the underlying APIs and their workings.
This speaks to an important software engineering principle (software engineering is a practice we on the web have frankly paid too little attention to, as I've been on the record arguing for many years):
The Law (or rule, or principle) of least power. It's been formulated by Tim Berners-Lee, no less (so, you know, any of us who work on the web should perhaps pay at least a little attention to his thoughts, since he
invented this whole damned thing), as "choosing the least powerful [computer] language suitable for a given purpose".
Which, to many, may sound backwards. But it is at work here in jQuery based stack overflow answers.
How does this work in the case of StackOverflow answers? If we choose the underlying DOM APIs, and then the simplest, plainest JavaScript to access them, this solution is essentially immortal. It will always work. People with foundation knowledge of web technologies will in decades hence understand. People who work with jQuery will understand. Angular, CoffeeScript, TypeScript, even React users (calm down) will understand. Because they all understand JavaScript, right? Right?
Instead, we now have effectively useless answers, crowding out potentially good ones.
To draw a slightly longer bow, the same principle applies to deeper architectural decisions. Right now, I see literally a mania for React. We've seen it (with less fervour) for many other DOM and CSS frameworks, tools and libraries, for variants on and supersets of JavaScript.
jQuery, once utterly dominant, is increasingly a legacy technology. How many grid frameworks had their moment in the sun? Bootstrap, Angular, CoffeeScript, all had moments where they seemed to define best practice.
Now even simple websites, the sort we used to build with tables and spacer gifs, then CSS, are now built with React.
The ads that used to look for jQuery developers now look for React developers.
We've been here before.
I don't know. Perhaps we
have reached the perfect (or at least good enough) architecture and toolset for building web stuff. But when a pattern keeps emerging time after time, I think it makes sense to consider whether there's something fundamental
to that pattern. So what is that pattern?
On the web we seem to have cycles that look like this: we start with something really simple, like the original HTML. No styling, no images even, just a few page elements (headings, paragraphs, a few inline styles) and links.
Over time, features are added (for example, tables and images) and we uncover patterns that allow us to transcend what the platform imagined - hacking tables and gifs to create Killer Layouts (look it up). These patterns become increasingly complex and arcane, and require ever more specialisation.
And then something newer and simpler arrives (for example, CSS in the mid 90s), that seems initially too trivial to allow us to do anything meaningful, too limited, that makes it too hard to do what we were doing easily before ("easily", because we'd built a body of practices and patterns and technologies over a period of years).
A perfect example is Image Replacement (IR) Techniques. For the uninitiated, before web fonts and the likes of Typekit (you can thank me later for all this -
No, seriously) we developed (well, I say "we", but
I always thought they were a terrible idea) techniques that would allow us to render text as an image, then display this on a page, while maintaining accessibility by displaying the actual text of the element in a way that screen readers (and search engines) could read, but hid the text itself from sighted viewers.
Just explaining what they did is exhausting and frustrating. But they did allow you to "display" fonts that weren't on the user's computer.
And then web fonts came along. And, in a stroke, IR techniques were redundant.
Of course, we now have a set of challenges around loading web fonts, and do we have the Flash of Unstyled Content, or Flash of No Content?
You see how it goes?
This has played out over and over on the web (and beyond, but more of that another day). A kind of Groundhog Day, where each recurring day is also a different one.
But.
Underneath all of these patterns and practices and frameworks and libraries are core technologies. And underlying principles.
Some that pertain specifically to the web, some that predate the web (as I mentioned, that significantly overlooked field of software engineering).
These are foundations - technological, and of practice - that we ignore, overlook, or flaunt at our peril.
And a simple example of the consequences is that all those StackOverflow answers are now worse than useless.
"
["post_title"]=>
string(56) "The Law of Least Power and Defunct StackOverflow Answers"
["post_excerpt"]=>
string(394) "Answer after answer on StackOverflow to questions about basic DOM APIs and common patterns would lead to the response "Well, in jQuery, you …". And, of course, the questions end up being closed off at some point by moderators.
The thing is, a few years ago, jQuery was such a ubiquitous part of a developer's toolkit that this seemed a perfectly reasonable approach. Who didn't use jQuery?"
["post_status"]=>
string(7) "publish"
["comment_status"]=>
string(4) "open"
["ping_status"]=>
string(6) "closed"
["post_password"]=>
string(0) ""
["post_name"]=>
string(56) "the-law-of-least-power-and-defunct-stackoverflow-answers"
["to_ping"]=>
string(0) ""
["pinged"]=>
string(0) ""
["post_modified"]=>
string(19) "2017-09-02 10:32:17"
["post_modified_gmt"]=>
string(19) "2017-09-02 00:32:17"
["post_content_filtered"]=>
string(0) ""
["post_parent"]=>
int(0)
["guid"]=>
string(37) "https://www.webdirections.org/?p=7277"
["menu_order"]=>
int(0)
["post_type"]=>
string(4) "post"
["post_mime_type"]=>
string(0) ""
["comment_count"]=>
string(1) "0"
["filter"]=>
string(3) "raw"
["post_category"]=>
string(1) "0"
}
[1]=>
object(WP_Post)#984 (25) {
["ID"]=>
int(7520)
["post_author"]=>
string(1) "3"
["post_date"]=>
string(19) "2017-05-31 23:42:13"
["post_date_gmt"]=>
string(19) "2017-05-31 13:42:13"
["post_content"]=>
string(3257) "

Continuing the theme of performance from the
Monday Wrap of Yoav's talk - a theme that was quite evident at
Code 16 and, not surprisingly, will feature again at
Code 17 - our short video this week is of Hadi Michael's talk from last year's Code.
Hadi is someone to keep your eye on. A Product Developer, Software Engineer and Technology Adviser, formerly at Deloitte Digital, he's been at Cambridge University lately, getting his Masters degree in Technology Policy. You will see him at future Web Directions events.
Back at Code 16, Hadi talked about a prosaic but significant process, garbage collection in JavaScript and how it affects performance and the overall user experience. 25 minutes well spent.
Got your ticket for 2017 yet?
For
Code 17, we're putting together a truly remarkable two-day program of international and local speakers digging into front end engineering and development, coming to Melbourne (only) on
3-4 August.
Come and join us!
Want more?
Like to see and read more like this? Be the first to score invitations to our events? Then jump on our once-a-week mailing list to keep up with everything happening at Web Directions. And you'll get a complimentary digital copy of
Scroll magazine.
"
["post_title"]=>
string(55) "Video Ristretto: Memory Management in V8 - Hadi Michael"
["post_excerpt"]=>
string(0) ""
["post_status"]=>
string(7) "publish"
["comment_status"]=>
string(4) "open"
["ping_status"]=>
string(6) "closed"
["post_password"]=>
string(0) ""
["post_name"]=>
string(49) "video-ristretto-memory-management-v8-hadi-michael"
["to_ping"]=>
string(0) ""
["pinged"]=>
string(0) ""
["post_modified"]=>
string(19) "2017-05-31 23:42:13"
["post_modified_gmt"]=>
string(19) "2017-05-31 13:42:13"
["post_content_filtered"]=>
string(0) ""
["post_parent"]=>
int(0)
["guid"]=>
string(37) "https://www.webdirections.org/?p=7520"
["menu_order"]=>
int(0)
["post_type"]=>
string(4) "post"
["post_mime_type"]=>
string(0) ""
["comment_count"]=>
string(1) "0"
["filter"]=>
string(3) "raw"
["post_category"]=>
string(1) "0"
}
[2]=>
object(WP_Post)#992 (25) {
["ID"]=>
int(6290)
["post_author"]=>
string(1) "3"
["post_date"]=>
string(19) "2016-03-18 11:24:10"
["post_date_gmt"]=>
string(19) "2016-03-18 01:24:10"
["post_content"]=>
string(1568) "At Web Directions, we've long been excited about animation on the Web, particularly animated user interfaces and experiences. We've featured a significant number of presentations on the topic, including two stellar ones in 2015, at Web Directions Code and at Web Directions itself.
Today we feature one of those, by the awesome Rachel Nabors, 'The State of the Animation', from our
front end engineering conference Code in 2015 (which is back in Sydney and Melbourne in July/August 2016). But, it's far more than just about the code, and relevant right across the team.
So, set aside your lunch hour or some time on your commute or at the weekend to get your head around where animation is at right now on the Web.
Interested in more like this? Our
Respond Web Design conference is coming up in Sydney and Melbourne in April.
Or just jump on our mailing list, a once a week roundup of great resources from us and around the Web!
"
["post_title"]=>
string(42) "Rachel Nabors–The State of the Animation"
["post_excerpt"]=>
string(0) ""
["post_status"]=>
string(7) "publish"
["comment_status"]=>
string(4) "open"
["ping_status"]=>
string(6) "closed"
["post_password"]=>
string(0) ""
["post_name"]=>
string(13) "rachel-nabors"
["to_ping"]=>
string(0) ""
["pinged"]=>
string(0) ""
["post_modified"]=>
string(19) "2016-03-18 11:24:10"
["post_modified_gmt"]=>
string(19) "2016-03-18 01:24:10"
["post_content_filtered"]=>
string(0) ""
["post_parent"]=>
int(0)
["guid"]=>
string(37) "https://www.webdirections.org/?p=6290"
["menu_order"]=>
int(0)
["post_type"]=>
string(4) "post"
["post_mime_type"]=>
string(0) ""
["comment_count"]=>
string(1) "0"
["filter"]=>
string(3) "raw"
["post_category"]=>
string(1) "0"
}
[3]=>
object(WP_Post)#993 (25) {
["ID"]=>
int(5886)
["post_author"]=>
string(1) "2"
["post_date"]=>
string(19) "2014-07-23 15:10:06"
["post_date_gmt"]=>
string(19) "2014-07-23 05:10:06"
["post_content"]=>
string(406) "
Introducing some of the new native data structures that are available in modern JavaScript
And if this floats your boat, you need to get along to the Engineering Track at Web Directions 2014.
"
["post_title"]=>
string(33) "Ben Birch - JavaScript Generators"
["post_excerpt"]=>
string(0) ""
["post_status"]=>
string(7) "publish"
["comment_status"]=>
string(4) "open"
["ping_status"]=>
string(6) "closed"
["post_password"]=>
string(0) ""
["post_name"]=>
string(31) "ben-birch-javascript-generators"
["to_ping"]=>
string(0) ""
["pinged"]=>
string(0) ""
["post_modified"]=>
string(19) "2014-11-19 08:45:40"
["post_modified_gmt"]=>
string(19) "2014-11-18 22:45:40"
["post_content_filtered"]=>
string(0) ""
["post_parent"]=>
int(0)
["guid"]=>
string(36) "http://www.webdirections.org/?p=5886"
["menu_order"]=>
int(0)
["post_type"]=>
string(4) "post"
["post_mime_type"]=>
string(0) ""
["comment_count"]=>
string(1) "0"
["filter"]=>
string(3) "raw"
["post_category"]=>
string(1) "0"
}
[4]=>
object(WP_Post)#994 (25) {
["ID"]=>
int(5872)
["post_author"]=>
string(1) "2"
["post_date"]=>
string(19) "2014-07-14 12:23:47"
["post_date_gmt"]=>
string(19) "2014-07-14 02:23:47"
["post_content"]=>
string(410) "
We've entered the Ambient Computing Era and ECMAScript 6 is its dominant programming language.
And if this floats your boat, you need to get along to the Engineering Track at Web Directions 2014.
"
["post_title"]=>
string(77) "Allen Wirfs-Brock - ECMAScript 6, a Better JavaScript for the Ambient Web Era"
["post_excerpt"]=>
string(0) ""
["post_status"]=>
string(7) "publish"
["comment_status"]=>
string(4) "open"
["ping_status"]=>
string(6) "closed"
["post_password"]=>
string(0) ""
["post_name"]=>
string(64) "allen-wirfs-brock-ecmascript-6-better-javascript-ambient-web-era"
["to_ping"]=>
string(0) ""
["pinged"]=>
string(0) ""
["post_modified"]=>
string(19) "2014-11-19 08:45:40"
["post_modified_gmt"]=>
string(19) "2014-11-18 22:45:40"
["post_content_filtered"]=>
string(0) ""
["post_parent"]=>
int(0)
["guid"]=>
string(36) "http://www.webdirections.org/?p=5872"
["menu_order"]=>
int(0)
["post_type"]=>
string(4) "post"
["post_mime_type"]=>
string(0) ""
["comment_count"]=>
string(1) "0"
["filter"]=>
string(3) "raw"
["post_category"]=>
string(1) "0"
}
[5]=>
object(WP_Post)#995 (25) {
["ID"]=>
int(5806)
["post_author"]=>
string(1) "2"
["post_date"]=>
string(19) "2014-07-02 09:58:14"
["post_date_gmt"]=>
string(19) "2014-07-01 23:58:14"
["post_content"]=>
string(461) "
The 'this' keyword is one of the most perplexing aspects of JavaScript, but understanding function context needn’t be so intimidating.
And if this floats your boat, you need to get along to the Engineering Track at Web Directions 2014.
"
["post_title"]=>
string(55) "Mark Dalgleish - this: Taking JavaScript out of Context"
["post_excerpt"]=>
string(0) ""
["post_status"]=>
string(7) "publish"
["comment_status"]=>
string(4) "open"
["ping_status"]=>
string(6) "closed"
["post_password"]=>
string(0) ""
["post_name"]=>
string(40) "mark-dalgleish-taking-javascript-context"
["to_ping"]=>
string(0) ""
["pinged"]=>
string(0) ""
["post_modified"]=>
string(19) "2014-11-19 08:45:41"
["post_modified_gmt"]=>
string(19) "2014-11-18 22:45:41"
["post_content_filtered"]=>
string(0) ""
["post_parent"]=>
int(0)
["guid"]=>
string(36) "http://www.webdirections.org/?p=5806"
["menu_order"]=>
int(0)
["post_type"]=>
string(4) "post"
["post_mime_type"]=>
string(0) ""
["comment_count"]=>
string(1) "0"
["filter"]=>
string(3) "raw"
["post_category"]=>
string(1) "0"
}
[6]=>
object(WP_Post)#996 (25) {
["ID"]=>
int(5486)
["post_author"]=>
string(1) "3"
["post_date"]=>
string(19) "2013-12-03 16:39:10"
["post_date_gmt"]=>
string(19) "2013-12-03 06:39:10"
["post_content"]=>
string(664) "
Thanks to open APIs and emerging technology, JavaScript can now empower devices and technology in our day to day life. Soon we'll be controlling and securing our homes, manipulating appliances from afar and having a bunch of fun bringing data from the web to new exciting uses in the physical world. In this talk, I'll demonstrate how you can get started combining Ninja Blocks with other JavaScript APIs and devices to bring your JavaScript skills to a whole new realm of possibility!
Presentations about javascript
Podcasts, slides, videos and more
Answer after answer on StackOverflow to questions about basic DOM APIs and common patterns would lead to the response “Well, in jQuery, you …”. And, of course, the questions end up being closed off at some point by moderators.
The thing is, a few years ago, jQuery was such a ubiquitous … Read more »
Continuing the theme of performance from the Monday Wrap of Yoav’s talk – a theme that was quite evident at Code 16 and, not surprisingly, will feature again at Code 17 – our short video this week … Read more »
At Web Directions, we’ve long been excited about animation on the Web, particularly animated user interfaces and experiences. We’ve featured a significant number of presentations on the topic, including two stellar ones in 2015, at Web Directions Code and at Web Directions itself.
Today we feature one of those, by the … Read more »
Introducing some of the new native data structures that are available in modern JavaScript
And if this floats your boat, you need to get along to the Engineering Track at Web Directions 2014.
See the slides and hear the podcast »
We’ve entered the Ambient Computing Era and ECMAScript 6 is its dominant programming language.
And if this floats your boat, you need to get along to the Engineering Track at Web Directions 2014.
See the slides and hear the podcast »
The ‘this’ keyword is one of the most perplexing aspects of JavaScript, but understanding function context needn’t be so intimidating.
And if this floats your boat, you need to get along to the Engineering Track at Web Directions 2014.
See the slides and hear the podcast »
Thanks to open APIs and emerging technology, JavaScript can now empower devices and technology in our day to day life. Soon we’ll be controlling and securing our homes, manipulating appliances from afar and having a bunch of fun bringing data from the web to new exciting uses in the physical world. In this talk, I’ll demonstrate how you can get started combining Ninja Blocks with other JavaScript APIs and devices to bring your JavaScript skills to a whole new realm of possibility!
See the slides and hear the podcast »
ES6 is here and it’s bringing some awesome new features to Javascript. My favorite? Generator functions. No matter what kind of code you’re writing, from graphics processing to simple AJAX requests, generators are an excellent tool to make your code more performant and more maintainable at the same time. It’s a bold claim, but in this session you’ll learn how ES6 generators keep your code timeless while delivering the infinite on a finite platter.
See the slides and hear the podcast »
ECMAScript 6 is the next version of JavaScript (the current version is ECMAScript 5). It will be an official standard by the end of 2014, but there are tools that enable you to use it right now. This talk explains the goals for ECMAScript 6, how it is designed, what features it has, and how to use it on current JavaScript engines. Features include: block-scoped variables, arrow functions, better parameter handling, classes, modules and much more.
See the slides and hear the podcast »
Breaking software down into de-coupled, reusable modules is a key development practice that improves code reusability, maintainability, scalability and testability. But how do we apply this practice within web applications?This talk examines and compares existing approaches for developing modular JavaScript components and discusses best practices and patterns for developing and managing components, dependencies, packaging, delivery and name-spacing, for client-side applications.
See the slides and hear the podcast »
Functional programming, now gaining ground in the mainsteam, is a radical way of rethinking logic. By expressing computation in terms of simple mathematical relationships, and following simple discipline, you can vastly improve code correctness, modularity and reuse. In this session we explore how to apply these principles in everyday JavaScript, so you too can write incredibly concise programs that compose well together and are much easier to reason about.
See the slides and hear the podcast »
This session looks at both page delivery and user interaction to highlight patterns and areas of improvement starting with proper benchmarking and profiling.
See the slides and hear the podcast »
An introduction to ES6 with emphasis on its practical aspects. See what it can do for you today, and learn how you’ll be able to better structure client–side programs with this next step in the evolution of JavaScript.
Like what you see? Want a piece of the action next time around? Then get along to Web Directions South in Sydney October 24 and 25 2013.
See the slides and hear the podcast »

For most of the history of what might loosely be termed computer games, dedicated consoles (and handheld gaming devices) ruled the roost. And none loomed larger on the landscape than Nintendo, with combined sales of hundreds of millions of units.
The dominance of this handful … Read more »
In this short, sharp session, we’ll cover what Strict Mode really is, when to use it, why you probably want to, and how to do so safely.
Like what you see? Want a piece of the action next time around? Then get along to Web Directions South in Sydney October 24 and 25 2013.
See the slides and hear the podcast »
« Further reading