
JSJ 281: CodeSponsor - Sustaining Open-Source Software through Ethical Advertising with Eric Berry
Panel: Aimee KnightAJ O'NealCharles Max Wood Guest: Eric BerryThis week on Ruby Rogues, we interview our very own, Eric Berry, to talk about the sustainability of open-source projects through ethical advertising. The team talks about once open source projects like PhantomJS, Cancan, and many others.The Rogues dive into the many different scenarios that lead open source projects astray. Problems like working on the project without compensation, be overworked, and no interest are many of the reasons these are not sustained in the long run.However, are there solutions like donations or sponsorship to sustain such projects? And how do we go about finding funding or compensation for these open source projects? Eric describes that advertising tactics and strategies for open source. Eric talks about his work with Code Sponsor and how they support the open source community with funding.In particular, we dive pretty deep on:Ruby Rogues talk about burnout on projectsWorking on projects for free and the project falls apartSolutions behind the more popular projects like Ruby on Rails and NPM.Lemonade Stand - Sustaining and bounty sourced projectsSponsorship or company supported projects.Crowdfunding - not sustainable, but helps.Donation buttons, do they work?Who would pay developers for this?Developers taking care of other developersAdvertising, and helping pay for projects to stay alive!Help developers stay funded without a spam haven.and much, much more!Links: CancanPhantomJSCode SponsorTimber RollbarCoreLogicTrackJS CircleCICodeConf. PicksAimeePositive Experience for Women in TechHand Written CardsCharlesKeto Diet - Fat HeadRuby Dev. SummitAJReal Love by Greg BaerEricNate HopkinsOpen CollectiveCarbonAds.Etc.Special Guest: Eric Berry. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.
2 Loka 20171h 1min

JSJ 280: Stackblitz with Eric Simons and Albert Pai
Panel:Joe AimeeCharles Special Guests: Eric Simmons Albert PaiIn this episode, JavaScript Jabbers talk to Eric Simmons and Albert Pai, the co-founder of thinkster.io, where their team teaches the bleeding edge of javascript technology’s various frameworks and backend. Also, with the recent creation of Stalkblitz, which is the center topic of today discussion. Stackblitz it an online VS Code IDE for Angular, React, and a few more others are supported. This is designed to run web pack and vs code inside your browser at blazing fast speeds. Eric and Albert dive into the many different advantages and services available by StackBlitz and thinker.io. In particular, we dive pretty deep on:Similarities and differences to Heroku System JS Stacklets Testing and creating an in-browser system file systemCreating a type of VS Code experience, Working Off Line Updating of the StackletsDeployment tools or exporting Hot ReloadingIntegrated terminalsMonacoLanguage Services How do you architect this implementation The innovation of browsersGuy Bedford Financing vs. Chipotle Burritos Will this product in the future cost moneyLinksthinkster.iohttps://medium.com/@ericsimons/stackblitz-online-vs-code-ide-for-angular-react-7d09348497f4@stackblitz stackblitz.com PicksAimeePromises Series by Andrew Del PreteCrossfit JoeWholesome MemeSara CooperCharlesPivotal Tracker MatterMost asana.comZapierEric realworld.io David East Albert thinkster.ioThing ExplainerSpecial Guests: Albert Pai and Eric Simons . Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.
26 Syys 201751min

JSJ 279: ES Modules in Node Today! with John-David Dalton
Tweet this EpisodeJohn-David Dalton is probably best known for the Lodash library. He's currently working at Microsoft on the Edge team. He makes sure that libraries and frameworks work well in Edge.The JavaScript Jabber panel discusses the ECMAScript module system port to Node.js. John wanted to ship the ES module system to Node.js for Lodash to increase speed and decrease the disk space that it takes up. This approach allows you to gzip the library and get it down to 90 kb.This episode dives in detail into:ES Modules, what they are and how they workThe Node.js and NPM package delivery ecosystemModule loaders in Node.jsBabel (and other compilers) versus ES Module Loaderand much, much more...Links:LodashES Module Loader for NodeNodeCommonJSBabelTypeScriptFlowTypeMicrosoftESM Blog PostMeteorReifyESM SpecPhantomJSzlib module in NodeAWS LambdaNPMWebpackRollupJohn-David Dalton on TwitterPicks:Cory:Trending Developer SkillsThe Devops HandbookAimee:NodevemberES Modules in Node Today (blog post)Dating is DeadAaron:Ready Player One trailer breakdownJim Jefferies ShowI Can't Make This Up by Kevin HartWork with Aaron at SaltStackChuck:Angular Dev SummitZohoCRMWorking on Cars - Therapeutic working with your hands doing physical workJohn:TC39 Proposal for Optional ChainingToyBox 3D PrinterSpecial Guest: John-David Dalton. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.
19 Syys 201757min

