object(WP_Query)#580 (51) { ["query"]=> array(1) { ["author_name"]=> string(4) "john" } ["query_vars"]=> array(64) { ["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) "" ["paged"]=> int(0) ["meta_key"]=> string(0) "" ["meta_value"]=> string(0) "" ["preview"]=> string(0) "" ["s"]=> string(0) "" ["sentence"]=> string(0) "" ["title"]=> string(0) "" ["fields"]=> string(0) "" ["menu_order"]=> string(0) "" ["embed"]=> string(0) "" ["category__in"]=> array(0) { } ["category__not_in"]=> array(0) { } ["category__and"]=> array(0) { } ["post__in"]=> array(0) { } ["post__not_in"]=> array(0) { } ["post_name__in"]=> array(0) { } ["tag__in"]=> array(0) { } ["tag__not_in"]=> array(0) { } ["tag__and"]=> array(0) { } ["tag_slug__in"]=> array(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)#959 (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)#958 (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)#1342 (7) { ["data"]=> object(stdClass)#1341 (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(82) { ["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) ["administrator"]=> bool(true) } ["filter"]=> NULL } ["queried_object_id"]=> int(3) ["request"]=> string(213) "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 0, 15" ["posts"]=> &array(15) { [0]=> object(WP_Post)#1001 (25) { ["ID"]=> int(7608) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-21 16:17:08" ["post_date_gmt"]=> string(19) "2017-06-21 06:17:08" ["post_content"]=> string(2952) "Rob HowardOur short video today is a fascinating one from Code 16, where Rob Howard explored the notion that not all tools, methods, functions or operators are necessarily the best for what you have in mind. It sounds obvious but I'd wager most of us misuse our tools in some way, perhaps over-using what is comfortable even if it's not ideal, or under-using the right tools for want of knowing any better. Take 25 minutes to let Rob explain why it might be worth taking the time to find the best - the right - fit.    

Got your ticket for 2017 yet?

