Preact, Performance, and the Future of Lightweight Frontends with Ryan Christian -JSJ 683

Preact, Performance, and the Future of Lightweight Frontends with Ryan Christian -JSJ 683

In this episode of JavaScript Jabber, we sit down with Ryan Christian, a core maintainer of Preact, to talk all things lightweight, performant, and practical in the JavaScript world. If you’ve ever wondered what makes Preact tick, why it continues to gain traction, and how it compares to the heavyweight champ React—this episode is for you.

We get into the nitty-gritty of what separates Preact from React, not just in size but in philosophy. Ryan sheds light on how Preact is engineered for performance, why it's not just a “React clone,” and how its compatibility layer makes it easy to drop into existing projects. Plus, we explore signals, class components, and what the upcoming Preact v11 has in store.

Episode Highlights
  • [1:23] - Meet Ryan Christian: Preact core maintainer and open-source champion
  • [4:10] - What is Preact, and how does it stack up against React?
  • [10:15] - Preact’s tiny footprint and why size still matters
  • [14:47] - Widgets, adoption, and why Preact powers ~6% of major sites
  • [20:01] - Understanding Preact’s compatibility layer (PreactCompat)
  • [25:40] - Hooks, signals, and modularity: build what you need, nothing more
  • [31:10] - Why Preact won’t follow React into full-stack territory
  • [37:22] - Server components, suspense, and what Ryan recommends instead
  • [43:35] - Frameworks that pair well with Preact: Astro, Fresh, and Remix
  • [47:55] - Sneak peek at Preact v11 and why it sticks with “classic” React experience
🔗 Links & Resources
  • Preact Official Website
  • Astro
  • Fresh by Deno
  • Remix
  • Jason Miller’s VTalk on Signals (referenced)
  • Google CrUX Report – for framework usage stats


Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

Jaksot(731)

JSJ 406: Security in Node

JSJ 406: Security in Node

Today the panel is talking about security features that are being added to Node 13. AJ talks about the background and what he’s working with Let’s Encrypt. He talks about changes that Node has made to the TLS module. TLS is a handshake that happens between a client and a server. They exchange certificates, generate some random numbers to use for encryption, and TLS handles the encryption. The move to HTTP/2 is all about fixing legacy bugs and legacy features from the SSL days and reducing the number of handshakes.AJ talks about the difference between TLS and HTTPS. While TLS reduces the handshakes between client and server, HTTPS is just HTTP and has no knowledge that TLS is going on. HTTP/2 is more baked in as both encryption and compression are part of the specification and you get it automatically. HTTP/2 is also supposed to be faster because there’s fewer handshakes, and you can build heuristic based web servers. Since browsers have varying degrees of compatibility, a smart HTTP/2 server will classify the browser and anticipate what files to send to a client based on behavior and characteristics without the client requesting themA lot of these new features will be built into Node, in addition to some other notable features. First, there will now be set context on the TLS object. Second, if you’re connected to a server, and the server manages multiple domains, the certificate will have multiple names on it. Previously, each different server name had a different network request, but now a .gitcertificate will let you get all the metadata about the certificate, including the primary domain and all the secondary domains and reuse the connections. These new features are a great improvement on the old Node. Previously, the TLS module in Node has been an absolute mess. These are APIs that have been long neglected, and are long overdue core editions to Node. Because of these additions, Node Crypto has finally become usable. HTTP/2 is now stable, usable, and has backwards compatable API, and a dictionary of headers to make it more efficient in compression.The conversation turns back to certificates, and AJ explains what a certificate is and what it represents. A certificate has on it a subject, which is a field which contains things like common name, which in the case of HTTPS is the server name or host name. then it will have subject alternative names (SAN), which will have a list of other names that are valid on that certificate. Also included on the certificate is the name of the authority that issued the certificate. AJ talks about some of the different types of certificates, such as DV, OV, and EV certificates. They differentiate between encryption and hashing. Hashing is for verifying the integrity of data, while encryption can be used either as signing to verify identity or to keep data owned privately to the parties that are part of the connection. Encryption does not necessarily guarantee that the data is the original data. The show concludes with AJ talking about how he wants to make encryption available to the average person so that everyone can share securely. PanelistsSteve EdwardsAJ O’NealCharles Max WoodSponsorsTideliftSentry use the code “devchat” for 2 months free on Sentry’s small plan Ruby RoguesLinksLet’s EncryptGreenlockHTTP/2Node.jsNode CryptoJWKLZMAGzipBroccoli.jsHTTPSGCMASN.1OWASP listjwt.ioDiffie Hellman Key ExchangeKhana Academy Diffie-Hellman Key Exchange pt.2 Follow DevChatTV on Facebook and Twitter PicksSteve Edwards:Panasonic SD-YD250 bread machineAJ O’Neal:Greenlock v.3Samsung Evo 4 TOB paired with 2012 Macbook Pro Dave Ramsey on Christian Healthcare MinistriesCharles Max Wood: Velcro strapsMac Pro Upgrade GuideSupport 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.