JSJ 278 Machine Learning with Tyler Renelle
Tweet this EpisodeTyler Renelle is a contractor and developer who has worked in various web technologies like Node, Angular, Rails, and much more. He's also build machine learning backends in Python (Flask), Tensorflow, and Neural Networks.The JavaScript Jabber panel dives into Machine Learning with Tyler Renelle. Specifically, they go into what is emerging in machine learning and artificial intelligence and what that means for programmers and programming jobs.This episode dives into:Whether machine learning will replace programming jobsEconomic automationWhich platforms and languages to use to get into machine learningand much, much more...Links:Raspberry PiArduinoHacker NewsNeural Networks (wikipedia)Deep MindShallow AlgorithmsGenetic AlgorithmsCrisper gene editingWixthegrid.ioCodeschoolCodecademyTensorflowKerasMachine Learning GuideAndrew Ng Coursera CoursePythonRJavaTorchPyTorchCaffeScikit learnTensorfireDeepLearn.jsThe Singularity is Near by Ray KurzweilTensorforceSuper Intelligence by Nick BostromPicks:AimeeInclude mediaNodevemberPhone casesAJData SkepticReady Player OneJoeEverybody LiesTylerEx MachinaPhilosophy of Mind: Brains, Consciousness, and Thinking MachinesSpecial Guest: Tyler Renelle. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.
12 Syys 201748min

