{"id":4075,"date":"2015-12-02T10:21:47","date_gmt":"2015-12-02T18:21:47","guid":{"rendered":"https:\/\/blog.mozilla.org\/webdev\/?p=4075"},"modified":"2015-12-02T10:21:47","modified_gmt":"2015-12-02T18:21:47","slug":"beer-and-tell-november-2015","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/webdev\/2015\/12\/02\/beer-and-tell-november-2015\/","title":{"rendered":"Beer and Tell &#8211; November 2015"},"content":{"rendered":"<p>Once a month, web developers from across the Mozilla Project get together to design programming languages that are intentionally difficult to reason about. While we advanced the state-of-the-art in side effects, we find time to talk about our side projects and drink, an occurrence we like to call &#8220;Beer and Tell&#8221;.<\/p>\n<p>There&#8217;s a <a href=\"https:\/\/wiki.mozilla.org\/Webdev\/Beer_And_Tell\/November_2015\">wiki page available<\/a> with a list of the presenters, as well as links to their presentation materials. There&#8217;s also a <a href=\"https:\/\/air.mozilla.org\/webdev-beer-and-tell-november-2015\/\">recording available<\/a> courtesy of Air Mozilla.<\/p>\n<h2>Peterbe: Headsupper.io<\/h2>\n<p><a href=\"https:\/\/mozillians.org\/en-US\/u\/peterbe\/\">Peterbe<\/a> <a href=\"https:\/\/air.mozilla.org\/webdev-beer-and-tell-november-2015\/#@26s\">started us off<\/a> with <a href=\"https:\/\/headsupper.io\/\">headsupper.io<\/a>, a service that sends notification emails when you commit to a GitHub project with a specific keyword in your commit message. The service is registered as a Github webhook, and you can configure the service to only send emails on new tags if you so desire.<\/p>\n<h2>Osmose: Advanced Open File (Round 2)<\/h2>\n<p>Next up was <a href=\"https:\/\/mozillians.org\/en-US\/u\/Osmose\/\">Osmose<\/a> (that&#8217;s me!), with an <a href=\"https:\/\/atom.io\/\">Atom<\/a> package for opening files called <a href=\"https:\/\/atom.io\/packages\/advanced-open-file\">Advanced Open File<\/a>. Advanced Open File adds a convenient modal dialog for finding files to open or create that aims to replace use of the system file dialog. Previously featured on Beer and Tell, today&#8217;s update included news of a rewrite in ES2015 using <a href=\"http:\/\/babeljs.io\/\">Babel<\/a>, test coverage, Windows path fixes, and more!<\/p>\n<h2>Kumar: React + Redux Live Reload<\/h2>\n<p><a href=\"https:\/\/mozillians.org\/en-US\/u\/kumar\/\">Kumar<\/a> shared a demo of an impressive <a href=\"https:\/\/facebook.github.io\/react\/\">React<\/a> and <a href=\"http:\/\/redux.js.org\/\">Redux<\/a> development setup that includes live-reloading of the app as the code changes, as well as a detailed view of the state changes happening in the app and the ability to walk through the history of state changes to debug your app. The tools even replay state changes after live-reloading for an impressively short feedback loop during development.<\/p>\n<h2>Bwalker: ebird-mybird<\/h2>\n<p><a href=\"https:\/\/mozillians.org\/en-US\/u\/bwalker\/\">Bwalker<\/a> was next with a site called <a href=\"https:\/\/wfwalker.github.io\/ebird-mybird\/\">ebird-mybird<\/a>. <a href=\"http:\/\/ebird.org\/\">eBird<\/a> is a bird observation checklist that bird watchers can use to track their observations. ebird-mybird reads in a CSV file exported from eBird and displays the data in various useful forms on a static site, including aggregate sightings by year\/month  and sightings categorized by species, location, and date.<\/p>\n<p>The site itself is a frontend app that uses <a href=\"http:\/\/c3js.org\/\">C3<\/a> for generating charts, <a href=\"http:\/\/papaparse.com\/\">PapaParse<\/a> for parsing the CSV files, and <a href=\"http:\/\/handlebarsjs.com\/\">Handlebars<\/a> for templating.<\/p>\n<h2>Potch: Pseudorandom Number Generator<\/h2>\n<p>Last up was <a href=\"https:\/\/mozillians.org\/en-US\/u\/potch\/\">Potch<\/a> with a small experiment in generating pseudorandom numbers in JavaScript. Inspired by a blog post about <a href=\"https:\/\/medium.com\/@betable\/tifu-by-using-math-random-f1c308c4fd9d\">issues with Math.random in V8<\/a>, Potch create a very simple <a href=\"http:\/\/codepen.io\/potch\/pen\/WQWjbb\">Codepen that draws on a canvas<\/a> based on custom-generated random numbers.<\/p>\n<p>If you need sound random number generation, the blog post recommends <a href=\"https:\/\/nodejs.org\/api\/crypto.html#crypto_crypto_randombytes_size_callback\">crypto.randomBytes<\/a>, also included in the Node standard library.<\/p>\n<hr \/>\n<p>This week&#8217;s result was a programming language composed entirely of pop culture references, including a time-sensitive compiler that assigns optimization levels based on how current your references are.<\/p>\n<p>If you&#8217;re interested in attending the next Beer and Tell, sign up for the <a href=\"https:\/\/lists.mozilla.org\/listinfo\/dev-webdev\">dev-webdev@lists.mozilla.org mailing list<\/a>. An email is sent out a week beforehand with connection details. You could even add yourself to the wiki and show off your side-project!<\/p>\n<p>See you next month!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Once a month, web developers from across the Mozilla Project get together to design programming languages that are intentionally difficult to reason about. While we advanced the state-of-the-art in side effects, we find time to talk about our side projects &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/webdev\/2015\/12\/02\/beer-and-tell-november-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":[20263],"tags":[],"coauthors":[28315],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Beer and Tell - November 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\/12\/02\/beer-and-tell-november-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\/12\/02\/beer-and-tell-november-2015\/\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/2015\/12\/02\/beer-and-tell-november-2015\/\",\"name\":\"Beer and Tell - November 2015 - Mozilla Web Development\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#website\"},\"datePublished\":\"2015-12-02T18:21:47+00:00\",\"dateModified\":\"2015-12-02T18:21:47+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/c5d68eef83c0e4e0ae60176f557c1941\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2015\/12\/02\/beer-and-tell-november-2015\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/webdev\/2015\/12\/02\/beer-and-tell-november-2015\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2015\/12\/02\/beer-and-tell-november-2015\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/webdev\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Beer and Tell &#8211; November 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":"Beer and Tell - November 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\/12\/02\/beer-and-tell-november-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\/12\/02\/beer-and-tell-november-2015\/","url":"https:\/\/blog.mozilla.org\/webdev\/2015\/12\/02\/beer-and-tell-november-2015\/","name":"Beer and Tell - November 2015 - Mozilla Web Development","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#website"},"datePublished":"2015-12-02T18:21:47+00:00","dateModified":"2015-12-02T18:21:47+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/c5d68eef83c0e4e0ae60176f557c1941"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2015\/12\/02\/beer-and-tell-november-2015\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/webdev\/2015\/12\/02\/beer-and-tell-november-2015\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/webdev\/2015\/12\/02\/beer-and-tell-november-2015\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/webdev\/"},{"@type":"ListItem","position":2,"name":"Beer and Tell &#8211; November 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\/4075"}],"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=4075"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts\/4075\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/media?parent=4075"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/categories?post=4075"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/tags?post=4075"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/coauthors?post=4075"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}