5 Marras 20197min

JSJ 405: Machine Learning with Gant Laborde

JSJ 405: Machine Learning with Gant Laborde

Gant Laborde is the Chief Innovation Officer of Infinite Red who is working on a course for beginners on machine learning. There is a lot of gatekeeping with machine learning, and this attitude that only people with PhDs should touch it. In spite of this, Gant thinks that in the next 5 years everyone will be using machine learning, and that it will be pioneered by web developers. One of the strong points of the web is experimentation, and Gant contrasts this to the academic approach. They conversation turns to Gant’s course on machine learning and how it is structured. He stresses the importance of understanding unicode, assembly, and other higher concepts. In his course he gives you the resources to go deeper and talks about libraries and frameworks available that can get you started right away. His first lesson is a splashdown into the jargon of machine learning, which he maps over into developer terms. After a little JavaScript kung fu, he takes some tools that are already out there and converts it into a website.Chris and Gant discuss some different uses for machine learning and how it can improve development. One of the biggest applications they see is to train the computers to figure monotonous tasks out while the human beings focus on other projects, such as watching security camera footage and identifying images. Gant restates his belief that in the next 5 years, AI will be everywhere. People will grab the boring things first, then they will go for the exciting things. Gant talks about his creation NSFW.js, an open source train model to help you catch indecent content. He and Chris discuss different applications for this technology.Next, the panel discusses where machine learning can be seen in everyday life, especially in big companies such as Google. They cite completing your sentences in an email for you as an example of machine learning. They talk about the ethics of machine learning, especially concerning security and personal data. They anticipate that the next problem is edge devices for AI, and this is where JavaScript really comes in, because security and privacy concerns require a developer mindset. They also believe that personal assistant devices, like those from Amazon and Google, will become even more personal through machine learning. They talk about some of the ways that personal assistant devices will improve through machine learning, such as recognizing your voice or understanding your accent. Their next topic of discussion is authenticity, and how computers are actually incredibly good at finding deep fakes. They discuss the practice of placing passed away people into movies as one of the applications of machine learning, and the ethics surrounding that. Since developers tend to be worried about inclusions, ethics, and the implications of things, Gant believes that these are the people he wants to have control over what AI is going to do to help build a more conscious data set. The show concludes with Gant talking about the resources to help you get started with machine learning. He is a panelist on upcoming DevChat show, Adventures in Machine Learning. He has worked with people with all kinds of skill sets and has found that it doesn’t matter how much you know, it matters how interested and passionate you are about learning. If you’re willing to put the pedal to the metal for at least a month, you can come out with a basic understanding. Chris and Gant talk about Tensorflow, which helps you take care of machine learning at a higher level for fast operations without calculus. Gant is working on putting together a course on Tensorflow. If you’re interested in machine learning, go to academy.infinite.red to sign up for Gant’s course. He also announces that they will be having a sale on Black Friday and Cyber Monday.PanelistsChristopher BuechelerWith special guest: Gant LabordeSponsorsReact Round UpSentry use the code “devchat” for 2 months free on Sentry’s small plan Adventures in AngularLinksMachine Learning: How To go from Zero to HeroNSFW.jsTensorflow.jsPyTorchKerasAcademy.infinite.redGantlaborde.com  Follow DevChatTV on Facebook and Twitter PicksChristopher Buecheler:Next.jsBig Wreck, But For The SunGant Laborde: Nicornot.com Free 5 day mini course on academy.infinite.red Special Guest: Gant Laborde. 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.

31 Loka 201942min

JSJ 404: Edge on Chromium with Chris Heilmann

JSJ 404: Edge on Chromium with Chris Heilmann

