{"id":4111,"date":"2016-07-14T08:29:00","date_gmt":"2016-07-14T16:29:00","guid":{"rendered":"https:\/\/blog.mozilla.org\/webdev\/?p=4111"},"modified":"2016-07-14T09:21:19","modified_gmt":"2016-07-14T17:21:19","slug":"extravaganza-june-2016","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/webdev\/2016\/07\/14\/extravaganza-june-2016\/","title":{"rendered":"Extravaganza &#8211; June 2016"},"content":{"rendered":"<p>Once a month, web developers from across Mozilla get together 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\/2016\/June\">wiki page<\/a> that we use to organize the meeting, or view a <a href=\"https:\/\/air.mozilla.org\/webdev-extravaganza-june-2016\/\">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>Okta SSO Fix Add-on<\/h3>\n<p>First up was <a href=\"https:\/\/mozillians.org\/en-US\/u\/stephaniehobson\/\">shobson<\/a>, who shared <a href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/moco-sso-tweaks\/\">MoCo SSO Tweaks<\/a>, a Firefox add-on that makes the Okta SSO flow better. Among other things, it auto-focuses the verification code field, makes Enter submit the verification code form, and optionally automatically checks the &#8220;Remember Device&#8221; checkbox.<\/p>\n<h3>ViewSourceConf.org<\/h3>\n<p>Next was <a href=\"https:\/\/mozillians.org\/en-US\/u\/hoosteeno\/\">hoosteeno<\/a>, who shared <a href=\"https:\/\/viewsourceconf.org\/\">viewsourceconf.org<\/a>, the website for the 2016 edition of View Source, a conference for the web that Mozilla runs. The site is statically generated by <a href=\"http:\/\/www.metalsmith.io\/\">Metalsmith<\/a> and takes advantage of several plugins include the <a href=\"https:\/\/github.com\/jaichandra\/metalsmith-models\">model plugin<\/a> and the <a href=\"https:\/\/github.com\/segmentio\/metalsmith-templates\">template plugin<\/a> for <a href=\"http:\/\/paularmstrong.github.io\/swig\/\">Swig<\/a> templates.<\/p>\n<p>shobson worked on the frontend for the site. It intentionally avoids using <a href=\"http:\/\/jquery.com\/\">jQuery<\/a> and uses SVGs for small image filesizes and easy Retina support. In the future the site will be using <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Service_Worker_API\">Service Workers<\/a> to enable offline access for the site, and particularly the schedule.<\/p>\n<h3>Air Mozilla Timenails<\/h3>\n<p><a href=\"https:\/\/mozillians.org\/en-US\/u\/peterbe\/\">peterbe<\/a> stopped by to talk about the timenail support he added to <a href=\"https:\/\/air.mozilla.org\/\">Air Mozilla<\/a>. A timenail is a single screenshot from a video at a specific timestamp; a series of timenails is generated by the transcoding process and made available in the chapter editing interface for each video to help aid in finding good transition points for marking chapters in the video.<\/p>\n<p>The site also calculates the difference between timenails and lets users filter the timenail list to only show thumbnails that have a difference between the previous timenail above a given threshold.<\/p>\n<h3>DXR<\/h3>\n<p>Next up was <a href=\"https:\/\/mozillians.org\/en-US\/u\/ErikRose\/\">ErikRose<\/a>, sharing a bunch of new changes that landed in <a href=\"https:\/\/dxr.mozilla.org\/\">DXR<\/a>:<\/p>\n<ul>\n<li>Case-sensitivity is now inferred based on whether the search text is mixed case or not.<\/li>\n<li>Support for XPIDL<\/li>\n<li>20% lower memory use<\/li>\n<li>Improved C++ analysis, including template support.<\/li>\n<\/ul>\n<p>Thanks to <a href=\"https:\/\/mozillians.org\/en-US\/u\/peter.elmers\/\">new_one<\/a> and <a href=\"https:\/\/mozillians.org\/en-US\/u\/twointofive\/\">Tom Klein<\/a> for contributing these improvements!<\/p>\n<h3>Peep 3.1.2<\/h3>\n<p>Erik also mentioned that <a href=\"https:\/\/github.com\/erikrose\/peep\/\">peep 3.1.2<\/a> is out, with support for <a href=\"https:\/\/pip.pypa.io\/\">pip 8.1.2<\/a>.<\/p>\n<h3>Fathom<\/h3>\n<p>Erik&#8217;s last mention was <a href=\"https:\/\/github.com\/mozilla\/fathom\">Fathom<\/a>, which is an experimental framework for extracting meaning from webpages. You provide it declarative rules that score and classify DOM nodes, and in return it will parse a webpage and rank DOM nodes in the page based on the given rules. You can then extract nodes from this ranking in various ways, such as finding the highest-ranked nodes for a specific attribute, or finding clusters of similarly-classified nodes that are close to each other.<\/p>\n<h3>Readable Bug Statuses in Bugzilla<\/h3>\n<p><a href=\"https:\/\/mozillians.org\/en-US\/u\/emceeaich\/\">emceeaich<\/a> and <a href=\"https:\/\/mozillians.org\/en-US\/u\/dylan\/\">dylan<\/a> wanted to share (in absentia) the news that the <a href=\"https:\/\/github.com\/emceeaich\/bugzilla-readable-status\">Readable Bug Status<\/a> package that emceeaich has been working on has been deployed on <a href=\"https:\/\/bugzilla.mozilla.org\/\">bugzilla.mozilla.org<\/a> for bugs in the Firefox, Core, Toolkit, and BMO products. Readable Bug Status helps summarize the status of a bug using information from several fields.<\/p>\n<h3>Bedrock + Gulp<\/h3>\n<p>Next was <a href=\"https:\/\/mozillians.org\/en-US\/u\/pmac\/\">pmac<\/a> who shared the news that <a href=\"https:\/\/github.com\/mozilla\/bedrock\/\">Bedrock<\/a> has switched to using <a href=\"http:\/\/gulpjs.com\/\">gulp<\/a> to help manage their frontend build and development process. The site previously relied on <a href=\"https:\/\/github.com\/jazzband\/django-pipeline\">django-pipeline<\/a> completely to manage its static assets, but ran into issues with slow builds during development, as django-pipeline doesn&#8217;t watch for which files have changed and simply triggers a full build on each pageview. Switching to gulp allows the site to only rebuild frontend files that have changed, and it builds them as soon as they change instead of building them on-demand.<\/p>\n<p>For more details, pmac wrote a <a href=\"https:\/\/www.peterbe.com\/plog\/ga-pageviews-on-non-web\">blog post<\/a> describing the switch.<\/p>\n<h2>Open-source Citizenship<\/h2>\n<p>Here we talk about libraries we&#8217;re maintaining and what, if anything, we need help with for them.<\/p>\n<h3>Google Analytics Pageviews on Non-Web Requests<\/h3>\n<p>peterbe shared a <a href=\"https:\/\/www.peterbe.com\/plog\/ga-pageviews-on-non-web\">blog post<\/a> he wrote describing how to use <a href=\"https:\/\/github.com\/getsentry\/raven-python\">Raven<\/a> to send pageview data to <a href=\"https:\/\/analytics.google.com\/\">Google Analytics<\/a>. This is useful for tracking usage of endpoints that don&#8217;t return webpages but are still considered part of your site&#8217;s public API.<\/p>\n<h3>Domainswitcher<\/h3>\n<p>peterbe also shared <a href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/domainswitcher\/?src=ss\">Domainswitcher<\/a>, and add-on that lets you easily switch between domains while preserving the current path. The add-on is useful for web developers working on sites that want to switch between prod, staging, development, and locally-hosted instances of the site.<\/p>\n<h2>New Hires \/ Interns \/ Volunteers \/ Contributors<\/h2>\n<p>Here we introduce any newcomers to the Webdev group, including new employees, interns, volunteers, or any other form of contributor.<\/p>\n<table>\n<thead>\n<tr>\n<th>Name<\/th>\n<th>Role<\/th>\n<th>Work<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=\"https:\/\/github.com\/casebenton\">Benton Case<\/a><\/td>\n<td>Intern &#8211; Web Developer<\/td>\n<td>Add-on Recommendation<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\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 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! &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/webdev\/2016\/07\/14\/extravaganza-june-2016\/\">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 - June 2016 - 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\/2016\/07\/14\/extravaganza-june-2016\/\" \/>\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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2016\/07\/14\/extravaganza-june-2016\/\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/2016\/07\/14\/extravaganza-june-2016\/\",\"name\":\"Extravaganza - June 2016 - Mozilla Web Development\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#website\"},\"datePublished\":\"2016-07-14T16:29:00+00:00\",\"dateModified\":\"2016-07-14T17:21:19+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/c5d68eef83c0e4e0ae60176f557c1941\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2016\/07\/14\/extravaganza-june-2016\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/webdev\/2016\/07\/14\/extravaganza-june-2016\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2016\/07\/14\/extravaganza-june-2016\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/webdev\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extravaganza &#8211; June 2016\"}]},{\"@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 - June 2016 - 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\/2016\/07\/14\/extravaganza-june-2016\/","twitter_misc":{"Written by":"Michael Kelly","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/webdev\/2016\/07\/14\/extravaganza-june-2016\/","url":"https:\/\/blog.mozilla.org\/webdev\/2016\/07\/14\/extravaganza-june-2016\/","name":"Extravaganza - June 2016 - Mozilla Web Development","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#website"},"datePublished":"2016-07-14T16:29:00+00:00","dateModified":"2016-07-14T17:21:19+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/c5d68eef83c0e4e0ae60176f557c1941"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2016\/07\/14\/extravaganza-june-2016\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/webdev\/2016\/07\/14\/extravaganza-june-2016\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/webdev\/2016\/07\/14\/extravaganza-june-2016\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/webdev\/"},{"@type":"ListItem","position":2,"name":"Extravaganza &#8211; June 2016"}]},{"@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\/4111"}],"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=4111"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts\/4111\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/media?parent=4111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/categories?post=4111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/tags?post=4111"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/coauthors?post=4111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}