object(WP_Query)#585 (51) { ["query"]=> array(2) { ["paged"]=> string(1) "2" ["author_name"]=> string(4) "john" } ["query_vars"]=> array(64) { ["paged"]=> int(2) ["author_name"]=> string(4) "john" ["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) "" ["tag"]=> string(0) "" ["cat"]=> string(0) "" ["tag_id"]=> string(0) "" ["author"]=> int(3) ["feed"]=> string(0) "" ["tb"]=> string(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(0) { } ["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)#976 (6) { ["queries"]=> array(0) { } ["relation"]=> string(3) "AND" ["table_aliases":protected]=> array(0) { } ["queried_terms"]=> array(0) { } ["primary_table"]=> string(8) "wp_posts" ["primary_id_column"]=> string(2) "ID" } ["meta_query"]=> object(WP_Meta_Query)#975 (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_User)#1368 (7) { ["data"]=> object(stdClass)#1367 (10) { ["ID"]=> string(1) "3" ["user_login"]=> string(4) "john" ["user_pass"]=> string(34) "$P$B5fws42wDbGzbQj.PcXHt9jv0RfYae." ["user_nicename"]=> string(4) "john" ["user_email"]=> string(16) "john@westciv.com" ["user_url"]=> string(22) "http://www.westciv.com" ["user_registered"]=> string(19) "2008-02-25 07:01:40" ["user_activation_key"]=> string(20) "kXE8NPg6xZzxWCb2Obnk" ["user_status"]=> string(1) "0" ["display_name"]=> string(4) "John" } ["ID"]=> int(3) ["caps"]=> array(1) { ["administrator"]=> bool(true) } ["cap_key"]=> string(15) "wp_capabilities" ["roles"]=> array(1) { [0]=> string(13) "administrator" } ["allcaps"]=> array(83) { ["switch_themes"]=> bool(true) ["edit_themes"]=> bool(true) ["activate_plugins"]=> bool(true) ["edit_plugins"]=> bool(true) ["edit_users"]=> bool(true) ["edit_files"]=> bool(true) ["manage_options"]=> bool(true) ["moderate_comments"]=> bool(true) ["manage_categories"]=> bool(true) ["manage_links"]=> bool(true) ["upload_files"]=> bool(true) ["import"]=> bool(true) ["unfiltered_html"]=> bool(true) ["edit_posts"]=> bool(true) ["edit_others_posts"]=> bool(true) ["edit_published_posts"]=> bool(true) ["publish_posts"]=> bool(true) ["edit_pages"]=> bool(true) ["read"]=> bool(true) ["level_10"]=> bool(true) ["level_9"]=> bool(true) ["level_8"]=> bool(true) ["level_7"]=> bool(true) ["level_6"]=> bool(true) ["level_5"]=> bool(true) ["level_4"]=> bool(true) ["level_3"]=> bool(true) ["level_2"]=> bool(true) ["level_1"]=> bool(true) ["level_0"]=> bool(true) ["edit_others_pages"]=> bool(true) ["edit_published_pages"]=> bool(true) ["publish_pages"]=> bool(true) ["delete_pages"]=> bool(true) ["delete_others_pages"]=> bool(true) ["delete_published_pages"]=> bool(true) ["delete_posts"]=> bool(true) ["delete_others_posts"]=> bool(true) ["delete_published_posts"]=> bool(true) ["delete_private_posts"]=> bool(true) ["edit_private_posts"]=> bool(true) ["read_private_posts"]=> bool(true) ["delete_private_pages"]=> bool(true) ["edit_private_pages"]=> bool(true) ["read_private_pages"]=> bool(true) ["delete_users"]=> bool(true) ["create_users"]=> bool(true) ["unfiltered_upload"]=> bool(true) ["manage_cforms"]=> bool(true) ["track_cforms"]=> bool(true) ["simple_tags"]=> bool(true) ["edit_dashboard"]=> bool(true) ["admin_simple_tags"]=> bool(true) ["update_plugins"]=> bool(true) ["delete_plugins"]=> bool(true) ["install_plugins"]=> bool(true) ["update_themes"]=> bool(true) ["install_themes"]=> bool(true) ["update_core"]=> bool(true) ["list_users"]=> bool(true) ["remove_users"]=> bool(true) ["promote_users"]=> bool(true) ["edit_theme_options"]=> bool(true) ["delete_themes"]=> bool(true) ["export"]=> bool(true) ["wpseo_bulk_edit"]=> bool(true) ["read_nc_reference"]=> bool(true) ["read_private_nc_references"]=> bool(true) ["edit_nc_references"]=> bool(true) ["edit_nc_reference"]=> bool(true) ["edit_published_nc_references"]=> bool(true) ["edit_others_nc_references"]=> bool(true) ["publish_nc_references"]=> bool(true) ["edit_private_nc_references"]=> bool(true) ["edit_others_nc_reference"]=> bool(true) ["create_nc_references"]=> bool(true) ["delete_nc_reference"]=> bool(true) ["delete_nc_references"]=> bool(true) ["delete_others_nc_references"]=> bool(true) ["delete_private_nc_references"]=> bool(true) ["delete_published_nc_references"]=> bool(true) ["manage_database"]=> bool(true) ["administrator"]=> bool(true) } ["filter"]=> NULL } ["queried_object_id"]=> int(3) ["request"]=> string(214) "SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND (wp_posts.post_author = 3) AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') ORDER BY wp_posts.post_date DESC LIMIT 15, 15" ["posts"]=> &array(15) { [0]=> object(WP_Post)#1019 (25) { ["ID"]=> int(7539) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-05 18:19:30" ["post_date_gmt"]=> string(19) "2017-06-05 08:19:30" ["post_content"]=> string(4591) "A quick update on our Web Directions Code 17 conference  taking place in Melbourne on 3-4 August. The response so far has been incredible, our thanks to those who've already registered. Please do note that we are limited in how many tickets we can sell by the size of the venue - so it is possible we will sell out. We're two months out, and about 20% of places have been filled. Just so you know. Now. You already know our international keynote speakers include Val Head, Brian Terlson, Lea Verou and Chris Lilley, but we have 13 more speakers lined up for you over the two days, including several more from overseas - two of whom I can confirm now. Jason Miller is Senior Consulting Engineer at Synacor in Toronto, Canada, where he works on a range of web products, specialising  in JavaScript performance analysis & optimisation, web apps, front end architecture, and build tooling. Jason also created Preact, a fast 3kB alternative to React with the same ES6 API. Zero Cho is Software Engineer at Twitter, based in San Francisco, and one of the team that created Twitter Lite, a lighter, faster version of the social media channel, designed for mobile. A key part of the process was working with Progressive Web Apps. That gives us two more Code speakers who are at the global forefront of where our work is headed, engineering products that improve service by improving performance. That's six international keynote speakers at one conference, many of whom you will not see at any other event in Australia.  We're confident we'll be able to confirm our remaining seventh keynote speaker this Thursday, by which time we'll also have decided which of the 50+ submissions from local speakers will join them onstage at Code. Considering both the range of topics covered and the high quality of the proposals, I expect we'll see at least some that don't make it onto the Code program at other events of ours, including the end of year Web Directions Summit. Registrations for Summit will open next week, keep an eye out.   Code 17   You can read a bit about Chris Lilley, Lea Verou, Brian Terlson and Val Head on the website now, but we'll be releasing the full line-up of speakers at Code in our full launch this Thursday 8 June 2017. And Code won't be all lecture style presentations, either. Expect a few surprises. Really, if you work with front end code, or work with people who do, Code is the conference you do not want to miss. Registration is now open.