Guests Chris heilmann and Zohair Ali are developers for Microsoft working on the Edge project. Today they are talking about Edge on Chromium and the future of developer tools. Edge will now be built in Chromium rather than being its own engine, aligning it more with what is being used on the open web right now. The Edge team wanted to seize the opportunity to bring something into the Chromium project based on the needs of real users and contribute to the open source web. Edge on Chromium won’t be limited to Windows 10 either, but will be available on Mac, Windows 7, and Windows 8. This project is still in beta with no set release date, so the Edge team is looking for people to test it out on Mac and tell them how it works. Chris and Zohair talk about the different parts of a web browser and what distinguishes Chrome from Chromium.  Chromium is not just a platform, it’s an entire browser that you can install. Google adds a bunch of Google services to Chromium, such as being able to sign into your Google account,  and that’s how you get Google Chrome. Similarly, the new Edge adds its own features on top of Chromium, so you can sign into your Microsoft account. By now the browser engines are so similar to each other that the users are looking for the user experience, interface, and services around it, so it made more sense for the Edge team to contribute to Chromium than to maintain their own engine and help it improve.Chris and Zohair talk about some of the features in Edge on Chromium. One service they’re particularly excited about is the Collections feature, where you can drag images, text, etc into Collections and export it to Excel or Word. Collections was inspired by what users need, and they talk about some of the different use cases for it. The new Edge on Chromium will also have an IE mode for products that still require IE 11. If you define what services need IE 11, Edge will open an IE 11 tab within the browser so you will not have to jump between browsers. Unfortunately, this feature is only available on Windows. Edge on Chromium will also offer an integration with VS Code, called Elements for VS Code, which takes part of the developer tools from Edge and puts it inside VS Code. Since the tools are based on Chromium, it stays in the same context all the time so you don’t have to jump back and forth, and you can see the changes live in your browser. This feature is in beta right now and they are looking for people to test it. The Edge team talks about their process for creating tools. They are working on putting their tools into other languages so that they are accessible to more people. They talk about how they want to avoid creating Edge specific tools as much as possible because they want to make it better for everybody. One of their biggest struggles is everybody demands developer tools, but nobody wants to contribute, so they don’t have as much feedback and not as much outside contribution. That’s why they keep calling for people to try out the new Edge on Chromium and give them feedback. They want to make that change more transparent so that they build things that people want. They will have to make some of their own tools, but they make sure that they don’t have any third party dependencies. They mention that all Chrome extensions are compatible with Edge, so if it’s available in the Chrome webstore, you can add it to Edge, you just have to be sure to allow it. They talk about some of the testing tools available. The show concludes with a discussion of the fate of Chakra Node. PanelistsAJ O’NealAimee KnightDan ShapirSteve EdwardsWith special guests: Chris Heilmann and Zohair AliSponsorsTideliftSentry use the code “devchat” for 2 months free on Sentry’s small plan Views on VueLinksChromiumMicrosoft Edge InsiderMicrosoft Chakra CoreElements for VS CodeMS Edge DriverPuppeteer  Follow DevChatTV on Facebook and Twitter PicksAimee Knight:Cypress testing librarySteve Edwards: CSS Tricks Screencast episode 174: Using Local Overrides in DevtoolsDan Shapir:The Chronicles of AmberAJ O’Neal:The Legend of Zelda: Oracle of AgesLover by Taylor SwiftChris Heilmann:The Marvelous Mrs. MaiselTabNinedoesthedogdie.comZohair Ali:Saga graphic novel seriesSpecial Guests: Christian Heilmann and Zohair Ali. 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 Loka 201958min

JSJ 403: Why Developers Need Social Skills with Mani Vaya

JSJ 403: Why Developers Need Social Skills with Mani Vaya