JSJ BONUS: Web Apps on Linux with Jeremy Likness and Michael Crump
Tweet this episodeJSJ BONUS: Web Apps on Linux with Jeremy Likness and Michael CrumpIn this episode Aimee Knight and Charles Max Wood discuss Microsoft's Web Apps on Linux offering with Jeremy Likness and Michael Crump.[00:37] Michael Crump IntroductionMichael is on the developer experience team for Azure.[00:52] Jeremy Likness IntroductionJeremy is on the cloud developer advocacy team. Their mission is to remove friction and support developers and work with teams to build a positive experience.The NodeJS team is headed up by John Papa. They have teams around the world and involved in many open source communities.They're focused on building documentation and creating great experiences[02:54] What is it about Azure that people should be getting excited about?Azure is a huge platform. It can be overwhelming. They're trying to help you start with your problem and then see the solution as it exists on Azure.Azure is growing to embrace the needs of developers as they solve these problems.The experience is intended to be open and easy to use for any developer in any language on any platform. It allows you to work in whatever environment you want.Standing up applications in production is tough. Azure provides services and facilities (and interfaces) that make it easy to manage infrastructure.You don't have to be an operations expert.Chuck mentions this messaging as he heard it at Microsoft Connect() last year.It's not about bringing you to .NET. It's about making it easy where you're at.Aimee adds that as a new-ish person in the community and Azure excites her because the portal and tutorials are easy to follow for many new programmers.A lot of these features are available across command lines, tools, and much more.The documentation is great. See our interview with Dan Fernandez on the Microsoft Docs. [12:04] Web Apps on LinuxWeb application as a service offering from Microsoft. I don't need to worry about the platform, just what's different about my application.Web Apps has traditionally been on Windows. Web Apps on Linux is in preview.You can choose the size of your infrastructure. You only get billed for what you use and can scale up.Setting up multiple servers, managing synchronization and load balancing is a pain. Web Apps gives you a clean interface that makes this management easy.You can also scale across multiple datacenters around the world.[15:06] Why Linux? What's hard about Windows?Node was originally created on Linux and many tools run nicely on Linux. It was later ported to Windows.The toolchains and IDE's and build processes is in an ecosystem that is targeted more toward Linux than Windows.This allows people to work in an environment that operates how they expect instead of trying to map to an underlying Windows kernel.Aimee gives the example of trying to set up ImageMagick on Windows.Web Apps on Linux also allows you to build integrations with your tools that let you build, test, and deploy your application automatically.[19:12] Supported RuntimesWeb Apps on Linux supports Node, PHP, Ruby, and .NET Core.You can run a docker container with Node up to 6.x. If you want Node 7.x and 8.x you can create your own Docker container.Web Apps on Linux is build on Docker.The containers also have SSH, so developers can log into the docker container and troubleshoot problems on the container.If you can build a container, you can also run it on this service.At certain levels, there's automatic scaling.[22:06] Consistency between containers? Shared ownership of state or assetsIt depends on how you build your app. The Docker containers have a shared storage where all the containers have access to the same data and state.There's a system called kudu that makes this really simple.You can also pull logs across all systems.You can also use SSH in the browser[25:23] What's painful about Linux and containers?How is the application built and how does it manage state so that you can isolate issues.If you have 20 containers, can you connect to the right one.It's up to you to manage correlation between containers so you can find the information you need.Knowing your traffic and understanding what to do to prepare for it with scaling and automation is sometimes more art than science.[28:28] How should you manage state?A lot of these systems lend themselves to running stateless, but you don't want to run mongodb on each container versus running one mongodb instance that everything attaches. You want a common place to store data for the entire app for shared state.[30:34] CosmosDB (was DocumentDB)It's an API equivalent to MongoDB. It's a database as a service and you can connect your containers to the CosmosDB in Azure using your portal to make it super easy.You may need to open up some firewall rules, but it should be pretty straightforward.[34:14] Third Party Logging Management AppsAzure has a service that provides metrics (Application Insights) and a logging service. Many other companies use elasticsearch based solutions that solve some of these problems as well.[36:06] How do people use Web Apps on Linux?Companies building new applications many times want to run without managing any infrastructure. So, they use Azure Functions, and other services on Azure.Lift and shift: Take a virtual machine and change it into a web app container that they can run in the cloud. They also move from SQL Server on a server to SQL Server on the cloud. Moving from hosted MongoDB to CosmosDB.You can also use any images on DockerHub.[40:06] Continuous Integration and Continuous DeploymentWhether you're using a private registry or cloud registry. When you publish a new image, it'll use a webhook to pull the custom image and deploy it. Or to run it through Continuous Integration and then deploy it without any human interaction.Chuck mentions the case when you haven't logged into a server for a while, there's a huge backlog of system updates. Updating your container definitions makes upkeep automatic.[42:02] Process files and workers with PM2 formatYou can set up instances to run across cores with the PM2 definitions. You can also make it run various types of workers on different containers.Why did you use PM2? What other uses are there for this kind of setup?You can tell it which processes to start up on boot. You can also have it restart processes when a file is changed, for example, with a config file you can have it restart the processes that run off that config file.[45:38] How to get startedGetting started with Nodedocs.microsoft.comTrial account with a few hundred dollars in Azure credit.Michael's Linksmichaelcrump.net@mbcrumpgithub.com/mbcrumpJeremy's Linksbit.ly/coderblog@jeremyliknessgithub/jeremyliknessPicksAimeeHaving a little bit of mindfulness while waiting on code and tests to run.JoeOzark on NetflixStar Wars: Rogue OneChuckTravelers on NetflixJeremyOzark filming in Woodstock, GAAutonomous Smart DeskLED light stripsMichaelConference Call BingoLife (Movie)Get Out (Movie)Special Guests: Jeremy Likness and Michael Crump. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.
12 Syys 201759min

