{"id":4096,"date":"2016-03-07T11:16:28","date_gmt":"2016-03-07T19:16:28","guid":{"rendered":"https:\/\/blog.mozilla.org\/webdev\/?p=4096"},"modified":"2016-03-07T11:16:28","modified_gmt":"2016-03-07T19:16:28","slug":"extravaganza-march-2016","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/webdev\/2016\/03\/07\/extravaganza-march-2016\/","title":{"rendered":"Extravaganza &#8211; March 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\/March_1\">wiki page<\/a> that we use to organize the meeting, or view a <a href=\"https:\/\/air.mozilla.org\/webdev-extravaganza-march-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>Peep 3.1.1<\/h3>\n<p>First up was <a href=\"https:\/\/mozillians.org\/en-US\/u\/ErikRose\/\">ErikRose<\/a> with news of a new release of <a href=\"https:\/\/github.com\/erikrose\/peep\/\">Peep<\/a>. The new version fixes the <code>peep port<\/code> command so that it correctly emits URL-based requirements.<\/p>\n<p>Erik also wants to remind everyone to drop Peep and upgrade to <a href=\"https:\/\/pip.pypa.io\/en\/stable\/\">Pip 8<\/a>.<\/p>\n<h3>SHIELD Recipe Server<\/h3>\n<p>Next up was <a href=\"https:\/\/mozillians.org\/en-US\/u\/mythmon\/\">mythmon<\/a>, who talked about the <a href=\"https:\/\/wiki.mozilla.org\/Firefox\/Recipe_Server\">Recipe Server<\/a>, a system to help Firefox respond to user issues and test new features quickly and easily. The development server for the service is now live, and is deployed to AWS using Docker and gunicorn.<\/p>\n<h3>Go Faster System Addon Update<\/h3>\n<p>Next we heard from <a href=\"https:\/\/mozillians.org\/en-US\/u\/lthomson\/\">laura<\/a> who shared the news that the first <a href=\"https:\/\/wiki.mozilla.org\/Firefox\/Go_Faster\">Go Faster<\/a> system addon update shipped! System addons are addons that come bundled with Firefox, but are updated outside of the normal 6-8 week release process. They enable us to try new features out and respond to user feedback quicker than before.<\/p>\n<h2>Roundtable<\/h2>\n<p>The Roundtable is the home for discussions that don&#8217;t fit anywhere else.<\/p>\n<h3>Debugging Python with gdb<\/h3>\n<p>ErikRose next talked about how he dealt with a segfault in <a href=\"https:\/\/dxr.mozilla.org\/\">DXR<\/a>&#8216;s indexing job. The end result of his trial is a description of <a href=\"https:\/\/github.com\/erikrose\/status\/wiki\/GdbWithPythonOnUbuntu\">how to debug Python stack frames using gdb on Ubuntu Trusty<\/a>.<\/p>\n<h3>Conditional Requirements in Python are Bad<\/h3>\n<p>Erik also shared a story about conditional requirements in Python. Because Python uses executable Python files for describing the requirements for packages, some projects change their requirements list based on the environment. For example, some projects detect whether they&#8217;re running in Python 2.6 or 2.7 and include libraries that implement features that may be missing in Python 2.6.<\/p>\n<p>The problem is that pip caches wheels <em>after<\/em> evaluating <code>setup.py<\/code> files, meaning that a cached package built for Python 2.6 may be used when installing in Python 2.7. The solution is to use a feature called <a href=\"https:\/\/www.python.org\/dev\/peps\/pep-0496\/\">environment markers<\/a> that allows packages to specify requirements against the execution environment that they&#8217;re installed to. That way package tooling can check these conditions and avoid using cached packages that aren&#8217;t appropriate for the current environment.<\/p>\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\/03\/07\/extravaganza-march-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 - March 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\/03\/07\/extravaganza-march-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=\"2 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\/03\/07\/extravaganza-march-2016\/\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/2016\/03\/07\/extravaganza-march-2016\/\",\"name\":\"Extravaganza - March 2016 - Mozilla Web Development\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#website\"},\"datePublished\":\"2016-03-07T19:16:28+00:00\",\"dateModified\":\"2016-03-07T19:16:28+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/c5d68eef83c0e4e0ae60176f557c1941\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2016\/03\/07\/extravaganza-march-2016\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/webdev\/2016\/03\/07\/extravaganza-march-2016\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2016\/03\/07\/extravaganza-march-2016\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/webdev\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extravaganza &#8211; March 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 - March 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\/03\/07\/extravaganza-march-2016\/","twitter_misc":{"Written by":"Michael Kelly","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/webdev\/2016\/03\/07\/extravaganza-march-2016\/","url":"https:\/\/blog.mozilla.org\/webdev\/2016\/03\/07\/extravaganza-march-2016\/","name":"Extravaganza - March 2016 - Mozilla Web Development","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#website"},"datePublished":"2016-03-07T19:16:28+00:00","dateModified":"2016-03-07T19:16:28+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/c5d68eef83c0e4e0ae60176f557c1941"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2016\/03\/07\/extravaganza-march-2016\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/webdev\/2016\/03\/07\/extravaganza-march-2016\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/webdev\/2016\/03\/07\/extravaganza-march-2016\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/webdev\/"},{"@type":"ListItem","position":2,"name":"Extravaganza &#8211; March 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\/4096"}],"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=4096"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts\/4096\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/media?parent=4096"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/categories?post=4096"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/tags?post=4096"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/coauthors?post=4096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}