In this episode of JavaScript Jabber, Charles talks about the new direction he has for the company. He wants  to drive people to the point that they have the skills that make people want to hire and work with them, to teach them how to ‘Max out’. Today the panel the skills that developers need to progress in their careers: social skills. The panel talks about their observations from work that the people who advanced and grow in their career were the ones with social skills, not necessarily with technical skills. The company wants to get stuff done, and if your social skills are getting in the way of projects getting done because you can’t work with others, you are not that useful to the company, and you will be stuck in the lower ranks while others who may not have the same technical skills will rise in the ranks because they are pleasant to work with. Mani talks about his personal experience getting laid off for lacking these soft skills. But then he read the book 48 Laws of Power by Robert Green, realized his shortcomings, and started to apply just one lesson from the book. Within 6 months, he was promoted.Mani delves deeper into the first lesson taught in 48 Laws of Power, Never Outshine the Master. Fundamentally, this means that you don’t try to prove in meetings how good you are, or that they’re wrong, or that you think that you are better than them. The more you the aforementioned things, the less likely you will be to get promoted or trusted. Mani talks about how he used to do these things and how it cost him multiple jobs. When he put this lesson into practice, he changed his methods and the boss started to like him, leading to his promotion 6 months later. The panel discusses this lesson and what benefits can come from it. Mani shares another lesson that he learned through the story of a friend trying to get him to invest in his business. After Mani refused to invest multiple times, his friend stopped asking him to invest, but instead asked him for business advice. Eventually, Mani invested in the business because when he saw that his friend was influenced by his advice, it engendered trust between them. The panel agrees that if you want to influence someone, you have to be influenced by them. It is important to treat someone as a person rather than an asset or wallet, and ensure them that their investment is not their end goal. One of the most fundamental social skills that you must be able to like people, because other people can smell manipulation. The panel transitions to talking about the paradoxical nature of social skills and that they are often the opposite of what you think will work in a situation. Unfortunately, there will always be difficult people to work with. To illustrate how to work with difficult people, Mani shares the story of how Gengis Khan was convinced not to destroy a city of artists and engineers by his advisor, Yelu Chucai. Gengis Khan agreed because Yelu Chucai was able to structure his plea in a way that would also benefit Gengis Khan. The conversation shifts to how to conduct an interview to see if a candidate will fit into your team culture. First, you must know what you’re looking for and understand your team culture, and then ask for stories of when they accomplished something in the interview. If every story is all about how they did something and they don’t include other people, then that may indicate their self-centeredness. They discuss the Ben Franklin Effect. For those listeners wondering where to begin with all this self improvement, Mani has read over 2,000 books on business and offers a course on his website, 2000books.com. Mani has teamed up with JavaScript Jabber to offer a special deal to the listeners of this podcast. To get lifetime access to Mani’s courses at a 40% discount, follow the links below. PanelistsSteve EdwardsCharles Max WoodWith special guest: Mani VayaSponsorsReact Native RadioSentry use the code “devchat” for 2 months free on Sentry’s small plan React Round UpLinks48 Laws of Power by Robert Green The 360 Degree Leader by John C. Maxwell The Ben Franklin Effectjavascriptjabber.com/social and 2000books.com 40% off for the first 200 peopleCoupon code: Jabber Follow DevChatTV on Facebook and Twitter PicksSteve Edwards:Rex ChapmanCharles Max Wood:BombBombIndieHackers.com  Stolen bike prankMani Vaya: How I Built This by NPRAs a Man ThinkethSpecial Guest: Mani Vaya. 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.

24 Loka 20191h 9min

JSJ 402: SEO for Developers with Vitali Zaidman

JSJ 402: SEO for Developers with Vitali Zaidman

