{"id":3800,"date":"2014-04-28T14:00:40","date_gmt":"2014-04-28T22:00:40","guid":{"rendered":"http:\/\/blog.mozilla.org\/webdev\/?p=3800"},"modified":"2014-04-28T14:41:23","modified_gmt":"2014-04-28T22:41:23","slug":"celebrating-the-web-we-want","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/","title":{"rendered":"Celebrating the Web We Want"},"content":{"rendered":"<p><a href=\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-large wp-image-3803\" src=\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-1-600x364.png\" alt=\"promo-1\" width=\"600\" height=\"364\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-1-600x364.png 600w, https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-1-252x153.png 252w, https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-1.png 1217w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>The latest version of Firefox is a huge milestone for Mozilla and represents the combined efforts of hundreds of people from around the world. To celebrate this launch we revisited Glow, a real-time visualization of Firefox downloads originally used during the launch of <a href=\"http:\/\/glow.mozilla.org\">Firefox 4 in 2011<\/a>.<\/p>\n<p>This time we wanted to do more than just show downloads. We wanted to give people a chance to express what they want the Web to be. To this end, users visiting <a href=\"https:\/\/webwewant.mozilla.org\/\">https:\/\/webwewant.mozilla.org\/ <\/a>have the option to share with Mozilla and the world their hopes for the Web. These \u201cshares\u201d are displayed on the map and we display information about which issues are most important in each continent and country.<\/p>\n<p><a href=\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-2.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-3804 alignleft\" src=\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-2-252x152.png\" alt=\"promo-2\" width=\"252\" height=\"152\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-2-252x152.png 252w, https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-2-600x362.png 600w, https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-2.png 1218w\" sizes=\"(max-width: 252px) 100vw, 252px\" \/><\/a><a href=\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-3.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-3805 alignleft\" src=\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-3-252x153.png\" alt=\"promo-3\" width=\"252\" height=\"153\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-3-252x153.png 252w, https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-3-600x365.png 600w, https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-3.png 1214w\" sizes=\"(max-width: 252px) 100vw, 252px\" \/><\/a><\/p>\n<div style=\"clear: both;\"><\/div>\n<p>The dots on the map represents people: either someone downloading Firefox or sharing the Web they want. For me, watching the map is both humbling and inspiring. When people use Firefox\u2014\u200aa free and open source browser made by an amazing community\u2014\u200aand choose to share with the world what matters to them, it shows a global commitment to the future of the Web.<\/p>\n<h3>Technical Details<\/h3>\n<p>How do we process millions of interactions and display them?<\/p>\n<p>The site processes request logs for Firefox downloads, auto-updates, and users who share via the website. We perform geolocation lookups on the data and aggregate the information for consumption and display by the Web application.<\/p>\n<p>We have a particular love of the Simpsons on our team and elements of our project are named appropriately:<\/p>\n<ul>\n<li><i>Mr. Burns<\/i> &#8211; The overall codebase.<\/li>\n<li><i>Smithers<\/i> &#8211; The \u201cservant\u201d scripts who provide data to Mr. Burns.<\/li>\n<\/ul>\n<p>Mr. Burns relies on three main scripts to display data:<\/p>\n<ul>\n<li><i>Bart<\/i> &#8211; Parses log files looking for Firefox downloads or auto-updates.<\/li>\n<li><i>Lisa<\/i> &#8211; Geolocates parsed data and aggregates into buckets.<\/li>\n<li><i>Milhouse<\/i> &#8211; Packages data into JSON for consumption by the front-end.<\/li>\n<\/ul>\n<p>The flow of data can be seen in this diagram:<\/p>\n<p><a href=\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/glow-data.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-large wp-image-3806\" src=\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/glow-data-600x339.png\" alt=\"glow-data\" width=\"600\" height=\"339\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/glow-data-600x339.png 600w, https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/glow-data-252x142.png 252w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>Data is stored in Redis and the JSON files are delivered to the front end application via CDN. The front end app renders the individual \u201cglows\u201d and the stats using <a href=\"http:\/\/d3js.org\/\">D3.js<\/a>.<\/p>\n<p>To learn more visit our <a href=\"https:\/\/wiki.mozilla.org\/Websites\/Glow_2014\">Wiki<\/a> and explore the code on <a href=\"https:\/\/github.com\/mozilla\/mrburns\">Github<\/a>.<\/p>\n<h2>Special Thanks<\/h2>\n<p>This was a large project with many participants, all of whom deserve thanks. I would like to thank a few people who worked especially hard:<\/p>\n<p>Eric Petitt &#8211; Project Sponsor<\/p>\n<p>Paul McLanahan &#8211; Senior Developer<\/p>\n<p>Steven Garrity &#8211; Senior Developer<\/p>\n<p>Ali Almossawi &#8211; Metrics Engineer<\/p>\n<p>John Slater &#8211; Creative Director<\/p>\n<p>Sean Martell &#8211; Art Director<\/p>\n<p>Matej Novak &#8211; Copy Director<\/p>\n<p>The Localization Team &amp; Contributors<\/p>\n<p><strong>And you! Without you the world would have no Glow.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The latest version of Firefox is a huge milestone for Mozilla and represents the combined efforts of hundreds of people from around the world. To celebrate this launch we revisited Glow, a real-time visualization of Firefox downloads originally used during &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/\">Continue reading<\/a><\/p>\n","protected":false},"author":446,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[288],"tags":[],"coauthors":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Celebrating the Web We Want - 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\/2014\/04\/28\/celebrating-the-web-we-want\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin Sternthal\" \/>\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\/2014\/04\/28\/celebrating-the-web-we-want\/\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/\",\"name\":\"Celebrating the Web We Want - Mozilla Web Development\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-1-600x364.png\",\"datePublished\":\"2014-04-28T22:00:40+00:00\",\"dateModified\":\"2014-04-28T22:41:23+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/c2c6b2656ccc9a02e0ceec5e9164db11\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/#primaryimage\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-1.png\",\"contentUrl\":\"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-1.png\",\"width\":1217,\"height\":740},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/webdev\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Celebrating the Web We Want\"}]},{\"@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\/c2c6b2656ccc9a02e0ceec5e9164db11\",\"name\":\"Benjamin Sternthal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/image\/6d9b61821995234534f3ca5961ea6e11\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/69f47ec208e315ef55d42aea7a0d4f82?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/69f47ec208e315ef55d42aea7a0d4f82?s=96&d=mm&r=g\",\"caption\":\"Benjamin Sternthal\"},\"description\":\"Web Development Manager at Mozilla @bensternthal\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/author\/bsternthalmozilla-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Celebrating the Web We Want - 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\/2014\/04\/28\/celebrating-the-web-we-want\/","twitter_misc":{"Written by":"Benjamin Sternthal","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/","url":"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/","name":"Celebrating the Web We Want - Mozilla Web Development","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/#primaryimage"},"image":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-1-600x364.png","datePublished":"2014-04-28T22:00:40+00:00","dateModified":"2014-04-28T22:41:23+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/c2c6b2656ccc9a02e0ceec5e9164db11"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/#primaryimage","url":"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-1.png","contentUrl":"https:\/\/blog.mozilla.org\/webdev\/files\/2014\/04\/promo-1.png","width":1217,"height":740},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/webdev\/2014\/04\/28\/celebrating-the-web-we-want\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/webdev\/"},{"@type":"ListItem","position":2,"name":"Celebrating the Web We Want"}]},{"@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\/c2c6b2656ccc9a02e0ceec5e9164db11","name":"Benjamin Sternthal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/image\/6d9b61821995234534f3ca5961ea6e11","url":"https:\/\/secure.gravatar.com\/avatar\/69f47ec208e315ef55d42aea7a0d4f82?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/69f47ec208e315ef55d42aea7a0d4f82?s=96&d=mm&r=g","caption":"Benjamin Sternthal"},"description":"Web Development Manager at Mozilla @bensternthal","url":"https:\/\/blog.mozilla.org\/webdev\/author\/bsternthalmozilla-com\/"}]}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts\/3800"}],"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\/446"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/comments?post=3800"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts\/3800\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/media?parent=3800"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/categories?post=3800"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/tags?post=3800"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/coauthors?post=3800"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}