JSJ 277: Dojo 2 with Dylan Schiemann and Kitson Kelly
JSJ 277: Dojo 2 with Dylan Schiemann and Kitson KellyThis episode of JavaScript Jabber features panelists Aimee Knight, Cory House, and Charles Max Wood. They talk with Dylan Schiemann and Kitson Kelly about Dojo 2.[00:02:03] Introduction to Dylan SchiemannDylan is the CEO at Sitepen and co-founder of the Dojo Toolkit.[00:02:22] Introduction to Kitson Kitson is the CTO at Sitepen and project lead for Dojo 2.[00:02:43] Elevator Pitch for DojoDojo 1 has been around forever. Started back in 2004 as a way to solve the challenge of "I want to build something cool in a browser." Promises and web components were inspired by or created by Dojo. It's been a huge influence on the web development community.Dojo 2 is a ground up re-write with ES 2015, TypeScript and modern API's. It's a modernized framework for Enterprise applications.[00:04:29] How is Dojo different from other frameworks?There's a spectrum: small libraries like React with an ecosystem and community of things you add to it to Angular which is closer to the MV* framework with bi-directional data binding. Vue lands somewhere in the middle. Dojo 2 is also somewhere in the middle as well. It's written in TypeScript and has embraced the TypeScript experience.[00:06:00] Did the Angular 2 move influence the Dojo 2 development and vice-versa?Dojo 2 had moved to TypeScript and 2 days later Angular announced that they were going to TypeScript. Angular also moved very quickly through their BETA phase, which caused some challenges for the Angular community.With Dojo 2, they didn't start the public discussion and BETA until they knew much better what was and wasn't going to change. They've also been talking about Dojo 2 for 6 or 7 years.The update was held up by adoption of ES6 and other technologies.Dojo 1 was also responsible for a lot of the low-level underpinning that Angular didn't have to innovate on. Dojo 2 was built around a mature understanding of how web applications are built now.People doing Enterprise need a little more help and assistance from their framework. Dojo provides a much more feature rich set of capabilities.Angular could have pushed much more of TypeScript's power through to the developer experience. Dojo much more fully adopts it.It's also easier if all of your packages have the same version number.Call out to Angular 4 vs Angular 2.[00:12:44] AMD ModulesWhy use AMD instead of ES6 modules?You can use both. Dojo 2 was involved in the creation of UMD. James Burke created UMD while working on Dojo.ES6 modules and module loading systems weren't entirely baked when Dojo 2 started to reach maturity, so they went with UMD. It's only been a few months since Safari implemented the ES6 module system. Firefox and friends are still playing catchup.The Dojo CLI build tool uses webpack, so it's mostly invisible at this point.So, at this point, should I be using UMD modules? or ES6? Is there an advantage to using AMD?With TypeScript you'd use ES6 modules, but UMD modules can be loaded on the fly.[00:16:00] Are you using Grunt?Internally, for tasks we use Grunt. But for users, we have a CLI tool that wraps around Webpack.For package builds and CI, Grunt is used.[00:18:30] What is the focus on Enterprise all about?There are a lot of different challenges and complexities to building Enterprise apps. Dojo was the first framework with internationalization, large data grids, SVG charts, etc. Dojo has spend a long time getting this right. Many other systems don't handle all the edge cases.Internationalization in Angular 2 or 4 seems unfinished.Most Dojo users are building for enterprises like banks and using the features that handle large amounts of data and handle those use cases better.[00:21:05] If most application frameworks have the features you listed, is there a set of problems it excels at?The Dojo team had a hard look at whether there was a need for their framework since many frameworks allow you to build great applications. Do we want to invest into something like this?React has internationalization libraries. But you'll spend a lot of time deciding which library to use and how well it'll integrate with everything else. A tradeoff in decision fatigue.In the Enterprise, development isn't sexy. It's necessary and wants to use boring but reliable technology. They like to throw bodies at a problem and that requires reliable frameworks with easily understood decision points.Producing code right is a strong case for TypeScript and they pull that through to the end user.Many frameworks start solving a small set of problems, become popular, and then bolt on what they need to solve everything else...Dojo tried to make sure it had the entire package in a clear, easy to use way.You can build great apps with most of the big frameworks out there. Dojo has been doing this for long enough that they know where to optimize for maintainability and performance.[00:29:00] Where is Dojo's sweet spot? https://www.sitepen.com/blog/2017/06/13/if-we-chose-our-javascript-framework-like-we-chose-our-music/The biggest reason for using Dojo over the years is the data grid component.They also claim to have the best TypeScript web development experience.You may also want a component based system with the composition hassles of React.The composability of components where one team may write components that another uses is a big thing in Dojo where one person doesn't know the entire app you're working on.Theming systems is another selling point for Dojo.[00:34:10] Ending the framework warsTry Dojo out and try out the grid component and then export it to your Angular or React app.There are a lot of frameworks out there that do a great job for the people who use them. The focus is on how to build applications better, rather than beating out the competition.Sitepen has build apps with Dojo 2, Angular, React, Dojo + Redux, etc.[00:39:01] The Virtual DOM used by Dojo2 years ago or so they were looking for a Virtual DOM library that was small and written in TypeScript. They settled on http://maquettejs.org/.The more you deal with the DOM directly, the more complex your components and libraries become.Makes things simpler for cases like server side rendering getting fleshed out in BETA 3.It also allows you to move toward something like React Native and WebVR components that aren't coupled to the DOM.They moved away from RxJS because they only wanted observables and shimmed in (or polyfilled) the ES-Next implementation instead of getting the rest of the RxJS that they're not using.[00:46:40] What's coming next?They're finishing Dojo 2. They're polishing the system for build UI components and architecture and structuring the app. They plan to release before the end of the year.They're also wrapping up development on the Data Grid, which only renders what shows on the screen plus a little instead of millions of rows.[00:49:08] TestingThey've gothttp://theintern.io.It pulls together unit testing, functional testing, continuous integration hooks, accessibility testing, etc.It's rewritten in TypeScript to take advantage of modern JavaScript.The Dojo CLI uses intern as the default test framework.Kitson build the https://github.com/dojo/test-extras library to help with Dojo testing with intern.Dojo Links- http://dojo.io- http://github.com/dojo/meta- http://sitepen.com/blog- https://gitter.im/dojo/dojo2- http://github.com/dylans- http://twitter.com/dylans- http://twitter.com/sitepen- http://twitter.com/dojo- http://github.com/kitsonk- http://twitter.com/kitsonkPicksCory- https://www.farnamstreetblog.com/2017/08/amateurs-professionalsAimee- https://www.eventbrite.com/e/devfest-florida-2017-tickets-31833188925?discount=JSJABBER (use code 'jsjabber')Chuck- Taking some time off- http://amzn.to/2j8VKRJ- https://www.youtube.com/watch?v=vVsXO9brK7MDylan- https://www.zenhub.com/- http://halfstackconf.com- https://www.sitepen.com/blog/2017/06/13/if-we-chose-our-javascript-framework-like-we-chose-our-music/Kitson- https://en.wikipedia.org/wiki/Dunbar%27s_number Special Guests: Dylan Schiemann and Kitson Kelly. Support this podcast at —Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.
6 Syys 20171h 3min