Vitali Zaidman is a full stack developer who works for WellDone Software Solutions and is currently working on a SEO project. Today’s show is about SEO for developers. SEO stands for search engine optimization, which helps your website appear higher on search engines. SEO has changed a lot in the past 10 years. It has become much more regulated, and the “dirty tricks” of the past will actually penalize you, so it is important to do it properly. Today the best way to promote yourself on Google besides making good content is for developers to optimize the content, make it small, operational, secure, accessible, and operate on mobile. Much of it goes back to using semantic HTML since Google looks at it before looking at the structure of your website, how valuable it is, and how users interact with it. Having good semantics helps Google determine how valuable it is, so semantic HTML should be a top priority. Semantic HTML can also make your site more accessible to users, which will in turn give you a larger audience. The panel talks about some of the challenges of SEO faced by companies. While bigger companies have the privilege of dedicated SEO teams, small companies often lack these specialists. Thankfully, Google has made their guidelines for SEO very accessible and gives you a lot of tools to track your optimization. The panel talks about different methods of SEO, such as including FAQ at the bottom of the web page, optimizing page speed, and image optimization. Structured data like questions and answers enriches the data that is shown for users on the search results page. To score your website’s SEO, Google released the tool PageSpeed Insights, which will assign your website a performance score. Google uses two main tools to track a website’s SEO. First, they use real field data. If you opt in to ‘help improve Chrome’s features and performance’ when you install Chrome, it tracks how fast websites load on your Chrome, and they collect this information to understand how webpages load. It is required that your website has a certain amount of visitors to be tracked and added to the database. Second, Google has their own devices that will check your website. Currently, they are using a Moto G4 to test for mobile access, and a slow internet connection. Because of this, it is pretty easy to get a good score on desktop, but difficult to get a good score on mobile. The technology that drives all this is called Lighthouse. Overall, performance is the main thing users look for, so aim for good performance and fast websites. The panel discusses the correlation between performance and SEO. For example, Fox News and CNN are two of the top search results for ‘news’, but they have a dismal Google PSI score. They conclude that performance shouldn’t be ignored, but be careful about directly correlating performance and SEO. They also caution against getting obsessed over certain aspects of SEO by themselves. PanelistsDan ShapirAimee KnightCharles Max WoodWith special guest: Vitali ZaidmanSponsorsTideliftSentry use the code “devchat” for 2 months free on Sentry’s small plan Elixir MixLinksSEOJSONGoogle Webmaster guidelinesGoogle PageSpeed InsightsChrome CrUXLighthouseHere's How the Google Speed Update Will Impact Your SiteSEO for Developers - A Quick OverviewGoogle Quality Guidelines Follow DevChatTV on Facebook and Twitter PicksAimee Knight:Spotify CLIDan Shapir:Chrome Dev Summit 2019 Dan Shapir on TwitterThe Anubis GatesCharles Max Wood:St. George MarathonVitali Zaidman: Vitali’s websiteArzamas Academy Follow Vitali on Medium and TwitterSpecial Guest: Vitali Zaidman . 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 Loka 201938min

JSJ 401: Hasura with Tanmai Gopal

JSJ 401: Hasura with Tanmai Gopal

Tanmai is one of the founders at Hasura. Hasura gives you instant graphQL APIs on top of a Postgres database. The eventual idea is to make data access secure and easy. Tanmai explains the challenges of doing this in the cloud. He talks about some of the difficulties with the tooling around using GraphQL and its bias towards working well with a monolith. Since GraphQL is basically a shared type system that describes your API, that means all your types need to be in the same code base. This is at odds with the folks who want to do microservices and serverless functions, because since their API is split across multiple services they have different types, and forcing these types to work together defeats the purpose of using microservices. Also, storing state across requests doesn’t work well with serverless and cloud native stuff. In short, learning to live without state is one of the general challenges with going serverless. This is where Hasura comes into play, and Tanmai explains how it works. Hasura is metadata driven, and each instance of the server can leverage multiple calls and exhibit a high amount of concurrency. It’s designed to be a little more CPU bound than memory bound, which means that configuring auto scaling on it is very easy and allows you to utilize the elasticity of cloud native applications. Tanmai clarifies his usage of the word ‘cloud native’, by which he means microservices. He explains that when you have a metadata based engine, this metadata has a language that allows you to bring to bring in types from multiple upstream microservices, and create a coherent graphQL API on top of that. Hasura is a middle man between the microservices and the consumer that converts multiple types into a single coherent graphQL API.Next, Tanmai explains how Hasura handles data fetching and a high volume of requests. They also invented PostgresQL, RLS-like semantics within Hasura. He explains the process for merging your microservices into a single graphQL interface. Back on data fetching, Tanmai explains that when the product is an app, preventing an overabundance of queries becomes easier because during one of the staging processes that they have, they extract all of the queries that the app is actually making, and in the production version it only allows the queries that it has seen before. Hasura is focused on both the public interface and private use cases, though private is slightly better supported. Tanmai talks about the customizations available with Hasura. Hasura supports two layers. One is an aliasing layer that lets you rename tables, columns, etc as exposed by PostgresQL. The other is a computer column, so that you can add computer columns so you can extend the type that you get from a data model, and then you can point that to something that you derive. The panelist discusses the common conception of why it is a bad idea to expose the data models to the frontend folks directly. They discuss the trend of ‘dumbing down’ available tooling to appeal to junior developers, at the cost of making the backend more complicated. They talk about some of the issues that come from this, and the importance of tooling to solve this concern. Finally, Tanmai talks about the reasons to use Hasura over other products. There are 2 technologies that help with integrating arbitrary data sources. First is authorization grammar, their version of RLS that can extend to any system of types and relationships, The second is the data wrapper, part of the compiler that compiles from the graphQL metadata AST to the actual SQL AST. That is a generic interface, so anyone can come in and plug in a Haskell module that has that interface and implement a backend compiler for a native query language. This allows us to plug in other sources and stitch microservices together. The show concludes with Tanmai talking about their choice to use Haskell to make Hasura. PanelistsAJ O’NealDan ShapirSteve EdwardsCharles Max WoodWith special guest: Tanmai GopalSponsorsAdventures in DevOpsSentry use the code “devchat” for 2 months free on Sentry’s small plan The Dev Ed PodcastLinksHasuraHaskellNode.jsCloud NativeMicroservices PostGraphile  Postgres PostgresQL RLSSwaggerJAMstackSoapRest Follow DevChatTV on Facebook and Twitter PicksAJ O’Neal:The Economic SingularityCapital CitiesGameCube HomebrewDan Shapir:RomaniaJSCampSteve Edwards:Cold Blooded: The Clutter Family MurdersCharles Max Wood:Maxcoders.ioTripItSt. George MarathonVO2 Max appTanmai Gopal:  Follow Tanmai on Twitter @tanmaigoBroken Earth TrilogyThe Three-Body ProblemgraphQL AsiaSpecial Guest: Tanmai Gopal. 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.