Key Code Dates

Thu 8 June: Code Conference Launch Thu 15 June: Code Leaders Conference Launch Thu 22 June: Special Announcement (sh, secret) Fri 30 June: Early Bird discounts close Wed 2 August: Code Leaders conference Thu-Fri 3-4 August: Code conference   Code 17   Come and join us for a very special Melbourne event.  " ["post_title"]=> string(25) "Code 17 Conference Update" ["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(25) "code-17-conference-update" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-05 18:19:30" ["post_modified_gmt"]=> string(19) "2017-06-05 08:19:30" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7539" ["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)#1018 (25) { ["ID"]=> int(7532) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-02 11:44:46" ["post_date_gmt"]=> string(19) "2017-06-02 01:44:46" ["post_content"]=> string(2759) "Yoav WeissAfter we ran the Wrap summary on Monday of Yoav Weiss's presentation at Code 16, a few folks asked if they could watch the video. Since our focus this week has been on performance, and how that will again be an important topic at Code 17, it seems entirely appropriate to end the week with the video of Yoav's talk. Give yourself an hour.  

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(76) "Video of the Week: Taking Back Control Over Third Party Content - Yoav Weiss" ["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(61) "video-week-taking-back-control-third-party-content-yoav-weiss" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-07 11:46:23" ["post_modified_gmt"]=> string(19) "2017-06-07 01:46:23" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7532" ["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)#1017 (25) { ["ID"]=> int(7523) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-02 10:00:49" ["post_date_gmt"]=> string(19) "2017-06-02 00:00:49" ["post_content"]=> string(3595) "While the rest of the world, from science fiction movies to Bill Gates, has been bullish about voice as a computing interface, I've been actively hostile to the idea for many years. Apple, Microsoft, and many others have tried to make speaking - the communication channel we learn the earliest and use the most - the means by which we interact with computers. And yet, it has never seemed to come to pass. Even Siri, OK Google, Cortana and other assistants, optimised for voice and available on devices people not infrequently speak into (and painful to use in a text-based fashion) have only seen modest use of voice, albeit growing. But I'm much more interested in the intersection of voice and computing, these days. I've realised that it wasn't voice per se that I was strongly negative about, but voice as a replacement for typing, clicking and tapping of GUIs (and more direct input UIs we find on touchscreens these days). My classic example of why such approaches to Human Computer Interaction are - frankly - so stupid, is this scene from Blade Runner. It takes an impossibly young looking Harrison Ford (was this really that long ago? I saw this at the cinema on initial release!) over two minutes to pan around an image and zoom in on one part, a process that with a mouse or phone or tablet touchscreen today would take a couple of seconds. It also requires him to translate his intuitions into computing terminology (coordinates in a cartesian plane for the benefit of the computer). Time and again, when I see voice interfaces to vision based HCIs, I think of this scene. Which is science fiction! But, increasingly, I think the intersection of voice and computing (I'm choosing this somewhat ambiguous term quite deliberately) is emerging as important. Not voice as a deliberate mechanism for controlling computers - except in some limited cases as in home devices like the Echo, or in-car activation of entertainment systems - but rather as computers listening to our conversations, to our lives (either all the time, if we wish, or at more specific times), and based on a computed sense of our sentiment, levels of stress, the content of our words, the other context of our lives right now (who are we with, where are we right now? where are we going? where have we been?) make our lives better. It is, of course, an advertiser's dream come true, and in countless science fiction futures like that of Minority Report we've seen the idea of individually tailored advertisements seen only by the intended recipient. We also see that these ads need to shout over one another attempting to gain his attention. But there is an opportunity here, that isn't science fiction. Our devices can listen and use APIs to translate speech to text, to recognise who's speaking, to extract sentiment and meaning from our words, to translate into other languages, and to whisper back into our ears in increasingly human-like tones. What will come of it? I'm completely in the dark. Just as Sinclair and Wozniak and Jobs and others were at the dawn of what became the personal computer. But I have a feeling the opportunities are extraordinary. Seize them." ["post_title"]=> string(37) "Voice UIs: Science Fiction, No Longer" ["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(35) "voice-uis-science-fiction-no-longer" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-02 10:21:06" ["post_modified_gmt"]=> string(19) "2017-06-02 00:21:06" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7523" ["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)#1016 (25) { ["ID"]=> int(7159) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-01 21:42:15" ["post_date_gmt"]=> string(19) "2017-06-01 11:42:15" ["post_content"]=> string(5890) "Panic, developers of Transmit and many other fine software products are folks I've long admired. It's probably not well known these days, but I started my journey on the web as a Mac app developer and used the web to distribute software, which lead to my focus on web technologies, and CSS in particular, and in the absence of a decent CSS tool, Style Master, which I developed for many years. Panic has, for 20 years, been a really successful indie app developer. Every year they publish an annual report where they talk about their year, what they learned, their successes and challenges. Now Panic is about as successful an indie Mac development house as there is or has been, so you'd think if anyone could make a go of iPhone and iPad apps, it would be them. So it was sobering to read of their forays into iOS development.
Trying to do macOS quality work on iOS cost us a lot of time for sadly not much payoff. We love iOS, we love our iPhones, and we love our iPads. But we remain convinced that it’s not — yet? — possible to make a living selling pro software on those platforms. Which is a real bummer!
So why mention this at all? Well, over the years, I've addressed the issue of web versus native, admittedly often quixotically, though the need of late has been less great. Which is the better path to go down for a developer? Are native experiences inherently better? Can the web survive the onslaught of native apps? Wired magazine certainly doubted it, some years back: But, despite the millions of apps in app stores, despite the ubiquity of apps in our consciousness, despite Apple funding a reality show - a sort of Apprentice for app developers called, appallingly, Planet of the Apps - on average, smartphone users download 0 (yep, zero) apps on average a month. They spend most of their time in just three apps. This is a winner-takes-all economy, where companies spend hundreds of millions of dollars a year just marketing their games. While apps will be a significant part of the mobile experience for years to come, they won't be the apps you or anyone like you builds. The economics are broken. But here's the thing, and hence the title of this post. The economics were always broken. I wrote about this in 2008, (with a follow up to continue the conversation) and if you look at the comments then (yes, back then people commented on blogs) people overwhelmingly thought I was wrong, and that iOS native apps and the app store particularly heralded a bright new day for developers. I think my initial analysis holds up remarkably well, and I'm interested in other people's thoughts as we look back over that time. But if I were to refine a deeper underlying point that I didn't make well there, or even perhaps as well understand at the time, iOS and Android platforms have, to differing degrees, incentives that are only fortuitously aligned with those who develop for the platform. All the while, the web evolves. Key drivers of its development are, of course, browser developers and large corporations with deep pockets, but also individuals and small groups of passionate "users" of the web. The development of new approaches like srcset by the Responsive Images Community Group, approaches that were initially resisted strongly by the more established and influential WHATWG, demonstrates that standards development can take place in very democratic ways. Compare this to the development of APIs on, say, iOS. One afternoon, usually in May or June at Apple's WWDC, after being developed in secret for years, they are unveiled to developers. Take it or leave it. Yes, closed commercial platforms can seem to move more quickly, when we see the results of years of work at one stroke, unlike the seemingly painstaking efforts of standards developers, out in the open. These are two fundamentally different approaches to the development of a platform: one autocratic and one more democratic (albeit with with many of the same flaws that political democracies have: the influence of money, interest groups, and of course those willing and able to devote disproportionate amounts of time to driving the development of the standards). To use an analogy from Artificial Intelligence, these are two hill climbing algorithms. One, the closed approach, looks to optimise around a local maximum, to continue to polish and refine the core of the platform, with diminishing returns. The other, the open approach, focuses more on exploring a far broader landscape, allowing us to explore potentially fear higher peaks that lie disconnected from our current place on the map. It may be that apps are the optimal human experience of computing, though since they emerged due to the constraints imposed by limited hardware, and from paradigms of Human-Computing Interfaces decades old, the odds are that they aren't. Which is why the more open-ended - dare I say it - anarchic approach to exploring the landscape of possible computing (to get all Brian Eno album name style on you) is to me the more interesting and I believe the most fruitful. And to be honest, the web seems to continue to be the best way to make a living building things with code." ["post_title"]=> string(57) "Rewind, July 2008: Native Apps, the great leap backwards?" ["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(53) "rewind-july-2008-native-apps-the-great-leap-backwards" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-02 13:57:42" ["post_modified_gmt"]=> string(19) "2017-06-02 03:57:42" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7159" ["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)#1015 (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) "Hadi MichaelContinuing 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" } [5]=> object(WP_Post)#1014 (25) { ["ID"]=> int(7511) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-05-29 10:30:42" ["post_date_gmt"]=> string(19) "2017-05-29 00:30:42" ["post_content"]=> string(6610) "Performance is one of those areas that web developers simply have to be aware of, understand and take responsibility for. And as with other overarching and underpinning principles that developers must take into account - security and accessibility are other good examples - there are, in fact, very specific ways in which devs can improve web performance. Which brings me to Yoav Weiss. Because that's what he does. He talks the talk and he walks the walk in his role as Principal Architect at Akamai Technologies, a web performance specialist who is constantly pushing for a faster web. As is implied in the presentation title, Yoav's talk at Code 16 focused on the role that third party content can play in negatively affecting site performance, and how this might be mitigated. Here's our Wrap summary.

Taking Back Control over Third Party Content

Yoav Weiss, Web Performance Specialist

Yoav Weiss

Key points

Developers improve performance by optimising the critical rendering path, compressing images and making them responsive, anything they can. Business requirements introduce code for third party content, and performance improvements disappear. Analysing one site showed that 1Mb downloaded was actual content, but required downloading another 11Mb, 7Mb of which was JavaScript. Other research has shown that 50% of the data downloaded on mobile is ad content. Ad blockers have risen in use and extended to mobile browsers to control the ad madness. Some content providers have introduced their own formats to force content to be reduced to a minimum for a distraction-free user experience. Advertisers have responded in one way by making ads lightweight, served over https, supporting user choice and non-invasive. Publishers are trying to influence users on how to manage rather than block ads.
"Our ecosystem is broken".
Code 16: Yoav Weiss

Takeaways

Metrics used by third party content providers don’t focus on the user. At one level we need to address the symptoms, at a deeper level address the underlying issues. Ad content is often intrusive, confusing, misleading, greedy for bandwidth and processing power and sometimes dangerous to users. Potential ways of mitigating the situation include: • Using async loading – synchronous loading leads to huge performance penalties. • Accelerating ad loading by using preconnect and preload. • Using service workers. • Using content-security-policy (CSP) to tell browsers what kind of content to accept and from where. • Isolating and managing third party content code with iframes with a sandbox feature. • Using SafeFrame to allow third party content constrained access to the DOM. • Getting third party content developers to use passive touch events rather than active. • Getting third party content developers to use intersection observers that don’t take over scroll and touch events and continuously poll elements. Do-not-track was an attempt to allow users to opt out of tracking, but when they did, ad providers stopped respecting it, which shows that browsers must be allowed to enforce user wishes. Policies have been proposed to W3C around managing and limiting the effect on performance of specific features, including Synchronous XHR and document write. A broad Content Performance Policy would also propose resource size limits so third party content providers can’t waste users’ bandwidth and data allowances, and priorities for CPU bandwidth so the most important content is not blocked. Work is now also going into how the user experience can be defined so that policies can be set. The best hope lies in giving site owners greater control so they can manage the user experience, smarter third part content embedding that does not block the user experience and ad blockers that take performance into account.
"Once you bring in third parties, they can do pretty much whatever they want."
Code 16: Yoav Weiss

Caveats

This is not a case of anyone being evil: everyone is doing what they think and hope is best. Browsers are meant to give control to users – that’s why we call them user agents. Initiatives like Google’s AMP don’t necessarily load faster but they load fast enough while delivering better performance. To reach all users, publishers now have to consider HTML, AMP, Apple News and FB’s Instant Articles. Ad blockers have led to ad blocker blockers and then ad blocker blocker blockers. Even with async loading, you’ll still have arbitrary code with full access to everything. Preload and preconnect are less efficient for dynamic content. There’s no way as yet to implement CSP on frames, which may limit its usefulness, and ultimately CSP is meant to be a security-oriented feature. Third party content providers may not want to be iframed, their content may not be fully functional in iframes and content in iframes will still continue to add to the CPU load. SafeFrame is not supported by all third party content providers. None of this addresses privacy issues, as user data tracking is performed on the server, so the browser doesn’t have much say in it.

Resources

@yoavweiss slides website github Content Performance Policy

Tweets

Code 16: Yoav Weiss " ["post_title"]=> string(66) "Code 16: Taking Back Control over Third Party Content - Yoav Weiss" ["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(63) "code-16-taking-back-control-over-third-party-content-yoav-weiss" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-20 01:00:15" ["post_modified_gmt"]=> string(19) "2017-06-19 15:00:15" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7511" ["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)#1013 (25) { ["ID"]=> int(7507) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-05-26 14:51:50" ["post_date_gmt"]=> string(19) "2017-05-26 04:51:50" ["post_content"]=> string(3046) "Tim KadlecOur Video of the Week this time is the opening keynote to Code 16, delivered by Tim Kadlec and titled Once More With Feeling. Tim is a performance expert, and the title of this talk refers to the recognition that what really matters for performance is how fast the experience feels. It's a great point, and leads to some specific measures you can take to improve the perception of site performance. It was a great opener to last year's conference, and paves the way for another great event coming up in Code 17.    

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(54) "Video of the Week: Once More with Feeling - Tim Kadlec" ["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(29) "video-week-feeling-tim-kadlec" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-05-26 14:51:50" ["post_modified_gmt"]=> string(19) "2017-05-26 04:51:50" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7507" ["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" } [7]=> object(WP_Post)#1012 (25) { ["ID"]=> int(7496) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-05-24 16:23:16" ["post_date_gmt"]=> string(19) "2017-05-24 06:23:16" ["post_content"]=> string(3133) "Elise ChantOne of the topics of great interest at our forthcoming Code 17 conference in Melbourne this August will be Progressive Web Apps (launched at Code 15 by Alex Russell). A key aspect of a PWA is the ability to install it on the user's home screen. Last year at Code 16, Elise Chant talked us through exactly that and the role of the Web App Manifest, and it's definitely worth revisiting for our Video Ristretto this week. There's a lot packed into this but it'll take you less than 25 minutes to watch.    

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(74) "Video Ristretto: Installable Web Apps with Web App Manifests - Elise Chant" ["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(66) "video-ristretto-installable-web-apps-web-app-manifests-elise-chant" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-05-24 16:23:16" ["post_modified_gmt"]=> string(19) "2017-05-24 06:23:16" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7496" ["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" } [8]=> object(WP_Post)#1011 (25) { ["ID"]=> int(7491) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-05-23 11:27:50" ["post_date_gmt"]=> string(19) "2017-05-23 01:27:50" ["post_content"]=> string(2041) "Last week, we opened registrations for the latest Web Directions Code conference, taking place in Melbourne on 3-4 August. We've announced just two international keynote speakers (so far) and that's partly because we've deliberately left room for some presentations by up and coming local speakers. That could be you. At Web Directions, a core mission is to help the industry here in Australia - and professionals like you who ARE the industry -  to develop and grow. A key aspect for us is identifying potential speakers, helping them find their feet and extending their experience and capabilities. Code 16 speakers We're proud to say we've had literally hundreds of speakers take their first step, and then further develop their speaking skills, on a Web Directions stage. Now, we'd like to invite you to submit a proposal to present  at this year's Code conference. Our call for presentations closes 31 May, so there's still more than a week to submit a proposal (don't worry - in our experience, 80% of proposals arrive after 4:40pm on the day of the deadline). All the details are on our Call For Presentations page, including what we do to help you if your submission is accepted. We do also keep track of potential speakers from our CFPs for all sorts of things, so even if your talk's not quite right (yet) for Code, this is a great way to get on our radar. Do pay careful attention to what we're asking for – we're quite specific in the topics we aim to address at each of our events." ["post_title"]=> string(49) "Calling All Speakers for Web Directions Code 2017" ["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(41) "calling-speakers-web-directions-code-2017" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-05-23 11:27:50" ["post_modified_gmt"]=> string(19) "2017-05-23 01:27:50" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7491" ["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" } [9]=> object(WP_Post)#1010 (25) { ["ID"]=> int(7486) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-05-22 11:38:18" ["post_date_gmt"]=> string(19) "2017-05-22 01:38:18" ["post_content"]=> string(7225) "Josh Duck is a Brisbane native and front-end engineer at Facebook. He's contributed to React, managed the open source effort behind Relay, and has helped build Facebook products like Profile and Search. Josh came to last year's Code conference to give a presentation that fascinated all of us as a case study of sorts - it's not often you get to glimpse inside the working processes of one of world's biggest online presences. As the name of the talk implies, Rediscovering the Server was about Facebook engineers finding the balance between client-side and server-side that would give users the best experience, particularly from a performance perspective. Here's our Wrap breakdown of the key points, takeaways and caveats from Josh's presentation.

Redsicovering the Server

Josh Duck, JavaScript, Facebook

Josh Duck

Key points

Facebook is a huge application with a lot of moving parts and, like everyone in the web industry, the people at Facebook think a lot about performance. The phones we carry are effectively supercomputers but their power is limited without a connection. The web, as a platform, is structured as a relationship between the browser and the server. The web was devised as a way to obtain information stored on different computers by different programs. Browser vendors create advanced pieces of software using very modern technologies, but they need a data source, and servers provide that source. Servers served up static HTML pages but then users want to interact by blogging and posting photos, so the servers had to learn to interact with users. Programming tools like Visual Basic didn’t work for the web because the application logic was on the server but the user interface logic was on the browser, often thousands of miles apart. URLs are the interface that lets browsers request, obtain and display content from web servers. Server-side rendering allowed users with a browser and a URL or domain to access content, but now we’re focusing on client-side rendering, because we are asking more of our applications.
"The performance of our applications is determined by how the web is structured."

Takeaways

When the iPhone came out about 10 years ago, it raised the bar for what we expected from our applications in terms of look and feel. To meet these expectations, there had to be a way of limiting the time that constant server-client round trips take – and that’s where JavaScript came in. Even then, we had an immature ecosystem based on an unpolished developer experience, until jQuery papered over the things that were hard to understand in JavaScript and allowed us to design apps for the browser. Once the logic was moved to the browser, it delivered a new problem to be solved – load time. Even using React to render the client experience – which was great for the developer experience – didn’t deliver what was required for users: performance. Now we have great JavaScript libraries tools that let us create great experiences with interactivity but we’re still figuring out how to make it fast. With native apps, releasing new versions and updates every two weeks was seen as fast, but web apps were being updated several times a day. That improves the product but doesn’t enhance the user experience if it takes too much time. Universal JavaScript uses isomorphic rendering to load client templates on the server in advance, which gets HTML to the client quickly and creates high perceived performance – but it really masks the problem as the functionality doesn’t arrive in time to meet user expectations. Moving the application logic from the server to the client-side JavaScript has taken away what made the web work well: the ability to incrementally load web pages and sites. What’s needed is to look at what the server is good at and what the client is good at and find a balance between the two. Routing can help achieve this and, while there are some great routing libraries out there, Facebook built its own called MatchRoute. Together with a build process that creates bundles for specific routes, this loads what is needed and ignores what is not, or defers it. Data fetching remained an issue, but Facebook came up with GraphQL, which helps to define data queries to only fetch what is needed, reducing the number of data fetching round trips. With this approach, Facebook separates the What (the data needed) and the How (how the data is fetched) and refine its approach to each. Facebook also introduced a framework called Relay, which delivers the benefits of routing, GraphQL and preloading. A lot of this can be expressed as defining the context and the relationships of the data and acting accordingly. React

Caveats

Building a good application is not just about raw computing power. It is the dependence on servers that lies at the root of many performance issues. There are criticisms that JavaScript is too slow, but Facebook used React in its native app to load JavaScript from the device and obtained good performance – it was the constraints of shipping code on the web that was the issue. One approach is to aggressively cache everything and preload it, in effect pretending to be a native app, but native apps can mean shipping huge amounts of code and caching doesn’t help if the user has to wait for things to load, even it is only for the first time. Caching also means reloading everything with every new release. The issue is not just JavaScript download time – it’s also parse time, completion time and execution time.
"Don't make it faster. "Just don't do it at all."

Resources

@joshduck slides website github Relay

Tweets

Code 16: Josh Duck Code 16: Josh Duck Code 16: Josh Duck " ["post_title"]=> string(45) "Code 16: Rediscovering the Server - Josh Duck" ["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(38) "code-16-rediscovering-server-josh-duck" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-05-31 21:15:47" ["post_modified_gmt"]=> string(19) "2017-05-31 11:15:47" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7486" ["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" } [10]=> object(WP_Post)#1009 (25) { ["ID"]=> int(7340) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-05-19 14:05:04" ["post_date_gmt"]=> string(19) "2017-05-19 04:05:04" ["post_content"]=> string(4925) "OK. I know I'm not alone in finding memes like this one annoying, and mostly avoiding them. There is no spoon meme from the Matrix   For the younger folks in the audience, it's a scene from The Matrix. For the even younger folks in the audience, The Matrix was a turn of the millennium film phenomenon much loved by many in our industry, in no small part because of its foundation on the fantasy that a pasty-faced (if, admittedly, Keanu Reeves) hacker is actually the chosen one: a weapon wielding, kung fu mastering, zen style saviour of humanity. Who gets the girl. In one well known scene, Neo (Keanu Reeve's character) waits to hear from the Oracle whether he is, as the talismanic Morpheus believes, "The One".  Neo/One, geddit? Many others, mostly children, await the verdict of the Oracle as to whether they may be the one, including a buddha-like (white, obviously) child (there are many increasingly grating ethnic and other stereotypes, and less than felicitous analogies and tropes in the film), who observes to Neo about his (the child's) ability to bend a spoon with only his thoughts (no doubt a sly reference to Uri Geller, who convinced the CIA he could bend spoons with his mind) that the secret is "there is no spoon". Which brings me to Responsive Web Design. Or what I like to call Web Design. Hang on, what sort of segue is that? What is the connection between a scene in The Matrix and Ethan Marcotte's synthesis of ideas and techniques we all know so well? Well.   Based on the spoon boy men from the Matrix, my men which reads: Do not try to set device breakpoints, instead only try to realise the truth, there is no device.   Recently I read about a project that has been gaining some attention. Rightly so, for many reasons. But when it came to their concept of responsiveness, I was stopped in my tracks. To the folks working on this project, "responsiveness" means "having breakpoints for all major devices". While, of course, they aren't alone in conceiving of RWD in this way, it was jarring to see it put so bluntly. It made me realise that it probably is the approach most people think of and take to a multi-screen world. But it strikes me as oddly reactive, a never ending exercise in tail chasing as we live in a world of more and more devices for factors and resolutions and screen sizes and other capabilities - colour gamuts; is the device edge to edge; who knows what other future variables? That way, as King Lear (who knew a thing or two about it) said, madness lies. So how should we think about delivering our content, experience, app - whatever you call it, in a world of essentially limitless possible device configurations? This is where "spoon boy" (as aficionadi of The Matrix know him) comes in. When we imagine the device, we lose sight of the content. The content, designed well, adapts, or responds in Ethan's term, regardless of the device. Our role is to ensure that adaptation suits the needs of the user of the device. Which may mean a screen reader. Or a mobile device, of varying sizes. Or some not as yet developed AI-based summary-creating robot that finds articles you might be interested in based on your patterns of reading, summarises them, then reads them to you in a synthesised voice as you commute to work. In fact, it seems that Medium has just announced a feature not unlike this for their premium content (via Chris Messina)  Who knows where this leads? We do know that the more we imagine and tailor, the more we design for the device, the more complex and brittle our designs become. The more they need ongoing upkeep. But, if we imagine our content as something fluid, which flows into the places it is displayed (or more broadly, made accessible - now, where have I heard this idea before?), then it is infinitely adaptable. However our approaches to delivering content may evolve in the coming months or years, focusing on the content, not the container means it will always adapt, always respond. Always be accessible. Because it is the content that matters, not the container." ["post_title"]=> string(18) "There is No Device" ["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(18) "there-is-no-device" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-05-19 14:05:04" ["post_modified_gmt"]=> string(19) "2017-05-19 04:05:04" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7340" ["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" } [11]=> object(WP_Post)#1008 (25) { ["ID"]=> int(7478) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-05-19 13:17:44" ["post_date_gmt"]=> string(19) "2017-05-19 03:17:44" ["post_content"]=> string(3264) "Alicia SedlockContinuing this week's broad theme of maintaining your code and making sure it does what it's supposed to do - preferably neither more nor less, our Video of the Week also comes from Code 16. Alicia Sedlock took us into the world of code testing: unit testing, acceptance testing, code linting, visual regression testing - the kind of work we know we should do but perhaps shy away from or skip over lightly sometimes, because it all seems too hard. The State of Front-End Testing pretty much dispels that myth, covering the breadth of testing strategies available and having the singular distinction of featuring a guest appearance from Alicia's hedgehog, Mabel - perhaps the cutest guest at a Web Directions talk ever.    

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(66) "Video of the Week: The State of Front-End Testing - Alicia Sedlock" ["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-week-state-front-end-testing-alicia-sedlock" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-05-19 13:24:02" ["post_modified_gmt"]=> string(19) "2017-05-19 03:24:02" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7478" ["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" } [12]=> object(WP_Post)#1007 (25) { ["ID"]=> int(7463) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-05-18 16:11:48" ["post_date_gmt"]=> string(19) "2017-05-18 06:11:48" ["post_content"]=> string(3526) "Global Accessibility Awareness Day (GAAD), which takes place every year on 18 May, is now in its sixth year, and is growing every year as more people join in what is both a celebration of accessibility for people with disabilities and a confirmation that much work is still to be done in ensuring that our industry does everything it can to make web and digital life increasingly accessible. These days, there is actually more emphasis on not so much increasing accessibility as just getting rid of the obstacles to access in the first place. It may amount to the same end, but the way we get there can be very different. Perhaps the clearest example of this recently has been in Cordelia McGee Tubb's presentation at Respond 17: The Great Accessibility Bake-Off, which was all about baking in accessibility from the very beginning rather than trying to stuff it in afterwards. Cordelia at Respond 17 Probably the most prominent manifestation of GAAD in Australia is the series of events around the country that run under the banner of A11y Bytes, this year featuring events in Sydney, Melbourne, Brisbane, Perth and Canberra. I've been fortunate and proud to be involved with A11y Bytes in several ways, including speaking at the Sydney event and also at the A11y Camp workshop, a two-day event this year held in Sydney in September that you should also check out. Last year, GAAD coincided with our Transform conference in Canberra on the digital transformation of government information and services. Web Directions hosted an evening of short talks at Old Parliament House where we were fortunate to have people like Dana Chisnell and Andrew Arch on hand to say a few words, plus some great talks from local accessibility advocates. There's a nifty Wrap summary of Transforming Accessibility you might like to read. But to really celebrate GAAD, we're going to post here again the video of Russ Weakley's presentation at Respond 16, Accessible Web Components Without Tears, a presentation that had a quite deep effect on many of those watching. It also involved the risk of being hit by flying chocolates but that's another story (you can see it in the video). Russ will be giving a lightning talk at the Sydney A11y Bytes tonight, so to warm you up for it, here's the Respond video.   " ["post_title"]=> string(39) "Global Accessibility Awareness Day 2017" ["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(39) "global-accessibility-awareness-day-2017" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-05-18 16:14:47" ["post_modified_gmt"]=> string(19) "2017-05-18 06:14:47" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7463" ["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" } [13]=> object(WP_Post)#1006 (25) { ["ID"]=> int(7476) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-05-17 10:00:32" ["post_date_gmt"]=> string(19) "2017-05-17 00:00:32" ["post_content"]=> string(2865) "Fiona ChanAs we look forward to Web Directions Code 17 in Melbourne this August, our Video Ristretto this week harks back to last year's conference, where Fiona Chan delivered her presentation CSS: Code Smell Sanitation. Fiona has long been a stalwart supporter of Web Directions - she's one of our regular and indispensable production volunteers - and has also been a strong supporter of the community, as her involvement with SydCSS and CSSConf testifies. Less than 20 minutes long, her talk at Code 16 not only drew much admiration on the day, but has also been one of the most watched Web Directions videos ever since. My guess is that we all have concerns about how to clean up our own and others' code, but we're not always sure how to go about it - which is exactly what Fiona covers so well.    

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(56) "Video Ristretto: CSS: Code Smell Sanitation - Fiona Chan" ["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(52) "video-ristretto-css-code-smell-sanitation-fiona-chan" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-05-19 12:27:59" ["post_modified_gmt"]=> string(19) "2017-05-19 02:27:59" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7476" ["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" } [14]=> object(WP_Post)#1352 (25) { ["ID"]=> int(7456) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-05-17 09:31:15" ["post_date_gmt"]=> string(19) "2017-05-16 23:31:15" ["post_content"]=> string(7133) "We have just opened registrations for Web Directions Code 17! For those new to it, and to remind those who know it well, Code has evolved to be the premier conference in Australia focusing on JavaScript, front end HTML/CSS, devops, engineering, web-facing programming, security, performance ... in short, code. The last time we held Code solely in Melbourne in 2015 at the same venue, we sold out quite some way in advance. We've kept the prices at 2015's, so make sure you don't miss out, register your ticket today. Whether you call yourself a coder, a programmer, a developer or an engineer - if your job is to deliver robust, fast, secure, engaging web experiences, Web Directions Code in Melbourne from 3-4 August is for you. Here's why. Code The Speakers We have an extraordinary line-up of speakers planned for Code: people who can lift your professional expertise to new levels, familiarising you now with techniques and tools that will become commonplace in the near future. Right now, we can confirm two of our leading speakers, and they are, indeed, world leaders in their fields. Brian Terlson & Val Head Brian Terlson is the editor of the JavaScript specification, and a long standing member of TC39, the committee standardising JavaScript. He's also a key developer of the JavaScript engine in the Edge browser. Who better to help us see where JavaScript is today, and where the next few years will take us? Val Head is one of the foremost experts in animation and the web anywhere. She's written extensively on the subject, advised companies like Shopify and Automattic (creators of WordPress) and spoken all over the world. Val will survey the full spectrum of animation options from CSS to React Motion and show which are best suited for implementing state transitions, showing data, animating illustrations, or making animations responsive. The Presentations These are just two of about 20 amazing speakers from around the world covering everything from core JavaScript features to complex modern CSS and best practice performance. Everything you need to stay up to date in our fast changing field. What is this Code of which you speak? Skip it - just let me register! We Want You to Present Our Call For Proposals to present at Code is now open. Yes, we curate the conference, but we like to leave room for outstanding, relevant talks from local speakers, experienced or not. Sessions are 20 minutes long, and open to Australian residents. If you're successful, we'll fly you to Melbourne, put you up, and treat you like any other speaker. The Code CFP is open until 31 May. OK, I'm interested in presenting Code Leaders We're also really excited to take the wraps off a brand new event, Code Leaders, a special day-long conference preceding Code. Code Leaders highlights the challenges being faced by a new generation of code-focused team leaders, project managers, CTOs and senior engineering professionals. Code Leaders The full-day conference draws on the skills and experience of some of our Code headliners as well as local expertise to explore issues of management and leadership in a code setting. You'll focus on technology, practice, leadership and cultural challenges in a collegial atmosphere with others facing challenges similar to your own. Take me to your Leaders Key Dates 31 May  Code 17 Call for Presentations ends. 30 June  End of Financial Year; Code and Code Leaders Early Bird ends. 2 August  Code Leaders Conference. 3-4 August Code Conference. Pricing We always keep our prices as low as we can, and we have complete confidence in the quality and relevance of our speakers and their presentations, but we also know that a little incentive can sometimes make it easier to find room in a limited budget, especially if you have to convince someone else. So, how about $200 off?  Register during the Early Bird period up to 30 June and get a massive $200 off the regular registration cost.
  • * Classic Code ticket (conference only) for just $999 (save $200)
  • * Silver Code ticket (conference plus videos) for just $1,099 (save $200)
  • * Gold Code ticket (conference, videos and speaker dinner) for just $1,199 (save $200)
  • * Code Leaders ticket for just $699(save $300 - not a typo)
  • * Or get both a Code Silver ticket and a Code Leaders ticket for just $1,499 (saving $800!)
Hot Tip: if you need to apply your registration to the new financial year but you still want to get the Early Bird discount and the alumnus bonus, register before 30 June but pay after 1 July Tell me more about Code 17 Embedded as a deeply Melbourne conference (and watch out soon for details of related Melbourne events), I feel this year's Web Directions Code offers an unmissable program, one of the real highlights of the Australian developer calendar. I look forward to telling you more in coming weeks, and I really hope to see you there. john john allsopp" ["post_title"]=> string(56) "Registrations Open for Code 17, First Speakers Announced" ["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(51) "registrations-open-code-17-first-speakers-announced" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-05-17 09:27:35" ["post_modified_gmt"]=> string(19) "2017-05-16 23:27:35" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7456" ["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" } } ["post_count"]=> int(15) ["current_post"]=> int(-1) ["in_the_loop"]=> bool(false) ["post"]=> object(WP_Post)#1019 (25) { ["ID"]=> int(7539) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-05 18:19:30" ["post_date_gmt"]=> string(19) "2017-06-05 08:19:30" ["post_content"]=> string(4591) "A quick update on our Web Directions Code 17 conference  taking place in Melbourne on 3-4 August. The response so far has been incredible, our thanks to those who've already registered. Please do note that we are limited in how many tickets we can sell by the size of the venue - so it is possible we will sell out. We're two months out, and about 20% of places have been filled. Just so you know. Now. You already know our international keynote speakers include Val Head, Brian Terlson, Lea Verou and Chris Lilley, but we have 13 more speakers lined up for you over the two days, including several more from overseas - two of whom I can confirm now. Jason Miller is Senior Consulting Engineer at Synacor in Toronto, Canada, where he works on a range of web products, specialising  in JavaScript performance analysis & optimisation, web apps, front end architecture, and build tooling. Jason also created Preact, a fast 3kB alternative to React with the same ES6 API. Zero Cho is Software Engineer at Twitter, based in San Francisco, and one of the team that created Twitter Lite, a lighter, faster version of the social media channel, designed for mobile. A key part of the process was working with Progressive Web Apps. That gives us two more Code speakers who are at the global forefront of where our work is headed, engineering products that improve service by improving performance. That's six international keynote speakers at one conference, many of whom you will not see at any other event in Australia.  We're confident we'll be able to confirm our remaining seventh keynote speaker this Thursday, by which time we'll also have decided which of the 50+ submissions from local speakers will join them onstage at Code. Considering both the range of topics covered and the high quality of the proposals, I expect we'll see at least some that don't make it onto the Code program at other events of ours, including the end of year Web Directions Summit. Registrations for Summit will open next week, keep an eye out.   Code 17   You can read a bit about Chris Lilley, Lea Verou, Brian Terlson and Val Head on the website now, but we'll be releasing the full line-up of speakers at Code in our full launch this Thursday 8 June 2017. And Code won't be all lecture style presentations, either. Expect a few surprises. Really, if you work with front end code, or work with people who do, Code is the conference you do not want to miss. Registration is now open.

Key Code Dates

Thu 8 June: Code Conference Launch Thu 15 June: Code Leaders Conference Launch Thu 22 June: Special Announcement (sh, secret) Fri 30 June: Early Bird discounts close Wed 2 August: Code Leaders conference Thu-Fri 3-4 August: Code conference   Code 17   Come and join us for a very special Melbourne event.  " ["post_title"]=> string(25) "Code 17 Conference Update" ["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(25) "code-17-conference-update" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-05 18:19:30" ["post_modified_gmt"]=> string(19) "2017-06-05 08:19:30" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7539" ["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" } ["comment_count"]=> int(0) ["current_comment"]=> int(-1) ["found_posts"]=> string(3) "768" ["max_num_pages"]=> float(52) ["max_num_comment_pages"]=> int(0) ["is_single"]=> bool(false) ["is_preview"]=> bool(false) ["is_page"]=> bool(false) ["is_archive"]=> bool(true) ["is_date"]=> bool(false) ["is_year"]=> bool(false) ["is_month"]=> bool(false) ["is_day"]=> bool(false) ["is_time"]=> bool(false) ["is_author"]=> bool(true) ["is_category"]=> bool(false) ["is_tag"]=> bool(false) ["is_tax"]=> bool(false) ["is_search"]=> bool(false) ["is_feed"]=> bool(false) ["is_comment_feed"]=> bool(false) ["is_trackback"]=> bool(false) ["is_home"]=> bool(false) ["is_404"]=> bool(false) ["is_embed"]=> bool(false) ["is_paged"]=> bool(true) ["is_admin"]=> bool(false) ["is_attachment"]=> bool(false) ["is_singular"]=> bool(false) ["is_robots"]=> bool(false) ["is_posts_page"]=> bool(false) ["is_post_type_archive"]=> bool(false) ["query_vars_hash":"WP_Query":private]=> string(32) "f67176c6ade6bbd189df1257d94d5592" ["query_vars_changed":"WP_Query":private]=> bool(false) ["thumbnails_cached"]=> bool(false) ["stopwords":"WP_Query":private]=> NULL ["compat_fields":"WP_Query":private]=> array(2) { [0]=> string(15) "query_vars_hash" [1]=> string(18) "query_vars_changed" } ["compat_methods":"WP_Query":private]=> array(2) { [0]=> string(16) "init_query_flags" [1]=> string(15) "parse_tax_query" } }

Posts by

Code 17 Conference Update

A quick update on our Web Directions Code 17 conference  taking place in Melbourne on 3-4 August.

The response so far has been incredible, our thanks to those who’ve already registered. Please do note that we are limited in how many tickets we can sell by the size of … Read more »

Video of the Week: Taking Back Control Over Third Party Content – Yoav Weiss

Yoav WeissAfter we ran the Wrap summary on Monday of Yoav Weiss’s presentation at Code 16, a few folks asked if they could watch the video.

Since our focus this week has been on performance, and how that will again be … Read more »

Voice UIs: Science Fiction, No Longer

While the rest of the world, from science fiction movies to Bill Gates, has been bullish about voice as a computing interface, I’ve been actively hostile to the idea for many years.

Apple, Microsoft, and many others have tried to make speaking – the communication channel we learn the earliest and … Read more »

Rewind, July 2008: Native Apps, the great leap backwards?

Panic, developers of Transmit and many other fine software products are folks I’ve long admired.

It’s probably not well known these days, but I started my journey on the web as a Mac app developer and used the web to distribute software, which … Read more »

Video Ristretto: Memory Management in V8 – Hadi Michael

Hadi MichaelContinuing 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 »

Code 16: Taking Back Control over Third Party Content – Yoav Weiss

Performance is one of those areas that web developers simply have to be aware of, understand and take responsibility for. And as with other overarching and underpinning principles that developers must take into account – security and accessibility are other good examples – there are, in fact, very specific ways … Read more »

Video of the Week: Once More with Feeling – Tim Kadlec

Tim KadlecOur Video of the Week this time is the opening keynote to Code 16, delivered by Tim Kadlec and titled Once More With Feeling. Tim is a performance expert, and the title of this talk refers to the … Read more »

Video Ristretto: Installable Web Apps with Web App Manifests – Elise Chant

Elise ChantOne of the topics of great interest at our forthcoming Code 17 conference in Melbourne this August will be Progressive Web Apps (launched at Code 15 by Alex Russell).

A key aspect of a PWA is the ability to … Read more »

Calling All Speakers for Web Directions Code 2017

Last week, we opened registrations for the latest Web Directions Code conference, taking place in Melbourne on 3-4 August.

We’ve announced just two international keynote speakers (so far) and that’s partly because we’ve deliberately left room for some presentations by up and coming local speakers.

That could be you.

At Web Directions, a … Read more »

Code 16: Rediscovering the Server – Josh Duck

Josh Duck is a Brisbane native and front-end engineer at Facebook. He’s contributed to React, managed the open source effort behind Relay, and has helped build Facebook products like Profile and Search.

Josh came to last year’s Code conference to give a presentation that fascinated all of us … Read more »

There is No Device

  • In: Blog
  • By:
  • May 19, 2017
  • Comments Off on There is No Device

OK.

I know I’m not alone in finding memes like this one annoying, and mostly avoiding them.

There is no spoon meme from the Matrix

 

For the younger folks in the audience, it’s a scene from The Matrix.

For the even younger folks in the audience, … Read more »

Video of the Week: The State of Front-End Testing – Alicia Sedlock

  • In: Blog
  • By:
  • May 19, 2017
  • Comments Off on Video of the Week: The State of Front-End Testing – Alicia Sedlock

Alicia SedlockContinuing this week’s broad theme of maintaining your code and making sure it does what it’s supposed to do – preferably neither more nor less, our Video of the Week also comes from Code 16.

Alicia Sedlock took us … Read more »

Global Accessibility Awareness Day 2017

  • In: Blog
  • By:
  • May 18, 2017
  • Comments Off on Global Accessibility Awareness Day 2017

Global Accessibility Awareness Day (GAAD), which takes place every year on 18 May, is now in its sixth year, and is growing every year as more people join in what is both a celebration of accessibility for people with disabilities and a confirmation that much work … Read more »

Video Ristretto: CSS: Code Smell Sanitation – Fiona Chan

  • In: Blog
  • By:
  • May 17, 2017
  • Comments Off on Video Ristretto: CSS: Code Smell Sanitation – Fiona Chan

Fiona ChanAs we look forward to Web Directions Code 17 in Melbourne this August, our Video Ristretto this week harks back to last year’s conference, where Fiona Chan delivered her presentation CSS: Code Smell Sanitation.

Fiona has long been a … Read more »

Registrations Open for Code 17, First Speakers Announced

  • In: Blog
  • By:
  • May 17, 2017
  • Comments Off on Registrations Open for Code 17, First Speakers Announced

We have just opened registrations for Web Directions Code 17!

For those new to it, and to remind those who know it well, Code has evolved to be the premier conference in Australia focusing on JavaScript, front end HTML/CSS, devops, engineering, web-facing programming, security, performance … in short, code.

The last time … Read more »