JSJ 276: Vue.js with Maximilian Schwarzmüller
JSJ 276: Vue.js with Maximilian Schwarzmüller This episode of JavaScript Jabber features panelists AJ O’Neal, Aimee Knight, and Charles Max Wood. They talk with special guest Maximilian Schwarzmüller about Vue.js. Tune in to find out more![00:02:21] Introduction to MaximilianMaximilian lives in Germany and is a self-taught web developer. He mostly teaches web development on Udemy and his YouTube channel. Vue.js is just one topic that he teaches. He enjoys teaching and passing on information to other web developers: he believes it is the best thing you can do.[00:03:10] What other courses do you teach?He tries to cover basic web development topics. On Udemy Maximilian teaches Angular and generic JavaScript courses. He also teaches courses on Angular and Node.js. On his YouTube channel he teaches more back-end development and Node.js courses.[00:04:00] Elevator Pitch for Vue.jsVue.js is a new framework that is popular because it is similar to React but also has Angular features. It is easier to learn than React: not everything is in JavaScript and JXS is not included. It is more also flexible and has better performance than Angular 1. Vue.js is easier than Angular 2 both to learn and master. It is still a JavaScript framework, where developers build single page applications or drop in existing applications to enhance views, control parts of a page with JavaScript, get rid of jQuery, and have an easier time creating applications.[00:05:10] What are some challenges people run into as they learn it?If developers are brand new to Vue.js, getting started is easy. It has one thing that a lot of frameworks lack which is awesome documentation. Vuejs.org has a comprehension guide that makes getting started simple. There is a general idea that developers still need to learn of how to structure the app, which is similar to React. Developers have to learn how to build components which is used to build the application. The build template is where everything is controlled with Vue.js. JavaScript code is used as well as template syntax.[00:06:27] So you build the template and then tell it how each part is supposed to behave with JavaScript?Yes. To get started use Vue instances, which are JavaScript objects, control parts of the page and it is marked by an id on an HTML element. Then, write a Vue template, which is basically HTML code where extra features can be used to easily output a variable. It makes it much easier to control via Vue instance. Then add a code, add a method which changes the property of Vue instance. It works together and is easy to build up templates and control your page with Vue. [00:11:12] Vue’s Advantages That depends on the application. Vue.js is easier to learn, which is an advantage when trying to get new developers. The documentation on the website is excellent, which helps when learning the language. Vue also has it’s own single team that develops it’s products, such as the Vue Router and Vue X. It has better performance, but for extremely big projects Angular 4 may be better.[00:13:38] Does Vue have routing in it?Vue.js has its own router. The core Vue team develops it, which is a different package that is downloaded separately. The advantage to this is that if you don’t need the router, then you don’t have it in your bundle but can easily add it. Once it is added it integrates nicely.[00:14:16] How does the Vue router compare to the React router?The Vue router offers the same features as the React router: nested routes, passing parameters, route guards, etc. The Vue router integrates nicely into the Vue package. It also injects into every component you have and is very simple. All that has to be done is just to execute one line of code and then the router is in the project.[00:17:10] How often is Vue.js upgraded and how hard is it to keep up?Vue.js only has two versions. Upgrading from Vue 1 to Vue 2 is easy. The base syntax and framework is still the same, you just need to adjust and move on. Since Vue 2 they released bigger upgrades. There so far haven’t been any issues upgrading, they have added new features, and still use the old code.[00:19:09] What is the feature with Vue as far as adoption goes?It is hard to predict but there are indicators that Vue.js has a good future. Vue.js probably will not overtake Angular but it is becoming important for companies in Asia, which is an important market. They have developed an Ionic version of Vue.js. There has also been an ongoing trend on GitHub.[00:21:20] Why do we keep having new frameworks and versions?The language of JavaScript itself is seeing rapid development. New features have been added, new web technologies developed, etc. One reason is that developers do more on the web. They want easier ways of building applications. There is no perfect framework so there has to be tradeoffs between the frameworks. There is no perfect solution for every application so need a framework for every application.[00:23:16] What is left undone in Vue.js?It is complete as far as something can be complete. Developers are working on service rendering to improve search engine optimization and initial rendering performance. They are also working on progress web app support. [00:28:02] What drives the way that Vue grows?There is simplicity in their documentation. While the documentation is simple, the framework is also easy to learn. Maximilian believes that the reason Vue.js took off is because the documentation and framework work together nicely.[00:31:19] What is going to keep Vue around?The support is not based on corporation, but there is an Asian company that is developing a framework that uses Vue to with their own product. Because of this, can draw an assumption that they will keep Vue.js around. Vue.js also has a strong community and core team, giving it a good support system.[00:34:15] What are people using if they want to use Native Apps but they want to use Vue?They are having a hard time right now. Frameworks for Quasar and Weex are in the early stages. A Vue.js app needs to be built but there are packages that are working in that direction.[00:37:25] How do you structure your Udemy courses and what do you think of that as a whole?Maximilian started teaching Udemy courses about one and a half years ago. He really enjoys teaching. Each course follows a similar pattern. He starts with a rough topic, researches the topic to see what is in demand, and builds a course around projects. He then fits all the things he wants to teach into the project, plans the course curriculum, records and edits the lecture videos, and then finally releases the course.[00:39:22] What do you get the most questions about with your Vue course?Questions are mixed. Students dive into the course quickly but then pause. Most questions are about the basics. They usually have something to do with the first few sections of the course or setup problems.Picks AJ: Broke Eatery Dream DinnersAimee:Julie Evans blog NodevemberCharles:The Ketogenic Diet2 Keto Dudes Podcast Max:Nuxt.js Framework Slack “Chat with yourself” ChannelLinksOnsen UI for VueTwitterYoutubehttps://academind.com/Utemy Vue.js Course Special Guest: Maximilian Schwarzmüller. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.
29 Elo 201750min