17 Loka 20191h 10min

JSJ 400: The Influence of JavaScript Jabber

JSJ 400: The Influence of JavaScript Jabber

JavaScript Jabber celebrates its 400th episode with former host Dave Smith and some other familiar voices. Each of the panelists talks about what they’ve been up to. Dave hasn’t been on the show for 3 years, but he and Jameson Dance have started a podcast called Soft Skills Engineering where they answer questions about the non-technical side of engineering. When he left the show he was the director of engineering on Hire View, and currently he works for Amazon on Alexa. Christopher Buecheler has been on several JSJ, RRU, and MJS episodes. His time is divided between contracting for startups and his own company closebrace.com, a tutorial and resource site for JavaScript developers.  Dan Shapir has also been on JSJ as a guest, and is currently works for Wix doing performance tech. He enjoys speaking at conferences, such as JS Camp in Bucharest, Romania and the YGLF conference. Steve Edwards was previously on MJS 078. He started on Drupal in the PHP world, switched to JavaScript, and then a few years ago he started looking at Vue. Now he does Vue fulltime for ImageWare Systems.As for Charles, his primary focus is the podcasts, since DevChat.tv produces around 20 episodes per week. 5 new shows were started in July, and he talks about some of the challenges that that brought. One of his most popular shows recently was JSJ 389: What makes a 10x Engineer? This helped him realize that he wants to help teach people how to be a successful engineer, so he’s working on launching a new show about it. The panelists share some of their favorite JSJ episodes. They discuss the tendency of JSJ to get early access to these fascinating people when the conversation was just beginning, such as the inventor of Redux Dan Abramov, before their rise to stardom. The talk about the rise in popularity of podcasting in general. They agree that even though JavaScript is evolving and changing quickly, it’s still helpful to listen to old episodes. Charles talks about the influence JavaScript Jabber has had on other podcasts. It has spawned several spinoffs, including My JavaScript Story. He’s had several hosts start their own DevChat.tv shows based off JavaScript Jabber, including Adventures in Angular and The DevEd Podcast. JavaScript Jabber has also been the inspiration for other podcasts that aren’t part of DevChat.tv. There aren’t many podcast companies that produce as many shows as they do and they’re developing their own tools. DevChat.tv moved off of WordPress and is in the process of moving over to Podwrench. Charles talks about all the new shows that have been launched, and his view on ‘competing’ podcasts. Charles is also considering doing an audio drama that happens in a programming office, so if you would like to write and/or voice that  show, he invites you to contact him. The show concludes with the panel talking about the projects they’ve been working on that they want listeners to check out. Christopher invites listeners to check out closebrace.com. He also has plans to write a short ebook on unit testing with jest, considered doing his own podcast, and invites people to check out his fiction books on his website. Dan talks about his involvement with Wix, a drag and drop website service, that recently released a technology called Corvid which lets you write JS into the website you build with Wix. This means you can design your user interface using Wix, but then automate it, add events functionality, etc. Dan is also going to be at the Chrome Dev Summit conference. Dave invites listeners to check out the Soft Skills Engineering podcast, and Charles invites listeners to subscribe to his new site maxcoders.io. Panelists- Dan Shapir- Christopher Buecheler- Steve Edwards- Dave Smith- Charles Max WoodSponsors- https://tidelift.com/- http://sentry.io/ use the code “devchat” for 2 months free on Sentry’s small plan - https://devchat.tv/adventures-in-dotnet/Links- https://devchat.tv/dev-rev/- https://devchat.tv/my-javascript-story/mjs-099-christopher-buecheler/- https://devchat.tv/js-jabber/jsj-338-its-supposed-to-hurt-get-outside-of-your-comfort-zone-to-master-your-craft-with-christopher-buecheler/#viewport- https://devchat.tv/react-round-up/rru-029-christopher-buecheler-getting-ready-to-teach-lessons-learned-from-building-an-84-tutorial-software-course/#viewport- https://devchat.tv/my-javascript-story/mjs-108-dan-shappir/#viewport- https://devchat.tv/js-jabber/jsj-334-web-performance-api-with-dan-shappir/#viewport- https://devchat.tv/js-jabber/jsj-371-the-benefits-and-challenges-of-server-side-rendering-ssr-with-dan-shappir/#viewport- https://devchat.tv/my-javascript-story/mjs-078-steve-edwards/#viewport- https://devchat.tv/js-jabber/179-jsj-redux-and-react-with-dan-abramov/- https://devchat.tv/js-jabber/187-jsj-vue-js-with-evan-you/- https://devchat.tv/js-jabber/jsj-383-what-is-javascript/- https://devchat.tv/js-jabber/jsj-385-what-can-you-build-with-javascript/- https://devchat.tv/js-jabber/jsj-390-transposit-with-adam-leventhal/- https://devchat.tv/js-jabber/jsj-395-the-new-ember-with-mike-north/- https://devchat.tv/js-jabber/220-jsj-teaching-javascript-with-kyle-simpson/- https://devchat.tv/js-jabber/jsj-313-light-functional-javascript-with-kyle-simpson/- https://devchat.tv/js-jabber/124-jsj-the-origin-of-javascript-with-brendan-eich/- https://devchat.tv/js-jabber/073-jsj-react-with-pete-hunt-and-jordan-walke/- https://devchat.tv/js-jabber/jsj-392-the-murky-past-and-misty-future-of-javascript-with-douglas-crockford/- https://player.fm/series/all-javascript-podcasts-by-devchattv/jsj-391-debugging-with-todd-gardner- https://devchat.tv/js-jabber/jsj-389-what-makes-a-10x-engineer/- http://cwbuecheler.com/- https://closebrace.com- https://www.wix.com/corvid  - https://softskills.audio/- https://maxcoders.io/                                                                                                                                                                           Follow DevChatTV on https://www.facebook.com/DevChattv/?__tn__=%2Cd%2CP-R&eid=ARDBDrBnK71PDmx_8gE_IeIEo5SnM7cyzylVBjAwfaOo1ck_6q3GXuRBfaUQZaWVvFGyEVjrhDwnS_tV and https://twitter.com/devchattv?lang=en PicksSteve Edwards:- https://github.com/formio/formioChristopher Buecheler:- https://www.apollographql.com/docs/apollo-server/testing/graphql-playground/- https://twitter.com/TheTimeCowboy Jake Lawrence Charles Max Wood:- https://www.stgeorgemarathon.com/-Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