For Code 17, we've put 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(53) "Video Ristretto: The Things You Can't Do - Rob Howard" ["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) "video-ristretto-things-cant-rob-howard" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-21 16:17:08" ["post_modified_gmt"]=> string(19) "2017-06-21 06:17:08" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7608" ["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)#1000 (25) { ["ID"]=> int(7604) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-21 10:04:56" ["post_date_gmt"]=> string(19) "2017-06-21 00:04:56" ["post_content"]=> string(3576) "We're opening registrations for Web Directions Summit today. Summit is our new peak annual flagship event at Australian Technology Park in Sydney on 9-10  November, which brings together all the tribes that make up our industry. Based on the format of the original Web Directions conferences, Summit is two days and two tracks of presentations by expert practitioners focused on what's happening now and in the immediate future in design and development. These talks will be topped and tailed by keynotes that dive into the big picture: where design is going, what the future looks like for engineers, how the disciplines have grown and branched out, ongoing issues like performance and security, plus the ideas, philosophies and breakthroughs that will influence our work into 2018 and beyond. Participants can choose to attend two days of cutting edge design talks, or focus their conference entirely on the development and engineering track, or jump between the two tracks according to what most interests them. And the keynotes will be chosen for their over-arching relevance and significance to our industry as a whole. We are deep in discussion with some of the world's leading thinkers and doers in web technology and beyond, and we'll be releasing the names of specific speakers as they're confirmed. We can say that we are committed to making Summit a true festival of and for our emerging digital industry, including the web as we know it now and whatever may come next. As we're 10 days out from the end of the financial year, we're opening up registration now for those who want or need to commit funds before the 30th of June. Being so far ahead of the event date, naturally we're going to offer some pretty juicy Super Early Bird benefits if you register now (even if you pay later). Register before 1 July and we'll give you to a Gold ticket (includes all the conference videos and a place at the Speaker Dinner) for the price of an early bird Classic ticket. That's $300 off the early bird Gold ticket price for ALL the goodies. There are plenty of other ways to register early and get significant discounts - take a look on the website for the deal that best suits you - but Super Early Bird is only until 30 June. Summit You'll hear lots more about Summit in coming months, including some pretty special events taking place around the conference, but you have an opportunity now to lock in your registration, take advantage of the discounts and upgrades available, and settle back as you watch Summit develop into the major annual conference for web and digital in Australia, safe in the knowledge that your place is guaranteed. Whether you register before the Super Early Bird finishes on 30 June, during the main Early Bird periods, or at the last minute in November - I hope you'll join me at Web Directions Summit." ["post_title"]=> string(64) "Registrations Now Open for Summit Conference in Sydney, November" ["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(56) "registrations-now-open-summit-conference-sydney-november" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-21 10:04:56" ["post_modified_gmt"]=> string(19) "2017-06-21 00:04:56" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7604" ["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)#999 (25) { ["ID"]=> int(7586) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-19 23:08:00" ["post_date_gmt"]=> string(19) "2017-06-19 13:08:00" ["post_content"]=> string(6675) "Localisation (or localization) is one of those things that seem simple at first glance, but the further you go into it, the more of a rabbit warren you realise it is. Fortunately, once you've worked out what's needed, it can become a largely automated or at least controlled process and, as Greg Rewis' talk at Code 16 demonstrated, one that can be managed to very positive effect. Here's our Wrap summary.

Does Your Web App Speak Schadenfreude?

Greg Rewis, Lead Developer Evangelist, Salesforce

Greg Rewis

Key points

The title refers to the German word for the enjoyment of another person’s misfortune, and is a way of saying this talk is about internationalisation and localisation. Research suggests that a website not translated into 16 languages is not a global site. Internationalisation (i18n) is the work that prepares a site for localisation (l10n), which translates sites from one language into another. Localisation affects more than words: also numbers, dates, currency, symbols and more. Culture plays a big role in how people perceive web pages, from where they look to how they move around the page to the balance between text and images. Edward Hall’s 1976 book Beyond Culture found there is a high-context culture (where images and animation play a greater role) and a low-context culture (where text dominates).
“Web developers have to stop thinking in the patterns that are specific to their own locale.”
Code 16: Greg Rewis

Takeaways

An example: Americans use dashes between the groups of digits in their phone numbers, but this will cause a form built by someone who does not use dashes to fail. Text on buttons can become problematic when the target word translated into another language is much longer or shorter than the word you started with, wrecking your layout. When setting font sizes, don’t go for 16pixels because it’s fairly standard in English – 20px is better for many languages, especially Asian. Use the lang attribute. Assistive technology like screen readers will attempt to read out a word like schadenfeude in English unless lang=de tells them otherwise. Google Translate will translate words not in English unless you use translate=no to tell it otherwise. This allows you to use non-English words without having them translated. Consider words and phrasing that are more universally understood, for example not all cultures understand are familiar with “from” and “to” when applied to dates – “start” and “end” are more widely understood, and still work in English. Think about how translating English into a language that’s read from right to left might change structure and maybe meaning. Test your layouts to see how they will look in different languages. Consider how colours can have different meanings in different cultures: red doesn’t always mean stop, and green doesn’t always mean go. Use resources like http://l10nchecklist.com to check your projects.
“Our culture – not just our language – influences the way we read a page.”

Caveats

Translation is not just swapping a word in one language for one in another language – the context has to be taken into account. Even within one language, words can have different meanings and different connotations, depending on context and cultural values. Phrases in one language might be single words in another, with no opportunity to break or wrap. Japanese uses three different alphabets, one of which uses characters that are individually wider than letters in English, thereby making text strings longer, even though they may use the same number of characters. Characters in some languages may extend further up and down the line height than in others. Capitalisation is another danger area – be aware that some languages have customs that are different to English, so don’t force capitalisation. Text decoration like bolding and italics may not work in languages where several words are combined into one – you can’t bold just a part of a word in some Asian languages. Some languages indicate emphasis in completely different ways, such as adding symbols on top of words, or putting words into a coloured background. Text embedded in images is not going to respond to translation. If you want to tell users other languages are available, be aware that, for example, “Spanish” is the English word for Spanish, not the Spanish word. Flags are not good indicators for language – they indicate nations, some of which use multiple languages, and many different nations use the same language.

Resources

@garazi slides website github Localization Checklist

Tweets

Code 16: Greg Reiws Code 16: Greg Reiws Code 16: Greg Reiws Code 16: Greg Reiws Code 16: Greg Reiws Code 16: Greg Reiws" ["post_title"]=> string(58) "Code 16: Does Your Web App Speak Schadenfreude? Greg Rewis" ["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(56) "code-16-does-your-web-app-speak-schadenfreude-greg-rewis" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-20 00:59:03" ["post_modified_gmt"]=> string(19) "2017-06-19 14:59:03" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7586" ["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)#998 (25) { ["ID"]=> int(7576) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-16 11:03:15" ["post_date_gmt"]=> string(19) "2017-06-16 01:03:15" ["post_content"]=> string(7126) "We can see that more and more engineers and developers are moving into positions where they are expected to have and develop managerial skills. But managing teams of devs can involve unique circumstances and require specialised skills. That's why we invented Code Leaders. Running in conjunction with our long standing, highly regarded Code Conference for front end engineers and JavaScript developers, Code Leaders focuses on what senior engineering decision makers need to know about right now. As the things we build and the teams and organisations that build them become ever more complex, technical knowledge and capabilities simply aren't enough. Code Leaders is designed for engineering and development leaders, senior developers, lead engineers, engineering managers, CTOs. It doesn't matter so much what your role is called, if you're responsible for building and leading teams, and making strategic decisions about the technologies your company or organisations uses, Code Leaders is designed for you. Code Leaders takes place over a single, intensive day, and features real world experts addressing key challenges of technology, leadership and developing, maintaining and growing great engineering teams. There's full information on the website, including registration and some great pricing options, but here's a brief overview of what you can expect from Code Leaders.

Session 1: Technology

In this session, we'll look at the current state, and near term developments of the core technologies of the web: JavaScript, HTML, CSS, SVG and the browser's APIs, from two of the world's leading experts. JavaScript: Now and Next: Brian Terlson Code Leaders - Brian Terlson Where is JavaScript at right now, in 2017? And where is it headed in the near future? What changes will most impact the way you work in the coming years? How can you get involved in the process? The State of Front End Technologies: Chris Lilley Code Leaders - Chris Lilley In our era of Web Apps, where JavaScript seems paramount, the core technologies of the web: HTML, CSS, SVG, and the browser's DOM APIs still very much have a place when developing for the web. Chris Lilley gives us a sense of what's coming for the foundations of the web platform.

Session 2: Best Practice

In this session, we'll look at how networks impact performance, and security, and the architecture of Web Apps, again with two world leaders in these fields. The Changing Face of Loading Resources: Andrew Betts Code Leaders - Andrew Betts The underlying transport mechanisms of the web, including HTTP and TCP are being overhauled. This session looks at the evolution of these largely out-of-sight but incredibly important protocols, with huge implications for performance and security for today's web. Modern Web App Architectures: Zero Cho Code Leaders - Zero Cho What is the architecture of complex Web Apps? Few apps work at the scale of Twitter, with hundreds of millions of users, and billions of messages a month. Hear about the architecture, and lessons learned building Twitter Lite.

Session 3: Culture

This session turns to the challenges that face senior engineering professionals and management: people, and ensuring the best from and for them. We draw on the experience of experts in building more diverse, inclusive, highly performing teams. Re-imagining the Hiring Process: Elle Meredith & Lachlan Hardy Code Leaders - Elle Meredith We've all been on the other side of the table. A laundry list of required technologies and practices, white boarding code, logic puzzles, folks "hiring for culture fit". But do these practices ensure the best possible hires, and ultimately the best performing teams? Designing a Culture that Fosters Growth: Josh Duck Code Leaders - Josh Duck In this session Josh, now back in Australia managing a team at the ABC, shares lessons he learned working for Facebook, renowned for both its engineering prowess and also growing its engineering head count at an almost unimaginable rate over the last decade.   That's quite a day. Now, we've deliberately limited numbers for Code Leaders to ensure the greatest opportunity for participants to connect with one another, our leaders and invited experts. It's a day for minimum screen time, and maximum connection and communication. During the day you'll be seated with a group of fellow participants with a balance of experience as leaders. Each table will have a facilitator, someone with significant industry experience, and will have the opportunity to put questions to our expert speakers. Throughout the day there'll be the opportunity for every participant to develop their leadership abilities by facilitating post-briefing discussion among your group. You'll also get the opportunity to connect with our leaders and invited experts during the day. This is a new event, we've kept our prices low, and we do encourage you to register early. Given the number of tickets we've already sold, it is likely that this event will sell out. If you're in the business of leading or managing teams of engineers and developers - or you'd like to get to that kind of position - do not miss Code Leaders." ["post_title"]=> string(22) "Code Leaders 17 Launch" ["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(22) "code-leaders-17-launch" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-16 11:03:15" ["post_modified_gmt"]=> string(19) "2017-06-16 01:03:15" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7576" ["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)#997 (25) { ["ID"]=> int(7571) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-14 17:28:32" ["post_date_gmt"]=> string(19) "2017-06-14 07:28:32" ["post_content"]=> string(3168) "Marcos CaceresNow that the full schedule for Code 17 is available, it seems appropriate to acknowledge that there is just one speaker from Code 16 who is back this year: Marcos Caceres. While this year, Marcos is talking about Payment APIs, last year he focused on Service Worker, the technology that gives Progressive Web Apps offline capabilities and functional caching, as well web notifications. As you prepare for the extravaganza in Melbourne that will be Code 17, why not give yourself a 25 minute break with Marcos?    

Got your ticket for 2017 yet?

For Code 17, we've put 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(79) "Video Ristretto: Progressing your Web Apps with Service Worker - Marcos Caceres" ["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(76) "video-ristretto-progressing-your-web-apps-with-service-worker-marcos-caceres" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-14 17:28:32" ["post_modified_gmt"]=> string(19) "2017-06-14 07:28:32" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7571" ["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)#996 (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" } [6]=> object(WP_Post)#995 (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" } [7]=> object(WP_Post)#994 (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" } [8]=> object(WP_Post)#993 (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" } [9]=> object(WP_Post)#992 (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" } [10]=> object(WP_Post)#991 (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" } [11]=> object(WP_Post)#990 (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" } [12]=> object(WP_Post)#989 (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" } [13]=> object(WP_Post)#988 (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" } [14]=> object(WP_Post)#1326 (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" } } ["post_count"]=> int(15) ["current_post"]=> int(-1) ["in_the_loop"]=> bool(false) ["post"]=> object(WP_Post)#1001 (25) { ["ID"]=> int(7608) ["post_author"]=> string(1) "3" ["post_date"]=> string(19) "2017-06-21 16:17:08" ["post_date_gmt"]=> string(19) "2017-06-21 06:17:08" ["post_content"]=> string(2952) "Rob HowardOur short video today is a fascinating one from Code 16, where Rob Howard explored the notion that not all tools, methods, functions or operators are necessarily the best for what you have in mind. It sounds obvious but I'd wager most of us misuse our tools in some way, perhaps over-using what is comfortable even if it's not ideal, or under-using the right tools for want of knowing any better. Take 25 minutes to let Rob explain why it might be worth taking the time to find the best - the right - fit.    

Got your ticket for 2017 yet?

For Code 17, we've put 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(53) "Video Ristretto: The Things You Can't Do - Rob Howard" ["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) "video-ristretto-things-cant-rob-howard" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2017-06-21 16:17:08" ["post_modified_gmt"]=> string(19) "2017-06-21 06:17:08" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(37) "https://www.webdirections.org/?p=7608" ["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) "760" ["max_num_pages"]=> float(51) ["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(false) ["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) "0c59d891ec5da5a5dd683fc5dc518e4d" ["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

Video Ristretto: The Things You Can’t Do – Rob Howard

Rob HowardOur short video today is a fascinating one from Code 16, where Rob Howard explored the notion that not all tools, methods, functions or operators are necessarily the best for what you have in mind.

It sounds obvious but … Read more »

Registrations Now Open for Summit Conference in Sydney, November

We’re opening registrations for Web Directions Summit today.

Summit is our new peak annual flagship event at Australian Technology Park in Sydney on 9-10  November, which brings together all the tribes that make up our industry.

Based on the format of the original Web Directions conferences, Summit is two daysRead more »

Code 16: Does Your Web App Speak Schadenfreude? Greg Rewis

Localisation (or localization) is one of those things that seem simple at first glance, but the further you go into it, the more of a rabbit warren you realise it is.

Fortunately, once you’ve worked out what’s needed, it can become a largely automated or at least controlled process and, as … Read more »

Code Leaders 17 Launch

We can see that more and more engineers and developers are moving into positions where they are expected to have and develop managerial skills.

But managing teams of devs can involve unique circumstances and require specialised skills.

That’s why we invented Code Leaders.

Running in conjunction with our long standing, highly regarded Code … Read more »

Video Ristretto: Progressing your Web Apps with Service Worker – Marcos Caceres

Marcos CaceresNow that the full schedule for Code 17 is available, it seems appropriate to acknowledge that there is just one speaker from Code 16 who is back this year: Marcos Caceres.

While this year, Marcos is talking about … Read more »

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 »