JSJ 275: Zones in Node with Austin McDaniel
JSJ 275: Zones in Node with Austin McDanielThe panel for this week on JavaScript Jabber is Cory House, Aimee Knight, and Charles Max Wood. They speak with special guest Austin McDaniel about Zones in Node. Tune in to learn more about this topic![00:01:11] Introduction to Austin Austin has worked in JavaScript for the past ten years. He currently works in Angular development and is a panelist on Angular Air. He has spent most of his career doing work in front-end development but has recently begun working with back-end development. With his move to back-end work he has incorporated front-end ideas with Angular into a back-end concept.[00:02:00] The Way it WorksNodeJS is an event loop. There is no way to scope the context of a call stack. So for example, Austin makes a Node request to a server and wants to track the life cycle of that Node request. Once deep in the scope, or deep in the code, it is not easy to get the unique id. Maybe he wants to get the user from Passport JS. Other languages – Python, Java – have a concept called thread local storage. They can associate context with the thread and throughout the life cycle of that request, he can retrieve that context.There is a TC39 proposal for zones. A zone allows you to do what was just described. They can create new zones and associate data with them. Zones can also associate unique ids for requests and can associate the user so they can see who requested later in the stack. Zones also allow to scope and create a context. And then it allows scoping requests and capturing contacts all the way down.[00:05:40] Zone UsesOne way Zone is being used is to capture stack traces, and associating unique ids with the requests. If there is an error, then Zone can capture a stack request and associate that back to the request that happened. Otherwise, the error would be vague.Zones are a TC39 proposal. Because it is still a proposal people are unsure how they can use it. Zones are not a new concept. Austin first saw Zones being used back when Angular 2 was first conceived. If an event happened and they wanted to isolate a component and create a scope for it, they used Zones to do so. Not a huge fan of how it worked out (quirky). He used the same library that Angular uses in his backend. It is a specific implementation for Node. Monkey patches all of the functions and creates a scope and passes it down to your functions, which does a good job capturing the information.[00:08:40] Is installing the library all you need to get this started?Yes, go to npminstallzone.js and install the library. There is a middler function for kla. To fork the zone, typing zone.current. This takes the Zone you are in and creates a new isolated Zone for that fork. A name can then be created for the Zone so it can be associated back with a call stack and assigned properties. Later, any properties can be retrieved no matter what level you are at.[00:09:50] So did you create the Zone library or did Google?The Google team created the Zone library. It was introduced in 2014 with Angular 2. It is currently used in front-end development.[00:10:12] Is the TC39 proposal based on the Zone library?While Austin has a feeling that the TC39 proposal came out of the Zone library, he cannot say for sure.[00:10:39] What stage is the proposal in right now?Zone is in Stage Zero right now. Zone JS is the most popular version because of its forced adoption to Angular. He recommends people use the Angular version because it is the most tested as it has a high number of people using it for front-end development.[00:11:50] Is there an easy way to copy the information from one thread to another?Yes. The best way would probably be to manually copy the information. Forking it may also work.[00:14:18] Is Stage Zero where someone is still looking to put it in or is it imminent? Austin believes that since it is actually in a stage, it means it is going to happen eventually but could be wrong. He assumes that it is going to be similar to the version that is out now. Aimee read that Stage Zero is the implementation stage where developers are gathering input about the product. Austin says that this basically means, “Implementation may vary. Enter at your own risk.”[00:16:21] If I’m using New Relic, is it using Zone JS under the hood? Austin is unsure but there something like that has to be done if profiling is being used. There has to be a way that you insert yourself in between calls. Zone is doing that while providing context, but probably not using Zone JS. There is a similar implementation to tracing and inserting logging in between all calls and timeouts.[00:17:22] What are the nuances? Why isn’t everybody doing this?Zone is still new in the JavaScript world, meaning everyone has a ton of ideas about what should be done. It can be frustrating to work with Zone in front-end development because it has to be manually learned. But in terms of implementation, only trying to create a context. Austin recommends Zone if people want to create direct contacts. The exception would be 100 lines of Zone traces because they can get difficult.Another issue Austin has is Node’s native basic weight. Weight hooks are still up in the air. The team is currently waiting on the Node JS community to provide additional information so that they can finish. Context can get lost sometimes if the wrong language is used. He is using Typescript and doesn’t have that problem because it is straightforward.[00:21:44:] Does this affect your ability to test your software at all?No, there have not been any issues with testing. One thing to accommodate for is if you are expecting certain contexts to be present you have to mock for those in the tests. After that happens, the tests should have no problems.PicksCory:Apple AirPods Aimee:BlackmillUnderstanding Zones Charles:Classical Reading Playlist on AmazonBuilding stairs for his dadAngular Dev Summit Austin:NGRX Library Redux LinksTwitterGitHubSpecial Guest: Austin McDaniel. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.
22 Elo 201731min





