15 Loka 20191h 10min

JSJ 399:  Debugging with Async/Await with Valeri Karpov

JSJ 399: Debugging with Async/Await with Valeri Karpov

Valeri Karpov is a maintainer on Mongoose, has started a few companies, and works for a company called Booster Fuels. Today’s topic debugging with Async/Await. The panel talks about some of the challenges of debugging with Async. AJ, however, has never encountered the same problems, so he shares his debugging method. Valeri differentiates between .catch vs try...catch, and talks about why he prefers .catch. There are two ways to handle all errors in an async function without leading to an unhandled promise rejection. The first is to wrap the entire body of the async function in a try...catch, has some limitations. Calling an async function always returns a promise, so the other approach is calling .catch on the promise to handle any errors that occur in that function body. One of the key differences is if you return a promise within an async function, and that return promise is wrapped in a try...catch, the catch block won’t get called if that promise is rejected, whereas if you call .catch on the promise that the function returns, you’ll actually catch that error. There are rare instances where this can get tricky and unintuitive, such as where you have to call new promise and have resolve and reject, and you can get unexpected behavior.The panel discusses Valeri’s current favorite JS interview question, which is,  “Given a stream, implement a function called ‘stream to promise’ that, given a stream, returns a promise that resolves to the concatenation of all the data chunks emitted by the stream, or rejects if the stream emits an error event.” It’s really simple to get this qustion right, and really simple to get it wrong, and the difference can be catastrophic. AJ cautions listeners to never use the data event except in the cases Val was talking about, only use the readable event.The conversation turns to the function of a readable event. Since data always pushes data, when you get a readable event, it’s up to you to call read inside the function handler, and then you get back a chunk of data, call read again and again until the read returns null. When you use readable, you are in control and you avoid piling functions into RAM. In addition, the right function will return true or false to let you know if the buffer is full or not. This is a way to mix imperative style into a stream.The next discussion topics are the differences between imperative style and reactive style and how a waits and promises work in a normal four loop. A wait suspends the execution of a function until the promise is resolved. Does a wait actually stop the loop or is it just transpiling like a promise and it doesn’t stop the loop. AJ wrote a module called Batch Async to be not as greedy as promise.all but not as limited as other options.The JavaScript panelists talk about different async iterators they’ve used, such as Babel. They discuss the merits of Babel, especially since baseline Android phones (which a significant portion of the population of the world uses) run UC Browser that doesn’t support Babel, and so a significant chunk of the population of the world. On the other hand, if you want to target a large audience, you need to use Babel.Since frameworks in general don’t handle async very well, the panel discusses ways to mitigate this. They talk about different frameworks like Vue, React, and Express and how they support async functions. They discuss why there is no way for you to actually cancel an async option in an actual case, how complex canceling is, and what you are really trying to solve for in the cancellation process. Canceling something is a complex problem. Valeri talks about his one case where he had a specific bug that required non-generic engineering to solve, and cancelling actually solved something. When AJ has come across cancellation issues, it’s very specific to that use case. The rest of the panelists talk about their experiences with having to cancel something. Finally, they talk about their experience with async generator functions. A generator is a function that lets you enter into the function later. This makes sense for very large or long running data sets, but when you have a bounded items, don’t complicate your code this way. When an async generator function yields, you explicitly need to call next in order for it to pick up again. If you don’t call ‘next’, it’s essentially cancelled. Remember that object.keys and object.values are your friends. PanelistsChristopher BuechelerAJ O’NealCharles Max WoodWith special guest: Valeri KarpovSponsorsThe DevEd PodcastSentry use the code “devchat” for 2 months free on Sentry’s small plan Adventures in DevOpsLinksMongooseExpress 5Node StreamsPull StreamsMasteringjs.ioMongoDBBabelHTMLWebpackVueExpressRxJSConsole.logJson.stringifyBatchasync.jsHow to Write Batch Async Functions Follow DevChatTV on Facebook and Twitter PicksAJ O’Neal:Ethan Garofolo YouTubeChristopher Buecheler:Functional Design Patterns for Express.jsCharles Max Wood:Microsoft IgniteMaxcoders.ioValeri Karpov: Follow Valeri on Twitter @code_barbarian and Github @vkarpov15Masteringjs.ioJurassic Park: A NovelSpecial Guest: Valeri Karpov. 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.

10 Loka 20191h 3min

Suosittua kategoriassa Liike-elämä ja talous

sijotuskasti
mimmit-sijoittaa
psykopodiaa-podcast
rss-rahapodi
ostan-asuntoja-podcast
rss-lahtijat
leadcast
rss-rahamania
lakicast
rss-yritys-ja-erehdys
rss-neuvottelija-sami-miettinen
oppimisen-psykologia
hyva-paha-johtaminen
rss-karon-grilli
pomojen-suusta
rss-myynnin-myllerryksessa
rss-seuraava-potilas
kasvun-kipuja
rss-strategian-seurassa
rss-puhutaan-rahasta