-
Notifications
You must be signed in to change notification settings - Fork 3
/
2-6bd1c99fc6e93229479f.js.map
1 lines (1 loc) · 38.4 KB
/
2-6bd1c99fc6e93229479f.js.map
1
{"version":3,"sources":["webpack:///./src/components/page_schedule/single_event.js","webpack:///./src/components/page_schedule/talk_event.js","webpack:///./src/components/images/co_constanza.js","webpack:///./src/components/images/nebrius.js","webpack:///./src/constants/speakers.js","webpack:///./node_modules/core-js/modules/es6.function.name.js"],"names":["__webpack_require__","d","__webpack_exports__","SingleEvent","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","props","a","createElement","className","time","activity","TalkEvent","react__WEBPACK_IMPORTED_MODULE_1___default","figure","talkName","name","dangerouslySetInnerHTML","__html","description","href","alias","twitterUrl","target","rel","twitterName","Image","react_default","gatsby_browser_entry","query","render","data","gatsby_image_default","fluid","placeholderImage","childImageSharp","_869412194","_2031181725","speakers","sergio","Sergio","luis_alejandro","Luis_vega","mayra","Mayra","irina","Irina","melina","Melina","santiago","Santiago","anton","Anton","lucas","Lucas","jennifer","Jennifer","kate","Kate","alejandro","Alejandro","maris","Maris","adrian","Adrian","daniel","Daniel","colin","Colin","luis_villalobos","Luis_villalobos","constanza","Constanza","vanessa","Vanessa","jessica","Jessica","bryan","Bryan","eva","Eva","jerome","Jerome","dP","f","FProto","Function","prototype","nameRE","configurable","get","this","match","e"],"mappings":"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","file":"2-6bd1c99fc6e93229479f.js","sourcesContent":["import React from 'react'\n\n\nexport default function SingleEvent(props) {\n return (\n <li className=\"page-schedule__li\">\n <article className=\"page-card\">\n <div className=\"page-card__time\">\n <div className=\"page-card__time-start\">{props.time}</div>\n </div>\n <div className=\"page-card__information event start-event\">\n <h3 className=\"page-activity\">{props.activity}</h3>\n </div>\n </article>\n </li>\n )\n}\n","import React from 'react'\n\n\nexport default function TalkEvent(props) {\n\n return (\n\n // Card con Materialize - Modal\n <li className=\"page-schedule__li\">\n <article className=\"page-card\">\n <div className=\"page-card__time\">\n <div className=\"page-card__time-start\">{props.time}</div>\n </div>\n <div className=\"page-card__contentainer\">\n <div className=\"page-card__photo\">\n <figure className=\"page-card__figure-photo\">\n {props.figure()}\n </figure>\n </div>\n <div className=\"page-card__information\">\n <div className=\"page-card__information-description\">\n <h3 className=\"page-activity\">{props.talkName}</h3>\n <h4 className=\"page-speaker-name\">{props.name}</h4>\n <div className=\"page-information\">\n <div dangerouslySetInnerHTML={{ __html: props.description }} />\n </div>\n <a className=\"waves-effect waves-light btn modal-trigger toggle-modal\" href={props.alias}>Read more...</a>\n <div className=\"page-speaker-social\">\n <a href={props.twitterUrl} target=\"__blank\" rel=\"noopener noreferrer\">{props.twitterName}</a>\n </div>\n </div>\n </div>\n </div>\n </article>\n </li>\n\n )\n}\n","import React from 'react'\nimport { StaticQuery, graphql } from 'gatsby'\nimport Img from 'gatsby-image'\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.app/gatsby-image\n * - `StaticQuery`: https://gatsby.app/staticquery\n */\n\nconst Image = (props) => (\n <StaticQuery\n query={graphql`\n query {\n placeholderImage: file(relativePath: { eq: \"co_constanza.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 400) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n `}\n render={data => <Img fluid={data.placeholderImage.childImageSharp.fluid} />}\n />\n)\nexport default Image\n","import React from 'react'\nimport { StaticQuery, graphql } from 'gatsby'\nimport Img from 'gatsby-image'\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.app/gatsby-image\n * - `StaticQuery`: https://gatsby.app/staticquery\n */\n\nconst Image = (props) => (\n <StaticQuery\n query={graphql`\n query {\n placeholderImage: file(relativePath: { eq: \"nebrius.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 400) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n `}\n render={data => <Img fluid={data.placeholderImage.childImageSharp.fluid} />}\n />\n)\nexport default Image\n","import Vanessa from '../components/images/speaker_1'\nimport Mayra from '../components/images/speaker_2'\nimport Alejandro from '../components/images/speaker_3'\nimport Colin from '../components/images/speaker_4'\nimport Adrian from '../components/images/speaker_5'\nimport Melina from '../components/images/speaker_6'\nimport Santiago from '../components/images/speaker_7'\nimport Lucas from '../components/images/speaker_8'\nimport Maris from '../components/images/speaker_9'\nimport Sergio from '../components/images/speaker_10'\nimport Daniel from '../components/images/speaker_11'\nimport Anton from '../components/images/speaker_12'\nimport Jennifer from '../components/images/speaker_13'\nimport Irina from '../components/images/speaker_14'\nimport Kate from '../components/images/speaker_15'\nimport Luis_villalobos from '../components/images/speaker_16'\nimport Luis_vega from '../components/images/speaker_17'\nimport Eva from '../components/images/speaker_19'\nimport Constanza from '../components/images/co_constanza'\nimport Jessica from '../components/images/speaker_22'\nimport Bryan from '../components/images/nebrius'\nimport Jerome from '../components/images/speaker_21'\n\n\nexport const speakers = {\n sergio:{\n alias: '#sergioQuintero',\n name:'Sergio Quintero M.',\n figure: Sergio,\n talkName:'Firewall del lado del cliente; controlado por el host',\n description:'Nuevas técnicas de hacking a través de inyección de código en recursos javascript que permiten obtener datos como tarjetas de crédito contraseñas y demás información...<div id=\"sergioQuintero\" class=\"modal\"><div class=\"modal-content\"> importante para el cliente según el contexto.<br/>¿Qué medidas de seguridad tomar a la hora de proteger los datos del lado del cliente?<br/><br/>Muchas veces la información llega a terceros maliciosos primero antes de llegar al host, recordemos el caso de los 380.000 usuarios afectados por ataque reciente a la British Airways, explicare como se realizo este ataque y veremos algunas formas de protegernos como usar formularios de terceros, escuchar todas las conexiones salientes del navegador por medio de javascript; tanto las xhr como fetch, cómo usar iframes para aumentar la seguridad en conexiones salientes. se mencionaran brevemente algunas herramientas de codigo abierto como xhook.</div></div>'\n },\n luis_alejandro:{\n alias: '#luisAlejandro',\n name:'Luis Alejandro Vega',\n twitterName: '@luisalejovega',\n twitterUrl: 'https://twitter.com/luisalejovega',\n figure: Luis_vega,\n talkName:'Mascot Driven Development: building a high performing team through application ownership & identity',\n description:'Two years ago I was challenged to change my job as a Senior Software Engineer and create a brand new team from the ground up...<div id=\"luisAlejandro\" class=\"modal\"><div class=\"modal-content\"> The task was to recruit and lead a team to own, revamp, and create applications for Bloombergs JavaScript Framework, a framework that 3,000 engineers rely on every day. The goal was to develop internal tools with the same effort, research and UX design principles that are used to create Bloombergs client-facing financial tools. At the time, few internal tools existed and the ones that did were vastly unpopular with most engineers, including myself.<br/><br/>In this talk, I will share my experience of changing roles from a senior software engineer to a managerial position. The path for building a team to own and revamp unpopular applications and expand the portfolio with new applications. The establishment of a team culture that emphasizes product ownership, unparalleled customer support, and the branding of each application with a mascot. I will talk about how this helped us build a strong and high-performance 10-person team that today proudly owns a wide-ranging family of JavaScript/Typescript Applications and leads innovation at Bloomberg and in JavaScript.</div></div>'\n },\n mayra:{\n alias: '#mayraAleja',\n name:'Mayra Alejandra Rodriguez Maldonado',\n twitterName: '@mayrascript',\n twitterUrl: 'https://twitter.com/mayrascript',\n figure:Mayra,\n talkName:'Como crear tu store personalizado con RxJS',\n description:'Con frecuencia usamos la administración de una store con NgRx en Angular, pero como todas las bibliotecas a veces necesitamos diferentes comportamientos o quizás algo...<div id=\"mayraAleja\" class=\"modal\"><div class=\"modal-content\"> más complejo o tal vez algo más simple, y por supuesto, quizás algo más liviano. Si tu eres el tipo de desarrollador a quien le gustan las mejores prácticas, si le gusta tener en tu proyecto solo lo que necesitas y te encanta crear tupropio código personalizado, estaré encantada de mostrarte todo lo que necesitas saber para crear tu propio store con RxJs.</div></div>',\n },\n irina:{\n alias: '#irinaShes',\n name:'Irina Shestak',\n twitterName: '@_lrlna',\n twitterUrl: 'https://twitter.com/_lrlna',\n figure:Irina,\n talkName:'From Electron, to WASM, to Rust (aaand back to Electron)',\n description:'So you heard you can run WebAssembly in the browser, but what does this look like IRL? Seeking the much talked about performance benefits...<div id=\"irinaShes\" class=\"modal\"><div class=\"modal-content\"> of running WASM in the browser Compass (GUI for MongoDB) took the great leap forward and rewrote part of the application -- a schema parser responsible for document analysis -- in Rust. As it turns out, the rumours are true, I repeat the rumours are true: offloading parts of your application to Rust makes it fast, and in some of our cases, heaps fast.<br/><br/>In this talk I will cover converting a part of an codebase from JavaScript to Rust, bringing it to Electron, adding WASM to an existing React app, and deploying this whole lot to production. As Compass still talks to MongoDB via Node.js, I will also cover how we used Rust to improve performance without losing data integrity. This talk is about a success story, but also about a bunch of smol mishaps, fun woopses and lil dead ends we encountered and how we managed to overcome along the way.</div></div>'\n },\n melina:{\n alias: '#melinaMejia',\n name:'Melina Mejía Bedoya',\n twitterName: '@melinamejia95',\n twitterUrl: 'https://twitter.com/melinamejia95',\n figure:Melina,\n talkName:'Transformando la web en un mejor lugar para todos',\n description:'La web es un lugar al que todos deberíamos poder acceder, sin importar cuáles son nuestras condiciones o limitaciones, todos deberíamos poder beneficiarnos de la información y conocimiento que en esta se encuentra...<div id=\"melinaMejia\" class=\"modal\"><div class=\"modal-content\">-En esta charla hablaré de cómo a través de JavaScript podemos crear páginas web accesibles:<br/><br/>- Haré una pequeña introducción de “Web Accessibility”<br/><br/>- Explicaré cuáles son las 4 categorías de Accesibilidad, en esta charla me enfocaré en la visual<br/><br/>- Expondré la importancia de que todas las páginas web sean accesibles <br/><br/>- Daré un pequeño ejemplo de cómo construir un formulario con validación de campos teniendo en cuenta los principales conceptos de accesibilidad <br/><br/>- Mostraré cómo probar la accesibilidad de una página web a través de una librería llamada ‘tota11y’<br/><br/>- Mostraré un demo de cómo una persona con limitaciones visuales navegaría por una página web accesible<br/><br/>- Presentaré las conclusiones y recursos disponibles<br/><br/></div></div>',\n },\n santiago:{\n alias: '#santiZapata',\n name:'Santiago Zapata',\n twitterName: '@slashie_',\n twitterUrl: 'https://twitter.com/slashie_',\n figure:Santiago,\n talkName:'Procedural Generation using JavaScript',\n description:'In this talk, I describe a process to design and implement procedural generators using a top-down approach resulting on a stack of generators of an increasingly higher level of detail...<div id=\"santiZapata\" class=\"modal\"><div class=\"modal-content\"> leveraging on JavaScript dynamic typing features to build a flexible communication protocol between them. I will use one of my generators as an example. http://slashie.net/ultimacastlegen/</div></div>'\n },\n anton:{\n alias: '#antonMc',\n name:'Anton McConville',\n twitterName: '@antonmc',\n twitterUrl: 'https://twitter.com/antonmc',\n figure:Anton,\n talkName:'Personality hacking: using Node, WebAudio and Houdini to visualize psychology of song lyrics',\n description:'In this session we use JS on the server and in the browser to visualize personality changes of musical artists over time, through their lyrics...<div id=\"antonMc\" class=\"modal\"><div class=\"modal-content\">On the server we use Node to interface with Natural Language Processing APIs. On the client we use WebAudio to explore the dimensions of sound, and experiment with Houdini to play with visualizations. <br/><br/>The session steps through the open source code, analyzes the outcomes, and considers real world applications for the concepts.</div></div>'\n },\n lucas:{\n alias: '#lucasArag',\n name:'Lucas Aragno',\n twitterName: '@aragno157',\n twitterUrl: 'https://twitter.com/aragno157',\n figure:Lucas,\n talkName:'Neural networks on JavaScript',\n description:'Machine learning is so hot right now! in this talk ill introduce you to neural networks and how we can use them on our day to day stack'\n },\n jennifer:{\n alias: '#jennifeWo',\n name:'Jennifer Wong',\n twitterName: '@mybluewristband',\n twitterUrl: 'https://twitter.com/mybluewristband',\n figure:Jennifer,\n talkName:'Time Is But an Illusion… in JavaScript',\n description:'Time in JavaScript is weird. But why is time so terrible in JavaScript? Why do we need libraries like Moment.js? And what exactly are Greenwich Mean Time and Coordinated Universal Time...<div id=\"jennifeWo\" class=\"modal\"><div class=\"modal-content\">With so much to worry about timing wise: formatting, time zones, internationalization, recurrence rules, leap years, daylight savings time, and more, everyone needs HELP!<br/><br/>Let’s turn time into money by taking a look at the most popular time libraries and how we use them to solve JavaScript’s time problems. We’ll look at how JavaScript’s Date object started and what its prototype allows. We’ll wind our way through dates, times, and standards to find solutions to the weirdness.<br/><br/>Let’s kill time together talking about JavaScript time! Because we know, time heals all.</div></div>'\n },\n kate:{\n alias: '#kateBeard',\n name:'Kate Beard',\n twitterName: '@sbinlondon',\n twitterUrl: 'https://twitter.com/sbinlondon',\n figure:Kate,\n talkName:'Learn How to Play the Theremin* Today, Guaranteed! (*no theremin required)',\n description:'Ever wanted to learn how to play the theremin, but werent sure about having a spooky-sounding, weird-looking antenna in your home? Dont even know what a theremin is? Luckily...<div id=\"kateBeard\" class=\"modal\"><div class=\"modal-content\"> I can solve both these problems for you!<br/><br/>I ll show you how to turn any computer into a theremin using a browser, your webcam, and some machine learning magic; basic theremin-playing techniques; expound as much as possible about how cool theremins are; and maybe even subject you to a light bit of musical performance!<br/><br/>Follow me on a journey of joy, frustration, and weird, haunting noises.</div></div>'\n },\n alejandro:{\n alias: '#alejanOviedo',\n name:'Alejandro Oviedo',\n twitterName: '@a0viedo',\n twitterUrl: 'https://twitter.com/a0viedo',\n figure:Alejandro,\n talkName:'A codex for the web',\n description:'Historical data has been proved fundamental to understand a vast variety of topics from physics to geography and astronomy. I believe that to better understand how we used the web...<div id=\"alejanOviedo\" class=\"modal\"><div class=\"modal-content\">how we’re using it now and how can it be used tomorrow we can look at historical points strategically collected. In this talk I want to share how I built this library that collects data from the internet using serverless and Node.js.</div></div>'\n },\n maris:{\n alias: '#marisBotero',\n name:'Maris Botero Gonzalez',\n twitterName: '@marisbotero',\n twitterUrl: 'https://twitter.com/marisbotero',\n figure:Maris,\n talkName:'The time machine with machine learning and javascript',\n description:'A quick talk about a city project called the time machine, where I collected old photos of Medellin, documents to make machine learning algorithms using javascript and tensorflow.js...<div id=\"marisBotero\" class=\"modal\"><div class=\"modal-content\">The time machine is not a physical artifact properly, but it does situate us beyond this time to understand the cultural and historical processes of the territory. It allows us to expand our memory and understand the transformation of the community. In light of this reconstructed past, the future will be enriched by new tones. <br/><br/>this project was created with javascript and I was able to explore creationist algorithms and also share it with the children of my community.</div></div>'\n },\n adrian:{\n alias: '#adrianBolo',\n name:'Adrián Bolonio',\n twitterName: '@bolonio',\n twitterUrl: 'https://twitter.com/bolonio',\n figure:Adrian,\n talkName:'Testing Web Accessibility',\n description:'When we develop a new web application, we often put a lot of work on the design, on making it beautiful and usable. In other words, we want our web app to be effective, efficient, and satisfying for the user. But a lot of times we don’t think about the user experience for people with disabilities...<div id=\"adrianBolo\" class=\"modal\"><div class=\"modal-content\">including people with age-related impairments.<br/><br/>Web accessibility (a11y ) means that people with disabilities can perceive, understand, navigate, and interact with websites and tools, and that they can contribute equally without barriers.” (Source: W3C - Web Accessibility Initiative). Our role as frontend and web developers is to create clear interfaces to make people understand and care about data, independently of their disabilities or impairments, but what we, developers, often forget is to ensure that the code we write follows the Web Content Accessibility Guidelines (WCAG), and the only way to achieve that is testing, either manual or automated.<br/><br/>Automated web a11y tests can free up our QA team from manual testing every part of our application, but, they can’t automatically make our site accessible. We should use automated a11y tests as one step of a larger testing process.</div></div>'\n },\n daniel:{\n alias: '#danielEstiv',\n name:'Daniel Estiven Rico Posada',\n twitterName: '@dericop_',\n twitterUrl: 'https://twitter.com/dericop_',\n figure:Daniel,\n talkName:'Nodejs en tiempos de kubernetes',\n description:'Las prácticas de diseño y desarrollo de software se han ido transformando con el tiempo. Hace algunos años las capacidades que se asignaban a los servidores que ejecutan las aplicaciones eran estáticas...<div id=\"danielEstiv\" class=\"modal\"><div class=\"modal-content\">se estimaban las necesidades de infraestructura y cualquier tipo de escalamiento se realizaba de manera vertical (agregando más ram, disco, etc).<br/><br/>Con la llegada de la nube y de tecnologías como Kubernetes, se hace necesario replantearnos la forma en que estamos construyendo las aplicaciones; desde los planteamientos de escalabilidad hasta la arquitectura aplicativa y el aprovechamiento de la infraestructura. <br/><br/>Mi objetivo en esta conferencia es contar algunas de las técnicas, prácticas y tecnologías con las que nos estamos soñando la nueva generación de aplicaciones en Bancolombia y que también nos han facilitado este proceso de transformación (on-premise / cloud). La idea es acortar el camino de quienes se encuentren abordando estos mismos retos. <br/><br/>Estas técnicas, prácticas y tecnologías corresponden a : <br/><br/><br/><br/>1. De los monolitos a los microservicios<br/><br/>Domain Driven Design es una técnica que se utiliza para realizar una separación de las aplicaciones con base en un criterio de contextos delimitados. La idea es modelar basados en el dominio, manteniendo aislada la lógica de negocio de los componentes tecnológicos. <br/><br/>Presentaré la forma en que puede utilizarse event storming y domain driven design para decidir cuántos microservicios debes construir según la complejidad del dominio. Hablaré de la forma en que debes diseñar agregados para tener mejor aprovechamiento de las capacidades cloud y de los criterios que debes tener en cuenta para crear más o menos unidades desplegables (Ejemplo: la tasa de cambio como criterio para llevar monolitos modularizados a diferentes unidades desplegables). <br/><br/><br/><br/>2. Clean Architecture (Package by layer, Package by component)<br/><br/>En esta fase mostraré cómo los planteamientos de la sección anterior se ven reflejados en la arquitectura de las aplicaciones NodeJS, desde dos aproximaciones:<br/><br/>package by component y package by layer. <br/><br/>La primera aproximación con una orientación más reactiva y de sistemas distribuidos, y la segunda, pensando en una sola unidad desplegable bien estructurada, con un aprovechamiento de principios como inversión e inyección de dependencias. <br/><br/>El planteamiento principal es tener bajo acoplamiento con una lógica de negocio (dominio) aislada, en donde los componentes tecnológicos sean intercambiables, es decir, poder cambiar una capa de exposición Rest por GraphQL o una persistencia relacional por una no relacional o hasta por un esquema de mensajería, sin afectar en nada la capa de dominio.<br/><br/>Escalabilidad (Fundamental ser Stateless)<br/><br/>El objetivo de esta sección es discutir sobre cómo el escalamiento horizontal y la llegada de kubernetes replantea necesariamente el manejo de estado de las aplicaciones, teniendo en cuenta que las diferentes solicitudes de un cliente llegarán a diferentes instancias de la misma aplicación servidor (docker), gracias al balanceador de cargas. <br/><br/>El anterior planteamiento hace que por ejemplo el manejo de sesión deba ser planteado de una manera distinta (no stateful sino stateless), en donde cada request contenga todo lo necesario para el recurso solicitado y no basarse en el estado del servidor en un momento del tiempo.<br/><br/><br/><br/>3. Destruyendo el datacenter (Infraestructura como código)<br/><br/>Tradicionalmente los recursos de infraestructura iban por un lado y el desarrollo de las aplicaciones por el otro, tanto así que en algunos casos los desarrolladores desconocían por completo como estaba soportada su aplicación a nivel de infraestructura, por tanto su aprovechamiento no era el adecuado. Además, si por alguna razón extremista el datacenter fuera destruido, los tiempos que tardaría en replicarse nuevamente la infraestructura y poner a punto la aplicación eran muy altos.<br/><br/>La idea actualmente es que la infraestructura esté descrita como código, para que pueda versionarse tal cual como se hace con el código de la aplicación. Esto permite que acompañado de los pipelines como código pueda recrearse la infraestructura en cualquier momento del tiempo rápidamente, definiendo además los criterios de escalamiento horizontal automático a nivel de instancias. <br/><br/>Esto lleva a que los desarrolladores comprendamos mejor la infraestructura y por tanto la aprovechemos mejor desde el diseño de las aplicaciones. <br/><br/><br/><br/>4. Secrets as a service<br/><br/>Con este nuevo aprovechamiento de servicios cloud, es fundamental que ninguna parametrización sensible de las aplicaciones esté descrita de manera explícita en el código. Por el contrario debe utilizarse un servicio que administre estas credenciales o configuraciones sensibles y las inyecte en el código en tiempo de ejecución. En el caso de AWS puede utilizarse secrets manager.<br/><br/>La mejor prueba de este tema es que deberíamos estar en la capacidad de hacer público el repositorio de código y nadie debería estar en la capacidad de vulnerarlo al menos desde el punto de vista de las credenciales o datos sensibles. <br/><br/><br/><br/>5. LocalStack<br/><br/>Es una iniciativa que permite tener un stack bastante completo para interactuar con los servicios de AWS localmente, disponibles para usarlos offline. El objetivo en esta sección es dar a conocer esta iniciativa que es muy utilizada a nivel de desarrollo pero aún desconocida para muchos. https://github.com/localstack/localstack.</div></div>'\n },\n colin:{\n alias: '#colinIhr',\n name:'Colin Ihrig',\n twitterName: '@cjihrig',\n twitterUrl: 'https://twitter.com/cjihrig',\n figure:Colin,\n talkName:'Out of the Box Node.js Diagnostics',\n description:'In the early years of Node.js, diagnostics and debugging were considerable pain points. Modern versions of Node have improved considerably in these areas. Features like async stack traces, heap snapshots, and CPU profiling no longer require third party modules or modifications to application source code. This talk explores the various diagnostic features that have recently been built into Node.'\n },\n luis_villalobos:{\n alias: '#luisVilla',\n name:'Luis Villalobos',\n twitterName: '@luisvillarra',\n twitterUrl: 'https://twitter.com/luisvillarra',\n figure:Luis_villalobos,\n talkName:'Desarrollo de interfaces modernas de usuario usando un \"viejo\" modelo matemático computacional',\n description:'Crear interfaces de usuario es difícil y duro, especialmente cuando no se diseña o especifica su flujo, por ejemplo...<div id=\"luisVilla\" class=\"modal\"><div class=\"modal-content\">¿Qué pasaría si un usuario hace clic a un botón y en algún punto ese usuario deja de tener conexión de internet? O al cargar una página, se necesite consultar ciertos datos, esperar a que estos se resuelvan para luego mostrar dichos datos en pantalla, pero resulta que parte de esos datos llaman otra acción para mostrar un modal, pues, este tipo de comportamientos son difíciles de implementar en especial si sólo agregamos un montón de condicionales, switches o hacemos la toma de decisiones en un componentDidMount y manipulando solo el state dentro de un componente, incluso si usamos herramientas como Redux.<br/><br/>Existe una forma más estructurada y óptima de desarrollar flujos de interfaces de usuario para mostrar las vistas o los componentes que queremos que vean los usuarios sin importar los datos u otros factores usando un modelo matemático computacional, las máquinas de estado finitas o statecharts.</div></div>'\n },\n constanza:{\n alias: '#constaYane',\n name:'Constanza Yáñez Calderón',\n twitterName: '@co_constanza',\n twitterUrl: 'https://twitter.com/co_constanza',\n figure:Constanza,\n talkName:'About life, robots and cats!',\n description:'When I was a child I dreamt a lot about creating robots that helped me in my daily life, like tidying up my bedroom...<div id=\"constaYane\" class=\"modal\"><div class=\"modal-content\">That was just a dream till I grow up and found out that there is something called home automation. So I decided to build Sasha, my cats pet sitter, that helps me by feeding my cats when I have to get home a little bit late. Sasha changed my life and my cats are stressless because they can eat their meal at the right time.<br></br>In this talk, I will share my experience on using JavaScript to build Sasha and will walkthrough its features. Last, I ll talk about other possible use cases and the potential of home automation with JavaScript.</div></div>'\n },\n vanessa:{\n alias: '#vanessAris',\n name:'Vanessa Aristizabal',\n twitterName: '@vanessamarely',\n twitterUrl: 'https://twitter.com/vanessamarely',\n figure:Vanessa,\n talkName:'Contando una historia',\n description:'Tenemos muchas formas de contar historias y con la multimedia se nos da un medio más para narrarlas y es el objetivo de esta charla, con ella pretendo enseñar un medio que nos puede servir para transmitir la información...<div id=\"vanessAris\" class=\"modal\"><div class=\"modal-content\">enseñar y a la vez aprender de cómo crear una historia, usando técnicas, e incluso librerías que nos pueden ser de ayuda, para con código, gráficos, imágenes y narrativa, relatarles la historia del mundo mágico de JavaScript y cómo podemos usar lo aprendido para narrar muchos mundos más.<b></b>Abstract<b></b>En la actualidad existen muchos medios multimedia para contar historias, aunque a veces no se nos cuenta que la Web es uno de los mejores medios para hacer esta transmisión de información. JavaScript nos ha permitido hacer increíbles cosas en la Web y desde una página o Web App más sencilla hasta las complejas, en ellas se cuentan historias, pero no solemos conocer las técnicas para la transmisión correcta del mensaje. Incluso desde nuestro propio idioma nativo no sabemos cual es la mejor forma de comunicarnos o darnos a entender.<b></b>Cuando leemos un cómic, por medio de imágenes se nos transmite un mensaje y a veces desearíamos que el código fuera como estas historietas que hacen tan placenteros y amenos nuestros días, pero quién dice que el código no es ameno y placentero para los desarrolladores? Y qué tal si lo hacemos agradable para todos. Existe una librería llamada comic.js, que integrada con otras librerías nos podrían permitir crear un cómic, pero la idea no es enseñar a usar una librería más, incluso por UX (experiencia de usuario), existe una técnica llamada Storyboard con la cual creamos una historieta de nuestros usuarios para tener en cuenta todos los aspectos necesarios que se requieran para usar un determinado producto, aunque el fin último de esta charla no es contarte cómo hacer un Storyboard o un cómic.<b></b>En esta charla quiero contarles una historia, no será la de Alicia en el mundo mágico de las maravillas, pero sí la historia de mundo mágico de JS, quiero mostrar cómo usando una herramienta multimedia como la Web, podemos usar la narrativa y el código y con estas armas poderosas podemos contar historias, en este caso de JS como un medio de aprendizaje para todos. El objetivo de esta charla es mostrar una forma de aprendizaje dinámica integrando código, gráficos, imágenes y narrativa, y algunas técnicas de transmisión de información y así podamos aprender cómo contar una historia de nuestro amado código, cómo contar una historia de nuestro querido JavaScript y es posible que termines con la idea de querer crear miles de historias de muchas tecnologías con lo aprendido.</div></div>'\n },\n jessica:{\n alias: '#jessiLord',\n name:'Jessica Lord',\n twitterName: '@jllord',\n twitterUrl: 'https://twitter.com/jllord',\n figure:Jessica,\n talkName:'Building up the Electron Project',\n description:'This is a talk about how Electron went from atom-shell, a dependency of the text editor Atom with no plans of its own, to the widely adopted desktop framework running many of your favorite applications...<div id=\"jessiLord\" class=\"modal\"><div class=\"modal-content\">I ll share the process of getting internal buy-in for the project and getting the team started. I ll also talk about the importance of developer experience in the project. This includes technical decisions on the tooling to educate and support developers from different parts of the stack, create maintainable code for a small team, and excite a community around sharing their work.<br></br>Electron is initial unplanned position actually worked to its advantage after the team took shape and many of the experiences shared in this talk can be applied to the project you find yourself advocating for now (or later).</div></div>'\n },\n bryan:{\n alias: '#bryanHug',\n name:'Bryan Hughes',\n twitterName: '@nebrius',\n twitterUrl: 'https://twitter.com/nebrius',\n figure:Bryan,\n talkName:'“Finding your inner artist” or “Feeding your inner artist.”',\n description:'tbd'\n },\n eva:{\n alias: '#evaFe',\n name:'Eva Ferreira',\n twitterName: '@evaferreira92',\n twitterUrl: 'https://twitter.com/evaferreira92',\n figure:Eva,\n talkName:'Oda a la década++',\n description:'Había una vez navegadores sin inspector de elementos, CSS sin border-radius, JavaScript sin arrow functions. Aunque un mundo sin Flexbox ni Templete Literals suene aterrador...<div id=\"evaFe\" class=\"modal\"><div class=\"modal-content\">los invito a reflexionar sobre cuál es realmente la época más oscura para desarrolladores Front-end.<br></br>Preguntémonos si oscuros eran los tiempos cuando nos preocupaba border-radius o si en realidad deberíamos preocuparnos por los tiempos actuales, donde una simple landing necesita 800kb de JavaScript para visualizarse (no, no exagero).</div></div>'\n },\n jerome:{\n alias: '#jeromeHard',\n name:'Jerome Hardaway',\n twitterName:'@JeromeHardaway',\n twitterUrl:'https://twitter.com/JeromeHardaway',\n figure:Jerome,\n talkName:'Writing Newbie-Friendly Javascript: Building a Codebase For The You From Five Years Ago',\n description:'tbd'\n }\n}\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n"],"sourceRoot":""}