{"id":4063,"date":"2015-10-12T08:20:23","date_gmt":"2015-10-12T16:20:23","guid":{"rendered":"https:\/\/blog.mozilla.org\/webdev\/?p=4063"},"modified":"2015-10-12T08:20:23","modified_gmt":"2015-10-12T16:20:23","slug":"extravaganza-october-2015","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/","title":{"rendered":"Extravaganza &#8211; October 2015"},"content":{"rendered":"<p>Once a month, web developers from across Mozilla get together to see who can score the highest car emissions rating. While we scour the world for dangerous combustibles, we find time to talk about the work that we&#8217;ve shipped, share the libraries we&#8217;re working on, meet new folks, and talk about whatever else is on our minds. It&#8217;s the Webdev Extravaganza! The meeting is open to the public; you should stop by!<\/p>\n<p>You can check out the <a href=\"https:\/\/wiki.mozilla.org\/Webdev\/Meetings\/2015\/October_6\">wiki page<\/a> that we use to organize the meeting, or view a <a href=\"https:\/\/air.mozilla.org\/webdev-extravaganza-october-2015\/\">recording of the meeting<\/a> in Air Mozilla. Or just read on for a summary!<\/p>\n<h2>Shipping Celebration<\/h2>\n<p>The shipping celebration is for anything we finished and deployed in the past month, whether it be a brand new site, an upgrade to an existing one, or even a release of a library.<\/p>\n<h3>One and Done on Heroku<\/h3>\n<p>First up was <a href=\"https:\/\/github.com\/bobsilverberg\">bsilverberg<\/a> with the news that <a href=\"https:\/\/oneanddone.mozilla.org\/\">One and Done<\/a>, Mozilla&#8217;s contributor task board, has successfully migrated from the Mozilla-hosted <a href=\"http:\/\/stackato.com\">Stackato<\/a> PAAS to <a href=\"https:\/\/www.heroku.com\/\">Heroku<\/a>. One and Done takes advantage of a few interesting features of Heroku, such as <a href=\"https:\/\/devcenter.heroku.com\/articles\/pipelines\">App Pipelines<\/a> and <a href=\"https:\/\/devcenter.heroku.com\/articles\/github-integration-review-apps\">Review Apps<\/a>.<\/p>\n<h3>Pontoon Sync Improvements and New Leaderboards<\/h3>\n<p>Next was <a href=\"https:\/\/mozillians.org\/en-US\/u\/Osmose\/\">Osmose<\/a> (that&#8217;s me!) sharing a few new features on <a href=\"https:\/\/pontoon.mozilla.org\/\">Pontoon<\/a>, a site for submitting translations for Mozilla software:<\/p>\n<ul>\n<li><a href=\"https:\/\/mozillians.org\/en-US\/u\/mathjazz\/\">mathjazz<\/a> added a new &#8220;Latest Activity&#8221; column to <a href=\"https:\/\/pontoon.mozilla.org\/projects\/\">project<\/a> and <a href=\"https:\/\/pontoon.mozilla.org\/teams\/\">locale<\/a> listings.<\/li>\n<li><a href=\"https:\/\/mozillians.org\/en-US\/u\/jotes\/\">jotes<\/a> added time-based filters to the <a href=\"https:\/\/pontoon.mozilla.org\/contributors\/\">leaderboard<\/a> as well as several performance improvements to the page.<\/li>\n<li>I added <code>inc<\/code> file support to the new sync process, as well as a few other fixes such that all Pontoon projects are now using the new sync. Yay!<\/li>\n<\/ul>\n<h3>Air Mozilla iTunes Video Podcast<\/h3>\n<p><a href=\"https:\/\/mozillians.org\/en-US\/u\/peterbe\/\">Peterbe<\/a> stopped by to share the news that <a href=\"https:\/\/air.mozilla.org\/\">Air Mozilla<\/a> now has an iTunes-compatible <a href=\"https:\/\/air.mozilla.org\/feed\/itunes\/\">podcast feed<\/a> for all of its videos. The feed has already been approved by Apple and is available on the iTunes Store.<\/p>\n<h3>DXR Static File Cachebusting<\/h3>\n<p><a href=\"https:\/\/mozillians.org\/en-US\/u\/ErikRose\/\">ErikRose<\/a> shared the news that <a href=\"https:\/\/dxr.mozilla.org\/\">DXR<\/a> now adds hashes to static file filenames so that updates to the static files don&#8217;t get messed up by an old local cache. Interestingly, instead of relying on popular tools like <a href=\"http:\/\/gruntjs.com\/\">Grunt<\/a> or <a href=\"https:\/\/webpack.github.io\/\">Webpack<\/a>, Erik opted to implement the hashing using some logic in a Makefile plus a little bit of Python. You can <a href=\"https:\/\/github.com\/mozilla\/dxr\/pull\/470\">check out the pull request<\/a> to see the details of the change.<\/p>\n<h3>Replacing localForage with localStorage<\/h3>\n<p>Next we went back to Peterbe, who recently replaced <a href=\"https:\/\/github.com\/mozilla\/localForage\">localForage<\/a>, a library that abstracts several different methods of storing data locally in the browser, with <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Window\/localStorage\">localStorage<\/a>, the blocking, built-in storage solution that ships with browsers. He also shared a <a href=\"http:\/\/www.peterbe.com\/plog\/localstorage-is-fast\">blog post<\/a> that showed that not only is localStorage simpler to use, it was actually faster in his specific use case.<\/p>\n<h3>Mozilla.org Hosted on Deis<\/h3>\n<p>Next was <a href=\"https:\/\/mozillians.org\/en-US\/u\/jmize\/\">jgmize<\/a> sharing the news that <a href=\"https:\/\/www.mozilla.org\/\">mozilla.org<\/a> is now hosted on a <a href=\"http:\/\/deis.io\/\">Deis<\/a> cluster. Currently a small amount of production data is being hosted by the cluster, but a larger rollout is planned for the near future. <a href=\"https:\/\/mozillians.org\/en-US\/u\/giorgos\/\">Giorgos<\/a> is responsible for the entire <a href=\"https:\/\/jenkins-ci.org\/\">Jenkins<\/a> setup, including a neat <a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Delivery+Pipeline+Plugin\">deployment pipeline<\/a> display, an <a href=\"https:\/\/github.com\/mozilla\/ee-infra-jenkins\">Ansible playbook<\/a>, and the <a href=\"https:\/\/github.com\/mozilla\/bedrock\/tree\/e33267437606c3d849e1306000921f353ba0a50a\/docker\/jenkins\">deployment pipeline scripts<\/a>. <a href=\"https:\/\/mozillians.org\/en-US\/u\/pmac\/\">Pmac<\/a> ported over hundreds of <a href=\"https:\/\/httpd.apache.org\/\">Apache<\/a> redirects to Python and wrote a comprehensive set of <a href=\"https:\/\/github.com\/mozilla\/bedrock\/tree\/e33267437606c3d849e1306000921f353ba0a50a\/test_redirects\">tests<\/a> for them as well.<\/p>\n<h2>Roundtable<\/h2>\n<p>The Roundtable is the home for discussions that don&#8217;t fit anywhere else.<\/p>\n<h3>Farewell to Wenzel<\/h3>\n<p>Lastly, I wanted to specifically call out <a href=\"https:\/\/github.com\/fwenzel\">wenzel<\/a>, whose last day as a paid contributor for Mozilla was last Friday. Wenzel has been a Mozillian for 9 years, starting as an intern. He&#8217;s contributed to almost every major Mozilla web property, and will be missed.<\/p>\n<hr \/>\n<p>This month&#8217;s winner was willkg, with an impressive 200% rating, generating more pollution than the fuel he put in. Local science expert Dr. Potch of Mr. Potch&#8217;s Questionable Ethics and Payday Loan Barn was quoted as saying that willkg&#8217;s score was &#8220;possible&#8221;.<\/p>\n<p>If you&#8217;re interested in web development at Mozilla, or want to attend next month&#8217;s Extravaganza, subscribe to the <a href=\"https:\/\/lists.mozilla.org\/listinfo\/dev-webdev\">dev-webdev@lists.mozilla.org mailing list<\/a> to be notified of the next meeting, and maybe send a message introducing yourself. We&#8217;d love to meet you!<\/p>\n<p>See you next month!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Once a month, web developers from across Mozilla get together to see who can score the highest car emissions rating. While we scour the world for dangerous combustibles, we find time to talk about the work that we&#8217;ve shipped, share &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/\">Continue reading<\/a><\/p>\n","protected":false},"author":445,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28307],"tags":[],"coauthors":[28315],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Extravaganza - October 2015 - Mozilla Web Development<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Kelly\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/\",\"name\":\"Extravaganza - October 2015 - Mozilla Web Development\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#website\"},\"datePublished\":\"2015-10-12T16:20:23+00:00\",\"dateModified\":\"2015-10-12T16:20:23+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/c5d68eef83c0e4e0ae60176f557c1941\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/webdev\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extravaganza &#8211; October 2015\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#website\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/\",\"name\":\"Mozilla Web Development\",\"description\":\"For make benefit of glorious tubes\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.mozilla.org\/webdev\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/c5d68eef83c0e4e0ae60176f557c1941\",\"name\":\"Michael Kelly\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/image\/835c2c0db4a21fa347206563231f3e71\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a414aea4a5b11c6e2e00f760e96b85ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a414aea4a5b11c6e2e00f760e96b85ab?s=96&d=mm&r=g\",\"caption\":\"Michael Kelly\"},\"description\":\"Michael Kelly is a developer on the Web Engineering team at Mozilla. He works on tools that help engineers get things done. He also helps run a lot of the Webdev group activities!\",\"sameAs\":[\"http:\/\/mkelly.me\",\"https:\/\/x.com\/Osmose\"],\"url\":\"https:\/\/blog.mozilla.org\/webdev\/author\/mkellymozilla-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Extravaganza - October 2015 - Mozilla Web Development","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/","twitter_misc":{"Written by":"Michael Kelly","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/","url":"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/","name":"Extravaganza - October 2015 - Mozilla Web Development","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#website"},"datePublished":"2015-10-12T16:20:23+00:00","dateModified":"2015-10-12T16:20:23+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/c5d68eef83c0e4e0ae60176f557c1941"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/webdev\/2015\/10\/12\/extravaganza-october-2015\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/webdev\/"},{"@type":"ListItem","position":2,"name":"Extravaganza &#8211; October 2015"}]},{"@type":"WebSite","@id":"https:\/\/blog.mozilla.org\/webdev\/#website","url":"https:\/\/blog.mozilla.org\/webdev\/","name":"Mozilla Web Development","description":"For make benefit of glorious tubes","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.mozilla.org\/webdev\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/c5d68eef83c0e4e0ae60176f557c1941","name":"Michael Kelly","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/image\/835c2c0db4a21fa347206563231f3e71","url":"https:\/\/secure.gravatar.com\/avatar\/a414aea4a5b11c6e2e00f760e96b85ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a414aea4a5b11c6e2e00f760e96b85ab?s=96&d=mm&r=g","caption":"Michael Kelly"},"description":"Michael Kelly is a developer on the Web Engineering team at Mozilla. He works on tools that help engineers get things done. He also helps run a lot of the Webdev group activities!","sameAs":["http:\/\/mkelly.me","https:\/\/x.com\/Osmose"],"url":"https:\/\/blog.mozilla.org\/webdev\/author\/mkellymozilla-com\/"}]}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts\/4063"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/users\/445"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/comments?post=4063"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts\/4063\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/media?parent=4063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/categories?post=4063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/tags?post=4063"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/coauthors?post=4063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}