object(WP_Query)#585 (51) { ["query"]=> array(2) { ["paged"]=> string(1) "2" ["category_name"]=> string(4) "blog" } ["query_vars"]=> array(64) { ["paged"]=> int(2) ["category_name"]=> string(4) "blog" ["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) ["tag"]=> string(0) "" ["cat"]=> int(1) ["tag_id"]=> string(0) "" ["author"]=> string(0) "" ["author_name"]=> string(0) "" ["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(1) { [0]=> array(5) { ["taxonomy"]=> string(8) "category" ["terms"]=> array(1) { [0]=> string(4) "blog" } ["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) { ["category"]=> array(2) { ["terms"]=> array(1) { [0]=> string(4) "blog" } ["field"]=> string(4) "slug" } } ["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_Term)#1351 (17) { ["term_id"]=> int(1) ["name"]=> string(4) "Blog" ["slug"]=> string(4) "blog" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(1) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(862) ["filter"]=> string(3) "raw" ["term_order"]=> string(1) "0" ["cat_ID"]=> int(1) ["category_count"]=> int(862) ["category_description"]=> string(0) "" ["cat_name"]=> string(4) "Blog" ["category_nicename"]=> string(4) "blog" ["category_parent"]=> int(0) } ["queried_object_id"]=> int(1) ["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 (1) ) 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 15, 15" ["posts"]=> &array(15) { [0]=> object(WP_Post)#977 (25) { ["ID"]=> int(7557) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-14 10:10:53" ["post_date_gmt"]=> string(19) "2017-06-14 00:10:53" ["post_content"]=> string(11248) "Here, at last, is the full program for Web Directions Code 17, taking place in  Melbourne on 3-4 August. Let me tell you, a fair bit of thinking went into this. Getting the participation of some of the world's (and Australia's) leading thinkers and doers in front end engineering is one thing - turning that into a two day event with a coherent structure is another altogether. It's not the kind of opportunity you want to waste - after all, it's not like these seven international keynote speakers come here to Australia on a regular basis. For that matter, it's not like our frankly impressive array of local experts can often be found together in the same place, either. So, it's important we give all of these speakers an opportunity to shine, and all the attendees the chance to take it all in, digest it and see how they can apply it to their own work. Because that's our goal: to give you insights that help you do your job better. As always, we have a great offer for past attendees of our events, you can find the details further down. Here we go. Code Day One. Mavo: HTML re-imagined for the era of Web Apps Lea Verou In an age when it seems everything is developed in JavaScript, using frameworks like Angular and React, what place is there for old fashioned HTML and CSS? Say hello to Mavo. The State of JavaScript in 2017 Brian Terlson The landscape of JavaScript seems to be in constant flux. Not just the frameworks and build tools we use, but the very language itself now that new versions are being released annually. But where is it at right now, in 2017? And where is it headed in the near future? No More Awaiting for Async Functions Erin Zimmer Dealing with asynchronous functions has been a bit of a problem since the early days of JavaScript. Promises help a bit, but they're still limited in some ways. Async functions make writing async code simpler, and let you do some things that aren't so easy with promises. Modules in Motion Damon Oehlman Modularity in web application code has been a topic of much discussion for a long, long time. Implementing solutions that provide a useful approach have consumed many development hours. We are converging on a single solution now in the form of ES6 modules. It's Time to Talk About Type Checkers Ben Teese Static type checkers have been a part of the JavaScript ecosystem for many years now, and with Microsoft, Google and Facebook all having made major investments in tools like TypeScript and Flow, it’s probably fair to say that type checkers are here to stay. Developing the Twitter PWA Zero Cho The most recent version of Twitter's web app, Twitter Lite, was recently released. It's a Progressive Web App, which is fast and responsive, uses less data, takes up less storage space, and supports push notifications and offline use in modern browsers. Preact: Into the Void 0 Jason Miller Grab a hard hat and follow me down into the internals of Preact, a tiny 3kb alternative to React. Along the way we’ll shed light on fundamentals like JSX & Virtual DOM, demystify DOM diffing, and see how keys work up-close. The State of Web Fonts Chris Lilley With CSS Level 3 OpenType font features, the widely adopted WOFF format, Chromatic Fonts, and more recently OpenType variable fonts - a single font file that behaves like multiple fonts - the capabilities opening up for typography on the web are extraordinary. Phew! That's Day One: five international keynotes + three locals. Now brace yourself for Day Two. The Power of the Network Andrew Betts Web developers are increasingly responsible for the performance of the sites they build, and there is now a plethora of advanced tools and services that allow developers to hone front end performance as never before. But the network can still be your biggest bottleneck. The Road to Styled Components: CSS in Component-based Systems Glen Maddern Building user interfaces on the web is hard, because the web, and thus CSS, was inherently made for documents. Because UIs fundamentally are not documents, we've seen a mindset shift towards building component-based systems. A Unified Styling Language Mark Dalgleish In the past few years, we’ve witnessed a massive increase in the amount of CSS experimentation, with ideas like CSS Modules and, controversially, the rise of CSS-in-JS. But does mixing our styles and logic run counter to the original ideas of CSS? Does it break progressive enhancement? Traditional CSS at Scale(?) Mandy Michael When the team at Seven West Media redeveloped The West Australian’s digital platform in a tight 4-month deadline, they embraced the CSS they know and love with a component driven approach. The lessons Mandy learned have led her to the ultimate question: is there a better way? CSS Architectures Q&A MC: John Allsopp Having heard from three of our industry's leading front end developers, let's dive with them into the current and future state of CSS architectures. You can help us get to the heart of one of the front end's most pressing challenges: how do we work with style in today's complex web creations? Artificial Intelligence 101 Patrick Catanzariti Every industry will be affected by AI, machine learning and voice interfaces in the coming years. Terms like "neural networks" and "deep learning" often sound complicated and sci-fi, but there are platforms and technologies out there today that can enable you to do a whole lot out of the box. Making Modern JavaScript Frameworks Accessible Aimee Maree Forsstrom We have seen an increase in projects that require developers who understand accessibility. This leads us to the inevitable question: how do JavaScript frameworks address accessibility? CSS: Current, Soon, Someday Charlotte Jackson Thanks to progressive enhancement, we can make use of many new CSS features, even though not browsers support them. We'll look at examples of CSS that we can use now and what we can use with care. And it's not all about using new CSS; we can all play a part in its development too. Using the Web Payments API Marcos Caceres In this session, Mozilla's Marcos Caceres will provide an overview of the emerging Payment Request and Payment Response browser APIs and how to integrate them into existing HTML forms. Choosing Your Animation Adventure Val Head Animation has come a long way on the modern web and now we have a long list of choices for how to make things move on screen: CSS, JavaScript, SVG, the Web Animation API. With so many options, how can you be sure which is the best choice for your project? And there you have it. There's lots more information on the website about each session and speaker, a complete schedule to see how the timing works on each day, plus various pricing and registration options. It's hard to know what to get more excited about: seven international speakers, 10 locals, all the topics firing front end devs and engineers around the world and a unique Q&A session where you get to pick the brains of three of our leading code specialists. That's probably enough to set your brain spinning at this stage, although we'll tell you more about what we have lined up in coming weeks, including a few special surprises. Don't wait for that to book your tickets, though. We've already sold about 33% of the registrations we have available, and we're still more than two weeks out from the close of our Early Bird offers. Be smart, avoid disappointment, register now. See you in Melbourne." ["post_title"]=> string(39) "The Full Conference Program for Code 17" ["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) "the-full-conference-program-for-code-17" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-14 10:10:53" ["post_modified_gmt"]=> string(19) "2017-06-14 00:10:53" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7557" ["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)#978 (25) { ["ID"]=> int(7547) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-08 18:39:25" ["post_date_gmt"]=> string(19) "2017-06-08 08:39:25" ["post_content"]=> string(9044) "Here it is. The speaker line-up you've been waiting for. We've literally just confirmed our final speakers, so it'll take another couple of days before the Code website has all the details, but here's who's speaking. Web Directions Code 17 Web Directions Code 17 Chris Lilley: The first chair of the CSS Working Group and co-editor of the CSS 2 specification, the inaugural chair of the SVG Working Group and now a Technical Director at W3C. Lea Verou: Lea is well known as a highly engaging speaker on all things front end, the author of CSS Secrets, a long standing member of the CSS Working Group, and has spoken at Web Directions events on several continents. Brian Terlson: Brian, editor of the JavaScript standard, and implementor of the JavaScript engine in the Edge browser will bring us up to date with the current state of JavaScript, as well as where we'll see it head next. Web Directions Code 17 Val Head: Val will survey the full spectrum of animation options from CSS to React Motion and show which are best suited for things like state transitions, showing data, animating illustrations, or making animations responsive. Jason MillerProlific JavaScript developer, architect and Open Sourcerer, the author of Preact, Jason will take us deep into modern browser internals, learning performance and optimisation secrets along the way. Zero ChoZero will give us a sense of the architecture of Twitter Lite, the technologies used, and lessons learned in building the Progressive Web App version of one of the world's most widely used web services. Andrew Betts: Andrew is a web developer and principal developer advocate for Fastly, and is also an elected member of the W3C Technical Architecture Group, a committee that guides the development of the World Wide Web. Andrew will be talking about the power of the network. Erin Zimmer: Erin has been a Senior Front-end Developer on the new DigitaliD project at Australia Post for the last year, after 10 years as a web developer for the federal government in Canberra. Damon Oehlman: Damon is a web application developer who has worked on geospatial applications, WebRTC and now enjoys working on Canva. For a long time he has searched for the one module system to rule them all. Ben Teese: Ben is a senior developer and consultant for Shine Solutions in Melbourne, Australia. He was a Java developer for 10 years before moving on to Ruby and now full-time JavaScript. Glen Maddern: Cyber-intellectual. Creator of Front End Center. Co-creator of styled-components, CSS Modules. Over uses emoji. Mark Dalgleish: Mark is the CSS Modules co-creator, @MelbJS organiser, and DesignOps Lead at @seekjobs. Mandy Michael: Mandy is the Lead Front End Developer at Seven West Media in Western Australia. She is a lover of CSS and Batman and blogs about her adventures in geek fashion. Patrick Catanzariti: Patrick is the founder of Dev Diner, a site that explores developing for emerging tech. He is a SitePoint contributing editor, an instructor at SitePoint Premium and O'Reilly, a Meta Pioneer and freelance developer. Aimee Maree Forsstrom: Spent the past decade consulting on Content Management System builds and in research assistance (Mozilla, Massive Interactive, Southern Cross University, University of Adelaide). Charlotte Jackson: Charlotte is a front-end developer now at Atlassian, and previously at ClearLeft. She's worked on large and small projects for clients including Bike Register, John Lewis and Bravissimo. Marcos Caceres: Marcos works with Mozilla's DOM team hacking on Firefox, writes PWA-related W3C specifications, and co-chairs the W3C's Web Incubator Community Group - all from Melbourne, Australia. That, if we do say so ourselves, is a stunning line-up of speakers: international and local practitioners who are setting the standards for front end engineering now and into the future. This is truly a world class conference, here, in Australia. We'll be telling you more about the topics being addressed in coming weeks, but rest assured we will be tackling the big and important questions about frameworks, raw code, CSS in JS, performance, PWA, security, accessibility, modules, fonts, components, types and a whole lot more. And it 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. Code Key Code Dates 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 So, come and join us in Melbourne." ["post_title"]=> string(36) "The Full Speaker Line-up for Code 17" ["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) "full-speaker-line-code-17" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-08 21:09:15" ["post_modified_gmt"]=> string(19) "2017-06-08 11:09:15" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7547" ["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)#981 (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" } [3]=> object(WP_Post)#982 (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" } [4]=> object(WP_Post)#983 (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" } [5]=> object(WP_Post)#984 (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" } [6]=> object(WP_Post)#985 (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" } [7]=> object(WP_Post)#986 (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" } [8]=> object(WP_Post)#987 (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" } [9]=> object(WP_Post)#988 (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" } [10]=> object(WP_Post)#989 (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" } [11]=> object(WP_Post)#990 (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" } [12]=> object(WP_Post)#991 (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" } [13]=> object(WP_Post)#992 (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" } [14]=> object(WP_Post)#1349 (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" } } ["post_count"]=> int(15) ["current_post"]=> int(-1) ["in_the_loop"]=> bool(false) ["post"]=> object(WP_Post)#977 (25) { ["ID"]=> int(7557) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-14 10:10:53" ["post_date_gmt"]=> string(19) "2017-06-14 00:10:53" ["post_content"]=> string(11248) "Here, at last, is the full program for Web Directions Code 17, taking place in  Melbourne on 3-4 August. Let me tell you, a fair bit of thinking went into this. Getting the participation of some of the world's (and Australia's) leading thinkers and doers in front end engineering is one thing - turning that into a two day event with a coherent structure is another altogether. It's not the kind of opportunity you want to waste - after all, it's not like these seven international keynote speakers come here to Australia on a regular basis. For that matter, it's not like our frankly impressive array of local experts can often be found together in the same place, either. So, it's important we give all of these speakers an opportunity to shine, and all the attendees the chance to take it all in, digest it and see how they can apply it to their own work. Because that's our goal: to give you insights that help you do your job better. As always, we have a great offer for past attendees of our events, you can find the details further down. Here we go. Code Day One. Mavo: HTML re-imagined for the era of Web Apps Lea Verou In an age when it seems everything is developed in JavaScript, using frameworks like Angular and React, what place is there for old fashioned HTML and CSS? Say hello to Mavo. The State of JavaScript in 2017 Brian Terlson The landscape of JavaScript seems to be in constant flux. Not just the frameworks and build tools we use, but the very language itself now that new versions are being released annually. But where is it at right now, in 2017? And where is it headed in the near future? No More Awaiting for Async Functions Erin Zimmer Dealing with asynchronous functions has been a bit of a problem since the early days of JavaScript. Promises help a bit, but they're still limited in some ways. Async functions make writing async code simpler, and let you do some things that aren't so easy with promises. Modules in Motion Damon Oehlman Modularity in web application code has been a topic of much discussion for a long, long time. Implementing solutions that provide a useful approach have consumed many development hours. We are converging on a single solution now in the form of ES6 modules. It's Time to Talk About Type Checkers Ben Teese Static type checkers have been a part of the JavaScript ecosystem for many years now, and with Microsoft, Google and Facebook all having made major investments in tools like TypeScript and Flow, it’s probably fair to say that type checkers are here to stay. Developing the Twitter PWA Zero Cho The most recent version of Twitter's web app, Twitter Lite, was recently released. It's a Progressive Web App, which is fast and responsive, uses less data, takes up less storage space, and supports push notifications and offline use in modern browsers. Preact: Into the Void 0 Jason Miller Grab a hard hat and follow me down into the internals of Preact, a tiny 3kb alternative to React. Along the way we’ll shed light on fundamentals like JSX & Virtual DOM, demystify DOM diffing, and see how keys work up-close. The State of Web Fonts Chris Lilley With CSS Level 3 OpenType font features, the widely adopted WOFF format, Chromatic Fonts, and more recently OpenType variable fonts - a single font file that behaves like multiple fonts - the capabilities opening up for typography on the web are extraordinary. Phew! That's Day One: five international keynotes + three locals. Now brace yourself for Day Two. The Power of the Network Andrew Betts Web developers are increasingly responsible for the performance of the sites they build, and there is now a plethora of advanced tools and services that allow developers to hone front end performance as never before. But the network can still be your biggest bottleneck. The Road to Styled Components: CSS in Component-based Systems Glen Maddern Building user interfaces on the web is hard, because the web, and thus CSS, was inherently made for documents. Because UIs fundamentally are not documents, we've seen a mindset shift towards building component-based systems. A Unified Styling Language Mark Dalgleish In the past few years, we’ve witnessed a massive increase in the amount of CSS experimentation, with ideas like CSS Modules and, controversially, the rise of CSS-in-JS. But does mixing our styles and logic run counter to the original ideas of CSS? Does it break progressive enhancement? Traditional CSS at Scale(?) Mandy Michael When the team at Seven West Media redeveloped The West Australian’s digital platform in a tight 4-month deadline, they embraced the CSS they know and love with a component driven approach. The lessons Mandy learned have led her to the ultimate question: is there a better way? CSS Architectures Q&A MC: John Allsopp Having heard from three of our industry's leading front end developers, let's dive with them into the current and future state of CSS architectures. You can help us get to the heart of one of the front end's most pressing challenges: how do we work with style in today's complex web creations? Artificial Intelligence 101 Patrick Catanzariti Every industry will be affected by AI, machine learning and voice interfaces in the coming years. Terms like "neural networks" and "deep learning" often sound complicated and sci-fi, but there are platforms and technologies out there today that can enable you to do a whole lot out of the box. Making Modern JavaScript Frameworks Accessible Aimee Maree Forsstrom We have seen an increase in projects that require developers who understand accessibility. This leads us to the inevitable question: how do JavaScript frameworks address accessibility? CSS: Current, Soon, Someday Charlotte Jackson Thanks to progressive enhancement, we can make use of many new CSS features, even though not browsers support them. We'll look at examples of CSS that we can use now and what we can use with care. And it's not all about using new CSS; we can all play a part in its development too. Using the Web Payments API Marcos Caceres In this session, Mozilla's Marcos Caceres will provide an overview of the emerging Payment Request and Payment Response browser APIs and how to integrate them into existing HTML forms. Choosing Your Animation Adventure Val Head Animation has come a long way on the modern web and now we have a long list of choices for how to make things move on screen: CSS, JavaScript, SVG, the Web Animation API. With so many options, how can you be sure which is the best choice for your project? And there you have it. There's lots more information on the website about each session and speaker, a complete schedule to see how the timing works on each day, plus various pricing and registration options. It's hard to know what to get more excited about: seven international speakers, 10 locals, all the topics firing front end devs and engineers around the world and a unique Q&A session where you get to pick the brains of three of our leading code specialists. That's probably enough to set your brain spinning at this stage, although we'll tell you more about what we have lined up in coming weeks, including a few special surprises. Don't wait for that to book your tickets, though. We've already sold about 33% of the registrations we have available, and we're still more than two weeks out from the close of our Early Bird offers. Be smart, avoid disappointment, register now. See you in Melbourne." ["post_title"]=> string(39) "The Full Conference Program for Code 17" ["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) "the-full-conference-program-for-code-17" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-14 10:10:53" ["post_modified_gmt"]=> string(19) "2017-06-14 00:10:53" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7557" ["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(2) "31" ["max_num_pages"]=> float(3) ["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(false) ["is_category"]=> bool(true) ["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) "49834196eaaec89ebc7d60440790ccf6" ["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" } }

Blog

The Full Conference Program for Code 17

Here, at last, is the full program for Web Directions Code 17, taking place in  Melbourne on 3-4 August.

Let me tell you, a fair bit of thinking went into this. Getting the participation of some of the world’s (and Australia’s) leading thinkers and doers in front end engineering is one thing – turning that … Read more »

The Full Speaker Line-up for Code 17

Here it is. The speaker line-up you’ve been waiting for. We’ve literally just confirmed our final speakers, so it’ll take another couple of days before the Code website has all the details, but here’s who’s speaking.

Web Directions Code 17Read more »

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

  • In: Blog
  • By:
  • May 22, 2017
  • Comments Off on 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 »