{"componentChunkName":"component---node-modules-gatsby-theme-community-src-templates-event-tsx","path":"/events/authentication-recursion-and-registries","result":{"data":{"siteYaml":{"siteUrl":"https://elixir.sydney","defaultImage":"https://camunda.com/img/events/meetup-example.jpg","sponsorsTitle":"Sponsors","organisersTitle":"Organisers"},"eventMdx":{"id":"5e4fb083-b8ef-5dcd-bf5e-fc31220180c4","body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"path\": \"/events/authentication-recursion-and-registries\",\n  \"title\": \"Authentication, Recursion and Registries\",\n  \"date\": \"2017-03-01T00:00:00.000Z\",\n  \"time\": \"6:00 - 8:30pm\",\n  \"startDate\": \"2017-03-01T08:00+11:00\",\n  \"endDate\": \"2017-03-01T08:00+11:00\",\n  \"location\": \"pivotal-labs-location\",\n  \"organisers\": [\"josh-price\", \"james-sadler\", \"paul-fioravanti\"],\n  \"sponsors\": [\"alembic\", \"expert360\"],\n  \"talks\": [{\n    \"speaker\": \"martin-stannard\",\n    \"title\": \"Using the New Registry in Elixir 1.4\",\n    \"description\": \"Elixir 1.4 introduces the new Process Registry module to help manage your processes in OTP. If you've attended our OTP introductory series then you'll be ready to join Martin as he shows us how we can use this in our Elixir OTP applications.\\n\",\n    \"slides\": null,\n    \"video\": null\n  }, {\n    \"speaker\": \"josh-price\",\n    \"title\": \"Getting Comfortable With Recursion\",\n    \"description\": \"You might not be used to writing code in a recursive style if you're coming from a more imperative language. Heard of Tail Recursion or Tail Call Optimisation, but not sure what it really means?\\nJosh will demystify writing recursive functions that are blazingly fast and help you avoid some of the traps.\\n\",\n    \"slides\": null,\n    \"video\": null\n  }, {\n    \"speaker\": \"sunil-gopinath\",\n    \"title\": \"Authentication with JWT\",\n    \"description\": \"Need to secure your Phoenix or Plug application? Not sure how JWT works? Well there are lots of options in Elixir for adding security to your webapp. Sunil will introduce JWT and the various options for add Authentication to your app.\\n\",\n    \"slides\": null,\n    \"video\": null\n  }],\n  \"mainImage\": null,\n  \"images\": null,\n  \"description\": \"This month we'll be talking about a topic that we haven't covered before, Authentication with JWT and their usage with Plugs, Joken and Phoenix.\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"This month we'll be talking about a topic that we haven't covered before, but is important for securing your webapps: Authentication with JWT and their usage with Plugs, Joken and Phoenix.\"), mdx(\"p\", null, \"We'll also be getting with writing Elixir in a recursive style. This may not be what you're used from other languages but it's pretty great in Elixir and Erlang. We'll learn how to write the ridiculously fast Elixir functions that are easy to read.\"), mdx(\"p\", null, \"Lastly we'll learn about what's new in Elixir 1.4 with a deep dive into the new Process Registry module.\"), mdx(\"p\", null, \"It's going to be a great meetup, so come along and join us!\"));\n}\n;\nMDXContent.isMDXComponent = true;","path":"/events/authentication-recursion-and-registries","date":"01-03-2017","title":"Authentication, Recursion and Registries","description":"This month we'll be talking about a topic that we haven't covered before, Authentication with JWT and their usage with Plugs, Joken and Phoenix.","location":{"name":"Pivotal Labs","mapUrl":"https://www.google.com/maps/embed/v1/place?q=Level%2011%2C%20155%20Clarence%20Street%2C%20Sydney%2C%202000&key=AIzaSyD7OXXbf-H8ho7dJuChVGkAhY-ib2vMafc","address":"Level 11, 155 Clarence Street, Sydney, 2000","instructions":"Ring or Text Josh on 0415 366 251, if you're late, lost or can't get in. We'll send someone down to get you.","streetAddress":"Level 11, 155 Clarence Street","city":"Sydney","latitude":"-33.868015","longitude":"151.204998"},"mainImage":null,"images":null,"organisers":[{"name":"Josh Price","avatarUrl":"https://secure.meetupstatic.com/photos/member/4/5/c/e/highres_12197870.jpeg"},{"name":"James Sadler","avatarUrl":"https://a248.e.akamai.net/secure.meetupstatic.com/photos/member/2/8/f/b/member_258850491.jpeg"},{"name":"Paul Fioravanti","avatarUrl":"https://secure.meetupstatic.com/photos/member/7/1/6/8/highres_67829032.jpeg"}],"sponsors":[{"name":"Alembic","logoUrl":"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIxLjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA0OTcuMyAxMzAuMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDk3LjMgMTMwLjE7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRUYzRTI0O30KCS5zdDF7ZmlsbDojOTJDNEU5O30KPC9zdHlsZT4KPGc+Cgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNODguOSw2NS4xYzAtMTcuOS0xNC41LTMyLjQtMzIuNC0zMi40Yy0xNy45LDAtMzIuNCwxNC42LTMyLjQsMzIuNGMwLDE3LjksMTQuNSwzMi40LDMyLjQsMzIuNGgwbDE5LjgtMC4yCgkJbDAuMS0zMy41bC0wLjEsMGMtMC41LTEwLjItOS0xOC40LTE5LjQtMTguNGMtMTAuNywwLTE5LjQsOC42LTE5LjQsMTkuM2MtMC4xLDEwLjMsOCwxOC44LDE4LjEsMTkuNWMwLjQsMCw5LjcsMCw5LjcsMAoJCWMwLTIuMSwwLjEtNC42LTIuNC01LjhjLTEuNS0wLjctNC41LTAuNC03LjctMC42Yy02LjYtMC42LTExLjYtNi42LTExLjMtMTMuNWMwLjMtNi44LDUuOC0xMi4zLDEyLjYtMTIuNgoJCWM3LjUtMC4zLDEzLjYsNS43LDEzLjYsMTMuMWgwTDcwLjEsOTFsLTEzLjYsMC4xYy0xNC40LDAtMjYuMS0xMS44LTI2LjEtMjYuMmMwLTE0LjMsMTEuNy0yNiwyNi4xLTI2YzE0LjQsMCwyNi4yLDExLjcsMjYuMiwyNi4xCgkJTDgyLjcsOTFjLTAuMiw0LjksMC45LDYuNSw2LjMsNi4zaDBMODguOSw2NS4xeiIvPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTEzNy40LDM1LjNjLTAuNC0xLjItMS43LTItMy4xLTJjLTEuMywwLTIuNiwwLjgtMy4xLDJsLTIxLjksNTguNGMtMC4zLDAuOC0wLjMsMS43LDAuMSwyLjUKCQkJYzAuMywwLjgsMSwxLjQsMS43LDEuN2wwLjIsMC4xaDAuMmMwLjEsMCwwLjIsMCwwLjMsMGMwLjIsMCwwLjQsMCwwLjUsMGMxLjMsMCwyLjUtMC44LDMtMi4xbDUuMy0xNC4ySDE0OGw1LjMsMTQuMgoJCQljMC41LDEuMiwxLjcsMi4xLDMsMi4xYzAuMiwwLDAuNCwwLDAuNS0wLjFjMC4xLDAsMC4yLDAsMC4zLDBoMC4ybDAuMi0wLjFjMS42LTAuNywyLjQtMi42LDEuNy00LjJMMTM3LjQsMzUuM3ogTTE0NS42LDc1LjNIMTIzCgkJCWwxMS4zLTMwTDE0NS42LDc1LjN6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTIwNi45LDkxLjZoLTI5LjFWMzYuMmMwLTEuNy0xLjUtMy4yLTMuMi0zLjJjLTEuNywwLTMuMiwxLjQtMy4yLDMuMnY1OC43YzAsMS43LDEuNCwzLjIsMy4yLDMuMmgzMi40CgkJCWMxLjgsMCwzLjItMS40LDMuMi0zLjJDMjEwLjEsOTMsMjA4LjcsOTEuNiwyMDYuOSw5MS42eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yNTcuNiwzOS40YzEuOCwwLDMuMi0xLjQsMy4yLTMuMmMwLTEuOC0xLjQtMy4yLTMuMi0zLjJoLTMyLjRjLTEuNywwLTMuMiwxLjQtMy4yLDMuMnY1OC43CgkJCWMwLDEuNywxLjIsMywzLDMuMmgzMi42YzEuOCwwLDMuMi0xLjQsMy4yLTMuMmMwLTEuOS0xLjQtMy4yLTMuMi0zLjJoLTI5LjFWNjguOGgyNS40YzEuNywwLDMuMi0xLjQsMy4yLTMuMgoJCQljMC0xLjgtMS40LTMuMi0zLjItMy4yaC0yNS40VjM5LjRIMjU3LjZ6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTMyOS44LDM0LjhjLTAuMi0wLjQtMC41LTAuNi0wLjgtMC45bC0wLjItMC4xYy0xLjUtMS0zLjUtMC42LTQuNCwwLjhsLTIxLjUsMjkuOWwtMjEuNi0yOS45CgkJCWMtMS0xLjQtMi45LTEuNy00LjQtMC44bC0wLjEsMC4xYy0wLjEsMC4xLTAuMiwwLjItMC4zLDAuM2MtMC43LDAuNi0xLjEsMS40LTEuMSwyLjR2NTguM2MwLDEuNywxLjUsMy4yLDMuMiwzLjIKCQkJYzEuNywwLDMuMi0xLjQsMy4yLTMuMlY0Ni4ybDE4LjMsMjUuM2MwLjYsMSwxLjUsMS41LDIuNywxLjVoMC4yYzEuMSwwLDIuMS0wLjUsMi42LTEuNEwzMjQsNDYuMXY0OC43YzAsMS44LDEuNCwzLjIsMy4yLDMuMgoJCQljMS43LDAsMy4yLTEuNCwzLjItMy4yVjM2LjVjMC0wLjUtMC4yLTEtMC41LTEuNkwzMjkuOCwzNC44eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNzQuNCw2MS43YzMuMy0zLjIsNS4xLTcuNCw1LjEtMTEuOWMwLTkuMi03LjUtMTYuNy0xNi43LTE2LjdoLTE0Yy0xLjcsMC0zLjIsMS40LTMuMiwzLjJ2NTguNwoJCQljMCwxLjcsMS40LDMuMiwzLjIsMy4yaDE4YzEwLjUsMCwxOS04LjUsMTktMTlDMzg1LjgsNzEuNSwzODEuMyw2NC43LDM3NC40LDYxLjd6IE0zNTIuMSw1OS45VjM5LjRoMTAuOAoJCQljNS43LDAsMTAuMiw0LjYsMTAuMiwxMC4zYzAsNS42LTQuNiwxMC4yLTEwLjIsMTAuMkgzNTIuMXogTTM3OS40LDc5Yy0wLjEsNy4xLTUuNiwxMi42LTEyLjYsMTIuNmgtMTQuN1Y2Ni40aDE0LjcKCQkJQzM3My43LDY2LjQsMzc5LjMsNzIuMSwzNzkuNCw3OXoiLz4KCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDAyLDMzYy0xLjcsMC0zLjIsMS40LTMuMiwzLjJ2NTguN2MwLDEuNywxLjQsMy4yLDMuMiwzLjJjMS44LDAsMy4yLTEuNCwzLjItMy4yVjM2LjIKCQkJQzQwNS4zLDM0LjQsNDAzLjgsMzMsNDAyLDMzeiIvPgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik00NzAuNSw4NS4xYy0wLjktMC4yLTEuOSwwLTIuNywwLjVsLTAuMSwwLjFjLTQuNSwzLjgtMTAuNSw1LjktMTYuOCw1LjljLTE1LjEsMC0yNy4zLTExLjgtMjcuMy0yNi40CgkJCWMwLTE0LjcsMTIuMy0yNi43LDI3LjMtMjYuN2M2LjIsMCwxMi4xLDIsMTcsNS45YzAuNywwLjUsMS42LDAuOCwyLjQsMC42YzAuOC0wLjEsMS41LTAuNiwyLTEuMmMwLjUtMC42LDAuOC0xLjMsMC43LTIuMQoJCQljMC0xLTAuNS0xLjgtMS4zLTIuNWMtNi00LjYtMTMuNC03LjEtMjEtNy4xaDBjLTE4LjksMC4xLTMzLjgsMTQuNi0zMy44LDMzLjFjMCwxOC4xLDE1LjEsMzIuOCwzMy44LDMyLjhjNy42LDAsMTUuMS0yLjUsMjAuOS03CgkJCWMwLjctMC41LDEuMi0xLjQsMS4zLTIuNGMwLTAuOC0wLjItMS42LTAuOC0yLjJDNDcxLjksODUuOCw0NzEuMyw4NS4zLDQ3MC41LDg1LjF6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==","websiteUrl":"https://alembic.com.au/"},{"name":"Expert360","logoUrl":"https://expert360.com/themes/custom/expert360/logo.svg","websiteUrl":"https://expert360.com.au/"}],"talks":[{"speaker":{"name":"Martin Stannard","avatarUrl":"https://a248.e.akamai.net/secure.meetupstatic.com/photos/member/1/7/c/c/member_251766092.jpeg"},"title":"Using the New Registry in Elixir 1.4","description":"Elixir 1.4 introduces the new Process Registry module to help manage your processes in OTP. If you've attended our OTP introductory series then you'll be ready to join Martin as he shows us how we can use this in our Elixir OTP applications.\n","photos":null,"slides":null,"video":null},{"speaker":{"name":"Josh Price","avatarUrl":"https://secure.meetupstatic.com/photos/member/4/5/c/e/highres_12197870.jpeg"},"title":"Getting Comfortable With Recursion","description":"You might not be used to writing code in a recursive style if you're coming from a more imperative language. Heard of Tail Recursion or Tail Call Optimisation, but not sure what it really means?\nJosh will demystify writing recursive functions that are blazingly fast and help you avoid some of the traps.\n","photos":null,"slides":null,"video":null},{"speaker":{"name":"Sunil Gopinath","avatarUrl":"https://a248.e.akamai.net/secure.meetupstatic.com/photos/member/c/2/d/a/member_115669882.jpeg"},"title":"Authentication with JWT","description":"Need to secure your Phoenix or Plug application? Not sure how JWT works? Well there are lots of options in Elixir for adding security to your webapp. Sunil will introduce JWT and the various options for add Authentication to your app.\n","photos":null,"slides":null,"video":null}]}},"pageContext":{"id":"5e4fb083-b8ef-5dcd-bf5e-fc31220180c4","previous":"/events/phoenix-ecto-and-nerves","next":"/events/sydney-elixir-meetup"}},"staticQueryHashes":["1060091228","1389804553","1706638457","2863593881","2905754725","3812220486","675908267","684993974"]}